]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9588 Addd password reveal class to admin settings forms
authorskodak <skodak>
Thu, 26 Apr 2007 07:08:12 +0000 (07:08 +0000)
committerskodak <skodak>
Thu, 26 Apr 2007 07:08:12 +0000 (07:08 +0000)
admin/settings/security.php
admin/settings/server.php
lib/adminlib.php
lib/javascript-static.js
theme/standard/styles_layout.css

index 7a476d32dd29b364fa3cb8aa87d59db7cb29ec41..739171b1cda9a526a859d2ea2c2e33a23302beac 100644 (file)
@@ -39,7 +39,7 @@ $temp->add(new admin_setting_configselect('bloglevel', get_string('bloglevel', '
                                                                                                                                           0 => get_string('disableblogs','blog'))));
 
 $temp->add(new admin_setting_configcheckbox('cronclionly', get_string('cronclionly', 'admin'), get_string('configcronclionly', 'admin'), 0));
-$temp->add(new admin_setting_configtext('cronremotepassword', get_string('cronremotepassword', 'admin'), get_string('configcronremotepassword', 'admin'), '', PARAM_RAW));
+$temp->add(new admin_setting_configpasswordreveal('cronremotepassword', get_string('cronremotepassword', 'admin'), get_string('configcronremotepassword', 'admin'), '', PARAM_RAW));
 
 $temp->add(new admin_setting_configcheckbox('passwordpolicy', get_string('passwordpolicy', 'admin'), get_string('configpasswordpolicy', 'admin'), 0));
 $temp->add(new admin_setting_configtext('minpasswordlength', get_string('minpasswordlength', 'admin'), get_string('configminpasswordlength', 'admin'), 8, PARAM_INT));
index cefd3e3bc24828afbcc224e7d75a2996505989bf..e4126077dd0d5dec3dc3ca4d7404cdb218cf77ec 100644 (file)
@@ -19,7 +19,7 @@ $ADMIN->add('server', $temp, 0);
 $temp = new admin_settingpage('mail', get_string('mail','admin'));
 $temp->add(new admin_setting_configtext('smtphosts', get_string('smtphosts', 'admin'), get_string('configsmtphosts', 'admin'), '', PARAM_HOST));
 $temp->add(new admin_setting_configtext('smtpuser', get_string('smtpuser', 'admin'), get_string('configsmtpuser', 'admin'), '', PARAM_NOTAGS));
-$temp->add(new admin_setting_configtext('smtppass', get_string('smtppass', 'admin'), get_string('configsmtpuser', 'admin'), '', PARAM_RAW));
+$temp->add(new admin_setting_configpasswordreveal('smtppass', get_string('smtppass', 'admin'), get_string('configsmtpuser', 'admin'), '', PARAM_RAW));
 $temp->add(new admin_setting_configtext('noreplyaddress', get_string('noreplyaddress', 'admin'), get_string('confignoreplyaddress', 'admin'), 'noreply@' . $_SERVER['HTTP_HOST'], PARAM_NOTAGS));
 $temp->add(new admin_setting_configtext('allowemailaddresses', get_string('allowemailaddresses', 'admin'), get_string('configallowemailaddresses', 'admin'), '', PARAM_NOTAGS));
 $temp->add(new admin_setting_configtext('denyemailaddresses', get_string('denyemailaddresses', 'admin'), get_string('configdenyemailaddresses', 'admin'), '', PARAM_NOTAGS));
index fda804a9491912c4546271a8c6d9d23a339d20cb..f346a7c6d7cbe03b2c393c0d30a3f58a23bcf60d 100644 (file)
@@ -1427,6 +1427,32 @@ class admin_setting_configtext extends admin_setting {
 
 }
 
+class admin_setting_configpasswordreveal extends admin_setting_configtext {
+
+    function admin_setting_configpasswordreveal($name, $visiblename, $description, $defaultsetting, $paramtype=PARAM_RAW) {
+        parent::admin_setting_configtext($name, $visiblename, $description, $defaultsetting, $paramtype);
+    }
+
+    function output_html() {
+        if ($this->get_setting() === NULL) {
+            $current = $this->defaultsetting;
+        } else {
+            $current = $this->get_setting();
+        }
+            $id = 'id_s_'.$this->name;
+            $reveal = get_string('revealpassword', 'form');
+            $revealjs = '<script type="text/javascript">
+//<![CDATA[
+document.write(\'<div class="reveal"><input id="'.$id.'reveal" value="1" type="checkbox" onclick="revealPassword(\\\''.$id.'\\\')"/><label for="'.$id.'reveal">'.addslashes_js($reveal).'<\/label><\/div>\');
+//]]>
+</script>';
+        return format_admin_setting($this->name, $this->visiblename,
+                '<input type="password" class="form-text" id="id_s_'.$this->name.'" name="s_'.$this->name.'" value="'.s($current).'" />'.$revealjs,
+                $this->description);
+    }
+    
+}
+
 class admin_setting_configcheckbox extends admin_setting {
 
     function admin_setting_configcheckbox($name, $visiblename, $description, $defaultsetting) {
index 65874080ce266f6d0fac6bf7fc4e4679b4441e42..2c38185fb47fe4868a9b486cfecb107ba31894ad 100644 (file)
@@ -291,6 +291,7 @@ function revealPassword(id) {
     } else {
       var newpw = document.createElement('<input type="password" name="'+pw.name+'">');
     }
+    newpw.attributes['class'].nodeValue = pw.attributes['class'].nodeValue;
   } catch (e) {
     var newpw = document.createElement('input');
     newpw.setAttribute('name', pw.name);
@@ -299,6 +300,7 @@ function revealPassword(id) {
     } else {
       newpw.setAttribute('type', 'password');
     }
+    newpw.setAttribute('class', pw.getAttribute('class'));
   }
   newpw.id = pw.id;
   newpw.size = pw.size;
index cf86947a4c51ebd4fa84beb4a9e20b0021ab77c8..7a3a01392b8c941a4fc9f43fc0b0224873f0fea9 100644 (file)
@@ -978,6 +978,7 @@ body#admin-modules table.generaltable td.c0
   float: none;
 }
 
+
 /* #adminsettings .admin-configtime .form-select {
   display: inline;
   float: none;
@@ -994,6 +995,16 @@ body#admin-modules table.generaltable td.c0
   padding: 0.3em 0 1.5em 0;
 }
 
+#adminsettings .form-item .reveal input {
+  margin-left:5px;
+  margin-right:3px;
+}
+
+#adminsettings .form-item .reveal label {
+  width: auto;
+  text-align: left;
+}
+
 .environmentbox {
     margin-top: 1em;
 }