From bef977ef815b534dad0a864cc5a12350f260934e Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 26 Jan 2023 15:41:22 +0000 Subject: [PATCH] set locale for pickers after locale has been set, fixes #2085 Closes #2085 Merge request studip/studip!1349 --- resources/assets/javascripts/studip-ui.js | 171 +++++++++++----------- 1 file changed, 87 insertions(+), 84 deletions(-) diff --git a/resources/assets/javascripts/studip-ui.js b/resources/assets/javascripts/studip-ui.js index 53fb13114a2..fdb32553151 100644 --- a/resources/assets/javascripts/studip-ui.js +++ b/resources/assets/javascripts/studip-ui.js @@ -1,4 +1,5 @@ import { $gettext } from './lib/gettext.js'; +import eventBus from "./lib/event-bus"; /** * This file contains extensions/adjustments for jQuery UI. @@ -51,82 +52,6 @@ import { $gettext } from './lib/gettext.js'; return; } - // Setup defaults and default locales - var defaults = {}, - locale = { - closeText: $gettext('Schließen'), - prevText: $gettext('Zurück'), - nextText: $gettext('Vor'), - currentText: $gettext('Jetzt'), - monthNames: [ - $gettext('Januar'), - $gettext('Februar'), - $gettext('März'), - $gettext('April'), - $gettext('Mai'), - $gettext('Juni'), - $gettext('Juli'), - $gettext('August'), - $gettext('September'), - $gettext('Oktober'), - $gettext('November'), - $gettext('Dezember') - ], - monthNamesShort: [ - $gettext('Jan'), - $gettext('Feb'), - $gettext('Mär'), - $gettext('Apr'), - $gettext('Mai'), - $gettext('Jun'), - $gettext('Jul'), - $gettext('Aug'), - $gettext('Sep'), - $gettext('Okt'), - $gettext('Nov'), - $gettext('Dez') - ], - dayNames: [ - $gettext('Sonntag'), - $gettext('Montag'), - $gettext('Dienstag'), - $gettext('Mittwoch'), - $gettext('Donnerstag'), - $gettext('Freitag'), - $gettext('Samstag') - ], - dayNamesShort: [ - $gettext('So'), - $gettext('Mo'), - $gettext('Di'), - $gettext('Mi'), - $gettext('Do'), - $gettext('Fr'), - $gettext('Sa') - ], - weekHeader: $gettext('Wo'), - dateFormat: 'dd.mm.yy', - firstDay: 1, - isRTL: false, - showMonthAfterYear: false, - yearSuffix: '', - changeMonth: true, - changeYear: true, - timeOnlyTitle: $gettext('Zeit wählen'), - timeText: $gettext('Zeit'), - hourText: $gettext('Stunde'), - minuteText: $gettext('Minute'), - secondText: $gettext('Sekunde'), - millisecText: $gettext('Millisekunde'), - microsecText: $gettext('Mikrosekunde'), - timezoneText: $gettext('Zeitzone'), - timeFormat: $gettext('HH:mm'), - amNames: [$gettext('vorm.'), 'AM', 'A'], - pmNames: [$gettext('nachm.'), 'PM', 'P'] - }; - // Set dayNamesMin to dayNamesShort since they are equal - locale.dayNamesMin = locale.dayNamesShort; - // Setup Stud.IP's own datepicker extensions STUDIP.UI = STUDIP.UI || {}; STUDIP.UI.Datepicker = { @@ -545,7 +470,7 @@ import { $gettext } from './lib/gettext.js'; }; // Apply defaults including date picker handlers - defaults = Object.assign({}, locale, { + const defaults = { beforeShow (input) { STUDIP.UI.Datepicker.refresh(); STUDIP.UI.DateTimepicker.refresh(); @@ -566,9 +491,10 @@ import { $gettext } from './lib/gettext.js'; $(this).change(); } } - }); + }; - $.datepicker.setDefaults(Object.assign({}, defaults, { + $.datepicker.setDefaults({ + ...defaults, beforeShow (input) { // Don't lose original behaviour defaults.beforeShow(input); @@ -601,7 +527,88 @@ import { $gettext } from './lib/gettext.js'; $(window).unbind('scroll.datepicker-scroll'); } } - })); + }); + + $.timepicker.setDefaults(defaults); + + eventBus.on('studip:set-locale', () => { + const locale = { + closeText: $gettext('Schließen'), + prevText: $gettext('Zurück'), + nextText: $gettext('Vor'), + currentText: $gettext('Jetzt'), + monthNames: [ + $gettext('Januar'), + $gettext('Februar'), + $gettext('März'), + $gettext('April'), + $gettext('Mai'), + $gettext('Juni'), + $gettext('Juli'), + $gettext('August'), + $gettext('September'), + $gettext('Oktober'), + $gettext('November'), + $gettext('Dezember') + ], + monthNamesShort: [ + $gettext('Jan'), + $gettext('Feb'), + $gettext('Mär'), + $gettext('Apr'), + $gettext('Mai'), + $gettext('Jun'), + $gettext('Jul'), + $gettext('Aug'), + $gettext('Sep'), + $gettext('Okt'), + $gettext('Nov'), + $gettext('Dez') + ], + dayNames: [ + $gettext('Sonntag'), + $gettext('Montag'), + $gettext('Dienstag'), + $gettext('Mittwoch'), + $gettext('Donnerstag'), + $gettext('Freitag'), + $gettext('Samstag') + ], + dayNamesShort: [ + $gettext('So'), + $gettext('Mo'), + $gettext('Di'), + $gettext('Mi'), + $gettext('Do'), + $gettext('Fr'), + $gettext('Sa') + ], + weekHeader: $gettext('Wo'), + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + changeMonth: true, + changeYear: true, + timeOnlyTitle: $gettext('Zeit wählen'), + timeText: $gettext('Zeit'), + hourText: $gettext('Stunde'), + minuteText: $gettext('Minute'), + secondText: $gettext('Sekunde'), + millisecText: $gettext('Millisekunde'), + microsecText: $gettext('Mikrosekunde'), + timezoneText: $gettext('Zeitzone'), + timeFormat: $gettext('HH:mm'), + amNames: [$gettext('vorm.'), 'AM', 'A'], + pmNames: [$gettext('nachm.'), 'PM', 'P'] + }; + // Set dayNamesMin to dayNamesShort since they are equal + locale.dayNamesMin = locale.dayNamesShort; + + $.datepicker.setDefaults(locale); + $.timepicker.setDefaults(locale); + }); var DpHideOnScroll = function () { var input = arguments[0]; @@ -616,10 +623,6 @@ import { $gettext } from './lib/gettext.js'; this._selectDate(id); }; - $.timepicker.setDefaults(Object.assign({}, defaults, { - timeFormat: 'HH:mm' - })); - // Attach global focus handler on date picker elements $(document).on('focus', STUDIP.UI.Datepicker.selector, () => { STUDIP.UI.Datepicker.init(); -- GitLab