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

Last change on this file since 496 was 476, checked in by gav, 15 years ago

Improve task search and calendar logic.
Move task quick search links to a template.
Set targetCompletionDate when creating task from calendar.
Remove task budget action and view, functionality moved to task search.
Customise calendar css.

File size: 9.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;">
[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
[467]99                                <g:sortableColumn  property="taskPriority" title="Task Priority" params="${filterParams}" />
[150]100
[467]101                                <g:sortableColumn  property="taskStatus" title="Task Status" params="${filterParams}" />
[139]102
[467]103                                <th></th>
[150]104
[467]105                            </tr>
106                        </thead>
107                        </tbody>
108                        <tbody>
109                        <g:each in="${taskInstanceList}" status="i" var="taskInstance">
110                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'/>
[139]111
[467]112                                <td class="idColumn">
113                                    <g:if test="${taskInstance.attentionFlag}">
114                                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Flag" />
115                                    </g:if>
116                                </td>
[150]117
[467]118                                <td class="idColumn">${fieldValue(bean:taskInstance, field:'id')}</td>
[418]119
[467]120                                <td><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
[150]121
[467]122                                <td>${fieldValue(bean:taskInstance, field:'description')}</td>
[150]123
[467]124                                <td>${fieldValue(bean:taskInstance, field:'taskPriority')}</td>
[150]125
[467]126                                <td>${fieldValue(bean:taskInstance, field:'taskStatus')}</td>
[139]127
[467]128                                <td>
129                                    <g:link action="show" id="${taskInstance.id}">
130                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
131                                    </g:link>
132                                </td>
[150]133
[467]134                            </tr>
135                        </g:each>
136                        </tbody>
137                    </table>
138                </div>
139            </g:if>
[139]140            <div class="paginateButtons">
[476]141                <g:paginate  action="search" 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
[476]169            <g:render template="quickSearchPane" />
[155]170
[476]171        </div> <!-- end body  -->
[139]172    </body>
173</html>
Note: See TracBrowser for help on using the repository browser.