Changeset 489

Show
Ignore:
Timestamp:
27-05-10 16:26:44 (4 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 modified

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>