mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-23 10:29:07 +01:00
1293b9776a
-> Correction des problèmes liés au changement de type de input
120 lines
4.2 KiB
JavaScript
120 lines
4.2 KiB
JavaScript
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);
|
|
}
|
|
|
|
this.initialize_input();
|
|
},
|
|
|
|
initialize_input: function() {
|
|
// Verify
|
|
if (this.params['verify']) {
|
|
this.verifyFx = new Fx.Tween(this.input,{property: 'background-color',duration:600});
|
|
}
|
|
},
|
|
|
|
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('view');
|
|
}
|
|
},
|
|
|
|
changeInputType: function(state) {
|
|
if (((this.input.type=='password')&&(state=='hide'))||((this.input.type=='text')&&(state=='view'))) {
|
|
return this.input;
|
|
}
|
|
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;
|
|
this.initialize_input();
|
|
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);
|
|
}
|
|
}
|
|
});
|