root/trunk/grails-app/controllers/generic/AjaxController.groovy @ 2148

Revision 2148, 2.0 KB (checked in by work@…, 2 years ago)

added more ajax calls, and improved first study compare wizard page

Line 
1/**
2 * AjaxController Controller
3 *
4 * A collection of application wide Ajax resources
5 *
6 * @author  Jeroen Wesbeek work@osx.eu
7 * @since       20120123
8 *
9 * Revision information:
10 * $Rev$
11 * $Author$
12 * $Date$
13 */
14package generic
15
16import dbnp.studycapturing.*
17import grails.converters.JSON
18
19class AjaxController {
20        def authenticationService
21
22        /**
23         * Get all unique species (for accessible studies)
24         */
25        def uniqueSpecies = {
26                def result = Subject.executeQuery("SELECT DISTINCT a.species FROM Subject a")
27
28                // set output header to json
29                response.contentType = 'application/json'
30
31                // render result
32                if (params.callback) {
33                        render "${params.callback}(${result as JSON})"
34                } else {
35                        render result as JSON
36                }
37        }
38
39        def uniqueEventTemplateNames = {
40                def user        = authenticationService.getLoggedInUser()
41                def studies     = Study.giveReadableStudies(user)
42                def uniqueEventTemplates = []
43
44                // iterate through studies
45                studies.each { study ->
46                        study.events.each { event ->
47                                if (!uniqueEventTemplates.contains(event.template)) {
48                                        uniqueEventTemplates.add(event.template)
49                                }
50                        }
51                }
52
53                def result      = uniqueEventTemplates
54
55                // set output header to json
56                response.contentType = 'application/json'
57
58                // render result
59                if (params.callback) {
60                        render "${params.callback}(${result as JSON})"
61                } else {
62                        render result as JSON
63                }
64        }
65
66        def uniqueSamplingEventTemplateNames = {
67                def user        = authenticationService.getLoggedInUser()
68                def studies     = Study.giveReadableStudies(user)
69                def uniqueSamplingEventTemplates = []
70
71                // iterate through studies
72                studies.each { study ->
73                        study.samplingEvents.each { event ->
74                                if (!uniqueSamplingEventTemplates.contains(event.template)) {
75                                        uniqueSamplingEventTemplates.add(event.template)
76                                }
77                        }
78                }
79
80                def result      = uniqueSamplingEventTemplates
81
82                // set output header to json
83                response.contentType = 'application/json'
84
85                // render result
86                if (params.callback) {
87                        render "${params.callback}(${result as JSON})"
88                } else {
89                        render result as JSON
90                }
91        }
92}
Note: See TracBrowser for help on using the browser.