ldapsaisie/trunk/includes/js/LSformElement_text_field.js
Benjamin Renard d42aef9e4d - LSform : Correction de bugs d'affichage
- LSattr_html_select_object : Correction d'un problème de chargement de de type
  d'objet
- LSformElement_select : Affichage d'un texte lorsque l'attribut n'a pas de
  valeur
- LSformElement_text :
  -> Ajout d'une possibilité de suppression des accents lors de l'autogénération
  -> Ajout d'un bouton pour l'autogénération manuelle
- LSaddons.supann : Ajout d'un addon pour le support Suppan
- LSsmoothbox : Affichage d'une image durant l'ouverture d'une page
2008-10-06 13:11:14 +00:00

65 lines
2.1 KiB
JavaScript

var LSformElement_text_field = new Class({
initialize: function(name,input,parent){
this.name = name;
this.parent = parent;
this.input = input;
this.params = varLSdefault.LSjsConfig[this.name];
this._auto=1;
this.input.addEvent('change',this.unauto.bind(this));
this.onChangeColor = '#f16d6d';
},
start: function() {
var force=0;
if ($type(this.params)) {
if (this.params.autoGenerateOnModify) {
force = 1;
}
}
if ((this.input.value=='')||(force)) {
if ($type(this.params)) {
if ($type(this.params['generate_value_format'])) {
this.format = this.params['generate_value_format'];
this.dependsFields = this.parent.getDependsFields(this.format);
this.dependsFields.each(function(el) {
var input = this.parent.getInput.bind(this.parent)(el);
input.addEvent('change',this.refreshValue.bind(this));
},this);
this.oldBg=this.input.getStyle('background-color');
this.fx = new Fx.Tween(this.input,{property: 'background-color',duration:600});
this.generateBtn = new Element('img');
this.generateBtn.addClass('btn');
this.generateBtn.src='templates/images/generate.png';
this.generateBtn.addEvent('click',this.refreshValue.bind(this));
this.generateBtn.injectAfter(this.input);
}
}
}
},
getInput: function() {
return this.input;
},
getValue: function() {
return this.input.value;
},
refreshValue: function() {
if (this._auto) {
var val=getFData(this.format,this.parent,'getValue');
if ($type(this.params['withoutAccents'])) {
if(this.params['withoutAccents']) {
val = replaceAccents(val);
}
}
this.input.value = val;
this.fx.start(this.onChangeColor);
(function() {this.fx.start(this.oldBg);}).delay(1000,this);
}
},
unauto: function() {
this._auto=0;
}
});