generic-task.xslt 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: HTS
  5. (C) Copyright IBM Corp. 2005, 2010
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  9. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  10. xmlns:hts="http://developer.cognos.com/myinbox/common/hts_ui"
  11. xmlns:impl="http://developer.cognos.com/fragments/implementation/1/"
  12. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  13. exclude-result-prefixes="xts hts xtsext">
  14. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
  15. <xsl:variable name="potentialOwners_input_field"><xts:string id="IDS_FRAG_TASKVIEWER_LABEL_POTENTIAL_OWNERS_ALT_TXT"/></xsl:variable>
  16. <xsl:variable name="stakeholder_input_field"><xts:string id="IDS_FRAG_TASKVIEWER_LABEL_STAKEHOLDERS_ALT_TXT"/></xsl:variable>
  17. <xsl:variable name="subject_input_field"><xts:string id="IDS_FRAG_TASKVIEWER_LABEL_SUBJECT_ALT_TXT"/></xsl:variable>
  18. <xsl:variable name="skin"><xsl:value-of select="/root/preferences/param[@name='skin']"/></xsl:variable>
  19. <xsl:template match="/">
  20. <hts:script type="text/javascript">
  21. //register ps dojo library to dojo
  22. dojo.registerModulePath('com', '../../ps/portal/js/com');
  23. if (hts_productMode &amp;&amp; hts_productMode.getMode() == hts_productMode.PLANNING) {
  24. dojo.registerModulePath("email", "../../pmpjs/email");
  25. dojo.registerModulePath("common", "../../pmpjs/common");
  26. dojo.registerModulePath("myinbox", "../../pmpjs/myinbox");
  27. dojo.require("myinbox.PSWrapper");
  28. dojo.require("email.RecipientDialog");
  29. dojo.require("myinbox.ListApplicationDialog");
  30. }
  31. dojo.require("dijit.Editor");
  32. dojo.require("com.ibm.cognos.ps.dojo.editor.plugins.TablePlugins");
  33. var _THIS_dateFrom="";
  34. var _THIS_dateTo="";
  35. var _THIS_toggler = new hts_toggler();
  36. var _THIS_dojoEditor;
  37. _THIS_.addEventListener("fragment.load", "_THIS_init");
  38. _THIS_.parent.addEventListener("cognos.hts.buildGenericTaskEditor", "_THIS_buildDojoEditor");
  39. var defaultStkHolder ;
  40. //messages used by TablePlugins.js
  41. var IDS_EMAIL_OPTIONS_BACKGRD = '<xts:string id="IDS_EMAIL_OPTIONS_BACKGRD" encode="javascript"/>';
  42. var IDS_EMAIL_OPTIONS_BORDER = '<xts:string id="IDS_EMAIL_OPTIONS_BORDER" encode="javascript"/>';
  43. function _THIS_init() {
  44. //the picker text boxes by default are set to the current date. set them to display nothing.
  45. //this fixes the issue of todays date getting displayed when no deadlines exist
  46. //also set the correct tab index and the correct label to be read by JAWs screen reader
  47. var dueDateEle = $('txtDate'+&apos;_THIS_&apos;+'taskOptions_dueDate');
  48. if (dueDateEle) {
  49. dijit.setWaiState(dueDateEle,'label','<xts:string id="IDS_FRAG_A11Y_DUE_DATE_LABEL" encode="javascript"/>');
  50. dueDateEle.value="";
  51. dueDateEle.tabIndex=6;
  52. }
  53. var startByEle = $('txtDate'+&apos;_THIS_&apos;+'taskOptions_startBy');
  54. if (startByEle) {
  55. dijit.setWaiState(startByEle,'label','<xts:string id="IDS_FRAG_A11Y_START_BY_DATE_LABEL" encode="javascript"/>');
  56. startByEle.value="";
  57. startByEle.tabIndex=5;
  58. }
  59. var uiStyle = new CUIStyle("CList_li", "CList_over", "CList_selected", "", null);
  60. // global cList
  61. cListGenTask = new CList("myCList",false, "CList_ul",uiStyle);
  62. <xsl:variable name="shname" select="/root/*[local-name()='input']/*[local-name()='currentUser']/name"/>
  63. <xsl:variable name="shid" select="/root/*[local-name()='input']/*[local-name()='currentUser']/id"/>
  64. //hts_setCurrentUser('_THIS__stakeHolders', '<xsl:value-of select="xtsext:javascriptencode(string($shid))"/>', '<xsl:value-of select="xtsext:javascriptencode(string($shname))"/>');
  65. defaultStkHolder = '<xsl:value-of select="xtsext:javascriptencode(string($shname))"/>';
  66. var currentUser = new HTSHumanRole("_THIS__stakeHolders");
  67. //We are running in Planning mode so hide the links.
  68. if (hts_productMode &amp;&amp; hts_productMode.getMode() == hts_productMode.PLANNING) {
  69. dojo.attr("_THIS_linksContainer","style",{display:"none"});
  70. //And set the proper security mode
  71. var psWrapper = new myinbox.PSWrapper();
  72. //Get the securityMode first.
  73. psWrapper.getSecurityMode(function(response) {
  74. currentUser.setLogicalPeopleGroup(response);
  75. });
  76. }
  77. currentUser.addRawDisplayValue('<xsl:value-of select="xtsext:javascriptencode(string($shname))"/>');
  78. currentUser.addRawValue('<xsl:value-of select="xtsext:javascriptencode(string($shid))"/>','false');
  79. currentUser.commit();
  80. if (!_THIS_dojoEditor) {
  81. _THIS_dojoEditor = new DOJOEditor("_THIS__taskMessageValue",{height: '150px' ,extraPlugins:['|',{name: 'com.ibm.cognos.ps.dojo.editor.plugins.TablePlugins', command: 'insertTableWithValidation', label:'<xts:string id="IDS_FRAG_TASKVIEWER_DOJO_INSERT_TABLE" encode="javascript"/>'},{name: 'com.ibm.cognos.ps.dojo.editor.plugins.TablePlugins', command: 'modifyTableWithValidation', label:'<xts:string id="IDS_FRAG_TASKVIEWER_DOJO_MODIFY_TABLE" encode="javascript"/>'}]});
  82. } else {
  83. //just incase.
  84. _THIS_dojoEditor.destroy();
  85. }
  86. //This will cater for both notification and generic tasks as well as the task details pages.
  87. hts_datePickerListener();
  88. }
  89. function _THIS_buildDojoEditor() {
  90. _THIS_dojoEditor.create();
  91. setTimeout(function(){var input = dojo.byId('_THIS__potentialOwners_display');input.focus();}, 500);
  92. var iframe = dojo.byId('_THIS__taskMessageValue_iframe');
  93. iframe.tabIndex=8;
  94. if (dojo.isMoz) {
  95. var contentDoc =_THIS_getEditorIFrameDocument();
  96. dojo.connect(contentDoc, 'onkeydown',_THIS_editor_handleTabKeyDown);
  97. }
  98. }
  99. function _THIS_getEditorIFrameDocument() {
  100. var iframe = dojo.byId('_THIS__taskMessageValue_iframe');
  101. var contentDoc =(iframe.contentWindow || iframe.contentDocument);
  102. if (contentDoc.document) {
  103. contentDoc=contentDoc.document;
  104. }
  105. return contentDoc;
  106. }
  107. /* HACK alert!! There is a firefox/dojo bug which means that you cannot tab out of the editor and therefore cannot
  108. * access the ui below the editor using the keyboard. Attach a key listener to the editor iframe
  109. * and capture tab keys. When tab is pressed focus the element with the next tab index.
  110. */
  111. function _THIS_editor_handleTabKeyDown(e) {
  112. var keyCode = _THIS_getKeyCode(e);
  113. var iframe = dojo.byId('_THIS__taskMessageValue_iframe');
  114. if(keyCode == dojo.keys.TAB &amp;&amp; !e.shiftKey &amp;&amp; !e.ctrlKey &amp;&amp; !e.altKey &amp;&amp; iframe){
  115. //iframe.focus(); //does not work
  116. //get the control with the next tabindex
  117. var nextTabIndex = iframe.tabIndex + 1;
  118. var done=false;
  119. //get all pform controls with a tabIndex
  120. dojo.query('#_THIS_pform [tabIndex]').forEach(function(ele){
  121. if (ele.id &amp;&amp; ele.tabIndex==nextTabIndex &amp;&amp; !done) {
  122. ele.focus();
  123. done=true;
  124. }
  125. });
  126. dojo.stopEvent(e);
  127. }
  128. }
  129. function _THIS_handleDeleteKeyDown(e) {
  130. //delete key
  131. var keynum;
  132. var keychar;
  133. if(window.event) // IE
  134. {
  135. keynum = e.keyCode;
  136. }
  137. else if(e.which) // Netscape/Firefox/Opera
  138. {
  139. keynum = e.which;
  140. }
  141. if(keynum == 46) {
  142. cListGenTask.removeSelected();
  143. }
  144. return true;
  145. }
  146. function _THIS_getKeyCode(e) {
  147. var keynum;
  148. if(window.event) // IE
  149. {
  150. keynum = e.keyCode;
  151. }
  152. else if(e.which) // Netscape/Firefox/Opera
  153. {
  154. keynum = e.which;
  155. }
  156. return keynum;
  157. }
  158. var GLOBAL_SUBSCRIBE = "GLOBAL_SUBSCRIBE";
  159. var GLOBAL_UNSUBSCRIBE = "GLOBAL_UNSUBSCRIBE";
  160. function _THIS_getSubscriptionParams() {
  161. var checkboxes = _THIS_getSubscriptionCheckboxes();
  162. var params = "&amp;events=";
  163. var events = new Object();
  164. for (var i=0;i&lt;checkboxes.length;i++) {
  165. var cb = checkboxes[i];
  166. //we are setting the subscriptions here
  167. if (cb.checked) {
  168. events[cb.value]=GLOBAL_SUBSCRIBE;
  169. }else{
  170. events[cb.value]=GLOBAL_UNSUBSCRIBE;
  171. }
  172. }
  173. params += dojo.toJson(events);
  174. return params;
  175. }
  176. function _THIS_getSubscriptionCheckboxes() {
  177. var node = $('_THIS_taskOptions_advanced');
  178. var subscriptionCheckboxes = new Array();
  179. var checkboxes = new Object();
  180. var checkboxes = node.getElementsByTagName('INPUT');//_F_DOM.selectNodes(node,"//input[@type='checkbox']");
  181. var count=0;
  182. for (var i=0;i&lt;checkboxes.length;i++) {
  183. if (checkboxes[i].type =='checkbox' &amp;&amp; checkboxes[i].id.match("^"+'_THIS_sub_')=='_THIS_sub_' ) {
  184. subscriptionCheckboxes[count]=checkboxes[i];
  185. count++;
  186. }
  187. }
  188. return subscriptionCheckboxes;
  189. }
  190. function _THIS_save() {
  191. var links = new HTSLinks(cListGenTask,$('linksDivGen'));
  192. document.getElementById('_THIS__linksList_value').value = links.getValues();
  193. document.getElementById('_THIS__linksList_display').value = links.getDisplayValues();
  194. var subscriptions = _THIS_getSubscriptionParams();
  195. if (hts_createGenericTask(_THIS_,&apos;_THIS_&apos;,subscriptions)) {
  196. _THIS_done();
  197. //reload the task list to show new task if need be
  198. var _THIS_utils = new hts_utils(_THIS_);
  199. _THIS_utils.refreshCurrentTab('poolTaskList');
  200. }
  201. }
  202. function _THIS_done() {
  203. _THIS_dojoEditor.destroy();
  204. _THIS_.raiseEvent('cognos.hts.hideAll');
  205. }
  206. function _THIS_cancel() {
  207. // check if user has done some editing and warn before cancel
  208. var editedInfo = (document.getElementById('_THIS__subject_value').value );
  209. editedInfo +=(document.getElementById('_THIS__potentialOwners_value').value );
  210. if(document.getElementById('_THIS__stakeHolders_display').value != defaultStkHolder ){
  211. editedInfo +=(document.getElementById('_THIS__stakeHolders_value').value );
  212. }
  213. editedInfo += _THIS_dojoEditor.getValue();
  214. editedInfo += document.getElementById('txtDate'+'_THIS_'+'taskOptions_startBy').value ;
  215. editedInfo += document.getElementById('txtDate'+'_THIS_'+'taskOptions_dueDate').value ;
  216. var priortyChanged = false;
  217. if( document.getElementById('_THIS_'+'taskOptions_priority').value != 3 ){
  218. priortyChanged = true;
  219. }
  220. var links = new HTSLinks(cListGenTask,$('linksDivNot'));
  221. editedInfo += links.getValues();
  222. var promptYes ;
  223. if(priortyChanged || editedInfo.length>0){
  224. promptYes = confirm( '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_TASK_MODIFIED" encode="javascript"/>' );
  225. if(!promptYes){
  226. return false;
  227. }
  228. else{
  229. // Lets manually clean each item on the task page
  230. document.getElementById('_THIS__subject_value').value = '';
  231. document.getElementById('txtDate'+'_THIS_'+'taskOptions_startBy').value = '';
  232. document.getElementById('txtDate'+'_THIS_'+'taskOptions_dueDate').value = '';
  233. document.getElementById('_THIS_'+'taskOptions_priority').value = 3;
  234. hts_removeAllLinks(cListGenTask);
  235. var currentUser = new HTSHumanRole("_THIS__stakeHolders");
  236. currentUser.addRawDisplayValue('<xsl:value-of select="xtsext:javascriptencode(string($shname))"/>');
  237. currentUser.addRawValue('<xsl:value-of select="xtsext:javascriptencode(string($shid))"/>','false');
  238. currentUser.commit();
  239. var potUser = new HTSHumanRole("_THIS__potentialOwners");
  240. potUser.clear();
  241. }
  242. }
  243. _THIS_dojoEditor.destroy();
  244. _THIS_.raiseEvent('cognos.hts.displayPreviousDiv');
  245. _THIS_.raiseEvent('cognos.hts.unlock_list');
  246. }
  247. //declare the error messages
  248. var _THIS_msg_array = new Array();
  249. _THIS_msg_array['MSG_ERR_INCOMPATIBLE_DATES'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_INCOMPATIBLE_DATES" encode="javascript"/>';
  250. _THIS_msg_array['MSG_ERR_INVALID_END_DATE'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_INVALID_END_DATE" encode="javascript"/>';
  251. _THIS_msg_array['MSG_ERR_INVALID_START_DATE'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_INVALID_START_DATE" encode="javascript"/>';
  252. _THIS_msg_array['MSG_ERR_INVALID_DATE'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_INVALID_DATE" encode="javascript"/>';
  253. _THIS_msg_array['MSG_ERR_INVALID_ASSIGNMENT'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_INVALID_ASSIGNMENT" encode="javascript"/>';
  254. _THIS_msg_array['MSG_ERR_EQUAL_DATES'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_EQUAL_DATES" encode="javascript"/>';
  255. //_THIS_msg_array['MSG_ERR_START_CANNOT_USE_CURRENT_DATE'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_START_CANNOT_USE_CURRENT_DATE" encode="javascript"/>';
  256. _THIS_msg_array['MSG_ERR_COMPLETE_CANNOT_USE_CURRENT_DATE'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_COMPLETE_CANNOT_USE_CURRENT_DATE" encode="javascript"/>';
  257. _THIS_msg_array['MSG_ERR_ASSIGNEDTO_OR_STAKEHOLDER_NOT_SELECTED'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_ASSIGNEDTO_OR_STAKEHOLDER_NOT_SELECTED" encode="javascript"/>';
  258. _THIS_msg_array['MSG_ERR_TASKVIEWER_WARN_GENERICTASK_NO_SUBJECT'] = '<xts:string id="IDS_FRAG_TASKVIEWER_WARN_GENERICTASK_NO_SUBJECT" encode="javascript"/>';
  259. try {
  260. if (typeof oCV=="undefined") {
  261. oCV=window;
  262. }
  263. } catch(e) {
  264. oCV=window;
  265. }
  266. var G_PM_THIS_ = new C_PromptManager();
  267. oCV.preProcessControlArray=[];
  268. p_sSkinFolder=_F_Config.webContent + "/skins/<xsl:value-of select='xtsext:javascriptencode(string($skin))'/>";
  269. p_sWebContentURI=_F_Config.webContent;
  270. oCV.gbPromptRequestSubmitted=false;
  271. oCV.bCanFinish=true;oCV.bNextPage=true;
  272. oCV.pageNavigationObserverArray=[];
  273. oCV.rangeObserverArray=[];
  274. oCV.multipleObserverArray=[];
  275. oCV.datePickerObserverArray=[];
  276. oCV.hasPromptKeyDown=false;
  277. _THIS_monitor = function (evt) {
  278. if (evt.eventPhase == evt.AT_TARGET) //only want to execute this on downstream events
  279. return;
  280. var assignAndClose = $('_THIS_btnAssignAndClose');
  281. if (assignAndClose){
  282. if (evt.name == "fragment.retrieve.before"){
  283. assignAndClose.disabled = true;
  284. } else {
  285. assignAndClose.disabled = false;
  286. }
  287. }
  288. }
  289. _THIS_.parent.addEventListener("fragment.retrieve.before", "_THIS_monitor", true);
  290. _THIS_.parent.addEventListener("fragment.retrieve.after", "_THIS_monitor", true);
  291. </hts:script>
  292. <xsl:call-template name="renderOptions"/>
  293. </xsl:template>
  294. <xsl:template name="renderOptions">
  295. <form name="_THIS_pform" id="_THIS_pform" method="post" action="_THIS?/THIS_">
  296. <!--render the button bar -->
  297. <hts:section id="_THIS_footer" class="taskDetailsButtonBar">
  298. <hts:rowset>
  299. <hts:row>
  300. <hts:button id="_THIS_btnAssignAndClose" onKeyPress="if (_hts_getKeyCode(event) == 13) _THIS_save();" onclick="_THIS_save();" tabindex="20">
  301. <hts:value><xts:string id="IDS_FRAG_TASKVIEWER_GENERICTASK_BUTTON_SAVE"/></hts:value>
  302. </hts:button>
  303. <hts:button id="_THIS_btnCancel" onKeyPress="if (_hts_getKeyCode(event) == 13) _THIS_cancel();" onclick="_THIS_cancel();" tabindex="21">
  304. <hts:value><xts:string id="IDS_FRAG_TASKVIEWER_GENERICTASK_BUTTON_CANCEL"/></hts:value>
  305. </hts:button>
  306. </hts:row>
  307. </hts:rowset>
  308. </hts:section>
  309. <!-- Text fields and date fields -->
  310. <hts:section format="select-dialog" style="width:100%;padding:0px;margin:0px">
  311. <hts:actionlist>
  312. <hts:action>
  313. <hts:rowset>
  314. <hts:row format="select">
  315. <xsl:variable name="labelName">
  316. <xts:string id="IDS_FRAG_TASKVIEWER_LABEL_POTENTIAL_OWNERS"/>
  317. </xsl:variable>
  318. <hts:action style="width:20px">
  319. <hts:text label-for="_THIS__potentialOwners_display"><xsl:value-of select="$labelName"/></hts:text>
  320. </hts:action>
  321. <hts:action>
  322. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" height="0px" width="20px"/>
  323. </hts:action>
  324. <hts:action>
  325. <hts:field size="100" type="text" aria-readonly="true" alt="{$potentialOwners_input_field}" name="_THIS__potentialOwners_display" id="_THIS__potentialOwners_display" readonly="true" tabindex="1"/>
  326. <hts:hidden id="_THIS__potentialOwners_value" name="_THIS__potentialOwners_value"/>
  327. </hts:action>
  328. </hts:row>
  329. <hts:row format="select">
  330. <xsl:variable name="labelName">
  331. <xts:string id="IDS_FRAG_TASKVIEWER_LABEL_STAKEHOLDERS"/>
  332. </xsl:variable>
  333. <hts:action style="width:20px">
  334. <hts:text label-for="_THIS__stakeHolders_display"><xsl:value-of select="$labelName"/></hts:text>
  335. </hts:action>
  336. <hts:action>
  337. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" height="0px" width="20px"/>
  338. </hts:action>
  339. <hts:action>
  340. <hts:field size="100" type="text" aria-readonly="true" alt="{$stakeholder_input_field}" name="_THIS__stakeHolders_display" id="_THIS__stakeHolders_display" readonly="true" tabindex="2"/>
  341. <hts:hidden id="_THIS__stakeHolders_value" name="_THIS__stakeHolders_value"/>
  342. </hts:action>
  343. </hts:row>
  344. <hts:row>
  345. <hts:action colspan="3">
  346. <hts:div style="width:100%;text-align:right;padding-bottom:4px">
  347. <hts:link id="_THIS_AddRecipients" tabindex="3" onclick="hts_selectRecipients(&quot;&quot;,_THIS_msg_array,&apos;_THIS_&apos;+'_stakeHolders',&apos;_THIS_&apos;+'_potentialOwners','humanTask');" href="#"><xts:string id="IDS_FRAG_TASKVIEWER_LABEL_ADD_RECIPIENTS"/></hts:link>
  348. </hts:div>
  349. </hts:action>
  350. <hts:action>
  351. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" height="0px" width="300px"/>
  352. </hts:action>
  353. </hts:row>
  354. <hts:row format="select">
  355. <hts:action style="width:40px">
  356. <hts:text label-for="_THIS__subject_value"><xts:string id="IDS_FRAG_TASKVIEWER_GENERICTASK_LABEL_SUBJECT"/></hts:text>
  357. </hts:action>
  358. <hts:action>
  359. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" height="0px" width="5px"/>
  360. </hts:action>
  361. <hts:action colspan="2">
  362. <hts:field tabindex="4" size="150" type="text" alt="{$subject_input_field}" name="_THIS__subject_value" id="_THIS__subject_value"/>
  363. </hts:action>
  364. </hts:row>
  365. </hts:rowset>
  366. </hts:action>
  367. </hts:actionlist>
  368. <!-- date fields -->
  369. <hts:actionlist>
  370. <hts:action>
  371. <hts:span>
  372. <xsl:attribute name="style">margin-left:2px</xsl:attribute>
  373. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_LABEL_START_BY"/></hts:text>
  374. </hts:span>
  375. <hts:section format="select-dialog" id="selectDate_THIS_taskOptions_startBy">
  376. <hts:script>
  377. var _THIS_startById = "_THIS_taskOptions_startBy";
  378. hts_clearDatePickersIframe(_THIS_startById);
  379. genSelectDateHTML({formName:"_THIS_pform",parameterName:"_THIS_taskOptions_startBy",submitType:"",prmtDefaultDate:_THIS_dateFrom,defaultValue:_THIS_dateFrom,startOfWeek:"Sunday",calendar:"Gregorian",selectUI:"editBox",selectDateUI:"editBox",inputOrder:"YMD",firstDate:hts_getCurrentDate(),lastDate:"",dateTime:0,initialState:RANGE_NO_VALUE,required:false,suppressDisabled:true,hideAdornments:false,suppressExtraPromptNames:false,multi:false,range:false,style:"",selectDateEditBoxStyle:"",selectDateYearsStyle:"",selectDateMonthsStyle:"",selectDateDaysOfWeekStyle:"",selectDateDaysStyle:"",CVId:"",id:_THIS_startById});
  380. </hts:script>
  381. </hts:section>
  382. </hts:action>
  383. <hts:action>
  384. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" width="24px"/>
  385. </hts:action>
  386. <hts:action>
  387. <hts:span>
  388. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_LABEL_DUE_DATE"/></hts:text>
  389. </hts:span>
  390. <hts:section format="select-dialog" id="selectDate_THIS_taskOptions_dueDate">
  391. <hts:script>
  392. var _THIS_dueDateId = "_THIS_taskOptions_dueDate";
  393. hts_clearDatePickersIframe(_THIS_dueDateId);
  394. genSelectDateHTML({formName:"_THIS_pform",parameterName:"_THIS_taskOptions_dueDate",submitType:"",prmtDefaultDate:_THIS_dateTo,defaultValue:_THIS_dateTo,startOfWeek:"Sunday",calendar:"Gregorian",selectUI:"editBox",selectDateUI:"editBox",inputOrder:"YMD",firstDate:hts_getCurrentDate(),lastDate:"",dateTime:0,initialState:RANGE_NO_VALUE,required:false,suppressDisabled:true,hideAdornments:false,suppressExtraPromptNames:false,multi:false,range:false,style:"",selectDateEditBoxStyle:"",selectDateYearsStyle:"",selectDateMonthsStyle:"",selectDateDaysOfWeekStyle:"",selectDateDaysStyle:"",CVId:"",id:_THIS_dueDateId});
  395. </hts:script>
  396. </hts:section>
  397. </hts:action>
  398. <hts:action>
  399. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" width="24px"/>
  400. </hts:action>
  401. <hts:action>
  402. <hts:span>
  403. <xsl:attribute name="style">margin-left:3px</xsl:attribute>
  404. <hts:text label-for="_THIS_taskOptions_priority"><xts:string id="IDS_FRAG_TASKVIEWER_LABEL_PRIORITY"/></hts:text>
  405. </hts:span>
  406. <hts:section format="select-dialog">
  407. <hts:select name="_THIS_taskOptions_priority" id="_THIS_taskOptions_priority" tabindex="7">
  408. <hts:option value="5"><xts:string id="IDS_FRAG_PRIORITY_LABEL_LOW"/></hts:option>
  409. <hts:option value="3">
  410. <xsl:attribute name="selected">true</xsl:attribute>
  411. <xts:string id="IDS_FRAG_PRIORITY_LABEL_MEDIUM"/>
  412. </hts:option>
  413. <hts:option value="1"><xts:string id="IDS_FRAG_PRIORITY_LABEL_HIGH"/></hts:option>
  414. </hts:select>
  415. </hts:section>
  416. </hts:action>
  417. </hts:actionlist>
  418. <!-- Message with link -->
  419. <hts:actionlist>
  420. <hts:action>
  421. <!--hts:text><xts:string id="IDS_FRAG_TASKVIEWER_GENERICTASK_LABEL_MESSAGE"/></hts:text-->
  422. <label for="_THIS__taskMessageValue_iframe"><xts:string id="IDS_FRAG_TASKVIEWER_GENERICTASK_LABEL_MESSAGE"/></label>
  423. </hts:action>
  424. </hts:actionlist>
  425. <hts:div>
  426. <xsl:attribute name="id">_THIS__taskMessageValue</xsl:attribute>
  427. <xsl:attribute name="style">margin-bottom:3px;width:100%</xsl:attribute>
  428. <!--xsl:attribute name="dojoType">dijit.Editor</xsl:attribute-->
  429. </hts:div>
  430. <hts:hidden id="_THIS__taskMessageTextValue" name="_THIS__taskMessageTextValue"/>
  431. <hts:div id="_THIS_linksContainer">
  432. <hts:div id="linksDivGen" class="htsLinkArea" onkeydown="_THIS_handleDeleteKeyDown(event)"/>
  433. <hts:hidden id="_THIS__linksList_value" name="_THIS__linksList_value"/>
  434. <hts:hidden id="_THIS__linksList_display" name="_THIS__linksList_display"/>
  435. <div align="right">
  436. <hts:link tabindex="9" id="_THIS__removeLinks" onclick="hts_removeLinks(cListGenTask, '_THIS__removeLinks');" href="#">
  437. <xts:string id="IDS_FRAG_TASKVIEWER_LABEL_REMOVE_LINKS"/>
  438. </hts:link>
  439. <hts:link tabindex="10" id="_THIS__addLinks" onclick="hts_selectLinks(cListGenTask,'linksDivGen', '_THIS__addLinks', 9);" href="#">
  440. <xts:string id="IDS_FRAG_TASKVIEWER_LABEL_ADD_LINKS"/>
  441. </hts:link>
  442. </div>
  443. </hts:div>
  444. <!-- Advanced collapse area -->
  445. <hts:dynamicexpandcontrol name="_THIS_taskOptions_advanced" tabindex="11">
  446. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_ADVANCED"/></hts:text>
  447. <hts:dynamicarea>
  448. <hts:div class="cogstyle-hts-subscription-div-border" id="_THIS_taskOptions_advanced" name="_THIS_taskOptions_advanced">
  449. <hts:actionlist>
  450. <hts:action>
  451. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" width="12px"/>
  452. </hts:action>
  453. <hts:action>
  454. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_GENERICTASK_LABEL_OPTIONS"/></hts:text>
  455. <hts:actionlist>
  456. <hts:action>
  457. <hts:checkbox id="_THIS_sub_startDeadline" onclick="hts_selectCheckbox(this.id,'_THIS_')" selected="true" tabindex="12">
  458. <hts:value>START_DEADLINE</hts:value>
  459. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_START_DEADLINE"/></hts:text>
  460. </hts:checkbox>
  461. <hts:checkbox id="_THIS_sub_completionDeadline" onclick="hts_selectCheckbox(this.id,'_THIS_')" selected="true" tabindex="13">
  462. <hts:value>COMPLETE_DEADLINE</hts:value>
  463. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_COMPLETE_DEADLINE"/></hts:text>
  464. </hts:checkbox>
  465. <hts:checkbox id="_THIS_notification" onclick="hts_selectCheckbox(this.id,'_THIS_')" selected="true" tabindex="14">
  466. <hts:value>STATE_CHANGE</hts:value>
  467. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_STATUS_CHANGE"/></hts:text>
  468. </hts:checkbox>
  469. <hts:actionlist>
  470. <hts:action>
  471. <hts:img src="_THIS?frag-resource=/fragments/common/images/space.gif/THIS_" alt="" width="13px"/>
  472. </hts:action>
  473. <hts:action>
  474. <hts:rowset>
  475. <hts:row>
  476. <hts:action>
  477. <hts:checkbox id="_THIS_sub_stateChange_started" onclick="hts_selectCheckbox(this.id,'_THIS_')" tabindex="15">
  478. <hts:value>STATE_CHANGE_STARTED</hts:value>
  479. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_STATE_CHANGE_STARTED"/></hts:text>
  480. </hts:checkbox>
  481. </hts:action>
  482. <hts:action>
  483. <hts:checkbox id="_THIS_sub_stateChange_ownerChanged" onclick="hts_selectCheckbox(this.id,'_THIS_')" tabindex="16">
  484. <hts:value>STATE_CHANGE_OWNER_CHANGED</hts:value>
  485. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_STATE_CHANGE_OWNER_CHANGED"/></hts:text>
  486. </hts:checkbox>
  487. </hts:action>
  488. </hts:row>
  489. <hts:row>
  490. <hts:action>
  491. <hts:checkbox id="_THIS_sub_stateChange_comments" onclick="hts_selectCheckbox(this.id,'_THIS_')" tabindex="17">
  492. <hts:value>COMMENTS</hts:value>
  493. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_COMMENT"/></hts:text>
  494. </hts:checkbox>
  495. </hts:action>
  496. <hts:action>
  497. <hts:checkbox id="_THIS_sub_stateChange_completed" onclick="hts_selectCheckbox(this.id,'_THIS_')" selected="true" tabindex="18">
  498. <hts:value>STATE_CHANGE_COMPLETED</hts:value>
  499. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_STATE_CHANGE_COMPLETED"/></hts:text>
  500. </hts:checkbox>
  501. </hts:action>
  502. </hts:row>
  503. <hts:row>
  504. <hts:action>
  505. <hts:checkbox id="_THIS_sub_stateChange_cancelled" onclick="hts_selectCheckbox(this.id,'_THIS_');" selected="true" tabindex="19">
  506. <hts:value>STATE_CHANGE_CANCELLED</hts:value>
  507. <hts:text><xts:string id="IDS_FRAG_TASKVIEWER_SUBSCRIPTION_LABEL_CANCELLED"/></hts:text>
  508. </hts:checkbox>
  509. </hts:action>
  510. </hts:row>
  511. </hts:rowset>
  512. </hts:action>
  513. </hts:actionlist>
  514. </hts:action>
  515. </hts:actionlist>
  516. </hts:action>
  517. </hts:actionlist>
  518. </hts:div>
  519. </hts:dynamicarea>
  520. </hts:dynamicexpandcontrol>
  521. </hts:section>
  522. </form>
  523. </xsl:template>
  524. </xsl:stylesheet>