source: trunk/grails-app/views/importer/common/_on_page.gsp @ 1489

Last change on this file since 1489 was 1489, checked in by t.w.abma@…, 9 years ago
  • improved missing values in stringlist fields, still to fix: make cell identifier really unique
  • Property svn:keywords set to Rev Author Date
File size: 2.7 KB
Line 
1<%
2        /**
3         * wizard refresh flow action
4         *
5         * When a page (/ partial) is rendered, any DOM event handlers need to be
6         * (re-)attached. The af:ajaxButton, af:ajaxSubmitJs and af:redirect tags
7         * supports calling a JavaScript after the page has been rendered by passing
8         * the 'afterSuccess' argument.
9         *
10         * Example:     af:redirect afterSuccess="onPage();"
11         *              af:redirect afterSuccess="console.log('redirecting...');"
12         *
13         * Generally one would expect this code to add jQuery event handlers to
14         * DOM objects in the rendered page (/ partial).
15         *
16         * @author Jeroen Wesbeek
17         * @since 20101206
18         *
19         * Revision information:
20         * $Rev: 1489 $
21         * $Author: t.w.abma@umcutrecht.nl $
22         * $Date: 2011-02-03 16:07:42 +0000 (do, 03 feb 2011) $
23         */
24%>
25<script type="text/javascript">
26        // Initially called when starting the import wizard
27        function onPage() {
28                // GENERAL
29                onStudyWizardPage();
30
31                $('#simplewizardform').submit(function() {
32                        if ($('#file').val() == "") {
33                                alert("Please choose your Excel file to import.");
34                                return false
35                        } else
36                        if ($('#entity').val() == "") {
37                                $('#datatemplate').addClass("validationfail");
38                                return false
39                        } else {
40                                $('#simplewizardform').submit();
41                        }
42
43                        return false;
44                });
45        }
46
47        /**
48         * Update one select based on another select
49         *
50         * @author
51         * @see  http://www.grails.org/Tag+-+remoteFunction
52         * @param   string  select (form) name
53         * @param   string  JSON data
54         * @param   boolean keep the first option
55         * @param   int  selected option
56         * @param   string  if null, show this as option instead
57         * @void
58         */
59        function updateSelect(name, data, keepFirstOption, selected, presentNullAsThis) {
60                var rselect = $('#' + name).get(0)
61                var items = data
62
63                // If a study has been selected, don't show the "Choose study" field, otherwise do
64                if ($('#' + 'entity :selected').text() == 'Study')
65                        $('#studyfield').hide();
66                else $('#studyfield').show();
67
68                $('select[name=template_id]').attr('entity', $('#' + 'entity').val());
69
70                if (items) {
71
72                        // remove old options
73                        var start = (keepFirstOption) ? 0 : -1;
74                        var i = rselect.length
75
76                        while (i > start) {
77                                rselect.remove(i)
78                                i--
79                        }
80
81                        // add new options
82                        $.each(items, function() {
83                                var i = rselect.options.length
84
85                                rselect.options[i] = new Option(
86                                        (presentNullAsThis && this.name == null) ? presentNullAsThis : this.name,
87                                        this.id
88                                        );
89                                if (this.id == selected) rselect.options[i].selected = true
90                        });
91                }
92
93                // handle template selects
94                new SelectAddMore().init({
95                        rel      : 'template',
96                        url      : baseUrl + '/templateEditor',
97                        vars    : 'entity', // can be a comma separated list of variable names to pass on
98                        label   : 'add / modify ...',
99                        style   : 'modify',
100                        onClose : function(scope) {
101                                refreshFlow()
102                        }
103                });
104        }
105
106</script>
107
Note: See TracBrowser for help on using the repository browser.