Changeset 2141

Show
Ignore:
Timestamp:
23-01-12 11:13:46 (2 years ago)
Author:
work@…
Message:

base study comparison wizard

Location:
trunk/grails-app
Files:
17 added
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/query/StudyCompareController.groovy

    r2140 r2141  
     1package dbnp.query 
     2 
    13/** 
    2  * StudyCompareController Controler 
     4 * ajaxflow Controller 
    35 * 
    4  * Description of my controller 
    5  * 
    6  * @author  your email (+name?) 
    7  * @since       2010mmdd 
    8  * @package     ??? 
     6 * @author      Jeroen Wesbeek 
     7 * @since       20120123 
    98 * 
    109 * Revision information: 
    11  * $Rev$ 
    12  * $Author$ 
    13  * $Date$ 
     10 * $Rev:  66849 $ 
     11 * $Author:  duh $ 
     12 * $Date:  2010-12-08 15:12:54 +0100 (Wed, 08 Dec 2010) $ 
    1413 */ 
    15 package dbnp.query 
    16  
    1714class StudyCompareController { 
     15        // the pluginManager is used to check if the Grom 
     16        // plugin is available so we can 'Grom' development 
     17        // notifications to the unified notifications daemon 
     18        // (see http://www.grails.org/plugin/grom) 
     19        def pluginManager 
     20         
    1821        /** 
    19          * index closure 
     22         * index method, redirect to the webflow 
     23         * @void 
    2024         */ 
    21     def index = { } 
     25        def index = { 
     26                // Grom a development message 
     27                if (pluginManager.getGrailsPlugin('grom')) "redirecting into the webflow".grom() 
     28 
     29                /** 
     30                 * Do you believe it in your head? 
     31                 * I can go with the flow 
     32                 * Don't say it doesn't matter (with the flow) matter anymore 
     33                 * I can go with the flow (I can go) 
     34                 * Do you believe it in your head? 
     35                 */ 
     36                redirect(action: 'pages') 
     37        } 
     38 
     39        /** 
     40         * WebFlow definition 
     41         * @void 
     42         */ 
     43        def pagesFlow = { 
     44                // start the flow 
     45                onStart { 
     46                        // Grom a development message 
     47                        if (pluginManager.getGrailsPlugin('grom')) "entering the WebFlow".grom() 
     48 
     49                        // define variables in the flow scope which is availabe 
     50                        // throughout the complete webflow also have a look at 
     51                        // the Flow Scopes section on http://www.grails.org/WebFlow 
     52                        // 
     53                        // The following flow scope variables are used to generate 
     54                        // wizard tabs. Also see common/_tabs.gsp for more information 
     55                        flow.page = 0 
     56                        flow.pages = [ 
     57                                [title: 'Page One'], 
     58                                [title: 'Page Two'], 
     59                                [title: 'Page Three'], 
     60                                [title: 'Page Four'], 
     61                                [title: 'Done'] 
     62                        ] 
     63                        flow.cancel = true; 
     64                        flow.quickSave = true; 
     65 
     66                        success() 
     67                } 
     68 
     69                // render the main wizard page which immediately 
     70                // triggers the 'next' action (hence, the main 
     71                // page dynamically renders the study template 
     72                // and makes the flow jump to the study logic) 
     73                mainPage { 
     74                        render(view: "/studyCompare/index") 
     75                        onRender { 
     76                                // Grom a development message 
     77                                if (pluginManager.getGrailsPlugin('grom')) "rendering the main Ajaxflow page (index.gsp)".grom() 
     78 
     79                                // let the view know we're in page 1 
     80                                flow.page = 1 
     81                                success() 
     82                        } 
     83                        on("next").to "pageOne" 
     84                } 
     85 
     86                // first wizard page 
     87                pageOne { 
     88                        render(view: "_page_one") 
     89                        onRender { 
     90                                // Grom a development message 
     91                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial: pages/_page_one.gsp".grom() 
     92 
     93                                flow.page = 1 
     94                                success() 
     95                        } 
     96                        on("next") { 
     97                                // put your bussiness logic (if applicable) in here 
     98                        }.to "pageTwo" 
     99                        on("toPageTwo") { 
     100                                // put your bussiness logic (if applicable) in here 
     101                        }.to "pageTwo" 
     102                        on("toPageThree") { 
     103                                // put your bussiness logic (if applicable) in here 
     104                        }.to "pageThree" 
     105                        on("toPageFour") { 
     106                                // put your bussiness logic (if applicable) in here 
     107                        }.to "pageFour" 
     108                        on("toPageFive") { 
     109                                // put your bussiness logic (if applicable) in here 
     110                                flow.page = 5 
     111                        }.to "save" 
     112                } 
     113 
     114                // second wizard page 
     115                pageTwo { 
     116                        render(view: "_page_two") 
     117                        onRender { 
     118                                // Grom a development message 
     119                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial: pages/_page_two.gsp".grom() 
     120 
     121                                flow.page = 2 
     122                                success() 
     123                        } 
     124                        on("next").to "pageThree" 
     125                        on("previous").to "pageOne" 
     126                        on("toPageOne").to "pageOne" 
     127                        on("toPageThree").to "pageThree" 
     128                        on("toPageFour").to "pageFour" 
     129                        on("toPageFive") { 
     130                                flow.page = 5 
     131                        }.to "save" 
     132                } 
     133 
     134                // second wizard page 
     135                pageThree { 
     136                        render(view: "_page_three") 
     137                        onRender { 
     138                                // Grom a development message 
     139                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_page_three.gsp".grom() 
     140 
     141                                flow.page = 3 
     142                                success() 
     143                        } 
     144                        on("next").to "pageFour" 
     145                        on("previous").to "pageTwo" 
     146                        on("toPageOne").to "pageOne" 
     147                        on("toPageTwo").to "pageTwo" 
     148                        on("toPageFour").to "pageFour" 
     149                        on("toPageFive") { 
     150                                flow.page = 5 
     151                        }.to "save" 
     152                } 
     153 
     154                // second wizard page 
     155                pageFour { 
     156                        render(view: "_page_four") 
     157                        onRender { 
     158                                // Grom a development message 
     159                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_page_four.gsp".grom() 
     160 
     161                                flow.page = 4 
     162                                success() 
     163                        } 
     164                        on("next") { 
     165                                // put some logic in here 
     166                                flow.page = 5 
     167                        }.to "save" 
     168                        on("previous").to "pageThree" 
     169                        on("toPageOne").to "pageOne" 
     170                        on("toPageTwo").to "pageTwo" 
     171                        on("toPageThree").to "pageThree" 
     172                        on("toPageFive") { 
     173                                flow.page = 5 
     174                        }.to "save" 
     175                } 
     176 
     177                // save action 
     178                save { 
     179                        action { 
     180                                // here you can validate and save the 
     181                                // instances you have created in the 
     182                                // ajax flow. 
     183                                try { 
     184                                        // Grom a development message 
     185                                        if (pluginManager.getGrailsPlugin('grom')) ".persisting instances to the database...".grom() 
     186 
     187                                        // put your bussiness logic in here 
     188                                        success() 
     189                                } catch (Exception e) { 
     190                                        // put your error handling logic in 
     191                                        // here 
     192                                        flow.page = 4 
     193                                        error() 
     194                                } 
     195                        } 
     196                        on("error").to "error" 
     197                        on(Exception).to "error" 
     198                        on("success").to "finalPage" 
     199                } 
     200 
     201                // render errors 
     202                error { 
     203                        render(view: "_error") 
     204                        onRender { 
     205                                // Grom a development message 
     206                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_error.gsp".grom() 
     207 
     208                                // set page to 4 so that the navigation 
     209                                // works (it is disabled on the final page) 
     210                                flow.page = 4 
     211                        } 
     212                        on("next").to "save" 
     213                        on("previous").to "pageFour" 
     214                        on("toPageOne").to "pageOne" 
     215                        on("toPageTwo").to "pageTwo" 
     216                        on("toPageThree").to "pageThree" 
     217                        on("toPageFour").to "pageFour" 
     218                        on("toPageFive").to "save" 
     219 
     220                } 
     221 
     222                // last wizard page 
     223                finalPage { 
     224                        render(view: "_final_page") 
     225                        onRender { 
     226                                // Grom a development message 
     227                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_final_page.gsp".grom() 
     228                                 
     229                                success() 
     230                        } 
     231                } 
     232        } 
    22233} 
  • trunk/grails-app/views/common/_topnav.gsp

    r2111 r2141  
    6363                        <li><g:link controller="advancedQuery">Search</g:link></li> 
    6464                        <li><g:link controller="visualize" action="index">Visualize</g:link></li> 
     65                        <li><g:link controller="studyCompare" action="index">Compare</g:link></li> 
    6566                </ul> 
    6667        </li>