Bladeren bron

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 jaren geleden
bovenliggende
commit
7bac875cf0
1 gewijzigde bestanden met toevoegingen van 40 en 48 verwijderingen
  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()