Ignore:
Timestamp:
Apr 5, 2011, 12:10:29 PM (8 years ago)
Author:
robert@…
Message:

Small fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/nl/tno/metagenomics/RunController.groovy

    r24 r26  
    1212
    1313        def index = {
    14                 [runs: Run.list()]
     14                [runs: Run.list(), user: session.user]
    1515        }
    1616
     
    129129
    130130                // Don't remove runs for which data exists
    131                 if( run.sequenceData?.size() ) {
    132                         flash.message = "Run could not be deleted because samples are associated with it.";
     131                if( run.assaySamples*.sequenceData.flatten().size() ) {
     132                        flash.message = "Run could not be deleted because samples with data are associated with it.";
    133133                        redirect( controller: "assay", action: "show", id: params.assayId )
    134134                }
     
    147147               
    148148                // Remove all associations
    149                 run.assays.each {
     149                def a = [] + run.assays
     150                a.each {
    150151                        run.removeFromAssays( it );
    151152                }
     
    156157
    157158                redirect( controller: "assay", action: "show", id: params.assayId )
     159        }
     160
     161        def deleteRun = {
     162                Run run = getRun( params.id );
     163
     164                if( !run ) {
     165                        redirect(controller: 'run', action: 'index')
     166                        return
     167                }
     168
     169                // Don't remove runs for which data exists
     170                if( run.assaySamples*.sequenceData.flatten().size() ) {
     171                        flash.message = "Run could not be deleted because samples with data are associated with it.";
     172                        redirect(controller: 'run', action: 'index')
     173                }
     174
     175                // Check whether the user has sufficient privileges to remove the run from all assays
     176                def hasPrivileges = true;
     177                run.assays.each {
     178                        if( !it.study.canWrite( session.user ) )
     179                                hasPrivileges = false
     180                }
     181               
     182                if( !hasPrivileges ) {
     183                        flash.message = "Run could not be deleted because you don't have sufficient privileges to remove the run from all assays.";
     184                        redirect(controller: 'run', action: 'index')
     185                }
     186               
     187                // Remove all associations
     188                def a = [] + run.assays
     189                a.each {
     190                        run.removeFromAssays( it );
     191                }
     192
     193                def name = run.name
     194                run.delete();
     195                flash.message = "Run " + name + " has been deleted from the system."
     196
     197                redirect(controller: 'run', action: 'index')
    158198        }
    159199
Note: See TracChangeset for help on using the changeset viewer.