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

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

Add attentionFlag to Task domain along with views and logic to suite.
Add entry type 'cause', refactor as required.
Refactor task types.
Move createBreakin to createImmediateCallout.

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