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

Last change on this file since 1467 was 1467, checked in by work@…, 10 years ago
  • migrated js, css to gdt
  • moved termEditor to gdt
  • fixed double imports, wrong usage of javascript (on ready, onPage, etc) in importer
  • Property svn:keywords set to Rev Author Date
File size: 3.5 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: 1467 $
21         * $Author: work@osx.eu $
22         * $Date: 2011-02-01 14:40:17 +0000 (di, 01 feb 2011) $
23         */
24%>
25<script type="text/javascript">
26        // Initially called when starting the import wizard
27        function onPage() {
28                // GENERAL
29                attachHelpTooltips();
30                handleWizardTable();
31
32                // initialize the ontology chooser
33                new OntologyChooser().init();
34
35                // handle and initialize table(s)
36                new TableEditor().init({
37                        tableIdentifier : 'div.tableEditor',
38                        rowIdentifier   : 'div.row',
39                        columnIdentifier: 'div.column',
40                        headerIdentifier: 'div.header'
41                });
42
43                // handle term selects
44                new SelectAddMore().init({
45                        rel      : 'term',
46                        url      : baseUrl + '/termEditor',
47                        vars    : 'ontologies',
48                        label   : 'add more...',
49                        style   : 'addMore',
50                        onClose : function(scope) {
51                                refreshFlow();
52                        }
53                });
54
55                // handle template selects
56                new SelectAddMore().init({
57                        rel      : 'template',
58                        url      : baseUrl + '/templateEditor',
59                        vars    : 'entity,ontologies',
60                        label   : 'add / modify..',
61                        style   : 'modify',
62                        onClose : function(scope) {
63                                refreshFlow();
64                        }
65                });
66
67                $('#simplewizardform').submit(function() {
68                        if ($('#file').val() == "") {
69                                alert("Please choose your Excel file to import.");
70                                return false
71                        } else
72                        if ($('#entity').val() == "") {
73                                $('#datatemplate').addClass("validationfail");
74                                return false
75                        } else {
76                                $('#simplewizardform').submit();
77                        }
78
79                        return false;
80                });
81        }
82
83
84        /**
85         * Update one select based on another select
86         *
87         * @author
88         * @see  http://www.grails.org/Tag+-+remoteFunction
89         * @param   string  select (form) name
90         * @param   string  JSON data
91         * @param   boolean keep the first option
92         * @param   int  selected option
93         * @param   string  if null, show this as option instead
94         * @void
95         */
96        function updateSelect(name, data, keepFirstOption, selected, presentNullAsThis) {
97                var rselect = $('#' + name).get(0)
98                var items = data
99
100                // If a study has been selected, don't show the "Choose study" field, otherwise do
101                if ($('#' + 'entity :selected').text() == 'Study')
102                        $('#studyfield').hide();
103                else $('#studyfield').show();
104
105                $('select[name=template_id]').attr('entity', $('#' + 'entity').val());
106
107                if (items) {
108
109                        // remove old options
110                        var start = (keepFirstOption) ? 0 : -1;
111                        var i = rselect.length
112
113                        while (i > start) {
114                                rselect.remove(i)
115                                i--
116                        }
117
118                        // add new options
119                        $.each(items, function() {
120                                var i = rselect.options.length
121
122                                rselect.options[i] = new Option(
123                                        (presentNullAsThis && this.name == null) ? presentNullAsThis : this.name,
124                                        this.id
125                                        );
126                                if (this.id == selected) rselect.options[i].selected = true
127                        });
128                }
129
130                // handle template selects
131                new SelectAddMore().init({
132                        rel      : 'typetemplate',
133                        url      : baseUrl + '/templateEditor',
134                        vars    : 'entity', // can be a comma separated list of variable names to pass on
135                        label   : 'add / modify ...',
136                        style   : 'modify',
137                        onClose : function(scope) {
138                                location.reload();
139                        }
140                });
141        }
142
143</script>
144
Note: See TracBrowser for help on using the repository browser.