Changeset 438 for trunk/grails-app
- Timestamp:
- May 19, 2010, 2:37:00 PM (12 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/studycapturing/TermEditorController.groovy
r431 r438 1 1 /** 2 * TermEditorController Control er2 * TermEditorController Controller 3 3 * 4 4 * Webflow driven term editor … … 14 14 */ 15 15 package dbnp.studycapturing 16 17 import dbnp.data.Term 18 import dbnp.data.Ontology 16 19 17 20 class TermEditorController { … … 36 39 37 40 if (params.ontologies) { 38 flow.ontologies = [] 41 flow.ontologies = params.ontologies 42 flow.ontologiesList = [] 39 43 params.ontologies.split(/\,/).each() { ncboId -> 40 44 // trim the id … … 42 46 43 47 // and add to the flow scope 44 flow.ontologies [ flow.ontologies.size() ] = ncboId48 flow.ontologiesList[ flow.ontologies.size() ] = ncboId 45 49 } 46 50 … … 58 62 onRender { 59 63 println "renderderender!" 64 render('henkie') 60 65 } 61 on("next").to "start" 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" 62 100 } 63 101 } -
trunk/grails-app/views/termEditor/pages/terms.gsp
r436 r438 25 25 <body> 26 26 27 hoi, dit is <b>http://localhost:8080/gscf/termEditor</b> en ik heb deze ontology NCBO id's meegekregen: 27 <g:form action="pages" name="wizardForm" id="wizardForm"> 28 <g:textField name="term" rel="ontology-${ontologies}" /> 29 <g:submitButton name="add" value="go go goooooo!" /> 30 </g:form> 28 31 29 <ul> 30 <g:if test="${ontologies}"> 31 <g:each in="${ontologies}"> 32 <li>${it}</li> 33 </g:each> 34 </g:if> 35 </ul> 32 ${errors} 36 33 37 Deze wizard moet dus: 38 <ul> 39 <li>de mogelijkheid bieden om bovengenoemde ontologies toe te voegen als ze nog niet in ons datamodel bestaan (@see Ontology domain class)</li> 40 <li>de mogelijkheid bieden terms toe te voegen uit boven genoemde ontologies (zie ook wizard:ontologyElement en ontology-chooser.js)</li> 41 <li>na sluiten van de popup (zie wizard subject page): 42 <ul> 43 <li>óf de select dynamisch te updaten met toegevoegde velden (mooi maar complex)</li> 44 <li>óf de pagina te 'refreshen' --> dit is momenteel geïmplementeerd in de 'create study' wizard</li> 45 </ul> 46 </li> 47 </ul> 48 49 Overige handige info: 50 <ul> 51 <li><a href="/gscf/js/SelectAddMore.js">SelectAddMore.js</a></li> 52 <li><a href="/gscf/js/wizard.js">wizard.js</a></li> 53 <li><a href="/gscf/js/ontology-chooser.js">ontology-chooser.js</a></li> 54 <li><a href="http://www.grails.org/WebFlow">Grails WebFlow</a></li> 55 <li><a href="http://bioportal.bioontology.org/ontologies/">ontologies</a></li> 56 </ul> 57 58 <i>NB: deze iFrame gebruikt een aantal HTML5 opties (seamless en sanbox)! Even goed naar kijken en op letten!</i><br/> 59 <i>NB2: wbt de study create wizard. Momenteel kan je in de 'subjects' pagina bij 'species' deze pagina lanceren in een iFrame 60 door 'add more...' te kiezen. Die is dynamisch toegevoegd door de volgende regel in wizard.js: <b>new SelectAddMore().init('term','/gscf/termEditor','ontology',function(scope) { refreshWebFlow(); });</b> 61 welke SelectAddMore(..) instantieert. Deze regel voegt aan alle select elementen met een <b>rel='term'</b> een 'add more..' option toe. Als die wordt aangeklikt 62 wordt een jQuery-ui dialog uitgevoerd die (in dit geval) '/gscf/termEditor'. Het select element heeft een 'ontology="..."' 63 parameter welke als GET parameter aan het iFrame wordt meegegeven. Zo 'weet' de term/ontology editor ook welke ontologien hij 64 precies moet aanbieden in de iframe. Zodra het iframe wordt gesloten wordt de javascript uitgevoerd. In dit geval dus 'refreshWebFlow();'. 65 Deze functie zorgt er voor dat de wizard webflow refresht waardoor de wijzigingen die je hebt gemaakt in de iframe ook zichtbaar 66 worden in de wizard.... 67 </i> 68 69 <!-- 70 Skype 'Chat with me' button 71 http://www.skype.com/go/skypebuttons 72 --> 73 <script type="text/javascript" src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js"></script> 74 <a href="skype:duhcati?chat"><img src="http://download.skype.com/share/skypebuttons/buttons/chat_blue_transparent_97x23.png" style="border: none;" width="97" height="23" alt="Chat with me" /></a> 75 34 <script type="text/javascript"> 35 $(document).ready(function() { 36 // initialize the ontology chooser 37 new OntologyChooser().init(); 38 }); 39 </script> 76 40 77 41 </body>
Note: See TracChangeset
for help on using the changeset viewer.