Changeset 578
- Timestamp:
- Jun 17, 2010, 2:57:04 PM (13 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy
r576 r578 28 28 */ 29 29 def index = { 30 def jump = [:] 31 32 // allow quickjumps to: 33 // edit a study : /wizard?jump=edit&id=1 34 // create a study : /wizard?jump=create 35 if (params.get('jump')) { 36 switch (params.get('jump')) { 37 case 'create': 38 jump = [ 39 action: 'create' 40 ] 41 break 42 case 'edit': 43 jump = [ 44 action : 'edit', 45 id : params.get('id') 46 ] 47 break 48 default: 49 break 50 } 51 } 52 53 // store in session 54 session.jump = jump 55 30 56 /** 31 57 * Do you believe it in your head? … … 59 85 [title: 'Done'] // finish page 60 86 ] 87 flow.jump = session.jump 61 88 success() 62 89 } … … 72 99 success() 73 100 } 74 on("next").to "start" 101 on("next").to "handleJump" 102 } 103 104 // handle the jump parameter 105 // 106 // I came to get down [2x] 107 // So get out your seats and jump around 108 // Jump around [3x] 109 // Jump up Jump up and get down 110 // Jump [18x] 111 handleJump { 112 action { 113 if (flow.jump && flow.jump.action == 'edit' && flow.jump.id) { 114 // load study 115 if (this.loadStudy(flow, flash, [studyid:flow.jump.id])) { 116 toStudyPage() 117 } else { 118 toStartPage() 119 } 120 } else if (flow.jump && flow.jump.action == 'create') { 121 toStudyPage() 122 } else { 123 toStartPage() 124 } 125 } 126 on("toStartPage").to "start" 127 on("toStudyPage").to "study" 75 128 } 76 129 … … 91 144 flow.remove('eventGroups') 92 145 flow.remove('eventTemplates') 146 println flow 93 147 94 148 // set 'quicksave' variable … … 123 177 on("next") { 124 178 // load study 125 try { 126 // load study 127 flow.study = Study.findByTitle(params.study) 128 129 // recreate subjects 130 flow.subjects = [:] 131 flow.subjectTemplates = [:] 132 flow.study.subjects.each() { subject -> 133 def subjectIncrement = flow.subjects.size() 134 flow.subjects[ subjectIncrement ] = subject 135 136 // add subject template? 137 if (!flow.subjectTemplates[ subject.template.name ]) { 138 flow.subjectTemplates[ subject.template.name ] = [ 139 name: subject.template.name, 140 template: subject.template, 141 subjects: [:] 142 ] 143 } 144 145 // reference subject in template 146 flow.subjectTemplates[ subject.template.name ].subjects[ flow.subjectTemplates[ subject.template.name ].subjects.size() ] = subjectIncrement 147 } 148 149 // recreate events 150 flow.events = [] 151 flow.eventGroups = [] 152 flow.eventTemplates = [:] 153 flow.study.events.each() { event -> 154 def eventIncrement = flow.events.size() 155 flow.events[ eventIncrement ] = event 156 157 // add event template? 158 if (!flow.eventTemplates[ event.template.name ]) { 159 flow.eventTemplates[ event.template.name ] = [ 160 name: event.template.name, 161 template: event.template, 162 events: new ArrayList() 163 ] 164 } 165 166 // reference event in template 167 flow.eventTemplates[ event.template.name ].events[ flow.eventTemplates[ event.template.name ].events.size() ] = eventIncrement 168 169 // set dummy event 170 flow.event = event 171 } 172 173 // recreate sample events 174 flow.study.samplingEvents.each() { event -> 175 def eventIncrement = flow.events.size() 176 flow.events[ eventIncrement ] = event 177 178 // add event template? 179 if (!flow.eventTemplates[ event.template.name ]) { 180 flow.eventTemplates[ event.template.name ] = [ 181 name: event.template.name, 182 template: event.template, 183 events: new ArrayList() 184 ] 185 } 186 187 // reference event in template 188 flow.eventTemplates[ event.template.name ].events[ flow.eventTemplates[ event.template.name ].events.size() ] = eventIncrement 189 190 // set dummy event 191 flow.event = event 192 } 193 194 // recreate eventGroups 195 flow.study.eventGroups.each() { eventGroup -> 196 flow.eventGroups[ flow.eventGroups.size() ] = eventGroup 197 } 198 199 // set 'quicksave' variable 200 flow.quickSave = true 201 179 if (this.loadStudy(flow, flash, params)) { 202 180 success() 203 } catch (Exception e) { 204 // rollback 205 this.appendErrorMap(['exception': e.toString() + ', see log for stacktrace' ], flash.errors) 206 181 } else { 207 182 error() 208 183 } … … 784 759 flow.page = 8 785 760 } 761 onEnd { 762 // clean flow scope 763 flow.clear() 764 } 765 } 766 } 767 768 /** 769 * load a study 770 * @param Map LocalAttributeMap (the flow scope) 771 * @param Map localAttributeMap (the flash scope) 772 * @param Map GrailsParameterMap (the flow parameters = form data) 773 * @returns boolean 774 */ 775 def loadStudy(flow, flash, params) { 776 // load study 777 try { 778 // load study 779 flow.study = (params.studyid) ? Study.findById( params.studyid ) : Study.findByTitle( params.study ) 780 781 // recreate subjects 782 flow.subjects = [:] 783 flow.subjectTemplates = [:] 784 flow.study.subjects.each() { subject -> 785 def subjectIncrement = flow.subjects.size() 786 flow.subjects[subjectIncrement] = subject 787 788 // add subject template? 789 if (!flow.subjectTemplates[subject.template.name]) { 790 flow.subjectTemplates[subject.template.name] = [ 791 name: subject.template.name, 792 template: subject.template, 793 subjects: [:] 794 ] 795 } 796 797 // reference subject in template 798 flow.subjectTemplates[subject.template.name].subjects[flow.subjectTemplates[subject.template.name].subjects.size()] = subjectIncrement 799 } 800 801 // recreate events 802 flow.events = [] 803 flow.eventGroups = [] 804 flow.eventTemplates = [:] 805 flow.study.events.each() { event -> 806 def eventIncrement = flow.events.size() 807 flow.events[eventIncrement] = event 808 809 // add event template? 810 if (!flow.eventTemplates[event.template.name]) { 811 flow.eventTemplates[event.template.name] = [ 812 name: event.template.name, 813 template: event.template, 814 events: new ArrayList() 815 ] 816 } 817 818 // reference event in template 819 flow.eventTemplates[event.template.name].events[flow.eventTemplates[event.template.name].events.size()] = eventIncrement 820 821 // set dummy event 822 flow.event = event 823 } 824 825 // recreate sample events 826 flow.study.samplingEvents.each() { event -> 827 def eventIncrement = flow.events.size() 828 flow.events[eventIncrement] = event 829 830 // add event template? 831 if (!flow.eventTemplates[event.template.name]) { 832 flow.eventTemplates[event.template.name] = [ 833 name: event.template.name, 834 template: event.template, 835 events: new ArrayList() 836 ] 837 } 838 839 // reference event in template 840 flow.eventTemplates[event.template.name].events[flow.eventTemplates[event.template.name].events.size()] = eventIncrement 841 842 // set dummy event 843 flow.event = event 844 } 845 846 // recreate eventGroups 847 flow.study.eventGroups.each() { eventGroup -> 848 flow.eventGroups[flow.eventGroups.size()] = eventGroup 849 } 850 851 // set 'quicksave' variable 852 flow.quickSave = true 853 854 return true 855 } catch (Exception e) { 856 // rollback 857 this.appendErrorMap(['exception': e.toString() + ', see log for stacktrace'], flash.errors) 858 859 return false 786 860 } 787 861 } -
trunk/grails-app/views/study/show.gsp
r572 r578 841 841 <g:set var="studyInstance" value="${studyList[0]}" /> 842 842 <g:hiddenField name="id" value="${studyInstance?.id}" /> 843 <span class="button"><g: actionSubmit class="edit" action="edit" value="${message(code: 'default.button.edit.label', default: 'Edit')}" /></span>843 <span class="button"><g:link class="edit" controller="wizard" params="[jump:'edit']" id="${studyInstance?.id}">${message(code: 'default.button.edit.label', default: 'Edit')}</g:link></span> 844 844 <span class="button"><g:actionSubmit class="delete" action="delete" value="${message(code: 'default.button.delete.label', default: 'Delete')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Are you sure?')}');" /></span> 845 845 </g:if> -
trunk/grails-app/views/wizard/pages/_done.gsp
r359 r578 18 18 19 19 <span class="info"> 20 <span class="todo">Finished!</span> 21 The study you have just created has been properly saved. 20 <span class="todo">Done!</span> 21 <g:if test="${quickSave}"> 22 Your modifications you have made to this study have been saved. 23 </g:if> 24 <g:else> 25 The study you just created has been saved. 26 </g:else> 27 28 You can now <g:link controller="study" action="show" id="${study.id}">view the study</g:link>, 29 <g:link controller="wizard" params="[jump:'edit']" id="${study.id}">edit the study</g:link> 30 <g:if test="${quickSave}"> again</g:if> or 31 <g:link controller="wizard" params="[jump:'create']">create a new study</g:link>. 32 22 33 </span> 23 34
Note: See TracChangeset
for help on using the changeset viewer.