source: extensions/GrumPluginClasses/js/ui.inputText.min.js @ 14211

Last change on this file since 14211 was 10246, checked in by grum, 13 years ago

bug:2149
Compatibility with Piwigo 2.2

  • Property svn:executable set to *
File size: 13.9 KB
Line 
1(function($)
2{var publicMethods={init:function(opt)
3{return this.each(function()
4{var $this=$(this),data=$this.data('options'),objects=$this.data('objects'),properties=$this.data('properties'),options={languages:[],currentLanguage:'',languagesValues:{},languageSelector:'',multilines:false,disabled:false,textAlign:'left',displayChar:0,maxChar:0,numRows:1,regExp:'',value:'',change:null};if(options.value==''&&$.trim($this.html())!='')options.value=$.trim($this.html());$this.data('options',options);if(!properties)
5{$this.data('properties',{initialized:false,re:/.*/,value:0,isValid:true,languagesValues:{}});properties=$this.data('properties');}
6if(!objects)
7{objects={container:$('<div/>',{'class':'ui-inputText',css:{width:'100%'}}).bind('click.inputText',function()
8{objects.input.focus();}),input:null};$this.html('').append(objects.container);$this.data('objects',objects);}
9privateMethods.setOptions($this,opt);});},destroy:function()
10{return this.each(function()
11{var $this=$(this),objects=$this.data('objects');objects.input.unbind().remove();objects.container.unbind().remove();$this.unbind('.inputText').css({width:'',height:''});});},options:function(value)
12{return(this.each(function()
13{privateMethods.setOptions($(this),value);}));},disabled:function(value)
14{if(value!=null)
15{return(this.each(function()
16{privateMethods.setDisabled($(this),value);}));}
17else
18{var options=this.data('options');if(options)
19{return(options.disabled);}
20else
21{return('');}}},textAlign:function(value)
22{if(value!=null)
23{return(this.each(function()
24{privateMethods.setTextAlign($(this),value);}));}
25else
26{var options=this.data('options');if(options)
27{return(options.textAlign);}
28else
29{return('');}}},displayChar:function(value)
30{if(value!=null)
31{return(this.each(function()
32{privateMethods.setDisplayChar($(this),value);}));}
33else
34{var options=this.data('options');if(options)
35{return(options.displayChar);}
36else
37{return('');}}},maxChar:function(value)
38{if(value!=null)
39{return(this.each(function()
40{privateMethods.setMaxChar($(this),value);}));}
41else
42{var options=this.data('options');if(options)
43{return(options.maxChar);}
44else
45{return('');}}},numRows:function(value)
46{if(value!=null)
47{return(this.each(function()
48{privateMethods.setNumRows($(this),value);}));}
49else
50{var options=this.data('options');if(options)
51{return(options.numRows);}
52else
53{return('');}}},regExp:function(value)
54{if(value!=null)
55{return(this.each(function()
56{privateMethods.setRegExp($(this),value);}));}
57else
58{var options=this.data('options');if(options)
59{return(options.regExp);}
60else
61{return('');}}},multilines:function()
62{var properties=this.data('properties');return(properties.multilines);},languages:function(value)
63{if(value!=null)
64{return(this.each(function()
65{privateMethods.setLanguages($(this),value);}));}
66else
67{var options=this.data('options');return(options.languages);}},currentLanguage:function(value)
68{if(value!=null)
69{return(this.each(function()
70{privateMethods.setCurrentLanguage($(this),value);}));}
71else
72{var options=this.data('options');return(options.currentLanguage);}},languageSelector:function(value)
73{if(value!=null)
74{return(this.each(function()
75{privateMethods.setLanguageSelector($(this),value);}));}
76else
77{var options=this.data('options');return(options.languageSelector);}},languagesValues:function(value)
78{if(value!=null)
79{return(this.each(function()
80{privateMethods.setLanguagesValues($(this),value);}));}
81else
82{var properties=this.data('properties');return(properties.languagesValues);}},value:function(value,language)
83{if(value!=null)
84{var options=this.data('options');return(this.each(function()
85{if(language!=null)
86{privateMethods.setLanguageValue($(this),language,value,options.currentLanguage==language);}
87else
88{privateMethods.setValue($(this),value,true);}}));}
89else
90{var properties=this.data('properties');return(properties.value);}},isValid:function(value)
91{if(value!=null)
92{return(this.each(function()
93{privateMethods.setIsValid($(this),value);}));}
94else
95{var properties=this.data('properties');return(properties.isValid);}},change:function(value)
96{if(value!=null&&$.isFunction(value))
97{return(this.each(function()
98{privateMethods.setEventChange($(this),value);}));}
99else
100{var options=this.data('options');if(options)
101{return(options.change);}
102else
103{return(null);}}},doTranslation:function()
104{return(this.each(function()
105{privateMethods.doTranslation($(this));}));}};var privateMethods={isValid:function(object,value)
106{var properties=object.data('properties');return(properties.re.exec(value))},setOptions:function(object,value)
107{var properties=object.data('properties'),options=object.data('options');if(!$.isPlainObject(value))return(false);properties.initialized=false;privateMethods.setMultilines(object,(value.multilines!=null)?value.multilines:options.multilines);privateMethods.setDisplayChar(object,(value.displayChar!=null)?value.displayChar:options.displayChar);privateMethods.setMaxChar(object,(value.maxChar!=null)?value.maxChar:options.maxChar);privateMethods.setNumRows(object,(value.numRows!=null)?value.numRows:options.numRows);privateMethods.setRegExp(object,(value.regExp!=null)?value.regExp:options.regExp);privateMethods.setLanguages(object,(value.languages!=null)?value.languages:options.languages);privateMethods.setLanguagesValues(object,(value.languagesValues!=null)?value.languagesValues:options.languagesValues);privateMethods.setCurrentLanguage(object,(value.currentLanguage!=null)?value.currentLanguage:options.currentLanguage);privateMethods.setLanguageSelector(object,(value.languageSelector!=null)?value.languageSelector:options.languageSelector);if((properties.languagesValues[options.currentLanguage]!=null&&properties.languagesValues[options.currentLanguage]!=''||properties.languagesValues[options.currentLanguage]==null)&&(value.value!=null&&value.value!=''||options.value!=''))privateMethods.setValue(object,(value.value!=null)?value.value:options.value,true);privateMethods.setTextAlign(object,(value.textAlign!=null)?value.textAlign:options.textAlign);privateMethods.setEventChange(object,(value.change!=null)?value.change:options.change);properties.initialized=true;},setRegExp:function(object,value)
108{var properties=object.data('properties'),flagRE=/^\/(.*)\/(.*)$/,flags=flagRE.exec(value);if(flags==null)
109{flags=['.*',''];}
110delete properties.re;properties.re=new RegExp(flags[1],flags[2]);},setIsValid:function(object,value)
111{var objects=object.data('objects'),properties=object.data('properties');if(properties.isValid!=value&&properties.initialized)
112{properties.isValid=value;if(properties.isValid)
113{objects.container.removeClass('ui-error');objects.input.removeClass('ui-error');}
114else
115{objects.container.addClass('ui-error');objects.input.addClass('ui-error');}}
116return(properties.isValid);},setDisplayChar:function(object,value)
117{var options=object.data('options'),objects=object.data('objects');properties=object.data('properties');if((!properties.initialized||options.displayChar!=value)&&value>=0)
118{options.displayChar=value;if(options.displayChar>0)
119{if(options.multilines)
120{objects.input.attr('cols',options.displayChar);}
121else
122{objects.input.attr('size',options.displayChar);}}
123else
124{if(options.multilines)
125{objects.input.removeAttr('size');}
126else
127{objects.input.removeAttr('cols');}}}
128if(object.width()>0)
129{objects.input.css({'width':object.width()+'px','max-width':object.width()+'px'});}
130return(options.displayChar);},setMaxChar:function(object,value)
131{var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.maxChar!=value)&&value>=0)
132{options.maxChar=value;if(!options.multilines)
133{if(options.maxChar>0)
134{objects.input.attr('maxlength',options.maxChar);}
135else
136{objects.input.removeAttr('maxlength');}}}
137return(options.maxChar);},setNumRows:function(object,value)
138{var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.numRows!=value)&&value>0)
139{options.numRows=value;if(options.multilines)
140{objects.input.attr('rows',options.numRows);}}
141return(options.numRows);},setDisabled:function(object,value)
142{var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.disabled!=value)&&(value==true||value==false))
143{options.disabled=value;objects.input.attr('disabled',options.disabled);}
144return(options.disabled);},setTextAlign:function(object,value)
145{var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.textAlign!=value)&&(value=='left'||value=='right'))
146{options.textAlign=value;objects.input.css('text-align',options.textAlign);}
147return(options.textAlign);},setMultilines:function(object,value)
148{var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.multilines!=value)&&(value==true||value==false))
149{options.multilines=value;if(options.multilines)
150{objects.input=$('<textarea/>');}
151else
152{objects.input=$('<input>',{type:"text",value:''});}
153objects.container.append(objects.input.bind('keyup.inputText',function(event)
154{return(privateMethods.keyUp(object,event));}).bind('change.inputText',function(event)
155{return(privateMethods.change(object,event));}).bind('keydown.inputText',function(event)
156{return(privateMethods.keyDown(object,event));}));}
157return(options.textAlign);},setLanguages:function(object,value)
158{var properties=object.data('properties'),options=object.data('options');options.languages=value;options.languagesValues={};if(options.languages.length>0)
159{if($.inArray(options.currentLanguage,options.languages)<0||options.currentLanguage=='')options.currentLanguage=options.languages[0];for(var i=0;i<options.languages.length;i++)
160{properties.languagesValues[options.languages[i]]='';}}
161else
162{options.currentLanguage='';}
163return(options.languages);},setLanguagesValues:function(object,value)
164{var options=object.data('options'),properties=object.data('properties');if(value==':clear')
165{for(var langValue in properties.languagesValues)
166{privateMethods.setLanguageValue(object,langValue,'',langValue==options.currentLanguage);}}
167else if(!$.isEmptyObject(value))
168{for(var langValue in value)
169{if(properties.languagesValues[langValue]!=null)
170privateMethods.setLanguageValue(object,langValue,value[langValue],langValue==options.currentLanguage);}}
171return(properties.languagesValues);},setLanguageValue:function(object,language,value,updateInput)
172{var options=object.data('options'),properties=object.data('properties');if(properties.languagesValues[language]!=null)
173{properties.languagesValues[language]=value;if(updateInput)privateMethods.setValue(object,properties.languagesValues[options.currentLanguage],true);}
174return(options.languagesValues);},setCurrentLanguage:function(object,value)
175{var options=object.data('options'),properties=object.data('properties');if((!properties.initialized||options.currentLanguage!=value)&&$.inArray(value,options.languages)>=0)
176{options.currentLanguage=value;privateMethods.setValue(object,properties.languagesValues[options.currentLanguage],true);}
177return(options.currentLanguage);},setLanguageSelector:function(object,value)
178{var options=object.data('options'),properties=object.data('properties');if((!properties.initialized||options.languageSelector!=value)&&value!=''&&$('#'+value).length>0)
179{if(options.languageSelector!='')$('#'+options.languageSelector).unbind('inputListChange');options.languageSelector=value;if(options.languageSelector!='')
180$('#'+options.languageSelector).bind('inputListChange',function(event,lang)
181{privateMethods.setCurrentLanguage(object,lang);});}
182return(options.currentLanguage);},setValue:function(object,value,apply)
183{var options=object.data('options'),properties=object.data('properties'),objects=object.data('objects');if(properties.initialized&&properties.value==value)
184{return(properties.value);}
185privateMethods.setIsValid(object,true);properties.value=value;if(apply)
186{objects.input.val(properties.value);}
187if(options.currentLanguage!='')privateMethods.setLanguageValue(object,options.currentLanguage,value,false);if(options.change)object.trigger('inputTextChange',properties.value);return(properties.value);},setEventChange:function(object,value)
188{var options=object.data('options');options.change=value;object.unbind('inputTextChange');if(value)object.bind('inputTextChange',options.change);return(options.change);},keyUp:function(object,event)
189{var objects=object.data('objects');if(event.keyCode==9||event.keyCode==12||event.keyCode==16||event.keyCode==17||event.keyCode==18||event.keyCode==33||event.keyCode==34||event.keyCode==35||event.keyCode==36||event.keyCode==37||event.keyCode==38||event.keyCode==39||event.keyCode==40||event.keyCode==45||event.keyCode==93)return(false);return(privateMethods.setValue(object,objects.input.val(),false));},change:function(object,event)
190{var objects=object.data('objects');return(privateMethods.setValue(object,objects.input.val(),false))},keyDown:function(object,event)
191{var objects=object.data('objects'),options=object.data('options');if(options.maxChar>0&&objects.input.val().length>=options.maxChar&&!(event.keyCode==8||event.keyCode==9||event.keyCode==12||event.keyCode==16||event.keyCode==17||event.keyCode==18||event.keyCode==33||event.keyCode==34||event.keyCode==35||event.keyCode==36||event.keyCode==37||event.keyCode==38||event.keyCode==39||event.keyCode==40||event.keyCode==45||event.keyCode==46||event.keyCode==93||objects.input.get(0).selectionStart!=objects.input.get(0).selectionEnd))return(false);},doTranslation:function(object)
192{var objects=object.data('objects'),properties=object.data('properties'),options=object.data('options');if(googleTranslate!=null)
193{googleTranslate(properties.value,'',options.currentLanguage.substr(0,2),function(result)
194{privateMethods.setValue(object,result,true);});}}};$.fn.inputText=function(method)
195{if(publicMethods[method])
196{return publicMethods[method].apply(this,Array.prototype.slice.call(arguments,1));}
197else if(typeof method==='object'||!method)
198{return publicMethods.init.apply(this,arguments);}
199else
200{$.error('Method '+method+' does not exist on jQuery.inputText');}}})(jQuery);
Note: See TracBrowser for help on using the repository browser.