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

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

Tag Photo - Delete functionality added.

File size: 9.7 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 updateURL = gs.siteMetadata.siteURL.replace("8080","9090") + gs.xsltParams.library_name + "?a=s&amp;sa=c";
55
56 var updateCallback =
57 {
58 success: function(response){},
59 failed: function(){alert("Failed in deleteFunction() to update Greenstone server with: " + updateURL);}
60 };
61
62
63 YAHOO.util.Connect.asyncRequest("GET", updateURL, updateCallback);
64 },
65 failed: function(){ alert("Failed in deleteFunction() with note id: " + note.id)},
66 };
67
68 var status = true;
69
70 if (note &amp;&amp; note.id &amp;&amp; note.id &gt; 0) {
71 var metaposStr = note.id - 1;
72
73 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;
74 YAHOO.util.Connect.asyncRequest("GET", url, callback);
75 }
76 else {
77 alert("Failed to find valid note data to delete");
78 status = false;
79 }
80
81 return status;
82 }
83
84 function saveFunction(note)
85 {
86 var callback =
87 {
88 success: function(response)
89 {
90 var updateURL = gs.siteMetadata.siteURL.replace("8080","9090") + gs.xsltParams.library_name + "?a=s&amp;sa=c";
91
92 var updateCallback =
93 {
94 success: function(response){},
95 failed: function(reponse){ alert("Failed in saveFunction() to update Greenstone server with: " + updateURL);}
96 };
97
98
99 YAHOO.util.Connect.asyncRequest("GET", updateURL, updateCallback);
100 },
101 failed: function(reponse){ alert("Failed in saveFunction() with note id: " + note.id)},
102 };
103
104 var jsonVal = '{"caption":"' + note.text + '", "area":{"x":' + note.rect.left + ', "y":' + note.rect.top + ', "width":' + note.rect.width + ', "height":' + note.rect.height + '}}';
105 var metaposStr = (note &amp;&amp; note.id &amp;&amp; note.id &gt; 0) ? note.id - 1 : posCount;
106
107 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;
108 YAHOO.util.Connect.asyncRequest("GET", saveURL, callback);
109
110 return 1;
111 }
112
113 function getNotes()
114 {
115 if(gs.variables.photoNotes == null || gs.variables.photoNotes == undefined)
116 {
117 console.log("No photo notes");
118 return;
119 }
120
121 for(var i = 0; i &lt; gs.variables.photoNotes.length; i++)
122 {
123 var note = gs.variables.photoNotes[i];
124 if(!note)
125 {
126 continue;
127 }
128 var newNote = new PhotoNote(note.caption, i+1, new PhotoNoteRect(note.area.x,note.area.y,note.area.width,note.area.height));
129 newNote.onsave = saveFunction;
130 newNote.ondelete = deleteFunction;
131 notes.AddNote(newNote);
132 posCount++;
133 }
134 }
135
136 function AddNote()
137 {
138 var newNote = new PhotoNote('Add note text here...',posCount+1,new PhotoNoteRect(10,10,50,50));
139 newNote.onsave = saveFunction;
140 newNote.ondelete = deleteFunction;
141 notes.AddNote(newNote);
142 posCount++;
143
144 newNote.Select();
145 }
146 window.onload = function(){getNotes(); readyImagesForZoom();};
147 </xsl:text>
148 </script>
149
150 <!-- Adds the realistic books javascript if necessary ( *** in document-scripts.xsl *** ) -->
151 <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
152 <script type="text/javascript">
153 <xsl:text disable-output-escaping="yes">
154 if(document.URL.indexOf("book=on") != -1)
155 {
156 loadBook();
157 }
158 </xsl:text>
159 </script>
160 </xsl:if>
161
162 <!-- show the little berries for this document -->
163 <xsl:call-template name="documentBerryForDocumentPage"/>
164
165 <table id="rightSidebar">
166 <tr><td>
167 <xsl:call-template name="viewOptions"/>
168 <table class="viewOptions"><tr>
169 <!-- Zoomer on/off button -->
170 <xsl:if test="/page/pageRequest/paramList/param[@name = 'zoom']/@value = 'on'">
171 <td>
172 <img src="sites/localsite/collect/peijones/images/zoom.png"/>
173 <input id="zoomOption" type="checkbox" class="optionCheckBox">
174 <xsl:choose>
175 <xsl:when test="/page/pageRequest/paramList/param[@name = 'zoom']/@value = 'on'">
176 <xsl:attribute name="onclick">
177 <xsl:text>removeZoom();</xsl:text>
178 </xsl:attribute>
179 <xsl:attribute name="checked">true</xsl:attribute>
180 <script type="text/javascript">function init(){readyImagesForZoom();} window.onload = init;</script>
181 </xsl:when>
182 <xsl:otherwise>
183 <xsl:attribute name="onclick">
184 <xsl:text>addZoom();</xsl:text>
185 </xsl:attribute>
186 </xsl:otherwise>
187 </xsl:choose>
188 </input>
189 </td>
190 </xsl:if>
191 </tr></table>
192 </td></tr>
193 <tr><td>
194 <!-- the sidebar -->
195 <div id="contentsArea">
196 <!-- show the berry basket if it's turned on -->
197 <gslib:berryBasket/>
198
199 <!-- the book's cover image -->
200 <xsl:choose>
201 <xsl:when test="/page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']/@value='true'">
202 <div id="coverImage" class="visible"><gslib:coverImage/></div>
203 </xsl:when>
204 <xsl:otherwise>
205 <div id="coverImage" class="hidden"><gslib:coverImage/></div>
206 </xsl:otherwise>
207 </xsl:choose>
208
209 <!-- the contents (if enabled) -->
210 <xsl:choose>
211 <xsl:when test="/page/pageResponse/format[@type='display']/gsf:option[@name='TOC']/@value='true'">
212 <div id="tableOfContents" class="visible">
213 <xsl:apply-templates select="documentNode" mode="TOC"/>
214 </div>
215 </xsl:when>
216 <xsl:otherwise>
217 <div id="tableOfContents" class="hidden">
218 <xsl:apply-templates select="documentNode" mode="TOC"/>
219 </div>
220 </xsl:otherwise>
221 </xsl:choose>
222 </div>
223 </td></tr>
224 </table>
225 </xsl:if>
226
227 <!-- display the document -->
228 <xsl:choose>
229 <xsl:when test="@external != ''">
230 <xsl:call-template name="externalPage">
231 <xsl:with-param name="external" select="@external"/>
232 </xsl:call-template>
233 </xsl:when>
234 <xsl:when test="$bookswitch = 'flashxml'">
235 <xsl:apply-templates mode="flashxml"/>
236 </xsl:when>
237 <xsl:when test="$bookswitch = 'on'">
238 <!-- *** in document-scripts.xsl *** -->
239 <div id="bookdiv" style="display:inline;"><xsl:text> </xsl:text></div>
240 <script type="text/javascript">
241 <xsl:text disable-output-escaping="yes">
242 if(document.URL.indexOf("book=on") != -1)
243 {
244 loadBook();
245 }
246 </xsl:text>
247 </script>
248 </xsl:when>
249 <xsl:otherwise>
250 <div id="gs-document-text" class="documenttext">
251 <xsl:apply-templates select="documentNode" mode="document"/>
252 </div>
253 </xsl:otherwise>
254 </xsl:choose>
255
256 <div class="clear"><xsl:text> </xsl:text></div>
257
258 </xsl:template>
259</xsl:stylesheet>
260
Note: See TracBrowser for help on using the repository browser.