source: main/trunk/model-cols-dev/peijones/etc/collectionConfig.bak@ 24784

Last change on this file since 24784 was 24784, checked in by sjm84, 13 years ago

More Pei Jones collection changes

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