source: trunk/grails-app/views/taskDetailed/workLoad.gsp @ 767

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

New workLoad search view and logic to suite.

File size: 11.2 KB
RevLine 
[701]1<html>
2    <head>
3        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
4        <meta name="layout" content="main" />
5        <title>Work Load</title>
6        <resource:dateChooser />
7    </head>
8    <body>
9        <div class="nav">
10            <h1>Work Load</h1>
11        </div>
12        <div class="body">
13            <g:render template="/shared/messages" />
14
15            <div class="paginateButtons">
16                <span class="searchButtons">
17                    <a href='' onclick="showElement('searchPane'); return false;">Search</a>
18                </span>
19            </div>
20
21            <br />
22
23
24            <g:if test="${workLoadGroups.size() > 0}">
25                <h1>Assigned Groups</h1>
26            </g:if>
27            <g:else>
28                <h1>No Assigned Groups Found</h1>
29            </g:else>
30                    <div class="list">
31                        <table>
32                            <thead>
33                                <tr>
34                                    <th>Assigned Group</th>
35                                    <th>Duration</th>
36                                </tr>
37                            </thead>
38                            <tbody>
39                                <g:each in="${workLoadGroups}" status="i" var="workLoadGroup">
40                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
41
42                                            <td class="notClickable">
43                                                ${workLoadGroup.key}
44                                            </td>
45
46                                            <td class="notClickable">
47                                                ${workLoadGroup.value.hours}:<g:formatNumber number="${workLoadGroup.value.minutes}" type="number" minIntegerDigits="2" />
48                                            </td>
49
50                                        </tr>
51                                </g:each>
52                            </tbody>
53                                <tr class="total">
54                                    <td>
55                                        Total
56                                    </td>
57                                    <td>
58                                        ${totalHours}:<g:formatNumber number="${totalMinutes}" type="number" minIntegerDigits="2" />
59                                    </td>
60                                </tr>
61                        </table>
62                    </div>
63
64            <br />
65
66            <h1>Task Results: ${tasks.size()} / ${tasks.totalCount}</h1>
67
68            <g:if test="${tasks.size() > 0}">
69                <div class="list">
70                    <table>
71                        <thead>
72                            <tr>
73
74                                <th>
75                                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Flag" />
76                                </th>
77
78                                <th>Target Start Date</th>
79
80                                <th>Description</th>
81
82                                <th>Group</th>
83
84                                <th>Type</th>
85
86                                <th>Priority</th>
87
88                                <th>Status</th>
89
90                                <th></th>
91
92                            </tr>
93                        </thead>
94                        <tbody>
95                        <g:each in="${tasks}" status="i" var="taskInstance">
96                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
97
98                                <td class="idColumn" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
99                                    <g:if test="${taskInstance.attentionFlag}">
100                                        <img  src="${resource(dir:'images/skin',file:'flag_red.png')}" alt="Flag" />
101                                    </g:if>
102                                </td>
103
104                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
105                                    <g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/>
106                                </td>
107
108                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
109                                    <b>
110                                        Task #${fieldValue(bean:taskInstance, field:'id')}<br />
111                                        ${fieldValue(bean:taskInstance, field:'description')}
112                                    </b>
113                                    <br />
114                                    <br />
115                                    <g:if test="${taskInstance.primaryAsset}">
116                                        ${fieldValue(bean:taskInstance, field:'primaryAsset')}<br />
117                                    </g:if>
118                                    <g:each in="${taskInstance.assignedGroups}" status="j" var="assignedGroup">
119                                        ${assignedGroup.encodeAsHTML()}<br />
120                                    </g:each>
121                                    <g:each in="${taskInstance.assignedPersons}" status="k" var="assignedPerson">
122                                        ${assignedPerson.encodeAsHTML()}<br />
123                                    </g:each>
124                                    <g:each in="${taskInstance.entries}" status="m" var="entry">
125                                        <g:if test="${entry.entryType.id == 3}">
126                                            <em>${'WD: ' +entry.toShortString().encodeAsHTML()}</em><br />
127                                        </g:if>
128                                    </g:each>
129                                    <g:if test="${taskInstance.subTasks}">
130                                        Sub Tasks: ${taskInstance.subTasks.size()}<br />
131                                    </g:if>
132                                </td>
133
134                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
135                                    ${fieldValue(bean:taskInstance, field:'taskGroup')}
136                                </td>
137
138                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
139                                    ${fieldValue(bean:taskInstance, field:'taskType')}
140                                </td>
141
142                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
143                                    ${fieldValue(bean:taskInstance, field:'taskPriority')}
144                                </td>
145
146                                <td onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'>
147                                    ${fieldValue(bean:taskInstance, field:'taskStatus')}
148                                </td>
149
150                                <td class="notClickable">
151                                    <g:link action="show" id="${taskInstance.id}">
152                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
153                                    </g:link>
154                                </td>
155
156                            </tr>
157                        </g:each>
158                        </tbody>
159                    </table>
160                </div>
161            </g:if>
162
163            <!-- Start Search Pane -->
164            <div class="overlayPane" id="searchPane" style="display:none;">
165                <h2>Search</h2>
166                <g:form method="post" controller="taskDetailed">
167                    <table>
168                        <tbody>
169
170                            <tr class="prop">
171                                <td valign="top" class="name">
172                                    <label for="date">Date:</label>
173                                </td>
174                                <td valign="top" class="value">
175                                    <richui:dateChooser name="startDate" format="dd-MM-yyyy" value="${startDate}" />
176                                    to
177                                    <richui:dateChooser name="endDate" format="dd-MM-yyyy" value="${endDate}" />
178                                </td>
179                            </tr>
180
181                            <tr class="prop">
182                                <td valign="top" class="name">
183                                    <label>Task Status:</label>
184                                </td>
185                                <td valign="top" class="value">
186                                    <custom:checkBoxList name="taskStatusList"
187                                                                            from="${TaskStatus.findAllByIsActive(true)}"
188                                                                            value="${taskStatusList?.collect{it.id}}"
189                                                                            optionKey="id"
190                                                                            sortBy="name"
191                                                                            linkController="taskStatusDetailed"
192                                                                            linkAction="show"
193                                                                            height="150px"/>
194                                </td>
195                            </tr>
196
197                            <tr class="prop">
198                                <td valign="top" class="name">
199                                    <label>Task Groups:</label>
200                                </td>
201                                <td valign="top" class="value">
202                                    <custom:checkBoxList name="taskGroups"
203                                                                            from="${TaskGroup.findAllByIsActive(true)}"
204                                                                            value="${taskGroups?.collect{it.id}}"
205                                                                            optionKey="id"
206                                                                            sortBy="name"
207                                                                            linkController="taskGroupDetailed"
208                                                                            linkAction="show"
209                                                                            height="150px"/>
210                                </td>
211                            </tr>
212
213                        </tbody>
214                    </table>
215                    <div class="buttons">
216                        <span class="button">
217                            <g:actionSubmit class="save" value="Update" action="workLoad" />
218                            <g:actionSubmit class="cancel" value="${g.message(code:'fp.tag.filterPane.button.cancel.text', default:'Cancel')}" onclick="return hideElement('searchPane');" />
219                        </span>
220                    </div>
221                </g:form>
222            </div> <!-- end search pane -->
223
224        </div> <!--body-->
225    </body>
226</html>
Note: See TracBrowser for help on using the repository browser.