From 6143be54886d2d26901f5d317600063b54817d36 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Thu, 16 Oct 2008 13:03:45 +0000 Subject: [PATCH] =?UTF-8?q?-=20LSformElement=5Fselect=20:=20Refonte=20en?= =?UTF-8?q?=20utilisant=20les=20templates=20-=20LSformElement=5Fpassword?= =?UTF-8?q?=20:=20Ajout=20d'un=20fichier=20oubli=C3=A9=20dans=20le=20derni?= =?UTF-8?q?er=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../class/class.LSformElement_select.php | 35 +----- .../js/LSformElement_password_field.js | 107 ++++++++++++++++++ trunk/includes/js/LSformElement_select.js | 7 +- .../default/LSformElement_select.tpl | 13 +++ 4 files changed, 129 insertions(+), 33 deletions(-) create mode 100644 trunk/includes/js/LSformElement_password_field.js create mode 100644 trunk/templates/default/LSformElement_select.tpl diff --git a/trunk/includes/class/class.LSformElement_select.php b/trunk/includes/class/class.LSformElement_select.php index f058d93f..2d792809 100644 --- a/trunk/includes/class/class.LSformElement_select.php +++ b/trunk/includes/class/class.LSformElement_select.php @@ -32,6 +32,9 @@ class LSformElement_select extends LSformElement { + var $template = 'LSformElement_select.tpl'; + var $fieldTemplate = 'LSformElement_select.tpl'; + /** * Retourn les infos d'affichage de l'élément * @@ -41,38 +44,12 @@ class LSformElement_select extends LSformElement { */ function getDisplay(){ $return = $this -> getLabelInfos(); - // value + $params = array(); if (!$this -> isFreeze()) { - if ($this -> params['multiple']==0) { - $multiple_tag=''; - } - else { - $multiple_tag='multiple'; - } - - $return['html'] = "\n"; $GLOBALS['LSsession'] -> addJSscript('LSformElement_select.js'); } - else { - $return['html']="\n"; - } + $params['possible_values'] = $this -> params['text_possible_values']; + $return['html'] = $this -> fetchTemplate(NULL,$params); return $return; } diff --git a/trunk/includes/js/LSformElement_password_field.js b/trunk/includes/js/LSformElement_password_field.js new file mode 100644 index 00000000..2959d79f --- /dev/null +++ b/trunk/includes/js/LSformElement_password_field.js @@ -0,0 +1,107 @@ +var LSformElement_password_field = new Class({ + initialize: function(name,input){ + this.name = name; + this.input = input; + this.params = varLSdefault.getParams(this.name); + LSdebug(this.params); + this.initialiseLSformElement_password_field(); + }, + + initialiseLSformElement_password_field: function() { + // ViewBtn + this.viewBtn = new Element('img'); + this.viewBtn.src = varLSdefault.imagePath('view.png'); + this.viewBtn.addClass('btn'); + this.viewBtn.addEvent('click',this.changeInputType.bind(this)); + this.viewBtn.injectAfter(this.input); + + // Verify + if (this.params['verify']) { + this.bgColor = this.input.getStyle('background-color'); + this.verifyFx = new Fx.Tween(this.input,{property: 'background-color',duration:600}); + this.verifyBtn = new Element('img'); + this.verifyBtn.src = varLSdefault.imagePath('verify.png'); + this.verifyBtn.addClass('btn'); + this.verifyBtn.addEvent('click',this.onVerifyBtnClick.bind(this)); + this.verifyBtn.injectAfter(this.input); + } + + if (this.params['generate']) { + this.generateBtn = new Element('img'); + this.generateBtn.src = varLSdefault.imagePath('generate.png'); + this.generateBtn.addClass('btn'); + this.generateBtn.addEvent('click',this.onGenerateBtnClick.bind(this)); + this.generateBtn.injectAfter(this.input); + } + }, + + onGenerateBtnClick: function() { + var data = { + template: 'LSform', + action: 'generatePassword', + attribute: this.name, + objecttype: varLSform.objecttype, + idform: varLSform.idform + }; + data.imgload=varLSdefault.loadingImgDisplay(this.generateBtn); + new Request({url: 'index_ajax.php', data: data, onSuccess: this.onGenerateBtnClickComplete.bind(this)}).send(); + }, + + onGenerateBtnClickComplete: function(responseText, responseXML) { + var data = JSON.decode(responseText); + if ( varLSdefault.checkAjaxReturn(data) ) { + this.input.value=data.generatePassword; + this.changeInputType(); + } + }, + + changeInputType: function() { + if (this.input.type=='password') { + var newType = 'text'; + this.viewBtn.src=varLSdefault.imagePath('hide.png'); + } + else { + var newType = 'password'; + this.viewBtn.src=varLSdefault.imagePath('view.png'); + } + var newInput = new Element('input'); + newInput.setProperty('name',this.input.getProperty('name')); + newInput.setProperty('type',newType); + newInput.setProperty('class',this.input.getProperty('class')); + newInput.setProperty('value',this.input.getProperty('value')); + newInput.injectAfter(this.input); + this.input.destroy(); + this.input = newInput; + return newInput; + }, + + onVerifyBtnClick: function() { + var data = { + template: 'LSform', + action: 'verifyPassword', + attribute: this.name, + objecttype: varLSform.objecttype, + idform: varLSform.idform, + objectdn: varLSform.objectdn, + fieldValue: this.input.value + }; + LSdebug(data); + data.imgload=varLSdefault.loadingImgDisplay(this.verifyBtn); + new Request({url: 'index_ajax.php', data: data, onSuccess: this.onVerifyBtnClickComplete.bind(this)}).send(); + }, + + onVerifyBtnClickComplete: function(responseText, responseXML) { + var data = JSON.decode(responseText); + if ( varLSdefault.checkAjaxReturn(data) ) { + if (data.verifyPassword) { + // ok + this.verifyFx.start('#73F386'); + } + else { + // nok + this.verifyFx.start('#f59a67'); + } + (function(){this.verifyFx.start(this.bgColor);}).delay(1000, this); + } + } +}); diff --git a/trunk/includes/js/LSformElement_select.js b/trunk/includes/js/LSformElement_select.js index 0a3e17a7..bdd757c7 100644 --- a/trunk/includes/js/LSformElement_select.js +++ b/trunk/includes/js/LSformElement_select.js @@ -4,7 +4,7 @@ var LSformElement_select = new Class({ }, initialiseLSformElement_select: function() { - $$('select.LSform').each(function(el) { + $$('select.LSformElement_select').each(function(el) { var btn = new Element('img'); btn.setProperties({ src: varLSdefault.imagePath('clear.png'), @@ -13,13 +13,12 @@ var LSformElement_select = new Class({ }); btn.addClass('btn'); btn.setStyle('vertical-align','top'); - btn.addEvent('click',this.onClearBtnClick.bind(this,btn)); + btn.addEvent('click',this.onClearBtnClick.bind(this,el)); btn.injectAfter(el); }, this); }, - onClearBtnClick: function(btn) { - var select = btn.getPrevious(); + onClearBtnClick: function(select) { this.resetSelect(select); }, diff --git a/trunk/templates/default/LSformElement_select.tpl b/trunk/templates/default/LSformElement_select.tpl new file mode 100644 index 00000000..aee2e602 --- /dev/null +++ b/trunk/templates/default/LSformElement_select.tpl @@ -0,0 +1,13 @@ +{if $freeze} + +{else} + +{/if}