Project

General

Profile

1
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
2
	xmlns:dri="http://di.tamu.edu/DRI/1.0/" xmlns:mets="http://www.loc.gov/METS/"
3
	xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dim="http://www.dspace.org/xmlns/dspace/dim"
4
	xmlns:mods="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/TR/xlink/"
5
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xalan"
6
	xmlns:datetime="http://exslt.org/dates-and-times" xmlns:encoder="xalan://java.net.URLEncoder"
7
	exclude-result-prefixes="xalan strings encoder datetime" version="1.0"
8
	xmlns:strings="http://exslt.org/strings">
9

    
10
	<xsl:import href="DryadUtils.xsl"/>
11
	
12
	<xsl:import href="../../common/resultset-table.xsl"/>
13
    <xsl:import href="../../common/eml-2/eml.xsl"/>
14
    <xsl:import href="../../common/fgdc/fgdc-root.xsl"/>
15
		
16
	<xsl:output method="html" />
17
	<xsl:param name="sessid" />
18
	<xsl:param name="qformat">default</xsl:param>
19
	<xsl:param name="enableediting">false</xsl:param>
20
	<xsl:param name="contextURL"/>
21
	<xsl:param name="cgi-prefix"/>
22

    
23
	<xsl:variable name="meta" select="/dri:document/dri:meta/dri:pageMeta/dri:metadata"/>
24
	<xsl:variable name="localize" select="$meta[@element='dryad'][@qualifier='localize'][.='true']"/>
25

    
26
	<xsl:template match="/">
27
		<xsl:variable name="datafiles" select=".//dim:field[@element='relation'][@qualifier='haspart']"/>
28

    
29
		<!-- my_doi and my_uri go together; there is a my_uri if no my_doi -->
30
		<xsl:variable name="my_doi"
31
			select=".//dim:field[@element='identifier'][not(@qualifier)][starts-with(., 'doi:')]"/>
32
		<xsl:variable name="my_uri"
33
			select=".//dim:field[@element='identifier'][@qualifier='uri'][not(starts-with(., 'doi'))]"/>
34

    
35
		<!-- Obtain an identifier if the item is harvested from KNB.
36
			   But we have to munge the URL to link to LTER instead of the raw XML. -->
37
		<xsl:variable name="knb_url_raw"
38
			select=".//dim:field[@element='identifier'][starts-with(.,'http://metacat')]"/>
39
		<xsl:variable name="knb_url">
40
			<xsl:if test="$knb_url_raw!=''">
41
				<xsl:value-of select="substring($knb_url_raw,0,string-length($knb_url_raw)-2)"/>lter
42
			</xsl:if>
43
		</xsl:variable>
44
		
45
		<!-- Obtain an identifier if the item is harvested from TreeBASE.
46
		But we have to munge the URL to link to TreeBASE instead of raw XML. -->
47
		<xsl:variable name="treebase_url_raw"
48
			select=".//dim:field[@element='identifier'][contains(., 'purl.org/phylo/treebase/')]"/>
49
		<xsl:variable name="treebase_url">
50
			<xsl:if test="$treebase_url_raw != ''">
51
				<xsl:choose>
52
					<xsl:when test="starts-with(., 'http:')">
53
						<xsl:value-of select="concat($treebase_url_raw, '?format=html')"/>
54
					</xsl:when>
55
					<xsl:otherwise>
56
						<xsl:value-of select="concat('http://', $treebase_url_raw, '?format=html')"/>
57
					</xsl:otherwise>
58
				</xsl:choose>
59
			</xsl:if>
60
		</xsl:variable>
61

    
62
		<!-- CITATION FOR DATA FILE -->
63
		<xsl:if
64
			test="$meta[@element='xhtml_head_item'][contains(., 'DCTERMS.isPartOf')]
65
				and $meta[@element='request'][@qualifier='queryString'][not(contains(., 'show=full'))]
66
				and $meta[@element='authors'][@qualifier='package']">
67

    
68
			<xsl:variable name="article_doi"
69
				select="$meta[@element='identifier'][@qualifier='article'][. != '']"/>
70

    
71
			<div class="citation-view">
72
				<p class="ds-paragraph">When using this data, please cite the original article:</p>
73
				<blockquote>
74
					<xsl:variable name="citation" select="$meta[@element='citation'][@qualifier='article']"/>
75
					<xsl:choose>
76
						<xsl:when test="$citation != ''">
77
							<xsl:choose>
78
								<xsl:when test="$article_doi and not(contains($citation, $article_doi))">
79
									<xsl:copy-of select="$citation"/>
80
									<a>
81
										<xsl:attribute name="href">
82
											<xsl:choose>
83
												<xsl:when test="starts-with($article_doi, 'http')">
84
													<xsl:value-of select="$article_doi"/>
85
												</xsl:when>
86
												<xsl:when test="starts-with($article_doi, 'doi:')">
87
													<xsl:value-of
88
														select="concat('http://dx.doi.org/', substring-after($article_doi, 'doi:'))"
89
													/>
90
												</xsl:when>
91
											</xsl:choose>
92
										</xsl:attribute>
93
										<xsl:value-of select="$article_doi"/>
94
									</a>
95
								</xsl:when>
96
								<xsl:when test="$article_doi">
97
									<xsl:copy-of select="substring-before($citation, $article_doi)"/>
98
									<a>
99
										<xsl:attribute name="href">
100
											<xsl:value-of
101
												select="concat('http://dx.doi.org/', substring-after($article_doi, 'doi:'))"
102
											/>
103
										</xsl:attribute>
104
										<xsl:value-of select="$article_doi"/>
105
									</a>
106
								</xsl:when>
107
								<xsl:otherwise>
108
									<xsl:value-of select="$citation"/>
109
								</xsl:otherwise>
110
							</xsl:choose>
111
						</xsl:when>
112
						<xsl:otherwise>
113
							<xsl:variable name="journal" select="$meta[@element='publicationName']"/>
114
							<xsl:choose>
115
								<xsl:when test="$journal">
116
									<span style="font-style: italic;">Citation is not yet available for this article
117
										from <xsl:value-of select="$journal"/>. It will become available shortly after
118
										the article is published. <xsl:if test="$article_doi">
119
											<a>
120
												<xsl:attribute name="href">
121
													<xsl:choose>
122
														<xsl:when test="starts-with($article_doi, 'http')">
123
															<xsl:value-of select="$article_doi"/>
124
														</xsl:when>
125
														<xsl:when test="starts-with($article_doi, 'doi:')">
126
															<xsl:value-of
127
																select="concat('http://dx.doi.org/', substring-after($article_doi, 'doi:'))"
128
															/>
129
														</xsl:when>
130
													</xsl:choose>
131
												</xsl:attribute>
132
												<xsl:value-of select="$article_doi"/>
133
											</a>
134
										</xsl:if>
135
									</span>
136
								</xsl:when>
137
								<xsl:otherwise>
138
									<span style="font-style: italic;">Citation not yet available.</span>
139
								</xsl:otherwise>
140
							</xsl:choose>
141
						</xsl:otherwise>
142
					</xsl:choose>
143
				</blockquote>
144
			</div>
145
		</xsl:if>
146

    
147
		
148
		<!-- General, non-citation, metadata display-->
149
		<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dri="http://di.tamu.edu/DRI/1.0/" xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
150
		<!--<link type="text/css" rel="stylesheet" media="screen" href="/knb/style/skins/default/default.css" />-->
151
		<xsl:call-template name="documenthead"/>
152
		<body id="Overview">
153
		<div id="main_wrapper">
154
		<xsl:call-template name="bodyheader"/>
155
		<div id="content_wrapper">
156
		
157
		<table class="ds-includeSet-table">
158
			<tr class="ds-table-row">
159
				<td>
160
					<xsl:choose>
161
						<xsl:when test="$treebase_url != ''">
162
							<span class="bold">View Full Content in TreeBASE</span>
163
						</xsl:when>
164
						<xsl:when test="$knb_url!=''">
165
							<span class="bold">View Full Content in KNB</span>
166
						</xsl:when>
167
						<xsl:when test="$datafiles!=''">
168
							<span class="bold">Dryad Package Identifier</span>
169
						</xsl:when>
170
						<xsl:otherwise>
171
							<span class="bold">Dryad File Identifier</span>
172
						</xsl:otherwise>
173
					</xsl:choose>
174
				</td>
175
				<td>
176
					<xsl:choose>
177
						<xsl:when test="$my_doi">
178
							<a>
179
								<xsl:attribute name="href">
180
									<xsl:call-template name="checkURL">
181
										<xsl:with-param name="url"
182
											select="concat('http://dx.doi.org/', substring-after($my_doi, 'doi:'))"/>
183
										<xsl:with-param name="localize" select="$localize"/>
184
									</xsl:call-template>
185
								</xsl:attribute>
186
								<xsl:value-of select="$my_doi"/>
187
							</a>
188
						</xsl:when>
189
						<xsl:when test="$my_uri">
190
							<a>
191
								<xsl:attribute name="href">
192
									<xsl:call-template name="checkURL">
193
										<xsl:with-param name="url" select="$my_uri"/>
194
										<xsl:with-param name="localize" select="$localize"/>
195
									</xsl:call-template>
196
								</xsl:attribute>
197
								<xsl:value-of select="$my_uri"/>
198
							</a>
199
						</xsl:when>
200
					</xsl:choose>
201
				</td>
202
			</tr>
203

    
204
			<xsl:if
205
				test=".//dim:field[@element='identifier'][not(@qualifier)][not(contains(., 'dryad.'))]">
206
				
207
				<xsl:variable name="dc-creators" select=".//dim:field[@element='creator'][@mdschema='dc']"/>
208

    
209
				<xsl:if test="$dc-creators != ''">
210
					<tr class="ds-table-row">
211
						<td>
212
							<xsl:choose>
213
								<xsl:when test="count($dc-creators) &gt; 1">
214
									<span class="bold">Authors</span>
215
								</xsl:when>
216
								<xsl:otherwise>
217
									<span class="bold">Author</span>
218
								</xsl:otherwise>
219
							</xsl:choose>
220
						</td>
221
						<td>
222
							<xsl:for-each select="$dc-creators">
223
								<xsl:value-of select="."/><br/>
224
							</xsl:for-each>
225
						</td>
226
					</tr>
227
				</xsl:if>
228
				
229
				<xsl:variable name="dc-publishers"
230
					select=".//dim:field[@element='publisher'][@mdschema='dc']"/>
231
				
232
				<xsl:if test="$dc-publishers != ''">
233
					<tr class="ds-table-row">
234
						<td>
235
							<xsl:choose>
236
								<xsl:when test="count($dc-publishers) &gt; 1">
237
									<span class="bold">Publishers</span>
238
								</xsl:when>
239
								<xsl:otherwise>
240
									<span class="bold">Publisher</span>
241
								</xsl:otherwise>
242
							</xsl:choose>
243
						</td>
244
						<td>
245
							<xsl:for-each select="$dc-publishers">
246
								<xsl:value-of select="."/><br/>
247
							</xsl:for-each>
248
						</td>
249
					</tr>
250
				</xsl:if>
251
				
252
				<xsl:variable name="dc-date"
253
					select=".//dim:field[@element='date'][not(@qualifier)][@mdschema='dc']"/>
254
				
255
				<xsl:if test="$dc-date != ''">
256
					<tr class="ds-table-row">
257
						<td>
258
								<span class="bold">Published</span>
259
						</td>
260
						<td>
261
							<xsl:value-of select="$dc-date[1]"/>
262
						</td>
263
					</tr>
264
				</xsl:if>
265
			</xsl:if>
266

    
267
			<xsl:variable name="description">
268
				<xsl:for-each select=".//dim:field[@element='description'][not(@qualifier='provenance')]">
269
					<xsl:copy-of select="node()"/>
270
					<br/>
271
				</xsl:for-each>
272
			</xsl:variable>
273

    
274
			<xsl:if test="$description!=''">
275
				<tr class="ds-table-row">
276
					<td>
277
						<xsl:choose>
278
							<xsl:when test="//dim:field[@element='relation'][@qualifier='ispartof']">
279
								<span class="bold">Description</span>
280
							</xsl:when>
281
							<xsl:otherwise>
282
								<span class="bold">Abstract</span>
283
							</xsl:otherwise>
284
						</xsl:choose>
285
					</td>
286
					<td>
287
						<xsl:copy-of select="$description"/>
288
					</td>
289
					<td> </td>
290
				</tr>
291
			</xsl:if>
292

    
293
			<xsl:variable name="describedBy">
294
				<xsl:for-each select=".//dim:field[@element='relation' and @qualifier='ispartof']">
295
					<a>
296
						<xsl:attribute name="href">
297
							<xsl:call-template name="checkURL">
298
								<xsl:with-param name="url" select="."/>
299
								<xsl:with-param name="localize" select="$localize"/>
300
							</xsl:call-template>
301
						</xsl:attribute>
302
						<xsl:copy-of select="."/>
303
					</a>
304
					<br/>
305
				</xsl:for-each>
306
			</xsl:variable>
307
			<xsl:if test="$describedBy!=''">
308
				<tr class="ds-table-row">
309
					<td>
310
						<span class="bold">Contained in Data Package</span>
311
					</td>
312
					<td>
313
						<xsl:copy-of select="$describedBy"/>
314
					</td>
315
					<td> </td>
316
				</tr>
317
			</xsl:if>
318

    
319
			<xsl:variable name="sciNames">
320
				<xsl:for-each select=".//dim:field[@element='ScientificName']">
321
					<xsl:copy-of select="node()"/>
322
					<br/>
323
				</xsl:for-each>
324
			</xsl:variable>
325
			<xsl:if test="$sciNames!=''">
326
				<tr class="ds-table-row">
327
					<td>
328
						<span class="bold">Scientific Names</span>
329
					</td>
330
					<td>
331
						<xsl:copy-of select="$sciNames"/>
332
					</td>
333
					<td> </td>
334
				</tr>
335
			</xsl:if>
336

    
337
			<xsl:variable name="spatialCoverage">
338
				<xsl:for-each select=".//dim:field[@element='coverage'][@qualifier='spatial']">
339
					<xsl:copy-of select="node()"/>
340
					<br/>
341
				</xsl:for-each>
342
			</xsl:variable>
343
			<xsl:if test="$spatialCoverage!=''">
344
				<tr class="ds-table-row">
345
					<td>
346
						<span class="bold">Spatial Coverage</span>
347
					</td>
348
					<td>
349
						<xsl:copy-of select="$spatialCoverage"/>
350
					</td>
351
					<td> </td>
352
				</tr>
353
			</xsl:if>
354

    
355
			<xsl:variable name="temporalCoverage">
356
				<xsl:for-each select=".//dim:field[@element='coverage'][@qualifier='temporal']">
357
					<xsl:copy-of select="node()"/>
358
					<br/>
359
				</xsl:for-each>
360
			</xsl:variable>
361
			<xsl:if test="$temporalCoverage!=''">
362
				<tr class="ds-table-row">
363
					<td>
364
						<span class="bold">Temporal Coverage</span>
365
					</td>
366
					<td>
367
						<xsl:copy-of select="$temporalCoverage"/>
368
					</td>
369
					<td> </td>
370
				</tr>
371
			</xsl:if>
372

    
373
			<xsl:variable name="keywords">
374
				<xsl:for-each select=".//dim:field[@element='subject'][@mdschema='dc'][not(@qualifier)]">
375
					<xsl:copy-of select="node()"/>
376
					<br/>
377
				</xsl:for-each>
378
			</xsl:variable>
379
			<xsl:if test="$keywords!=''">
380
				<tr class="ds-table-row">
381
					<td>
382
						<span class="bold">Keywords</span>
383
					</td>
384
					<td>
385
						<xsl:copy-of select="$keywords"/>
386
					</td>
387
					<td> </td>
388
				</tr>
389
			</xsl:if>
390

    
391
			<xsl:if test=".//dim:field[@element='identifier'][not(@qualifier)][contains(., 'dryad.')]">
392
				<tr class="ds-table-row">
393
					<td>
394
						<span class="bold">Date Deposited</span>
395
					</td>
396
					<td>
397
						<xsl:copy-of select=".//dim:field[@element='date' and @qualifier='accessioned']"/>
398
					</td>
399
					<td> </td>
400
				</tr>
401
			</xsl:if>
402

    
403
		</table>
404

    
405
		<!-- we only want this view from item view - not the administrative pages -->
406
		<xsl:if test="$meta[@qualifier='URI' and contains(.., 'handle')]">
407
			<div style="padding: 10px; margin-top: 5px; margin-bottom: 5px;">
408
				<a href="?show=full">Show Full Metadata</a>
409
			</div>
410
		</xsl:if>
411

    
412
		<xsl:variable name="embargoedDate"
413
			select=".//dim:field[@element='date' and @qualifier='embargoedUntil']"/>
414
		<xsl:variable name="embargoType">
415
			<xsl:choose>
416
				<xsl:when test=".//dim:field[@element='type' and @qualifier='embargo']">
417
					<xsl:value-of select=".//dim:field[@element='type' and @qualifier='embargo']"/>
418
				</xsl:when>
419
				<xsl:otherwise>
420
					<xsl:text>unknown</xsl:text>
421
				</xsl:otherwise>
422
			</xsl:choose>
423
		</xsl:variable>
424
		<xsl:choose>
425
			<xsl:when test="$embargoedDate!=''">
426
				<!-- this all might be overkill, need to confirm embargoedDate element disappears after time expires -->
427
				<xsl:variable name="dateDiff">
428
					<xsl:call-template name="datetime:difference">
429
						<xsl:with-param name="start" select="datetime:date()"/>
430
						<xsl:with-param name="end" select="datetime:date($embargoedDate)"/>
431
					</xsl:call-template>
432
				</xsl:variable>
433
				<xsl:choose>
434
					<xsl:when test="$embargoedDate='9999-01-01' and $embargoType='oneyear'">
435
						<div id="embargo_notice">
436
							<i18n:text>xmlui.ArtifactBrowser.RestrictedItem.head_resource.oneyear</i18n:text>
437
						</div>
438
					</xsl:when>
439
					<xsl:when
440
						test="$embargoedDate='9999-01-01' and ($embargoType='untilArticleAppears' or $embargoType='unknown')">
441
						<div id="embargo_notice">
442
							<i18n:text>xmlui.ArtifactBrowser.RestrictedItem.head_resource.publication</i18n:text>
443
						</div>
444
					</xsl:when>
445
					<xsl:when test="not(starts-with($dateDiff, '-'))">
446
						<div id="embargo_notice">
447
							<i18n:text>xmlui.ArtifactBrowser.RestrictedItem.head_resource</i18n:text>
448
							<xsl:value-of select="$embargoedDate"/>
449
						</div>
450
					</xsl:when>
451
					<xsl:otherwise>
452
						<xsl:call-template name="checkedAndNoEmbargo"/>
453
					</xsl:otherwise>
454
				</xsl:choose>
455
			</xsl:when>
456
			<xsl:when test="./mets:fileSec/mets:fileGrp[@USE='CONTENT']">
457
				<xsl:call-template name="checkedAndNoEmbargo"/>
458
			</xsl:when>
459
		</xsl:choose>
460

    
461
		<xsl:apply-templates select="./mets:fileSec/mets:fileGrp[@USE='CC-LICENSE' or @USE='LICENSE']"/>
462

    
463
		<xsl:if
464
			test=".//dim:field[@element='rights'][.='http://creativecommons.org/publicdomain/zero/1.0/']">
465
			<xsl:choose>
466
				<!-- this all might be overkill, need to confirm embargoedDate element disappears after time expires -->
467
				<xsl:when test="$embargoedDate!=''">
468
					<xsl:variable name="dateDiff">
469
						<xsl:call-template name="datetime:difference">
470
							<xsl:with-param name="start" select="datetime:date()"/>
471
							<xsl:with-param name="end" select="datetime:date($embargoedDate)"/>
472
						</xsl:call-template>
473
					</xsl:variable>
474
					<xsl:if test="starts-with($dateDiff, '-')">
475
						<div style="padding-top: 10px;">
476
							<i18n:text>xmlui.dri2xhtml.METS-1.0.license-cc0</i18n:text>
477
							<xsl:text> &#160; </xsl:text>
478
							<a href="http://creativecommons.org/publicdomain/zero/1.0/" target="_blank">
479
								<img src="knb/style/skins/mets/cc-zero.png"/>
480
							</a>
481
							<a href="http://opendefinition.org/">
482
								<img src="/knb/style/skins/mets/opendata.png"/>
483
							</a>
484
						</div>
485
					</xsl:if>
486
				</xsl:when>
487
				<xsl:otherwise>
488
					<div style="padding-top: 10px;">
489
						<i18n:text>xmlui.dri2xhtml.METS-1.0.license-cc0</i18n:text>
490
						<xsl:text> &#160; </xsl:text>
491
						<a href="http://creativecommons.org/publicdomain/zero/1.0/" target="_blank">
492
							<img src="/knb/style/skins/mets/cc-zero.png"/>
493
						</a>
494
						<a href="http://opendefinition.org/">
495
							<img src="/knb/style/skins/mets/opendata.png"/>
496
						</a>
497
					</div>
498
				</xsl:otherwise>
499
			</xsl:choose>
500
		</xsl:if>
501
		</div>
502
		<xsl:call-template name="bodyfooter"/>
503
		</div>
504
		</body>
505
		</html>
506
		
507
	</xsl:template>
508
	
509
	<xsl:template name="documenthead">
510
		<head>
511
			<title>Data Repository
512
			
513
            </title>
514
                        
515
			<link rel="stylesheet" type="text/css"
516
				href="{$contextURL}/style/skins/{$qformat}/{$qformat}.css" />
517
			<script language="Javascript" type="text/JavaScript"
518
				src="{$contextURL}/style/skins/{$qformat}/{$qformat}.js" />
519
			<script language="Javascript" type="text/JavaScript"
520
				src="{$contextURL}/style/common/branding.js" />
521
			<link rel="stylesheet" type="text/css"
522
				href="{$contextURL}/style/skins/{$qformat}/{$qformat}.css" />
523

    
524
			<script language="JavaScript">
525
				<![CDATA[
526
         		function submitform(action,form_ref) {
527
             		form_ref.action.value=action;
528
             		form_ref.sessionid.value="]]><xsl:value-of select="$sessid" /><![CDATA[";
529
             		form_ref.qformat.value="]]><xsl:value-of select="$qformat" /><![CDATA[";
530
		            form_ref.submit();
531
         		}
532
				]]>
533
			</script>
534
		</head>
535
	</xsl:template>
536
	
537
	<xsl:template name="bodyheader">
538
		<!-- header here -->
539
		<script language="JavaScript">
540
			insertTemplateOpening('<xsl:value-of select="$contextURL" />');
541
		</script>
542
	</xsl:template>
543
	
544
	<xsl:template name="bodyfooter">
545
		<!-- footer here -->
546
		<script language="JavaScript">
547
			insertTemplateClosing('<xsl:value-of select="$contextURL" />');
548
		</script>
549
	</xsl:template>
550

    
551
	<xsl:template name="checkedAndNoEmbargo">
552
		<table class="ds-table file-list">
553
			<tr class="ds-table-header-row"> </tr>
554
			<tr>
555
				<xsl:apply-templates select="./mets:fileSec/mets:fileGrp[@USE='CONTENT']">
556
					<xsl:with-param name="context" select="."/>
557
					<xsl:with-param name="primaryBitstream"
558
						select="./mets:structMap[@TYPE='LOGICAL']/mets:div[@TYPE='DSpace Item']/mets:fptr/@FILEID"
559
					/>
560
				</xsl:apply-templates>
561
			</tr>
562
		</table>
563
	</xsl:template>
564

    
565

    
566
</xsl:stylesheet>
(3-3/6)