source: main/trunk/model-cols-dev/peijones/transform/pages/document.xsl@ 24630

Last change on this file since 24630 was 24630, checked in by papitha, 13 years ago

Zoom functionality added to Pei Jones Collection

File size: 9.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
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 <!-- use the 'main' layout -->
12 <xsl:import href="layouts/main.xsl"/>
13
14 <!-- style includes global params interface_name, library_name -->
15 <xsl:include href=".old/berrytools.xsl"/>
16
17 <xsl:variable name="bookswitch">
18 <xsl:choose>
19 <xsl:when test="/page/pageRequest/paramList/param[@name='book']/@value">
20 <xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/>
21 </xsl:when>
22 <xsl:otherwise>off</xsl:otherwise>
23 </xsl:choose>
24 </xsl:variable>
25
26 <!-- the page content -->
27 <xsl:template match="/page/pageResponse/document">
28
29 <xsl:if test="$bookswitch = 'off'">
30 <div id="bookdiv" style="visibility:hidden; height:0px; display:inline;"><xsl:text> </xsl:text></div>
31
32 <script type="text/javascript" src="interfaces/{$interface_name}/js/document_scripts.js"><xsl:text> </xsl:text></script>
33
34 <script type="text/javascript" src="sites/localsite/collect/peijones/js/documentmaker/BrowserDetect.js"><xsl:text> </xsl:text></script>
35 <script type="text/javascript" src="sites/localsite/collect/peijones/js/documentmaker/PhotoNotes-1.5.js"><xsl:text> </xsl:text></script>
36 <link rel="stylesheet" type="text/css" href="sites/localsite/collect/peijones/style/PhotoNotes-1.5.css"/>
37 <div class="Photo fn-container" id="PhotoContainer">
38 <img src="sites/localsite/collect/peijones/images/photo/0_PAColl-0671-01korokijones.jpg" />
39 </div>
40
41 <input type="button" value="Tag Photo!" style="margin-left:30px;" onclick="AddNote();" />
42 <script type="text/javascript">
43 <xsl:text disable-output-escaping="yes">
44 /* create the Photo Note Container */
45 var notes = new PhotoNoteContainer(document.getElementById('PhotoContainer'));
46 var posCount = 0;
47
48 function deleteFunction(note)
49 {
50 var callback =
51 {
52 success: function(response)
53 {
54 var updateCallback =
55 {
56 success: function(response){},
57 failed: function(){}
58 };
59
60 var updateURL = gs.siteMetadata.siteURL.replace("8080","9090") + gs.xsltParams.library_name + "?a=s&amp;sa=c";
61 YAHOO.util.Connect.asyncRequest("GET", updateURL, updateCallback);
62 },
63 failed: function(){},
64 };
65
66 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";
67 YAHOO.util.Connect.asyncRequest("GET", url, callback);
68 return true;
69 }
70
71 function saveFunction(note)
72 {
73 var callback =
74 {
75 success: function(response)
76 {
77 var updateCallback =
78 {
79 success: function(response){},
80 failed: function(){}
81 };
82
83 var updateURL = gs.siteMetadata.siteURL.replace("8080","9090") + gs.xsltParams.library_name + "?a=s&amp;sa=c";
84 YAHOO.util.Connect.asyncRequest("GET", updateURL, updateCallback);
85 },
86 failed: function(){},
87 };
88
89 var jsonVal = '{"caption":"' + note.text + '", "area":{"x":' + note.rect.left + ', "y":' + note.rect.top + ', "width":' + note.rect.width + ', "height":' + note.rect.height + '}}';
90 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=" + ((note &amp;&amp; note.id &amp;&amp; note.id &gt; 0) ? note.id - 1 : posCount);
91 YAHOO.util.Connect.asyncRequest("GET", saveURL, callback);
92
93 return 1;
94 }
95
96 function getNotes()
97 {
98 if(gs.variables.photoNotes == null || gs.variables.photoNotes == undefined)
99 {
100 console.log("No photo notes");
101 return;
102 }
103
104 for(var i = 0; i &lt; gs.variables.photoNotes.length; i++)
105 {
106 var note = gs.variables.photoNotes[i];
107 if(!note)
108 {
109 continue;
110 }
111 var newNote = new PhotoNote(note.caption, i+1, new PhotoNoteRect(note.area.x,note.area.y,note.area.width,note.area.height));
112 newNote.onsave = saveFunction;
113 newNote.ondelete = deleteFunction;
114 notes.AddNote(newNote);
115 }
116 posCount = gs.variables.photoNotes.length - 1;
117 }
118
119 function AddNote()
120 {
121 var newNote = new PhotoNote('Add note text here...',posCount++,new PhotoNoteRect(10,10,50,50));
122 newNote.onsave = saveFunction;
123 newNote.ondelete = deleteFunction;
124 notes.AddNote(newNote);
125 newNote.Select();
126 }
127 window.onload = function(){getNotes(); readyImagesForZoom();};
128 </xsl:text>
129 </script>
130
131 <!-- Adds the realistic books javascript if necessary ( *** in document-scripts.xsl *** ) -->
132 <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
133 <script type="text/javascript">
134 <xsl:text disable-output-escaping="yes">
135 if(document.URL.indexOf("book=on") != -1)
136 {
137 loadBook();
138 }
139 </xsl:text>
140 </script>
141 </xsl:if>
142
143 <!-- show the little berries for this document -->
144 <xsl:call-template name="documentBerryForDocumentPage"/>
145
146 <table id="rightSidebar">
147 <tr><td>
148 <xsl:call-template name="viewOptions"/>
149 <table class="viewOptions"><tr>
150 <!-- Zoomer on/off button -->
151 <xsl:if test="/page/pageRequest/paramList/param[@name = 'zoom']/@value = 'on'">
152 <td>
153 <img src="sites/localsite/collect/peijones/images/zoom.png"/>
154 <input id="zoomOption" type="checkbox" class="optionCheckBox">
155 <xsl:choose>
156 <xsl:when test="/page/pageRequest/paramList/param[@name = 'zoom']/@value = 'on'">
157 <xsl:attribute name="onclick">
158 <xsl:text>removeZoom();</xsl:text>
159 </xsl:attribute>
160 <xsl:attribute name="checked">true</xsl:attribute>
161 <script type="text/javascript">function init(){readyImagesForZoom();} window.onload = init;</script>
162 </xsl:when>
163 <xsl:otherwise>
164 <xsl:attribute name="onclick">
165 <xsl:text>addZoom();</xsl:text>
166 </xsl:attribute>
167 </xsl:otherwise>
168 </xsl:choose>
169 </input>
170 </td>
171 </xsl:if>
172 </tr></table>
173 </td></tr>
174 <tr><td>
175 <!-- the sidebar -->
176 <div id="contentsArea">
177 <!-- show the berry basket if it's turned on -->
178 <gslib:berryBasket/>
179
180 <!-- the book's cover image -->
181 <xsl:choose>
182 <xsl:when test="/page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']/@value='true'">
183 <div id="coverImage" class="visible"><gslib:coverImage/></div>
184 </xsl:when>
185 <xsl:otherwise>
186 <div id="coverImage" class="hidden"><gslib:coverImage/></div>
187 </xsl:otherwise>
188 </xsl:choose>
189
190 <!-- the contents (if enabled) -->
191 <xsl:choose>
192 <xsl:when test="/page/pageResponse/format[@type='display']/gsf:option[@name='TOC']/@value='true'">
193 <div id="tableOfContents" class="visible">
194 <xsl:apply-templates select="documentNode" mode="TOC"/>
195 </div>
196 </xsl:when>
197 <xsl:otherwise>
198 <div id="tableOfContents" class="hidden">
199 <xsl:apply-templates select="documentNode" mode="TOC"/>
200 </div>
201 </xsl:otherwise>
202 </xsl:choose>
203 </div>
204 </td></tr>
205 </table>
206 </xsl:if>
207
208 <!-- display the document -->
209 <xsl:choose>
210 <xsl:when test="@external != ''">
211 <xsl:call-template name="externalPage">
212 <xsl:with-param name="external" select="@external"/>
213 </xsl:call-template>
214 </xsl:when>
215 <xsl:when test="$bookswitch = 'flashxml'">
216 <xsl:apply-templates mode="flashxml"/>
217 </xsl:when>
218 <xsl:when test="$bookswitch = 'on'">
219 <!-- *** in document-scripts.xsl *** -->
220 <div id="bookdiv" style="display:inline;"><xsl:text> </xsl:text></div>
221 <script type="text/javascript">
222 <xsl:text disable-output-escaping="yes">
223 if(document.URL.indexOf("book=on") != -1)
224 {
225 loadBook();
226 }
227 </xsl:text>
228 </script>
229 </xsl:when>
230 <xsl:otherwise>
231 <div id="gs-document-text" class="documenttext">
232 <xsl:apply-templates select="documentNode" mode="document"/>
233 </div>
234 </xsl:otherwise>
235 </xsl:choose>
236
237 <div class="clear"><xsl:text> </xsl:text></div>
238
239 </xsl:template>
240</xsl:stylesheet>
241
Note: See TracBrowser for help on using the repository browser.