source: trunk/src/templates/scaffolding/list.gsp @ 70

Last change on this file since 70 was 70, checked in by robert@…, 8 years ago
  • Installed templates (in order to extend session lifetime to 2 hours)
  • Implemented background worker to do work outside the HTTP request
File size: 3.6 KB
Line 
1<% import grails.persistence.Event %>
2<%=packageName%>
3<html>
4    <head>
5        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6        <meta name="layout" content="main" />
7        <g:set var="entityName" value="\${message(code: '${domainClass.propertyName}.label', default: '${className}')}" />
8        <title><g:message code="default.list.label" args="[entityName]" /></title>
9    </head>
10    <body>
11        <div class="nav">
12            <span class="menuButton"><a class="home" href="\${createLink(uri: '/')}"><g:message code="default.home.label"/></a></span>
13            <span class="menuButton"><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></span>
14        </div>
15        <div class="body">
16            <h1><g:message code="default.list.label" args="[entityName]" /></h1>
17            <g:if test="\${flash.message}">
18            <div class="message">\${flash.message}</div>
19            </g:if>
20            <div class="list">
21                <table>
22                    <thead>
23                        <tr>
24                        <%  excludedProps = Event.allEvents.toList() << 'version'
25                            allowedNames = domainClass.persistentProperties*.name << 'id' << 'dateCreated' << 'lastUpdated'
26                            props = domainClass.properties.findAll { allowedNames.contains(it.name) && !excludedProps.contains(it.name) && !Collection.isAssignableFrom(it.type) }
27                            Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
28                            props.eachWithIndex { p, i ->
29                                if (i < 6) {
30                                    if (p.isAssociation()) { %>
31                            <th><g:message code="${domainClass.propertyName}.${p.name}.label" default="${p.naturalName}" /></th>
32                        <%      } else { %>
33                            <g:sortableColumn property="${p.name}" title="\${message(code: '${domainClass.propertyName}.${p.name}.label', default: '${p.naturalName}')}" />
34                        <%  }   }   } %>
35                        </tr>
36                    </thead>
37                    <tbody>
38                    <g:each in="\${${propertyName}List}" status="i" var="${propertyName}">
39                        <tr class="\${(i % 2) == 0 ? 'odd' : 'even'}">
40                        <%  props.eachWithIndex { p, i ->
41                                if (i == 0) { %>
42                            <td><g:link action="show" id="\${${propertyName}.id}">\${fieldValue(bean: ${propertyName}, field: "${p.name}")}</g:link></td>
43                        <%      } else if (i < 6) {
44                                    if (p.type == Boolean.class || p.type == boolean.class) { %>
45                            <td><g:formatBoolean boolean="\${${propertyName}.${p.name}}" /></td>
46                        <%          } else if (p.type == Date.class || p.type == java.sql.Date.class || p.type == java.sql.Time.class || p.type == Calendar.class) { %>
47                            <td><g:formatDate date="\${${propertyName}.${p.name}}" /></td>
48                        <%          } else { %>
49                            <td>\${fieldValue(bean: ${propertyName}, field: "${p.name}")}</td>
50                        <%  }   }   } %>
51                        </tr>
52                    </g:each>
53                    </tbody>
54                </table>
55            </div>
56            <div class="paginateButtons">
57                <g:paginate total="\${${propertyName}Total}" />
58            </div>
59        </div>
60    </body>
61</html>
Note: See TracBrowser for help on using the repository browser.