LSformElement_password : added clearView and clearEdit parameters
authorBenjamin Renard <brenard@easter-eggs.com>
Mon, 24 Jun 2013 15:52:45 +0000 (17:52 +0200)
committerBenjamin Renard <brenard@easter-eggs.com>
Mon, 24 Jun 2013 15:52:45 +0000 (17:52 +0200)
doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook
public_html/includes/class/class.LSformElement_password.php
public_html/includes/js/LSformElement_password_field.js
public_html/templates/default/LSformElement_password_field.tpl

index 6a5009d..19dfeb1 100644 (file)
 </varlistentry>
 
 <varlistentry>
+  <term>clearView</term>
+  <listitem>
+    <simpara>Booléen définissant si l'utilisateur pourra voir le mot de passe en
+    clair par défaut (y comris en mode visualisation uniquement).</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
+  <term>clearEdit</term>
+  <listitem>
+    <simpara>Booléen définissant si l'utilisateur éditera le mot de passe au travers
+    un champs HTML de type <emphasis>text</emphasis> et donc lisible ou au travers un
+    champs HTML de type <emphasis>password</emphasis>.</simpara>
+  </listitem>
+</varlistentry>
+
+<varlistentry>
   <term>mail</term>
   <listitem>
     <para>Paramètres de configuration de l'envoi par mail du mot de passe à
index 8f1f489..489f6f2 100644 (file)
@@ -122,6 +122,9 @@ class LSformElement_password extends LSformElement {
     LSsession :: addCssFile('LSformElement_password.css');
     $return = $this -> getLabelInfos();
     $pwd = "";
+    if ($this -> params['html_options']['clearView'] or $this -> params['html_options']['clearEdit']) {
+      $pwd = $this -> values[0];
+    }
     if (!$this -> isFreeze()) {
       
       // Help Infos
@@ -145,6 +148,7 @@ class LSformElement_password extends LSformElement {
       
       $params = array(
         'generate' => ($this -> params['html_options']['generationTool']==True),
+        'clearEdit' => ($this -> params['html_options']['clearEdit']==True),
         'viewHash' => ($this -> params['html_options']['viewHash']==True),
         'verify' => ( (!$this -> attr_html -> attribute -> ldapObject-> isNew()) && ( (isset($this -> params['html_options']['verify']) && $this -> params['html_options']['verify']) || (!isset($this -> params['html_options']['verify'])) ) )
       );
@@ -156,7 +160,7 @@ class LSformElement_password extends LSformElement {
       LSsession :: addJSscript('LSformElement_password_field.js');
       LSsession :: addJSscript('LSformElement_password.js');
     }
-    $return['html'] = $this -> fetchTemplate(NULL,array('pwd' => $pwd));
+    $return['html'] = $this -> fetchTemplate(NULL,array('pwd' => $pwd,'clearView' => $this -> params['html_options']['clearView'],'clearEdit' => $this -> params['html_options']['clearEdit']));
     return $return;
   }
   
index 6fbeeb6..798fac5 100644 (file)
@@ -54,11 +54,17 @@ var LSformElement_password_field = new Class({
       
       // ViewBtn
       this.viewBtn = new Element('img');
-      this.viewBtn.src = varLSdefault.imagePath('view');
+      if (this.params['clearEdit']) {
+        this.viewBtn.src = varLSdefault.imagePath('hide');
+        varLSdefault.addHelpInfo(this.viewBtn,'LSformElement_password','hide');
+      }
+      else {
+        this.viewBtn.src = varLSdefault.imagePath('view');
+        varLSdefault.addHelpInfo(this.viewBtn,'LSformElement_password','view');
+      }
       this.viewBtn.addClass('btn');
       this.viewBtn.addEvent('click',this.changeInputType.bind(this));
       this.viewBtn.injectAfter(this.input);
-      varLSdefault.addHelpInfo(this.viewBtn,'LSformElement_password','view');
       
       // Verify
       if (this.params['verify']) {
index d8e8f58..d94ae05 100644 (file)
@@ -1,5 +1,13 @@
 {if $freeze}
+{if $clearView}
+{$pwd}
+{else}
 ********
+{/if}
+{else}
+{if $clearEdit}
+<input type='text' name='{$attr_name}[]' value="{$pwd}" class='LSformElement_password' autocomplete="off"/>
 {else}
 <input type='password' name='{$attr_name}[]' value="{$pwd}" class='LSformElement_password' autocomplete="off"/>
 {/if}
+{/if}