123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: ps
- //
- // (C) Copyright IBM Corp. 2005, 2016
- //
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- // Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- // Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- var regExp = new RegExp("Error$"); //regex for (Ends with 'Error')
- var regExpDaily = new RegExp("^daily"); //regex for (Starts with 'daily')
- var regExpWeekly = new RegExp("^weekly"); //regex for (Starts with 'weekly')
- var regExpMonthly = new RegExp("^monthly"); //regex for (Starts with 'monthly')
- var MSG_ERR_INCORRECT_END_DATE = ADM.SCH.IDS_PROP_SCHED_BAD_END_DATE;
- var MSG_ERR_INCORRECT_START_DATE = ADM.SCH.IDS_PROP_SCHED_BAD_START_DATE;
- var MSG_ERR_INCOMPATIBLE_DATES = ADM.SCH.IDS_PROP_SCHED_INCOMPATIBLE_DATES;
- var MSG_ERR_NO_DAY_SELECTION = ADM.SCH.IDS_PROP_SCHED_NO_DAY_SELECTION;
- var MSG_ERR_NO_SUBTYPE_SELECTION = ADM.SCH.IDS_PROP_SCHED_NO_SUBTYPE_SELECTION;
- var MSG_ERR_PAGE_NOT_LOADED = ADM.SCH.IDS_PROP_SCHED_PAGE_NOT_LOADED;
- var MSG_ERR_INVALID_START_DATE = ADM.SCH.IDS_PROP_SCHED_INVALID_START_DATE;
- var MSG_ERR_INVALID_END_DATE = ADM.SCH.IDS_PROP_SCHED_INVALID_END_DATE;
- var MSG_WARN_DIFF_INIT_TIME_ZONE = ADM.SCH.IDS_PROP_SCHED_DIFF_INIT_TIME_ZONE;
-
- var page_loading = 'false';
- var isPromptingEnabled = true;
- function validate_positiveIntegerProp(e) {
- if (e) {
- var x=parseInt(e.value,10);
-
- if (e.value < 1 || isNaN(e.value) || parseInt(e.value, 10) != e.value) {
- window.alert(MSG_ERR_POSITIVE);
- e.focus();
- return false;
- }
- if ( parseInt(e.value, 10) == e.value)
- e.value = parseInt(e.value, 10);
- }
- return true;
- }
- // ..............................................................................
- // Checks for end date being earlier than or the same as the start date.
- function validateDateSequence(iStartDay, iStartMonth, iStartYear, iStartHour, iStartMinute, iEndDay, iEndMonth, iEndYear, iEndHour, iEndMinute) {
- var bRetVal = true;
- if (iEndYear < iStartYear)
- bRetVal = false;
- else if (iEndYear == iStartYear) {
- if (iEndMonth < iStartMonth)
- bRetVal = false;
- else if (iEndMonth == iStartMonth) {
- if (iEndDay < iStartDay)
- bRetVal = false;
- else if (iEndDay == iStartDay) {
- if (iEndHour < iStartHour)
- bRetVal = false;
- else if (iEndHour == iStartHour) {
- if (iEndMinute < iStartMinute)
- bRetVal = false;
- else if (iEndMinute == iStartMinute)
- bRetVal = false;
- }
- }
- }
- }
- if (!bRetVal) {
- alert(MSG_ERR_INCOMPATIBLE_DATES);
- return false;
- } else {
- return true;
- }
- }
- function validateSchedule() {
- if (isScheduleReadOnly()) {
- return true;
- }
- var frmInput = document.pform;
- var iStartDay, iStartMonth, iStartYear, iStartHour, iStartMinute, iEndDay, iEndMonth, iEndYear, iEndHour, iEndMinute;
- var untilType = 'no_end';
-
- var interval = getScheduleInterval();
-
- if (page_loading == 'true') {
- alert(MSG_ERR_PAGE_NOT_LOADED);
- return frmInput.submit();
- }
- if (!pickerControldateFrom.isValid() ) {
- alert (MSG_ERR_INVALID_START_DATE);
- return false;
- }
-
- if (!pickerControldateTo.isValid() ) {
- alert (MSG_ERR_INVALID_END_DATE);
- return false;
- }
- // Check if current Time Zone is the same as the Time Zone where schedule was initially created
- if (frmInput.m_timeZoneID && (frmInput.m_timeZoneID.value != "") && (frmInput.m_timeZoneID.value != frmInput.timezone.value)) {
- if (!confirm (MSG_WARN_DIFF_INIT_TIME_ZONE)) {
- return false;
- }
- }
- // Check the Start Date Time.
- if (frmInput.p_sched_date1.value == '' || frmInput.p_sched_time1.value == '' ) {
- alert (MSG_ERR_INCORRECT_START_DATE);
- return false;
- }
-
- //Get schedule until type.
- for (i=0; i < frmInput.m_sp_endType.length; i++) {
- if ( frmInput.m_sp_endType[i].checked == true ) {
- untilType = frmInput.m_sp_endType[i].value;
- break;
- }
- }
-
- // Check the End Date Time.
- if ( untilType == 'onDate' && (frmInput.p_sched_date2.value == '' || frmInput.p_sched_time2.value == '')) {
- alert (MSG_ERR_INCORRECT_END_DATE);
- return false;
- }
- // If we have a start and an end date then make sure the end date is not earlier than the start date
- if (untilType == 'onDate') {
- iStartYear = frmInput.p_sched_date1.value.substring(0, 4);
- iStartMonth = frmInput.p_sched_date1.value.substring(5, 7);
- iStartDay = frmInput.p_sched_date1.value.substring(8, 10);
- iStartHour = frmInput.p_sched_time1.value.substring(0, 2);
- iStartMinute = frmInput.p_sched_time1.value.substring(3, 5);
- iEndYear = frmInput.p_sched_date2.value.substring(0, 4);
- iEndMonth = frmInput.p_sched_date2.value.substring(5, 7);
- iEndDay = frmInput.p_sched_date2.value.substring(8, 10);
- iEndHour = frmInput.p_sched_time2.value.substring(0, 2);
- iEndMinute = frmInput.p_sched_time2.value.substring(3, 5);
-
- // We could create date objects and compare them but that involves too much work to format ur date values to JS acceptable format.
- if (!(validateDateSequence(iStartDay, iStartMonth, iStartYear, iStartHour, iStartMinute, iEndDay, iEndMonth, iEndYear, iEndHour, iEndMinute))) {
- return false;
- }
- }
- if (interval=='trigger') {
- if (frmInput.m_sp_triggerName) {
- if (trim(frmInput.m_sp_triggerName.value) == '') {
- frmInput.m_sp_triggerName.focus();
- alert(MSG_EMPTY_TRIGGER_NAME);
- return false;
- }
- }
- } else if (regExpDaily.test(interval)) {
- // Check for a valid entry in the frequency field.
- if (frmInput.m_sp_dailyPeriod) {
- var selectedInterval = frmInput.m_sp_dailyPeriod.value;
- if (frmInput.m_sp_dailyPeriod.length) {
- for (var i=0;i<frmInput.m_sp_dailyPeriod.length;i++) {
- if (frmInput.m_sp_dailyPeriod[i].checked) {
- selectedInterval = frmInput.m_sp_dailyPeriod[i].value;
- break;
- }
- }
- }
- if (selectedInterval) {
- if (!validate_positiveIntegerProp(frmInput["m_sp_everyN"+selectedInterval+"s"])) {
- return false;
- }
- }
- }
- } else if (regExpWeekly.test(interval)) {
- if (!validate_positiveIntegerProp(frmInput.m_sp_everyNweeks)) {
- return false;
- }
- with (frmInput) {
- if (!m_sp_weeklyMonday.checked && !m_sp_weeklyTuesday.checked &&
- !m_sp_weeklyWednesday.checked && !m_sp_weeklyThursday.checked &&
- !m_sp_weeklyFriday.checked && !m_sp_weeklySaturday.checked &&
- !m_sp_weeklySunday.checked) {
- alert(MSG_ERR_NO_DAY_SELECTION);
- return false;
- }
- }
- } else if (regExpMonthly.test(interval)) {
- // Check for a valid entry in the frequency field.
- if (frmInput.sub_type[0].checked) {
- if (!validate_positiveIntegerProp(frmInput.m_sp_everyNmonthsRel)) {
- return false;
- }
- }
- else {
- if (!validate_positiveIntegerProp(frmInput.m_sp_everyNmonthsAbs)) {
- return false;
- }
- }
- }
- if (frmInput.h_CAM_action) {
- frmInput.h_CAM_action.value = 'generateTC';
- }
- if (frmInput.df_intra && interval!='trigger') {
- if (frmInput.df_intra.checked) {
- if (!validate_positiveIntegerProp(frmInput.m_sp_intradayRecurrenceIntervalNum)) {
- return false;
- }
- }
- }
- return true;
- }
- function checkDateControlChanged () {
- var form = document.pform;
- var untilType = '';
-
- //Get schedule until type.
- for (i=0; i < 3; i++) {
- if ( form.m_sp_endType[i].checked == true ) {
- untilType = form.m_sp_endType[i].value;
- break;
- }
- }
- }
- function setMonthlyAbsolute(absolute) {
- var frm = document.pform;
- if (absolute == true) {
- frm.m_sp_monthlyAbsoluteDay.disabled=false;
- frm.m_sp_everyNmonthsAbs.disabled=false;
- frm.m_sp_monthlyRelativeDay.disabled = true;
- frm.m_sp_monthlyRelativeWeek.disabled = true;
- frm.m_sp_everyNmonthsRel.disabled=true;
- } else {
- frm.m_sp_monthlyAbsoluteDay.disabled=true;
- frm.m_sp_everyNmonthsAbs.disabled=true;
- frm.m_sp_monthlyRelativeDay.disabled = false;
- frm.m_sp_monthlyRelativeWeek.disabled = false;
- frm.m_sp_everyNmonthsRel.disabled=false;
- }
- }
- function setYearlyAbsolute(absolute) {
- var frm = document.pform;
- if (absolute == true) {
- frm.m_sp_yearlyAbsoluteDay.disabled=false;
- frm.m_sp_yearlyAbsoluteMonth.disabled=false;
- frm.m_sp_yearlyRelativeDay.disabled = true;
- frm.m_sp_yearlyRelativeWeek.disabled = true;
- frm.m_sp_yearlyRelativeMonth.disabled=true;
- } else {
- frm.m_sp_yearlyAbsoluteDay.disabled=true;
- frm.m_sp_yearlyAbsoluteMonth.disabled=true;
- frm.m_sp_yearlyRelativeDay.disabled = false;
- frm.m_sp_yearlyRelativeWeek.disabled = false;
- frm.m_sp_yearlyRelativeMonth.disabled=false;
- }
- }
- function getRadioValue(radioGrp) {
- var groupSize = radioGrp.length;
- for (var i = 0; i < groupSize; i++) {
- if (radioGrp[i].checked) {
- return radioGrp[i].value;
- }
- }
- //default to the first value
- return radioGrp[0].value;
- }
- function onScheduleChange(evt) {
- if (evt) {
- var xEvt = new xEvent(evt);
- var className = xEvt.target.className;
- if (className && regExp.test(className)) {
- return; //invalid entry. Don't update
- }
- }
-
- //Maintain legacy logic
- if(window.on_changed_schedule_changed) {
- window.on_changed_schedule_changed();
- }
- }
- function switchTab(type) {
- page_loading = 'true';
- document.pform.switch_frequency.value='true';
- document.pform.m_sp_type.value=type;
- }
- function changeDailyPeriod(target) {
- var frm = document.pform;
- if (frm.m_sp_everyNminutes) {
- frm.m_sp_everyNminutes.disabled = target.value != 'minute';
- }
- if (frm.m_sp_everyNhours) {
- frm.m_sp_everyNhours.disabled = target.value != 'hour';
- }
- if (frm.m_sp_everyNdays) {
- var isEveryXDays = target.value == 'day';
- frm.m_sp_everyNdays.disabled = !isEveryXDays;
- if (frm.df_intra) {
- frm.df_intra.disabled = !isEveryXDays;
- if (!isEveryXDays) {
- frm.df_intra.checked = false;
- }
- enableIntraDay(frm.df_intra.checked);
- }
- }
- }
- function resetScheduleOwner() {
- document.pform.m_schedule_owner_reset.value='true';
- }
- /*
- Prevent the prompting widgets from responding to events.
- eg. readonly mode
- */
- function stopPromptingEventPropogation(evt) {
- xStopPropagation(evt);
- xPreventDefault(evt);
- return false;
- }
- function enablePrompting(target, isEnabled) {
- if (target) {
- if (isEnabled) {
- if (!isPromptingEnabled) {
- timePickerintradayRecurrenceStart.enable();
- timePickerintradayRecurrenceEnd.enable();
- xRemoveEventListener(target,'keypress',stopPromptingEventPropogation,true);
- xRemoveEventListener(target,'click',stopPromptingEventPropogation,true);
- xRemoveEventListener(target,'mousedown',stopPromptingEventPropogation,true);
- xRemoveEventListener(target,'mouseup',stopPromptingEventPropogation,true);
- xRemoveEventListener(target,'dblclick',stopPromptingEventPropogation,true);
- xRemoveEventListener(target,'mouseover',stopPromptingEventPropogation,true);
- xRemoveEventListener(target,'mouseout',stopPromptingEventPropogation,true);
- enablePromptingControls(target, isEnabled);
-
- isPromptingEnabled = true;
- }
- } else {
- if (isPromptingEnabled) {
- timePickerintradayRecurrenceStart.disable();
- timePickerintradayRecurrenceEnd.disable();
- xAddEventListener(target,'keypress',stopPromptingEventPropogation,true);
- xAddEventListener(target,'click',stopPromptingEventPropogation,true);
- xAddEventListener(target,'mousedown',stopPromptingEventPropogation,true);
- xAddEventListener(target,'mouseup',stopPromptingEventPropogation,true);
- xAddEventListener(target,'dblclick',stopPromptingEventPropogation,true);
- xAddEventListener(target,'mouseover',stopPromptingEventPropogation,true);
- xAddEventListener(target,'mouseout',stopPromptingEventPropogation,true);
- enablePromptingControls(target, isEnabled);
- isPromptingEnabled = false;
- }
- }
- }
- }
- function enablePromptingControls(target, isEnabled) {
- var nodeList = target.getElementsByTagName('*');
- for (var i = 0, node; node = nodeList[i]; i++) {
- node.disabled = !isEnabled;
- }
- }
- function enableIntraDay(isEnabled) {
- if (!(getScheduleInterval()=='trigger') || isScheduleReadOnly()) {
- var frm = document.pform;
- if (frm.m_sp_intradayRecurrenceIntervalUnit) {
- frm.m_sp_intradayRecurrenceIntervalUnit.disabled = !isEnabled
- frm.m_sp_intradayRecurrenceIntervalNum.disabled = !isEnabled
- enablePrompting(dojo.byId('intradayRecurrenceInterval'),isEnabled);
- }
- }
- }
- function onLoadSchedule() {
- if (!isScheduleReadOnly() && !isIntraDailyFreq()) {
- enableIntraDay(false);
- }
- if (!isScheduleReadOnly()) {
- onScheduleChange();
- }
- }
- function resetScheduleOwner() {
- document.pform.m_schedule_owner_reset.value='true';
- }
- xAddEventListener(window,'load',onLoadSchedule,true);
|