Project

General

Profile

1 3404 leinfelder
<?xml version="1.0" encoding="UTF-8"?>
2
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
3 3405 leinfelder
4
	<!-- to change the content type or response encoding change the following line -->
5
	<jsp:directive.page contentType="text/html;charset=UTF-8" />
6
	<jsp:directive.page
7
		import="edu.ucsb.nceas.metacat.clientview.ClientView" />
8
	<jsp:directive.page
9
		import="edu.ucsb.nceas.metacat.clientview.ClientViewHelper" />
10
	<jsp:directive.page
11
		import="edu.ucsb.nceas.metacat.clientview.ClientHtmlHelper" />
12
13
	<jsp:declaration>
14 3414 leinfelder
        private ClientViewHelper clientViewHelper = null;
15 3404 leinfelder
    </jsp:declaration>
16 3405 leinfelder
17 3739 leinfelder
<jsp:directive.include file="settings.jsp" />
18
19 3414 leinfelder
<html xmlns="http://www.w3.org/1999/xhtml">
20
<head>
21 3405 leinfelder
22 3739 leinfelder
	<jsp:element name="script">
23
		<jsp:attribute name="language">JavaScript</jsp:attribute>
24
		<jsp:attribute name="src">
25
			<jsp:expression>SERVER_URL_WITH_CONTEXT + "/style/skins/sanparks/searchPathQuery.js"</jsp:expression>
26
		</jsp:attribute>
27
	</jsp:element>
28 3405 leinfelder
	<script type="text/javascript">
29 3404 leinfelder
		function trim(stringToTrim) {
30
			return(stringToTrim.replace(/^\s+|\s+$/g,""));
31
		}
32 3491 leinfelder
33
		function isEmpty(aTextField) {
34
			var value = trim(aTextField.value);
35
			var result = ((value.length == 0) || (value == null));
36
			return(result);
37
		}
38
39
		function allowSubmit(formObj) {
40
			var     result = true;
41
			var     action = "";
42
43
		    action = trim(formObj.elements["action"].value);
44
		    if (action == "Login") {
45
		        if (isEmpty(formObj.elements["username"])) {
46
		            result = false;
47
		            alert("User name is required");
48
		        } else if (isEmpty(formObj.elements["organization"])) {
49
		            result = false;
50
		            alert("Organization is required");
51
		        } else if (isEmpty(formObj.elements["password"])) {
52
		            result = false;
53
		            alert("Password is required");
54
		        }
55
		    }
56
57
			return(result);
58
		}
59
	</script>
60 3405 leinfelder
61 3414 leinfelder
	<title>SANParks - South African National Park Data Repository</title>
62 3739 leinfelder
	<jsp:element name="link">
63
		<jsp:attribute name="rel">stylesheet</jsp:attribute>
64
		<jsp:attribute name="type">text/css</jsp:attribute>
65
		<jsp:attribute name="href">
66
			<jsp:expression>SERVER_URL_WITH_CONTEXT + "/style/skins/sanparks/sanparks.css"</jsp:expression>
67
		</jsp:attribute>
68
	</jsp:element>
69 3414 leinfelder
</head>
70
71 3428 leinfelder
<body>
72 3496 leinfelder
	<div class="templatecontentareaclass" style="background: #FFFFFF;">
73 3414 leinfelder
		<jsp:useBean id="clientViewBean" scope="session" class="edu.ucsb.nceas.metacat.clientview.ClientView" />
74
		<jsp:setProperty name="clientViewBean" property="*" />
75
		<jsp:scriptlet>
76
			clientViewHelper = ClientViewHelper.clientViewHelperInstance(request);
77
			clientViewHelper.clientRequest(request, response);
78
        </jsp:scriptlet>
79 3405 leinfelder
80 3414 leinfelder
	<table>
81 3415 leinfelder
	<tr>
82
		<td colspan="3">
83
			<p class="regtext">
84
			Welcome to the SANParks Data Repository.
85
			This is the primary source for comprehensive information about scientific
86
			and research data sets collected throughout the South African National Park System.
87
			</p>
88
		</td>
89
	</tr>
90 3414 leinfelder
	<tr valign="top">
91
	<td>
92
93
	<h2>Search for SANParks Data</h2>
94 3426 leinfelder
95
	<p class="emphasis">Searching:
96
		<jsp:scriptlet>
97
			String organizationScope = request.getParameter("organizationScope");
98
			if (organizationScope == null) {
99 3462 leinfelder
				organizationScope = "";
100 3426 leinfelder
			}
101 3462 leinfelder
			if (!organizationScope.equals("")) {
102 3426 leinfelder
		</jsp:scriptlet>
103 3459 leinfelder
			<!-- set the map to use the correct scope -->
104
			<script type="text/javascript" >
105
				var dropDownTimer = null;
106
107
				//this syncs the map based on the input string location
108
				function setMapLocation(strLocation) {
109
110
					var mapFrameDocument = document.getElementById("mapFrame").contentDocument;
111 3508 leinfelder
					if (!mapFrameDocument) {
112
						//alert("IE");
113
						mapFrameDocument = document.getElementById("mapFrame").contentWindow;
114
						if (mapFrameDocument.document) {
115
							mapFrameDocument = mapFrameDocument.document;
116
						}
117
118
					}
119
					//alert("mapFrame=" + mapFrameDocument.name);
120
					//alert("locations=" + mapFrameDocument.getElementsByTagName('locations'));
121
122 3459 leinfelder
					//check if the dropdown is loaded in DOM
123
					if (mapFrameDocument.getElementsByName('locations').length == 0) {
124
						dropDownTimer = setTimeout("setMapLocation('" + strLocation + "')", 100);
125
						return false;
126
					}
127
					clearTimeout(dropDownTimer);
128
129
					var locationMenu = mapFrameDocument.getElementsByName('locations')[0];
130
					//alert("locationMenu=" + locationMenu);
131
					var locationOptions = locationMenu.options;
132
					//alert("locationOptions=" + locationOptions);
133
					//loop through the options to find the correct location based on input string
134
					for (var i=0; i &lt; locationOptions.length; i++) {
135
						if (locationOptions[i].text == strLocation) {
136
							//set as selected
137
							locationMenu.selectedIndex = i;
138
							break;
139
						}
140
					}
141
					//alert("Focusing on selected location: " + locationMenu.options[locationMenu.selectedIndex].text);
142
143
					//the onchange command from select object
144
					locationMenu.onchange();
145
					//mapFrameDocument.config.objects.locationsSelect.setAoi(locationMenu.options[locationMenu.selectedIndex].value,'mainMap');
146
147
				}
148
149
				//kick it off
150
				dropDownTimer =
151
					setTimeout(
152
					"setMapLocation('<jsp:expression>organizationScope</jsp:expression>')",
153
					 100);
154
155
			</script>
156
157
			<jsp:expression>organizationScope</jsp:expression>
158 3426 leinfelder
		<jsp:scriptlet>
159
			}
160
			else {
161
		</jsp:scriptlet>
162
			All Organizations
163
		<jsp:scriptlet>
164
			}
165
		</jsp:scriptlet>
166
	</p>
167
168 3672 leinfelder
	<jsp:element name="form">
169
		<jsp:attribute name="id">searchform</jsp:attribute>
170
		<jsp:attribute name="name">searchform</jsp:attribute>
171
		<jsp:attribute name="method">post</jsp:attribute>
172
		<jsp:attribute name="action">
173 3739 leinfelder
			<jsp:expression>METACAT_URL</jsp:expression>
174 3672 leinfelder
		</jsp:attribute>
175
		<jsp:attribute name="target">_top</jsp:attribute>
176
		<jsp:attribute name="onsubmit">setQueryFormField()</jsp:attribute>
177 3414 leinfelder
		<p class="regtext">
178 3415 leinfelder
		The repository search system is used to locate data sets of interest by
179
		searching through existing registered data sets.
180
		Presently the search covers all fields, including author, title, abstract,
181
		keywords, and other documentation for each data set.
182
		<br />
183
		Use a '%' symbol as a wildcard in searches (e.g., '%herbivore%'
184
		would locate any phrase with the word herbivore embedded within it).
185 3414 leinfelder
		</p>
186
		<jsp:element name="input">
187 3462 leinfelder
			<jsp:attribute name="name">organizationScope</jsp:attribute>
188
			<jsp:attribute name="id">organizationScope</jsp:attribute>
189 3459 leinfelder
			<jsp:attribute name="type">hidden</jsp:attribute>
190
			<jsp:attribute name="value">
191
				<jsp:expression>organizationScope</jsp:expression>
192
			</jsp:attribute>
193
		</jsp:element>
194
		<jsp:element name="input">
195 3414 leinfelder
			<jsp:attribute name="name">sessionid</jsp:attribute>
196
			<jsp:attribute name="type">hidden</jsp:attribute>
197
			<jsp:attribute name="value">
198
				<jsp:getProperty name="clientViewBean" property="sessionid" />
199
			</jsp:attribute>
200
		</jsp:element>
201 3462 leinfelder
		<input type="text" id="anyfield" name="anyfield" value="" size="14" />
202
		<input type="hidden" id="query" name="query"  />
203
		<input type="hidden" name="qformat" value="sanparks"/>
204
		<input type="hidden" name="action" value="squery" />
205
		<input type="submit" value="Search"  />
206 3414 leinfelder
		<p class="regtext">
207 3462 leinfelder
		-Or-
208
		<br />
209 3414 leinfelder
		Browse all existing data sets by title. This operation can be slow.
210
		</p>
211 3462 leinfelder
		<input type="button" value="Browse All" onclick="setBrowseAll();form.submit()" />
212 3672 leinfelder
	</jsp:element>
213 3462 leinfelder
214 3414 leinfelder
	</td>
215
	<td>
216
217
	<!-- Login section -->
218 3405 leinfelder
	<jsp:scriptlet>
219 3414 leinfelder
		if (!clientViewHelper.isLoggedIn()) {
220
	</jsp:scriptlet>
221
222
	<h3>
223
		Login
224 3739 leinfelder
		<jsp:element name="a">
225
			<jsp:attribute name="target">_parent</jsp:attribute>
226
			<jsp:attribute name="href">
227
				<jsp:expression>CGI_PREFIX + "/ldapweb.cgi?cfg=sanparks"</jsp:expression>
228
			</jsp:attribute>
229 3414 leinfelder
			<span class="regtext"> (request an account...)</span>
230 3739 leinfelder
		</jsp:element>
231 3414 leinfelder
	</h3>
232 3428 leinfelder
	<form name="loginForm" method="post" action="./"
233 3414 leinfelder
		onsubmit="return allowSubmit(this)">
234
		<input name="qformat" type="hidden" value="sanparks" />
235 3405 leinfelder
	<table>
236 3414 leinfelder
		<tr valign="top">
237
			<td>
238
				<span class="required">User name</span>
239 3405 leinfelder
			</td>
240 3414 leinfelder
			<td>
241
				<input name="username" type="text" value=""
242
				style="width: 140" />
243
			</td>
244 3405 leinfelder
		</tr>
245
		<tr>
246
			<td><span class="required">Organization</span></td>
247
			<td><select name="organization" style="width: 140">
248
				<option value="SANParks" selected="">SANParks</option>
249
				<option value="SAEON">SAEON</option>
250
				<option value="NCEAS">NCEAS</option>
251
				<option value="unaffiliated">unaffiliated</option>
252
			</select></td>
253
		</tr>
254
		<tr>
255
			<td><span class="required">Password</span></td>
256
			<td><input name="password" value="" type="password"
257
				style="width: 140" maxlength="50" /></td>
258
		</tr>
259
		<tr>
260 3414 leinfelder
			<td colspan="2" align="center">
261
				<input name="action"
262
				value="Login" type="submit" class="button_login" />
263
			</td>
264 3405 leinfelder
		</tr>
265
	</table>
266
	</form>
267 3414 leinfelder
268 3405 leinfelder
	<jsp:scriptlet>
269 3414 leinfelder
		} else {
270
	</jsp:scriptlet>
271 3416 leinfelder
	<h3>
272
		Welcome,
273
		<jsp:expression>clientViewBean.getUsername()</jsp:expression>
274
	</h3>
275 3428 leinfelder
	<form name="logoutForm" method="post" action="./">
276 3405 leinfelder
	<input name="qformat" value="sanparks" type="hidden" />
277
	<table>
278 3416 leinfelder
		<tr valign="top">
279 3405 leinfelder
			<td>
280 3416 leinfelder
				<p class="regtext">
281
					You are currently logged in.
282
				</p>
283 3405 leinfelder
			</td>
284 3416 leinfelder
			<td align="right">
285
				<input name="action" type="submit" value="Logout" class="button_login" />
286
			</td>
287
		</tr>
288
		<tr valign="top">
289
			<td colspan="2">
290
				<p class="regtext">
291
					(<jsp:expression>clientViewBean.getMessage(ClientView.LOGIN_MESSAGE)</jsp:expression>)
292
				</p>
293
			</td>
294
		</tr>
295
		<tr>
296
			<td colspan="2"
297
				class="regtext"
298
				align="center"
299
				valign="top">
300
301 3739 leinfelder
				<!-- reset pass -->
302
				<jsp:element name="a">
303
					<jsp:attribute name="target">_parent</jsp:attribute>
304
					<jsp:attribute name="href">
305
						<jsp:expression>CGI_PREFIX + "/ldapweb.cgi?cfg=sanparks&amp;stage=resetpass"</jsp:expression>
306
					</jsp:attribute>
307
					reset your password
308
				</jsp:element>
309 3416 leinfelder
				|
310 3739 leinfelder
				<!-- change pass -->
311
				<jsp:element name="a">
312
					<jsp:attribute name="target">_parent</jsp:attribute>
313
					<jsp:attribute name="href">
314
						<jsp:expression>CGI_PREFIX + "/ldapweb.cgi?cfg=sanparks&amp;stage=changepass"</jsp:expression>
315
					</jsp:attribute>
316
					change your password
317
				</jsp:element>
318 3405 leinfelder
			</td>
319
		</tr>
320
	</table>
321
	</form>
322
	<jsp:scriptlet>
323 3414 leinfelder
		}
324
	</jsp:scriptlet>
325
326
	<!-- File Upload Form -->
327
	<br />
328
	<h3>Data Package Upload</h3>
329
330 3405 leinfelder
	<jsp:scriptlet>
331 3414 leinfelder
		if (clientViewHelper.isLoggedIn()) {
332
	</jsp:scriptlet>
333 3431 leinfelder
	<table width="100%">
334
		<tr valign="top">
335
			<td align="right">
336 3739 leinfelder
				<jsp:element name="form">
337
					<jsp:attribute name="method">post</jsp:attribute>
338
					<jsp:attribute name="action">
339
						<jsp:expression>SERVER_URL_WITH_CONTEXT + "/style/skins/sanparks/upload.jsp"</jsp:expression>
340
					</jsp:attribute>
341 3548 barteau
					<input type="submit" value="Go >" class="button_login" />
342 3739 leinfelder
				</jsp:element>
343 3431 leinfelder
			</td>
344
		</tr>
345
	</table>
346 3405 leinfelder
	<jsp:scriptlet>
347 3414 leinfelder
		} else {
348
	</jsp:scriptlet>
349
350
	<p class="regtext">
351
		You must be logged into your user account before uploading a data set.
352
	</p>
353 3405 leinfelder
	<jsp:scriptlet>
354 3414 leinfelder
		}
355
	</jsp:scriptlet>
356
357
	</td>
358
359
	<!-- so the map frame doesn't overlap content -->
360
	<td width="50px"></td>
361
362
	</tr>
363
364
	<tr>
365 3435 leinfelder
	<td colspan="2" align="center">
366 3431 leinfelder
367
368
	<!-- Map here -->
369
	<br />
370 3459 leinfelder
	<h3>Spatial Search</h3>
371 3431 leinfelder
372 3451 leinfelder
		<!-- map frame -->
373
        <script language="JavaScript">
374 3739 leinfelder
            insertMap("<jsp:expression>SERVER_URL_WITH_CONTEXT</jsp:expression>");
375 3451 leinfelder
        </script>
376 3431 leinfelder
	</td>
377
378
	<!-- so the map frame doesn't overlap content -->
379
	<td width="50px"></td>
380
381 3414 leinfelder
	</tr>
382 3431 leinfelder
383 3414 leinfelder
	</table>
384
385 3405 leinfelder
	</div>
386 3414 leinfelder
</body>
387
</html>
388 3404 leinfelder
</jsp:root>