Changeset 438


Ignore:
Timestamp:
May 19, 2010, 2:37:00 PM (7 years ago)
Author:
duh
Message:
  • term editor initial version
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/studycapturing/TermEditorController.groovy

    r431 r438  
    11/**
    2  * TermEditorController Controler
     2 * TermEditorController Controller
    33 *
    44 * Webflow driven term editor
     
    1414 */
    1515package dbnp.studycapturing
     16
     17import dbnp.data.Term
     18import dbnp.data.Ontology
    1619
    1720class TermEditorController {
     
    3639
    3740                        if (params.ontologies) {
    38                                 flow.ontologies = []
     41                                flow.ontologies         = params.ontologies
     42                                flow.ontologiesList     = []
    3943                                params.ontologies.split(/\,/).each() { ncboId ->
    4044                                        // trim the id
     
    4246
    4347                                        // and add to the flow scope
    44                                         flow.ontologies[ flow.ontologies.size() ] = ncboId
     48                                        flow.ontologiesList[ flow.ontologies.size() ] = ncboId
    4549                                }
    4650
     
    5862                        onRender {
    5963                                println "renderderender!"
     64                                render('henkie')
    6065                        }
    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"
    62100                }
    63101        }
  • trunk/grails-app/views/termEditor/pages/terms.gsp

    r436 r438  
    2525 <body>
    2626
    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>
    2831
    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}
    3633
    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>
    7640
    7741 </body>
  • trunk/web-app/css/dialog.css

    r377 r438  
    88html>body #sortable li { height: 1.5em; line-height: 1.2em; }
    99.ui-state-highlight { height: 1.5em; line-height: 1.2em; }
     10
     11/* START :: ontology autocomplete */
     12.ui-autocomplete .ui-menu-item {
     13    font-size: 10px;
     14}
     15.ui-autocomplete .about {
     16    font-size: 8px;
     17    color: #006DBA;
     18}
     19.ui-autocomplete .from {
     20    font-size: 8px;
     21    color: #666;
     22}
     23/* END :: ontology autocomplete */
  • trunk/web-app/js/SelectAddMore.js

    r373 r438  
    108108                    position: position,
    109109                    buttons : {
    110                                 Ok  : function() { $(this).dialog('close'); }
     110                                Close  : function() { $(this).dialog('close'); }
    111111                              },
    112112                    close   : function() {
Note: See TracChangeset for help on using the changeset viewer.