source: trunk/grails-app/controllers/dbnp/studycapturing/TermEditorController.groovy @ 438

Last change on this file since 438 was 438, checked in by duh, 11 years ago
  • term editor initial version
  • Property svn:keywords set to Date Author Rev
File size: 2.1 KB
Line 
1/**
2 * TermEditorController Controller
3 *
4 * Webflow driven term editor
5 *
6 * @author  Jeroen Wesbeek
7 * @since       20100420
8 * @package     studycapturing
9 *
10 * Revision information:
11 * $Rev: 438 $
12 * $Author: duh $
13 * $Date: 2010-05-19 12:37:00 +0000 (wo, 19 mei 2010) $
14 */
15package dbnp.studycapturing
16
17import dbnp.data.Term
18import dbnp.data.Ontology
19
20class TermEditorController {
21        /**
22         * index closure
23         */
24    def index = {
25                // got a ontology get parameter?
26                def ontologies = (params.ontologies) ? params.ontologies : null
27
28                // enter the flow!
29        redirect(action: 'pages', params:["ontologies":ontologies])
30    }
31
32        /**
33         * Webflow
34         */
35        def pagesFlow = {
36                // start the flow
37                onStart {
38                        println "start term / ontology editor flow"
39
40                        if (params.ontologies) {
41                                flow.ontologies         = params.ontologies
42                                flow.ontologiesList     = []
43                                params.ontologies.split(/\,/).each() { ncboId ->
44                                        // trim the id
45                                        ncboId.trim()
46
47                                        // and add to the flow scope
48                                        flow.ontologiesList[ flow.ontologies.size() ] = ncboId
49                                }
50
51                                /*** EXAMPLE OF HOW TO FETCH ONTOLOGY INSTANCES
52                                 * ontologies.each() {
53                                 *       println Ontology.findAllByNcboId( it )
54                                 * }
55                                 */
56                        }
57                }
58
59                // main term editor page
60                terms {
61                        render(view: "terms")
62                        onRender {
63                                println "renderderender!"
64                                render('henkie')
65                        }
66                        on("add") {
67                                println params
68                                def ontology = Ontology.findByNcboVersionedId( params.get('term-ontology_id') as int )
69
70                                // do we have an ontology?
71                                if (!ontology) {
72                                        // maak eerst deze ontology aan. Er zijn web services beschikbaar om
73                                        // de Ontology properties op te halen.... mag jij maken, leuk he!
74                                        println "neeeeee geen ontology!"
75                                        println "ik moet ff deze ontology aanmaken in onze database!"
76                                }
77
78                                // instantiate term with parameters
79                                def term = new Term(
80                                        name: params.get('term'),
81                                        ontology: ontology,
82                                        accession: params.get('term-concept_id')
83                                )
84
85                                // validate term
86                                if (term.validate()) {
87                                        println "jaaaa het was kei goed!"
88                                        term.save()
89                                        success()
90                                } else {
91                                        println "klopt voor geen meter!"
92                                        println "errors:"
93                                        term.errors.getAllErrors().each() {
94                                                println it
95                                        }
96                                        flash.errors = term.errors
97                                        error()
98                                }
99                        }.to "terms"
100                }
101        }
102}
Note: See TracBrowser for help on using the repository browser.