Changeset 489


Ignore:
Timestamp:
May 27, 2010, 4:26:44 PM (7 years ago)
Author:
tabma
Message:
  • simple wizard, tag library for properties added with a "allfieldtypes" = true/false to show all fields in the properties page instead of only filtered templatefieldtypes
Location:
trunk/grails-app
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r485 r489  
    7373    def upload_simple = {
    7474        def wb = handleUpload('importfile')
     75        def selectedentities = []
    7576        def entity = grailsApplication.config.gscf.domain.importableEntities.get(params.entity).entity
    76         def entityClass = Class.forName(entity, true, this.getClass().getClassLoader()) 
     77        def entityClass = Class.forName(entity, true, this.getClass().getClassLoader())
    7778
    7879        session.importer_header = ImporterService.getHeader(wb, 0, entityClass)
     
    8081        session.importer_workbook = wb
    8182
     83        session.importer_header.each {     
     84            selectedentities.add([name:params.entity, columnindex:it.key.toInteger()])
     85        }
     86
    8287        //import workbook
    8388        //session.importer_importeddata = ImporterService.importdata(session.importer_template_id, session.importer_workbook, 0, 1, session.importer_header)
     
    8893        def templates = Template.get(session.importer_template_id)
    8994       
    90         render(view:"step2", model:[entities:entities, header:session.importer_header, templates:templates])
     95        render(view:"step2", model:[entities: selectedentities, header:session.importer_header, templates:templates])
    9196    }
    9297
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r485 r489  
    6868            switch (datamatrix_celltype) {
    6969                    case HSSFCell.CELL_TYPE_STRING:
    70                             header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.STRING, index:index, entity:theEntity, property:property);
     70                            header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell),
     71                                                                            templatefieldtype:TemplateFieldType.STRING,
     72                                                                            index:index,
     73                                                                            entity:theEntity,
     74                                                                            property:property);
    7175                            break
    7276                    case HSSFCell.CELL_TYPE_NUMERIC:                   
    7377                            if (HSSFDateUtil.isCellDateFormatted(c)) {
    74                                 header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.DATE, index:index, entity:theEntity, property:property)
     78                                header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell),
     79                                                                                templatefieldtype:TemplateFieldType.DATE,
     80                                                                                index:index,
     81                                                                                entity:theEntity,
     82                                                                                property:property)
    7583                            }
    7684                            else
    77                                 header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.INTEGER,index:index, entity:theEntity, property:property);
     85                                header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell),
     86                                                                                templatefieldtype:TemplateFieldType.INTEGER,
     87                                                                                index:index,
     88                                                                                entity:theEntity,
     89                                                                                property:property);
    7890                            break
    7991                    case HSSFCell.CELL_TYPE_BLANK:
    80                             header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.STRING, index:index, entity:theEntity, property:property);
     92                            header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell),
     93                                                                            templatefieldtype:TemplateFieldType.STRING,
     94                                                                            index:index,
     95                                                                            entity:theEntity,
     96                                                                            property:property);
    8197                            break
    8298                    default:
    83                             header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.STRING,index:index, entity:theEntity, property:property);
     99                            header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell),
     100                                                                            templatefieldtype:TemplateFieldType.STRING,
     101                                                                            index:index,
     102                                                                            entity:theEntity,
     103                                                                            property:property);
    84104                            break
    85105            }
  • trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy

    r485 r489  
    5656        def header = attrs['header']
    5757        def entities = attrs['entities']
     58        def allfieldtypes = (attrs['allfieldtypes']==null) ? "false" : "true"
     59        println attrs['allfieldtypes']
    5860
    5961        out << render ( template:"common/properties",
    6062                        model:[selectedentities:entities,
    6163                        standardentities:grailsApplication.config.gscf.domain.importableEntities,
    62                         header:header])
     64                        header:header,
     65                        allfieldtypes:allfieldtypes]
     66                        )
    6367    }
    6468
     
    6973     * @param importtemplate_id template identifier where fields are retrieved from
    7074     * @param MappingColumn object containing all required information
     75     * @param allfieldtypes boolean true if all templatefields should be listed, otherwise only show filtered templatefields
    7176     * @return chooser object
    7277     * */
     
    7782        def t = Template.get(session.importer_template_id)
    7883        def mc = attrs['mappingcolumn']
     84        def allfieldtypes = attrs['allfieldtypes']
     85
     86        def templatefields = (allfieldtypes=="true") ? t.fields.list() : t.fields.findAll { it.type == mc.templatefieldtype }
    7987
    8088        (mc.identifier) ? out << "<select style=\"font-size:10px\" name=\"\" disabled><option>Identifier</option></select>":
    81             out << createPropertySelect(attrs['name'], t.fields.findAll { it.type == mc.templatefieldtype }, mc.index)
     89            out << createPropertySelect(attrs['name'], templatefields, mc.index)
    8290    }
    8391
  • trunk/grails-app/views/importer/common/_properties.gsp

    r485 r489  
    1616    <p><g:select name="study.id" from="${dbnp.studycapturing.Study.list()}" optionKey="id" class="selectsmall"/></p>
    1717    <table>
    18           <g:each var="stdentity" in ="${standardentities}">
    19               <% if (selectedentities.any { it.name == stdentity.value.name } && stdentity.value.name!="") { %>
     18          <g:each var="stdentity" in ="${standardentities}">         
     19             
     20              <% if (selectedentities.any { it.name.toLowerCase() == stdentity.value.name.toLowerCase() } && stdentity.value.name!="") { %>
    2021              <tr><td colspan="2"><h4>${stdentity.value.name}</h4></td></tr>
    2122              <tr>               
     
    2425              </tr>           
    2526                <g:each var="selentity" in="${selectedentities}">
    26                     <g:if test="${selentity.name==stdentity.value.name}">
     27                   
     28                    <g:if test="${selentity.name.toLowerCase()==stdentity.value.name.toLowerCase()}">
    2729                        <tr>                       
    2830                            <td class="header" width="200px">
    2931                                <b>${header[selentity.columnindex.toInteger()].name}</b>
    3032                            </td>
    31                             <td>                               
    32                                 <importer:propertyChooser name="columnproperty" mappingcolumn="${header[selentity.columnindex.toInteger()]}"/>
     33                            <td>   
     34                                <importer:propertyChooser name="columnproperty" mappingcolumn="${header[selentity.columnindex.toInteger()]}" allfieldtypes="${allfieldtypes}"/>
    3335                            </td>
    3436                        </tr>
  • trunk/grails-app/views/importer/step2_simple.gsp

    r485 r489  
    2727    <p>The next step is to assign properties to the columns. Below you see the columns, please assign every column to
    2828    a property.</p>
    29   <importer:properties entities="${entities}" header="${header}" templates="${templates}"/>
     29  <importer:properties entities="${entities}" header="${header}" templates="${templates}" allfieldtypes="true"/>
    3030  </body>
    3131</html>
Note: See TracChangeset for help on using the changeset viewer.