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
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;">
[570]47                <g:form method="post" action="setSearchParamsMax" >
[262]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')}"
[582]91                                                                                                imgAlt="Flag"
92                                                                                                params="${filterParams}" />
[418]93
[467]94                                <g:sortableColumn property="id" title="Id" params="${filterParams}" />
[150]95
[467]96                                <g:sortableColumn property="targetStartDate" title="Target Start Date" params="${filterParams}" />
[150]97
[467]98                                <g:sortableColumn property="description" title="Description" params="${filterParams}" />
[150]99
[498]100                                <g:sortableColumn  property="taskPriority" title="Priority" params="${filterParams}" />
[150]101
[499]102                                <g:sortableColumn  property="taskType" title="Type" params="${filterParams}" />
[139]103
[498]104                                <g:sortableColumn  property="taskStatus" title="Status" params="${filterParams}" />
105
[582]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}" />
[150]111
[467]112                            </tr>
113                        </thead>
114                        </tbody>
115                        <tbody>
116                        <g:each in="${taskInstanceList}" status="i" var="taskInstance">
[498]117                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
[139]118
[498]119                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
[467]120                                    <g:if test="${taskInstance.attentionFlag}">
121                                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Flag" />
122                                    </g:if>
123                                </td>
[150]124
[498]125                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
126                                    ${fieldValue(bean:taskInstance, field:'id')}
127                                </td>
[418]128
[498]129                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
130                                    <g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/>
131                                </td>
[150]132
[498]133                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
134                                    ${fieldValue(bean:taskInstance, field:'description')}
135                                </td>
[150]136
[498]137                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
138                                    ${fieldValue(bean:taskInstance, field:'taskPriority')}
139                                </td>
[150]140
[498]141                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
142                                    ${fieldValue(bean:taskInstance, field:'taskType')}
143                                </td>
[139]144
[498]145                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
146                                    ${fieldValue(bean:taskInstance, field:'taskStatus')}
147                                </td>
148
149                                <td class="notClickable">
[467]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>
[150]154
[467]155                            </tr>
156                        </g:each>
157                        </tbody>
158                    </table>
159                </div>
160            </g:if>
[139]161            <div class="paginateButtons">
[476]162                <g:paginate  action="search" total="${taskInstanceTotal}" params="${filterParams}" />
[139]163            </div>
[147]164
[140]165            <filterpane:filterPane domainBean="Task"
[155]166                                    title="Advanced Search"
[140]167                                    action="search"
[155]168                                    class="overlayPane"
[140]169                                    additionalProperties="id"
[168]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"
[552]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']
[168]188                                                                                ]}"/>
[155]189
[476]190            <g:render template="quickSearchPane" />
[155]191
[476]192        </div> <!-- end body  -->
[139]193    </body>
194</html>
Note: See TracBrowser for help on using the repository browser.