password.js 2.2 KB
/**
 * Password plugin script
 *
 * @licstart  The following is the entire license notice for the
 * JavaScript code in this file.
 *
 * Copyright (c) The Roundcube Dev Team
 *
 * The JavaScript code in this page is free software: you can redistribute it
 * and/or modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation, either version 3 of
 * the License, or (at your option) any later version.
 *
 * @licend  The above is the entire license notice
 * for the JavaScript code in this file.
 */

window.rcmail && rcmail.addEventListener('init', function(evt) {
    if (rcmail.env.password_disabled) {
        $('#password-form input').prop('disabled', true);
        // reload page after ca. 3 minutes
        rcmail.reload(3 * 60 * 1000 - 2000);
        return;
    }

    // register command handler
    rcmail.register_command('plugin.password-save', function() {
        var input_curpasswd = rcube_find_object('_curpasswd'),
            input_newpasswd = rcube_find_object('_newpasswd'),
            input_confpasswd = rcube_find_object('_confpasswd');

      if (input_curpasswd && input_curpasswd.value == '') {
          rcmail.alert_dialog(rcmail.get_label('nocurpassword', 'password'), function() {
              input_curpasswd.focus();
              return true;
            });
      }
      else if (input_newpasswd && input_newpasswd.value == '') {
          rcmail.alert_dialog(rcmail.get_label('nopassword', 'password'), function() {
              input_newpasswd.focus();
              return true;
            });
      }
      else if (input_confpasswd && input_confpasswd.value == '') {
          rcmail.alert_dialog(rcmail.get_label('nopassword', 'password'), function() {
              input_confpasswd.focus();
              return true;
            });
      }
      else if (input_newpasswd && input_confpasswd && input_newpasswd.value != input_confpasswd.value) {
          rcmail.alert_dialog(rcmail.get_label('passwordinconsistency', 'password'), function() {
              input_newpasswd.focus();
              return true;
            });
      }
      else {
          rcmail.gui_objects.passform.submit();
      }
    }, true);

    $('input:not(:hidden)').first().focus();
});