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

Last change on this file since 190 was 184, checked in by gav, 15 years ago

Small adjustment to modifications show/hide in task show view, since we are now using prototype effects globally.

File size: 33.7 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</title>
6        <g:javascript src="overlayPane.js" />
7        <nav:resources override="true"/>
8        <resource:tabView skin="tabviewCustom" />
9    </head>
10    <body>
11        <div class="nav">
12            <nav:renderSubItems group="nav"/>
13        </div>
14        <div class="body">
15            <g:if test="${flash.message}">
16            <div class="message">${flash.message}</div>
17            </g:if>
18            <g:if test="${taskInstance.trash}" >
19                <div class="errors">
20                        This task is in the trash bin, but can be restored if required.
21                </div>
22            </g:if>
23            <g:hasErrors bean="${taskInstance}">
24            <div class="errors">
25                <g:renderErrors bean="${taskInstance}" as="list" />
26            </div>
27            </g:hasErrors>
28
29            <richui:tabView id="tabView">
30
31                <richui:tabLabels>
32                    <richui:tabLabel selected="${showTaskTab}" title="Task #${taskInstance.id}" />
33                    <richui:tabLabel selected="${showProcedureTab}" title="Procedure" />
34                    <richui:tabLabel selected="${showRecurrenceTab}" title="Recurrence" />
35                    <richui:tabLabel selected="${showInventoryTab}" title="Inventory" />
36                    <richui:tabLabel selected="${showSubTasksTab}" title="Sub Tasks" />
37                </richui:tabLabels>
38
39                <richui:tabContents>
40
41<!-- Start Task tab -->
42                    <richui:tabContent>
43
44                        <div class="dialog">
45                            <table>
46                                <tbody>
47
48                                    <tr class="prop">
49                                        <td valign="top" class="name">Description:</td>
50
51                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'description')}</td>
52
53                                    </tr>
54
55                                    <tr class="prop">
56                                        <td valign="top" class="name">Comment:</td>
57
58                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'comment')}</td>
59
60                                    </tr>
61
62                                    <tr class="prop">
63                                        <td valign="top" class="name">Target Start:</td>
64
65                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
66
67                                    </tr>
68
69                                    <tr class="prop">
70                                        <td valign="top" class="name">Target Completion:</td>
71
72                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetCompletionDate}" format="EEE, dd-MMM-yyyy"/></td>
73
74                                    </tr>
75
76                                    <tr class="prop">
77                                        <td valign="top" class="name">
78                                            <div id="modControlClosed">
79                                                <a href='' onclick="showElement('modifications');
80                                                                                    Element.hide('modControlClosed');
81                                                                                    Element.show('modControlOpened');
82                                                                                    return false">
83                                                    Modifications <img  src="${resource(dir:'images/skin',file:'bullet_toggle_plus.png')}" alt="Show" />
84                                                </a>
85                                            </div>
86                                            <div id="modControlOpened" style="display:none;">
87                                                <a href='' onclick="hideElement('modifications');
88                                                                                    Element.hide('modControlOpened');
89                                                                                    Element.show('modControlClosed');
90                                                                                    return false">
91                                                    Modifications <img  src="${resource(dir:'images/skin',file:'bullet_toggle_minus.png')}" alt="Show" />
92                                                </a>
93                                            </div>
94                                        </td>
95
96                                        <td  valign="top" style="text-align:left;" class="value">
97                                            <div id="modifications" style="display:none;">
98                                                <ul>
99                                                <g:each var="a" in="${taskModificationList}">
100                                                    <li>${a?.encodeAsHTML()}</li>
101                                                </g:each>
102                                                </ul>
103                                            </div>
104                                        </td>
105                                    </tr>
106
107
108                                    <tr class="prop">
109                                        <td valign="top" class="name">Lead Person:</td>
110
111                                        <td valign="top" class="value">${taskInstance?.leadPerson?.encodeAsHTML()}</td>
112
113                                    </tr>
114
115                                    <tr class="prop">
116                                        <td valign="top" class="name">Primary Asset:</td>
117
118                                        <td valign="top" class="value"><g:link controller="assetDetailed" action="show" id="${taskInstance?.primaryAsset?.id}">${taskInstance?.primaryAsset?.encodeAsHTML()}</g:link></td>
119
120                                    </tr>
121
122                                    <tr class="prop">
123                                        <td valign="top" class="name">Associated Assets:</td>
124
125                                        <td  valign="top" style="text-align:left;" class="value">
126                                            <ul>
127                                            <g:each var="a" in="${taskInstance.associatedAssets}">
128                                                <li>${a?.encodeAsHTML()}</li>
129                                            </g:each>
130                                            </ul>
131                                        </td>
132
133                                    </tr>
134
135                                    <tr class="prop">
136                                        <td valign="top" class="name">Priority:</td>
137
138                                        <td valign="top" class="value">${taskInstance?.taskPriority?.encodeAsHTML()}</td>
139
140                                    </tr>
141
142                                    <tr class="prop">
143                                        <td valign="top" class="name">Status:</td>
144
145                                        <td valign="top" class="value">${taskInstance?.taskStatus?.encodeAsHTML()}</td>
146
147                                    </tr>
148
149                                    <tr class="prop">
150                                        <td valign="top" class="name">Approved:</td>
151
152                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'approved')}</td>
153
154                                    </tr>
155
156                                    <tr class="prop">
157                                        <td valign="top" class="name">Scheduled:</td>
158
159                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'scheduled')}</td>
160
161                                    </tr>
162
163                                    <tr class="prop">
164                                        <td valign="top" class="name">Parent Task:</td>
165
166                                        <td valign="top" class="value"><g:link controller="taskDetailed" action="show" id="${taskInstance?.parentTask?.id}">${taskInstance?.parentTask?.encodeAsHTML()}</g:link></td>
167
168                                    </tr>
169
170                                    <tr class="prop">
171                                        <td valign="top" class="name">Group:</td>
172
173                                        <td valign="top" class="value">${taskInstance?.taskGroup?.encodeAsHTML()}</td>
174
175                                    </tr>
176
177                                    <tr class="prop">
178                                        <td valign="top" class="name">Type:</td>
179
180                                        <td valign="top" class="value">${taskInstance?.taskType?.encodeAsHTML()}</td>
181
182                                    </tr>
183
184                                    <tr class="prop">
185                                        <td valign="top" class="name">Assigned Persons:</td>
186
187                                        <td  valign="top" style="text-align:left;" class="value">
188                                            <ul>
189                                            <g:each var="a" in="${taskInstance.assignedPersons}">
190                                                <li><g:link controller="assignedPersonDetailed" action="edit" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
191                                            </g:each>
192                                            </ul>
193                                            <g:link controller="assignedPersonDetailed" params="['task.id':taskInstance?.id]" action="create">Add AssignedPerson</g:link>
194                                        </td>
195
196                                    </tr>
197
198                                </tbody>
199                            </table>
200                        </div>
201
202                        <div class="buttons">
203                            <g:form>
204                                <input type="hidden" name="id" value="${taskInstance?.id}" />
205
206                                <g:if test="${taskInstance.trash}" >
207                                    <span class="button"><g:actionSubmit class="restore" onclick="return confirm('Are you sure?');" value="Restore" /></span>
208                                </g:if>
209                                <g:else>
210
211                                    <g:if test="${taskInstance.taskStatus.id != 3}" >
212                                        <span class="button"><g:actionSubmit class="complete" value="Complete" /></span>
213
214                                        <g:if test="${taskInstance.approved}" >
215                                            <span class="button"><g:actionSubmit class="renegeApproval" value="Renege Approval" action="renegeApproval" /></span>
216                                        </g:if>
217                                        <g:else>
218                                            <span class="button"><g:actionSubmit class="approve" value="Approve" /></span>
219                                        </g:else>
220
221                                        <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
222                                        <span class="button"><g:actionSubmit class="trash" onclick="return confirm('Are you sure?');" value="Trash" /></span>
223
224                                    </g:if>
225                                    <g:else>
226                                        <span class="button"><g:actionSubmit class="reopen" value="Reopen" /></span>
227                                    </g:else>
228
229                                </g:else>
230                            </g:form>
231                        </div>
232
233                        <div class="list">
234                            <h1>Faults</h1>
235                            <table>
236                                <thead>
237                                    <tr>
238                                        <th>Comment</th>
239                                        <th>Date Done</th>
240                                        <th>Duration</th>
241                                        <th>Entered By</th>
242                                        <th></th>
243                                    </tr>
244                                </thead>
245                                <tbody>
246                                <g:each in="${entryFaultList}" status="i" var="entry">
247                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
248
249                                            <td style="width:65%">${entry.comment}</td>
250                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/></td>
251                                            <td>${entry.durationHour}:${entry.durationMinute}</td>
252                                            <td>${entry.enteredBy}</td>
253
254                                            <td>
255                                                <g:link controller="entryDetailed" action="edit" id="${entry.id}">
256                                                    <img  src="${resource(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
257                                                </g:link>
258                                            </td>
259
260                                        </tr>
261                                </g:each>
262                                </tbody>
263                            </table>
264                        </div>
265
266                        <div class="list">
267                            <h1>Work Done</h1>
268                            <table>
269                                <thead>
270                                    <tr>
271                                        <th>Comment</th>
272                                        <th>Date Done</th>
273                                        <th>Duration</th>
274                                        <th>Entered By</th>
275                                        <th></th>
276                                    </tr>
277                                </thead>
278                                <tbody>
279                                <g:each in="${entryWorkDoneList}" status="i" var="entry">
280                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
281
282                                            <td width="65%">${entry.comment}</td>
283                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/></td>
284                                            <td>${entry.durationHour}:${entry.durationMinute}</td>
285                                            <td>${entry.enteredBy}</td>
286
287                                            <td>
288                                                <g:link controller="entryDetailed" action="edit" id="${entry.id}">
289                                                    <img  src="${resource(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
290                                                </g:link>
291                                            </td>
292
293                                        </tr>
294                                </g:each>
295                                </tbody>
296                            </table>
297                        </div>
298
299                        <br />
300
301                        <div class="buttons">
302                            <g:form controller="entryDetailed">
303                                <input type="hidden" name="taskInstance.id" value="${taskInstance?.id}" />
304                                <span class="button">
305                                    <g:actionSubmit value="Add Entry" action="create"  class="add"/>
306                                </span>
307                            </g:form>
308                        </div>
309                    </richui:tabContent>
310<!-- End Task tab -->
311
312
313<!-- Start Task Procedure tab-->
314                    <richui:tabContent>
315                        <g:if test="${!taskProcedureExits}">
316                            <br />
317                            No Procedure linked.
318                            <br />
319                            <br />
320                            <g:form controller="taskProcedureDetailed" >
321                                <input type="hidden" name="taskInstance.id" value="${taskInstance?.id}" />
322
323                                <div class="buttons">
324                                    <span class="button">
325                                        <g:actionSubmit value="New" action="create" class="add"/>
326                                    </span>
327                                    <span class="button">
328                                        <g:actionSubmit value="Search" action="search" class="search"/>
329                                    </span>
330                                </div>
331
332                            </g:form>
333
334                        </g:if>
335                        <g:else>
336                            <div class="dialog">
337                                <table>
338                                    <tbody>
339
340                                        <tr class="prop">
341                                            <td valign="top" class="name">Procedure Id:</td>
342
343                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'id')}</td>
344
345                                        </tr>
346
347                                        <tr class="prop">
348                                            <td valign="top" class="name">Name:</td>
349
350                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'name')}</td>
351
352                                        </tr>
353
354                                        <tr class="prop">
355                                            <td valign="top" class="name">Description:</td>
356
357                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'description')}</td>
358
359                                        </tr>
360
361                                        <tr class="prop">
362                                            <td valign="top" class="name">Is Active:</td>
363
364                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'isActive')}</td>
365
366                                        </tr>
367
368                                    </tbody>
369                                </table>
370                            </div>
371                            <div class="buttons">
372                                <g:form controller="taskProcedureDetailed">
373                                    <input type="hidden" name="id" value="${taskProcedureInstance?.id}" />
374                                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
375                                </g:form>
376                            </div>
377
378                            <div class="list">
379                                <table>
380                                    <thead>
381                                        <tr>
382                                            <th>Step</th>
383                                            <th>Description</th>
384                                        </tr>
385                                    </thead>
386                                    <tbody>
387                                        <g:each in="${maintenanceActionList}" status="i" var="maintenanceAction">
388                                            <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
389
390                                                <td valign="top" class="name">
391                                                    ${maintenanceAction?.procedureStepNumber}
392                                                </td>
393
394                                                <td  valign="top" style="text-align:left;" class="value">
395                                                    ${maintenanceAction?.description}
396                                                </td>
397
398                                            </tr>
399                                        </g:each>
400
401                                    </tbody>
402                                </table>
403                            </div>
404
405                        </g:else>
406
407                    </richui:tabContent>
408<!-- End Task Procedure tab-->
409
410<!-- Start Task Recurrence tab -->
411                    <richui:tabContent>
412
413                        <g:if test="${!taskRecurringScheduleExits}">
414                            <br />
415                            No Recurring Schedule.
416                            <br />
417                            <br />
418                            <g:form controller="taskRecurringScheduleDetailed" >
419                                <input type="hidden" name="taskInstance.id" value="${taskInstance?.id}" />
420
421                                <div class="buttons">
422                                    <span class="button">
423                                        <g:actionSubmit value="Create" action="create"  class="add"/>
424                                    </span>
425                                </div>
426
427                            </g:form>
428
429                        </g:if>
430                        <g:else>
431
432                        <div class="dialog">
433                                <table>
434                                    <tbody>
435                                        <tr class="prop">
436                                            <td valign="top" class="name">Recurring Schedule:</td>
437
438                                            <td valign="top" class="value">${taskRecurringScheduleInstance.encodeAsHTML()}</td>
439
440                                        </tr>
441
442                                        <tr class="prop">
443                                            <td valign="top" class="name">Start Date:</td>
444
445                                            <td valign="top" class="value">
446                                                <g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd-MMM-yyyy"/>
447                                            </td>
448
449                                        </tr>
450
451                                        <tr class="prop">
452                                            <td valign="top" class="name">Task Duration:</td>
453
454                                            <td valign="top" class="value">
455                                                ${taskRecurringScheduleInstance?.taskDuration} ${taskRecurringScheduleInstance?.taskDurationPeriod}
456                                            </td>
457                                        </tr>
458
459                                        <tr class="prop">
460                                            <td valign="top" class="name">Generate Ahead:</td>
461
462                                            <td valign="top" class="value">
463                                                ${taskRecurringScheduleInstance?.generateAhead} ${taskRecurringScheduleInstance?.generateAheadPeriod}
464                                            </td>
465
466                                        </tr>
467
468                                        </tr>
469
470                                        <tr class="prop">
471                                            <td valign="top" class="name">Is Enabled:</td>
472
473                                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'isEnabled')}</td>
474
475                                        </tr>
476
477                                    </tbody>
478                                </table>
479
480                                <table>
481                                    <tbody>
482
483                                        <tr class="prop">
484                                            <td valign="top" class="name">Next Target Start Date:</td>   
485
486                                            <td valign="top" class="value">
487                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd-MMM-yyyy"/>
488                                            </td>
489
490                                        </tr>
491
492                                        <tr class="prop">
493                                            <td valign="top" class="name">Next Target Completion Date:</td>   
494
495                                            <td valign="top" class="value">
496                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd-MMM-yyyy"/>
497                                            </td>
498
499                                        </tr>
500
501                                        <tr class="prop">
502                                            <td valign="top" class="name">Next Generation Date:</td>
503
504                                            <td valign="top" class="value">
505                                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd-MMM-yyyy"/>
506                                            </td>
507                                        </tr>
508
509                                        <tr class="prop">
510                                            <td valign="top" class="name">Last Generated Date:</td>
511
512                                            <td valign="top" class="value">
513                                                <g:formatDate date="${taskRecurringScheduleInstance.lastGeneratedDate}" format="EEE, dd-MMM-yyyy"/>
514                                            </td>
515
516                                        </tr>
517
518                                        <tr class="prop">
519                                            <td valign="top" class="name">Last Generated Sub Task:</td>
520
521                                            <td valign="top" class="value">
522                                                <g:link controller="taskDetailed" action="show" id="${taskRecurringScheduleInstance?.lastGeneratedSubTask?.id}">
523                                                    ${taskRecurringScheduleInstance?.lastGeneratedSubTask?.encodeAsHTML()}
524                                                </g:link>
525                                            </td>
526                                        </tr>
527                                    </tbody>
528                                </table>
529                            </div>
530                            <div class="buttons">
531                                <g:form controller="taskRecurringScheduleDetailed">
532                                    <input type="hidden" name="id" value="${taskRecurringScheduleInstance?.id}" />
533                                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
534                                </g:form>
535                            </div>
536
537                        </g:else>
538                    </richui:tabContent>
539<!-- End Task Recurrence tab -->
540
541<!-- Start Inventory tab -->
542                    <richui:tabContent>
543
544                        <g:if test="${inventoryMovementList.isEmpty()}">
545                            <br />
546                            No Inventory Used.
547                            <br />
548                            <br />
549                        </g:if>
550                        <g:else>
551                            <div class="list">
552                                <table>
553                                    <thead>
554                                        <tr>
555                                            <th>Inventory Item</th>
556                                            <th>Quantity</th>
557                                            <th>Movement Type</th>
558                                            <th>Date</th>
559                                            <th></th>
560                                        </tr>
561                                    </thead>
562                                    <tbody>
563                                        <g:each in="${inventoryMovementList}" status="i" var="inventoryMovementInstance">
564                                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/inventoryMovementDetailed/show/${inventoryMovementInstance.id}"'/>
565
566                                                <td>${fieldValue(bean:inventoryMovementInstance, field:'inventoryItem')}</td>
567                                                <td>${fieldValue(bean:inventoryMovementInstance, field:'quantity')}</td>
568                                                <td>${fieldValue(bean:inventoryMovementInstance, field:'inventoryMovementType')}</td>
569                                                <td><g:formatDate date="${inventoryMovementInstance.date}" format="EEE, dd-MMM-yyyy"/></td>
570                                                <td>
571                                                    <g:link controller="inventoryMovementDetailed" action="show" id="${inventoryMovementInstance.id}">
572                                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
573                                                    </g:link>
574                                                </td>
575
576                                            </tr>
577                                        </g:each>
578                                    </tbody>
579                                </table>
580                            </div>
581                        </g:else>
582
583                        <g:form controller="inventoryMovementDetailed" >
584                            <input type="hidden" name="task.id" value="${taskInstance?.id}" />
585                            <div class="buttons">
586                                <g:if test="${!inventoryMovementList.isEmpty()}">
587                                    Results: ${inventoryMovementList.size()}
588                                    <br />
589                                </g:if>
590                                <span class="button">
591                                    <g:actionSubmit value="Add" action="create"  class="add"/>
592                                </span>
593                            </div>
594                        </g:form>
595
596                    </richui:tabContent>
597<!-- End Inventory tab -->
598
599<!-- Start Sub Task tab -->
600                    <richui:tabContent>
601                        <g:if test="${subTaskInstanceTotal >= 1}">
602                            <div class="list">
603                                <table>
604                                    <thead>
605                                        <tr>
606
607                                            <th>Id</th>
608
609                                            <th>Target Start Date</th>
610
611                                            <th>Description</th>
612
613                                            <th>Lead Person</th>
614
615                                            <th>Task Priority</th>
616
617                                            <th>Task Status</th>
618
619                                            <th></th>
620
621                                        </tr>
622                                    </thead>
623                                    <tbody>
624                                    <g:each in="${subTaskInstanceList}" status="i" var="subTaskInstance">
625                                    <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${subTaskInstance.id}"'/>
626
627                                            <td>${fieldValue(bean:subTaskInstance, field:'id')}</td>
628
629                                            <td><g:formatDate date="${subTaskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
630
631                                            <td>${subTaskInstance.description}</td>
632
633
634                                            <td>${subTaskInstance.leadPerson}</td>
635
636                                            <td>${subTaskInstance.taskPriority}</td>
637
638                                            <td>${subTaskInstance.taskStatus}</td>
639
640                                            <td>
641                                                <g:link action="show" id="${subTaskInstance.id}">
642                                                    <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
643                                                </g:link>
644                                            </td>
645
646                                        </tr>
647                                    </g:each>
648                                    </tbody>
649                                </table>
650                            </div>
651
652                            <div class="buttons">
653                                <g:form>
654                                    <input type="hidden" name="id" value="${taskInstance?.id}" />
655                                    <g:if test="${subTaskInstanceTotal > subTaskInstanceMax}">
656                                        Showing ${subTaskInstanceMax} of ${subTaskInstanceTotal}
657                                        <br />
658                                    </g:if>
659                                    <g:else>
660                                        Total ${subTaskInstanceTotal}
661                                        <br />
662                                    </g:else>
663                                    <span class="button"><g:actionSubmit action="listSubTasks" class="table" value="Sortable List" /></span>
664                                </g:form>
665                            </div>
666
667                        </g:if>
668                        <g:else>
669                            <br />
670                            No Sub Tasks.
671                        </g:else>
672
673                    </richui:tabContent>
674<!-- End Sub Task tab -->
675
676                </richui:tabContents>
677            </richui:tabView>
678
679        </div>
680    </body>
681</html>
Note: See TracBrowser for help on using the repository browser.