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

Last change on this file since 354 was 326, checked in by gav, 15 years ago

Add options control to asset search view.

File size: 11.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">
16            <g:if test="${flash.message}">
17                <div class="message">${flash.message}</div>
18            </g:if>
[143]19            <g:if test="${params.message}">
20                <div class="message">${params.message}</div>
21            </g:if>
[139]22            <g:hasErrors bean="${appCore}">
23                <div class="errors">
24                    <g:renderErrors bean="${appCore}" as="list" />
25                </div>
26            </g:hasErrors>
[140]27            <filterpane:currentCriteria domainBean="Task"
28                                    action="search"
29                                    dateFormat="${'EEE, dd-MMM-yyyy'}"
30                                    removeImgDir="images"
31                                    removeImgFile="bullet_delete.png"
[155]32                                    title="Advanced Search"/>
[147]33
[155]34            <div class="paginateButtons">
[221]35                <span class="searchButtons">
36                    <a href='' onclick="showElement('searchPane'); return false;">Quick</a>
37                </span>
[262]38                Results: ${taskInstanceList.size()} / ${taskInstanceTotal}
[221]39                <span class="searchButtons">
40                    <filterpane:filterButton text="Advanced" appliedText="Advanced" />
41                </span>
[155]42            </div>
43
[323]44            <jsUtil:toggleControl toggleId="options"
45                                                    imageId="optionsImg"
46                                                    closedImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_right.png')}"
47                                                    openImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_down.png')}"
48                                                    text="${g.message(code: 'default.options.text')}"
49                                                    />
[262]50
[323]51            <div id="options" style="display:none;">
[262]52                <g:form method="post" >
53                    <g:hiddenField name="params" value="${filterParams}" />
54                    <div class="dialog">
55                        <table>
56                            <tbody>
57
58                                <tr class="prop">
59                                    <td valign="top" class="name">
60                                        <label for="max">Results per page:</label>
61                                    </td>
62                                    <td valign="top" class="value">
63                                        <input type="text" maxlength="4" id="description" name="newMax" value="${params.max}"/>
64
65                                        <span class="buttons">
[326]66                                            <g:actionSubmit action="setSearchParamsMax" class="go" value="Update" />
[262]67                                        </span>
68                                    </td>
69                                </tr>
70
71                            </tbody>
72                        </table>
73                    </div>
74                <export:formats  params="${filterParams}" formats="['csv', 'excel', 'pdf', 'rtf']"/>
75                </g:form>
76            </div>
77
78            <br />
79
80            <g:if test="${taskInstanceList.size() > 10}">
81                <div class="paginateButtons">
82                    <g:paginate total="${taskInstanceTotal}" params="${filterParams}" />
83                </div>
84            </g:if>
85
[147]86            <div class="list">
[139]87                <table>
88                    <thead>
89                        <tr>
[150]90
91                            <g:sortableColumn property="id" title="Id" params="${filterParams}" />
92
93                            <g:sortableColumn property="targetStartDate" title="Target Start Date" params="${filterParams}" />
94
95                            <g:sortableColumn property="description" title="Description" params="${filterParams}" />
96
97                            <g:sortableColumn  property="leadPerson" title="Lead Person" params="${filterParams}" />
98
[140]99                            <g:sortableColumn  property="taskPriority" title="Task Priority" params="${filterParams}" />
[150]100
[140]101                            <g:sortableColumn  property="taskStatus" title="Task Status" params="${filterParams}" />
[139]102
103                            <th></th>
[150]104
[139]105                        </tr>
106                    </thead>
107                    <tbody>
108                    <g:each in="${taskInstanceList}" status="i" var="taskInstance">
109                    <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'/>
110
111                            <td>${fieldValue(bean:taskInstance, field:'id')}</td>
[150]112
[139]113                            <td><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
[150]114
[139]115                            <td>${fieldValue(bean:taskInstance, field:'description')}</td>
[150]116
[139]117                            <td>${fieldValue(bean:taskInstance, field:'leadPerson')}</td>
[150]118
[139]119                            <td>${fieldValue(bean:taskInstance, field:'taskPriority')}</td>
[150]120
[139]121                            <td>${fieldValue(bean:taskInstance, field:'taskStatus')}</td>
122
123                            <td>
124                                <g:link action="show" id="${taskInstance.id}">
[151]125                                    <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
[139]126                                </g:link>
127                            </td>
[150]128
[139]129                        </tr>
130                    </g:each>
131                    </tbody>
132                </table>
133            </div>
134            <div class="paginateButtons">
[140]135                <g:paginate total="${taskInstanceTotal}" params="${filterParams}" />
[139]136            </div>
[147]137
[140]138            <filterpane:filterPane domainBean="Task"
[155]139                                    title="Advanced Search"
[140]140                                    action="search"
[155]141                                    class="overlayPane"
[140]142                                    additionalProperties="id"
[168]143                                    associatedProperties="taskPriority.name,
144                                                                                leadPerson.lastName,
145                                                                                leadPerson.firstName,
146                                                                                taskGroup.name,
147                                                                                associatedAssets.name,
148                                                                                primaryAsset.name,
149                                                                                taskStatus.name,
150                                                                                taskType.name"
[140]151                                    filterPropertyValues="${['taskPriority.name':[values:TaskPriority.list()],
[168]152                                                                                'leadPerson.lastName':[values:Person.executeQuery('select distinct t.lastName from Person t')],
153                                                                                'leadPerson.firstName':[values:Person.executeQuery('select distinct t.firstName from Person t')],
[155]154                                                                                'taskGroup.name':[values:TaskGroup.list()],
[168]155                                                                                'associatedAssets.name':[values:Asset.list()],
156                                                                                'primaryAsset.name':[values:Asset.list()],
157                                                                                'taskStatus.name':[values:TaskStatus.list()],
158                                                                                'taskType.name':[values:TaskType.list()],
[155]159                                                                                targetCompletionDate:[years:2020..2000,precision:'day'],
[168]160                                                                                targetStartDate:[years:2020..2000,precision:'day']
161                                                                                ]}"/>
[155]162        </div> <!-- end body  -->
163
164        <!-- Start Search Pane -->
165        <div class="overlayPane" id="searchPane" style="display:none;">
166            <h2>Quick Search</h2>
167            <g:form method="post" id="searchForm" name="searchForm" >
168                <table>
169                    <tbody>
170
171                        <tr class="prop">
172                            <td valign="top" class="name">
173                                <label>My Tasks:</label>
174                            </td>
175                            <td valign="top" class="value">
176                                <g:link controller="taskDetailed"
177                                                action="search"
178                                                params="[quickSearch: 'searchMyTodays']">
179                                                Today's
180                                </g:link>
181                                <br />
182                                <g:link controller="taskDetailed"
183                                                action="search"
184                                                params="[quickSearch: 'searchMyInTheLastWeek']">
185                                                In the last week
186                                </g:link>
187                            </td>
188                        </tr>
189
190                        <tr class="prop">
191                            <td valign="top" class="name">
192                                <label>Tasks:</label>
193                            </td>
194                            <td valign="top" class="value">
195                                <g:link controller="taskDetailed"
196                                                action="search"
197                                                params="[quickSearch: 'searchTodays']">
198                                                Today's
199                                </g:link>
200                                <br />
201                                <g:link controller="taskDetailed"
202                                                action="search"
203                                                params="[quickSearch: 'searchInTheLastWeek']">
204                                                In the last week
205                                </g:link>
206                            </td>
207                        </tr>
208
209                    </tbody>
210                </table>
211                <div class="buttons">
212                    <span class="button">
213                        <input type="button" value="${g.message(code:'fp.tag.filterPane.button.cancel.text', default:'Cancel')}" onclick="return hideElement('searchPane');" />
214                    </span>
215<!--                    <span class="button">
216                        <input type="button" value="${g.message(code:'fp.tag.filterPane.button.clear.text', default:'Clear')}" onclick="return clearFilterPane('searchForm');" />
217                    </span>
218                    <span class="button">
219                        <g:actionSubmit class="search" value="Search" />
220                    </span>-->
221                </div>
222            </g:form>
223        </div> <!-- end search pane -->
224
[139]225    </body>
226</html>
Note: See TracBrowser for help on using the repository browser.