Ignore:
Timestamp:
Jan 12, 2010, 1:09:03 PM (14 years ago)
Author:
gav
Message:

Improve bulk data creation batch times and use dynamic allocation of next available id.
Sort admin view controller classes by name.

File:
1 edited

Legend:

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

    r253 r260  
    2222    }
    2323
     24    def setTaskSearchParamsMax = {
     25        if(params.newMax.isInteger())
     26            def i = params.newMax.toInteger()
     27            if(params.newMax.toInteger() > 0)
     28        session.taskSearchParamsMax = params.newMax
     29        params.max = params.newMax
     30        forward(action: 'search', params: params)
     31    }
     32
    2433    def search = {
    25         params.max = Math.min( params.max ? params.max.toInteger() : 10,  100 )
     34
     35        if(session.taskSearchParamsMax)
     36            params.max = session.taskSearchParamsMax
     37
     38        // TaskSearchService protects itself but filterPane does not.
     39        params.max = Math.min( params.max ? params.max.toInteger() : 10,  99999 )
     40
     41        def taskInstanceList = []
     42        def taskInstanceTotal
     43        def filterParams = [:]
     44        def personInstance = personService.currentUser
    2645
    2746        // Quick Search:
    2847        if(!FilterUtils.isFilterApplied(params)) {
    29             def taskInstanceList = []
    30             def personInstance = personService.currentUser
    3148
    3249            if(params.quickSearch == "searchMyTodays") {
     
    5269                params.quickSearch = "searchTodays"
    5370            }
    54             return[taskInstanceList: taskInstanceList, taskInstanceTotal: taskInstanceList.totalCount, filterParams: params]
    55         }
    56         // filterPane:
    57         return[ taskInstanceList: filterService.filter( params, Task ),
    58             taskInstanceTotal: filterService.count( params, Task ),
    59             filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params),
    60             params:params ]
    61     }
     71
     72            taskInstanceTotal = taskInstanceList.totalCount
     73            filterParams.quickSearch = params.quickSearch
     74        }
     75        else {
     76            // filterPane:
     77            taskInstanceList = filterService.filter( params, Task )
     78            taskInstanceTotal = filterService.count( params, Task )
     79            filterParams = com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params)
     80        }
     81
     82        // export plugin:
     83        if(params?.format && params.format != "html") {
     84
     85            def dateFmt = { date ->
     86                formatDate(format: "EEE, dd-MMM-yyyy", date: date)
     87            }
     88
     89            String title
     90            if(params.quickSearch)
     91                title = "${params.quickSearch} tasks."
     92            else
     93                title = "Filtered tasks."
     94
     95            response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
     96            response.setHeader("Content-disposition", "attachment; filename=tasks.${params.extension}")
     97            List fields = ["id", "targetStartDate", "description", "leadPerson", "taskPriority", "taskStatus"]
     98            Map labels = ["id": "ID", "targetStartDate": "Target Start Date", "description": "Description",
     99                                    "leadPerson": "Lead Person", "taskPriority": "Task Priority", "taskStatus": "Task Status"]
     100            Map formatters = [ targetStartDate: dateFmt]
     101            Map parameters = [title: title, separator: ","]
     102
     103            exportService.export(params.format, response.outputStream, taskInstanceList, fields, labels, formatters, parameters)
     104        }
     105
     106        // Add some basic params to filterParams.
     107        filterParams.max = params.max
     108        filterParams.offset = params.offset?.toInteger() ?: 0
     109        filterParams.sort = params.sort ?: "id"
     110        filterParams.order = params.order ?: "desc"
     111
     112        return[ taskInstanceList: taskInstanceList,
     113                taskInstanceTotal: taskInstanceTotal,
     114                filterParams: filterParams ]
     115
     116    } // end search()
    62117
    63118    def searchCalendar = {
     
    128183            // export plugin:
    129184            if(params?.format && params.format != "html") {
     185
     186                def dateFmt = { date ->
     187                    formatDate(format: "EEE, dd-MMM-yyyy", date: date)
     188                }
    130189                response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
    131190                response.setHeader("Content-disposition", "attachment; filename=tasks.${params.extension}")
     
    133192                Map labels = ["id": "ID", "targetStartDate": "Target Start Date", "description": "Description",
    134193                                        "leadPerson": "Lead Person", "taskStatus": "Task Status", "taskType": "Task Type"]
    135                 Map formatters = [:]
     194                Map formatters = [ targetStartDate: dateFmt]
    136195                String title = "${params.quickSearch} tasks in the last week."
    137                 Map parameters = [title: title]
     196                Map parameters = [title: title, separator: ","]
    138197
    139198                exportService.export(params.format, response.outputStream, taskInstanceList, fields, labels, formatters, parameters)
Note: See TracChangeset for help on using the changeset viewer.