source: trunk/grails-app/views/importer/index_simple.gsp @ 1171

Last change on this file since 1171 was 1171, checked in by t.w.abma@…, 11 years ago
  • added add / modify to date template chooser
  • added some JS to handle select boxes, when choosing study the study chooser dropdown disappears
  • added encryption to select box, necessary to let the template add/remove popup work correctly
  • added "encrypted" variable to Config, used by the date template dropdown
  • Property svn:keywords set to Author Date Rev
File size: 5.0 KB
Line 
1<!--
2  To change this template, choose Tools | Templates
3  and open the template in the editor.
4-->
5
6<%@ page contentType="text/html;charset=UTF-8" %>
7
8<html>
9  <head>
10    <meta name="layout" content="main"/>
11    <title>Importer wizard (simple)</title>   
12    <link rel="stylesheet" href="${resource(dir: 'css', file: 'importer.css')}"/>
13
14<g:if env="production">
15  <script type="text/javascript" src="${resource(dir: 'js', file: 'SelectAddMore.min.js')}"></script>
16</g:if><g:else>
17  <script type="text/javascript" src="${resource(dir: 'js', file: 'SelectAddMore.js')}"></script>
18</g:else>
19
20<g:javascript>
21/**
22 * Update one select based on another select
23 *
24 * @author
25 * @see     http://www.grails.org/Tag+-+remoteFunction
26 * @param   string  select (form) name
27 * @param   string  JSON data
28 * @param   boolean keep the first option
29 * @param   int     selected option
30 * @param   string  if null, show this as option instead
31 * @void
32 */
33function updateSelect(name,data,keepFirstOption,selected,presentNullAsThis) {   
34    var rselect = $('#'+name).get(0)
35    var items = data
36
37    // If a study has been selected, don't show the "Choose study" field, otherwise do   
38    if ($('#'+'entity :selected').text() == 'Study')
39      $('#studyfield').hide();
40    else $('#studyfield').show();
41
42    // set the entity name for the data template chooser
43    //if ($('#'+'entity').val() == 'event')
44
45    //$('select[name=template_id]').attr('entity', $('#'+'entity').val());
46    $('select[name=template_id]').attr('entity', $('#'+'entity').val());
47
48
49    if (items) {
50
51        // remove old options
52        var start = (keepFirstOption) ? 0 : -1;
53        var i = rselect.length
54
55        while (i > start) {
56            rselect.remove(i)
57            i--
58        }
59
60        // add new options
61        $.each(items,function() {
62            var i = rselect.options.length
63
64            rselect.options[i] = new Option(
65                (presentNullAsThis && this.name == null) ? presentNullAsThis : this.name,
66                this.id
67            );
68            if (this.id == selected) rselect.options[i].selected = true
69        });
70    }
71
72 // handle template selects
73  new SelectAddMore().init({
74       rel     : 'typetemplate',
75       url     : '/gscf/templateEditor',
76       vars    : 'entity', // can be a comma separated list of variable names to pass on
77       label   : 'add / modify ...',
78       style   : 'modify',
79       onClose : function(scope) {
80           //refreshWebFlow();           
81       }
82    });
83}
84
85$(document).ready(function() {
86   
87    $('#simplewizardform').submit(function() {
88        if ($('#file').val() == "") {
89            alert ("Please choose your Excel file to import.");
90            return false
91        } else
92        if ($('#entity').val() == "") {
93            $('#datatemplate').addClass("validationfail");
94            return false
95        } else
96            $('#simplewizardform').submit();
97
98        return false;
99    });
100});
101
102</g:javascript>
103
104<g:if env="production">
105<script type="text/javascript" src="${resource(dir: 'js', file: 'SelectAddMore.min.js')}"></script>
106</g:if><g:else>
107<script type="text/javascript" src="${resource(dir: 'js', file: 'SelectAddMore.js')}"></script>
108</g:else>
109     
110</head>
111  <body>
112    <h1>Importer wizard</h1>
113    <p>You can import your Excel data to the server by choosing a file from your local harddisk in the form below.</p>
114        <form id="simplewizardform" controller="importer" method="post" action="upload_simple" enctype="multipart/form-data">
115        <table border="0">
116        <tr>
117            <td width="100px">
118                Choose your Excel file to import:
119            </td>
120            <td width="100px">
121                <input id="file" type="file" name="importfile"/>
122            </td>
123        </tr>
124        <tr>
125            <td width="100px">
126                Use data from sheet:
127            </td>
128            <td width="100px">
129                <g:select name="sheetindex" from="${1..25}"/>
130            </td>
131        </tr>
132        <tr>
133            <td width="100px">
134                Columnheader starts at row:
135            </td>
136            <td width="100px">
137                <g:select name="headerrow" from="${1..10}"/>
138            </td>
139        </tr>
140        <tr>
141            <td width="100px">
142                Data starts at row:
143            </td>
144            <td width="100px">
145                <g:select name="datamatrix_start" from="${2..10}"/>
146            </td>
147        </tr>
148        <tr id="studyfield">
149            <td>
150                Choose your study:
151            </td>
152            <td>
153                <g:select name="study.id" from="${studies}" optionKey="id"/>
154            </td>
155        </tr>
156        <tr>
157            <td>
158                Choose type of data:
159            </td>
160            <td>
161                <g:select               
162                name="entity"
163                id="entity"
164                from="${entities}"             
165                optionValue="${{it.value.name}}"
166                optionKey="${{it.value.encrypted}}"
167                noSelection="['':'-Choose type of data-']"
168                onChange="${remoteFunction( controller: 'importer',
169                                            action:'ajaxGetTemplatesByEntity',
170                                            params: '\'entity=\'+escape(this.value)',
171                                            onSuccess:'updateSelect(\'template_id\',data,false,false,\'default\')')}" />
172            </td>
173        </tr>
174        <tr>
175            <td>
176                <div id="datatemplate">Choose type of data template:</div>
177            </td>
178            <td>
179                <g:select rel="typetemplate" entity="none" name="template_id" optionKey="id" optionValue="name" from="[]" />
180            </td>
181        </tr>
182        <tr>
183            <td colspan="2">
184                <input type="submit" value="Next"/>
185            </td>
186        </tr>
187        </table>
188        </form>
189
190  </body>
191</html>
Note: See TracBrowser for help on using the repository browser.