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

Last change on this file since 706 was 592, checked in by gav, 15 years ago

Domain change, added safetyRequirement, mandatoryRegulatory and positiveFault attributes to Task.
Update views and logic to suite.
Complete's ticket #70.

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