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

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

Substantial refactor of the Inventory domain.
InventoryItems can now be added to tasks, no quantity adjustments done yet.
Removed StoredItem and with it the ability to store an inventoryItem in multiple places, just too complex right now.
Svn move StoreLocation to InventoryLocation.

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