source: trunk/grails-app/views/taskDetailed/show.gsp @ 802

Last change on this file since 802 was 802, checked in by gav, 13 years ago

Task trash improvements.
Allow trashed parentTask to break subTask links (only with auth).
Prevent trashing of tasks linked to taskProcedure or Parent PM type tasks.

File size: 49.8 KB
Line 
1<html>
2    <head>
3        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
4        <meta name="layout" content="main" />
5        <title>Show Task #${taskInstance.id}</title>
6        <nav:resources override="true"/>
7        <resource:tabView skin="tabviewCustom" />
8    </head>
9    <body>
10        <div class="nav">
11            <nav:renderSubItems group="nav"/>
12        </div>
13        <div class="body">
14            <g:render template="/shared/messages" />
15            <g:if test="${taskInstance.trash}" >
16                <div class="errors">
17                        <ul><li>This task is in the trash bin, but can be restored if required.<li><ul>
18                </div>
19            </g:if>
20            <g:hasErrors bean="${taskInstance}">
21            <div class="errors">
22                <g:renderErrors bean="${taskInstance}" as="list" />
23            </div>
24            </g:hasErrors>
25
26            <div class="tabHeader">
27                <h1>
28                    Task #${taskInstance.id}
29
30                    <g:if test="${taskInstance.approved}" >
31                        <img  src="${resource(dir:'images/skin',file:'cog.png')}" alt="Approved" title="Approved" />
32                    </g:if>
33                    <g:if test="${taskRecurringScheduleInstance?.enabled}" >
34                        <img  src="${resource(dir:'images/skin',file:'arrow_refresh.png')}" alt="Recurrence Enabled" title="Recurrence Enabled" />
35                    </g:if>
36                    <g:if test="${taskInstance.taskStatus.id == 2}" >
37                        <img  src="${resource(dir:'images/skin',file:'arrow_right.png')}" alt="In Progress" title="In Progress" />
38                    </g:if>
39                    <g:if test="${taskInstance.attentionFlag}" >
40                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Attention Flag" title="Attention Flag" />
41                    </g:if>
42                    <g:if test="${taskInstance.taskStatus.id == 3}" >
43                        <img  src="${resource(dir:'images/skin',file:'tick.png')}" alt="Complete" title="Complete" />
44                    </g:if>
45                </h1>
46                <g:if test="${taskInstance.primaryAsset}" >
47                    ${fieldValue(bean:taskInstance, field:'primaryAsset')}:
48                </g:if>
49                ${fieldValue(bean:taskInstance, field:'description')}
50                <g:if test="${taskInstance.safetyRequirement}" >
51                    <img  src="${resource(dir:'images/skin',file:'lightning.png')}" alt="Safety Requirement" title="Safety Requirement" />
52                    Safety
53                </g:if>
54                <g:if test="${taskInstance.regulatoryRequirement}" >
55                    <img  src="${resource(dir:'images/skin',file:'script_lightning.png')}" alt="Regulatory Requirement" title="Regulatory Requirement" />
56                    Regulatory
57                </g:if>
58                <g:if test="${taskInstance.mandatoryRequirement}" >
59                    <img  src="${resource(dir:'images/skin',file:'script.png')}" alt="Mandatory Requirement" title="Mandatory Requirement" />
60                    Mandatory
61                </g:if>
62            </div>
63
64            <br/>
65
66            <richui:tabView id="tabView">
67
68                <richui:tabLabels>
69                    <richui:tabLabel selected="${showTab.task}" title="Details" />
70                    <g:if test="${taskProcedureExits}">
71                        <richui:tabLabel selected="${showTab.procedure}" title="Procedure (!)" />
72                    </g:if>
73                    <g:else>
74                        <richui:tabLabel selected="${showTab.procedure}" title="Procedure" />
75                    </g:else>
76                    <g:if test="${taskRecurringScheduleExits}">
77                        <richui:tabLabel selected="${showTab.recurrence}" title="Recurrence (!)" />
78                    </g:if>
79                    <g:else>
80                        <richui:tabLabel selected="${showTab.recurrence}" title="Recurrence" />
81                    </g:else>
82                    <g:if test="${!inventoryMovementList.isEmpty()}">
83                        <richui:tabLabel selected="${showTab.inventory}" title="Inventory (${inventoryMovementList.size()})" />
84                    </g:if>
85                    <g:else>
86                        <richui:tabLabel selected="${showTab.inventory}" title="Inventory (0)" />
87                    </g:else>
88                    <g:if test="${subTaskInstanceTotal > 0}">
89                        <richui:tabLabel selected="${showTab.subTasks}" title="Sub Tasks (${subTaskInstanceTotal})" />
90                    </g:if>
91                    <g:else>
92                        <richui:tabLabel selected="${showTab.subTasks}" title="Sub Tasks (0)" />
93                    </g:else>
94                </richui:tabLabels>
95
96                <richui:tabContents>
97
98<!-- Start Task tab -->
99                    <richui:tabContent>
100
101                        <div class="dialog">
102                            <table>
103                                <tbody>
104
105                                    <g:if test="${taskInstance.parentTask}">
106                                        <tr class="prop">
107                                            <td valign="top" class="name">Parent Task:</td>
108
109                                            <td valign="top" class="value">
110                                                <g:link controller="taskDetailed" action="show" id="${taskInstance.parentTask.id}">
111                                                    ${taskInstance.parentTask.encodeAsHTML()}
112                                                </g:link>
113                                            </td>
114
115                                        </tr>
116                                    </g:if>
117
118                                    <tr class="prop">
119                                        <td valign="top" class="name">Comment:</td>
120
121                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'comment')}</td>
122
123                                    </tr>
124
125                                    <tr class="prop">
126                                        <td valign="top" class="name">Target Start:</td>
127
128                                        <td valign="top" class="value">
129                                            <g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/>
130                                        </td>
131
132                                    </tr>
133
134                                    <tr class="prop">
135                                        <td valign="top" class="name">Target Completion:</td>
136
137                                        <td valign="top" class="value">
138                                            <g:formatDate date="${taskInstance.targetCompletionDate}" format="EEE, dd-MMM-yyyy"/>
139                                        </td>
140
141                                    </tr>
142
143                                    <tr class="prop">
144                                        <td valign="top" class="name">
145
146                                            <jsUtil:toggleControl toggleId="modifications"
147                                                                                    imageId="modificationsImg"
148                                                                                    closedImgUrl="${resource(dir:'images/skin',file:'bullet_toggle_plus.png')}"
149                                                                                    openImgUrl="${resource(dir:'images/skin',file:'bullet_toggle_minus.png')}"
150                                                                                    effect="fade"
151                                                                                    text="Modifications"
152                                                                                    />
153                                        </td>
154
155                                        <td  valign="top" style="text-align:left;" class="value">
156                                            <div id="modifications" style="display:none;">
157                                                <ul>
158                                                <g:each var="a" in="${taskModificationList}">
159                                                    <li>${a?.encodeAsHTML()}</li>
160                                                </g:each>
161                                                </ul>
162                                            </div>
163                                        </td>
164                                    </tr>
165
166                                    <tr class="prop">
167                                        <td valign="top" class="name">Primary Asset:</td>
168
169                                        <td valign="top" class="value"><g:link controller="assetDetailed" action="show" id="${taskInstance?.primaryAsset?.id}">${taskInstance?.primaryAsset?.encodeAsHTML()}</g:link></td>
170
171                                    </tr>
172
173                                    <tr class="prop">
174                                        <td valign="top" class="name">Associated Assets:</td>
175
176                                        <td  valign="top" style="text-align:left;" class="value">
177                                            <ul>
178                                            <g:each var="a" in="${taskInstance.associatedAssets}">
179                                                <li>${a?.encodeAsHTML()}</li>
180                                            </g:each>
181                                            </ul>
182                                        </td>
183
184                                    </tr>
185
186                                    <tr class="prop">
187                                        <td valign="top" class="name">Priority:</td>
188
189                                        <td valign="top" class="value">${taskInstance?.taskPriority?.encodeAsHTML()}</td>
190
191                                    </tr>
192
193                                    <tr class="prop">
194                                        <td valign="top" class="name">Positive Fault:</td>
195
196                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'positiveFault')}</td>
197
198                                    </tr>
199
200                                    <tr class="prop">
201                                        <td valign="top" class="name">Group:</td>
202
203                                        <td valign="top" class="value">${taskInstance?.taskGroup?.encodeAsHTML()}</td>
204
205                                    </tr>
206
207                                    <tr class="prop">
208                                        <td valign="top" class="name">Type:</td>
209
210                                        <td valign="top" class="value">${taskInstance?.taskType?.encodeAsHTML()}</td>
211
212                                    </tr>
213
214                                    <tr class="prop">
215                                        <td valign="top" class="name">Lead Person:</td>
216
217                                        <td valign="top" class="value">${taskInstance?.leadPerson?.encodeAsHTML()}</td>
218
219                                    </tr>
220
221                                    <tr class="prop">
222                                        <td valign="top" class="name">Assigned Groups:</td>
223
224                                        <td  valign="top" style="text-align:left;" class="value">
225                                            <ul>
226                                            <g:each var="a" in="${assignedGroupList}">
227                                                <li><g:link controller="assignedGroupDetailed" action="edit" id="${a.id}" params="['task.id':taskInstance.id]">${a?.encodeAsHTML()}</g:link></li>
228                                            </g:each>
229                                            </ul>
230                                            <g:link controller="assignedGroupDetailed" action="create" params="['task.id':taskInstance.id]">+Add Group</g:link>
231                                        </td>
232
233                                    </tr>
234
235
236                                    <tr class="prop">
237                                        <td valign="top" class="name">Assigned Persons:</td>
238
239                                        <td  valign="top" style="text-align:left;" class="value">
240                                            <ul>
241                                            <g:each var="a" in="${assignedPersonList}">
242                                                <li><g:link controller="assignedPersonDetailed" action="edit" id="${a.id}" params="['task.id':taskInstance.id]">${a?.encodeAsHTML()}</g:link></li>
243                                            </g:each>
244                                            </ul>
245                                            <g:link controller="assignedPersonDetailed" action="create" params="['task.id':taskInstance?.id]">+Add Person</g:link>
246                                        </td>
247
248                                    </tr>
249
250                                </tbody>
251                            </table>
252                        </div>
253
254                        <div class="buttons">
255                            <g:form>
256                                <input type="hidden" name="id" value="${taskInstance?.id}" />
257
258                                <g:if test="${taskInstance.trash}" >
259                                    <span class="button"><g:actionSubmit class="restore" onclick="return confirm('Are you sure?');" value="Restore"/></span>
260                                </g:if>
261                                <g:else>
262
263                                    <g:if test="${taskInstance.taskStatus.id != 3}" >
264
265                                        <g:if test="${taskInstance.attentionFlag}" >
266                                            <span class="button"><g:actionSubmit class="flag" value="Clear" action="clearAttentionFlag"/></span>
267                                        </g:if>
268                                        <g:else>
269                                            <span class="button"><g:actionSubmit class="flag" value="Unresolved" action="setAttentionFlag"/></span>
270                                            <g:helpBalloon class="helpballoon" code="task.status.unresolved" />
271                                        </g:else>
272
273                                        <span class="button"><g:actionSubmit class="complete" value="Resolved" action="complete"/></span>
274                                        <g:helpBalloon class="helpballoon" code="task.status.resolved" />
275
276                                        <g:if test="${taskInstance.approved}" >
277                                            <span class="button"><g:actionSubmit class="renegeApproval" value="Renege Approval" action="renegeApproval" /></span>
278                                        </g:if>
279                                        <g:else>
280                                            <span class="button"><g:actionSubmit class="approve" value="Approve" /></span>
281                                        </g:else>
282
283                                        <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
284                                        <span class="button">
285                                            <g:actionSubmit class="trash"
286                                                                        onclick="return confirm('${message(code:'task.trash.confirm')}');"
287                                                                        value="Trash" />
288                                        </span>
289
290                                    </g:if>
291                                    <g:else>
292                                        <span class="button"><g:actionSubmit class="reopen" value="Reopen" /></span>
293                                    </g:else>
294
295                                </g:else>
296                            </g:form>
297                        </div>
298
299                        <br />
300
301                        <g:if test="${entryFaultList.isEmpty()}">
302                            <h1>No Faults</h1>
303                            <br />
304                        </g:if>
305                        <g:else>
306                            <div class="list">
307                                <h1>Faults</h1>
308                                <table>
309                                    <thead>
310                                        <tr>
311                                            <th>Comment</th>
312                                            <th>Date</th>
313                                            <th>Production</th>
314                                            <th>Down Time</th>
315                                            <th>Entered By</th>
316                                            <th></th>
317                                        </tr>
318                                    </thead>
319                                    <tbody>
320                                        <g:each in="${entryFaultList}" status="i" var="entry">
321                                                <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
322
323                                                    <td style="width:65%" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
324                                                        ${entry.comment.encodeAsHTML()}
325                                                    </td>
326
327                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
328                                                        <g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/>
329                                                    </td>
330
331                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
332                                                        <g:if test="${entry.productionReference}">
333                                                            ${entry.productionReference.encodeAsHTML()}
334                                                        </g:if>
335                                                        <g:else>
336                                                            <g:message code="default.none.text" />
337                                                        </g:else>
338                                                    </td>
339
340                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
341                                                        ${entry.durationHour}:${entry.durationMinute}
342                                                    </td>
343
344                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
345                                                        ${entry.enteredBy.encodeAsHTML()}
346                                                    </td>
347
348                                                    <td class="notClickable">
349                                                        <g:link controller="entryDetailed" action="edit" id="${entry.id}">
350                                                            <img  src="${resource(dir:'images/skin',file:'database_edit.png')}" alt="Edit" title="Edit" />
351                                                        </g:link>
352                                                    </td>
353
354                                                </tr>
355                                        </g:each>
356                                    </tbody>
357                                </table>
358                            </div>
359                        </g:else>
360
361                        <div class="buttons">
362                            <g:form controller="entryDetailed">
363                                <g:hiddenField name="taskInstance.id" value="${taskInstance?.id}" />
364                                <g:hiddenField name="entryType.id" value="1" />
365                                <span class="button">
366                                    <g:actionSubmit value="Add Fault" action="create"  class="add"/>
367                                </span>
368                            </g:form>
369                        </div>
370
371                        <br />
372
373                        <g:if test="${entryCauseList.isEmpty()}">
374                            <h1>No Causes</h1>
375                            <br />
376                        </g:if>
377                        <g:else>
378                            <div class="list">
379                                <h1>Causes</h1>
380                                <table>
381                                    <thead>
382                                        <tr>
383                                            <th>Comment</th>
384                                            <th>Date Done</th>
385                                            <th>Entered By</th>
386                                            <th></th>
387                                        </tr>
388                                    </thead>
389                                    <tbody>
390                                        <g:each in="${entryCauseList}" status="i" var="entry">
391                                                <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
392
393                                                    <td style="width:65%" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
394                                                        ${entry.comment.encodeAsHTML()}
395                                                    </td>
396
397                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
398                                                        <g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/>
399                                                    </td>
400
401                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
402                                                        ${entry.enteredBy.encodeAsHTML()}
403                                                    </td>
404
405                                                    <td class="notClickable">
406                                                        <g:link controller="entryDetailed" action="edit" id="${entry.id}">
407                                                            <img  src="${resource(dir:'images/skin',file:'database_edit.png')}" alt="Edit" title="Edit" />
408                                                        </g:link>
409                                                    </td>
410
411                                                </tr>
412                                        </g:each>
413                                    </tbody>
414                                </table>
415                            </div>
416                        </g:else>
417
418                        <div class="buttons">
419                            <g:form controller="entryDetailed">
420                                <g:hiddenField name="taskInstance.id" value="${taskInstance?.id}" />
421                                <g:hiddenField name="entryType.id" value="2" />
422                                <span class="button">
423                                    <g:actionSubmit value="Add Cause" action="create"  class="add"/>
424                                </span>
425                            </g:form>
426                        </div>
427
428                        <br />
429
430                        <g:if test="${entryWorkDoneList.isEmpty()}">
431                            <h1>No Work Done</h1>
432                            <br />
433                        </g:if>
434                        <g:else>
435                            <div class="list">
436                                <h1>Work Done</h1>
437                                <table>
438                                    <thead>
439                                        <tr>
440                                            <th>Comment</th>
441                                            <th>Date Done</th>
442                                            <th>Duration</th>
443                                            <th>Entered By</th>
444                                            <th></th>
445                                        </tr>
446                                    </thead>
447                                    <tbody>
448                                        <g:each in="${entryWorkDoneList}" status="i" var="entry">
449                                                <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
450
451                                                    <td width="65%" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
452                                                        ${entry.comment.encodeAsHTML()}
453                                                    </td>
454                                                   
455                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
456                                                        <g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/>
457                                                    </td>
458                                                   
459                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
460                                                        ${entry.durationHour}:${entry.durationMinute}
461                                                    </td>
462                                                   
463                                                    <td onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'>
464                                                        ${entry.enteredBy.encodeAsHTML()}
465                                                    </td>
466
467                                                    <td class="notClickable">
468                                                        <g:link controller="entryDetailed" action="edit" id="${entry.id}">
469                                                            <img  src="${resource(dir:'images/skin',file:'database_edit.png')}" alt="Edit" title="Edit" />
470                                                        </g:link>
471                                                    </td>
472
473                                                </tr>
474                                        </g:each>
475                                    </tbody>
476                                </table>
477                            </div>
478                        </g:else>
479
480                        <div class="buttons">
481                            <g:form controller="entryDetailed">
482                                <g:hiddenField name="taskInstance.id" value="${taskInstance?.id}" />
483                                <g:hiddenField name="entryType.id" value="3" />
484                                <span class="button">
485                                    <g:actionSubmit value="Add Work Done" action="create"  class="add"/>
486                                </span>
487                            </g:form>
488                        </div>
489                    </richui:tabContent>
490<!-- End Task tab -->
491
492
493<!-- Start Task Procedure tab-->
494                    <richui:tabContent>
495                        <g:if test="${!taskProcedureExits}">
496                            <br />
497                            No Procedure linked.
498                            <br />
499                            <br />
500                            <g:form controller="taskProcedureDetailed" >
501                                <g:hiddenField name="taskInstance.id" value="${taskInstance?.id}" />
502
503                                <div class="buttons">
504                                    <span class="button">
505                                        <g:actionSubmit value="New" action="create" class="add"/>
506                                    </span>
507                                    <span class="button">
508                                        <g:actionSubmit value="Search" action="search" class="search"/>
509                                    </span>
510                                </div>
511
512                            </g:form>
513
514                        </g:if>
515                        <g:else>
516                            <div class="dialog">
517                                <table>
518                                    <tbody>
519
520                                        <tr class="prop">
521                                            <td valign="top" class="name">Procedure Id:</td>
522                                            <td valign="top" class="value">
523                                                ${fieldValue(bean:taskProcedureInstance, field:'id')}
524                                            </td>
525                                        </tr>
526
527                                        <tr class="prop">
528                                            <td valign="top" class="name">Linked Task:</td>
529                                            <td valign="top" class="value">
530                                                <g:link controller="taskDetailed"
531                                                                action="show"
532                                                                id="${taskProcedureInstance.linkedTask.id}">
533                                                    ${taskProcedureInstance.linkedTask.encodeAsHTML()}
534                                                </g:link>
535                                            </td>
536                                        </tr>
537
538                                        <tr class="prop">
539                                            <td valign="top" class="name">Linked Asset:</td>
540                                            <td valign="top" class="value">
541                                                <g:render template="/shared/assetTreeCompact" model="['assetInstance': taskProcedureInstance.linkedTask.primaryAsset]" />
542                                            </td>
543                                        </tr>
544
545                                        <tr class="prop">
546                                            <td valign="top" class="name">Version:</td>
547                                            <td valign="top" class="value">
548                                                    ${fieldValue(bean:taskProcedureInstance, field:'version')}
549                                            </td>
550                                        </tr>
551
552                                        <tr class="prop">
553                                            <td valign="top" class="name">Last Updated:</td>
554                                            <td valign="top" class="value">
555                                                <g:formatDate date="${taskProcedureInstance.lastUpdated}"
556                                                                            format="EEE, dd-MMM-yyyy"/>
557                                            </td>
558                                        </tr>
559
560                                    </tbody>
561                                </table>
562                            </div>
563                            <div class="buttons">
564                                <g:form controller="taskProcedureDetailed">
565                                    <input type="hidden" name="id" value="${taskProcedureInstance?.id}" />
566                                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
567                                </g:form>
568                            </div>
569
570                            <br />
571
572                            <g:if test="${taskProcedureInstance.documentReferences}">
573                                <div class="list">
574                                    <table>
575                                        <thead>
576                                            <tr>
577                                                <th>Document Reference</th>
578                                                <th>Location</th>
579                                            </tr>
580                                        </thead>
581                                        <tbody>
582                                            <g:each in="${taskProcedureInstance.documentReferences}" status="i" var="docRef">
583                                                <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
584
585                                                    <td valign="top" class="name">
586                                                        ${fieldValue(bean:docRef, field:'name')}
587                                                    </td>
588
589                                                    <td  valign="top" style="text-align:left;" class="value">
590                                                        <custom:easyUrl url="${docRef.location}" />
591                                                    </td>
592
593                                                </tr>
594                                            </g:each>
595
596                                        </tbody>
597                                    </table>
598                                </div>
599                            </g:if>
600
601                            <br />
602
603                            <div class="list">
604                                <table>
605                                    <thead>
606                                        <tr>
607                                            <th>Step</th>
608                                            <th>Assembly</th>
609                                            <th>Description</th>
610                                            <th>Page Ref</th>
611                                            <th>Condition</th>
612                                        </tr>
613                                    </thead>
614                                    <tbody>
615                                        <g:each in="${maintenanceActionList}" status="i" var="maintenanceAction">
616                                            <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
617
618                                                <td valign="top" class="name">
619                                                    ${fieldValue(bean:maintenanceAction, field:'procedureStepNumber')}
620                                                </td>
621
622                                                <td  valign="top" style="text-align:left;" class="value">
623                                                    <g:if test="${maintenanceAction.assetSubItem}">
624                                                        ${maintenanceAction.assetSubItem.parentItem?.encodeAsHTML()}
625                                                        --
626                                                        ${maintenanceAction.assetSubItem.encodeAsHTML()}
627                                                    </g:if>
628                                                </td>
629
630                                                <td  valign="top" style="text-align:left;" class="value">
631                                                    ${fieldValue(bean:maintenanceAction, field:'description')}
632                                                </td>
633
634                                                <td  valign="top" style="text-align:left;" class="value">
635                                                    ${fieldValue(bean:maintenanceAction, field:'pageRef')}
636                                                </td>
637
638                                                <td  valign="top" style="text-align:left;" class="value">
639                                                </td>
640
641                                            </tr>
642                                        </g:each>
643
644                                    </tbody>
645                                </table>
646                            </div>
647
648                        </g:else>
649
650                    </richui:tabContent>
651<!-- End Task Procedure tab-->
652
653<!-- Start Task Recurrence tab -->
654                    <richui:tabContent>
655
656                        <g:if test="${!taskRecurringScheduleExits}">
657                            <br />
658                            No Recurring Schedule.
659                            <br />
660                            <br />
661                            <g:form controller="taskRecurringScheduleDetailed" >
662                                <g:hiddenField name="task.id" value="${taskInstance.id}" />
663
664                                <div class="buttons">
665                                    <span class="button">
666                                        <g:actionSubmit value="Add" action="create" class="add" />
667                                    </span>
668                                </div>
669
670                            </g:form>
671
672                        </g:if>
673                        <g:else>
674
675                        <div class="dialog">
676                                <table>
677                                    <tbody>
678                                        <tr class="prop">
679                                            <td valign="top" class="name">Recurring Schedule:</td>
680
681                                            <td valign="top" class="value">${taskRecurringScheduleInstance.encodeAsHTML()}</td>
682                                        </tr>
683
684                                        <tr class="prop">
685                                            <td valign="top" class="name">Enabled:</td>
686
687                                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'enabled')}</td>
688                                        </tr>
689
690                                        <tr class="prop">
691                                            <td valign="top" class="name">Next Generation Date:</td>
692
693                                            <td valign="top" class="value">
694                                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd-MMM-yyyy"/>
695                                            </td>
696                                        </tr>
697
698                                        <tr class="prop">
699                                            <td valign="top" class="name">Generate Ahead:</td>
700
701                                            <td valign="top" class="value">
702                                                ${taskRecurringScheduleInstance?.generateAhead} ${Period.get(1).encodeAsHTML()}
703                                            </td>
704                                        </tr>
705
706                                        <tr class="prop">
707                                            <td valign="top" class="name">Next Target Start Date:</td>
708
709                                            <td valign="top" class="value">
710                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd-MMM-yyyy"/>
711                                            </td>
712                                        </tr>
713
714                                        <tr class="prop">
715                                            <td valign="top" class="name">Task Duration:</td>
716
717                                            <td valign="top" class="value">
718                                                ${taskRecurringScheduleInstance?.taskDuration} ${taskRecurringScheduleInstance?.taskDurationPeriod}
719                                            </td>
720                                        </tr>
721
722                                        <tr class="prop">
723                                            <td valign="top" class="name">Next Target Completion Date:</td>
724
725                                            <td valign="top" class="value">
726                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd-MMM-yyyy"/>
727                                            </td>
728                                        </tr>
729
730                                    </tbody>
731                                </table>
732                            </div>
733                            <div class="buttons">
734                                <g:form controller="taskRecurringScheduleDetailed">
735                                    <input type="hidden" name="id" value="${taskRecurringScheduleInstance?.id}" />
736                                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
737                                    <span class="button"><g:actionSubmit class="go" value="Show" /></span>
738                                </g:form>
739                            </div>
740
741                        </g:else>
742                    </richui:tabContent>
743<!-- End Task Recurrence tab -->
744
745<!-- Start Inventory tab -->
746                    <richui:tabContent>
747
748                        <g:if test="${inventoryMovementList.isEmpty()}">
749                            <br />
750                            No Inventory Movements.
751                            <br />
752                            <br />
753                        </g:if>
754                        <g:else>
755                            <div class="list">
756                                <table>
757                                    <thead>
758                                        <tr>
759                                            <th>Inventory Item</th>
760                                            <th>Quantity</th>
761                                            <th>Movement Type</th>
762                                            <th>Date</th>
763                                            <th></th>
764                                        </tr>
765                                    </thead>
766                                    <tbody>
767                                        <g:each in="${inventoryMovementList}" status="i" var="inventoryMovementInstance">
768                                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
769
770                                                <td onclick='window.location = "${request.getContextPath()}/inventoryMovementDetailed/show/${inventoryMovementInstance.id}"'>
771                                                    ${fieldValue(bean:inventoryMovementInstance, field:'inventoryItem')}
772                                                </td>
773
774                                                <td onclick='window.location = "${request.getContextPath()}/inventoryMovementDetailed/show/${inventoryMovementInstance.id}"'>
775                                                    ${fieldValue(bean:inventoryMovementInstance, field:'quantity')}
776                                                </td>
777
778                                                <td onclick='window.location = "${request.getContextPath()}/inventoryMovementDetailed/show/${inventoryMovementInstance.id}"'>
779                                                    ${fieldValue(bean:inventoryMovementInstance, field:'inventoryMovementType')}
780                                                </td>
781
782                                                <td onclick='window.location = "${request.getContextPath()}/inventoryMovementDetailed/show/${inventoryMovementInstance.id}"'>
783                                                    <g:formatDate date="${inventoryMovementInstance.date}" format="EEE, dd-MMM-yyyy"/>
784                                                </td>
785
786                                                <td class="notClickable">
787                                                    <g:link controller="inventoryMovementDetailed" action="show" id="${inventoryMovementInstance.id}">
788                                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" title="Show" />
789                                                    </g:link>
790                                                </td>
791
792                                            </tr>
793                                        </g:each>
794                                    </tbody>
795                                </table>
796                            </div>
797                        </g:else>
798
799                        <g:form controller="inventoryItemDetailed" >
800                            <g:hiddenField name="task.id" value="${taskInstance?.id}" />
801                            <div class="buttons">
802                                <g:if test="${!inventoryMovementList.isEmpty()}">
803                                    Results: ${inventoryMovementList.size()}
804                                    <br />
805                                </g:if>
806                                <span class="button">
807                                    <g:actionSubmit action="findInventoryItemForMovement" class="add" value="Add" />
808                                </span>
809                            </div>
810                        </g:form>
811
812                    </richui:tabContent>
813<!-- End Inventory tab -->
814
815<!-- Start Sub Task tab -->
816                    <richui:tabContent>
817                        <g:if test="${subTaskInstanceTotal > 0}">
818                            <div class="list">
819                                <table>
820                                    <thead>
821                                        <tr>
822
823                                            <th>Id</th>
824
825                                            <th>Target Start Date</th>
826
827                                            <th>Description</th>
828
829                                            <th>Lead Person</th>
830
831                                            <th>Task Priority</th>
832
833                                            <th>Task Status</th>
834
835                                            <th></th>
836
837                                        </tr>
838                                    </thead>
839                                    <tbody>
840                                    <g:each in="${subTaskInstanceList}" status="i" var="subTaskInstance">
841                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
842
843                                            <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${subTaskInstance.id}"'>
844                                                ${fieldValue(bean:subTaskInstance, field:'id')}
845                                            </td>
846
847                                            <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${subTaskInstance.id}"'>
848                                                <g:formatDate date="${subTaskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/>
849                                            </td>
850
851                                            <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${subTaskInstance.id}"'>
852                                                ${fieldValue(bean:subTaskInstance, field:'description')}
853                                            </td>
854
855
856                                            <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${subTaskInstance.id}"'>
857                                                ${fieldValue(bean:subTaskInstance, field:'leadPerson')}
858                                            </td>
859
860                                            <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${subTaskInstance.id}"'>
861                                                ${fieldValue(bean:subTaskInstance, field:'taskPriority')}
862                                            </td>
863
864                                            <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${subTaskInstance.id}"'>
865                                                ${fieldValue(bean:subTaskInstance, field:'taskStatus')}
866                                            </td>
867
868                                            <td class="notClickable">
869                                                <g:link action="show" id="${subTaskInstance.id}">
870                                                    <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" title="Show" />
871                                                </g:link>
872                                            </td>
873
874                                        </tr>
875                                    </g:each>
876                                    </tbody>
877                                </table>
878                            </div>
879
880                            <div class="buttons">
881                                <g:form>
882                                    <g:hiddenField name="id" value="${taskInstance?.id}" />
883                                    <g:if test="${subTaskInstanceTotal > subTaskInstanceMax}">
884                                        Showing ${subTaskInstanceMax} of ${subTaskInstanceTotal}
885                                        <br />
886                                    </g:if>
887                                    <g:else>
888                                        Total ${subTaskInstanceTotal}
889                                        <br />
890                                    </g:else>
891                                    <span class="button"><g:actionSubmit action="listSubTasks" class="table" value="List" /></span>
892                                    <span class="button"><g:actionSubmit action="createSubTask" class="save" value="Create" onclick="return confirm('${g.message(code: 'sub.task.create.confirm')}');" /></span>
893                                </g:form>
894                            </div>
895
896                        </g:if>
897                        <g:else>
898                            <br />
899                            No Sub Tasks.
900                            <br />
901                            <br />
902
903                            <div class="buttons">
904                                <g:form>
905                                    <g:hiddenField name="id" value="${taskInstance?.id}" />
906                                    <span class="button"><g:actionSubmit action="createSubTask" class="save" value="Create" onclick="return confirm('${g.message(code: 'sub.task.create.confirm')}');" /></span>
907                                </g:form>
908                            </div>
909                        </g:else>
910
911                    </richui:tabContent>
912<!-- End Sub Task tab -->
913
914                </richui:tabContents>
915            </richui:tabView>
916
917        </div> <!--body-->
918    </body>
919</html>
Note: See TracBrowser for help on using the repository browser.