source: trunk/grails-app/views/taskDetailed/search.gsp @ 838

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

Update service, controller and view logic to hand Task and Entry highestSeverity.
Also remove associatedAssets from task search panes.

File size: 17.2 KB
RevLine 
[139]1<html>
2    <head>
3        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
4        <meta name="layout" content="main" />
5        <title>Task Search</title>
[140]6        <filterpane:includes />
[139]7        <nav:resources override="true"/>
[262]8        <export:resource />
[713]9        <resource:dateChooser />
10        <g:javascript src="taskQuickSearchPane.js" />
[139]11    </head>
12    <body>
13        <div class="nav">
14            <nav:renderSubItems group="nav"/>
15        </div>
[150]16
[139]17        <div class="body">
[418]18            <g:render template="/shared/messages" />
[139]19            <g:hasErrors bean="${appCore}">
20                <div class="errors">
21                    <g:renderErrors bean="${appCore}" as="list" />
22                </div>
23            </g:hasErrors>
[140]24            <filterpane:currentCriteria domainBean="Task"
25                                    action="search"
[450]26                                    dateFormat="EEE, dd-MMM-yyyy"
27                                    removeImgDir="images"
[140]28                                    removeImgFile="bullet_delete.png"
[155]29                                    title="Advanced Search"/>
[147]30
[155]31            <div class="paginateButtons">
[221]32                <span class="searchButtons">
33                    <a href='' onclick="showElement('searchPane'); return false;">Quick</a>
34                </span>
[262]35                Results: ${taskInstanceList.size()} / ${taskInstanceTotal}
[221]36                <span class="searchButtons">
37                    <filterpane:filterButton text="Advanced" appliedText="Advanced" />
38                </span>
[155]39            </div>
40
[323]41            <jsUtil:toggleControl toggleId="options"
42                                                    imageId="optionsImg"
43                                                    closedImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_right.png')}"
44                                                    openImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_down.png')}"
45                                                    text="${g.message(code: 'default.options.text')}"
46                                                    />
[262]47
[323]48            <div id="options" style="display:none;">
[570]49                <g:form method="post" action="setSearchParamsMax" >
[262]50                    <g:hiddenField name="params" value="${filterParams}" />
51                    <div class="dialog">
52                        <table>
53                            <tbody>
54
55                                <tr class="prop">
56                                    <td valign="top" class="name">
57                                        <label for="max">Results per page:</label>
58                                    </td>
59                                    <td valign="top" class="value">
60                                        <input type="text" maxlength="4" id="description" name="newMax" value="${params.max}"/>
61
62                                        <span class="buttons">
[326]63                                            <g:actionSubmit action="setSearchParamsMax" class="go" value="Update" />
[262]64                                        </span>
65                                    </td>
66                                </tr>
67
68                            </tbody>
69                        </table>
70                    </div>
71                <export:formats  params="${filterParams}" formats="['csv', 'excel', 'pdf', 'rtf']"/>
72                </g:form>
73            </div>
74
75            <br />
76
[613]77            <g:if test="${taskInstanceTotal > taskInstanceList.size()}">
78                <div class="paginateButtons">
[615]79                    <g:paginate action="search" total="${taskInstanceTotal}" params="${filterParams}" />
[613]80                </div>
[262]81            </g:if>
82
[467]83            <g:if test="${taskInstanceList.size() > 0}">
84                <div class="list">
85                    <table>
86                        <thead>
87                            <tr>
[150]88
[467]89                                <custom:sortableColumnWithImg property="attentionFlag"
90                                                                                                imgSrc="${resource(dir:'images/skin',file:'flag_red.png')}"
[582]91                                                                                                imgAlt="Flag"
[736]92                                                                                                imgTitle="Attention Flag"
[582]93                                                                                                params="${filterParams}" />
[418]94
[838]95                                <custom:sortableColumnWithImg property="highestSeverity"
96                                                                                                imgSrc="${resource(dir:'images/skin',file:'award_star_silver_3.png')}"
97                                                                                                imgAlt="Severity"
98                                                                                                imgTitle="Highest Severity"
99                                                                                                params="${filterParams}" />
100
[467]101                                <g:sortableColumn property="targetStartDate" title="Target Start Date" params="${filterParams}" />
[150]102
[467]103                                <g:sortableColumn property="description" title="Description" params="${filterParams}" />
[150]104
[586]105                                <g:sortableColumn property="taskGroup" title="Group" params="${filterParams}" />
[150]106
[499]107                                <g:sortableColumn  property="taskType" title="Type" params="${filterParams}" />
[139]108
[736]109                                <custom:sortableColumnWithImg property="taskStatus"
110                                                                                                imgSrc="${resource(dir:'images/skin',file:'status.png')}"
111                                                                                                imgAlt="Status"
112                                                                                                imgTitle="Status"
113                                                                                                params="${filterParams}" />
114
[586]115                                <g:sortableColumn  property="taskPriority" title="Priority" params="${filterParams}" />
116
[582]117                                <custom:sortableColumnWithImg property="defaultSort"
118                                                                                                imgSrc="${resource(dir:'images/skin',file:'table_sort.png')}"
119                                                                                                imgAlt="Sort"
120                                                                                                imgTitle="Default Sort"
121                                                                                                params="${filterParams}" />
[150]122
[467]123                            </tr>
124                        </thead>
125                        </tbody>
126                        <tbody>
127                        <g:each in="${taskInstanceList}" status="i" var="taskInstance">
[836]128                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}">
[139]129
[498]130                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
[467]131                                    <g:if test="${taskInstance.attentionFlag}">
[736]132                                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Flag" title="Attention Flag"/>
[467]133                                    </g:if>
134                                </td>
[150]135
[838]136                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
137                                    <g:if test="${taskInstance.highestSeverity}">
138                                        ${taskInstance.highestSeverity.code.encodeAsHTML()}
139                                    </g:if>
140                                </td>
141
[498]142                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
143                                    <g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/>
144                                </td>
[150]145
[498]146                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
[586]147                                    <b>
[736]148                                        Task #${fieldValue(bean:taskInstance, field:'id')}
[586]149                                    </b>
[736]150                                    <g:if test="${taskInstance.approved}" >
151                                        <img  src="${resource(dir:'images/skin',file:'cog.png')}" alt="Approved" title="Approved" />
152                                    </g:if>
153                                    <g:if test="${taskInstance.taskRecurringSchedule?.enabled}" >
154                                        <img  src="${resource(dir:'images/skin',file:'arrow_refresh.png')}" alt="Recurrence Enabled" title="Recurrence Enabled" />
155                                    </g:if>
[583]156                                    <br />
[736]157
158                                    <b>
[799]159                                    <g:if test="${taskInstance.primaryAsset}">
160                                        ${fieldValue(bean:taskInstance, field:'primaryAsset')}:
161                                    </g:if>
[736]162                                    ${fieldValue(bean:taskInstance, field:'description')}
163                                    </b>
[817]164                                    <g:if test="${taskInstance.taskProcedureRevision?.maintenanceActions}" >
165                                        <br />
166                                        <custom:taskProcedureMachines taskProcedureRevision="${taskInstance.taskProcedureRevision}" />
167                                    </g:if>
[736]168                                    <g:if test="${taskInstance.safetyRequirement}" >
169                                        <br />
170                                        <img  src="${resource(dir:'images/skin',file:'lightning.png')}" alt="Safety Requirement" title="Safety Requirement" />
171                                        Safety
172                                    </g:if>
173                                    <g:if test="${taskInstance.regulatoryRequirement}" >
174                                        <br />
175                                        <img  src="${resource(dir:'images/skin',file:'script_lightning.png')}" alt="Regulatory Requirement" title="Regulatory Requirement" />
176                                        Regulatory
177                                    </g:if>
178                                    <g:if test="${taskInstance.mandatoryRequirement}" >
179                                        <br />
180                                        <img  src="${resource(dir:'images/skin',file:'script.png')}" alt="Mandatory Requirement" title="Mandatory Requirement" />
181                                        Mandatory
182                                    </g:if>
[583]183                                    <br />
[736]184                                    <br />
[583]185                                    <g:each in="${taskInstance.assignedGroups}" status="j" var="assignedGroup">
186                                        ${assignedGroup.encodeAsHTML()}<br />
187                                    </g:each>
188                                    <g:each in="${taskInstance.assignedPersons}" status="k" var="assignedPerson">
189                                        ${assignedPerson.encodeAsHTML()}<br />
190                                    </g:each>
[586]191                                    <g:each in="${taskInstance.entries}" status="m" var="entry">
192                                        <g:if test="${entry.entryType.id == 3}">
193                                            <em>${'WD: ' +entry.toShortString().encodeAsHTML()}</em><br />
194                                        </g:if>
195                                    </g:each>
196                                    <g:if test="${taskInstance.subTasks}">
197                                        Sub Tasks: ${taskInstance.subTasks.size()}<br />
198                                    </g:if>
[498]199                                </td>
[150]200
[498]201                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
[586]202                                    ${fieldValue(bean:taskInstance, field:'taskGroup')}
[498]203                                </td>
[150]204
[498]205                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
206                                    ${fieldValue(bean:taskInstance, field:'taskType')}
207                                </td>
[139]208
[736]209                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
210                                    <g:if test="${taskInstance.taskStatus.id == 1}" >
211                                        <img  src="${resource(dir:'images/skin',file:'not_started.png')}" alt="Not Started" title="Not Started" />
212                                    </g:if>
213                                    <g:if test="${taskInstance.taskStatus.id == 2}" >
214                                        <img  src="${resource(dir:'images/skin',file:'arrow_right.png')}" alt="In Progress" title="In Progress" />
215                                    </g:if>
216                                    <g:if test="${taskInstance.taskStatus.id == 3}" >
217                                        <img  src="${resource(dir:'images/skin',file:'tick.png')}" alt="Complete" title="Complete" />
218                                    </g:if>
[586]219                                </td>
220
221                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
[736]222                                    ${fieldValue(bean:taskInstance, field:'taskPriority')}
[498]223                                </td>
224
225                                <td class="notClickable">
[467]226                                    <g:link action="show" id="${taskInstance.id}">
[736]227                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" title="Show" />
[467]228                                    </g:link>
229                                </td>
[150]230
[467]231                            </tr>
232                        </g:each>
233                        </tbody>
234                    </table>
235                </div>
236            </g:if>
[139]237            <div class="paginateButtons">
[613]238                <g:paginate action="search" total="${taskInstanceTotal}" params="${filterParams}" />
[139]239            </div>
[147]240
[140]241            <filterpane:filterPane domainBean="Task"
[155]242                                    title="Advanced Search"
[140]243                                    action="search"
[155]244                                    class="overlayPane"
[140]245                                    additionalProperties="id"
[593]246                                    excludeProperties="targetCompletionDate"
[168]247                                    associatedProperties="taskPriority.name,
248                                                                                leadPerson.lastName,
249                                                                                leadPerson.firstName,
250                                                                                taskGroup.name,
[838]251                                                                                highestSeverity.code,
[168]252                                                                                primaryAsset.name,
253                                                                                taskStatus.name,
254                                                                                taskType.name"
[552]255                                    filterPropertyValues="${['taskPriority.name':[values: associatedPropertyValues.taskPriorityList],
256                                                                                'leadPerson.lastName':[values: associatedPropertyValues.lastNameList],
257                                                                                'leadPerson.firstName':[values: associatedPropertyValues.firstNameList],
258                                                                                'taskGroup.name':[values: associatedPropertyValues.taskGroupList],
[838]259                                                                                'highestSeverity.code':[values: associatedPropertyValues.highestSeverityList],
[552]260                                                                                'primaryAsset.name':[values: associatedPropertyValues.assetList],
261                                                                                'taskStatus.name':[values: associatedPropertyValues.taskStatusList],
262                                                                                'taskType.name':[values: associatedPropertyValues.taskTypeList],
263                                                                                targetCompletionDate:[years: associatedPropertyValues.yearRange,precision:'day'],
264                                                                                targetStartDate:[years: associatedPropertyValues.yearRange,precision:'day']
[168]265                                                                                ]}"/>
[155]266
[476]267            <g:render template="quickSearchPane" />
[155]268
[476]269        </div> <!-- end body  -->
[139]270    </body>
271</html>
Note: See TracBrowser for help on using the repository browser.