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

Last change on this file since 589 was 498, checked in by gav, 15 years ago

Improved table row onclick implementation for all detailed list and search views.

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: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'}"/>
85
86                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
87                            ${person.id}
88                        </td>
89
90                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
91                            ${person.loginName?.encodeAsHTML()}
92                        </td>
93
94                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
95                            ${person.firstName?.encodeAsHTML()}
96                        </td>
97
98                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
99                            ${person.lastName?.encodeAsHTML()}
100                        </td>
101
102                        <td onclick='window.location = "${request.getContextPath()}/person/show/${person.id}"'>
103                            ${person.isActive?.encodeAsHTML()}
104                        </td>
105
106                        <td class="notClickable">
107                            <g:link action="show" id="${person.id}">
108                                <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
109                            </g:link>
110                        </td>
111                    </tr>
112                </g:each>
113                </tbody>
114                </table>
115            </div>
116        </g:if>
117
118        <div class="paginateButtons">
119            <g:paginate total="${personTotal}" params="${filterParams}" />
120        </div>
121
122        <filterpane:filterPane domainBean="Person"
123                                title="Search"
124                                action="list"
125                                class="overlayPane"
126                                excludeProperties="password, sessionTimeout"
127                                associatedProperties="authorities.authority, personGroups.name"
128                                    filterPropertyValues="${['personGroups.name':[values:PersonGroup.list()],
129                                                                                'authorities.authority':[values:Authority.list()]]}" />
130
131
132    </div> <!-- end body div -->
133</body>
Note: See TracBrowser for help on using the repository browser.