Ignore:
Timestamp:
Jun 23, 2010, 3:51:12 PM (11 years ago)
Author:
duh
Message:
  • development commit
File:
1 edited

Legend:

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

    r585 r603  
    220220println ".rendering [" + inputElement + "] with name [" + attrs.get('name') + "] and value [" + ((attrs.value) ? attrs.get('value').toString() : "-") + "]"
    221221                // work variables
    222                 def internetExplorer = (request.getHeader("User-Agent") =~ /MSIE/)
    223222                def description = attrs.remove('description')
    224223                def addExampleElement = attrs.remove('addExampleElement')
     
    226225                def helpText = help().trim()
    227226
    228                 // got an ajax onchange action?
     227                // execute inputElement call
     228                def renderedElement = "$inputElement"(attrs)
     229
     230                // if false, then we skip this element
     231                if (!renderedElement) return false
     232
     233                // render a form element
     234                if (attrs.get('elementId')) {
     235                out << '<div class="element" id="'+ attrs.remove('elementId') +'">'
     236                } else {
     237                        out << '<div class="element">'
     238                }
     239                out << ' <div class="description">'
     240                out << description
     241                out << ' </div>'
     242                out << ' <div class="input">'
     243                out << renderedElement
     244                if (helpText.size() > 0) {
     245                        out << '        <div class="helpIcon"></div>'
     246                }
     247
     248                // add an disabled input box for feedback purposes
     249                // @see dateElement(...)
     250                if (addExampleElement) {
     251                        def exampleAttrs = new LinkedHashMap()
     252                        exampleAttrs.name = attrs.get('name') + 'Example'
     253                        exampleAttrs.class = 'isExample'
     254                        exampleAttrs.disabled = 'disabled'
     255                        exampleAttrs.size = 30
     256                        out << textField(exampleAttrs)
     257                }
     258
     259                // add an disabled input box for feedback purposes
     260                // @see dateElement(...)
     261                if (addExample2Element) {
     262                        def exampleAttrs = new LinkedHashMap()
     263                        exampleAttrs.name = attrs.get('name') + 'Example2'
     264                        exampleAttrs.class = 'isExample'
     265                        exampleAttrs.disabled = 'disabled'
     266                        exampleAttrs.size = 30
     267                        out << textField(exampleAttrs)
     268                }
     269
     270                out << ' </div>'
     271
     272                // add help content if it is available
     273                if (helpText.size() > 0) {
     274                        out << '  <div class="helpContent">'
     275                        out << '    ' + helpText
     276                        out << '  </div>'
     277                }
     278
     279                out << '</div>'
     280        }
     281
     282        /**
     283         * bind an ajax submit to an onChange event
     284         * @param attrs
     285         * @return attrs
     286         */
     287        private getAjaxOnChange = { attrs ->
     288                // work variables
     289                def internetExplorer = (request.getHeader("User-Agent") =~ /MSIE/)
    229290                def ajaxOnChange = attrs.remove('ajaxOnChange')
    230                 if (ajaxOnChange) {
     291
     292                // is ajaxOnChange defined
     293                if ( ajaxOnChange ) {
    231294                        if (!attrs.onChange) attrs.onChange = ''
    232295
     
    265328                }
    266329
    267                 // execute inputElement call
    268                 def renderedElement = "$inputElement"(attrs)
    269 
    270                 // if false, then we skip this element
    271                 if (!renderedElement) return false
    272 
    273                 // render a form element
    274                 if (attrs.get('elementId')) {
    275                 out << '<div class="element" id="'+ attrs.remove('elementId') +'">'
    276                 } else {
    277                         out << '<div class="element">'
    278                 }
    279                 out << ' <div class="description">'
    280                 out << description
    281                 out << ' </div>'
    282                 out << ' <div class="input">'
    283                 out << renderedElement
    284                 if (helpText.size() > 0) {
    285                         out << '        <div class="helpIcon"></div>'
    286                 }
    287 
    288                 // add an disabled input box for feedback purposes
    289                 // @see dateElement(...)
    290                 if (addExampleElement) {
    291                         def exampleAttrs = new LinkedHashMap()
    292                         exampleAttrs.name = attrs.get('name') + 'Example'
    293                         exampleAttrs.class = 'isExample'
    294                         exampleAttrs.disabled = 'disabled'
    295                         exampleAttrs.size = 30
    296                         out << textField(exampleAttrs)
    297                 }
    298 
    299                 // add an disabled input box for feedback purposes
    300                 // @see dateElement(...)
    301                 if (addExample2Element) {
    302                         def exampleAttrs = new LinkedHashMap()
    303                         exampleAttrs.name = attrs.get('name') + 'Example2'
    304                         exampleAttrs.class = 'isExample'
    305                         exampleAttrs.disabled = 'disabled'
    306                         exampleAttrs.size = 30
    307                         out << textField(exampleAttrs)
    308                 }
    309 
    310                 out << ' </div>'
    311 
    312                 // add help content if it is available
    313                 if (helpText.size() > 0) {
    314                         out << '  <div class="helpContent">'
    315                         out << '    ' + helpText
    316                         out << '  </div>'
    317                 }
    318 
    319                 out << '</div>'
     330                return attrs
    320331        }
    321332
     
    577588                        attrs.rel = 'term'
    578589
     590                        // got an ajaxOnChange defined?
     591                        attrs = getAjaxOnChange.call(
     592                                attrs
     593                        )
     594
    579595                        out << select(attrs)
    580596                } else {
     
    656672         */
    657673        def templateElement = { attrs, body ->
    658                 // add a rel element if it does not exist
    659                 if (!attrs.rel) {
    660                         attrs.rel = 'template'
    661                 }
    662                
    663674                // render template element
    664675                baseElement.call(
     
    700711                }
    701712
     713                // add a rel element if it does not exist
     714                if (!attrs.rel) {
     715                        attrs.rel = 'template'
     716                }
     717
     718                // got an ajaxOnChange defined?
     719                attrs = getAjaxOnChange.call(
     720                        attrs
     721                )
     722
    702723                // got result?
    703724                if (attrs.from.size() > 0 || attrs.get('addDummy')) {
     
    858879                def inputElement= null
    859880                def addDummy    = (attrs.get('addDummy')) ? true : false
     881println "template: "
     882println template
    860883
    861884                // got a template?
Note: See TracChangeset for help on using the changeset viewer.