Changeset 953 for trunk/grails-app


Ignore:
Timestamp:
Jun 29, 2011, 3:30:24 PM (14 years ago)
Author:
gav
Message:

Add filterpane search to CostCode? list view.

Location:
trunk/grails-app
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/CostCodeDetailedController.groovy

    r633 r953  
    33@Secured(['ROLE_AppAdmin', 'ROLE_Manager'])
    44class CostCodeDetailedController extends BaseController {
    5    
     5
     6    def filterService
     7
    68    def index = { redirect(action:list,params:params) }
    79
     
    1113    def list = {
    1214        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
    13         [ costCodeInstanceList: CostCode.list( params ), costCodeInstanceTotal: CostCode.count() ]
     15
     16        if(!params.filter) {
     17            return [costCodeInstanceList: CostCode.list(params),
     18                    costCodeInstanceTotal: CostCode.count(),
     19                    filterParams: params]
     20        }
     21
     22        // filterPane:
     23        return[ costCodeInstanceList: filterService.filter( params, CostCode ),
     24                costCodeInstanceTotal: filterService.count( params, CostCode ),
     25                filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params),
     26                params:params ]
    1427    }
    1528
  • trunk/grails-app/views/costCodeDetailed/list.gsp

    r836 r953  
    1 
    2 
    31<html>
    42    <head>
     
    64        <meta name="layout" content="main" />
    75        <title>CostCode List</title>
     6        <filterpane:includes />
    87        <nav:resources override="true"/>
    98    </head>
     
    1413        <div class="body">
    1514            <g:render template="/shared/messages" />
    16             <div class="list">
    17                 <table>
    18                     <thead>
     15
     16            <filterpane:currentCriteria domainBean="CostCode"
     17                                        action="list"
     18                                        dateFormat="EEE, dd-MMM-yyyy"
     19                                        removeImgDir="images"
     20                                        removeImgFile="bullet_delete.png"
     21                                        title="Search"/>
     22
     23            <div class="paginateButtons">
     24                Results: ${costCodeInstanceList.size()} / ${costCodeInstanceTotal}
     25                <span class="searchButtons">
     26                    <filterpane:filterButton text="Search" appliedText="Change Search" />
     27                </span>
     28            </div>
     29
     30            <br />
     31
     32            <g:if test="${costCodeInstanceList.size() > 0}">
     33
     34                <div class="list">
     35                    <table>
     36                        <thead>
    1937                        <tr>
    20                        
    21                                 <g:sortableColumn property="id" title="Id" />
    22                        
    23                                 <g:sortableColumn property="name" title="Name" />
    24                        
    25                             <g:sortableColumn property="purchasingGroup" title="Group" />
    26                        
    27                                 <g:sortableColumn property="description" title="Description" />
    28                        
    29                                 <g:sortableColumn property="isActive" title="Is Active" />
     38
     39                            <g:sortableColumn property="id" title="Id" params="${filterParams}" />
     40
     41                            <g:sortableColumn property="name" title="Name" params="${filterParams}" />
     42
     43                            <g:sortableColumn property="purchasingGroup" title="Group" params="${filterParams}" />
     44
     45                            <g:sortableColumn property="description" title="Description" params="${filterParams}" />
     46
     47                            <g:sortableColumn property="isActive" title="Is Active" params="${filterParams}" />
    3048
    3149                            <th></th>
    32                        
     50
    3351                        </tr>
    34                     </thead>
    35                     <tbody>
    36                     <g:each in="${costCodeInstanceList}" status="i" var="costCodeInstance">
    37                         <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}">
    38                        
    39                             <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
    40                                 ${fieldValue(bean:costCodeInstance, field:'id')}
    41                             </td>
    42                        
    43                             <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
    44                                 ${fieldValue(bean:costCodeInstance, field:'name')}
    45                             </td>
    46                        
    47                             <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
    48                                 ${fieldValue(bean:costCodeInstance, field:'purchasingGroup')}
    49                             </td>
    50                        
    51                             <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
    52                                 ${fieldValue(bean:costCodeInstance, field:'description')}
    53                             </td>
    54                        
    55                             <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
    56                                 ${fieldValue(bean:costCodeInstance, field:'isActive')}
    57                             </td>
     52                        </thead>
     53                        <tbody>
     54                        <g:each in="${costCodeInstanceList}" status="i" var="costCodeInstance">
     55                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}">
    5856
    59                             <td class="notClickable">
    60                                 <g:link action="show" id="${costCodeInstance.id}">
    61                                     <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
    62                                 </g:link>
    63                             </td>
    64                        
    65                         </tr>
    66                     </g:each>
    67                     </tbody>
    68                 </table>
     57                                <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
     58                                    ${fieldValue(bean:costCodeInstance, field:'id')}
     59                                </td>
     60
     61                                <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
     62                                    ${fieldValue(bean:costCodeInstance, field:'name')}
     63                                </td>
     64
     65                                <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
     66                                    ${fieldValue(bean:costCodeInstance, field:'purchasingGroup')}
     67                                </td>
     68
     69                                <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
     70                                    ${fieldValue(bean:costCodeInstance, field:'description')}
     71                                </td>
     72
     73                                <td onclick='window.location = "${request.getContextPath()}/costCodeDetailed/show/${costCodeInstance.id}"'>
     74                                    ${fieldValue(bean:costCodeInstance, field:'isActive')}
     75                                </td>
     76
     77                                <td class="notClickable">
     78                                    <g:link action="show" id="${costCodeInstance.id}">
     79                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" />
     80                                    </g:link>
     81                                </td>
     82
     83                            </tr>
     84                        </g:each>
     85                        </tbody>
     86                    </table>
     87                </div>
     88            </g:if>
     89
     90            <div class="paginateButtons">
     91                <g:paginate total="${costCodeInstanceTotal}" params="${filterParams}" />
    6992            </div>
    70             <div class="paginateButtons">
    71                 <g:paginate total="${costCodeInstanceTotal}" />
    72             </div>
     93
     94            <filterpane:filterPane domainBean="CostCode"
     95                                   title="Search"
     96                                   action="list"
     97                                   class="overlayPane"
     98                                   associatedProperties="purchasingGroup.name"
     99                                   filterPropertyValues="${['purchasingGroup.name':[values:PurchasingGroup.findAllByIsActive(true)]]}" />
     100
    73101        </div>
    74102    </body>
Note: See TracChangeset for help on using the changeset viewer.