2014-03-24 22:38:11 +00:00
OC . Lostpassword = {
2014-06-13 14:02:41 +00:00
sendErrorMsg : t ( 'core' , 'Couldn\'t send reset email. Please contact your administrator.' ) ,
2014-03-24 22:38:11 +00:00
sendSuccessMsg : t ( 'core' , 'The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator.' ) ,
2014-06-13 14:03:13 +00:00
2017-01-02 20:24:37 +00:00
encryptedMsg : t ( 'core' , "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" )
2014-03-24 22:38:11 +00:00
+ ( '<br /><input type="checkbox" id="encrypted-continue" value="Yes" />' )
+ '<label for="encrypted-continue">'
+ t ( 'core' , 'I know what I\'m doing' )
2014-10-20 17:05:48 +00:00
+ '</label><br />' ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
resetErrorMsg : t ( 'core' , 'Password can not be changed. Please contact your administrator.' ) ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
init : function ( ) {
2015-12-07 14:37:26 +00:00
$ ( '#lost-password' ) . click ( OC . Lostpassword . resetLink ) ;
2014-03-24 22:38:11 +00:00
$ ( '#reset-password #submit' ) . click ( OC . Lostpassword . resetPassword ) ;
} ,
2014-06-13 14:03:13 +00:00
2015-12-07 14:37:26 +00:00
resetLink : function ( event ) {
2014-03-24 22:38:11 +00:00
event . preventDefault ( ) ;
if ( ! $ ( '#user' ) . val ( ) . length ) {
$ ( '#submit' ) . trigger ( 'click' ) ;
} else {
2015-12-07 14:37:26 +00:00
if ( OC . config [ 'lost_password_link' ] ) {
window . location = OC . config [ 'lost_password_link' ] ;
} else {
$ . post (
2014-06-02 22:24:27 +00:00
OC . generateUrl ( '/lostpassword/email' ) ,
2014-05-28 17:13:07 +00:00
{
2014-10-20 17:05:48 +00:00
user : $ ( '#user' ) . val ( )
2014-05-28 17:13:07 +00:00
} ,
2014-03-24 22:38:11 +00:00
OC . Lostpassword . sendLinkDone
2017-04-22 06:12:54 +00:00
) . fail ( function ( ) {
OC . Lostpassword . sendLinkError ( OC . Lostpassword . sendErrorMsg ) ;
} ) ;
2015-12-07 14:37:26 +00:00
}
2014-03-24 22:38:11 +00:00
}
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
sendLinkDone : function ( result ) {
2014-05-28 17:13:07 +00:00
var sendErrorMsg ;
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
if ( result && result . status === 'success' ) {
OC . Lostpassword . sendLinkSuccess ( ) ;
} else {
if ( result && result . msg ) {
2014-05-28 17:13:07 +00:00
sendErrorMsg = result . msg ;
2014-03-24 22:38:11 +00:00
} else {
2014-05-28 17:13:07 +00:00
sendErrorMsg = OC . Lostpassword . sendErrorMsg ;
2014-03-24 22:38:11 +00:00
}
OC . Lostpassword . sendLinkError ( sendErrorMsg ) ;
}
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
sendLinkSuccess : function ( msg ) {
var node = OC . Lostpassword . getSendStatusNode ( ) ;
2014-06-13 13:54:09 +00:00
// update is the better success message styling
node . addClass ( 'update' ) . css ( { width : 'auto' } ) ;
2014-03-24 22:38:11 +00:00
node . html ( OC . Lostpassword . sendSuccessMsg ) ;
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
sendLinkError : function ( msg ) {
var node = OC . Lostpassword . getSendStatusNode ( ) ;
node . addClass ( 'warning' ) ;
node . html ( msg ) ;
OC . Lostpassword . init ( ) ;
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
getSendStatusNode : function ( ) {
if ( ! $ ( '#lost-password' ) . length ) {
$ ( '<p id="lost-password"></p>' ) . insertBefore ( $ ( '#remember_login' ) ) ;
} else {
$ ( '#lost-password' ) . replaceWith ( $ ( '<p id="lost-password"></p>' ) ) ;
}
return $ ( '#lost-password' ) ;
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
resetPassword : function ( event ) {
event . preventDefault ( ) ;
if ( $ ( '#password' ) . val ( ) ) {
$ . post (
$ ( '#password' ) . parents ( 'form' ) . attr ( 'action' ) ,
2014-05-28 17:13:07 +00:00
{
2014-10-20 17:05:48 +00:00
password : $ ( '#password' ) . val ( ) ,
2016-04-19 13:13:37 +00:00
proceed : $ ( '#encrypted-continue' ) . is ( ':checked' ) ? 'true' : 'false'
2014-03-24 22:38:11 +00:00
} ,
OC . Lostpassword . resetDone
) ;
}
2016-04-19 13:13:37 +00:00
if ( $ ( '#encrypted-continue' ) . is ( ':checked' ) ) {
2014-10-29 12:26:24 +00:00
$ ( '#reset-password #submit' ) . hide ( ) ;
2014-11-17 16:49:58 +00:00
$ ( '#reset-password #float-spinner' ) . removeClass ( 'hidden' ) ;
2014-10-29 12:26:24 +00:00
}
2014-03-24 22:38:11 +00:00
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
resetDone : function ( result ) {
2014-05-28 17:13:07 +00:00
var resetErrorMsg ;
2014-03-24 22:38:11 +00:00
if ( result && result . status === 'success' ) {
$ . post (
OC . webroot + '/' ,
{
user : window . location . href . split ( '/' ) . pop ( ) ,
password : $ ( '#password' ) . val ( )
} ,
OC . Lostpassword . redirect
) ;
} else {
if ( result && result . msg ) {
2014-05-28 17:13:07 +00:00
resetErrorMsg = result . msg ;
2014-05-27 21:09:08 +00:00
} else if ( result && result . encryption ) {
2014-05-28 17:13:07 +00:00
resetErrorMsg = OC . Lostpassword . encryptedMsg ;
2014-03-24 22:38:11 +00:00
} else {
2014-05-28 17:13:07 +00:00
resetErrorMsg = OC . Lostpassword . resetErrorMsg ;
2014-03-24 22:38:11 +00:00
}
OC . Lostpassword . resetError ( resetErrorMsg ) ;
}
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
redirect : function ( msg ) {
2014-11-21 14:35:14 +00:00
if ( OC . webroot !== '' ) {
window . location = OC . webroot ;
} else {
window . location = '/' ;
}
2014-03-24 22:38:11 +00:00
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
resetError : function ( msg ) {
var node = OC . Lostpassword . getResetStatusNode ( ) ;
node . addClass ( 'warning' ) ;
node . html ( msg ) ;
} ,
2014-06-13 14:03:13 +00:00
2014-03-24 22:38:11 +00:00
getResetStatusNode : function ( ) {
if ( ! $ ( '#lost-password' ) . length ) {
2014-10-20 17:05:48 +00:00
$ ( '<p id="lost-password"></p>' ) . insertBefore ( $ ( '#reset-password fieldset' ) ) ;
2014-03-24 22:38:11 +00:00
} else {
$ ( '#lost-password' ) . replaceWith ( $ ( '<p id="lost-password"></p>' ) ) ;
}
return $ ( '#lost-password' ) ;
}
} ;
$ ( document ) . ready ( OC . Lostpassword . init ) ;