Changeset 438

Show
Ignore:
Timestamp:
19-05-10 14:37:00 (4 years ago)
Author:
duh
Message:

- term editor initial version

Location:
trunk
Files:
4 modified

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() {