diff --git a/src/includes/js/LSformElement_supannCompositeAttribute.js b/src/includes/js/LSformElement_supannCompositeAttribute.js index 2c2dfac2..6cc84efe 100644 --- a/src/includes/js/LSformElement_supannCompositeAttribute.js +++ b/src/includes/js/LSformElement_supannCompositeAttribute.js @@ -1,17 +1,17 @@ var LSformElement_supannCompositeAttribute = new Class({ - initialize: function(){ - this.fields = []; - this.initialiseLSformElement_supannCompositeAttribute(); - }, + initialize: function(){ + this.fields = []; + this.initialiseLSformElement_supannCompositeAttribute(); + }, - initialiseLSformElement_supannCompositeAttribute: function(el) { - if (!$type(el)) { - el = document; - } - el.getElements('ul.LSformElement_supannCompositeAttribute').each(function(ul) { - this.fields[ul.id] = new LSformElement_supannCompositeAttribute_field(ul); - }, this); + initialiseLSformElement_supannCompositeAttribute: function(el) { + if (!$type(el)) { + el = document; } + el.getElements('ul.LSformElement_supannCompositeAttribute').each(function(ul) { + this.fields[ul.id] = new LSformElement_supannCompositeAttribute_field(ul); + }, this); + } }); window.addEvent(window.ie ? 'load' : 'domready', function() { varLSformElement_supannCompositeAttribute = new LSformElement_supannCompositeAttribute(); diff --git a/src/includes/js/LSformElement_supannCompositeAttribute_field.js b/src/includes/js/LSformElement_supannCompositeAttribute_field.js index ed0b6782..4b61e475 100644 --- a/src/includes/js/LSformElement_supannCompositeAttribute_field.js +++ b/src/includes/js/LSformElement_supannCompositeAttribute_field.js @@ -1,34 +1,33 @@ var LSformElement_supannCompositeAttribute_field = new Class({ - initialize: function(ul){ - this.ul=ul; - this.dd=ul.getParent(); - this.name = ul.id; - this.values = []; - this.field_type = ul.get('data-fieldType'); - this.initializeLSformElement_supannCompositeAttribute_field(); - varLSform.addField(this.name,this); - }, + initialize: function(ul){ + this.ul=ul; + this.dd=ul.getParent(); + this.name = ul.id; + this.values = []; + this.field_type = ul.get('data-fieldType'); + this.initializeLSformElement_supannCompositeAttribute_field(); + varLSform.addField(this.name,this); + }, - initializeLSformElement_supannCompositeAttribute_field: function(el) { - if (!$type(el)) { - el = this.ul; - } - el.getElements('li').each(function(li) { - this.values.push(new LSformElement_supannCompositeAttribute_field_value(li,this.name,this.field_type)); - }, this); - }, + initializeLSformElement_supannCompositeAttribute_field: function(el) { + if (!$type(el)) { + el = this.ul; + } + el.getElements('li').each(function(li) { + this.values.push(new LSformElement_supannCompositeAttribute_field_value(li,this.name,this.field_type)); + }, this); + }, - clearValue: function() { - console.log('clear'); - console.log(this.values); - if (this.values.length>1) { - for(var i=1; i<=this.values.length; i++) { - $(this.values[i].li).dispose(); - } - this.values[0].clear(); - } - else if (this.values.length==1) { - this.values[0].clear(); - } - } + clearValue: function() { + if (this.values.length>1) { + for(var i=1; i<=this.values.length; i++) { + $(this.values[i].li).dispose(); + delete this.values[i]; + } + this.values[0].clear(); + } + else if (this.values.length==1) { + this.values[0].clear(); + } + } }); diff --git a/src/includes/js/LSformElement_supannCompositeAttribute_field_value.js b/src/includes/js/LSformElement_supannCompositeAttribute_field_value.js index 2ea939ff..36651043 100644 --- a/src/includes/js/LSformElement_supannCompositeAttribute_field_value.js +++ b/src/includes/js/LSformElement_supannCompositeAttribute_field_value.js @@ -1,29 +1,29 @@ var LSformElement_supannCompositeAttribute_field_value = new Class({ - initialize: function(li,name,field_type){ - this.li=li; - this.name = name; - this.components = {}; - this.field_type = field_type; - this.initializeLSformElement_supannCompositeAttribute_field_value(); - varLSform.addModule(field_type,this); - }, + initialize: function(li,name,field_type){ + this.li=li; + this.name = name; + this.components = {}; + this.field_type = field_type; + this.initializeLSformElement_supannCompositeAttribute_field_value(); + varLSform.addModule(field_type,this); + }, - initializeLSformElement_supannCompositeAttribute_field_value: function(el) { - if (!$type(el)) { - el = this.li; - } - el.getElements('p').each(function(p) { - this.components[p.get('data-component')]=new LSformElement_supannCompositeAttribute_field_value_component(p,p.get('data-component'),this.name); - }, this); - }, + initializeLSformElement_supannCompositeAttribute_field_value: function(el) { + if (!$type(el)) { + el = this.li; + } + el.getElements('p').each(function(p) { + this.components[p.get('data-component')]=new LSformElement_supannCompositeAttribute_field_value_component(p,p.get('data-component'),this.name); + }, this); + }, - reinitialize: function(el) { - this.initializeLSformElement_supannCompositeAttribute_field_value(el); - }, + reinitialize: function(el) { + this.initializeLSformElement_supannCompositeAttribute_field_value(el); + }, - clear: function() { - for (c in this.components) { - this.components[c].clear(); - } - } + clear: function() { + for (c in this.components) { + this.components[c].clear(); + } + } }); diff --git a/src/includes/js/LSformElement_supannCompositeAttribute_field_value_component.js b/src/includes/js/LSformElement_supannCompositeAttribute_field_value_component.js index 5b48a1ae..a7d6c1c1 100644 --- a/src/includes/js/LSformElement_supannCompositeAttribute_field_value_component.js +++ b/src/includes/js/LSformElement_supannCompositeAttribute_field_value_component.js @@ -1,173 +1,186 @@ var LSformElement_supannCompositeAttribute_field_value_component = new Class({ - initialize: function(p,name,field_name){ - this.p = p; - this.field_name = field_name; - this.name = name; - this.params = varLSdefault.LSjsConfig[this.field_name]; + initialize: function(p,name,field_name){ + this.p = p; + this.field_name = field_name; + this.name = name; + this.params = varLSdefault.LSjsConfig[this.field_name]; + this.cconf = this.params.components[this.name]; + if (this.cconf.type == 'select') { + this.select = p.getElement('select'); + } + else if (['date', 'text'].includes(this.cconf.type)) { + this.input = p.getElement('input'); + } + else if (['table', 'codeEntite', 'parrainDN'].includes(this.cconf.type)) { this.input = p.getElement('input'); this.img = p.getElement('img'); this.span = p.getElement('span'); - if (['table', 'codeEntite', 'parrainDN'].includes(this.params.components[this.name].type)) { - this.inputSearch=new Element( - 'input', - { - 'class': 'LSformElement_supannCompositeAttribute_search', - 'styles': { - 'display': 'none' - } - } - ); - this.inputSearch.addEvent('keydown',this.onKeyUpInputSearch.bindWithEvent(this)); - this.inputSearch.injectInside(this.p); - - this.searchBtn=new Element( - 'img', - { - 'src': varLSdefault.imagePath('modify'), - 'alt': this.params.searchBtn, - 'title': this.params.searchBtn, - } - ); - this.searchBtn.addEvent('click',this.toggleInputSearch.bind(this)); - this.searchBtn.injectBefore(this.inputSearch); - - this._lastSearch=null; - this._possibleValues=null; - } - }, - - toggleInputSearch: function() { - if (this.inputSearch.getStyle('display')=='none') { - this.inputSearch.setStyle('display','block'); - this.inputSearch.focus(); - } - else { - this.hidePossibleValues(); - this.inputSearch.setStyle('display','none'); - this.inputSearch.set('value',''); - } - }, - - onKeyUpInputSearch: function(event) { - event = new Event(event); - - if ((event.key=='enter')||(event.key=='tab')) { - event.stop(); - if (this.inputSearch.value!="") { - this.launchSearch(); + this.inputSearch=new Element( + 'input', + { + 'class': 'LSformElement_supannCompositeAttribute_search', + 'styles': { + 'display': 'none' + } } + ); + this.inputSearch.addEvent('keydown',this.onKeyUpInputSearch.bindWithEvent(this)); + this.inputSearch.injectInside(this.p); + + this.searchBtn=new Element( + 'img', + { + 'src': varLSdefault.imagePath('modify'), + 'alt': this.params.searchBtn, + 'title': this.params.searchBtn, } + ); + this.searchBtn.addEvent('click',this.toggleInputSearch.bind(this)); + this.searchBtn.injectBefore(this.inputSearch); - if (event.key=='esc') { - this.toggleInputSearch(); + this._lastSearch=null; + this._possibleValues=null; + } + }, + + toggleInputSearch: function() { + if (this.inputSearch.getStyle('display')=='none') { + this.inputSearch.setStyle('display','block'); + this.inputSearch.focus(); + } + else { + this.hidePossibleValues(); + this.inputSearch.setStyle('display','none'); + this.inputSearch.set('value',''); + } + }, + + onKeyUpInputSearch: function(event) { + event = new Event(event); + + if ((event.key=='enter')||(event.key=='tab')) { + event.stop(); + if (this.inputSearch.value!="") { + this.launchSearch(); } - }, + } - launchSearch: function() { - this.hidePossibleValues(); - this._lastSearch=this.inputSearch.value; - var data = { - attribute: this.field_name, - objecttype: varLSform.objecttype, - idform: varLSform.idform, - component: this.name, - pattern: this.inputSearch.value - }; - data.imgload=varLSdefault.loadingImgDisplay(this.inputSearch); - new Request({url: 'ajax/class/LSformElement_supannCompositeAttribute/searchComponentPossibleValues', data: data, onSuccess: this.onSearchComplete.bind(this)}).send(); - }, + if (event.key=='esc') { + this.toggleInputSearch(); + } + }, - onSearchComplete: function(responseText, responseXML) { - var data = JSON.decode(responseText); - if ( varLSdefault.checkAjaxReturn(data) ) { - this.displayPossibleValues(data.possibleValues); - } - }, + launchSearch: function() { + this.hidePossibleValues(); + this._lastSearch=this.inputSearch.value; + var data = { + attribute: this.field_name, + objecttype: varLSform.objecttype, + idform: varLSform.idform, + component: this.name, + pattern: this.inputSearch.value + }; + data.imgload=varLSdefault.loadingImgDisplay(this.inputSearch); + new Request({url: 'ajax/class/LSformElement_supannCompositeAttribute/searchComponentPossibleValues', data: data, onSuccess: this.onSearchComplete.bind(this)}).send(); + }, - displayPossibleValues: function(possibleValues) { - if (this._possibleValues==null) { - this._possibleValues=new Element( - 'div', - { - 'class': 'supannCompositeAttribute_possibleValues', - } - ); - this._possibleValues.injectInside(this.p); - } + onSearchComplete: function(responseText, responseXML) { + var data = JSON.decode(responseText); + if ( varLSdefault.checkAjaxReturn(data) ) { + this.displayPossibleValues(data.possibleValues); + } + }, + displayPossibleValues: function(possibleValues) { + if (this._possibleValues==null) { + this._possibleValues=new Element( + 'div', + { + 'class': 'supannCompositeAttribute_possibleValues', + } + ); + this._possibleValues.injectInside(this.p); + } - var ul=new Element('ul'); - possibleValues.each(function(v) { - var li=new Element( - 'li', - { - 'data-value': v.value, - 'data-label': v.label, - 'data-translated': v.translated, - } - ); - if (v.label!='no') { - li.set('html',"["+v.label+"] "+v.translated); - } - else { - li.set('html',v.translated); - } - li.injectInside(this); - }, ul); - if (ul.getElements('li').length==0) { - new Element( - 'li', - { - 'html': this.params.noResultLabel - } - ).injectInside(ul); - } - else { - ul.getElements('li').each(function(li) { - li.addEvent('click',this.onClickPossibleValue.bindWithEvent(this)); - }, this); - } - ul.injectInside(this._possibleValues); - this._possibleValues.setStyle('display', 'block'); - }, + var ul=new Element('ul'); + possibleValues.each(function(v) { + var li=new Element( + 'li', + { + 'data-value': v.value, + 'data-label': v.label, + 'data-translated': v.translated, + } + ); + if (v.label!='no') { + li.set('html',"["+v.label+"] "+v.translated); + } + else { + li.set('html',v.translated); + } + li.injectInside(this); + }, ul); + if (ul.getElements('li').length==0) { + new Element( + 'li', + { + 'html': this.params.noResultLabel + } + ).injectInside(ul); + } + else { + ul.getElements('li').each(function(li) { + li.addEvent('click',this.onClickPossibleValue.bindWithEvent(this)); + }, this); + } + ul.injectInside(this._possibleValues); + this._possibleValues.setStyle('display', 'block'); + }, - hidePossibleValues: function() { - if (this._possibleValues!=null) { - this._possibleValues.setStyle('display', 'none'); - this._possibleValues.empty(); - } - }, + hidePossibleValues: function() { + if (this._possibleValues!=null) { + this._possibleValues.setStyle('display', 'none'); + this._possibleValues.empty(); + } + }, - onClickPossibleValue: function(event) { - this.hidePossibleValues(); - event = new Event(event); - var li=$(event.target); - if (event.target.tagName=='IMG') { - li=li.getParent(); - } - this.input.set('value',li.get('data-value')); - if (li.get('data-label')!='no') { - if (this.img==null) { - this.img=new Element('img'); - this.img.injectBefore(this.span); - } - this.img.set('src',varLSdefault.imagePath('supann_label_'+li.get('data-label'))); - } - this.span.set('html',li.get('data-translated')); - this.span.set('title',li.get('data-value')); - this.toggleInputSearch(); - }, + onClickPossibleValue: function(event) { + this.hidePossibleValues(); + event = new Event(event); + var li=$(event.target); + if (event.target.tagName=='IMG') { + li=li.getParent(); + } + this.input.set('value',li.get('data-value')); + if (li.get('data-label')!='no') { + if (this.img==null) { + this.img=new Element('img'); + this.img.injectBefore(this.span); + } + this.img.set('src',varLSdefault.imagePath('supann_label_'+li.get('data-label'))); + } + this.span.set('html',li.get('data-translated')); + this.span.set('title',li.get('data-value')); + this.toggleInputSearch(); + }, - clear: function() { - if (this.img) { - this.img.dispose(); - this.img=null; - } - this.input.set('value',''); - if (this.span) { - this.span.set('html',this.params.noValueLabel); - } - } + clear: function() { + if (this.cconf.type == 'select') { + this.select.set('value', ''); + } + else if (['date', 'text'].includes(this.cconf.type)) { + this.input.set('value', ''); + } + else if (['table', 'codeEntite', 'parrainDN'].includes(this.cconf.type)) { + this.input.set('value', ''); + if (this.img) { + this.img.dispose(); + this.img=null; + } + this.span.set('html', this.params.noValueLabel); + this.span.set('title', ''); + } + } });