Ignore:
Timestamp:
Jun 15, 2010, 5:45:16 PM (12 years ago)
Author:
duh
Message:
  • upon adding a term the termEditorController now also adds the ontology when the ontologies doest not exist
  • extended the Ontology domain class with functionality to instantiate the Ontology class using the versioned ncboId
  • added 'addDummy' support to termElements and templateElements which caused the study and subject page not to work properly on an empty database (these fields were not rendered so exceptions were thrown).
  • this fixed bug # 107 in half... now the species select (ONTOLOGYTERM) somehow does not show the species in the database, still needs to be fixed
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/taglib/dbnp/studycapturing/WizardTagLib.groovy

    r559 r565  
    519519
    520520        /**
    521          * File form element
    522          * @param Map attributes
    523          * @param Closure help content
    524          */
    525         def fileFieldElement = { attrs, body ->
    526                 // render term element
    527                 baseElement.call(
    528                         'fileField',
    529                         attrs,
    530                         body
    531                 )
    532         }
    533 
    534         def fileField = { attrs ->
    535             /*
    536             out << '<input type="file" name="' + attrs.name + '"/>'
    537             if( attrs.value ) {
    538                 out << '<a href="' + resource(dir: '') + '/file/get/' + attrs.value + '" class="isExample">Now contains: ' + attrs.value + '</a>'
    539             }
    540             */
    541 
    542             out << '<div id="upload_button_' + attrs.name + '" class="upload_button">Upload</div>';
    543             out << '<input type="hidden" name="' + attrs.name + '" id="' + attrs.name + '" value="' + attrs.value + '">';
    544             out << '<div id="' + attrs.name + 'Example" class="upload_info"></div>';
    545             out << '<script type="text/javascript">';
    546             out << '  $(document).ready( function() { ';
    547             out << '    var filename = "' + attrs.value + '";';
    548             out << '    fileUploadField( "' + attrs.name + '" );';
    549             out << '    if( filename != "" ) {';
    550             out << '      $("#' + attrs.name + 'Example").html("Current file: " + createFileHTML( filename ) )';
    551             out << '    }';
    552             out << '  } );';
    553             out << "</script>\n";
    554         }
    555 
    556         /**
    557521         * Term select element
    558522         * @param Map attributes
     
    588552                                // iterate through set
    589553                                attrs.ontologies.each() { ontology ->
    590                                         ontologyList += ontology.ncboId + ","
    591 
    592                                         Term.findAllByOntology(ontology).each() {
    593                                                 from[ from.size() ] = it.name
     554                                        if (ontology) {
     555                                                ontologyList += ontology.ncboId + ","
     556
     557                                                Term.findAllByOntology(ontology).each() {
     558                                                        from[ from.size() ] = it.name
     559                                                }
     560
     561                                                // strip trailing comma
     562                                                attrs.ontologies = ontologyList[0..-2]
    594563                                        }
    595 
    596                                         // strip trailing comma
    597                                         attrs.ontologies = ontologyList[0..-2]
    598564                                }
    599565                        }
     
    601567                        // sort alphabetically
    602568                        from.sort()
     569
     570                        // add a dummy field?
     571                        if (attrs.remove('addDummy')) {
     572                                from.add(0,'')
     573                        }
    603574
    604575                        // define 'from'
     
    722693
    723694                // fetch templates
    724                 if (attrs.remove('addDummy')) {
    725                         attrs.from = ['']
    726                         if (entity && entity instanceof Class) {
    727                                 Template.findAllByEntity(entity).each() {
    728                                         attrs.from[attrs.from.size()] = it
    729                                 }
    730                         }
    731                 } else {
    732                         attrs.from = (entity) ? Template.findAllByEntity(entity) : Template.findAll()
    733                 }
     695                attrs.from = (entity) ? Template.findAllByEntity(entity) : Template.findAll()
    734696
    735697                // got a name?
     
    739701
    740702                // got result?
    741                 if (attrs.from.size() > 0) {
     703                if (attrs.from.size() > 0 || attrs.get('addDummy')) {
    742704                        // transform all values into strings
    743705                        def from = []
     
    746708                        // sort alphabetically
    747709                        from.sort()
     710
     711                        // add a dummy field?
     712                        if (attrs.remove('addDummy')) {
     713                                from.add(0,'')
     714                        }
    748715
    749716                        // set attributes
     
    758725                        return false
    759726                }
     727        }
     728
     729
     730        /**
     731         * File form element
     732         * @param Map attributes
     733         * @param Closure help content
     734         */
     735        def fileFieldElement = { attrs, body ->
     736                // render term element
     737                baseElement.call(
     738                        'fileField',
     739                        attrs,
     740                        body
     741                )
     742        }
     743
     744        /**
     745         * file field.
     746         * @param attributes
     747         */
     748        def fileField = { attrs ->
     749                /*
     750                out << '<input type="file" name="' + attrs.name + '"/>'
     751                if( attrs.value ) {
     752                        out << '<a href="' + resource(dir: '') + '/file/get/' + attrs.value + '" class="isExample">Now contains: ' + attrs.value + '</a>'
     753                }
     754                */
     755
     756                out << '<div id="upload_button_' + attrs.name + '" class="upload_button">Upload</div>';
     757                out << '<input type="hidden" name="' + attrs.name + '" id="' + attrs.name + '" value="' + attrs.value + '">';
     758                out << '<div id="' + attrs.name + 'Example" class="upload_info"></div>';
     759                out << '<script type="text/javascript">';
     760                out << '  $(document).ready( function() { ';
     761                out << '    var filename = "' + attrs.value + '";';
     762                out << '    fileUploadField( "' + attrs.name + '" );';
     763                out << '    if( filename != "" ) {';
     764                out << '      $("#' + attrs.name + 'Example").html("Current file: " + createFileHTML( filename ) )';
     765                out << '    }';
     766                out << '  } );';
     767                out << "</script>\n";
    760768        }
    761769
     
    849857                def template    = (entity && entity instanceof TemplateEntity) ? entity.template : null
    850858                def inputElement= null
     859                def addDummy    = (attrs.get('addDummy')) ? true : false
    851860
    852861                // got a template?
     
    862871                                        out << '<div class="' + attrs.get('class') + '">'
    863872                                }
     873
     874println ".SHOWING "+it.type.toString()
     875println it.ontologies
    864876
    865877                                switch (it.type.toString()) {
     
    903915                                                                name            : prependName + it.escapedName(),
    904916                                                                value           : fieldValue.toString(),
    905                                                                 ontologies      : it.ontologies
     917                                                                ontologies      : it.ontologies,
     918                                                                addDummy        : addDummy
    906919                                                        ){helpText}
    907920                                                } else {
     
    909922                                                                description     : ucName,
    910923                                                                name            : prependName + it.escapedName(),
    911                                                                 value           : fieldValue.toString()
     924                                                                value           : fieldValue.toString(),
     925                                                                addDummy        : addDummy
    912926                                                        ){helpText}
    913927                                                }
     
    10001014
    10011015        def PublicationSelectElement = { attrs, body ->
    1002 
    10031016                attrs.description = 'Publications';
    10041017                // render list with publications currently available
Note: See TracChangeset for help on using the changeset viewer.