source: trunk/grails-app/views/assetDetailed/search.gsp @ 777

Last change on this file since 777 was 615, checked in by gav, 15 years ago

Fix NPE during pagination after setSearchParamsMax in search views.

File size: 7.9 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>Asset Search</title>
8        <nav:resources override="true"/>
9        <filterpane:includes />
10        <export:resource />
11    </head>
12    <body>
13        <div class="nav">
14            <nav:renderSubItems group="nav"/>
15        </div>
16        <div class="body">
17            <g:render template="/shared/messages" />
18
19            <filterpane:currentCriteria domainBean="Asset"
20                                    action="search"
21                                    dateFormat="EEE, dd-MMM-yyyy"
22                                    removeImgDir="images"
23                                    removeImgFile="bullet_delete.png"
24                                    title="Search"/>
25
26            <div class="paginateButtons">
27                Results: ${assetInstanceList.size()} / ${assetInstanceTotal}
28                <span class="searchButtons">
29                    <filterpane:filterButton text="Search" appliedText="Change Search" />
30                </span>
31            </div>
32
33            <jsUtil:toggleControl toggleId="options"
34                                                    imageId="optionsImg"
35                                                    closedImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_right.png')}"
36                                                    openImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_down.png')}"
37                                                    text="${g.message(code: 'default.options.text')}"
38                                                    />
39
40            <div id="options" style="display:none;">
41                <g:form method="post" action="setSearchParamsMax" >
42                    <g:hiddenField name="params" value="${filterParams}" />
43                    <div class="dialog">
44                        <table>
45                            <tbody>
46
47                                <tr class="prop">
48                                    <td valign="top" class="name">
49                                        <label for="max">Results per page:</label>
50                                    </td>
51                                    <td valign="top" class="value">
52                                        <input type="text" maxlength="4" id="description" name="newMax" value="${params.max}"/>
53
54                                        <span class="buttons">
55                                            <g:actionSubmit action="setSearchParamsMax" class="go" value="Update" />
56                                        </span>
57                                    </td>
58                                </tr>
59
60                                <tr class="prop">
61                                    <td valign="top" class="name">
62                                        <label for="max">Asset Tree:</label>
63                                    </td>
64                                    <td valign="top" class="value">
65                                        <g:link action="exportAssetTree">
66                                            Export
67                                        </g:link>
68                                        /
69                                        <g:link action="exportAssetTreeTemplate">
70                                            Template
71                                        </g:link>
72                                        /
73                                        <g:link action="importAssetTree">
74                                            Import
75                                        </g:link>
76                                    </td>
77                                </tr>
78
79                            </tbody>
80                        </table>
81                    </div>
82                </g:form>
83                <export:formats  params="${filterParams}" formats="['csv', 'excel', 'pdf', 'rtf']"/>
84            </div>
85
86            <br />
87
88            <g:if test="${assetInstanceList.size() > 10}">
89                <g:if test="${assetInstanceTotal > assetInstanceList.size()}">
90                    <div class="paginateButtons">
91                        <g:paginate action="search" total="${assetInstanceTotal}" params="${filterParams}" />
92                    </div>
93                </g:if>
94            </g:if>
95
96            <g:if test="${assetInstanceList.size() > 0}">
97                <div class="list">
98                    <table>
99                        <thead>
100                            <tr>
101                           
102                                <g:sortableColumn property="id" title="Id" params="${filterParams}" />
103
104                                <g:sortableColumn property="name" title="Name" params="${filterParams}" />
105                           
106                                <g:sortableColumn property="description" title="Description" params="${filterParams}" />
107
108                                <g:sortableColumn property="isActive" title="Is Active" params="${filterParams}" />
109                           
110                                <g:sortableColumn property="section" title="Section" params="${filterParams}" />
111
112                                <th></th>
113                           
114                            </tr>
115                        </thead>
116                        <tbody>
117                        <g:each in="${assetInstanceList}" status="i" var="assetInstance">
118                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"/>
119                           
120                                <td onclick='window.location = "${request.getContextPath()}/assetDetailed/show/${assetInstance.id}"'>
121                                    ${fieldValue(bean:assetInstance, field:'id')}
122                                </td>
123
124                                <td onclick='window.location = "${request.getContextPath()}/assetDetailed/show/${assetInstance.id}"'>
125                                    ${fieldValue(bean:assetInstance, field:'name')}
126                                </td>
127
128                                <td onclick='window.location = "${request.getContextPath()}/assetDetailed/show/${assetInstance.id}"'>
129                                    ${fieldValue(bean:assetInstance, field:'description')}
130                                </td>
131
132                                <td onclick='window.location = "${request.getContextPath()}/assetDetailed/show/${assetInstance.id}"'>
133                                    ${fieldValue(bean:assetInstance, field:'isActive')}
134                                </td>
135
136                                <td onclick='window.location = "${request.getContextPath()}/assetDetailed/show/${assetInstance.id}"'>
137                                    ${fieldValue(bean:assetInstance, field:'section')}
138                                </td>
139
140                                <td class="notClickable">
141                                    <g:link action="show" id="${assetInstance.id}">
142                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
143                                    </g:link>
144                                </td>
145                           
146                            </tr>
147                        </g:each>
148                        </tbody>
149                    </table>
150                </div>
151            </g:if>
152            <div class="paginateButtons">
153                <g:paginate action="search" total="${assetInstanceTotal}" params="${filterParams}" />
154            </div>
155
156            <filterpane:filterPane domainBean="Asset"
157                                    title="Search"
158                                    action="search"
159                                    class="overlayPane"
160                                    excludeProperties=""
161                                    associatedProperties="section.name"
162                                    filterPropertyValues="${['section.name':[values:Section.list()] ]}" />
163        </div> <!-- end body div -->
164    </body>
165</html>
Note: See TracBrowser for help on using the repository browser.