diff --git a/dist/js/datepicker.js b/dist/js/datepicker.js index ed9fd7c..8ae2ec7 100644 --- a/dist/js/datepicker.js +++ b/dist/js/datepicker.js @@ -9,7 +9,6 @@ var Datepicker; '
' + '', defaults = { - //TODO сделать кастомизируемые заголовки inline: false, language: 'ru', startDate: new Date(), @@ -48,6 +47,11 @@ var Datepicker; // navigation prevHtml: '«', nextHtml: '»', + navTitles: { + days: 'MM, yyyy', + months: 'yyyy', + years: 'yyyy1 - yyyy2' + }, // events onChange: '', @@ -228,31 +232,37 @@ var Datepicker; }, formatDate: function (string, date) { + date = date || this.date; var result = string, locale = this.loc, + decade = Datepicker.getDecade(date), d = Datepicker.getParsedDate(date); switch (true) { case /dd/.test(result): - result = result.replace('dd', d.fullDate); + result = result.replace(/\bdd\b/, d.fullDate); case /d/.test(result): - result = result.replace('d', d.date); + result = result.replace(/\bd\b/, d.date); case /DD/.test(result): - result = result.replace('DD', locale.days[d.day]); + result = result.replace(/\bDD\b/, locale.days[d.day]); case /D/.test(result): - result = result.replace('D', locale.daysShort[d.day]); + result = result.replace(/\bD\b/, locale.daysShort[d.day]); case /mm/.test(result): - result = result.replace('mm', d.fullMonth); + result = result.replace(/\bmm\b/, d.fullMonth); case /m/.test(result): - result = result.replace('m', d.month + 1); + result = result.replace(/\bm\b/, d.month + 1); case /MM/.test(result): - result = result.replace('MM', this.loc.months[d.month]); + result = result.replace(/\bMM\b/, this.loc.months[d.month]); case /M/.test(result): - result = result.replace('M', locale.monthsShort[d.month]); + result = result.replace(/\bM\b/, locale.monthsShort[d.month]); case /yyyy/.test(result): - result = result.replace('yyyy', d.year); + result = result.replace(/\byyyy\b/, d.year); + case /yyyy1/.test(result): + result = result.replace(/\byyyy1\b/, decade[0]); + case /yyyy2/.test(result): + result = result.replace(/\byyyy2\b/, decade[1]); case /yy/.test(result): - result = result.replace('yy', d.year.toString().slice(-2)); + result = result.replace(/\byy\b/, d.year.toString().slice(-2)); } return result; @@ -668,16 +678,7 @@ var Datepicker; }, _getTitle: function (date) { - var month = this.d.loc.months[date.getMonth()], - year = date.getFullYear(), - decade = Datepicker.getDecade(date), - types = { - days: month + ', ' + year, - months: year, - years: decade[0] + ' - ' + decade[1] - }; - - return types[this.d.view]; + return this.d.formatDate(this.opts.navTitles[this.d.view], date) }, _addButton: function (type) { diff --git a/index.html b/index.html index 0b3e1cc..c73154f 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,7 @@
+
diff --git a/js/datepicker/datepicker.js b/js/datepicker/datepicker.js index 304dff6..f9d1e37 100644 --- a/js/datepicker/datepicker.js +++ b/js/datepicker/datepicker.js @@ -9,7 +9,6 @@ var Datepicker; '
' + '', defaults = { - //TODO сделать кастомизируемые заголовки inline: false, language: 'ru', startDate: new Date(), @@ -48,6 +47,11 @@ var Datepicker; // navigation prevHtml: '«', nextHtml: '»', + navTitles: { + days: 'MM, yyyy', + months: 'yyyy', + years: 'yyyy1 - yyyy2' + }, // events onChange: '', @@ -228,31 +232,37 @@ var Datepicker; }, formatDate: function (string, date) { + date = date || this.date; var result = string, locale = this.loc, + decade = Datepicker.getDecade(date), d = Datepicker.getParsedDate(date); switch (true) { case /dd/.test(result): - result = result.replace('dd', d.fullDate); + result = result.replace(/\bdd\b/, d.fullDate); case /d/.test(result): - result = result.replace('d', d.date); + result = result.replace(/\bd\b/, d.date); case /DD/.test(result): - result = result.replace('DD', locale.days[d.day]); + result = result.replace(/\bDD\b/, locale.days[d.day]); case /D/.test(result): - result = result.replace('D', locale.daysShort[d.day]); + result = result.replace(/\bD\b/, locale.daysShort[d.day]); case /mm/.test(result): - result = result.replace('mm', d.fullMonth); + result = result.replace(/\bmm\b/, d.fullMonth); case /m/.test(result): - result = result.replace('m', d.month + 1); + result = result.replace(/\bm\b/, d.month + 1); case /MM/.test(result): - result = result.replace('MM', this.loc.months[d.month]); + result = result.replace(/\bMM\b/, this.loc.months[d.month]); case /M/.test(result): - result = result.replace('M', locale.monthsShort[d.month]); + result = result.replace(/\bM\b/, locale.monthsShort[d.month]); case /yyyy/.test(result): - result = result.replace('yyyy', d.year); + result = result.replace(/\byyyy\b/, d.year); + case /yyyy1/.test(result): + result = result.replace(/\byyyy1\b/, decade[0]); + case /yyyy2/.test(result): + result = result.replace(/\byyyy2\b/, decade[1]); case /yy/.test(result): - result = result.replace('yy', d.year.toString().slice(-2)); + result = result.replace(/\byy\b/, d.year.toString().slice(-2)); } return result; diff --git a/js/datepicker/navigation.js b/js/datepicker/navigation.js index 8380954..60feb00 100644 --- a/js/datepicker/navigation.js +++ b/js/datepicker/navigation.js @@ -52,16 +52,7 @@ }, _getTitle: function (date) { - var month = this.d.loc.months[date.getMonth()], - year = date.getFullYear(), - decade = Datepicker.getDecade(date), - types = { - days: month + ', ' + year, - months: year, - years: decade[0] + ' - ' + decade[1] - }; - - return types[this.d.view]; + return this.d.formatDate(this.opts.navTitles[this.d.view], date) }, _addButton: function (type) {