Changeset 957 for trunk


Ignore:
Timestamp:
06/30/11 07:55:55 (7 years ago)
Author:
gav
Message:

Add filterpane search to InventoryStore? list view.

Location:
trunk/grails-app
Files:
2 edited

Legend:

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

    r913 r957  
    33@Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_InventoryManager']) 
    44class InventoryStoreDetailedController extends BaseController { 
    5      
     5 
     6    def filterService 
     7 
    68    @Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_InventoryManager', 'ROLE_InventoryUser']) 
    79    def index = { redirect(action:list,params:params) } 
     
    1214    def list = { 
    1315        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100) 
    14         [ inventoryStoreInstanceList: InventoryStore.list( params ), inventoryStoreInstanceTotal: InventoryStore.count() ] 
     16        def associatedPropertyMax = 1000 
     17        def associatedPropertyValues = [:] 
     18        def siteNameQuery = 'select distinct a.name from Site a where a.isActive = ? order by a.name' 
     19        associatedPropertyValues.siteList = Site.executeQuery(siteNameQuery, [true], [max:associatedPropertyMax]) 
     20 
     21        if(!params.filter) { 
     22            return [inventoryStoreInstanceList: InventoryStore.list(params), 
     23                    inventoryStoreInstanceTotal: InventoryStore.count(), 
     24                    associatedPropertyValues: associatedPropertyValues, 
     25                    filterParams: params] 
     26        } 
     27 
     28        // filterPane: 
     29        return[ inventoryStoreInstanceList: filterService.filter( params, InventoryStore ), 
     30                inventoryStoreInstanceTotal: filterService.count( params, InventoryStore ), 
     31                associatedPropertyValues: associatedPropertyValues, 
     32                filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params), 
     33                params:params ] 
    1534    } 
    1635 
     
    7392                def version = params.version.toLong() 
    7493                if(inventoryStoreInstance.version > version) { 
    75                      
     94 
    7695                    inventoryStoreInstance.errors.rejectValue("version", "default.optimistic.locking.failure") 
    7796                    render(view:'edit',model:[inventoryStoreInstance:inventoryStoreInstance]) 
  • trunk/grails-app/views/inventoryStoreDetailed/list.gsp

    r836 r957  
    1  
    2  
    31<html> 
    42    <head> 
     
    64        <meta name="layout" content="main" /> 
    75        <title>InventoryStore List</title> 
     6        <filterpane:includes /> 
    87        <nav:resources override="true"/> 
    98    </head> 
     
    1312        </div> 
    1413        <div class="body"> 
    15             <g:if test="${flash.message}"> 
    16             <div class="message">${flash.message}</div> 
    17             </g:if> 
    18             <div class="list"> 
    19                 <table> 
    20                     <thead> 
     14            <g:render template="/shared/messages" /> 
     15 
     16            <filterpane:currentCriteria domainBean="InventoryStore" 
     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: ${inventoryStoreInstanceList.size()} / ${inventoryStoreInstanceTotal} 
     25                <span class="searchButtons"> 
     26                    <filterpane:filterButton text="Search" appliedText="Change Search" /> 
     27                </span> 
     28            </div> 
     29 
     30            <br /> 
     31 
     32            <g:if test="${inventoryStoreInstanceList.size() > 0}"> 
     33                <div class="list"> 
     34                    <table> 
     35                        <thead> 
    2136                        <tr> 
    22                          
    23                             <g:sortableColumn property="id" title="Id" /> 
    2437 
    25                             <g:sortableColumn property="name" title="Name" /> 
     38                            <g:sortableColumn property="id" title="Id" params="${filterParams}" /> 
    2639 
    27                             <g:sortableColumn property="description" title="Description" /> 
     40                            <g:sortableColumn property="name" title="Name" params="${filterParams}" /> 
    2841 
    29                             <g:sortableColumn property="isActive" title="Is Active" /> 
     42                            <g:sortableColumn property="description" title="Description" params="${filterParams}" /> 
    3043 
    31                             <th>Site</th> 
     44                            <g:sortableColumn property="isActive" title="Is Active" params="${filterParams}" /> 
     45 
     46                            <g:sortableColumn property="site" title="Site" params="${filterParams}" /> 
    3247 
    3348                            <th></th> 
    34                              
     49 
    3550                        </tr> 
    36                     </thead> 
    37                     <tbody> 
    38                     <g:each in="${inventoryStoreInstanceList}" status="i" var="inventoryStoreInstance"> 
    39                         <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"> 
    40                          
    41                             <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
    42                                 ${fieldValue(bean:inventoryStoreInstance, field:'id')} 
    43                             </td> 
    44                          
    45                             <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
    46                                 ${fieldValue(bean:inventoryStoreInstance, field:'name')} 
    47                             </td> 
    48                          
    49                             <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
    50                                 ${fieldValue(bean:inventoryStoreInstance, field:'description')} 
    51                             </td> 
    52                          
    53                             <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
    54                                 ${fieldValue(bean:inventoryStoreInstance, field:'isActive')} 
    55                             </td> 
    56                          
    57                             <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
    58                                 ${fieldValue(bean:inventoryStoreInstance, field:'site')} 
    59                             </td> 
     51                        </thead> 
     52                        <tbody> 
     53                        <g:each in="${inventoryStoreInstanceList}" status="i" var="inventoryStoreInstance"> 
     54                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}"> 
    6055 
    61                             <td class="notClickable"> 
    62                                 <g:link action="show" id="${inventoryStoreInstance.id}"> 
    63                                     <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" /> 
    64                                 </g:link> 
    65                             </td> 
    66                          
    67                         </tr> 
    68                     </g:each> 
    69                     </tbody> 
    70                 </table> 
     56                                <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
     57                                    ${fieldValue(bean:inventoryStoreInstance, field:'id')} 
     58                                </td> 
     59 
     60                                <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
     61                                    ${fieldValue(bean:inventoryStoreInstance, field:'name')} 
     62                                </td> 
     63 
     64                                <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
     65                                    ${fieldValue(bean:inventoryStoreInstance, field:'description')} 
     66                                </td> 
     67 
     68                                <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
     69                                    ${fieldValue(bean:inventoryStoreInstance, field:'isActive')} 
     70                                </td> 
     71 
     72                                <td onclick='window.location = "${request.getContextPath()}/inventoryStoreDetailed/show/${inventoryStoreInstance.id}"'> 
     73                                    ${fieldValue(bean:inventoryStoreInstance, field:'site')} 
     74                                </td> 
     75 
     76                                <td class="notClickable"> 
     77                                    <g:link action="show" id="${inventoryStoreInstance.id}"> 
     78                                        <img  src="${resource(dir:'images/skin',file:'database_go.png')}" alt="Show" /> 
     79                                    </g:link> 
     80                                </td> 
     81 
     82                            </tr> 
     83                        </g:each> 
     84                        </tbody> 
     85                    </table> 
     86                </div> 
     87            </g:if> 
     88 
     89            <div class="paginateButtons"> 
     90                <g:paginate total="${inventoryStoreInstanceTotal}" params="${filterParams}" /> 
    7191            </div> 
    72             <div class="paginateButtons"> 
    73                 <g:paginate total="${inventoryStoreInstanceTotal}" /> 
    74             </div> 
     92 
     93            <filterpane:filterPane domainBean="InventoryStore" 
     94                                   title="Search" 
     95                                   action="list" 
     96                                   class="overlayPane" 
     97                                   associatedProperties="site.name" 
     98                                   filterPropertyValues="${['site.name':[values: associatedPropertyValues.siteList]]}" /> 
    7599        </div> 
    76100    </body> 
Note: See TracChangeset for help on using the changeset viewer.