From 252cc4c4ac0c3e2f387322b624e80a268d4810c2 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 27 Jul 2015 04:47:34 -0400
Subject: [PATCH] Password: Allow temporarily disabling the plugin functionality with a notice

---
 plugins/password/password.js |   61 +++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 22 deletions(-)

diff --git a/plugins/password/password.js b/plugins/password/password.js
index a060fc3..75448ec 100644
--- a/plugins/password/password.js
+++ b/plugins/password/password.js
@@ -1,37 +1,54 @@
-/*
+/**
  * Password plugin script
- * @version @package_version@
+ *
+ * @licstart  The following is the entire license notice for the
+ * JavaScript code in this file.
+ *
+ * Copyright (c) 2012-2014, 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.
  */
 
-if (window.rcmail) {
-  rcmail.addEventListener('init', function(evt) {
-    // <span id="settingstabdefault" class="tablink"><roundcube:button command="preferences" type="link" label="preferences" title="editpreferences" /></span>
-    var tab = $('<span>').attr('id', 'settingstabpluginpassword').addClass('tablink password');
-    var button = $('<a>').attr('href', rcmail.env.comm_path+'&_action=plugin.password')
-      .html(rcmail.gettext('password')).appendTo(tab);
+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;
+    }
 
-    // add button and register commands
-    rcmail.add_element(tab, 'tabs');
-    rcmail.register_command('plugin.password-save', function() { 
-      var input_curpasswd = rcube_find_object('_curpasswd');
-      var input_newpasswd = rcube_find_object('_newpasswd');
-          var input_confpasswd = rcube_find_object('_confpasswd');
-    
-      if (input_curpasswd && input_curpasswd.value=='') {
+    // 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 == '') {
           alert(rcmail.gettext('nocurpassword', 'password'));
           input_curpasswd.focus();
-      } else if (input_newpasswd && input_newpasswd.value=='') {
+      }
+      else if (input_newpasswd && input_newpasswd.value == '') {
           alert(rcmail.gettext('nopassword', 'password'));
           input_newpasswd.focus();
-      } else if (input_confpasswd && input_confpasswd.value=='') {
+      }
+      else if (input_confpasswd && input_confpasswd.value == '') {
           alert(rcmail.gettext('nopassword', 'password'));
           input_confpasswd.focus();
-      } else if (input_newpasswd && input_confpasswd && input_newpasswd.value != input_confpasswd.value) {
+      }
+      else if (input_newpasswd && input_confpasswd && input_newpasswd.value != input_confpasswd.value) {
           alert(rcmail.gettext('passwordinconsistency', 'password'));
           input_newpasswd.focus();
-      } else {
+      }
+      else {
           rcmail.gui_objects.passform.submit();
       }
     }, true);
-  })
-}
+
+    $('input:not(:hidden):first').focus();
+});

--
Gitblit v1.9.1