Ignore:
Timestamp:
Nov 9, 2010, 10:14:23 AM (10 years ago)
Author:
t.w.abma@…
Message:
  • added error page for importer
  • empty ontologies detected in Excel still should be shown as "unknown" fields in the failed ontology-mapping step
File:
1 edited

Legend:

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

    r1093 r1103  
    4141        //session.import_referer = request.forwardURI
    4242        // should do a check what is in the url, strip it?
    43         session.import_referer = params.redirectTo       
     43        session.import_referer = params.redirectTo
     44        render(view:"index_simple",
     45               model:[studies:Study.findAllWhere(owner:AuthenticationService.getLoggedInUser()),
     46               entities: grailsApplication.config.gscf.domain.importableEntities])
    4447    }
    4548
    4649    def simpleWizard = {
    47         render(view:"index_simple", model:[studies:Study.findAllWhere(owner:AuthenticationService.getLoggedInUser()), entities: grailsApplication.config.gscf.domain.importableEntities])
     50        //render(view:"index_simple", model:[studies:Study.findAllWhere(owner:AuthenticationService.getLoggedInUser()), entities: grailsApplication.config.gscf.domain.importableEntities])
    4851    }
    4952
    5053    def advancedWizard = {
    51         render(view:"index_advanced", model:[templates:Template.list()])
     54        //render(view:"index_advanced", model:[templates:Template.list()])
    5255    }
    5356
     
    8588        session.importer_workbook = wb
    8689        session.importer_study = Study.get(params.study.id.toInteger())
    87         session.importer_template_id = params.template_id
    88         session.importer_sheetindex = params.sheetindex.toInteger() -1 // 0 == first sheet
    89         session.importer_datamatrix_start = params.datamatrix_start.toInteger() -1 // 0 == first row
    90         session.importer_headerrow = params.headerrow.toInteger()
    91 
    92         // Get the header from the Excel file using the arguments given in the first step of the wizard
    93         session.importer_header = ImporterService.getHeader(wb,
    94                                                             session.importer_sheetindex,
    95                                                             session.importer_headerrow,
    96                                                             session.importer_datamatrix_start,
    97                                                             entityClass)
     90       
     91        if (session.importer_study.canWrite(AuthenticationService.getLoggedInUser())) {
     92            session.importer_template_id = params.template_id
     93            session.importer_sheetindex = params.sheetindex.toInteger() -1 // 0 == first sheet
     94            session.importer_datamatrix_start = params.datamatrix_start.toInteger() -1 // 0 == first row
     95            session.importer_headerrow = params.headerrow.toInteger()
     96
     97            // Get the header from the Excel file using the arguments given in the first step of the wizard
     98            session.importer_header = ImporterService.getHeader(wb,
     99                                                                session.importer_sheetindex,
     100                                                                session.importer_headerrow,
     101                                                                session.importer_datamatrix_start,
     102                                                                entityClass)
    98103       
    99         // Initialize 'selected entities', used to show entities above the columns
    100         session.importer_header.each {
    101             selectedentities.add([name:params.entity, columnindex:it.key.toInteger()])
    102         }
    103 
    104         def templates = Template.get(session.importer_template_id)
     104            // Initialize 'selected entities', used to show entities above the columns
     105            session.importer_header.each {
     106                selectedentities.add([name:params.entity, columnindex:it.key.toInteger()])
     107            }
     108
     109            def templates = Template.get(session.importer_template_id)
    105110       
    106         render(view:"step2_simple", model:[entities: selectedentities,
    107                                            header:session.importer_header,
    108                                            datamatrix:ImporterService.getDatamatrix(
    109                                                wb, session.importer_header,
    110                                                session.importer_sheetindex,
    111                                                session.importer_datamatrix_start,
    112                                                5),
    113                                            templates:templates])
     111            render(view:"step2_simple", model:[entities: selectedentities,
     112                                        header:session.importer_header,
     113                                        datamatrix:ImporterService.getDatamatrix(
     114                                        wb, session.importer_header,
     115                                        session.importer_sheetindex,
     116                                        session.importer_datamatrix_start,
     117                                        5),
     118                                        templates:templates])
     119        } // end of if
     120        else {
     121            render (template:"common/error",
     122                    model:[error:"Wrong permissions: you are not allowed to write to the study you selected (${session.importer_study})."])
     123        }
    114124    }
    115125
     
    139149        session.importer_importeddata.each { table ->
    140150            table.each { entity ->
    141                 entity.giveFields().each { field ->
    142                     //print ":" + params["entity_" + entity.hashCode() + "_" + field.escapedName()]
     151                entity.giveFields().each { field ->                 
    143152                    entity.setFieldValue (field.toString(), params["entity_" + entity.hashCode() + "_" + field.escapedName()])
    144153                }               
     
    171180                    correctedcells)
    172181
    173         //render("failed cells saved")
    174      
    175182        render(view:"step3_simple", model:[datamatrix:session.importer_importeddata])
    176183
     
    296303        session.importer_failedcells = failedcells
    297304
    298         render(view:"step2a_simple", model:[failedcells:session.importer_failedcells])
    299 
    300         /*if (params.layout=="horizontal")
    301             render(view:"step3_simple", model:[datamatrix:session.importer_importeddata])
    302         else if (params.layout=="vertical")
    303             render(view:"step3", model:[datamatrix:session.importer_importeddata])*/
     305        if (failedcells.size()!=0)
     306            render(view:"step2a_simple", model:[failedcells:session.importer_failedcells])
     307        else {
     308            if (params.layout=="horizontal")
     309                render(view:"step3_simple", model:[datamatrix:session.importer_importeddata])
     310            else if (params.layout=="vertical")
     311                render(view:"step3", model:[datamatrix:session.importer_importeddata])
     312        }
    304313    }
    305314
Note: See TracChangeset for help on using the changeset viewer.