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

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

Only show table headers in search views if there actually are results.

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