From c7df531a95d72cb27360b4eb8337866d091f9137 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Mon, 31 Aug 2015 16:02:54 +0800 Subject: [PATCH] buildSDK/dependancy_bootstrap.txt roojs-bootstrap.js roojs-bootstrap-debug.js --- buildSDK/dependancy_bootstrap.txt | 1 + roojs-bootstrap-debug.js | 385 ++++++++++++++++++++++++++++++ roojs-bootstrap.js | 10 + 3 files changed, 396 insertions(+) diff --git a/buildSDK/dependancy_bootstrap.txt b/buildSDK/dependancy_bootstrap.txt index 2a6b655c7f..ed6d2ed03c 100644 --- a/buildSDK/dependancy_bootstrap.txt +++ b/buildSDK/dependancy_bootstrap.txt @@ -79,6 +79,7 @@ Roo.bootstrap.TabPanel Roo.bootstrap.DateField Roo.bootstrap.TimeField +Roo.bootstrap.MonthField Roo.bootstrap.CheckBox Roo.bootstrap.Radio diff --git a/roojs-bootstrap-debug.js b/roojs-bootstrap-debug.js index dacaf4f33a..503be7511c 100644 --- a/roojs-bootstrap-debug.js +++ b/roojs-bootstrap-debug.js @@ -16141,6 +16141,391 @@ Roo.apply(Roo.bootstrap.TimeField, { + /* + * - LGPL + * + * MonthField + * + */ + +/** + * @class Roo.bootstrap.MonthField + * @extends Roo.bootstrap.Input + * Bootstrap MonthField class + * + * @cfg {String} language default en + * + * @constructor + * Create a new MonthField + * @param {Object} config The config object + */ + +Roo.bootstrap.MonthField = function(config){ + Roo.bootstrap.MonthField.superclass.constructor.call(this, config); + + this.addEvents({ + /** + * @event show + * Fires when this field show. + * @param {Roo.bootstrap.MonthField} this + * @param {Mixed} date The date value + */ + show : true, + /** + * @event show + * Fires when this field hide. + * @param {Roo.bootstrap.MonthField} this + * @param {Mixed} date The date value + */ + hide : true, + /** + * @event select + * Fires when select a date. + * @param {Roo.bootstrap.MonthField} this + * @param {Mixed} date The date value + */ + select : true + }); +}; + +Roo.extend(Roo.bootstrap.MonthField, Roo.bootstrap.Input, { + + onRender: function(ct, position) + { + + Roo.bootstrap.MonthField.superclass.onRender.call(this, ct, position); + + this.language = this.language || 'en'; + this.language = this.language in Roo.bootstrap.MonthField.dates ? this.language : this.language.split('-')[0]; + this.language = this.language in Roo.bootstrap.MonthField.dates ? this.language : "en"; + + this.isRTL = Roo.bootstrap.MonthField.dates[this.language].rtl || false; + this.isInline = false; + this.isInput = true; + this.component = this.el.select('.add-on', true).first() || false; + this.component = (this.component && this.component.length === 0) ? false : this.component; + this.hasInput = this.component && this.inputEL().length; + + this.minViewMode = 1; + this.viewMode = 1; + + this.pickerEl = Roo.get(document.body).createChild(Roo.bootstrap.MonthField.template); + + this.picker().setVisibilityMode(Roo.Element.DISPLAY).originalDisplay = 'block'; + + this.picker().on('mousedown', this.onMousedown, this); + this.picker().on('click', this.onClick, this); + + this.picker().addClass('datepicker-dropdown'); + + this.startViewMode = this.viewMode; + + Roo.each(this.picker().select('tbody > tr > td', true).elements, function(v){ + v.setStyle('width', '189px'); + }); + + this.fillMonths(); + this.update(); + + if(this.isInline) { + this.show(); + } + }, + + setValue: function(v) + { + Roo.bootstrap.MonthField.superclass.setValue.call(this, v); + + this.update(); + + this.fireEvent('select', this, this.date); + + }, + + getValue: function() + { + return this.value; + }, + + onClick: function(e) + { + e.stopPropagation(); + e.preventDefault(); + + var target = e.getTarget(); + + if(target.nodeName.toLowerCase() === 'i'){ + target = Roo.get(target).dom.parentNode; + } + + var nodeName = target.nodeName; + var className = target.className; + var html = target.innerHTML; + + if(nodeName.toLowerCase() != 'span' || className.indexOf('disabled') > -1 || className.indexOf('month') == -1){ + return; + } + + this.vIndex = Roo.bootstrap.MonthField.dates[this.language].monthsShort.indexOf(html); + + this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]); + + this.hide(); + + }, + + picker : function() + { + return this.pickerEl; + }, + + fillMonths: function() + { + var i = 0 + var months = this.picker().select('>.datepicker-months td', true).first(); + + months.dom.innerHTML = ''; + + while (i < 12) { + var month = { + tag: 'span', + cls: 'month', + html: Roo.bootstrap.MonthField.dates[this.language].monthsShort[i++] + } + + months.createChild(month); + } + + }, + + update: function() + { + var _this = this; + + if(typeof(this.vIndex) == 'undefined' && this.value.length){ + this.vIndex = Roo.bootstrap.MonthField.dates[this.language].months.indexOf(this.value); + } + + Roo.each(this.pickerEl.select('> .datepicker-months tbody > tr > td > span', true).elements, function(e, k){ + e.removeClass('active'); + + if(typeof(_this.vIndex) != 'undefined' && k == _this.vIndex){ + e.addClass('active'); + } + }) + }, + + place: function() + { + if(this.isInline) return; + + this.picker().removeClass(['bottom', 'top']); + + if((Roo.lib.Dom.getViewHeight() + Roo.get(document.body).getScroll().top) - (this.inputEl().getBottom() + this.picker().getHeight()) < 0){ + /* + * place to the top of element! + * + */ + + this.picker().addClass('top'); + this.picker().setTop(this.inputEl().getTop() - this.picker().getHeight()).setLeft(this.inputEl().getLeft()); + + return; + } + + this.picker().addClass('bottom'); + + this.picker().setTop(this.inputEl().getBottom()).setLeft(this.inputEl().getLeft()); + }, + + onFocus : function() + { + Roo.bootstrap.MonthField.superclass.onFocus.call(this); + this.show(); + }, + + onBlur : function() + { + Roo.bootstrap.MonthField.superclass.onBlur.call(this); + + var d = this.inputEl().getValue(); + + this.setValue(d); + + this.hide(); + }, + + show : function() + { + this.picker().show(); + this.picker().select('>.datepicker-months', true).first().show(); + this.update(); + this.place(); + + this.fireEvent('show', this, this.date); + }, + + hide : function() + { + if(this.isInline) return; + this.picker().hide(); + this.fireEvent('hide', this, this.date); + + }, + + onMousedown: function(e) + { + e.stopPropagation(); + e.preventDefault(); + }, + + keyup: function(e) + { + Roo.bootstrap.MonthField.superclass.keyup.call(this); + this.update(); + }, + + fireKey: function(e) + { + if (!this.picker().isVisible()){ + if (e.keyCode == 27) // allow escape to hide and re-show picker + this.show(); + return; + } + + var dir; + + switch(e.keyCode){ + case 27: // escape + this.hide(); + e.preventDefault(); + break; + case 37: // left + case 39: // right + dir = e.keyCode == 37 ? -1 : 1; + + this.vIndex = this.vIndex + dir; + + if(this.vIndex < 0){ + this.vIndex = 0; + } + + if(this.vIndex > 11){ + this.vIndex = 11; + } + + if(isNaN(this.vIndex)){ + this.vIndex = 0; + } + + this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]); + + break; + case 38: // up + case 40: // down + + dir = e.keyCode == 38 ? -1 : 1; + + this.vIndex = this.vIndex + dir * 4; + + if(this.vIndex < 0){ + this.vIndex = 0; + } + + if(this.vIndex > 11){ + this.vIndex = 11; + } + + if(isNaN(this.vIndex)){ + this.vIndex = 0; + } + + this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]); + break; + + case 13: // enter + + if(typeof(this.vIndex) != 'undefined' && !isNaN(this.vIndex)){ + this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]); + } + + this.hide(); + e.preventDefault(); + break; + case 9: // tab + if(typeof(this.vIndex) != 'undefined' && !isNaN(this.vIndex)){ + this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]); + } + this.hide(); + break; + case 16: // shift + case 17: // ctrl + case 18: // alt + break; + default : + this.hide(); + + } + }, + + remove: function() + { + this.picker().remove(); + } + +}); + +Roo.apply(Roo.bootstrap.MonthField, { + + content : { + tag: 'tbody', + cn: [ + { + tag: 'tr', + cn: [ + { + tag: 'td', + colspan: '7' + } + ] + } + ] + }, + + dates:{ + en: { + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] + } + } +}); + +Roo.apply(Roo.bootstrap.MonthField, { + + template : { + tag: 'div', + cls: 'datepicker dropdown-menu roo-dynamic', + cn: [ + { + tag: 'div', + cls: 'datepicker-months', + cn: [ + { + tag: 'table', + cls: 'table-condensed', + cn:[ + Roo.bootstrap.DateField.content + ] + } + ] + } + ] + } +}); + + + + /* * - LGPL * diff --git a/roojs-bootstrap.js b/roojs-bootstrap.js index 76ff0f8160..01c5cac2cc 100644 --- a/roojs-bootstrap.js +++ b/roojs-bootstrap.js @@ -355,6 +355,16 @@ e.preventDefault();switch(e.keyCode){case 27:this.hide();break;case 37:case 39:t this.pop.select('.timepicker-hour',true).first().dom.innerHTML=A;this.pop.select('.timepicker-minute',true).first().dom.innerHTML=B;this.pop.select('button',true).first().dom.innerHTML=C;},place:function(){this.picker().removeClass(['bottom-left','bottom-right','top-left','top-right']);var A=['bottom'];if((Roo.lib.Dom.getViewHeight()+Roo.get(document.body).getScroll().top)-(this.inputEl().getBottom()+this.picker().getHeight())<0){A.pop();A.push('top');} A.push('right');if((Roo.lib.Dom.getViewWidth()+Roo.get(document.body).getScroll().left)-(this.inputEl().getLeft()+this.picker().getWidth())<0){A.pop();A.push('left');} this.picker().addClass(A.join('-'));var B=this;Roo.each(A,function(c){if(c=='bottom'){B.picker().setTop(B.inputEl().getHeight());return;}if(c=='top'){B.picker().setTop(0-B.picker().getHeight());return;}if(c=='left'){B.picker().setLeft(B.inputEl().getLeft()+B.inputEl().getWidth()-B.el.getLeft()-B.picker().getWidth());return;}if(c=='right'){B.picker().setLeft(B.inputEl().getLeft()-B.el.getLeft());return;}});},onFocus:function(){Roo.bootstrap.TimeField.superclass.onFocus.call(this);this.show();},onBlur:function(){Roo.bootstrap.TimeField.superclass.onBlur.call(this);this.hide();},show:function(){this.picker().show();this.pop.show();this.update();this.place();this.fireEvent('show',this,this.date);},hide:function(){this.picker().hide();this.pop.hide();this.fireEvent('hide',this,this.date);},setTime:function(){this.hide();this.setValue(this.time.format(this.format));this.fireEvent('select',this,this.date);},onMousedown:function(e){e.stopPropagation();e.preventDefault();},onIncrementHours:function(){Roo.log('onIncrementHours');this.time=this.time.add(Date.HOUR,1);this.update();},onDecrementHours:function(){Roo.log('onDecrementHours');this.time=this.time.add(Date.HOUR,-1);this.update();},onIncrementMinutes:function(){Roo.log('onIncrementMinutes');this.time=this.time.add(Date.MINUTE,1);this.update();},onDecrementMinutes:function(){Roo.log('onDecrementMinutes');this.time=this.time.add(Date.MINUTE,-1);this.update();},onTogglePeriod:function(){Roo.log('onTogglePeriod');this.time=this.time.add(Date.HOUR,12);this.update();}});Roo.apply(Roo.bootstrap.TimeField,{content:{tag:'tbody',cn:[{tag:'tr',cn:[{tag:'td',colspan:'7'}]}]},footer:{tag:'tfoot',cn:[{tag:'tr',cn:[{tag:'th',colspan:'7',cls:'',cn:[{tag:'button',cls:'btn btn-info ok',html:'OK'}]}]}]}});Roo.apply(Roo.bootstrap.TimeField,{template:{tag:'div',cls:'datepicker dropdown-menu',cn:[{tag:'div',cls:'datepicker-time',cn:[{tag:'table',cls:'table-condensed',cn:[Roo.bootstrap.TimeField.content,Roo.bootstrap.TimeField.footer]}]}]}}); +//Roo/bootstrap/MonthField.js +Roo.bootstrap.MonthField=function(A){Roo.bootstrap.MonthField.superclass.constructor.call(this,A);this.addEvents({show:true,hide:true,select:true});};Roo.extend(Roo.bootstrap.MonthField,Roo.bootstrap.Input,{onRender:function(ct,A){Roo.bootstrap.MonthField.superclass.onRender.call(this,ct,A);this.language=this.language||'en';this.language=this.language in Roo.bootstrap.MonthField.dates?this.language:this.language.split('-')[0];this.language=this.language in Roo.bootstrap.MonthField.dates?this.language:"en";this.isRTL=Roo.bootstrap.MonthField.dates[this.language].rtl||false;this.isInline=false;this.isInput=true;this.component=this.el.select('.add-on',true).first()||false;this.component=(this.component&&this.component.length===0)?false:this.component;this.hasInput=this.component&&this.inputEL().length;this.minViewMode=1;this.viewMode=1;this.pickerEl=Roo.get(document.body).createChild(Roo.bootstrap.MonthField.template);this.picker().setVisibilityMode(Roo.Element.DISPLAY).originalDisplay='block';this.picker().on('mousedown',this.onMousedown,this);this.picker().on('click',this.onClick,this);this.picker().addClass('datepicker-dropdown');this.startViewMode=this.viewMode;Roo.each(this.picker().select('tbody > tr > td',true).elements,function(v){v.setStyle('width','189px');});this.fillMonths();this.update();if(this.isInline){this.show();}},setValue:function(v){Roo.bootstrap.MonthField.superclass.setValue.call(this,v);this.update();this.fireEvent('select',this,this.date);},getValue:function(){return this.value;},onClick:function(e){e.stopPropagation();e.preventDefault();var A=e.getTarget();if(A.nodeName.toLowerCase()==='i'){A=Roo.get(A).dom.parentNode;}var B=A.nodeName;var C=A.className;var D=A.innerHTML;if(B.toLowerCase()!='span'||C.indexOf('disabled')>-1||C.indexOf('month')==-1){return;} +this.vIndex=Roo.bootstrap.MonthField.dates[this.language].monthsShort.indexOf(D);this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]);this.hide();},picker:function(){return this.pickerEl;},fillMonths:function(){var i=0var months=this.picker().select('>.datepicker-months td',true).first();months.dom.innerHTML='';while(i<12){var A={tag:'span',cls:'month',html:Roo.bootstrap.MonthField.dates[this.language].monthsShort[i++]} +months.createChild(A);}},update:function(){var A=this;if(typeof(this.vIndex)=='undefined'&&this.value.length){this.vIndex=Roo.bootstrap.MonthField.dates[this.language].months.indexOf(this.value);} +Roo.each(this.pickerEl.select('> .datepicker-months tbody > tr > td > span',true).elements,function(e,k){e.removeClass('active');if(typeof(A.vIndex)!='undefined'&&k==A.vIndex){e.addClass('active');}})},place:function(){if(this.isInline)return;this.picker().removeClass(['bottom','top']);if((Roo.lib.Dom.getViewHeight()+Roo.get(document.body).getScroll().top)-(this.inputEl().getBottom()+this.picker().getHeight())<0){this.picker().addClass('top');this.picker().setTop(this.inputEl().getTop()-this.picker().getHeight()).setLeft(this.inputEl().getLeft());return;} +this.picker().addClass('bottom');this.picker().setTop(this.inputEl().getBottom()).setLeft(this.inputEl().getLeft());},onFocus:function(){Roo.bootstrap.MonthField.superclass.onFocus.call(this);this.show();},onBlur:function(){Roo.bootstrap.MonthField.superclass.onBlur.call(this);var d=this.inputEl().getValue();this.setValue(d);this.hide();},show:function(){this.picker().show();this.picker().select('>.datepicker-months',true).first().show();this.update();this.place();this.fireEvent('show',this,this.date);},hide:function(){if(this.isInline)return;this.picker().hide();this.fireEvent('hide',this,this.date);},onMousedown:function(e){e.stopPropagation();e.preventDefault();},keyup:function(e){Roo.bootstrap.MonthField.superclass.keyup.call(this);this.update();},fireKey:function(e){if(!this.picker().isVisible()){if(e.keyCode==27)this.show();return;}var A;switch(e.keyCode){case 27:this.hide();e.preventDefault();break;case 37:case 39:A=e.keyCode==37?-1:1;this.vIndex=this.vIndex+A;if(this.vIndex<0){this.vIndex=0;}if(this.vIndex>11){this.vIndex=11;}if(isNaN(this.vIndex)){this.vIndex=0;} +this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]);break;case 38:case 40:A=e.keyCode==38?-1:1;this.vIndex=this.vIndex+A*4;if(this.vIndex<0){this.vIndex=0;}if(this.vIndex>11){this.vIndex=11;}if(isNaN(this.vIndex)){this.vIndex=0;} +this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]);break;case 13:if(typeof(this.vIndex)!='undefined'&&!isNaN(this.vIndex)){this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]);} +this.hide();e.preventDefault();break;case 9:if(typeof(this.vIndex)!='undefined'&&!isNaN(this.vIndex)){this.setValue(Roo.bootstrap.MonthField.dates[this.language].months[this.vIndex]);} +this.hide();break;case 16:case 17:case 18:break;default:this.hide();}},remove:function(){this.picker().remove();}});Roo.apply(Roo.bootstrap.MonthField,{content:{tag:'tbody',cn:[{tag:'tr',cn:[{tag:'td',colspan:'7'}]}]},dates:{en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}}});Roo.apply(Roo.bootstrap.MonthField,{template:{tag:'div',cls:'datepicker dropdown-menu roo-dynamic',cn:[{tag:'div',cls:'datepicker-months',cn:[{tag:'table',cls:'table-condensed',cn:[Roo.bootstrap.DateField.content]}]}]}}); //Roo/bootstrap/CheckBox.js Roo.bootstrap.CheckBox=function(A){Roo.bootstrap.CheckBox.superclass.constructor.call(this,A);this.addEvents({check:true});};Roo.extend(Roo.bootstrap.CheckBox,Roo.bootstrap.Input,{inputType:'checkbox',inputValue:1,valueOff:0,boxLabel:false,checked:false,weight:false,inline:false,getAutoCreate:function(){var A=(!this.labelAlign)?this.parentLabelAlign():this.labelAlign;var id=Roo.id();var B={};B.cls='form-group '+this.inputType;if(this.inline){B.cls+=' '+this.inputType+'-inline';}var C={tag:'input',id:id,type:this.inputType,value:this.inputType=='radio'?this.inputValue:((!this.checked)?this.valueOff:this.inputValue),cls:'roo-'+this.inputType,placeholder:this.placeholder||''};if(this.weight){B.cls+=" "+this.inputType+"-"+this.weight;}if(this.disabled){C.disabled=true;}if(this.checked){C.checked=this.checked;}if(this.name){C.name=this.name;}if(this.size){C.cls+=' input-'+this.size;}var D=this;['xs','sm','md','lg'].map(function(G){if(D[G]){B.cls+=' col-'+G+'-'+D[G];}});var E=C;if(this.before||this.after){E={cls:'input-group',cn:[]};if(this.before){E.cn.push({tag:'span',cls:'input-group-addon',html:this.before});} E.cn.push(C);if(this.after){E.cn.push({tag:'span',cls:'input-group-addon',html:this.after});}}if(A==='left'&&this.fieldLabel.length){Roo.log("left and has label");B.cn=[{tag:'label','for':id,cls:'control-label col-md-'+this.labelWidth,html:this.fieldLabel},{cls:"col-md-"+(12-this.labelWidth),cn:[E]}];}else if(this.fieldLabel.length){Roo.log(" label");B.cn=[{tag:this.boxLabel?'span':'label','for':id,cls:'control-label box-input-label',html:this.fieldLabel},E];}else {Roo.log(" no label && no align");B.cn=[E];}if(this.boxLabel){var F={tag:'label',cls:'box-label',html:this.boxLabel};if(this.tooltip){F.tooltip=this.tooltip;} -- 2.39.2