|
17 | 17 | var languages = { |
18 | 18 | no: { |
19 | 19 | monthNames:['Januar','Februar','Mars','April','Mai','Juni','Juli','August','September','Oktober','November','Desember'], |
20 | | - dayNames:['ma','ti','on','to','fr','lø','sø'], |
| 20 | + dayNames:['sø','ma','ti','on','to','fr','lø'], |
21 | 21 | weekStart:1 |
22 | 22 | }, |
23 | 23 | en: { |
|
27 | 27 | }, |
28 | 28 | de: { |
29 | 29 | monthNames:['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'], |
30 | | - dayNames:['Mo','Di','Mi','Do','Fr','Sa','So'], |
| 30 | + dayNames:['So','Mo','Di','Mi','Do','Fr','Sa'], |
31 | 31 | weekStart:1 |
32 | 32 | } |
33 | 33 | }; |
|
60 | 60 | var startDate = null; |
61 | 61 | var minDate = null; |
62 | 62 | var maxDate = null; |
| 63 | + var weekStart = null; |
63 | 64 | var locked = false; |
64 | 65 |
|
65 | 66 | function generateDaynames(){ |
66 | 67 | that.el.days.innerHTML = ''; |
| 68 | + var ws = (weekStart !== null) ? weekStart : languages[lang].weekStart; |
67 | 69 | if(daynames){ |
68 | 70 | for(var x = 0;x<months && x<3;x++){ |
69 | 71 | var weekEl = document.createElement('div'); |
70 | 72 | weekEl.setAttribute('class','d-week'); |
71 | 73 | for(var i = 0; i < 7;i++){ |
| 74 | + var dayNameIndex = (i + ws > languages[lang].dayNames.length - 1) ? i + ws - languages[lang].dayNames.length : i + ws; |
| 75 | + |
72 | 76 | var dayEl = document.createElement('div'); |
73 | 77 | var dayTextEl = document.createElement('p'); |
74 | | - dayTextEl.innerHTML = languages[lang].dayNames[i]; |
| 78 | + dayTextEl.innerHTML = languages[lang].dayNames[dayNameIndex]; |
75 | 79 |
|
76 | 80 | dayEl.appendChild(dayTextEl); |
77 | 81 | weekEl.appendChild(dayEl); |
|
213 | 217 |
|
214 | 218 | function generateDates(year,month){ |
215 | 219 | var monthElements = that.el.querySelectorAll('.d-table'); |
216 | | - var weekStart = languages[lang].weekStart; |
| 220 | + var ws = (weekStart !== null) ? weekStart : languages[lang].weekStart; |
217 | 221 |
|
218 | 222 | [].slice.call(that.el.querySelectorAll('.d-table')).forEach(function(element, index) { |
219 | 223 | var days = new Date(year,month + index,0).getDate(); |
220 | 224 | var daysLast = new Date(year,month + index - 1,0).getDate(); |
221 | 225 | var startDay = new Date(year,month + index - 1,1).getDay(); |
222 | 226 | var startDate = null; |
223 | 227 | var endDate = null; |
224 | | - if(startDay - weekStart < 0){ |
225 | | - startDay = 7 - weekStart; |
| 228 | + if(startDay - ws < 0){ |
| 229 | + startDay = 7 - ws; |
226 | 230 | }else{ |
227 | | - startDay -= weekStart; |
| 231 | + startDay -= ws; |
228 | 232 | } |
229 | 233 | var monthText = languages[lang].monthNames[parseMonth(month - 1 + index)]; |
230 | 234 | element.setAttribute('data-month',monthText); |
|
750 | 754 | } |
751 | 755 | } |
752 | 756 | }, |
| 757 | + "weekStart": { |
| 758 | + get: function(){ |
| 759 | + return (weekStart !== null) ? weekStart : languages[lang].weekStart; |
| 760 | + }, |
| 761 | + set: function(x){ |
| 762 | + if(typeof x == 'number' && x > -1 && x < 7){ |
| 763 | + weekStart = x; |
| 764 | + generateDaynames(); |
| 765 | + setDate(); |
| 766 | + }else{ |
| 767 | + console.error('weekStart must be a number between 0 and 6'); |
| 768 | + } |
| 769 | + } |
| 770 | + }, |
753 | 771 | "months": { |
754 | 772 | get: function(){ |
755 | 773 | return months; |
|
0 commit comments