source: main/trunk/model-sites-dev/eurovision-lod/collect/eurovision/transform/pages/document.xsl@ 36018

Last change on this file since 36018 was 36018, checked in by davidb, 2 years ago

Improvements in what and how document metadata is displayed

File size: 16.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:java="http://xml.apache.org/xslt/java"
5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
6 xmlns:gslib="http://www.greenstone.org/skinning"
7 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
8 extension-element-prefixes="java util"
9 exclude-result-prefixes="java util gsf">
10
11 <!--
12 <img src="interfaces/{$interface_name}/images/iworld.gif"/>
13 -->
14
15 <xsl:template name="documentHeading">
16 <gsf:script src="sites/{$site_name}/collect/{$collName}/js/jquery.show-more.js"/>
17
18 <span style="font-weight:bold; font-size: 120%;">
19 <gsf:switch>
20 <gsf:metadata name='FromCountry'/>
21 <gsf:when test='exists'>
22 <gsf:metadata name='FromCountry'/>
23 voting in
24 <gsf:metadata name='FromCountryYear'/>
25 </gsf:when>
26 <gsf:otherwise>
27 <xsl:call-template name="choose-title"/>
28 </gsf:otherwise>
29 </gsf:switch>
30 </span>
31 <div style="clear:both;"><xsl:text> </xsl:text></div>
32
33 <div>
34 <style>
35 table.esc-metadata tr:nth-child(odd) {
36 background-color: rgba(255,255,255,0.2);
37 }
38 table.esc-metadata tr:nth-child(even) {
39 background-color: rgba(255,255,255,0.0);
40 }
41
42 table.esc-metadata {
43 margin-top: 5px;
44 min-width: 650px;
45 padding: 10px;
46 }
47 </style>
48
49 <!-- prov:wasDerivedFrom -->
50 <xsl:variable name="escyear"><gsf:metadata name="Year"/></xsl:variable>
51
52 <div style="float: right;">
53 <gsf:switch>
54 <gsf:metadata name='YearLogoImg'/>
55 <gsf:when test='exists'>
56 <style>
57 div.esc-logo { height: 100px; width: 180px;}
58 div.esc-logo img { width: 100%; height: 100%; object-fit: scale-down; background-color: #fff}
59 </style>
60 <div class="esc-logo">
61 <a target="_blank" class="esc-logo" title="Access Wikipedia article about the contenst this year"
62 href="https://en.wikipedia.org/wiki/Eurovision_Song_Contest_{$escyear}">
63 <gsf:metadata name="YearLogoImg"/>
64 <!--
65 <img style="vertical-align: top;"
66 src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII="
67 alt="external link" />
68 -->
69 </a>
70 </div>
71 </gsf:when>
72 <gsf:otherwise>
73 <gsf:space/>
74 </gsf:otherwise>
75 </gsf:switch>
76 </div>
77
78 <table
79 prefix="mo: http://purl.org/ontology/mo/
80 dc: http://purl.org/dc/elements/1.1/
81 xsd: http://www.w3.org/2001/XMLSchema#
82 tl: http://purl.org/NET/c4dm/timeline.owl#
83 event: http://purl.org/NET/c4dm/event.owl#
84 foaf: http://xmlns.com/foaf/0.1/
85 rdfs: http://www.w3.org/2000/01/rdf-schema#"
86
87 class="esc-metadata" style="float: left;">
88
89 <gsf:switch>
90 <gsf:metadata name='FromCountry'/>
91 <gsf:when test='exists'>
92 <tr>
93 <td>
94 Voting Type:
95 </td>
96 <td>
97 <!--
98 <gsf:switch>
99 <gsf:metadata name='FromCountryType'/>
100 <gsf:when test="equals" test-value="J">
101 Jury
102 </gsf:when>
103 <gsf:when test="equals" test-value="T">
104 Televotes
105 </gsf:when>
106 <gsf:otherwise>
107 Separate Jury and Televotes Added Together
108 </gsf:otherwise>
109 </gsf:switch>
110
111 -->
112
113 <gsf:switch>
114 <gsf:metadata name='FromCountryNuancedType'/>
115 <gsf:when test="equals" test-value="J">
116 Jury
117 </gsf:when>
118 <gsf:when test="equals" test-value="T">
119 Televotes
120 </gsf:when>
121 <gsf:when test="equals" test-value="C">
122 Combined Jury and Televotes
123 </gsf:when>
124 <gsf:otherwise>
125
126 <gsf:switch>
127 <gsf:metadata name='FromCountryType'/>
128 <gsf:when test="equals" test-value="J">
129 Jury
130 </gsf:when>
131 <gsf:when test="equals" test-value="T">
132 Televotes
133 </gsf:when>
134 <gsf:otherwise> <!-- JT -->
135 Separate Jury and Televotes Added Together
136 </gsf:otherwise>
137 </gsf:switch>
138
139 </gsf:otherwise>
140 </gsf:switch>
141
142
143 </td>
144 </tr>
145 <tr>
146 <td>
147 Votes cast by:
148 </td>
149 <td>
150 <gsf:metadata name="FromCountry" highlight="highlight" />
151 </td>
152 </tr>
153 <tr>
154 <td>
155 Year:
156 </td>
157 <td>
158 <gsf:metadata name="FromCountryYear" highlight="highlight" />
159 </td>
160 </tr>
161 </gsf:when>
162
163 <gsf:otherwise>
164 <tr>
165 <td>
166 <!--
167 XX<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'Artist')"/>XX
168 -->
169 Title:
170 </td>
171 <td>
172 <gsf:switch>
173 <gsf:metadata name='WikipediaURL_uri' />
174 <gsf:when test='exists'>
175
176 <a target="_blank">
177 <xsl:attribute name="href">
178 <gsf:metadata name="WikipediaURL_uri" />
179 </xsl:attribute>
180
181 <span typeof="mo:Track" about="#track-1">
182 <span property="dc:title"><gsf:metadata name="Title" highlight="highlight" /></span>
183 </span>
184 @ Wikipedia
185 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
186 </a>
187 </gsf:when>
188 <gsf:otherwise>
189 <span typeof="mo:Track" about="#track-1">
190 <span property="dc:title"><gsf:metadata name="Title" highlight="highlight" /></span>
191 </span>
192 </gsf:otherwise>
193 </gsf:switch>
194 </td>
195 </tr>
196 </gsf:otherwise>
197 </gsf:switch>
198
199 <gsf:switch>
200 <gsf:metadata name='Creator'/>
201 <gsf:when test='exists'>
202 <tr>
203 <td>
204 Artist:
205 </td>
206 <td>
207 <span property="foaf:name"><gsf:metadata name="Creator" highlight="highlight" /></span>
208 </td>
209 </tr>
210 </gsf:when>
211 </gsf:switch>
212
213 <gsf:switch>
214 <gsf:metadata name='Country'/>
215 <gsf:when test='exists'>
216 <tr>
217 <td>
218 Country:
219 </td>
220 <td>
221
222 <gsf:switch>
223 <gsf:metadata name='FlagImg'/>
224 <gsf:when test='exists'>
225 <span style="padding-right: 6px;"><gsf:metadata name="FlagImg"/></span>
226 </gsf:when>
227 </gsf:switch>
228
229 <gsf:metadata name="Country" highlight="highlight" />
230
231 </td>
232 </tr>
233 </gsf:when>
234 </gsf:switch>
235
236 <gsf:switch>
237 <gsf:metadata name='Year'/>
238 <gsf:when test='exists'>
239 <tr>
240 <td>
241 Year:
242 </td>
243 <td>
244 <gsf:variable name="Year"><gsf:metadata name="Year"/></gsf:variable>
245 <span property="dc:coverage" datatype="xsd:date" content="{$Year}"><gsf:metadata name="Year" highlight="highlight" /></span>
246
247 <!--
248 <a target="_blank" href="https://en.wikipedia.org/wiki/Eurovision_Song_Contest_{$escyear}">
249 Eurovision <gsf:metadata name="Year" highlight="highlight" />
250 @ Wikipedia
251 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
252 </a>
253 -->
254
255 </td>
256 </tr>
257 </gsf:when>
258 </gsf:switch>
259
260
261 <gsf:switch>
262 <gsf:metadata name='essentia.rhythm_bpm'/>
263 <gsf:when test='exists'>
264 <tr>
265 <td>
266 Beats per minute (bpm):
267 </td>
268 <td>
269 <gsf:variable name="BPM"><gsf:metadata name="essentia.rhythm_bpm" /></gsf:variable>
270 <span property="mo:bpm" datatype="xsd:float" content="{$BPM}" id="essentia-rhythm_bpm"></span>
271 <gsf:script>
272 $( document ).ready(function() {
273 var bpm = Math.round(gs.documentMetadata["essentia_rhythm_bpm"])
274 $("#essentia-rhythm_bpm").html(bpm)
275 })
276 </gsf:script>
277 </td>
278 </tr>
279 </gsf:when>
280 </gsf:switch>
281
282
283 <gsf:switch>
284 <gsf:metadata name='essentia.tonal_key_edma_key'/>
285 <gsf:when test='exists'>
286 <tr>
287 <td>
288 Estimated Key:
289 </td>
290 <td>
291 <gsf:metadata name="essentia.tonal_key_edma_key" highlight="highlight" /><gsf:space/><gsf:metadata name="essentia.tonal_key_edma_scale" highlight="highlight" />
292 </td>
293 </tr>
294 </gsf:when>
295 </gsf:switch>
296
297
298
299 </table>
300
301 <div style="clear:both;"><xsl:text> </xsl:text></div>
302
303 <gsf:switch>
304 <gsf:metadata name='lyrics'/>
305 <gsf:when test='exists'>
306 <div style="padding-top: 10px; padding-bottom: 0px;">
307 <hr />
308 <div>
309 <b>Lyrics:</b>
310 </div>
311 <div id="lyrics-div-show-more">
312 <div id="lyrics-div" style="display: none;">
313 <span property="mo:lyrics" datatype="xsd:string" id="lyrics"><gsf:metadata name="lyrics" highlight="highlight" pos="first"/></span>
314 </div>
315 </div>
316
317 <gsf:script>
318 $( document ).ready(function() {
319 var lyrics = $('#lyrics').html();
320 lyrics = lyrics.replace(/\\\\n\\n/g,"⏎⏎")
321 lyrics = lyrics.replace(/\\\\n/g,"⏎")
322 lyrics = lyrics.replace(/⏎⏎/g,"&lt;hr class=\"verse-divider\"/&gt;")
323 lyrics = lyrics.replace(/⏎/g," ⏎ ")
324
325 $("#lyrics").html(lyrics)
326 $("#lyrics-div").show()
327
328 $('#lyrics-div-show-more').showMore({
329 minheight: 0,
330 buttontxtmore:"show more ...",
331 buttontxtless:"... show less"
332 });
333
334 })
335 </gsf:script>
336 <hr />
337
338 </div>
339 </gsf:when>
340 </gsf:switch>
341 </div>
342
343
344 </xsl:template>
345
346 <xsl:template name="documentContentFromCountry">
347 <div id="from-country-votes">
348 <gsf:script>
349 $(document).ready(function() {
350 append_all_from_country_votes();
351 });
352
353 window.addEventListener("resize", function() { append_all_from_country_votes() });
354 </gsf:script>
355 </div>
356 </xsl:template>
357
358 <xsl:template name="documentContentEntry">
359 <gsf:switch>
360 <gsf:metadata name='Abstract_en'/>
361 <gsf:when test='exists'>
362 <div style="padding-top: 10px;padding-bottom: 10px; font-style: italic;">
363 <gsf:metadata name='Abstract_en'/>
364 </div>
365 </gsf:when>
366 </gsf:switch>
367
368 <div id="to-country-votes">
369 <gsf:switch>
370 <gsf:metadata name='FinishingPos'/>
371 <gsf:when test='exists'>
372 <h2>
373 Overall Final Postion: <gsf:metadata name='FinishingPos'/>
374 </h2>
375 </gsf:when>
376 </gsf:switch>
377
378 <gsf:script>
379 $(document).ready(function() {
380 append_all_to_country_votes();
381 });
382
383 window.addEventListener("resize", function() { append_all_to_country_votes() });
384 </gsf:script>
385
386 </div>
387
388 <div style="padding-top: 6px;">
389 <hr />
390 </div>
391 <div id="find-more-content">
392 Find more content about this Eurovision entry on-line:
393
394 <ul>
395
396 <gsf:switch>
397 <gsf:metadata name='song_robust_uri' />
398 <gsf:when test='exists'>
399
400 <li>
401 <a target="_blank">
402 <xsl:attribute name="href">
403 <gsf:metadata name="song_robust_uri" />
404 </xsl:attribute>
405 @ DBpedia (direct URI to linked data)
406 <gsf:space/>
407 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
408 </a>
409 </li>
410 </gsf:when>
411 </gsf:switch>
412
413
414 <gsf:switch>
415 <gsf:metadata name='youtube_url'/>
416 <gsf:when test='exists'>
417 <li>
418 <a target="_blank">
419 <xsl:attribute name="href"><gsf:metadata name="youtube_url"/></xsl:attribute>
420 @ <img src="sites/{$site_name}/collect/{$collName}/images/yt_logo_rgb_dark75.png"/>
421 <gsf:space/>
422 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
423 </a>
424 </li>
425 <li>
426 <a target="_blank">
427 <xsl:attribute name="href">
428 //www.google.com/search?q=Eurovision+<gsf:metadata name="Title"/>+<gsf:metadata name="Country"/>
429 </xsl:attribute>
430 Google Web Search
431 <gsf:space/>
432 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
433 </a>
434 </li>
435 </gsf:when>
436 <gsf:otherwise>
437 <li>
438 <a target="_blank">
439 <xsl:attribute name="href">
440 //www.google.com/search?q=Eurovision+<gsf:metadata name="Title"/>+<gsf:metadata name="Country"/>
441 </xsl:attribute>
442 Google Web Search (including <img src="sites/{$site_name}/collect/{$collName}/images/yt_logo_rgb_dark75.png"/>)
443 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
444 </a>
445 <gsf:space/>
446 <!--
447 <a target="_blank">
448 <xsl:attribute name="href">
449 //www.google.com/search?q=Eurovision+<gsf:metadata name="Title"/>+<gsf:metadata name="Country"/>
450 </xsl:attribute>
451 and Google Web Search
452 </a>
453 -->
454 </li>
455 </gsf:otherwise>
456 </gsf:switch>
457
458
459 <!--
460 <li>
461 <a target="_blank">
462 <xsl:attribute name="href">
463 //www.google.com/search?q=<gsf:metadata name="Creator"/>+<gsf:metadata name="Title"/>+site:genius.com
464 </xsl:attribute>
465 @ Genius.com (lyrics search)
466 <gsf:space/>
467 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
468 </a>
469 </li>
470 -->
471
472 <li>
473 <a target="_blank">
474 <xsl:attribute name="href">
475 //www.google.com/search?q=<gsf:metadata name="Creator"/>+<gsf:metadata name="Title"/>+site:ultimate-guitar.com
476 </xsl:attribute>
477 Chord/Tab search @ Ultimate-Guitar
478 <gsf:space/>
479 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
480 </a>
481 </li>
482
483 <li>
484
485 <gsf:switch>
486 <gsf:metadata name="musicbrainz.title_id" />
487 <gsf:when test="exists">
488 <xsl:variable name="musicbrainz_title_id"><gsf:metadata name="musicbrainz.title_id" /></xsl:variable>
489 <a target="_blank" href="https://musicbrainz.org/recording/{$musicbrainz_title_id}">
490 MusicBrainz Recording ID <gsf:metadata name="musicbrainz.title_id" />
491 <gsf:space/>
492 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
493 </a>
494 </gsf:when>
495 <gsf:otherwise>
496 <a target="_blank">
497 <xsl:attribute name="href">
498 //www.google.com/search?q=&quot;<gsf:metadata name="Title"/>&quot; site:musicbrainz.org
499 </xsl:attribute>
500 Linked Open Data song title search @ MusicBrainz
501 <gsf:space/>
502 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=" alt="external link" />
503 </a>
504 </gsf:otherwise>
505 </gsf:switch>
506 </li>
507
508 <gsf:switch>
509 <gsf:metadata name="json.-AssocEssentia" />
510 <gsf:when test="exists">
511 <li>
512 <xsl:variable name="httpCollection"><xsl:value-of select="$library_name"/>/sites/<xsl:value-of select="$site_name"/>/collect/<xsl:value-of select="/page/pageResponse/collection/@name"/></xsl:variable>
513 <xsl:variable name="assocFilePath"><gsf:metadata name="assocfilepath" select="root"/></xsl:variable>
514 <gsf:variable name="AssocEssentiaJSON"><gsf:OID/>-AssocEssentia.json</gsf:variable>
515 <a download="{$AssocEssentiaJSON}" href="{$httpCollection}/index/assoc/{$assocFilePath}/{$AssocEssentiaJSON}">Download Audio Features</a>
516 </li>
517 </gsf:when>
518 </gsf:switch>
519
520 </ul>
521 </div>
522 <!--
523 google.com/webhp?##q=yourquery&btnI=I
524 -->
525
526 </xsl:template>
527
528 <xsl:template name="documentContent">
529
530 <gsf:switch>
531 <gsf:metadata name='FromCountry'/>
532 <gsf:when test='exists'>
533 <xsl:call-template name="documentContentFromCountry"/>
534 </gsf:when>
535 <gsf:otherwise>
536 <xsl:call-template name="documentContentEntry"/>
537 </gsf:otherwise>
538 </gsf:switch>
539
540 </xsl:template>
541
542</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.