// Licensed Materials - Property of IBM // // IBM Cognos Products: cogadmin // // (C) Copyright IBM Corp. 2005, 2010 // // 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). //---------------------------------------------------------- com.cognos.admin.ObjectFactory("com.cognos.admin.extension"); /* This is a implementation of the extensive event handler. The impl need to have a method named "doAction" to * work as a mapping. * @param: env, context of the behaviour controller framework. * */ com.cognos.admin.extension.Suspend = function (env) { this.fragment = env.fragment; this.context = env.context; this.scheduleEndDateId = this.fragment.id+"endDate"; this.scheduleEndTimeId = this.fragment.id+"endTime"; this.i18n = env.i18n var self = this; //register for shedule prompt notifications to provide an event to rectify schedule selection popup appearing behind this dialog this.scheduleDialogListener = function() { this.notify = function(iState, oNotifier) { //Because the compiled (ie. obfuscated) js version of the prompting libs are being used, we'll need to introspect (ie. loop thru) the oNotifier object to find the scheduler prompt for (name in oNotifier) { o = oNotifier[name]; if (o && (o.id == 'dialogDatePicker'+self.fragment.id+'endDate')) { _o = o; setTimeout('_o.style.zIndex="9999"',1); return; } } } }; this.onDialogOK = function(evt) { var frag = evt.source; var finite = $(frag.id+'suspend_finite').checked; var selections = document.pform[frag.id+"suspend_period"]; var requestParms = ("finite="+encodeURIComponent(finite)); if (finite) { if (!self.getDateControl().isValid()) { alert(self.i18n.IDS_FLT_MSG_INVALID_DATE); evt.preventDefault(); return false; } if (!self.getTimeControl().isValid()) { alert(self.i18n.IDS_FLT_MSG_INVALID_TIME); evt.preventDefault(); return false; } var date = self.getDateControl().sGetValue(); var time = self.getTimeControl().sGetValue(); requestParms+=("&release="+encodeURIComponent(date+"T"+time)); } for (var name in self.context) { requestParms+=("&"+name+"="+self.context[name]); } requestParms+="&userClickedOk=true"; frag.retrieve(requestParms); return true; }; this.unload = function(evt) { self.fragment.removeEventListener("cognos.ui.dialog.show", self.onDialogShow); self.fragment.removeEventListener("fragment.unload", self.destroy); self.fragment.removeEventListener("cognos.ui.dialog.ok", self.onDialogOK); //clean up Prompting Date/Time instances var schedulePopup = $("dialogDatePicker"+this.scheduleEndDateId); while (schedulePopup) { var parent = schedulePopup.parentNode parent.removeChild(schedulePopup); schedulePopup = $("dialogDatePicker"+this.scheduleEndDateId); } var controlArray = getPreProcessControlArray(); _F_Array.remove(controlArray,"pickerControl"+this.scheduleEndDateId); _F_Array.remove(controlArray,"timePicker"+this.scheduleEndTimeId); _F_Array.remove(datePickerObserverArray,"pickerControl"+this.scheduleEndDateId); }; this.onDialogShow = function(evt) { var frag = evt.target; var scheduleEndDateId = self.scheduleEndDateId; var scheduleEndTimeId = self.scheduleEndTimeId var now = new Date(); var firstDate = now.getFullYear()+"-"+(now.getMonth()+1)+"-"+now.getDate(); var defaultDate = now; var dateArgs = {formName:"pform",parameterName:"sched_"+scheduleEndDateId,submitType:"",prmtDefaultDate:defaultDate.toUTCString(),defaultValue:defaultDate,startOfWeek:"Sunday",calendar:"Gregorian",selectUI:"editBox",selectDateUI:"editBox",inputOrder:"YMD",firstDate:firstDate,lastDate:"",dateTime:1,initialState:RANGE_NO_VALUE,required:true,suppressDisabled:true,hideAdornments:true,suppressExtraPromptNames:false,multi:false,range:false,style:"",selectDateEditBoxStyle:"",selectDateYearsStyle:"",selectDateMonthsStyle:"",selectDateDaysOfWeekStyle:"",selectDateDaysStyle:"",CVId:frag.id,id:scheduleEndDateId}; var defaultTimeValue = defaultDate.getHours()+":"+defaultDate.getMinutes()+":"+defaultDate.getSeconds(); var timeArgs = {formName:"pform",parameterName:"sched_"+scheduleEndTimeId,submitType:"",defaultValue:defaultTimeValue,selectUI:"editBox",timeZone:"",hourFormat:"hh",minuteFormat:"mm",secondFormat:"ss",display:2,mode:0,initialState:RANGE_NO_VALUE,required:true,suppressDisabled:true,hideAdornments:true,suppressExtraPromptNames:false,multi:false,range:false,style:"",style:"",CVId:frag.id,id:scheduleEndTimeId} genSelectDateHTML(dateArgs); genSelectTimeHTML(timeArgs); var parent = frag.parent; if (null == parent) { parent = window; //default } if (null == parent.listenerRegistered) { parent.listenerRegistered = true; registerForNotications(new self.scheduleDialogListener()); } }; this.fragment.addEventListener("cognos.ui.dialog.show", this.onDialogShow); this.fragment.addEventListener("fragment.unload", this.unload); this.fragment.addEventListener("cognos.ui.dialog.ok", this.onDialogOK); }; com.cognos.admin.extension.Suspend.VERSION = "0.1.0"; com.cognos.admin.extension.Suspend.prototype = { getPromptControl : function(type, id) { return window[type+id] }, getDateControl : function() { return this.getPromptControl("pickerControl",this.scheduleEndDateId); }, getTimeControl : function() { return this.getPromptControl("timePicker",this.scheduleEndTimeId); } }