diff --git a/app/assets/javascripts/app/controllers/_ui_element/date.coffee b/app/assets/javascripts/app/controllers/_ui_element/date.coffee index 63665cdcc..f0fe42087 100644 --- a/app/assets/javascripts/app/controllers/_ui_element/date.coffee +++ b/app/assets/javascripts/app/controllers/_ui_element/date.coffee @@ -15,22 +15,60 @@ class App.UiElement.date # apply date widgets $.fn.datepicker.dates['custom'] = - days: [App.i18n.translateInline('Sunday'), App.i18n.translateInline('Monday'), App.i18n.translateInline('Tuesday'), App.i18n.translateInline('Wednesday'), App.i18n.translateInline('Thursday'), App.i18n.translateInline('Friday'), App.i18n.translateInline('Saturday'), App.i18n.translateInline('Sunday')], - daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - daysMin: [App.i18n.translateInline('Su'), App.i18n.translateInline('Mo'), App.i18n.translateInline('Tu'), App.i18n.translateInline('We'), App.i18n.translateInline('Th'), App.i18n.translateInline('Fr'), App.i18n.translateInline('Sa'), App.i18n.translateInline('Su')], - months: [App.i18n.translateInline('January'), App.i18n.translateInline('February'), App.i18n.translateInline('March'), App.i18n.translateInline('April'), App.i18n.translateInline('May'), App.i18n.translateInline('June'), App.i18n.translateInline('July'), App.i18n.translateInline('August'), App.i18n.translateInline('September'), App.i18n.translateInline('October'), App.i18n.translateInline('November'), App.i18n.translateInline('December')], + days: [ + App.i18n.translateInline('Sunday'), + App.i18n.translateInline('Monday'), + App.i18n.translateInline('Tuesday'), + App.i18n.translateInline('Wednesday'), + App.i18n.translateInline('Thursday'), + App.i18n.translateInline('Friday'), + App.i18n.translateInline('Saturday'), + App.i18n.translateInline('Sunday'), + ], + daysMin: [ + App.i18n.translateInline('Sun'), + App.i18n.translateInline('Mon'), + App.i18n.translateInline('Tue'), + App.i18n.translateInline('Wed'), + App.i18n.translateInline('Thu'), + App.i18n.translateInline('Fri'), + App.i18n.translateInline('Sat'), + App.i18n.translateInline('Sun') + ], + daysShort: [ + App.i18n.translateInline('Sun'), + App.i18n.translateInline('Mon'), + App.i18n.translateInline('Tue'), + App.i18n.translateInline('Wed'), + App.i18n.translateInline('Thu'), + App.i18n.translateInline('Fri'), + App.i18n.translateInline('Sat'), + App.i18n.translateInline('Sun') + ], + months: [ + App.i18n.translateInline('January'), + App.i18n.translateInline('February'), + App.i18n.translateInline('March'), + App.i18n.translateInline('April'), + App.i18n.translateInline('May'), + App.i18n.translateInline('June'), + App.i18n.translateInline('July'), + App.i18n.translateInline('August'), + App.i18n.translateInline('September'), + App.i18n.translateInline('October'), + App.i18n.translateInline('November'), + App.i18n.translateInline('December'), + ], monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], today: App.i18n.translateInline('today'), clear: App.i18n.translateInline('clear') currentDate = undefined - if attribute.value - startDate = new Date(attribute.value) + item.find('.js-datepicker').datepicker( weekStart: 1 autoclose: true todayBtn: 'linked' todayHighlight: true - #startDate: startDate format: App.i18n.timeFormat().date container: item language: 'custom' @@ -39,8 +77,11 @@ class App.UiElement.date # set initial date time @setNewTimeInitial(item, attribute) - # observer changes - item.find('input').bind('keyup blur focus change', (e) => + # observer changes / update needed to forece rerender to get correct today shown + item.find('input').bind('focus', (e) -> + item.find('.js-datepicker').datepicker('rerender') + ) + item.find('input').bind('keyup blur change', (e) => @setNewTime(item, attribute, 0) @validation(item, attribute, true) ) diff --git a/app/assets/javascripts/app/controllers/_ui_element/datetime.coffee b/app/assets/javascripts/app/controllers/_ui_element/datetime.coffee index 3f6b46436..487ce28ed 100644 --- a/app/assets/javascripts/app/controllers/_ui_element/datetime.coffee +++ b/app/assets/javascripts/app/controllers/_ui_element/datetime.coffee @@ -15,22 +15,60 @@ class App.UiElement.datetime # apply date widgets $.fn.datepicker.dates['custom'] = - days: [App.i18n.translateInline('Sunday'), App.i18n.translateInline('Monday'), App.i18n.translateInline('Tuesday'), App.i18n.translateInline('Wednesday'), App.i18n.translateInline('Thursday'), App.i18n.translateInline('Friday'), App.i18n.translateInline('Saturday'), App.i18n.translateInline('Sunday')], - daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - daysMin: [App.i18n.translateInline('Su'), App.i18n.translateInline('Mo'), App.i18n.translateInline('Tu'), App.i18n.translateInline('We'), App.i18n.translateInline('Th'), App.i18n.translateInline('Fr'), App.i18n.translateInline('Sa'), App.i18n.translateInline('Su')], - months: [App.i18n.translateInline('January'), App.i18n.translateInline('February'), App.i18n.translateInline('March'), App.i18n.translateInline('April'), App.i18n.translateInline('May'), App.i18n.translateInline('June'), App.i18n.translateInline('July'), App.i18n.translateInline('August'), App.i18n.translateInline('September'), App.i18n.translateInline('October'), App.i18n.translateInline('November'), App.i18n.translateInline('December')], + days: [ + App.i18n.translateInline('Sunday'), + App.i18n.translateInline('Monday'), + App.i18n.translateInline('Tuesday'), + App.i18n.translateInline('Wednesday'), + App.i18n.translateInline('Thursday'), + App.i18n.translateInline('Friday'), + App.i18n.translateInline('Saturday'), + App.i18n.translateInline('Sunday'), + ], + daysMin: [ + App.i18n.translateInline('Sun'), + App.i18n.translateInline('Mon'), + App.i18n.translateInline('Tue'), + App.i18n.translateInline('Wed'), + App.i18n.translateInline('Thu'), + App.i18n.translateInline('Fri'), + App.i18n.translateInline('Sat'), + App.i18n.translateInline('Sun') + ], + daysShort: [ + App.i18n.translateInline('Sun'), + App.i18n.translateInline('Mon'), + App.i18n.translateInline('Tue'), + App.i18n.translateInline('Wed'), + App.i18n.translateInline('Thu'), + App.i18n.translateInline('Fri'), + App.i18n.translateInline('Sat'), + App.i18n.translateInline('Sun') + ], + months: [ + App.i18n.translateInline('January'), + App.i18n.translateInline('February'), + App.i18n.translateInline('March'), + App.i18n.translateInline('April'), + App.i18n.translateInline('May'), + App.i18n.translateInline('June'), + App.i18n.translateInline('July'), + App.i18n.translateInline('August'), + App.i18n.translateInline('September'), + App.i18n.translateInline('October'), + App.i18n.translateInline('November'), + App.i18n.translateInline('December'), + ], monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], today: App.i18n.translateInline('today'), clear: App.i18n.translateInline('clear') currentDate = undefined - if attribute.value - startDate = new Date(attribute.value) + item.find('.js-datepicker').datepicker( weekStart: 1 autoclose: true todayBtn: 'linked' todayHighlight: true - #startDate: startDate format: App.i18n.timeFormat().date container: item language: 'custom' @@ -42,8 +80,11 @@ class App.UiElement.datetime # apply time widgets item.find('.js-timepicker').timepicker() - # observer changes - item.find('input').bind('keyup blur focus change', (e) => + # observer changes / update needed to forece rerender to get correct today shown + item.find('input').bind('focus', (e) -> + item.find('.js-datepicker').datepicker('rerender') + ) + item.find('input').bind('keyup blur change', (e) => @setNewTime(item, attribute, 0) @validation(item, attribute, true) ) diff --git a/app/assets/javascripts/app/lib/bootstrap/bootstrap-datepicker.js b/app/assets/javascripts/app/lib/bootstrap/bootstrap-datepicker.js index 7e00802d1..cf25e7b64 100755 --- a/app/assets/javascripts/app/lib/bootstrap/bootstrap-datepicker.js +++ b/app/assets/javascripts/app/lib/bootstrap/bootstrap-datepicker.js @@ -21,12 +21,11 @@ * ========================================================= */ /* - Zammad Edits: - fix todayBtn toggle of display none and block: toggleClass instead - allow custom template as options parameter - fix that place method doesn't think that the container is the window, but rather the real window is the window - + - added rerender method to show correct today if task is longer open the 24 hours */ (function(factory){ @@ -762,6 +761,11 @@ }, _allow_update: true, + rerender: function(){ + this.fill(); + this.element.change(); + return this; + }, update: function(){ if (!this._allow_update) return this;