source: trunk/grails-app/views/person/list.gsp @ 963

Last change on this file since 963 was 956, checked in by gav, 13 years ago

Fix person list filterpane memory bug on associated properties.

File size: 5.6 KB
Line 
1<head>
2    <meta name="layout" content="main" />
3    <title>Person List</title>
4    <filterpane:includes />
5    <nav:resources override="true"/>
6</head>
7
8<body>
9
10    <div class="nav">
11        <nav:renderSubItems group="navAlt"/>
12    </div>
13
14    <div class="body">
15        <g:render template="/shared/messages" />
16
17        <filterpane:currentCriteria domainBean="Person"
18                                action="list"
19                                dateFormat="EEE, dd-MMM-yyyy"
20                                removeImgDir="images"
21                                removeImgFile="bullet_delete.png"
22                                title="Search"/>
23
24        <div class="paginateButtons">
25            Results: ${personList.size()} / ${personTotal}
26            <span class="searchButtons">
27                <filterpane:filterButton text="Search" appliedText="Change Search" />
28            </span>
29        </div>
30
31        <jsUtil:toggleControl toggleId="options"
32                                                imageId="optionsImg"
33                                                closedImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_right.png')}"
34                                                openImgUrl="${resource(dir:'images/skin',file:'bullet_arrow_down.png')}"
35                                                text="${g.message(code: 'default.options.text')}"
36                                                />
37
38        <div id="options" style="display:none;">
39            <g:form method="post" >
40                <g:hiddenField name="params" value="${filterParams}" />
41                <div class="dialog">
42                    <table>
43                        <tbody>
44
45                            <tr class="prop">
46                                <td valign="top" class="name">
47                                    <label for="max">Persons:</label>
48                                </td>
49                                <td valign="top" class="value">
50                                    <g:link action="exportPersonsTemplate">
51                                        Template
52                                    </g:link>
53                                    /
54                                    <g:link action="importPersons">
55                                        Import
56                                    </g:link>
57                                </td>
58                            </tr>
59
60                        </tbody>
61                    </table>
62                </div>
63            </g:form>
64        </div>
65
66        <br />
67
68        <g:if test="${personList.size() > 0}">
69            <div class="list">
70                <table>
71                <thead>
72                    <tr>
73                        <g:sortableColumn property="id" title="Id" params="${filterParams}" />
74                        <g:sortableColumn property="loginName" title="Login Name" params="${filterParams}" />
75                        <g:sortableColumn property="firstName" title="First Name" params="${filterParams}" />
76                        <g:sortableColumn property="lastName" title="Last Name" params="${filterParams}" />
77                        <g:sortableColumn property="isActive" title="Active" params="${filterParams}" />
78                        <th></th>
79                    </tr>
80                </thead>
81                <tbody>
82                <g:each in="${personList}" status="i" var="person">
83                    <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}">
84
85                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
86                            ${person.id}
87                        </td>
88
89                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
90                            ${person.loginName?.encodeAsHTML()}
91                        </td>
92
93                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
94                            ${person.firstName?.encodeAsHTML()}
95                        </td>
96
97                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
98                            ${person.lastName?.encodeAsHTML()}
99                        </td>
100
101                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
102                            ${person.isActive?.encodeAsHTML()}
103                        </td>
104
105                        <td class="notClickable">
106                            <g:link action="show" id="${person.id}">
107                                <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
108                            </g:link>
109                        </td>
110                    </tr>
111                </g:each>
112                </tbody>
113                </table>
114            </div>
115        </g:if>
116
117        <div class="paginateButtons">
118            <g:paginate total="${personTotal}" params="${filterParams}" />
119        </div>
120
121        <filterpane:filterPane domainBean="Person"
122                               title="Search"
123                               action="list"
124                               class="overlayPane"
125                               excludeProperties="password, sessionTimeout"
126                               associatedProperties="authorities.authority, personGroups.name"
127                               filterPropertyValues="${['personGroups.name':[values: associatedPropertyValues.personGroupList],
128                                                        'authorities.authority':[values: associatedPropertyValues.authorityList]]}" />
129
130
131    </div> <!-- end body div -->
132</body>
Note: See TracBrowser for help on using the repository browser.