source: trunk/grails-app/views/inventoryItemDetailed/search.gsp @ 635

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

Add feature to import inventory item pictures from zip file.

File size: 19.3 KB
Line 
1
2
3<html>
4    <head>
5        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6        <meta name="layout" content="main" />
7        <title>InventoryItem Search</title>
8        <nav:resources override="true"/>
9        <g:render template="/shared/pictureHead" />
10        <filterpane:includes />
11        <export:resource />
12    </head>
13    <body onload="if(document.textSearchForm) {document.textSearchForm.searchText.focus();}">
14        <div class="nav">
15            <nav:renderSubItems group="nav"/>
16        </div>
17        <div class="body">
18            <g:render template="/shared/messages" />
19
20            <div class="textSearchWrapper">
21                <div class="textSearchInput">
22
23                    <filterpane:isFiltered >
24                        <filterpane:currentCriteria domainBean="InventoryItem"
25                                                action="search"
26                                                dateFormat="EEE, dd-MMM-yyyy"
27                                                removeImgDir="images"
28                                                removeImgFile="bullet_delete.png"
29                                                title="Advanced Search"/>
30                        <div class="paginateButtons">
31                            Results: ${inventoryItemInstanceList.size()} / ${inventoryItemInstanceTotal}
32                        </div>
33                    </filterpane:isFiltered >
34
35                    <filterpane:isNotFiltered >
36                        <g:form method="post" id="textSearchForm" name="textSearchForm" >
37                            <g:hiddenField name="newTextSearch" value="true" />
38
39                                <span> <!--Prevent IE inheriting margin-->
40                                    <g:textField style="width:450px;" maxlength="75" id="searchText" name="searchText" value="${filterParams.searchText}" />
41                                    <g:helpBalloon code="inventoryItem.search.searchText" />
42
43                                    <g:if test="${params.searchName || params.searchDescription || params.searchComment || params.searchLocation || params.searchGroup || params.searchSpareFor}" >
44                                        <div id="limitSearch" class="textSearchSelect">
45                                    </g:if>
46                                    <g:else>
47                                        <div id="limitSearch" class="textSearchSelect" style="display:none;">
48                                    </g:else>
49                                            Limit Search:
50                                            <br />
51                                            <g:checkBox name="searchName" value="${params.searchName}" ></g:checkBox>
52                                            <label for="searchName">Name</label>
53                                            <g:checkBox name="searchDescription" value="${params.searchDescription}" ></g:checkBox>
54                                            <label for="searchDescription">Description</label>
55                                            <g:checkBox name="searchComment" value="${params.searchComment}" ></g:checkBox>
56                                            <label for="searchComment">Comment</label>
57                                            <g:checkBox name="searchLocation" value="${params.searchLocation}" ></g:checkBox>
58                                            <label for="searchLocation">Location</label>
59                                            <g:checkBox name="searchGroup" value="${params.searchGroup}" ></g:checkBox>
60                                            <label for="searchGroup">Group</label>
61                                            <br />
62                                            <g:checkBox name="searchSpareFor" value="${params.searchSpareFor}" ></g:checkBox>
63                                            <label for="searchSpareFor">Spare For (Asset: Name, Description and Comment).</label>
64                                        </div>
65
66                                    <div class="paginateButtons">
67                                        <span class="buttons">
68                                            <g:actionSubmit class="search" value="Search" action="search" />
69                                        </span>
70                                        <span class="buttons" style="margin-left: 5px;">
71                                            <g:actionSubmit class="complete" value="Select" action="search" onclick="toggleWithEffectUtil('limitSearch'); return false;"/>
72                                        </span>
73                                        <div class="paginateButtons">
74                                            Results: ${inventoryItemInstanceList.size()} / ${inventoryItemInstanceTotal}
75                                        </div>
76                                    </div><!--paginateButtons-->
77                                </span> <!--Prevent IE inheriting margin-->
78
79                        </g:form>
80                    </filterpane:isNotFiltered >
81
82                </div><!--textSearchInput-->
83
84                <div class="textSearchRightFloat">
85                    <div class="paginateButtons">
86                        <span class="searchButtons">
87                            <a href='' onclick="showElement('searchPane'); return false;">Quick</a>
88                        </span>
89                        <br />
90                        <br />
91                        <span class="searchButtons">
92                            <filterpane:filterButton text="Advanced" appliedText="Advanced" />
93                        </span>
94                    </div>
95
96                    <jsUtil:toggleControl toggleId="options"
97                                                            imageId="optionsImg"
98                                                            closedImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_right.png')}"
99                                                            openImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_down.png')}"
100                                                            text="${g.message(code: 'default.options.text')}"
101                                                            />
102                </div><!--textSearchRightFloat-->
103            </div><!--textSearchWrapper-->
104
105            <div id="options" style="display:none; clear:both;">
106                <g:form method="post" action="setSearchParamsMax" >
107                    <g:hiddenField name="params" value="${filterParams}" />
108                    <div class="dialog">
109                        <table>
110                            <tbody>
111
112                                <tr class="prop">
113                                    <td valign="top" class="name">
114                                        <label for="max">Results per page:</label>
115                                    </td>
116                                    <td valign="top" class="value">
117                                        <input type="text" maxlength="4" id="description" name="newMax" value="${params.max}"/>
118
119                                        <span class="buttons">
120                                            <g:actionSubmit action="setSearchParamsMax" class="go" value="Update" />
121                                        </span>
122                                    </td>
123                                </tr>
124
125                                <tr class="prop">
126                                    <td valign="top" class="name">
127                                        <label for="max">Inventory:</label>
128                                    </td>
129                                    <td valign="top" class="value">
130                                        <g:link action="exportInventory">
131                                            Export
132                                        </g:link>
133                                        /
134                                        <g:link action="exportInventoryTemplate">
135                                            Template
136                                        </g:link>
137                                        /
138                                        <g:link action="exportInventoryExample">
139                                            Example
140                                        </g:link>
141                                        /
142                                        <g:link action="importInventory">
143                                            Import Inventory
144                                        </g:link>
145                                        /
146                                        <g:link action="importInventoryItemPurchases">
147                                            Import Purchases
148                                        </g:link>
149                                        /
150                                        <g:link action="importInventoryItemPictures">
151                                            Import Pictures
152                                        </g:link>
153                                    </td>
154                                </tr>
155
156                            </tbody>
157                        </table>
158                    </div>
159                </g:form>
160                <export:formats  params="${filterParams}" formats="['csv', 'excel', 'pdf', 'rtf']"/>
161            </div>
162
163            <br />
164
165            <g:if test="${inventoryItemInstanceList.size() > 2}">
166                <g:if test="${inventoryItemInstanceTotal > inventoryItemInstanceList.size()}">
167                    <div class="paginateButtons">
168                        <g:paginate action="search" total="${inventoryItemInstanceTotal}" params="${filterParams}" />
169                    </div>
170                </g:if>
171            </g:if>
172
173            <g:if test="${inventoryItemInstanceList.size() > 0}">
174                <div class="list">
175                    <table>
176                        <thead>
177                            <tr>
178
179                                <th>Picture</th>
180                           
181                                <g:sortableColumn property="name" title="Name" params="${filterParams}" />
182                           
183                                <g:sortableColumn property="description" title="Description" params="${filterParams}" />
184                           
185                                <g:sortableColumn property="inventoryGroup" title="Group" params="${filterParams}" />
186                           
187                                <g:sortableColumn property="unitsInStock" title="In Stock" params="${filterParams}" />
188                               
189                                <th>Unit</th>
190
191                                <th></th>
192                           
193                            </tr>
194                        </thead>
195                        <tbody>
196                        <g:each in="${inventoryItemInstanceList}" status="i" var="inventoryItemInstance">
197                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" />
198
199                                <td class='notClickable'>
200                                    <g:if test="${inventoryItemInstance.picture}" >
201                                        <wa:pictureLightboxAnchor picture="${inventoryItemInstance.picture}"
202                                                                                            size="${Image.Small}"
203                                                                                            lightboxSize="${Image.Large}"
204                                                                                            target="_blank"
205                                                                                            title="Show Original" />
206                                    </g:if>
207                                </td>
208                           
209                                <td onclick='window.location = "${request.getContextPath()}/inventoryItemDetailed/show/${inventoryItemInstance.id}"' >
210                                    ${fieldValue(bean:inventoryItemInstance, field:'name')}
211                                </td>
212                           
213                                <td onclick='window.location = "${request.getContextPath()}/inventoryItemDetailed/show/${inventoryItemInstance.id}"' >
214                                    ${fieldValue(bean:inventoryItemInstance, field:'description')}
215                                </td>
216                           
217                                <td onclick='window.location = "${request.getContextPath()}/inventoryItemDetailed/show/${inventoryItemInstance.id}"' >
218                                    ${fieldValue(bean:inventoryItemInstance, field:'inventoryGroup')}
219                                </td>
220                           
221                                <td onclick='window.location = "${request.getContextPath()}/inventoryItemDetailed/show/${inventoryItemInstance.id}"' >
222                                    ${fieldValue(bean:inventoryItemInstance, field:'unitsInStock')}
223                                </td>
224                           
225                                <td onclick='window.location = "${request.getContextPath()}/inventoryItemDetailed/show/${inventoryItemInstance.id}"' >
226                                    ${fieldValue(bean:inventoryItemInstance, field:'unitOfMeasure')}
227                                </td>
228
229                                <td class="notClickable">
230                                    <g:link action="show" id="${inventoryItemInstance.id}">
231                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
232                                    </g:link>
233                                </td>
234                           
235                            </tr>
236                        </g:each>
237                        </tbody>
238                    </table>
239                </div>
240            </g:if>
241            <div class="paginateButtons">
242                <g:paginate action="search" total="${inventoryItemInstanceTotal}" params="${filterParams}" />
243            </div>
244
245            <filterpane:filterPane domainBean="InventoryItem"
246                                    title="Advanced Search"
247                                    action="search"
248                                    class="overlayPane"
249                                    excludeProperties="estimatedUnitPriceCurrency,
250                                                                    averageDeliveryTime"
251                                    associatedProperties="inventoryLocation.name,
252                                                                            spareFor.name,
253                                                                            preferredManufacturer.name,
254                                                                            preferredSupplier.name"
255                                    filterPropertyValues="${['inventoryLocation.name':[values: associatedPropertyValues.inventoryLocationList],
256                                                                                'spareFor.name':[values: associatedPropertyValues.assetList],
257                                                                                'preferredManufacturer.name':[values: associatedPropertyValues.manufacturerList],
258                                                                                'preferredSupplier.name':[values: associatedPropertyValues.supplierList]
259                                                                                ]}"/>
260        </div> <!-- end body div -->
261
262        <!-- Start Search Pane -->
263        <div class="overlayPane" id="searchPane" style="display:none;">
264            <h2>Quick Search</h2>
265
266            <g:form method="post" id="searchForm" name="searchForm" >
267                <g:hiddenField name="newTextSearch" value="true" />
268
269                <table>
270                    <tbody>
271
272                        <tr class="prop">
273                            <td valign="top" class="name">
274                                <label>Inventory:</label>
275                            </td>
276                            <td valign="top" class="value">
277                                <g:link controller="inventoryItemDetailed"
278                                                action="search"
279                                                params="[quickSearch: 'all']">
280                                                <g:message code="default.all.text" />
281                                </g:link>
282                                <br />
283                                <g:link controller="inventoryItemDetailed"
284                                                action="search"
285                                                params="[quickSearch: 'inventoryBelowReorder']">
286                                                <g:message code="inventoryItem.search.text.below.reorder" />
287                                </g:link> - <g:message code="inventoryItem.search.text.below.reorder.description" />
288                                <br />
289                                <g:link controller="inventoryItemDetailed"
290                                                action="search"
291                                                params="[quickSearch: 'inventoryBelowReorderAll']">
292                                                <g:message code="inventoryItem.search.text.below.reorder.all" />
293                                </g:link> - <g:message code="inventoryItem.search.text.below.reorder.all.description" />
294                                <br />
295                                <g:link controller="inventoryItemDetailed"
296                                                action="search"
297                                                params="[quickSearch: 'recentlyUsed', daysBack: '14']">
298                                                <g:message code="inventoryItem.search.text.recently.used" />
299                                </g:link> - <g:message code="inventoryItem.search.text.recently.used.description" args="[14]"/>
300                                <br />
301                                <g:link controller="inventoryItemDetailed"
302                                                action="search"
303                                                params="[quickSearch: 'recentlyUsed', daysBack: '30']">
304                                                <g:message code="inventoryItem.search.text.recently.used" />
305                                </g:link> - <g:message code="inventoryItem.search.text.recently.used.description" args="[30]"/>
306                            </td>
307                        </tr>
308
309                        <tr class="prop">
310                            <td valign="top" class="name">
311                                <label>Links:</label>
312                            </td>
313                            <td valign="top" class="value">
314                                <g:link controller="inventoryItemPurchaseDetailed"
315                                                action="search">
316                                                Purchases
317                                </g:link>
318                            </td>
319                        </tr>
320
321                    </tbody>
322                </table>
323
324                <div class="buttons">
325                    <span class="button">
326                        <g:actionSubmit class="cancel" value="${g.message(code:'fp.tag.filterPane.button.cancel.text', default:'Cancel')}" onclick="return hideElement('searchPane');" />
327                    </span>
328                </div>
329            </g:form>
330        </div> <!-- end search pane -->
331
332    </body>
333</html>
Note: See TracBrowser for help on using the repository browser.