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
RevLine 
[84]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>
[139]6        <nav:resources override="true"/>
[126]7        <resource:tabView skin="tabviewCustom" />
[84]8    </head>
9    <body>
10        <div class="nav">
[139]11            <nav:renderSubItems group="nav"/>
[84]12        </div>
13        <div class="body">
14            <g:if test="${flash.message}">
15            <div class="message">${flash.message}</div>
16            </g:if>
[133]17            <g:hasErrors bean="${taskProcedureInstance}">
18            <div class="errors">
19                <g:renderErrors bean="${taskProcedureInstance}" as="list" />
20            </div>
21            </g:hasErrors>
[126]22
[131]23            <richui:tabView id="tabView">
[126]24
25                <richui:tabLabels>
[133]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" />
[126]31                </richui:tabLabels>
[131]32
[126]33                <richui:tabContents>
[131]34
35<!-- Start Task tab -->
[126]36                    <richui:tabContent>
[153]37
[131]38                        <div class="dialog">
39                            <table>
40                                <tbody>
[153]41
[131]42                                    <tr class="prop">
43                                        <td valign="top" class="name">Id:</td>
[153]44
[131]45                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'id')}</td>
[153]46
[131]47                                    </tr>
[153]48
[131]49                                    <tr class="prop">
50                                        <td valign="top" class="name">Description:</td>
[153]51
[131]52                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'description')}</td>
[153]53
[131]54                                    </tr>
[153]55
[131]56                                    <tr class="prop">
57                                        <td valign="top" class="name">Comment:</td>
[153]58
[131]59                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'comment')}</td>
[153]60
[131]61                                    </tr>
[153]62
[131]63                                    <tr class="prop">
64                                        <td valign="top" class="name">Target Start Date:</td>
[153]65
[139]66                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
[153]67
[131]68                                    </tr>
[153]69
[131]70                                    <tr class="prop">
71                                        <td valign="top" class="name">Target Completion Date:</td>
[153]72
[139]73                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetCompletionDate}" format="EEE, dd-MMM-yyyy"/></td>
[153]74
[131]75                                    </tr>
[153]76
[131]77                                    <tr class="prop">
78                                        <td valign="top" class="name">Lead Person:</td>
[153]79
[131]80                                        <td valign="top" class="value">${taskInstance?.leadPerson?.encodeAsHTML()}</td>
[153]81
[131]82                                    </tr>
[153]83
[131]84                                    <tr class="prop">
[168]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">
[131]105                                        <td valign="top" class="name">Task Priority:</td>
[153]106
[131]107                                        <td valign="top" class="value">${taskInstance?.taskPriority?.encodeAsHTML()}</td>
[153]108
[131]109                                    </tr>
[153]110
[131]111                                    <tr class="prop">
112                                        <td valign="top" class="name">Task Status:</td>
[153]113
[131]114                                        <td valign="top" class="value">${taskInstance?.taskStatus?.encodeAsHTML()}</td>
[153]115
[131]116                                    </tr>
[153]117
[131]118                                    <tr class="prop">
119                                        <td valign="top" class="name">Is Active:</td>
[153]120
[131]121                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isActive')}</td>
[153]122
[131]123                                    </tr>
[153]124
[131]125                                    <tr class="prop">
126                                        <td valign="top" class="name">Is Approved:</td>
[153]127
[131]128                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isApproved')}</td>
[153]129
[131]130                                    </tr>
[153]131
[131]132                                    <tr class="prop">
133                                        <td valign="top" class="name">Is Scheduled:</td>
[153]134
[131]135                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isScheduled')}</td>
[153]136
[131]137                                    </tr>
[153]138
[131]139                                    <tr class="prop">
140                                        <td valign="top" class="name">Parent Task:</td>
[153]141
[131]142                                        <td valign="top" class="value"><g:link controller="taskDetailed" action="show" id="${taskInstance?.parentTask?.id}">${taskInstance?.parentTask?.encodeAsHTML()}</g:link></td>
[153]143
[131]144                                    </tr>
[153]145
[131]146                                    <tr class="prop">
147                                        <td valign="top" class="name">Task Group:</td>
[153]148
[131]149                                        <td valign="top" class="value">${taskInstance?.taskGroup?.encodeAsHTML()}</td>
[153]150
[131]151                                    </tr>
[153]152
[131]153                                    <tr class="prop">
154                                        <td valign="top" class="name">Task Type:</td>
[153]155
[131]156                                        <td valign="top" class="value">${taskInstance?.taskType?.encodeAsHTML()}</td>
[153]157
[131]158                                    </tr>
[153]159
[131]160                                    <tr class="prop">
161                                        <td valign="top" class="name">Assigned Persons:</td>
[153]162
[131]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>
[134]169                                            <g:link controller="assignedPersonDetailed" params="['task.id':taskInstance?.id]" action="create">Add AssignedPerson</g:link>
[131]170                                        </td>
[153]171
[131]172                                    </tr>
[153]173
[131]174                                </tbody>
175                            </table>
176                        </div>
[153]177
[131]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>
[153]185
[131]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>
[137]199                                <g:each in="${entryFaultList}" status="i" var="entry">
[131]200                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
[153]201
[131]202                                            <td style="width:65%">${entry.comment}</td>
[139]203                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/></td>
[131]204                                            <td>${entry.durationHour}:${entry.durationMinute}</td>
205                                            <td>${entry.enteredBy}</td>
[153]206
[131]207                                            <td>
208                                                <g:link controller="entryDetailed" action="edit" id="${entry.id}">
[151]209                                                    <img  src="${resource(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
[131]210                                                </g:link>
211                                            </td>
[153]212
[131]213                                        </tr>
[96]214                                </g:each>
[131]215                                </tbody>
216                            </table>
217                        </div>
[153]218
[131]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>
[153]229
[131]230            <!--                            <g:sortableColumn property="commentW" title="Comment" />
[153]231
[131]232                                        <g:sortableColumn property="dateDoneW" title="Date Done" />
[153]233
[131]234                                        <g:sortableColumn property="enteredByW" title="Entered By" />-->
235                                    </tr>
236                                </thead>
237                                <tbody>
[137]238                                <g:each in="${entryWorkDoneList}" status="i" var="entry">
[131]239                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
[153]240
[131]241                                            <td width="65%">${entry.comment}</td>
[139]242                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/></td>
[131]243                                            <td>${entry.durationHour}:${entry.durationMinute}</td>
244                                            <td>${entry.enteredBy}</td>
[153]245
[131]246                                            <td>
247                                                <g:link controller="entryDetailed" action="edit" id="${entry.id}">
[151]248                                                    <img  src="${resource(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
[131]249                                                </g:link>
250                                            </td>
[153]251
[131]252                                        </tr>
[126]253                                </g:each>
[131]254                                </tbody>
255                            </table>
256                        </div>
[153]257
[131]258                        <br />
[153]259
[131]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 -->
[126]270
[137]271
[131]272<!-- Start Task Procedure tab-->
273                    <richui:tabContent>
[133]274                        <g:if test="${!taskProcedureExits}">
[153]275                            <br />
276                            No Procedure linked.
277                            <br />
278                            <br />
[134]279                            <g:form controller="taskProcedureDetailed" >
[133]280                                <input type="hidden" name="taskInstance.id" value="${taskInstance?.id}" />
281
282                                <div class="buttons">
283                                    <span class="button">
[175]284                                        <g:actionSubmit value="New" action="create" class="add"/>
[133]285                                    </span>
286                                    <span class="button">
[175]287                                        <g:actionSubmit value="Search" action="search" class="search"/>
[133]288                                    </span>
289                                </div>
[134]290
[133]291                            </g:form>
[126]292
[133]293                        </g:if>
294                        <g:else>
[153]295                            <div class="dialog">
[133]296                                <table>
297                                    <tbody>
[153]298
[133]299                                        <tr class="prop">
300                                            <td valign="top" class="name">Procedure Id:</td>
[153]301
[133]302                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'id')}</td>
[153]303
[133]304                                        </tr>
[153]305
[133]306                                        <tr class="prop">
307                                            <td valign="top" class="name">Name:</td>
[153]308
[133]309                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'name')}</td>
[153]310
[133]311                                        </tr>
[153]312
[133]313                                        <tr class="prop">
314                                            <td valign="top" class="name">Description:</td>
[153]315
[133]316                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'description')}</td>
[153]317
[133]318                                        </tr>
[153]319
[133]320                                        <tr class="prop">
321                                            <td valign="top" class="name">Is Active:</td>
[153]322
[133]323                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'isActive')}</td>
[153]324
[133]325                                        </tr>
[153]326
[133]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>
[153]334                                </g:form>
[133]335                            </div>
[126]336
[153]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
[133]364                        </g:else>
365
[131]366                    </richui:tabContent>
367<!-- End Task Procedure tab-->
[126]368
[131]369<!-- Start Task Recurrence tab -->
370                    <richui:tabContent>
[134]371
372                        <g:if test="${!taskRecurringScheduleExits}">
[153]373                            <br />
374                            No Recurring Schedule.
375                            <br />
376                            <br />
[134]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>
[153]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
[137]399                                        </tr>
[153]400
[137]401                                        <tr class="prop">
[153]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">
[137]411                                            <td valign="top" class="name">Task Duration:</td>
[153]412
[137]413                                            <td valign="top" class="value">
414                                                ${taskRecurringScheduleInstance?.taskDuration} ${taskRecurringScheduleInstance?.taskDurationPeriod}
415                                            </td>
416                                        </tr>
[153]417
[137]418                                        <tr class="prop">
419                                            <td valign="top" class="name">Generate Ahead:</td>
[153]420
[137]421                                            <td valign="top" class="value">
422                                                ${taskRecurringScheduleInstance?.generateAhead} ${taskRecurringScheduleInstance?.generateAheadPeriod}
423                                            </td>
[153]424
[137]425                                        </tr>
[153]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
[137]436                                    </tbody>
437                                </table>
[153]438
[137]439                                <table>
440                                    <tbody>
[153]441
[137]442                                        <tr class="prop">
[153]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">
[137]452                                            <td valign="top" class="name">Next Target Completion Date:</td>   
[153]453
[137]454                                            <td valign="top" class="value">
[139]455                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd-MMM-yyyy"/>
[137]456                                            </td>
[153]457
[137]458                                        </tr>
[153]459
[137]460                                        <tr class="prop">
461                                            <td valign="top" class="name">Next Generation Date:</td>
[153]462
[137]463                                            <td valign="top" class="value">
[139]464                                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd-MMM-yyyy"/>
[137]465                                            </td>
466                                        </tr>
[153]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>
[134]489                            <div class="buttons">
490                                <g:form controller="taskRecurringScheduleDetailed">
[135]491                                    <input type="hidden" name="id" value="${taskRecurringScheduleInstance?.id}" />
[134]492                                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
[153]493                                </g:form>
[134]494                            </div>
[153]495
496                        </g:else>
[131]497                    </richui:tabContent>
498<!-- End Task Recurrence tab -->
[126]499
[131]500<!-- Start Inventory tab -->
501                    <richui:tabContent>
[175]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
[131]555                    </richui:tabContent>
556<!-- End Inventory tab -->
[126]557
[153]558<!-- Start Sub Task tab -->
[131]559                    <richui:tabContent>
[153]560                        <g:if test="${subTaskInstanceTotal >= 1}">
561                            <div class="list">
562                                <table>
563                                    <thead>
564                                        <tr>
[134]565
[153]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
[131]632                    </richui:tabContent>
633<!-- End Sub Task tab -->
[126]634
[131]635                </richui:tabContents>
636            </richui:tabView>
[153]637
[84]638        </div>
639    </body>
640</html>
Note: See TracBrowser for help on using the repository browser.