From: edward Date: Tue, 24 Apr 2018 10:23:26 +0000 (+0800) Subject: roojs-bootstrap.js X-Git-Url: http://git.roojs.org/?a=commitdiff_plain;h=d940039062aba0ace70b67a7cca5005031134271;p=roojs1 roojs-bootstrap.js roojs-bootstrap-debug.js --- diff --git a/roojs-bootstrap-debug.js b/roojs-bootstrap-debug.js index 2a7d421589..1f81a8af1f 100644 --- a/roojs-bootstrap-debug.js +++ b/roojs-bootstrap-debug.js @@ -39998,6 +39998,8 @@ Roo.extend(Roo.bootstrap.MoneyField, Roo.bootstrap.ComboBox, { initEvents : function() { + this.indicator = this.indicatorEl(); + this.initCurrencyEvent(); this.initNumberEvent(); @@ -40015,8 +40017,6 @@ Roo.extend(Roo.bootstrap.MoneyField, Roo.bootstrap.ComboBox, { this.createList(); - this.indicator = this.indicatorEl(); - this.triggerEl = this.el.select('.input-group-addon', true).first(); this.triggerEl.on("click", this.onTriggerClick, this, { preventDefault : true }); @@ -40105,6 +40105,36 @@ Roo.extend(Roo.bootstrap.MoneyField, Roo.bootstrap.ComboBox, { initNumberEvent : function(e) { + this.inputEl().on("keydown" , this.fireKey, this); + this.inputEl().on("focus", this.onFocus, this); + this.inputEl().on("blur", this.onBlur, this); + + this.inputEl().relayEvent('keyup', this); + + if(this.indicator){ + this.indicator.addClass('invisible'); + } + + this.originalValue = this.getValue(); + + if(this.validationEvent == 'keyup'){ + this.validationTask = new Roo.util.DelayedTask(this.validate, this); + this.inputEl().on('keyup', this.filterValidation, this); + } + else if(this.validationEvent !== false){ + this.inputEl().on(this.validationEvent, this.validate, this, {buffer: this.validationDelay}); + } + + if(this.selectOnFocus){ + this.on("focus", this.preFocus, this); + + } + if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Roo.form.VTypes[this.vtype+'Mask']))){ + this.inputEl().on("keypress", this.filterKeys, this); + } else { + this.inputEl().relayEvent('keypress', this); + } + var allowed = "0123456789"; if(this.allowDecimals){ @@ -40140,7 +40170,7 @@ Roo.extend(Roo.bootstrap.MoneyField, Roo.bootstrap.ComboBox, { } }; - this.amountEl.on("keypress", keyPress, this); + this.inputEl().on("keypress", keyPress, this); }, @@ -40256,14 +40286,14 @@ Roo.extend(Roo.bootstrap.MoneyField, Roo.bootstrap.ComboBox, { this.value = v; if(this.rendered){ - this.amountEl.dom.value = (v === null || v === undefined ? '' : v); + this.inputEl().dom.value = (v === null || v === undefined ? '' : v); this.validate(); } }, getRawValue : function() { - var v = this.amountEl.getValue(); + var v = this.inputEl().getValue(); return v; }, @@ -40342,6 +40372,47 @@ Roo.extend(Roo.bootstrap.MoneyField, Roo.bootstrap.ComboBox, { getName: function() { return this.name; + }, + + beforeBlur : function() + { + if(!this.castInt){ + return; + } + + var v = this.parseValue(this.getRawValue()); + + if(v){ + this.setValue(v); + } + }, + + onBlur : function() + { + this.beforeBlur(); + + if(!Roo.isOpera && this.focusClass){ // don't touch in Opera + //this.el.removeClass(this.focusClass); + } + + this.hasFocus = false; + + if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ + this.validate(); + } + + var v = this.getValue(); + + if(String(v) !== String(this.startValue)){ + this.fireEvent('change', this, v, this.startValue); + } + + this.fireEvent("blur", this); + }, + + inputEl : function() + { + return this.amountEl ? this.amountEl : this.el.select('.roo-money-amount-input', true).first(); } }); \ No newline at end of file diff --git a/roojs-bootstrap.js b/roojs-bootstrap.js index 2eccad9453..2f252a0c14 100644 --- a/roojs-bootstrap.js +++ b/roojs-bootstrap.js @@ -1639,22 +1639,27 @@ var G=12-this.inputxs;var H={tag:'div',cls:'row roo-money-field',cn:[{tag:'div', ]}]};if(this.fieldLabel.length){var I={tag:'i',tooltip:'This field is required'};var J={tag:'label','for':id,cls:'control-label',cn:[]};var K={tag:'span',html:this.fieldLabel};I.cls='roo-required-indicator text-danger fa fa-lg fa-star left-indicator';J.cn=[I,K]; if(this.indicatorpos=='right'){I.cls='roo-required-indicator text-danger fa fa-lg fa-star right-indicator';J.cn=[K,I];}if(A=='left'){H={tag:'div',cn:[H]};if(this.labelWidth>12){J.style="width: "+this.labelWidth+'px';}if(this.labelWidth<13&&this.labelmd==0){this.labelmd=this.labelWidth; }if(this.labellg>0){J.cls+=' col-lg-'+this.labellg;C.cls+=' col-lg-'+(12-this.labellg);}if(this.labelmd>0){J.cls+=' col-md-'+this.labelmd;H.cls+=' col-md-'+(12-this.labelmd);}if(this.labelsm>0){J.cls+=' col-sm-'+this.labelsm;H.cls+=' col-sm-'+(12-this.labelsm); -}if(this.labelxs>0){J.cls+=' col-xs-'+this.labelxs;H.cls+=' col-xs-'+(12-this.labelxs);}}}B.cn=[J,H];var L=this;['xs','sm','md','lg'].map(function(M){if(L[M]){B.cls+=' col-'+M+'-'+L[M];}});return B;},initEvents:function(){this.initCurrencyEvent();this.initNumberEvent(); -},initCurrencyEvent:function(){if(!this.store){throw "can not find store for combo";}this.store=Roo.factory(this.store,Roo.data);this.store.parent=this;this.createList();this.indicator=this.indicatorEl();this.triggerEl=this.el.select('.input-group-addon',true).first(); +}if(this.labelxs>0){J.cls+=' col-xs-'+this.labelxs;H.cls+=' col-xs-'+(12-this.labelxs);}}}B.cn=[J,H];var L=this;['xs','sm','md','lg'].map(function(M){if(L[M]){B.cls+=' col-'+M+'-'+L[M];}});return B;},initEvents:function(){this.indicator=this.indicatorEl(); +this.initCurrencyEvent();this.initNumberEvent();},initCurrencyEvent:function(){if(!this.store){throw "can not find store for combo";}this.store=Roo.factory(this.store,Roo.data);this.store.parent=this;this.createList();this.triggerEl=this.el.select('.input-group-addon',true).first(); this.triggerEl.on("click",this.onTriggerClick,this,{preventDefault:true});this.currencyEl=this.el.select('.roo-money-currency-input',true).first();this.amountEl=this.el.select('.roo-money-amount-input',true).first();var A=this;(function(){var lw=A.listWidth||Math.max(A.inputEl().getWidth(),A.minListWidth); A.list.setWidth(lw);}).defer(100);this.list.on('mouseover',this.onViewOver,this);this.list.on('mousemove',this.onViewMove,this);this.list.on('scroll',this.onViewScroll,this);if(!this.tpl){this.tpl='
  • {'+this.currencyField+'}
  • ';}this.view=new Roo.View(this.list,this.tpl,{singleSelect:true,store:this.store,selectedClass:this.selectedClass} );this.view.on('click',this.onViewClick,this);this.store.on('beforeload',this.onBeforeLoad,this);this.store.on('load',this.onLoad,this);this.store.on('loadexception',this.onLoadException,this);this.keyNav=new Roo.KeyNav(this.currencyEl,{"up":function(e){this.inKeyMode=true; this.selectPrev();},"down":function(e){if(!this.isExpanded()){this.onTriggerClick();}else{this.inKeyMode=true;this.selectNext();}},"enter":function(e){this.collapse();if(this.fireEvent("specialkey",this,e)){this.onViewClick(false);}return true;},"esc":function(e){this.collapse(); },"tab":function(e){this.collapse();if(this.fireEvent("specialkey",this,e)){this.onViewClick(false);}return true;},scope:this,doRelay:function(B,C,D){if(D=='down'||this.scope.isExpanded()){return Roo.KeyNav.prototype.doRelay.apply(this,arguments);}return true; -},forceKeyDown:true});},initNumberEvent:function(e){var A="0123456789";if(this.allowDecimals){A+=this.decimalSeparator;}if(this.allowNegative){A+="-";}this.stripCharsRe=new RegExp('[^'+A+']','gi');var B=function(e){var k=e.getKey();var c=e.getCharCode();if((String.fromCharCode(c)=='.'||String.fromCharCode(c)=='-')&&A.indexOf(String.fromCharCode(c))===-1){e.stopEvent(); -return;}if(!Roo.isIE&&(e.isSpecialKey()||k==e.BACKSPACE||k==e.DELETE)){return;}if(A.indexOf(String.fromCharCode(c))===-1){e.stopEvent();}};this.amountEl.on("keypress",B,this);},onTriggerClick:function(e){if(this.disabled){return;}this.page=0;this.loadNext=false; +},forceKeyDown:true});},initNumberEvent:function(e){this.inputEl().on("keydown",this.fireKey,this);this.inputEl().on("focus",this.onFocus,this);this.inputEl().on("blur",this.onBlur,this);this.inputEl().relayEvent('keyup',this);if(this.indicator){this.indicator.addClass('invisible'); +}this.originalValue=this.getValue();if(this.validationEvent=='keyup'){this.validationTask=new Roo.util.DelayedTask(this.validate,this);this.inputEl().on('keyup',this.filterValidation,this);}else if(this.validationEvent!==false){this.inputEl().on(this.validationEvent,this.validate,this,{buffer:this.validationDelay} +);}if(this.selectOnFocus){this.on("focus",this.preFocus,this);}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Roo.form.VTypes[this.vtype+'Mask']))){this.inputEl().on("keypress",this.filterKeys,this);}else{this.inputEl().relayEvent('keypress',this); +}var A="0123456789";if(this.allowDecimals){A+=this.decimalSeparator;}if(this.allowNegative){A+="-";}this.stripCharsRe=new RegExp('[^'+A+']','gi');var B=function(e){var k=e.getKey();var c=e.getCharCode();if((String.fromCharCode(c)=='.'||String.fromCharCode(c)=='-')&&A.indexOf(String.fromCharCode(c))===-1){e.stopEvent(); +return;}if(!Roo.isIE&&(e.isSpecialKey()||k==e.BACKSPACE||k==e.DELETE)){return;}if(A.indexOf(String.fromCharCode(c))===-1){e.stopEvent();}};this.inputEl().on("keypress",B,this);},onTriggerClick:function(e){if(this.disabled){return;}this.page=0;this.loadNext=false; if(this.isExpanded()){this.collapse();return;}this.hasFocus=true;if(this.triggerAction=='all'){this.doQuery(this.allQuery,true);return;}this.doQuery(this.getRawValue());},getCurrency:function(){var v=this.currencyEl.getValue();return v;},restrictHeight:function(){this.list.alignTo(this.currencyEl,this.listAlign); this.list.alignTo(this.currencyEl,this.listAlign);},onViewClick:function(A,B,el,e){var C=this.view.getSelectedIndexes()[0];var r=this.store.getAt(C);if(r){this.onSelect(r,C);}},onSelect:function(A,B){if(this.fireEvent('beforeselect',this,A,B)!==false){this.setFromCurrencyData(B>-1?A.data:false); this.collapse();this.fireEvent('select',this,A,B);}},setFromCurrencyData:function(o){var A='';this.lastCurrency=o;if(this.currencyName){A=!o||typeof(o[this.currencyName])=='undefined'?'':o[this.currencyName];}else{Roo.log('no currencyName value set for '+(this.name?this.name:this.id)); }this.lastSelectionText=A;this.setCurrency(A);},setFromData:function(o){this.setFromCurrencyData(o);var A='';if(this.name){A=!o||typeof(o[this.name])=='undefined'?'':o[this.name];}else{Roo.log('no value set for '+(this.name?this.name:this.id));}this.setValue(A); -},setCurrency:function(v){this.currencyValue=v;if(this.rendered){this.currencyEl.dom.value=(v===null||v===undefined?'':v);this.validate();}},setValue:function(v){v=this.fixPrecision(v);v=String(v).replace(".",this.decimalSeparator);this.value=v;if(this.rendered){this.amountEl.dom.value=(v===null||v===undefined?'':v); -this.validate();}},getRawValue:function(){var v=this.amountEl.getValue();return v;},getValue:function(){return this.fixPrecision(this.parseValue(this.getRawValue()));},parseValue:function(A){A=parseFloat(String(A).replace(this.decimalSeparator,"."));return isNaN(A)?'':A; +},setCurrency:function(v){this.currencyValue=v;if(this.rendered){this.currencyEl.dom.value=(v===null||v===undefined?'':v);this.validate();}},setValue:function(v){v=this.fixPrecision(v);v=String(v).replace(".",this.decimalSeparator);this.value=v;if(this.rendered){this.inputEl().dom.value=(v===null||v===undefined?'':v); +this.validate();}},getRawValue:function(){var v=this.inputEl().getValue();return v;},getValue:function(){return this.fixPrecision(this.parseValue(this.getRawValue()));},parseValue:function(A){A=parseFloat(String(A).replace(this.decimalSeparator,"."));return isNaN(A)?'':A; },fixPrecision:function(A){var B=isNaN(A);if(!this.allowDecimals||this.decimalPrecision==-1||B||!A){return B?'':A;}return parseFloat(A).toFixed(this.decimalPrecision);},decimalPrecisionFcn:function(v){return Math.floor(v);},validateValue:function(A){if(!Roo.bootstrap.MoneyField.superclass.validateValue.call(this,A)){return false; }var B=this.parseValue(A);if(isNaN(B)){this.markInvalid(String.format(this.nanText,A));return false;}if(Bthis.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue)); return false;}return true;},validate:function(){if(this.disabled){this.markValid();return true;}var A=this.getCurrency();if(this.validateValue(this.getRawValue())&&A.length){this.markValid();return true;}this.markInvalid();return false;},getName:function(){return this.name; -}}); +},beforeBlur:function(){if(!this.castInt){return;}var v=this.parseValue(this.getRawValue());if(v){this.setValue(v);}},onBlur:function(){this.beforeBlur();if(!Roo.isOpera&&this.focusClass){}this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate(); +}var v=this.getValue();if(String(v)!==String(this.startValue)){this.fireEvent('change',this,v,this.startValue);}this.fireEvent("blur",this);},inputEl:function(){return this.amountEl?this.amountEl:this.el.select('.roo-money-amount-input',true).first();}}); +