From 409ca87f8c216789f548a65610e7e4a0944d0b39 Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Mon, 23 May 2016 12:35:36 +0000 Subject: [PATCH] Initialize TimePicker in one call to prevent the time part from being reset as it happens when doing the same action in two passes (calling "options" the second time) !! SVN:trunk[4115] --- application/itopwebpage.class.inc.php | 88 ++++++++++++--------------- 1 file changed, 40 insertions(+), 48 deletions(-) diff --git a/application/itopwebpage.class.inc.php b/application/itopwebpage.class.inc.php index ec55f47bf..cccc0ba8c 100644 --- a/application/itopwebpage.class.inc.php +++ b/application/itopwebpage.class.inc.php @@ -165,17 +165,47 @@ EOF; $sJSTitle = json_encode(Dict::S('UI:DisconnectedDlgTitle')); $sJSLoginAgain = json_encode(Dict::S('UI:LoginAgain')); $sJSStayOnThePage = json_encode(Dict::S('UI:StayOnThePage')); - $sJSDaysMin = json_encode(array(Dict::S('DayOfWeek-Sunday-Min'), Dict::S('DayOfWeek-Monday-Min'), Dict::S('DayOfWeek-Tuesday-Min'), Dict::S('DayOfWeek-Wednesday-Min'), - Dict::S('DayOfWeek-Thursday-Min'), Dict::S('DayOfWeek-Friday-Min'), Dict::S('DayOfWeek-Saturday-Min'))); - $sJSMonthsShort = json_encode(array(Dict::S('Month-01-Short'), Dict::S('Month-02-Short'), Dict::S('Month-03-Short'), Dict::S('Month-04-Short'), Dict::S('Month-05-Short'), Dict::S('Month-06-Short'), - Dict::S('Month-07-Short'), Dict::S('Month-08-Short'), Dict::S('Month-09-Short'), Dict::S('Month-10-Short'), Dict::S('Month-11-Short'), Dict::S('Month-12-Short'))); - $iFirstDayOfWeek = (int) Dict::S('Calendar-FirstDayOfWeek'); - $sJSDateFormat = json_encode(AttributeDate::GetFormat()->ToDatePicker()); + $aDaysMin = array(Dict::S('DayOfWeek-Sunday-Min'), Dict::S('DayOfWeek-Monday-Min'), Dict::S('DayOfWeek-Tuesday-Min'), Dict::S('DayOfWeek-Wednesday-Min'), + Dict::S('DayOfWeek-Thursday-Min'), Dict::S('DayOfWeek-Friday-Min'), Dict::S('DayOfWeek-Saturday-Min')); + $aMonthsShort = array(Dict::S('Month-01-Short'), Dict::S('Month-02-Short'), Dict::S('Month-03-Short'), Dict::S('Month-04-Short'), Dict::S('Month-05-Short'), Dict::S('Month-06-Short'), + Dict::S('Month-07-Short'), Dict::S('Month-08-Short'), Dict::S('Month-09-Short'), Dict::S('Month-10-Short'), Dict::S('Month-11-Short'), Dict::S('Month-12-Short')); $sTimeFormat = AttributeDateTime::GetFormat()->ToTimeFormat(); $oTimeFormat = new DateTimeFormat($sTimeFormat); - $sJSTimeFormat = json_encode($oTimeFormat->ToDatePicker()); $sJSLangShort = json_encode(strtolower(substr(Dict::GetUserLanguage(), 0, 2))); - $sJSOk = json_encode(Dict::S('UI:Button:Ok')); + + // Date picker options + $aPickerOptions = array( + 'showOn' => 'button', + 'buttonImage' => '../images/calendar.png', + 'buttonImageOnly' => true, + 'dateFormat' => AttributeDate::GetFormat()->ToDatePicker(), + 'constrainInput' => false, + 'changeMonth' => true, + 'changeYear' => true, + 'dayNamesMin' => $aDaysMin, + 'monthNamesShort' => $aMonthsShort, + 'firstDay' => (int) Dict::S('Calendar-FirstDayOfWeek'), + ); + $sJSDatePickerOptions = json_encode($aPickerOptions); + + // Time picker additional options + + $aPickerOptions['timeFormat'] = $oTimeFormat->ToDatePicker(); + $aPickerOptions['controlType'] = 'select'; + $aPickerOptions['closeText'] = Dict::S('UI:Button:Ok'); + $sJSDateTimePickerOptions = json_encode($aPickerOptions); + if ($sJSLangShort != '"en"') + { + // More options that cannot be passed via json_encode since they must be evaluated client-side + $aMoreJSOptions = ", + 'timeText': $.timepicker.regional[$sJSLangShort].timeText, + 'hourText': $.timepicker.regional[$sJSLangShort].hourText, + 'minuteText': $.timepicker.regional[$sJSLangShort].minuteText, + 'secondText': $.timepicker.regional[$sJSLangShort].secondText, + 'currentText': $.timepicker.regional[$sJSLangShort].currentText + }"; + $sJSDateTimePickerOptions = substr($sJSDateTimePickerOptions, 0, -1).$aMoreJSOptions; + } $this->m_sInitScript = <<< EOF @@ -412,46 +442,8 @@ EOF // End of Tabs handling - $(".date-pick").datepicker({ - showOn: 'button', - buttonImage: '../images/calendar.png', - buttonImageOnly: true, - dateFormat: $sJSDateFormat, - constrainInput: false, - changeMonth: true, - changeYear: true, - dayNamesMin: $sJSDaysMin, - monthNamesShort: $sJSMonthsShort, - firstDay: $iFirstDayOfWeek - }); - $(".datetime-pick").datetimepicker({ - showOn: 'button', - buttonImage: '../images/calendar.png', - buttonImageOnly: true, - dateFormat: $sJSDateFormat, - constrainInput: false, - changeMonth: true, - changeYear: true, - dayNamesMin: $sJSDaysMin, - monthNamesShort: $sJSMonthsShort, - firstDay: $iFirstDayOfWeek, - // time picker options - timeFormat: $sJSTimeFormat, - controlType: 'select', - closeText: $sJSOk - }); - - if ($sJSLangShort != 'en') - { - $(".datetime-pick").datetimepicker('option', { - timeText: $.timepicker.regional[$sJSLangShort].timeText, - hourText: $.timepicker.regional[$sJSLangShort].hourText, - minuteText: $.timepicker.regional[$sJSLangShort].minuteText, - secondText: $.timepicker.regional[$sJSLangShort].secondText, - currentText: $.timepicker.regional[$sJSLangShort].currentText, - }); - - } + $(".date-pick").datepicker($sJSDatePickerOptions); + $(".datetime-pick").datetimepicker($sJSDateTimePickerOptions); // Make sortable, everything that claims to be sortable $('.sortable').sortable( {axis: 'y', cursor: 'move', handle: '.drag_handle', stop: function()