123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: HTS
- (C) Copyright IBM Corp. 2005, 2010
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:hts="http://developer.cognos.com/myinbox/common/hts_ui" exclude-result-prefixes="xts xtsext hts">
- <xsl:import href="../../common/set-priority.xslt"/>
- <xsl:import href="../../common/json-converter.xslt"/>
- <xsl:import href="../../common/task-info.xslt"/>
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
- <xsl:template match="/">
- <xsl:apply-templates select="/" mode="common"/>
- <hts:script language="javascript">
-
- var INDIVIDUAL_SUBSCRIBE = "INDIVIDUAL_SUBSCRIBE";
- var INDIVIDUAL_UNSUBSCRIBE = "INDIVIDUAL_UNSUBSCRIBE";
- var GLOBAL_SUBSCRIBE = "GLOBAL_SUBSCRIBE";
- var GLOBAL_UNSUBSCRIBE = "GLOBAL_UNSUBSCRIBE";
-
- dojo.require("dijit.layout.ContentPane");
- _F_config.enableLog = false;
- _THIS_.addEventListener("fragment.load", "_THIS_init");
- _THIS_.addEventListener("fragment.retrieve.after", "_THIS_retrieveAfter");
- //create the subscriptions object. This is an associative object
- //index = event type, value = true|false
- var _THIS_subscriptionObj = new Object();
- function _THIS_init() {
- _THIS_setSubscriptions();
- //decide whether to check the parent notification box or not.
- var notification = $('_THIS_notification');
- notification.checked=hts_checkStateChanges($('_THIS_taskOptions_advanced'),'_THIS_');
-
- _THIS_setNotificationEnableState();
- }
-
- function _THIS_retrieveAfter(evt) {
- if (evt.target.id == "_THIS_") {
- //get the selected task, JSONify it and raise the event
- _THIS_raiseTaskInfo();
- }
- var taskId = _THIS_.transientState['taskid'];
- if (taskId && taskId != '') {
- //This is to hide the waiting div and show the correct div (task details where comment tab is visible)
- _THIS_.raiseEvent('cognos.hts.showTaskViewer');
- }
- var noteTaskId = _THIS_.transientState['notificationtaskid'];
- if (noteTaskId && noteTaskId != '') {
- //This is to hide the waiting div and show the correct div (task details where comment tab is visible)
- THIS_.raiseEvent('cognos.hts.showNotificationTaskViewer');
- }
- _THIS_setNotificationEnableState();
- }
- function _THIS_setNotificationEnableState() {
- //disable the UI if the task status is complete, failed or exited
- var status = '<xsl:value-of select="xtsext:javascriptencode(string(/root/input[@name='dep']/queryResponse/*[local-name()='getTaskInfoResponse']/*[local-name()='task']/*[local-name()='status']/text()))"/>';
- var _THIS_utils = new hts_utils(_THIS_);
- //_THIS_utils.setUIState($('_THIS_taskOptions_advanced'),status);
- //tha above commented out line works for IE but not firefox - I suspect firefox is correct, so
- //disable the check boxes individually (can improve - e.g. send wrapper to a function that digs out checkboxes)
- _THIS_utils.setUIState($('_THIS_sub_startDeadline'),status);
- _THIS_utils.setUIState($('_THIS_sub_completionDeadline'),status);
- _THIS_utils.setUIState($('_THIS_notification'),status);
- _THIS_utils.setUIState($('_THIS_sub_stateChange_started'),status);
- _THIS_utils.setUIState($('_THIS_sub_stateChange_ownerChanged'),status);
- _THIS_utils.setUIState($('_THIS_sub_stateChange_comments'),status);
- _THIS_utils.setUIState($('_THIS_sub_stateChange_completed'),status);
- _THIS_utils.setUIState($('_THIS_sub_stateChange_cancelled'),status);
- }
-
- function _THIS_setSubscriptions() {
- //create the default subscription object
- _THIS_subscriptionObj.events = new Object();
- _THIS_subscriptionObj.events['START_DEADLINE']=INDIVIDUAL_SUBSCRIBE;
- _THIS_subscriptionObj.events['COMPLETE_DEADLINE']=INDIVIDUAL_SUBSCRIBE;
- _THIS_subscriptionObj.events['STATE_CHANGE_STARTED']=INDIVIDUAL_SUBSCRIBE;
- _THIS_subscriptionObj.events['STATE_CHANGE_OWNER_CHANGED']=INDIVIDUAL_SUBSCRIBE;
- _THIS_subscriptionObj.events['STATE_CHANGE_COMPLETED']=INDIVIDUAL_SUBSCRIBE;
- _THIS_subscriptionObj.events['COMMENTS']=INDIVIDUAL_SUBSCRIBE;
- _THIS_subscriptionObj.events['STATE_CHANGE_CANCELLED']=INDIVIDUAL_SUBSCRIBE;
-
- var eventx, statex;
- //get the task unsubscriptions and set into the subscriptions object
- <xsl:for-each select="/root/input[@name='dep']/queryResponse/*[local-name()='getUnsubscriptionsResponse']/*[local-name()='subscription']">
- //unsubscribe any that we have to, based on the users preferences
- eventx = '<xsl:value-of select="xtsext:javascriptencode(string(./*[local-name()='event']))"/>';
- statex = '<xsl:value-of select="xtsext:javascriptencode(string(./*[local-name()='subscriptionState']))"/>';
-
- _THIS_subscriptionObj.events[eventx]=statex;
- </xsl:for-each>
-
- //loop through the subscriptions and set the correct value into each checkbox
- for (eventx in _THIS_subscriptionObj.events) {
- var cb = _THIS_getCheckboxByValue(eventx);
- if (cb) {
- var state = _THIS_subscriptionObj.events[eventx];
- var checked = state ? state.indexOf("UNSUBSCRIBE") == -1 : true;
- cb.checked=checked;
- }
- }
- }
- /*
- * a subscription has changed. Fire the 'cognos.hts.changed_subscriptions' event
- * Example payload : action=changeSubscription&events={"STATE_CHANGE_FAILED":INDIVIDUAL_SUBSCRIBE}
- */
- function _THIS_subscriptionsChanged() {
- var _THIS_params = _THIS_getSubscriptionParams();
- //pass the changed params to those fragments interested
- _THIS_.raiseEvent('cognos.hts.changed_subscriptions',_THIS_params);
- }
- function _THIS_getSubscriptionParams() {
- var checkboxes = _THIS_getSubscriptionCheckboxes();
- var params;
- var events = new Object();
- for (var i=0;i<checkboxes.length;i++) {
- var cb = checkboxes[i];
- //only select if the subscription event has changed
- if (_THIS_subscriptionObj.events[cb.value] != cb.checked) {
- //we are setting the subscriptions here
- if (cb.checked) {
- events[cb.value]=INDIVIDUAL_SUBSCRIBE;
- }else{
- events[cb.value]=INDIVIDUAL_UNSUBSCRIBE;
- }
-
- update = true;
- }
- }
- if (update) {
- params = "action=changeSubscription&events=";
- params += dojo.toJson(events);
- }
- return params;
- }
- function _THIS_getSubscriptionCheckboxes() {
- var node = $('_THIS_taskOptions_advanced');
- var subscriptionCheckboxes = new Array();
- var checkboxes = new Object();
- var checkboxes = node.getElementsByTagName('INPUT');//_F_DOM.selectNodes(node,"//input[@type='checkbox']");
- var count=0;
- for (var i=0;i<checkboxes.length;i++) {
- if (checkboxes[i].type =='checkbox' && checkboxes[i].id.match("^"+'_THIS_sub_')=='_THIS_sub_' ) {
- subscriptionCheckboxes[count]=checkboxes[i];
- count++;
- }
- }
- return subscriptionCheckboxes;
- }
- function _THIS_getCheckboxByValue(value) {
- var cb;
- var checkboxes = _THIS_getSubscriptionCheckboxes();
- for (var i=0;i<checkboxes.length;i++) {
- if (checkboxes[i].value == value) {
- cb = checkboxes[i];
- break;
- }
- }
- return cb;
- }
- </hts:script>
- <xsl:call-template name="displayOptions"/>
- </xsl:template>
- <xsl:template name="displayOptions">
- <hts:section format="select-dialog" style="width:100%">
- <hts:rowset width="100%">
- <hts:row>
- <hts:div id="_THIS_taskOptions_advanced" name="_THIS_taskOptions_advanced">
- <hts:actionlist>
- <hts:action>
- <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" width="12px"/>
- </hts:action>
- <hts:action>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_GENERICTASK_LABEL_OPTIONS"/></hts:text>
- <hts:actionlist>
- <hts:action>
- <hts:checkbox id="_THIS_sub_startDeadline" onclick="_THIS_subscriptionsChanged()">
- <hts:value>START_DEADLINE</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_MY_START_DEADLINE"/></hts:text>
- </hts:checkbox>
- <hts:checkbox id="_THIS_sub_completionDeadline" onclick="_THIS_subscriptionsChanged()">
- <hts:value>COMPLETE_DEADLINE</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_MY_COMPLETE_DEADLINE"/></hts:text>
- </hts:checkbox>
- <hts:checkbox id="_THIS_notification" onclick="hts_selectCheckbox(this.id,'_THIS_');_THIS_subscriptionsChanged()">
- <hts:value>STATE_CHANGE</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_MY_STATUS_CHANGE"/></hts:text>
- </hts:checkbox>
- <hts:actionlist>
- <hts:action>
- <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" width="13px"/>
- </hts:action>
- <hts:action>
- <hts:rowset>
- <hts:row>
- <hts:action>
- <hts:checkbox id="_THIS_sub_stateChange_started" onclick="hts_selectCheckbox(this.id,'_THIS_');_THIS_subscriptionsChanged()" >
- <hts:value>STATE_CHANGE_STARTED</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_STATE_CHANGE_STARTED"/></hts:text>
- </hts:checkbox>
- </hts:action>
- <hts:action>
- <hts:checkbox id="_THIS_sub_stateChange_ownerChanged" onclick="hts_selectCheckbox(this.id,'_THIS_');_THIS_subscriptionsChanged()">
- <hts:value>STATE_CHANGE_OWNER_CHANGED</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_STATE_CHANGE_OWNER_CHANGED"/></hts:text>
- </hts:checkbox>
- </hts:action>
- </hts:row>
- <hts:row>
- <hts:action>
- <hts:checkbox id="_THIS_sub_stateChange_comments" onclick="hts_selectCheckbox(this.id,'_THIS_');_THIS_subscriptionsChanged()">
- <hts:value>COMMENTS</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_COMMENT"/></hts:text>
- </hts:checkbox>
- </hts:action>
- <hts:action>
- <hts:checkbox id="_THIS_sub_stateChange_completed" onclick="hts_selectCheckbox(this.id,'_THIS_');_THIS_subscriptionsChanged()">
- <hts:value>STATE_CHANGE_COMPLETED</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_STATE_CHANGE_COMPLETED"/></hts:text>
- </hts:checkbox>
- </hts:action>
- </hts:row>
- <hts:row>
- <hts:action>
- <hts:checkbox id="_THIS_sub_stateChange_cancelled" onclick="hts_selectCheckbox(this.id,'_THIS_');_THIS_subscriptionsChanged()">
- <hts:value>STATE_CHANGE_CANCELLED</hts:value>
- <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_CANCELLED"/></hts:text>
- </hts:checkbox>
- </hts:action>
- </hts:row>
- </hts:rowset>
- </hts:action>
- </hts:actionlist>
- </hts:action>
- </hts:actionlist>
- </hts:action>
- </hts:actionlist>
- </hts:div>
- </hts:row>
- </hts:rowset>
- </hts:section>
- </xsl:template>
- </xsl:stylesheet>
|