Changeset 1490

Show
Ignore:
Timestamp:
04-02-11 10:55:05 (3 years ago)
Author:
robert@…
Message:

Implemented enhancement #258, opening an assay outside the frame. This functionality needs an upgrade of the gdt plugin first.
Also added authorization to the assayModule controller, such that only administrators can use it.

Location:
trunk/grails-app
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/conf/DatabaseUpgrade.groovy

    r1430 r1490  
    3232                changeStudyDescriptionToText(sql, db)           // r1327 
    3333                changeTemplateTextFieldSignatures(sql, db)      // prevent Grails issue, see http://jira.codehaus.org/browse/GRAILS-6754 
     34                setAssayModuleDefaultValues(sql, db)            // r1304 
    3435        } 
    3536 
     
    129130                } 
    130131        } 
     132         
     133        /** 
     134        * The fields 'notify' and 'openInFrame' have been added to AssayModule. However, there 
     135        * seems to be no method to setting the default values of these fields in the database. They 
     136        * are set to NULL by default, so all existing fields have 'NULL' set.  
     137        * This method sets the default values 
     138        * @param sql 
     139        * @param db 
     140        */ 
     141   public static void setAssayModuleDefaultValues(sql, db) { 
     142           "performing database upgrade: assay_module default values for boolean fields".grom() 
     143           try { 
     144                   sql.execute("UPDATE assay_module SET notify = 0 WHERE notify IS NULL") 
     145           } catch (Exception e) { 
     146                   println "setAssayModuleDefaultValues notify field couldn't be set to default value: " + e.getMessage() 
     147           } 
     148           try { 
     149                   sql.execute("UPDATE assay_module SET open_in_frame = 1 WHERE open_in_frame IS NULL") 
     150           } catch (Exception e) { 
     151                   println "setAssayModuleDefaultValues openInFrame field couldn't be set to default value: " + e.getMessage() 
     152                   println "Maybe gdt plugin is not updated yet after revision 109" 
     153           } 
     154   } 
    131155} 
  • trunk/grails-app/controllers/dbnp/studycapturing/AssayModuleController.groovy

    r1456 r1490  
    1515package dbnp.studycapturing 
    1616 
     17import grails.plugins.springsecurity.Secured 
     18 
     19@Secured(['ROLE_ADMIN']) 
    1720class AssayModuleController { 
    1821        // Scaffold this class to circumvent not being able to add assays (0.4) 
  • trunk/grails-app/views/study/show_assays.gsp

    r1453 r1490  
    3232                  <td>${assay.module.platform}</td> 
    3333                  <td> 
    34           <jumpbar:link frameSource="${assay.module.url}/assay/showByToken/${assay.giveUUID()}" pageTitle="Metabolomics Module"> 
    35                         view 
    36                   </jumpbar:link></td> 
     34                        <g:if test="${assay.module.openInFrame == null || assay.module.openInFrame == Boolean.TRUE}"> 
     35                  <jumpbar:link frameSource="${assay.module.url}/assay/showByToken/${assay.giveUUID()}" pageTitle="Metabolomics Module"> 
     36                                view 
     37                          </jumpbar:link> 
     38                         </g:if> 
     39                         <g:else> 
     40                                <g:link url="${assay.module.url}/assay/showByToken/${assay.giveUUID()}">view</g:link> 
     41                         </g:else> 
     42                </td> 
    3743                  <td> 
    3844                        <% sortedAssaySamples = assay.samples.sort( { a, b -> a.name <=> b.name } as Comparator )  %>