source: cowsclient/trunk/cowsclient/templates/wcsdown.html @ 5952

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cowsclient/trunk/cowsclient/templates/wcsdown.html@5952
Revision 5952, 8.4 KB checked in by domlowe, 11 years ago (diff)

Modifying yahoo paths for yahoo-dom-event to circumvent firefox 3.5.3 problem

Line 
1<html xmlns:py="http://genshi.edgewall.org/" 
2      xmlns="http://www.w3.org/1999/xhtml"
3      xmlns:xi="http://www.w3.org/2001/XInclude">   
4
5<py:def function="makeInput(name, label=None, inputHTML='')">
6    <?python
7        # This function makes a div, label + input html structure for a single input item
8   
9        labelAtts = {'for':name, 'id':name+'_label'}
10        divAtts = {'id':name+'_container'}
11
12        if label == None:
13            label = name
14    ?>
15    <div class="input_item" py:attrs="divAtts">
16        <label py:attrs="labelAtts">${label}</label>
17        ${inputHTML}
18    </div>
19</py:def>
20
21<py:def function="makeSelectInput(name, selected_value, options, label=None, default=None, **atts)">
22    <?python
23        inputHTML = h.html_tags.select(name, selected_value, options,  **atts)
24    ?>
25    ${makeInput(name, label, inputHTML)}
26</py:def>
27
28<py:def function="makeCheckboxInput(name, label=None, default=None, **atts)">
29    <?python
30        inputHTML = h.html_tags.checkbox(name, **atts)
31    ?>
32    ${makeInput(name, label, inputHTML)}
33</py:def>
34
35
36<head>
37
38
39<!-- YUI imports for autocomplete -->
40
41<link rel="stylesheet" type="text/css" href="$g.server/js/yui_2.7.0b/fonts/fonts.css" />
42<link rel="stylesheet" type="text/css" href="$g.server/js/yui_2.7.0b/button/assets/skins/sam/button.css" />
43<link rel="stylesheet" type="text/css" href="$g.server/js/yui_2.7.0b/autocomplete/assets/skins/sam/autocomplete.css" />
44
45<!-- <script type="text/javascript" src="$g.server/js/yui_2.7.0b/yahoo-dom-event/yahoo-dom-event.js"></script> -->
46<script type="text/javascript" src="$g.server/js/yui_2.7.0b/yahoo/yahoo.js"></script>
47<script type="text/javascript" src="$g.server/js/yui_2.7.0b/event/event.js"></script>
48<script type="text/javascript" src="$g.server/js/yui_2.7.0b/dom/dom.js"></script>
49<script type="text/javascript" src="$g.server/js/yui_2.7.0b/animation/animation.js"></script>
50<script type="text/javascript" src="$g.server/js/yui_2.7.0b/element/element.js"></script>
51<script type="text/javascript" src="$g.server/js/yui_2.7.0b/button/button.js"></script>
52<script type="text/javascript" src="$g.server/js/yui_2.7.0b/datasource/datasource.js"></script>
53<script type="text/javascript" src="$g.server/js/yui_2.7.0b/autocomplete/autocomplete.js"></script>
54<script type="text/javascript" src="$g.server/js/yui_2.7.0b/event/event.js"></script>
55
56<!--script type="text/javascript" src="$g.server/js/yui/build/datasource/datasource.js"></script-->
57<!-- End of autocomplete imports -->
58
59<script type="text/javascript" src="${h.getOpenLayersImportPath()}"></script>
60<script type="text/javascript" src="$g.server/js/openlayers-x.js"></script>
61
62<link rel="stylesheet" type="text/css" href="$g.server/layout/wcdown.css" />
63<link rel="stylesheet" type="text/css" href="$g.server/layout/yui_autocomplete.css" />
64
65
66<script src="$g.server/js/wmsc.js"></script>
67<script src="$g.server/js/boundingBoxMapSelect.js"></script>
68<script src="$g.server/js/boundsControl.js"></script>
69<script src="$g.server/js/json2.js"></script>
70<script src="$g.server/js/splitSelect.js"></script>
71<script src="$g.server/js/utils.js"></script>
72
73<script type="text/javascript">
74
75var downloadAction ="$g.server/wcsdown/download";
76var refreshAction = "$g.server/wcsdown";
77
78var timedata = ${h.jsonParseIfNotEmpty(c.timedata)};
79var defaultEndpoints = ${h.jsonParseIfNotEmpty(c.defaultWCSEndpoints)};
80
81WMSC.log("defaultEndpoints = " + defaultEndpoints);
82
83function init() {
84
85    var baseLayerData = ${h.jsonParseIfNotEmpty(c.baseLayerJSON)};
86   
87    // build endpoint autocomplete
88    Utils.makeCombobox("endpoint", "endpoint_toggle", "endpoint_options", defaultEndpoints, onEndpointChange);
89   
90    <py:if test="c.selected_layer != None">
91   
92        var startTime = new SplitSelect('time_container', 'time', timedata, 'Start Time:');
93        startTime.build();
94   
95        var endTime = new SplitSelect('time_end_container', 'time_end', timedata, 'End Time:');
96        endTime.build();
97       
98        setSingleTime('${c.singleTimePoint}' == 'true');
99       
100        var bboxSelect = new BoundingBoxMapSelect('map', 'bounds_control_container', baseLayerData.url, baseLayerData.params,  'bbox_hidden_input', null);
101    </py:if>
102
103   
104}
105
106function cleanup() {
107   
108}
109
110function onDownloadClick() {
111    var form = document.getElementById('download_form');
112    form.action = downloadAction;
113    form.target = '_blank';
114    form.submit();
115}
116
117function onRefreshClick() {
118    refresh();
119}
120
121function onEndpointChange() {
122    WMSC.log("Endpoint changed");
123    selectLayerValue("");
124    refresh();
125}
126
127function selectLayerValue(value){
128   
129    var layerSelect = document.getElementById('layer');
130   
131    for (var i=0; i&lt;layerSelect.length; i++) {
132        if (layerSelect.options[i].text == value) {
133            layerSelect.options[i].selected = true;
134            break;
135        }
136    }
137}
138
139function onLayerChange() {
140    refresh();
141}
142
143function setSingleTime(value) {
144    var timeEndContainer = document.getElementById('time_end_container');
145    var singleTimeCB = document.getElementById('single_time');
146    var startTimeLabel = document.getElementById('time_label');
147   
148    if (value) {
149        timeEndContainer.style.display = "none";
150        startTimeLabel.innerHTML = "Time :"
151    }
152    else {
153        timeEndContainer.style.display = "block";
154        startTimeLabel.innerHTML = "Start Time :"
155    }
156   
157    singleTimeCB.checked = value
158}
159
160function refresh() {
161    var form = document.getElementById('download_form');
162    form.action = refreshAction;
163    form.target = '';
164    form.submit();
165}
166
167</script>
168
169</head>
170
171<body onload="init()" onunload="cleanup()" class="yui-skin-sam">
172       
173    <span>
174        <py:replace value="c.message">Message placeholder</py:replace>
175    </span>
176   
177   
178   
179    <div id="page_content">
180   
181        <h1 id="page_title">WCS Download</h1>
182   
183        <div id="download_form_container">
184            <form id="download_form" method="get" > 
185                   
186                <div id="data_container">
187                    <h4>Data Selection</h4>
188                   
189                   
190                    <div py:def="autocompleteMarkup" id='endpoint_autocomplete' style='display:inline;'>
191                        ${h.html_tags.text('endpoint', id='endpoint', value=c.endpoint)}
192                        <span id="endpoint_toggle"></span>
193                        <div id="endpoint_options"></div>
194                    </div>
195                   
196                    ${makeInput('endpoint','Endpoint :', autocompleteMarkup())}
197                   
198                    ${makeSelectInput('layer', c.selected_layer, c.layer_options, label='Layer :', onChange='onLayerChange();')}
199                   
200                    <py:if test="c.selected_layer != None">
201                   
202                        ${makeSelectInput('format', c.selected_format, c.format_options, label='Format :')}
203                        ${makeSelectInput('crs', c.selected_crs, c.crs_options, label='CRS :')}
204
205                    </py:if>
206               
207                </div>
208               
209                <py:if test="c.selected_layer != None">
210               
211                    <div id="bounding_container">
212                   
213                        <h4>Bounding Box</h4>   
214                        <div id="bounds_control_container"></div>
215                       
216                        <div id="map_container">
217                            <div id='map'></div>
218                        </div>   
219
220                        ${h.html_tags.hidden(name='bbox', id='bbox_hidden_input', value=c.selected_bbox)}
221   
222                    </div>
223   
224                    <div id="dimensions_container">
225                        <h4>Dimensions</h4>
226                       
227                        ${makeCheckboxInput('single_time', label='Single Time Point :', value='true', onClick="setSingleTime(this.checked);")}
228                       
229                        <div id="time_container" class="input_item"> </div>
230                        <div id="time_end_container" class="input_item"> </div>
231                    </div>
232                   
233                </py:if>
234               
235               
236                <div id="form_control_buttons">
237                    <input type="button" value="Download" onClick="onDownloadClick();"></input>
238               
239                    <input type="button" value="Refresh" onClick="onRefreshClick();"></input>
240                   
241                    <br class="clear" />
242                </div>
243       
244            </form>
245        </div>
246    </div>   
247
248</body>
249</html>
Note: See TracBrowser for help on using the repository browser.