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

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