Roo/bootstrap/form/DateField.js
authorleon <leon@roojs.com>
Thu, 10 Aug 2023 03:31:32 +0000 (11:31 +0800)
committerleon <leon@roojs.com>
Thu, 10 Aug 2023 03:31:32 +0000 (11:31 +0800)
roojs-bootstrap.js
roojs-bootstrap-debug.js

Roo/bootstrap/form/DateField.js
roojs-bootstrap-debug.js
roojs-bootstrap.js

index d9ebd95..8b59c2f 100644 (file)
@@ -181,18 +181,12 @@ Roo.extend(Roo.bootstrap.form.DateField, Roo.bootstrap.form.Input,  {
                 month : 'short'
             }).format(date);
 
-            if(latinRegex.test(day)) {
-                dayShort = day.substring(0, 3);
-                dayMin = day.substring(0, 2);
+            if(latinRegex.test(month)) {
+                monthShort = month.substring(0, 3);
             }
 
-            translation['months'].push(new Intl.DateTimeFormat(locale, {
-                month : 'long'
-            }).format(date));
-
-            translation['monthsShort'].push(new Intl.DateTimeFormat(locale, {
-                month : 'short'
-            }).format(date));
+            translation['months'] = month;
+            translation['monthsShort'] = monthShort;
         }
     },
         
index 8dad751..626e955 100644 (file)
@@ -22974,9 +22974,9 @@ Roo.extend(Roo.bootstrap.form.DateField, Roo.bootstrap.form.Input,  {
             this.setValue(this.date);
     },
 
-    setDatesTranslation: function(lang) 
+    translateDates: function(lang) 
     {
-        Roo.bootstrap.form.DateField.dates[lang] = {
+        var translation = Roo.bootstrap.form.DateField.dates[lang] = {
             days: [],
             daysShort: [],
             daysMin: [],
@@ -22985,34 +22985,54 @@ Roo.extend(Roo.bootstrap.form.DateField, Roo.bootstrap.form.Input,  {
             today: "Today"
         };
 
-        locale = lang.replace('_', '-');
+        var locale = lang.replace('_', '-');
 
+        var latinRegex = new RegExp('^[A-Za-z]+$');
+
+        // fill days
         for(var i = 0; i < 7; i++) {
             var date = new Date(2020, 0, 5 + i);
 
-            Roo.bootstrap.form.DateField.dates[lang]['days'].push(new Intl.DateTimeFormat(locale, {
+            var day = new Intl.DateTimeFormat(locale, {
                 weekday : 'long'
-            }).format(date));
+            }).format(date);
 
-            Roo.bootstrap.form.DateField.dates[lang]['daysShort'].push(new Intl.DateTimeFormat(locale, {
+            var dayShort = new Intl.DateTimeFormat(locale, {
                 weekday : 'short'
-            }).format(date));
+            }).format(date);
 
-            Roo.bootstrap.form.DateField.dates[lang]['daysMin'].push(new Intl.DateTimeFormat(locale, {
+            var dayMin = new Intl.DateTimeFormat(locale, {
                 weekday : 'narrow'
-            }).format(date));
+            }).format(date);
+
+            if(latinRegex.test(day)) {
+                dayShort = day.substring(0, 3);
+                dayMin = day.substring(0, 2);
+            }
+            
+            translation['days'] = day;
+            translation['daysShort'] = dayShort;
+            translation['daysMin'] = dayMin;
         }
 
+        // fill months
         for(var i = 0; i < 12; i++) {
             var date = new Date(2020, i);
 
-            Roo.bootstrap.form.DateField.dates[lang]['months'].push(new Intl.DateTimeFormat(locale, {
+            var month = new Intl.DateTimeFormat(locale, {
                 month : 'long'
-            }).format(date));
+            }).format(date);
 
-            Roo.bootstrap.form.DateField.dates[lang]['monthsShort'].push(new Intl.DateTimeFormat(locale, {
+            var monthShort = new Intl.DateTimeFormat(locale, {
                 month : 'short'
-            }).format(date));
+            }).format(date);
+
+            if(latinRegex.test(month)) {
+                monthShort = month.substring(0, 3);
+            }
+
+            translation['months'] = month;
+            translation['monthsShort'] = monthShort;
         }
     },
         
@@ -23021,7 +23041,7 @@ Roo.extend(Roo.bootstrap.form.DateField, Roo.bootstrap.form.Input,  {
         
         Roo.bootstrap.form.DateField.superclass.onRender.call(this, ct, position);
 
-        this.setDatesTranslation(this.language);
+        this.translateDates(this.language);
 
         Roo.log(Roo.bootstrap.form.DateField.dates);
         
index f093435..7c772e6 100644 (file)
@@ -965,12 +965,12 @@ if(this.endX>this.startX){A.showPanelPrev();return;}if(this.startX>this.endX){A.
 // Roo/bootstrap/form/DateField.js
 Roo.bootstrap.form.DateField=function(A){Roo.bootstrap.form.DateField.superclass.constructor.call(this,A);this.addEvents({show:true,hide:true,select:true,beforeselect:true});};Roo.extend(Roo.bootstrap.form.DateField,Roo.bootstrap.form.Input,{format:"m/d/y",weekStart:0,viewMode:'',minViewMode:'',todayHighlight:false,todayBtn:false,language:'en',keyboardNavigation:true,calendarWeeks:false,startDate:-Infinity,endDate:Infinity,daysOfWeekDisabled:[],_events:[],singleMode:false,hiddenField:false,UTCDate:function(){return new Date(Date.UTC.apply(Date,arguments));
 },UTCToday:function(){var A=new Date();return this.UTCDate(A.getUTCFullYear(),A.getUTCMonth(),A.getUTCDate());},getDate:function(){var d=this.getUTCDate();return new Date(d.getTime()+(d.getTimezoneOffset()*60000));},getUTCDate:function(){return this.date;
-},setDate:function(d){this.setUTCDate(new Date(d.getTime()-(d.getTimezoneOffset()*60000)));},setUTCDate:function(d){this.date=d;this.setValue(this.date);},setDatesTranslation:function(A){Roo.bootstrap.form.DateField.dates[A]={days:[],daysShort:[],daysMin:[],months:[],monthsShort:[],today:"Today"}
-;locale=A.replace('_','-');for(var i=0;i<7;i++){var B=new Date(2020,0,5+i);Roo.bootstrap.form.DateField.dates[A]['days'].push(new Intl.DateTimeFormat(locale,{weekday:'long'}).format(B));Roo.bootstrap.form.DateField.dates[A]['daysShort'].push(new Intl.DateTimeFormat(locale,{weekday:'short'}
-).format(B));Roo.bootstrap.form.DateField.dates[A]['daysMin'].push(new Intl.DateTimeFormat(locale,{weekday:'narrow'}).format(B));}for(var i=0;i<12;i++){var B=new Date(2020,i);Roo.bootstrap.form.DateField.dates[A]['months'].push(new Intl.DateTimeFormat(locale,{month:'long'}
-).format(B));Roo.bootstrap.form.DateField.dates[A]['monthsShort'].push(new Intl.DateTimeFormat(locale,{month:'short'}).format(B));}},onRender:function(ct,A){Roo.bootstrap.form.DateField.superclass.onRender.call(this,ct,A);this.setDatesTranslation(this.language);
-Roo.log(Roo.bootstrap.form.DateField.dates);this.isRTL=Roo.bootstrap.form.DateField.dates[this.language].rtl||false;this.format=this.format||'m/d/y';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;if(typeof(this.minViewMode==='string')){switch(this.minViewMode){case 'months':this.minViewMode=1;break;case 'years':this.minViewMode=2;break;default:this.minViewMode=0;break;}}if(typeof(this.viewMode==='string')){switch(this.viewMode){case 'months':this.viewMode=1;
+},setDate:function(d){this.setUTCDate(new Date(d.getTime()-(d.getTimezoneOffset()*60000)));},setUTCDate:function(d){this.date=d;this.setValue(this.date);},translateDates:function(A){var B=Roo.bootstrap.form.DateField.dates[A]={days:[],daysShort:[],daysMin:[],months:[],monthsShort:[],today:"Today"}
+;var C=A.replace('_','-');var D=new RegExp('^[A-Za-z]+$');for(var i=0;i<7;i++){var E=new Date(2020,0,5+i);var F=new Intl.DateTimeFormat(C,{weekday:'long'}).format(E);var G=new Intl.DateTimeFormat(C,{weekday:'short'}).format(E);var H=new Intl.DateTimeFormat(C,{weekday:'narrow'}
+).format(E);if(D.test(F)){G=F.substring(0,3);H=F.substring(0,2);}B['days']=F;B['daysShort']=G;B['daysMin']=H;}for(var i=0;i<12;i++){var E=new Date(2020,i);var I=new Intl.DateTimeFormat(C,{month:'long'}).format(E);var J=new Intl.DateTimeFormat(C,{month:'short'}
+).format(E);if(D.test(I)){J=I.substring(0,3);}B['months']=I;B['monthsShort']=J;}},onRender:function(ct,A){Roo.bootstrap.form.DateField.superclass.onRender.call(this,ct,A);this.translateDates(this.language);Roo.log(Roo.bootstrap.form.DateField.dates);this.isRTL=Roo.bootstrap.form.DateField.dates[this.language].rtl||false;
+this.format=this.format||'m/d/y';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;
+if(typeof(this.minViewMode==='string')){switch(this.minViewMode){case 'months':this.minViewMode=1;break;case 'years':this.minViewMode=2;break;default:this.minViewMode=0;break;}}if(typeof(this.viewMode==='string')){switch(this.viewMode){case 'months':this.viewMode=1;
 break;case 'years':this.viewMode=2;break;default:this.viewMode=0;break;}}this.pickerEl=Roo.get(document.body).createChild(Roo.bootstrap.form.DateField.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;if(this.singleMode){Roo.each(this.picker().select('thead > tr > th',true).elements,function(v){v.setVisibilityMode(Roo.Element.DISPLAY);
 v.hide();});Roo.each(this.picker().select('tbody > tr > td',true).elements,function(v){v.setStyle('width','189px');});}Roo.each(this.picker().select('tfoot th.today',true).elements,function(v){if(!this.calendarWeeks){v.remove();return;}v.dom.innerHTML=Roo.bootstrap.form.DateField.dates[this.language].today;