Changeset 1036

Show
Ignore:
Timestamp:
01-11-10 16:49:52 (3 years ago)
Author:
robert@…
Message:

Fixed the random order of templates in the study pages (#135) and created a remote logout call (#158).

Location:
trunk/grails-app
Files:
10 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/authentication/LogoutController.groovy

    r976 r1036  
    99         */ 
    1010        def index = { 
     11                if( params[ SpringSecurityUtils.securityConfig.successHandler.targetUrlParameter ] ) { 
     12                        redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl + "?" + SpringSecurityUtils.securityConfig.successHandler.targetUrlParameter + '=' + params[ SpringSecurityUtils.securityConfig.successHandler.targetUrlParameter ] // '/j_spring_security_logout' 
     13                } else { 
     14                        redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout' 
     15                } 
    1116                // TODO  put any pre-logout code here 
    12                 redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout' 
     17        } 
     18 
     19        def remote = { 
     20                // Log out the remote user 
     21                AuthenticationService.logOffRemotely( params.consumer, params.token ) 
     22                 
     23                // Try to rest the redirect url 
     24                if( params[ SpringSecurityUtils.securityConfig.successHandler.targetUrlParameter ] ) { 
     25                        redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl + "?" + SpringSecurityUtils.securityConfig.successHandler.targetUrlParameter + '=' + params[ SpringSecurityUtils.securityConfig.successHandler.targetUrlParameter ] // '/j_spring_security_logout' 
     26                } else { 
     27                        redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout' 
     28                } 
    1329        } 
    1430} 
  • trunk/grails-app/controllers/RestController.groovy

    r1027 r1036  
    2222import nl.metabolomicscentre.dsp.http.BasicAuthentication 
    2323import dbnp.rest.common.CommunicationManager 
    24  
     24import org.springframework.security.core.context.SecurityContextHolder; 
    2525 
    2626class RestController { 
     
    3131 
    3232        def AuthenticationService         
    33         def beforeInterceptor = [action:this.&auth,except:["isUser"]] 
     33        def beforeInterceptor = [action:this.&auth,except:["isUser", "logOut"]] 
    3434        def credentials 
    3535        def requestUser // = SecUser.findByUsername( "user" ) 
  • trunk/grails-app/domain/dbnp/studycapturing/Assay.groovy

    r962 r1036  
    5151        } 
    5252 
     53    static mapping = { 
     54        sort "name" 
     55    } 
     56 
    5357        def String toString() { 
    5458                return name; 
  • trunk/grails-app/domain/dbnp/studycapturing/Event.groovy

    r1013 r1036  
    6464        ] 
    6565 
     66    static mapping = { 
     67        sort "startTime" 
     68    } 
     69 
    6670        /** 
    6771         * Get the duration of the event as RelTime 
  • trunk/grails-app/domain/dbnp/studycapturing/Person.groovy

    r959 r1036  
    3939                mobile(nullable: true, blank: true) 
    4040        } 
     41 
     42    static mapping = { 
     43        sort "lastName, firstName" 
     44    } 
     45 
     46 
    4147} 
  • trunk/grails-app/domain/dbnp/studycapturing/Sample.groovy

    r1034 r1036  
    103103        } 
    104104 
     105    static mapping = { 
     106        sort "name" 
     107    } 
     108 
    105109        static getSamplesFor( event ) { 
    106110                return  Sample.findAll( 'from Sample s where s.parentEvent =:event', [event:event] ) 
  • trunk/grails-app/domain/dbnp/studycapturing/Study.groovy

    r1013 r1036  
    5252        static mapping = { 
    5353                autoTimestamp true 
     54                sort "title" 
    5455 
    5556                // Workaround for bug http://jira.codehaus.org/browse/GRAILS-6754 
     
    100101         * returns all events and sampling events that do not belong to a group 
    101102         */ 
    102         def Set<Event> getOrphanEvents() { 
     103        def List<Event> getOrphanEvents() { 
    103104                def orphans =   events.findAll { event -> !event.belongsToGroup(eventGroups) } + 
    104105                                                samplingEvents.findAll { event -> !event.belongsToGroup(eventGroups) } 
     
    110111         * Return the unique Subject templates that are used in this study 
    111112         */ 
    112         def Set<Template> giveSubjectTemplates() { 
     113        def List<Template> giveSubjectTemplates() { 
    113114                TemplateEntity.giveTemplates(subjects) 
    114115        } 
     
    127128         * @return Set 
    128129         */ 
    129         Set<Template> giveAllAssayTemplates() { 
     130        List<Template> giveAllAssayTemplates() { 
    130131                TemplateEntity.giveTemplates(( (assays) ? assays : [] )) 
    131132        } 
     
    142143         * Return the unique Event and SamplingEvent templates that are used in this study 
    143144         */ 
    144         Set<Template> giveAllEventTemplates() { 
     145        List<Template> giveAllEventTemplates() { 
    145146                // For some reason, giveAllEventTemplates() + giveAllSamplingEventTemplates() 
    146147                // gives trouble when asking .size() to the result 
     
    165166         * Return the unique Event templates that are used in this study 
    166167         */ 
    167         Set<Template> giveEventTemplates() { 
     168        List<Template> giveEventTemplates() { 
    168169                TemplateEntity.giveTemplates(events) 
    169170        } 
     
    172173         * Return the unique SamplingEvent templates that are used in this study 
    173174         */ 
    174         Set<Template> giveSamplingEventTemplates() { 
     175        List<Template> giveSamplingEventTemplates() { 
    175176                TemplateEntity.giveTemplates(samplingEvents) 
    176177        } 
     
    179180         * Returns the unique Sample templates that are used in the study 
    180181         */ 
    181         Set<Template> giveSampleTemplates() { 
     182        List<Template> giveSampleTemplates() { 
    182183                TemplateEntity.giveTemplates(samples) 
    183184        } 
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r976 r1036  
    758758                // If one or more entities does not have a template, the resulting 
    759759                // set contains null. That is not what is meant. 
    760                 return set.findAll { it != null }; 
     760                set = set.findAll { it != null }; 
     761 
     762                // Sort the list so we always have the same order 
     763                set = set.sort{ a, b -> 
     764                        a == null || b == null || a.equals(b) ? 0 : 
     765                        a.name < b.name ? -1 : 
     766                        a.name > b.name ?  1 : 
     767                        a.id < b.id ? -1 : 1 
     768                } 
     769 
     770                return set 
    761771        } 
    762772 
  • trunk/grails-app/views/common/_topnav.gsp

    r1033 r1036  
    1 <!-- TOPNAV //--> 
    2 <ul class="topnav"> 
    3         <li><g:link controller="home" action="index">Home</g:link></li> 
    4         <sec:ifLoggedIn> 
    5                 <li><g:link controller="study" action="myStudies">My studies</g:link></li> 
    6         </sec:ifLoggedIn> 
     1    <!-- TOPNAV //--> 
     2    <ul class="topnav"> 
     3     <li><g:link controller="home" action="index">Home</g:link></li> 
    74        <li> 
    8                 <a href="#">Studies</a> 
    9                 <ul class="subnav"> 
    10                         <li><g:link controller="study" action="list">View studies</g:link></li> 
    11                         <li><g:link controller="wizard" action="index">Create/edit study</g:link></li> 
    12                         <li><g:link controller="importer" action="index">Import study data</g:link></li> 
    13                         <li><g:link controller="simpleQuery" action="index">Search study data</g:link></li> 
    14                         <li><g:link controller="exporter" action="index">Export as SimpleTox</g:link></li> 
    15                 </ul> 
    16         </li> 
     5      <a href="#">Studies</a> 
     6      <ul class="subnav"> 
     7        <li><g:link controller="study" action="list">View studies</g:link></li> 
     8                <li><g:link controller="wizard" action="index">Create/edit study</g:link></li> 
     9                <li><g:link controller="importer" action="index">Import study data</g:link></li> 
     10        <li><g:link controller="simpleQuery" action="index">Search study data</g:link></li> 
     11        <li><g:link controller="exporter" action="index">Export as SimpleTox</g:link></li> 
     12                <sec:ifLoggedIn> 
     13                         <li><g:link controller="study" action="myStudies">My studies</g:link></li> 
     14                </sec:ifLoggedIn> 
     15      </ul> 
     16     </li> 
    1717        <li> 
    1818                <a href="#">Templates</a> 
  • trunk/grails-app/views/study/show.gsp

    r1030 r1036  
    262262                  </g:if> 
    263263                  <g:else> 
    264                    ${studyInstance.giveEventTemplates().name.join(", ")} 
     264                                        ${studyInstance.giveEventTemplates().name.join(", ")} 
    265265                  </g:else> 
    266266                </td>