root/main/trunk/model-sites-dev/multimodal-mdl/collect/trad-my-ipod/etc/collectionConfig.xml @ 28445

Revision 28445, 18.6 KB (checked in by davidb, 6 years ago)

Tweak to collection configuration file

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<CollectionConfig xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3  <metadataList>
4    <metadata name="creator"></metadata>
5    <metadata name="maintainer"></metadata>
6    <metadata name="public">true</metadata>
7  </metadataList>
8  <displayItemList>
9    <displayItem assigned="true" lang="en" name="name">Traditional MDL</displayItem>
10    <displayItem assigned="true" lang="en" name="description"></displayItem>
11  </displayItemList>
12  <!-- Global format statement -->
13  <format>
14    <gsf:template name="choose-title">
15     
16      <gsf:choose-metadata>
17    <gsf:metadata name="dc.Title"/>
18    <gsf:metadata name="exp.Title"/>
19    <gsf:metadata name="ex.dc.Title"/>
20    <gsf:metadata name="ex.ID3.Title"/>
21    <gsf:metadata name="ex.Title"/>
22    <gsf:metadata name="Title"/>
23    <gsf:default>Untitled</gsf:default>
24      </gsf:choose-metadata>
25     
26      <gsf:switch>
27    <gsf:metadata name='dc.Creator'/>
28    <gsf:when test='exists'>
29     
30      <gsf:switch>
31        <gsf:metadata name="dc.Creator"/>
32        <gsf:when test="notEquals" test-value="Unknown">
33         
34          by <i><gsf:metadata name='dc.Creator'/></i>
35        </gsf:when>
36      </gsf:switch>
37     
38    </gsf:when>
39      </gsf:switch>         
40    </gsf:template>   
41  </format>
42
43  <search type="lucene">
44    <level name="document">
45      <displayItem lang="en" name="name">document</displayItem>
46    </level>
47    <level name="section">
48      <displayItem lang="en" name="name">section</displayItem>
49    </level>
50    <defaultLevel name="document"/>
51    <index name="text">
52      <displayItem lang="en" name="name">text</displayItem>
53    </index>
54    <index name="dc.Title,ex.dc.Title,ex.ID3.Title,Title">
55      <displayItem lang="en" name="name">titles</displayItem>
56    </index>
57    <index name="Source">
58      <displayItem lang="en" name="name">filenames</displayItem>
59    </index>
60    <defaultIndex name="text"/>
61    <searchType name="plain"/>
62    <searchType name="simpleform"/>
63    <searchType name="advancedform"/>
64
65   
66    <!-- Search Format Statement -->
67    <format>
68      <gsf:template match="documentNode">
69
70    <gsf:variable name="cgiargFrameLength">
71      <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameLength']/@value"/>
72    </gsf:variable>
73
74    <xsl:variable name="cgiargYScaleSimImg"><xsl:choose>
75      <xsl:when test="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value"/></xsl:when>
76      <xsl:otherwise>0.5</xsl:otherwise>
77    </xsl:choose>
78    </xsl:variable>
79
80    <td valign="top">
81      <gsf:icon type="document"/>
82    </td>
83    <td>
84      <xsl:choose>
85        <xsl:when test="@rank != 'NaN'">
86          (<script>
87            var rank=<xsl:value-of select="@rank"/>;
88            var perc=(rank-0.9)*100*10;
89            document.write(perc.toFixed(1));
90           </script>%)
91        </xsl:when>
92      </xsl:choose>
93     
94      <xsl:choose>
95        <xsl:when test="/page/pageResponse/service[@name='AudioQuery']">
96          <a>
97            <xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="/page/pageResponse/collection/@name"/>/document/<xsl:value-of select="@nodeID"/>?p.frameOffset=<xsl:value-of select="@frameOffset"/>&amp;p.frameLength=<xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.length']/@value"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;p.yScaleSimImg=<xsl:value-of select="$cgiargYScaleSimImg"/>
98
99            </xsl:attribute>
100       
101                <xsl:call-template name="choose-title"/>
102          </a>
103        </xsl:when>
104        <xsl:otherwise>
105          <gsf:link>
106                <xsl:call-template name="choose-title"/>
107          </gsf:link>
108        </xsl:otherwise>
109      </xsl:choose>
110     
111      <gsf:switch>
112        <gsf:metadata name="artist"/>
113        <gsf:when test="exists">
114          by <gsf:metadata name="artist"/>
115        </gsf:when>
116      </gsf:switch>
117
118      <gsf:switch>
119        <gsf:metadata name="js.LabelledStructure"/>
120        <gsf:when test="exists">
121          <br/><i style="font-size: 80%">(Labelled structure: <gsf:metadata name="js.LabelledStructure"/>)</i>
122        </gsf:when>
123      </gsf:switch>
124     
125    </td>
126      </gsf:template>
127    </format>
128
129  </search>
130
131  <infodb type="jdbm"/>
132
133  <import>
134    <pluginList>
135      <plugin name="ZIPPlugin"/>
136      <plugin name="GreenstoneXMLPlugin"/>
137
138      <plugin name="EmbeddedMetadataPlugin">
139    <option name="-process_exp" value="(?i)\.mp3$"/>
140      </plugin>
141
142      <plugin name="AudioDBPlugin">
143    <option name="-enable_streaming" value="mp3"/>
144    <option name="-enable_cache"/>
145      </plugin>
146     
147      <plugin name="TextPlugin"/>
148      <plugin name="HTMLPlugin"/>
149      <plugin name="EmailPlugin"/>
150      <plugin name="PDFPlugin"/>
151      <plugin name="RTFPlugin"/>
152      <plugin name="WordPlugin"/>
153      <plugin name="PostScriptPlugin"/>
154      <plugin name="PowerPointPlugin"/>
155      <plugin name="ExcelPlugin"/>
156      <plugin name="ImagePlugin"/>
157      <plugin name="ISISPlugin"/>
158      <plugin name="NulPlugin"/>
159      <plugin name="OAIPlugin"/>
160      <plugin name="MetadataXMLPlugin"/>
161      <plugin name="ArchivesInfPlugin"/>
162      <plugin name="DirectoryPlugin"/>
163    </pluginList>
164  </import>
165
166  <importOption name="OIDtype" value="hash_on_full_filename"/>
167
168  <browse>
169    <classifier name="AZCompactList">
170      <option name="-metadata" value="dc.Title;ex.dc.Title;ex.ID3.Title;Title"/>
171      <option name="-mingroup" value="2"/>
172      <option name="-removeprefix" value="(?i)Le|La|Les|The|A\\s+"/>
173    </classifier>
174
175    <classifier name="AZCompactList">
176      <option name="-metadata" value="dc.Creator;ex.ID3.Artist"/>
177      <option name="-buttonname" value="Artists"/>
178      <option name="-mingroup" value="1"/>
179      <option name="-minnesting" value="40"/>
180    </classifier>
181
182    <classifier name="AZCompactList">
183      <option name="-metadata" value="dc.Title.albumtitle;ex.ID3.Album"/>
184      <option name="-buttonname" value="Albums"/>
185      <option name="-mingroup" value="1"/>
186      <option name="-minnesting" value="40"/>
187    </classifier>
188
189
190    <!--
191
192    <classifier name="List">
193      <option name="-metadata" value="dc.Title;Title"/>
194      <option name="-partition_type_within_level" value="approximate_size"/>
195    </classifier>
196    <classifier name="List">
197      <option name="-metadata" value="dc.Creator"/>
198      <option name="-button_name" value="Artists"/>
199      <option name="-partition_type_within_level" value="approximate_size"/>
200    </classifier>
201       
202    -->
203
204    <format>
205      <gsf:template match="documentNode">
206    <td valign="top">
207      <gsf:link type="document">
208        <gsf:icon type="document"/>
209      </gsf:link>
210    </td>
211    <td valign="top">
212      <gsf:link type="source">
213        <gsf:choose-metadata>
214          <gsf:metadata name="thumbicon"/>
215          <gsf:metadata name="srcicon"/>
216        </gsf:choose-metadata>
217      </gsf:link>
218    </td>
219    <td valign="top">
220      <gsf:link type="document">
221        <!-- Defined in the global format statement -->
222        <xsl:call-template name="choose-title"/>
223       
224        <gsf:switch>
225          <gsf:metadata name="dc.Title" />
226          <gsf:when test="equals" test-value="Unknown">
227        <br/><i>(<gsf:metadata name="Source"/>)</i>
228          </gsf:when>
229        </gsf:switch>
230       
231      </gsf:link>
232    </td>
233      </gsf:template>
234     
235      <gsf:template match="classifierNode[@classifierStyle = 'VList']">
236    <td valign="top">
237      <gsf:link type="classifier">
238        <gsf:icon type="classifier"/>
239      </gsf:link>
240    </td>
241    <td valign="top">
242      <gsf:link type="source">
243        <gsf:choose-metadata>
244          <gsf:metadata name="thumbicon"/>
245          <gsf:metadata name="srcicon"/>
246        </gsf:choose-metadata>
247      </gsf:link>
248    </td>
249    <td valign="top">
250      <!-- Defined in the global format statement -->
251      <xsl:call-template name="choose-title"/>
252      <gsf:switch>
253        <gsf:metadata name="Source"/>
254        <gsf:when test="exists"><br/><i>(<gsf:metadata name="Source"/>)</i></gsf:when>
255      </gsf:switch>
256    </td>
257      </gsf:template>
258      <gsf:template match="classifierNode[@classifierStyle = 'HList']">
259    <gsf:link type="classifier">
260      <gsf:metadata name="Title"/>
261    </gsf:link>
262      </gsf:template>
263    </format>
264  </browse>
265
266  <display>
267    <format>
268      <gsf:option name="TOC" value="false"/>
269
270      <!--
271       Overwriting this template allows you to change the heading of the document.
272      -->
273      <gsf:template name="documentHeading">
274   
275    <xsl:variable name="httpCollection">
276      <xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
277    </xsl:variable>
278
279    <!-- Metadata derived from finger-printing -->
280   
281    <xsl:call-template name="metadata-block">
282      <xsl:with-param name="httpCollection" select="$httpCollection"/>
283    </xsl:call-template>
284
285      </gsf:template>
286
287     
288      <!--
289       Overwriting this template can be used to redefine the content of the whole document.
290       This is useful for simple documents, but not recommended for more complex documents
291       (e.g. hierachical and paged documents) as it can prevent any sub-sections from showing.
292      -->
293      <!--
294       <gsf:template name="documentContent">
295       <xsl:call-template name="wrappedSectionImage"/>
296       <xsl:call-template name="wrappedSectionText"/>
297       </gsf:template>
298      -->
299
300      <!--
301      Overwriting this template can be used to change the content of section headings.
302      -->
303      <!--
304      <gsf:template name="sectionHeading">
305      <xsl:call-template name="choose-title"/>
306      </gsf:template>
307      -->
308     
309      <!--
310      Overwriting this template can be used to change the content of the top-level section.
311      -->
312      <!--
313      <gsf:template name="topLevelSectionContent">
314      <xsl:call-template name="wrappedSectionImage"/>
315      <xsl:call-template name="wrappedSectionText"/>
316      </gsf:template>
317      -->
318     
319      <!--
320      Overwriting this template can be used to change the content of sections.
321      -->
322
323      <!--
324      <gsf:template name="sectionContent">
325      <xsl:call-template name="wrappedSectionImage"/>
326      <xsl:call-template name="wrappedSectionText"/>
327      </gsf:template>
328      -->
329       
330      <xsl:template name="additionalHeaderContent">
331   
332
333    <xsl:call-template name="soundmanager2-header"/>
334    <xsl:call-template name="js-mad-header"/>
335   
336    <!-- Bespoke jquery-ui extension for turnstyle open/close blocks -->
337    <gsf:style  src="ext/jquery-ui-extra/turnstyle-block.css"/>
338    <gsf:script src="ext/jquery-ui-extra/turnstyle-block.js"/>
339   
340    <!-- The Javascript DSP files for computing chroma features in the browser -->
341    <xsl:call-template name="javascript-dsp-header"/>
342   
343
344    <!-- Javascript support for running, sending input into, monitoring, and stopping Meandre flows -->
345    <gsf:script src="ext/meandre/meandre-controller.js"/>
346
347    <gsf:style>
348      .metadata-stripes td { padding: 4px; }
349      .metadata-stripes tr:nth-child(odd)  {background: #CCC}
350      .metadata-stripes tr:nth-child(even) {background: #FFF}     
351     
352      .vis-heading  { font-style:italic; }
353
354      #rightSidebar { display: none; }
355    </gsf:style>
356   
357      </xsl:template>
358
359
360      <xsl:template name="documentContent">
361   
362<!--
363    <xsl:call-template name="init-document-xsl-vars"/>
364-->
365
366    <!-- declare $httpCollection = $httpPath (for better consistency with other places in Greenstone XSL files) -->
367    <xsl:variable name="httpCollection">
368      <xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
369    </xsl:variable>
370
371    <xsl:variable name="assocFilePath"><gsf:metadata name="assocfilepath" select="root"/></xsl:variable>
372    <xsl:variable name="Source"><gsf:metadata name="Source" select="root"/></xsl:variable>
373
374    <gsf:variable name="cgiargFrameOffset">
375      <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameOffset']/@value"/>
376    </gsf:variable>
377
378    <gsf:variable name="cgiargFrameLength">
379      <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameLength']/@value"/>
380    </gsf:variable>
381
382    <xsl:variable name="cgiargYScaleSimImg"><xsl:choose>
383      <xsl:when test="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value"/></xsl:when>
384      <xsl:otherwise>0.5</xsl:otherwise>
385    </xsl:choose>
386    </xsl:variable>
387   
388    <!-- CAA = Content Analysis Algorithm -->
389    <xsl:variable name="cgiargCAAlgorithm">
390      <xsl:choose>
391        <xsl:when test="/page/pageRequest/paramList/param[@name='p.caAlgorithm']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.caAlgorithm']/@value"/></xsl:when>
392        <xsl:otherwise>1</xsl:otherwise>
393      </xsl:choose>
394    </xsl:variable>
395
396    <!-- *** -->
397    <!-- Main Audio Player -->
398    <!-- *** -->
399
400    <div class="documenttext">
401
402<!--
403      <xsl:call-template name="audio-icon-cache"/>
404-->
405     
406      <xsl:call-template name="original-audio">
407        <xsl:with-param name="httpCollection" select="$httpCollection"/>
408        <xsl:with-param name="assocFilePath" select="$assocFilePath"/>
409      </xsl:call-template>
410
411
412      <hr/>
413
414<script>
415  <xsl:text disable-output-escaping="yes">
416    useFancyPlayer = 1;
417
418    /* if (window.location.toString().match(/fancyplayer/i)) { */
419    if (useFancyPlayer) {
420      PP_CONFIG.usePeakData = true;
421      PP_CONFIG.useEQData = true;
422      // PP_CONFIG.useFavIcon = true;
423    }
424
425    function onFinishSP()
426    {   
427      soundManager._onfinish();
428      togglePlayVisual(mainPlayButton);
429    }
430
431      var mySoundObj;
432
433    function playFromOffset(id,frameOffset)
434    {
435      var msecOffset = 250 * frameOffset;
436      idElem = document.getElementById(id);
437      pagePlayer.handleClick({target:idElem}); /* fake a click */
438      soundManager.stopAll();
439
440      var options = {};
441      options.position = msecOffset;
442
443      soundManager.play(id,options);
444
445      togglePlayMode = "pause";
446      playHighlightOff(document.getElementById("mainPlayButton"),32);
447    }
448
449    function preSubmit(form)
450    {
451      var currentPosElem = document.getElementById("mysongCurrentPos");
452      var offsetInMSecs = currentPosElem.getAttribute("offsetInMSecs");
453      var frameOffset = Math.round(offsetInMSecs/250.0);
454      form.elements["s1.offset"].value = frameOffset;
455
456      //var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
457      var lengthInSecs = form.elements["mysongWindowDuration"].value;
458
459      var frameLength = Math.round(lengthInSecs*1000/250.0);
460      form.elements["s1.length"].value = frameLength;
461
462      return true;
463    }
464
465    function searchSubmit(frameOffset)
466    {
467      var form = document.getElementById("QueryForm");
468
469      form.elements["s1.offset"].value = frameOffset;
470
471      //var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
472      var lengthInSecs = form.elements["mysongWindowDuration"].value;
473
474      var frameLength = Math.round(lengthInSecs*1000/250.0);
475      form.elements["s1.length"].value = frameLength;
476
477      form.submit();
478    }
479
480
481
482    function rescaleImage()
483    {
484      var form = document.getElementById("RescaleForm");
485
486      var rescaleSize = form.elements["ResizeScale"].value;
487
488      var currentURL = document.location.toString();
489      var newURL;
490      if (currentURL.match(/p.yScaleSimImg=(\d+(?:\.\d+))/)) {
491        newURL = currentURL.replace(/p.yScaleSimImg=(\d+(?:\.\d+))/,"p.yScaleSimImg="+rescaleSize);
492      }
493      else {
494        var urlParts = currentURL.split("#");
495    newURL = urlParts.shift();
496        newURL += "&amp;p.yScaleSimImg="+rescaleSize;
497    newURL += "#" + urlParts.join("#");
498      }
499
500      document.location = newURL;
501    }
502
503    function updateCAAlgorithm()
504    {
505
506      var form = document.getElementById("UpdateCAForm");
507
508      var caaMenu = form.elements["caAlgorithm"];
509
510      var caIndexPos = caaMenu.options[caaMenu.selectedIndex].value
511
512      var currentURL = document.location.toString();
513      var newURL;
514      if (currentURL.match(/p.caAlgorithm=(\d+)/)) {
515        newURL = currentURL.replace(/p.caAlgorithm=(\d+)/,"p.caAlgorithm="+caIndexPos);
516      }
517      else {
518        var urlParts = currentURL.split("#");
519    newURL = urlParts.shift();
520        newURL += "&amp;p.caAlgorithm="+caIndexPos;
521    newURL += "#" + urlParts.join("#");
522      }
523
524      document.location = newURL;
525
526    }
527
528
529
530  </xsl:text>
531
532</script>
533
534
535    </div>
536  </xsl:template>
537
538
539
540
541    </format>
542  </display>
543
544  <replaceListRef id="gs2-standard"/>
545  <replaceListRef id="gs2-image" />
546  <serviceRackList>
547    <!-- comment out the following serviceRack if you want to disable OAI for this collection -->
548    <serviceRack name="OAIPMH">
549      <ListMetadataFormats>
550    <!--What metadata sets to support is collection specific. To support other metadata schema, simply add a metadataFormat element here.
551        The support of unqualified Dublin Core metadata set is mandatory in the oai specification.
552    -->
553    <metadataFormat metadataPrefix="oai_dc">
554      <metadataPrefix>oai_dc</metadataPrefix>
555      <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
556      <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace>
557      <!--<metadataElements>dc.Title,dc.Creator,dc.Subject,dc.Description,dc.Publisher,dc.Contributor,dc.Date,dc.Type,dc.Format,dc.Identifier,dc.Source,dc.Language,dc.Relation,dc.Coverage,dc.Rights</metadataElements>-->
558      <mappingList>
559        <!--
560         The mapping is in the form: <publicly supported metadata name>,<mapped metadata name>, short as <A>,<B>
561         The first metadata name is medatory; if there is no mapped name followed, then the first name must be used by the records and
562         searchable in the database, otherwise it is the mapped name stored in the database. The number of mapping elements matches the
563         number of external metadata of the records. If only one name is present, the returned metadata will use this name plus the retrieved value;
564         if both <A>,<B> are present, the returned metadata will use <A>'s name plus <B>'s value retrieved from database.
565         
566         **Bear in mind: if this mapping list is not present, the standard dc. metadata names (15 in total) will be used to retrieve metadata in the database.
567         
568         **The only case when this mapping is not present is that: 1. this metadata format is oai_dc; 2. the metadata is also stored in the database by Dublin Core's names.
569        -->
570        <mapping>dc:title,Title</mapping>
571        <!-- This mapping example means that the dc.Title is requested and the value of the metadata Title, which is used in this repository, is returned as response. -->
572      </mappingList>
573    </metadataFormat>
574      </ListMetadataFormats>
575    </serviceRack>
576  </serviceRackList>
577</CollectionConfig>
Note: See TracBrowser for help on using the browser.