source: main/trunk/model-cols-dev/peijones/etc/collectionConfig.xml@ 24893

Last change on this file since 24893 was 24893, checked in by papitha, 12 years ago

Included History Timeline Glider

  • Property svn:executable set to *
File size: 21.8 KB
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><metadata lang="en" name="creator"></metadata><metadata lang="en" name="maintainer"></metadata><metadata lang="en" name="public">true</metadata></metadataList><displayItemList><displayItem assigned="true" lang="en" name="name">Pei-Jones-Flat</displayItem></displayItemList><search type="mgpp"><level name="document"><displayItem lang="en" name="name">document</displayItem></level><level name="section"><displayItem lang="en" name="name">section</displayItem></level><defaultLevel name="section"/><index name="text"><displayItem lang="en" name="name">text</displayItem></index><index name="Title"><displayItem lang="en" name="name">titles</displayItem></index><index name="Source"><displayItem lang="en" name="name">filenames</displayItem></index><index name="Plugin"/><defaultIndex name="text"/><indexOption><option name="accentfold"/><option name="casefold"/><option name="stem"/></indexOption><searchType name="plain"/><searchType name="simpleform"/><searchType name="advancedform"/><format><gsf:template match="documentNode"><td valign="top"><gsf:link type="document"><gsf:icon type="document"/></gsf:link></td><td><gsf:switch><gsf:metadata name="Title" select="ancestors" separator=": "/><gsf:when test="exists"><gsf:metadata name="Title" select="ancestors" separator=": "/>:</gsf:when></gsf:switch><gsf:link type="document"><gsf:metadata name="Title"/></gsf:link></td></gsf:template> </format></search><infodb type="gdbm"/><import><pluginList><plugin name="ZIPPlugin"/><plugin name="GreenstoneXMLPlugin"/><plugin name="TextPlugin"/><plugin name="HTMLPlugin"><option name="-process_exp" value="(timeglider.*)(?i)(\.html?)$"/><option name="-block_exp" value="(timeglider.*)(?i)(\.jpe?g|\.png|\.gif)$"/><option name="-keep_head"/></plugin><plugin name="EmailPlugin"/><plugin name="PDFPlugin"/><plugin name="RTFPlugin"/><plugin name="WordPlugin"/><plugin name="PostScriptPlugin"/><plugin name="PowerPointPlugin"/><plugin name="ExcelPlugin"/><plugin name="PagedImagePlugin"/><plugin name="ImagePlugin"/><plugin name="ISISPlugin"/><plugin name="NulPlugin"/><plugin name="OAIPlugin"/><plugin name="HTMLImagePlugin"/><plugin name="MetadataXMLPlugin"/><plugin name="ArchivesInfPlugin"/><plugin name="DirectoryPlugin"/></pluginList></import><browse><classifier name="List"><option name="-metadata" value="dc.Title;Title"/><option name="-partition_type_within_level" value="approximate_size"/><option name="-bookshelf_type" value="never"/></classifier><classifier name="AZCompactList"><option name="-metadata" value="Source"/><option name="-removesuffix" value="(?i)\\..*"/><option name="-buttonname" value="Source"/></classifier><format>
4 <gsf:template match="documentNode">
5 <td valign="top">
6 <gsf:link type="document">
7 <gsf:icon type="document"/>
8 </gsf:link>
9 </td>
10 <td valign="top">
11 <gsf:link type="source">
12 <gsf:choose-metadata>
13 <gsf:metadata name="thumbicon"/>
14 <gsf:metadata name="srcicon"/>
15 </gsf:choose-metadata>
16 </gsf:link>
17 </td>
18 <td valign="top">
19 <gsf:choose-metadata>
20 <gsf:metadata name="dc.Title"/>
21 <gsf:metadata name="exp.Title"/>
22 <gsf:metadata name="Title"/>
23 <gsf:default>Untitled</gsf:default>
24 </gsf:choose-metadata>
25 <gsf:switch>
26 <gsf:metadata name="Source"/>
27 <gsf:when test="exists">
28 <br/><i>(<gsf:metadata name="Source"/>)</i>
29 </gsf:when>
30 </gsf:switch>
31 </td>
32 </gsf:template>
33
34 <gsf:template match="classifierNode">
35 <td valign="top">
36 <gsf:link type="classifier">
37 <gsf:icon type="classifier"/>
38 </gsf:link>
39 </td>
40 <td valign="top">
41 <gsf:metadata name="srclink"/>
42 <gsf:choose-metadata>
43 <gsf:metadata name="thumbicon"/>
44 <gsf:metadata name="srcicon"/>
45 </gsf:choose-metadata>
46 <gsf:metadata name="/srclink"/>
47 </td>
48 <td valign="top">
49 <gsf:choose-metadata>
50 <gsf:metadata name="dc.Title"/>
51 <gsf:metadata name="exp.Title"/>
52 <gsf:metadata name="Title"/>
53 <gsf:default>Untitled</gsf:default>
54 </gsf:choose-metadata>
55 <gsf:switch>
56 <gsf:metadata name="Source"/>
57 <gsf:when test="exists">
58 <br/><i>(<gsf:metadata name="Source"/>)</i>
59 </gsf:when>
60 </gsf:switch>
61 </td>
62 </gsf:template>
63
64 <gsf:template match="classifierNode" mode="horizontal">
65 <gsf:link type="horizontal">
66 <gsf:metadata name="Title"/>
67 </gsf:link>
68 </gsf:template>
69 </format></browse><display><format>
70 <gsf:option name="sideBar" value="false"/>
71 <xsl:template name="additionalHeaderContent">
72 <!-- jQuery must be included before Annotator -->
73 <script src="sites/localsite/collect/peijones/js/annotator/lib/vendor/jquery.js"><xsl:text> </xsl:text></script>
74
75 <!-- If you're sure your users will only be using browsers modern
76 enough to have their own JSON.parse and JSON.stringify
77 implementations you can skip this -->
78 <script src="sites/localsite/collect/peijones/js/annotator/lib/vendor/json2.js"><xsl:text> </xsl:text></script>
79
80 <script src="sites/localsite/collect/peijones/js/annotator/pkg/annotator-full.min.js"><xsl:text> </xsl:text></script>
81 <!-- The main Annotator script -->
82 <!--<script src="sites/localsite/collect/peijones/js/annotator/pkg/annotator.min.js"><xsl:text> </xsl:text></script> -->
83
84 <!-- Annotator's styling and images -->
85 <link href="sites/localsite/collect/peijones/js/annotator/pkg/annotator.min.css" rel="stylesheet" type="text/css"/>
86
87 <!-- The following plugins are entirely optional -->
88
89 <!-- The Store plugin. Saves annotations to a remote backend -->
90 <!-- <script src="sites/localsite/collect/peijones/js/annotator/pkg/annotator.store.min.js"><xsl:text> </xsl:text></script> -->
91
92 <!-- The Auth plugin. Allows users of Annotator to authenticate themselves
93 to the remote backend -->
94 <!--<script src="sites/localsite/collect/peijones/js/annotator/pkg/annotator.auth.min.js"><xsl:text> </xsl:text></script> -->
95 <!-- The Permissions plugin. See who created which annotation and create
96 annotations as a specified user -->
97 <!--<script src="sites/localsite/collect/peijones/js/annotator/pkg/annotator.permissions.min.js"><xsl:text> </xsl:text></script> -->
98
99 <!-- The Tags plugin. Edit and display tag keywords on annotations -->
100 <!--<script src="sites/localsite/collect/peijones/js/annotator/pkg/annotator.tags.min.js"><xsl:text> </xsl:text></script> -->
101
102 <!-- The Markdown plugin. Treat annotation text as Markdown -->
103 <!-- <script src="sites/localsite/collect/peijones/js/annotator/lib/vendor/showdown.js"><xsl:text> </xsl:text></script> -->
104 <!-- <script src="sites/localsite/collect/peijones/js/annotator/pkg/annotator.markdown.min.js"><xsl:text> </xsl:text></script> -->
105
106 <!-- Photo note scripts -->
107 <script src="sites/localsite/collect/peijones/js/documentmaker/BrowserDetect.js" type="text/javascript"><xsl:text> </xsl:text></script>
108 <script src="sites/localsite/collect/peijones/js/documentmaker/PhotoNotes-1.5.js" type="text/javascript"><xsl:text> </xsl:text></script>
109 <link href="sites/localsite/collect/peijones/style/PhotoNotes-1.5.css" rel="stylesheet" type="text/css"/>
110
111 <!-- Zoom scripts -->
112 <!--<script src="interfaces/{$interface_name}/js/jquery-1.4.2.js" type="text/javascript"><xsl:text> </xsl:text></script>-->
113 <script src="sites/localsite/collect/peijones/js/documentmaker/zoomer.jquery.js" type="text/javascript"><xsl:text> </xsl:text></script> <link href="sites/localsite/collect/peijones/style/style.css" rel="stylesheet" type="text/css"/>
114 <script type="text/javascript">
115 <xsl:text disable-output-escaping="yes">
116 _zoomEnabled = true;
117 function readyImagesForZoom()
118 {
119 var noZoom = document.getElementById("noZoom");
120 var wrap = document.getElementById("wrap");
121 if(!noZoom || !wrap)
122 {
123 return;
124 }
125 var smallImageDiv = document.getElementById("small");
126 var smallImage = smallImageDiv.getElementsByTagName("img")[0];
127 smallImageDiv.style.width = smallImageWidth + "px";
128 smallImageDiv.style.height = smallImageHeight + "px";
129 var multiplier = largeImageHeight / smallImageHeight;
130 $("#wrap").anythingZoomer({
131 expansionSize:50,
132 speedMultiplier:multiplier
133 });
134
135 noZoom.onclick = function(){addZoom();}
136 document.getElementById("overlay").onclick = function(){removeZoom();}
137
138 removeZoom();
139 }
140 function addZoom()
141 {
142 if(!_zoomEnabled)
143 {
144 return;
145 }
146
147 var wrapper = document.getElementById("wrap");
148 var noZoom = document.getElementById("noZoom");
149
150 if(!noZoom || !wrapper)
151 {
152 return;
153 }
154
155 noZoom.style.display = "none";
156 wrapper.style.display = "block";
157 var option = document.getElementById("zoomOption");
158 if(option)
159 {
160 option.setAttribute("onclick", "removeZoom();");
161 }
162 }
163 function removeZoom()
164 {
165 if(!_zoomEnabled)
166 {
167 return;
168 }
169
170 var wrapper = document.getElementById("wrap");
171 var noZoom = document.getElementById("noZoom");
172
173 if(!noZoom || !wrapper)
174 {
175 return;
176 }
177
178 wrapper.style.display = "none";
179 noZoom.style.display = "block";
180 var option = document.getElementById("zoomOption");
181 if(option)
182 {
183 option.setAttribute("onclick", "addZoom();");
184 }
185 }
186 </xsl:text>
187 </script>
188 <script text="text/javascript">
189 <xsl:text disable-output-escaping="yes">
190
191 var _posCount = 0;
192 var _notes;
193 function initNotes()
194 {
195 /* create the Photo Note Container */
196 _notes = new PhotoNoteContainer(document.getElementById("noZoom"));
197 getNotes();
198 }
199
200 function deleteFunction(note)
201 {
202 var callback =
203 {
204 success: function(response)
205 {
206 var updateURL = gs.siteMetadata.siteURL.replace("8080","9090") + gs.xsltParams.library_name + "?a=s&amp;sa=c";
207
208 var updateCallback =
209 {
210 success: function(response){},
211 failed: function(){alert("Failed in deleteFunction() to update Greenstone server with: " + updateURL);}
212 };
213
214
215 YAHOO.util.Connect.asyncRequest("GET", updateURL, updateCallback);
216 },
217 failed: function(){ alert("Failed in deleteFunction() with note id: " + note.id)},
218 };
219
220 var status = true;
221
222 if (note &amp;&amp; note.id &amp;&amp; note.id &gt; 0) {
223 var metaposStr = note.id - 1;
224
225 var url = gs.siteMetadata.siteURL.replace("8080","9090") + "cgi-bin/metadata-server.pl?a=remove-metadata&amp;site=localsite&amp;c=" + gs.cgiParams.c + "&amp;d=" + gs.cgiParams.d + "&amp;metaname=gsimg.photoNote&amp;metapos=" + metaposStr;
226 YAHOO.util.Connect.asyncRequest("GET", url, callback);
227 }
228 else {
229 alert("Failed to find valid note data to delete");
230 status = false;
231 }
232
233 return status;
234 }
235
236 function saveFunction(note)
237 {
238 var callback =
239 {
240 success: function(response)
241 {
242 var updateURL = gs.siteMetadata.siteURL.replace("8080","9090") + gs.xsltParams.library_name + "?a=s&amp;sa=c";
243
244 var updateCallback =
245 {
246 success: function(response){},
247 failed: function(reponse){ alert("Failed in saveFunction() to update Greenstone server with: " + updateURL);}
248 };
249
250
251 YAHOO.util.Connect.asyncRequest("GET", updateURL, updateCallback);
252 },
253 failed: function(reponse){ alert("Failed in saveFunction() with note id: " + note.id)},
254 };
255
256 var jsonVal = '{"caption":"' + note.text + '", "area":{"x":' + note.rect.left + ', "y":' + note.rect.top + ', "width":' + note.rect.width + ', "height":' + note.rect.height + '}}';
257 var metaposStr = (note &amp;&amp; note.id &amp;&amp; note.id &gt; 0) ? note.id - 1 : _posCount;
258
259 var saveURL = gs.siteMetadata.siteURL.replace("8080","9090") + "cgi-bin/metadata-server.pl?a=set-metadata&amp;site=localsite&amp;c=" + gs.cgiParams.c + "&amp;d=" + gs.cgiParams.d + "&amp;metaname=gsimg.photoNote&amp;metavalue=" + jsonVal + "&amp;metapos=" + metaposStr;
260 YAHOO.util.Connect.asyncRequest("GET", saveURL, callback);
261
262 return 1;
263 }
264
265 function getNotes()
266 {
267 if(gs.variables.photoNotes == null || gs.variables.photoNotes == undefined)
268 {
269 console.log("No photo notes");
270 return;
271 }
272
273 for(var i = 0; i &lt; gs.variables.photoNotes.length; i++)
274 {
275 var note = gs.variables.photoNotes[i];
276 if(!note)
277 {
278 continue;
279 }
280 var newNote = new PhotoNote(note.caption, i+1, new PhotoNoteRect(note.area.x,note.area.y,note.area.width,note.area.height));
281 newNote.onsave = saveFunction;
282 newNote.ondelete = deleteFunction;
283 _notes.AddNote(newNote);
284 _posCount++;
285 }
286
287 addNoteOverAndOutHandlers();
288 }
289
290 function AddNote()
291 {
292 var newNote = new PhotoNote('Add note text here...',_posCount+1,new PhotoNoteRect(10,10,50,50));
293 newNote.onsave = saveFunction;
294 newNote.ondelete = deleteFunction;
295 _notes.AddNote(newNote);
296 _posCount++;
297
298 addNoteOverAndOutHandlers();
299 newNote.Select();
300 }
301
302 function addNoteOverAndOutHandlers()
303 {
304 var divs = document.getElementsByTagName("DIV");
305 for(var i = 0; i &lt; divs.length; i++)
306 {
307 if(divs[i].getAttribute("class") &amp;&amp; divs[i].getAttribute("class").search("fn-area") != -1)
308 {
309 divs[i].onmouseover = function(){_zoomEnabled = false;}
310 divs[i].onmouseout = function(){_zoomEnabled = true;}
311 }
312 }
313 }
314
315 window.onload = function(){initNotes(); readyImagesForZoom(); initAnnotator();};
316 </xsl:text>
317 </script>
318
319 <script text="text/javascript">
320 <xsl:text disable-output-escaping="yes">
321 function initAnnotator()
322 {
323 jQuery(function ($) {
324 if (typeof $.fn.annotator !== 'function') {
325 alert("Ooops! it looks like you haven't built the Annotator concatenation file. " + "Either download a tagged release from GitHub, or modify the Cakefile to point " + "at your copy of the YUI compressor and run `cake package`.");
326 } else {
327 /*
328 jQuery('#gs-document-text').annotator()
329 .annotator('addPlugin', 'Store', {
330 prefix: 'http://annotateit.org/api',
331 annotationData: {'uri':document.URL}
332 })
333 .annotator('addPlugin', 'Auth', {
334 userId: 'papitha', // Your AnnotateIt username
335 consumerKey: '39fc339cf058bd22176771b3e33c5dac', // Your Account Key
336 authToken: '852b7fc25396d2aedf9aeb44dd58518faa679dbf027892164bfb81900bd09741' // Your Auth Token
337 });
338 */
339
340 jQuery(function ($) {
341 // Include AnnotateIt credentials to load the store plugin.
342 $('#gs-document-text').annotator().annotator('setupPlugins', {
343 userId: 'papitha',
344 userName: 'Papitha',
345 accountId: '39fc339cf058bd22176771b3e33c5dac',
346 authToken: '852b7fc25396d2aedf9aeb44dd58518faa679dbf027892164bfb81900bd09741',
347 }, {
348 Store:
349 {
350 prefix: 'http://localhost:5000',
351 annotationData: {'uri':gs.cgiParams.c + "-" + gs.cgiParams.d},
352 loadFromSearch: {'uri':gs.cgiParams.c + "-" + gs.cgiParams.d}
353 }
354 });
355 });
356 }
357 });
358 }
359 </xsl:text>
360 </script>
361 </xsl:template>
362
363 <xsl:template name="documentImage">
364 <!-- Get the photo notes for this document node -->
365 <gsf:variable-struct name="photoNotes">
366 <gsf:metadata multiple="true" name="gsimg.photoNote" separator=", "/>
367 </gsf:variable-struct>
368
369 <!-- Get details about the image for zooming -->
370 <h3>
371 <gsf:choose-metadata>
372 <gsf:metadata name="dc.Title"/>
373 <gsf:metadata name="ex.Title"/>
374 </gsf:choose-metadata>
375 </h3>
376 <xsl:variable name="imageWidth">
377 <gsf:choose-metadata>
378 <gsf:metadata name="ImageWidth"/>
379 <gsf:default>-1</gsf:default>
380 </gsf:choose-metadata>
381 </xsl:variable>
382 <xsl:variable name="imageHeight">
383 <gsf:choose-metadata>
384 <gsf:metadata name="ImageHeight"/>
385 <gsf:default>-1</gsf:default>
386 </gsf:choose-metadata>
387 </xsl:variable>
388 <xsl:variable name="screenImageWidth">
389 <gsf:choose-metadata>
390 <gsf:metadata name="ScreenWidth"/>
391 <gsf:default>-1</gsf:default>
392 </gsf:choose-metadata>
393 </xsl:variable>
394 <xsl:variable name="screenImageHeight">
395 <gsf:choose-metadata>
396 <gsf:metadata name="ScreenHeight"/>
397 <gsf:default>-1</gsf:default>
398 </gsf:choose-metadata>
399 </xsl:variable>
400 <script type="text/javascript">
401 <xsl:text>largeImageHeight =</xsl:text><xsl:value-of select="$imageHeight"/><xsl:text>;</xsl:text>
402 <xsl:text>largeImageWidth =</xsl:text><xsl:value-of select="$imageWidth"/><xsl:text>;</xsl:text>
403 <xsl:text>smallImageHeight =</xsl:text><xsl:value-of select="$screenImageHeight"/><xsl:text>;</xsl:text>
404 <xsl:text>smallImageWidth =</xsl:text><xsl:value-of select="$screenImageWidth"/><xsl:text>;</xsl:text>
405 </script>
406 <div id="noZoom" style="display:block;">
407 <img style="width: {$screenImageWidth}; height: {$screenImageHeight};">
408 <xsl:attribute name="src">
409 <xsl:value-of disable-output-escaping="yes" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<gsf:metadata name="assocfilepath" select="root"/>/<gsf:metadata name="Screen"/>
410 </xsl:attribute>
411 </img>
412 <!--
413 <gsf:metadata name="screenicon"/>
414 -->
415 </div>
416 <!--<xsl:if test="$imageHeight != -1">-->
417 <div id="wrap" style="display:none; width: {$screenImageWidth}; height: {$screenImageHeight};">
418 <div id="small" style="width: {$screenImageWidth}; height: {$screenImageHeight};">
419 <!--
420 <gsf:metadata name="screenicon"/>
421 -->
422 <img style="width: {$screenImageWidth}; height: {$screenImageHeight};">
423 <xsl:attribute name="src">
424 <xsl:value-of disable-output-escaping="yes" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<gsf:metadata name="assocfilepath" select="root"/>/<gsf:metadata name="Screen"/>
425 </xsl:attribute>
426 </img>
427 </div>
428 <div id="mover">
429 <div id="overlay"><xsl:text> </xsl:text></div>
430 <div id="large">
431 <img style="width: {$imageWidth}; height: {$imageHeight};">
432 <xsl:attribute name="src">
433 <xsl:value-of disable-output-escaping="yes" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<gsf:metadata name="assocfilepath" select="root"/>/<gsf:metadata name="srclinkFile"/>
434 </xsl:attribute>
435 </img>
436 </div>
437 </div>
438 </div>
439 <input onclick="AddNote();" style="margin-left:30px;" type="button" value="Tag Photo!"/>
440 <!--</xsl:if>-->
441 </xsl:template>
442
443 </format></display><replaceListRef id="gs2-standard"/><replaceListRef id="gs2-image"/><serviceRackList>
444 <!-- comment out the following serviceRack if you want to disable OAI for this collection -->
445 <serviceRack name="OAIPMH">
446 <ListMetadataFormats>
447 <!--What metadata sets to support is collection specific. To support other metadata schema, simply add a metadataFormat element here.
448 The support of unqualified Dublin Core metadata set is mandatory in the oai specification.
449 -->
450 <metadataFormat metadataPrefix="oai_dc">
451 <metadataPrefix>oai_dc</metadataPrefix>
452 <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
453 <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace>
454 <!--<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>
455 -->
456 <mappingList>
457 <!--
458 The mapping is in the form: <publicly supported metadata name>,<mapped metadata name>, short as <A>,<B>
459 The first metadata name is medatory; if there is no mapped name followed, then the first name must be used by the records and
460 searchable in the database, otherwise it is the mapped name stored in the database. The number of mapping elements matches the
461 number of external metadata of the records. If only one name is present, the returned metadata will use this name plus the retrieved value;
462 if both <A>,<B> are present, the returned metadata will use <A>'s name plus <B>'s value retrieved from database.
463
464 **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.
465
466 **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.
467 -->
468 <mapping>dc.Title,Title</mapping>
469 <!-- 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. -->
470 </mappingList>
471 </metadataFormat>
472 </ListMetadataFormats>
473 </serviceRack>
474 </serviceRackList></CollectionConfig>
Note: See TracBrowser for help on using the repository browser.