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

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

Get Task Search filterpane associatedPropertyValues in controller instead of in gsp.
Sort and only get active items for associatedPropertyValues.
Small refator of DateUtilService with new plusYear().

File size: 10.5 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 />
[139]9    </head>
10    <body>
11        <div class="nav">
12            <nav:renderSubItems group="nav"/>
13        </div>
[150]14
[139]15        <div class="body">
[418]16            <g:render template="/shared/messages" />
[139]17            <g:hasErrors bean="${appCore}">
18                <div class="errors">
19                    <g:renderErrors bean="${appCore}" as="list" />
20                </div>
21            </g:hasErrors>
[140]22            <filterpane:currentCriteria domainBean="Task"
23                                    action="search"
[450]24                                    dateFormat="EEE, dd-MMM-yyyy"
25                                    removeImgDir="images"
[140]26                                    removeImgFile="bullet_delete.png"
[155]27                                    title="Advanced Search"/>
[147]28
[155]29            <div class="paginateButtons">
[221]30                <span class="searchButtons">
31                    <a href='' onclick="showElement('searchPane'); return false;">Quick</a>
32                </span>
[262]33                Results: ${taskInstanceList.size()} / ${taskInstanceTotal}
[221]34                <span class="searchButtons">
35                    <filterpane:filterButton text="Advanced" appliedText="Advanced" />
36                </span>
[155]37            </div>
38
[323]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                                                    />
[262]45
[323]46            <div id="options" style="display:none;">
[262]47                <g:form method="post" >
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">
[326]61                                            <g:actionSubmit action="setSearchParamsMax" class="go" value="Update" />
[262]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}">
[356]76                <g:if test="${taskInstanceTotal > taskInstanceList.size()}">
77                    <div class="paginateButtons">
78                        <g:paginate total="${taskInstanceTotal}" params="${filterParams}" />
79                    </div>
80                </g:if>
[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')}"
91                                                                                                imgAlt="Flag" params="${filterParams}" />
[418]92
[467]93                                <g:sortableColumn property="id" title="Id" params="${filterParams}" />
[150]94
[467]95                                <g:sortableColumn property="targetStartDate" title="Target Start Date" params="${filterParams}" />
[150]96
[467]97                                <g:sortableColumn property="description" title="Description" params="${filterParams}" />
[150]98
[498]99                                <g:sortableColumn  property="taskPriority" title="Priority" params="${filterParams}" />
[150]100
[499]101                                <g:sortableColumn  property="taskType" title="Type" params="${filterParams}" />
[139]102
[498]103                                <g:sortableColumn  property="taskStatus" title="Status" params="${filterParams}" />
104
[467]105                                <th></th>
[150]106
[467]107                            </tr>
108                        </thead>
109                        </tbody>
110                        <tbody>
111                        <g:each in="${taskInstanceList}" status="i" var="taskInstance">
[498]112                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
[139]113
[498]114                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
[467]115                                    <g:if test="${taskInstance.attentionFlag}">
116                                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Flag" />
117                                    </g:if>
118                                </td>
[150]119
[498]120                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
121                                    ${fieldValue(bean:taskInstance, field:'id')}
122                                </td>
[418]123
[498]124                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
125                                    <g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/>
126                                </td>
[150]127
[498]128                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
129                                    ${fieldValue(bean:taskInstance, field:'description')}
130                                </td>
[150]131
[498]132                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
133                                    ${fieldValue(bean:taskInstance, field:'taskPriority')}
134                                </td>
[150]135
[498]136                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
137                                    ${fieldValue(bean:taskInstance, field:'taskType')}
138                                </td>
[139]139
[498]140                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
141                                    ${fieldValue(bean:taskInstance, field:'taskStatus')}
142                                </td>
143
144                                <td class="notClickable">
[467]145                                    <g:link action="show" id="${taskInstance.id}">
146                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
147                                    </g:link>
148                                </td>
[150]149
[467]150                            </tr>
151                        </g:each>
152                        </tbody>
153                    </table>
154                </div>
155            </g:if>
[139]156            <div class="paginateButtons">
[476]157                <g:paginate  action="search" total="${taskInstanceTotal}" params="${filterParams}" />
[139]158            </div>
[147]159
[140]160            <filterpane:filterPane domainBean="Task"
[155]161                                    title="Advanced Search"
[140]162                                    action="search"
[155]163                                    class="overlayPane"
[140]164                                    additionalProperties="id"
[168]165                                    associatedProperties="taskPriority.name,
166                                                                                leadPerson.lastName,
167                                                                                leadPerson.firstName,
168                                                                                taskGroup.name,
169                                                                                associatedAssets.name,
170                                                                                primaryAsset.name,
171                                                                                taskStatus.name,
172                                                                                taskType.name"
[552]173                                    filterPropertyValues="${['taskPriority.name':[values: associatedPropertyValues.taskPriorityList],
174                                                                                'leadPerson.lastName':[values: associatedPropertyValues.lastNameList],
175                                                                                'leadPerson.firstName':[values: associatedPropertyValues.firstNameList],
176                                                                                'taskGroup.name':[values: associatedPropertyValues.taskGroupList],
177                                                                                'associatedAssets.name':[values: associatedPropertyValues.assetList],
178                                                                                'primaryAsset.name':[values: associatedPropertyValues.assetList],
179                                                                                'taskStatus.name':[values: associatedPropertyValues.taskStatusList],
180                                                                                'taskType.name':[values: associatedPropertyValues.taskTypeList],
181                                                                                targetCompletionDate:[years: associatedPropertyValues.yearRange,precision:'day'],
182                                                                                targetStartDate:[years: associatedPropertyValues.yearRange,precision:'day']
[168]183                                                                                ]}"/>
[155]184
[476]185            <g:render template="quickSearchPane" />
[155]186
[476]187        </div> <!-- end body  -->
[139]188    </body>
189</html>
Note: See TracBrowser for help on using the repository browser.