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

Last change on this file since 582 was 582, checked in by gav, 14 years ago

New defaultSort for Tasks, sort by status then priority then target start date.
Small improvement to custom:sortableColumnWithImg to allow imgTitle to be specified.

File size: 11.2 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>Task Search</title>
6        <filterpane:includes />
7        <nav:resources override="true"/>
8        <export:resource />
9    </head>
10    <body>
11        <div class="nav">
12            <nav:renderSubItems group="nav"/>
13        </div>
14
15        <div class="body">
16            <g:render template="/shared/messages" />
17            <g:hasErrors bean="${appCore}">
18                <div class="errors">
19                    <g:renderErrors bean="${appCore}" as="list" />
20                </div>
21            </g:hasErrors>
22            <filterpane:currentCriteria domainBean="Task"
23                                    action="search"
24                                    dateFormat="EEE, dd-MMM-yyyy"
25                                    removeImgDir="images"
26                                    removeImgFile="bullet_delete.png"
27                                    title="Advanced Search"/>
28
29            <div class="paginateButtons">
30                <span class="searchButtons">
31                    <a href='' onclick="showElement('searchPane'); return false;">Quick</a>
32                </span>
33                Results: ${taskInstanceList.size()} / ${taskInstanceTotal}
34                <span class="searchButtons">
35                    <filterpane:filterButton text="Advanced" appliedText="Advanced" />
36                </span>
37            </div>
38
39            <jsUtil:toggleControl toggleId="options"
40                                                    imageId="optionsImg"
41                                                    closedImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_right.png')}"
42                                                    openImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_down.png')}"
43                                                    text="${g.message(code: 'default.options.text')}"
44                                                    />
45
46            <div id="options" style="display:none;">
47                <g:form method="post" action="setSearchParamsMax" >
48                    <g:hiddenField name="params" value="${filterParams}" />
49                    <div class="dialog">
50                        <table>
51                            <tbody>
52
53                                <tr class="prop">
54                                    <td valign="top" class="name">
55                                        <label for="max">Results per page:</label>
56                                    </td>
57                                    <td valign="top" class="value">
58                                        <input type="text" maxlength="4" id="description" name="newMax" value="${params.max}"/>
59
60                                        <span class="buttons">
61                                            <g:actionSubmit action="setSearchParamsMax" class="go" value="Update" />
62                                        </span>
63                                    </td>
64                                </tr>
65
66                            </tbody>
67                        </table>
68                    </div>
69                <export:formats  params="${filterParams}" formats="['csv', 'excel', 'pdf', 'rtf']"/>
70                </g:form>
71            </div>
72
73            <br />
74
75            <g:if test="${taskInstanceList.size() > 10}">
76                <g:if test="${taskInstanceTotal > taskInstanceList.size()}">
77                    <div class="paginateButtons">
78                        <g:paginate total="${taskInstanceTotal}" params="${filterParams}" />
79                    </div>
80                </g:if>
81            </g:if>
82
83            <g:if test="${taskInstanceList.size() > 0}">
84                <div class="list">
85                    <table>
86                        <thead>
87                            <tr>
88
89                                <custom:sortableColumnWithImg property="attentionFlag"
90                                                                                                imgSrc="${resource(dir:'images/skin',file:'flag_red.png')}"
91                                                                                                imgAlt="Flag"
92                                                                                                params="${filterParams}" />
93
94                                <g:sortableColumn property="id" title="Id" params="${filterParams}" />
95
96                                <g:sortableColumn property="targetStartDate" title="Target Start Date" params="${filterParams}" />
97
98                                <g:sortableColumn property="description" title="Description" params="${filterParams}" />
99
100                                <g:sortableColumn  property="taskPriority" title="Priority" params="${filterParams}" />
101
102                                <g:sortableColumn  property="taskType" title="Type" params="${filterParams}" />
103
104                                <g:sortableColumn  property="taskStatus" title="Status" params="${filterParams}" />
105
106                                <custom:sortableColumnWithImg property="defaultSort"
107                                                                                                imgSrc="${resource(dir:'images/skin',file:'table_sort.png')}"
108                                                                                                imgAlt="Sort"
109                                                                                                imgTitle="Default Sort"
110                                                                                                params="${filterParams}" />
111
112                            </tr>
113                        </thead>
114                        </tbody>
115                        <tbody>
116                        <g:each in="${taskInstanceList}" status="i" var="taskInstance">
117                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
118
119                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
120                                    <g:if test="${taskInstance.attentionFlag}">
121                                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Flag" />
122                                    </g:if>
123                                </td>
124
125                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
126                                    ${fieldValue(bean:taskInstance, field:'id')}
127                                </td>
128
129                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
130                                    <g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/>
131                                </td>
132
133                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
134                                    ${fieldValue(bean:taskInstance, field:'description')}
135                                </td>
136
137                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
138                                    ${fieldValue(bean:taskInstance, field:'taskPriority')}
139                                </td>
140
141                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
142                                    ${fieldValue(bean:taskInstance, field:'taskType')}
143                                </td>
144
145                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
146                                    ${fieldValue(bean:taskInstance, field:'taskStatus')}
147                                </td>
148
149                                <td class="notClickable">
150                                    <g:link action="show" id="${taskInstance.id}">
151                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
152                                    </g:link>
153                                </td>
154
155                            </tr>
156                        </g:each>
157                        </tbody>
158                    </table>
159                </div>
160            </g:if>
161            <div class="paginateButtons">
162                <g:paginate  action="search" total="${taskInstanceTotal}" params="${filterParams}" />
163            </div>
164
165            <filterpane:filterPane domainBean="Task"
166                                    title="Advanced Search"
167                                    action="search"
168                                    class="overlayPane"
169                                    additionalProperties="id"
170                                    associatedProperties="taskPriority.name,
171                                                                                leadPerson.lastName,
172                                                                                leadPerson.firstName,
173                                                                                taskGroup.name,
174                                                                                associatedAssets.name,
175                                                                                primaryAsset.name,
176                                                                                taskStatus.name,
177                                                                                taskType.name"
178                                    filterPropertyValues="${['taskPriority.name':[values: associatedPropertyValues.taskPriorityList],
179                                                                                'leadPerson.lastName':[values: associatedPropertyValues.lastNameList],
180                                                                                'leadPerson.firstName':[values: associatedPropertyValues.firstNameList],
181                                                                                'taskGroup.name':[values: associatedPropertyValues.taskGroupList],
182                                                                                'associatedAssets.name':[values: associatedPropertyValues.assetList],
183                                                                                'primaryAsset.name':[values: associatedPropertyValues.assetList],
184                                                                                'taskStatus.name':[values: associatedPropertyValues.taskStatusList],
185                                                                                'taskType.name':[values: associatedPropertyValues.taskTypeList],
186                                                                                targetCompletionDate:[years: associatedPropertyValues.yearRange,precision:'day'],
187                                                                                targetStartDate:[years: associatedPropertyValues.yearRange,precision:'day']
188                                                                                ]}"/>
189
190            <g:render template="quickSearchPane" />
191
192        </div> <!-- end body  -->
193    </body>
194</html>
Note: See TracBrowser for help on using the repository browser.