Pārlūkot izejas kodu

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) !!

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4115 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 9 gadi atpakaļ
vecāks
revīzija
7bac875cf0
1 mainītis faili ar 40 papildinājumiem un 48 dzēšanām
  1. 40 48
      application/itopwebpage.class.inc.php

+ 40 - 48
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()