Mercurial > hg > ismi-richfaces
comparison src/main/webapp/imageServer/displayDigi.jsp @ 7:764f47286679
(none)
author | jurzua |
---|---|
date | Wed, 29 Oct 2014 14:28:34 +0000 |
parents | |
children | 672301480990 |
comparison
equal
deleted
inserted
replaced
6:ded3bccf2cf9 | 7:764f47286679 |
---|---|
1 <%@ page contentType="text/html; charset=UTF-8" %> | |
2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
3 <%@page import="org.mpi.openmind.repository.bo.Entity"%> | |
4 <%@page import="de.mpiwg.itgroup.diva.jsp.JSPDigitalization"%> | |
5 | |
6 <html> | |
7 <head> | |
8 <title>ismi - image server</title> | |
9 | |
10 | |
11 <link href="resources/css/bootstrap.css" type="text/css" rel="stylesheet" /> | |
12 <link href="resources/css/bootstrap-responsive.min.css" type="text/css" rel="stylesheet"> | |
13 <link href="resources/css/style.css" type="text/css" rel="stylesheet"> | |
14 <link href="resources/css/diva.min.css" type="text/css" rel="stylesheet" /> | |
15 <link href="resources/css/diva4ismi.css" type="text/css" rel="stylesheet" /> | |
16 | |
17 <script type="text/javascript" src="resources/js/jquery.min.js"></script> | |
18 <script type="text/javascript" src="resources/js/diva.min.js"></script> | |
19 <script type="text/javascript" src="resources/js/bootstrap.min.js"></script> | |
20 <script type="text/javascript" src="resources/js/typeahead.js"></script> | |
21 <script type="text/javascript" src="resources/js/diva4ismi.js"></script> | |
22 | |
23 <jsp:useBean id="digiBean" class="de.mpiwg.itgroup.diva.jsp.JSPDigitalization" scope="session" /> | |
24 <jsp:setProperty name="digiBean" property="request" value="${pageContext.request}" /> | |
25 <jsp:setProperty name="digiBean" property="response" value="${pageContext.response}" /> | |
26 | |
27 <%digiBean.init();%> | |
28 <% if(!digiBean.hasLogin()){ %> | |
29 <jsp:forward page="../imageServer/displayDigiList.xhtml?login=true" /> | |
30 <% } %> | |
31 | |
32 <script type="text/javascript"> | |
33 $(document).ready(function () { | |
34 | |
35 $("#witness-edit").on('click', '.update-witness', function(ev){ | |
36 | |
37 var witnessId = $(this).data('witness'); | |
38 | |
39 var startPageInput = $( "#input-start-page-"+witnessId ); | |
40 var endPageInput = $( "#input-end-page-"+witnessId ); | |
41 var digiIdInput = $("#digi_id"); | |
42 | |
43 var data = {}; | |
44 data["digi_id"] = digiIdInput[0].value; | |
45 | |
46 data["witness"] = {}; | |
47 data["witness"]["id"] = "" + witnessId; | |
48 data["witness"]["start_page"] = startPageInput[0].value; | |
49 data["witness"]["end_page"] = endPageInput[0].value; | |
50 | |
51 var witnessLink = $("#witness-link-" + witnessId); | |
52 witnessLink.data('start', startPageInput[0].value); | |
53 | |
54 $.ajax( | |
55 divaGlobal.rest_url + "/rest/witness/update?data=" + JSON.stringify(data), { | |
56 type: 'GET', | |
57 contentType: "application/json", | |
58 success: function(data, textStatus, jqXHR){ | |
59 var state = data["state"]; | |
60 if(state == "ok"){ | |
61 alert('Executed successfully'); | |
62 }else{ | |
63 alert(data["message"]); | |
64 } | |
65 }, | |
66 error: function(jqXHR, textStatus, errorThrown){ | |
67 alert('Error: ' + textStatus); | |
68 } | |
69 }); | |
70 | |
71 | |
72 }); | |
73 | |
74 /************************************************/ | |
75 | |
76 function getURLParams() | |
77 { | |
78 var urlParams = {}, | |
79 match, | |
80 pl = /\+/g, // Regex for replacing addition symbol with a space | |
81 search = /([^&=]+)=?([^&]*)/g, | |
82 decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, | |
83 query = window.location.search.substring(1); | |
84 while (match = search.exec(query)) | |
85 { | |
86 urlParams[decode(match[1])] = decode(match[2]); | |
87 } | |
88 | |
89 return urlParams; | |
90 } | |
91 | |
92 | |
93 $('#page-jump').on('keypress', function(ev) | |
94 { | |
95 if (ev.which == '13') | |
96 { | |
97 var dv = $('#diva-wrapper').data('diva'); | |
98 var value = $(this).val(); | |
99 var success = dv.gotoPageByNumber(value); | |
100 | |
101 if (!success) | |
102 { | |
103 if (!$('#page-jump-group').hasClass('error')) | |
104 { | |
105 $('#page-jump-group').addClass('error'); | |
106 $('#page-jump-controls').append('<span id="jump-error-help" class="help-inline">The page you specified is not valid.</span>'); | |
107 } | |
108 } | |
109 else | |
110 { | |
111 if ($('#page-jump-group').hasClass('error')) | |
112 { | |
113 $('#page-jump-group').removeClass('error'); | |
114 $('#jump-error-help').remove(); | |
115 } | |
116 } | |
117 | |
118 } | |
119 }); | |
120 | |
121 $('.go-to-witness-link').on('click', function(ev) { | |
122 var dv = $('#diva-wrapper').data('diva'); | |
123 var start_page = $(this).data('start'); | |
124 if(start_page){ | |
125 dv.gotoPageByNumber(start_page); | |
126 ev.preventDefault(); | |
127 }else{ | |
128 alert("No page assigned to this witness."); | |
129 } | |
130 | |
131 }); | |
132 | |
133 function modifyWitness(witness_id, key, value, successCallback, caller) { | |
134 var csrf = $("[name=csrfmiddlewaretoken]").val(); | |
135 var witnessURL = "/witness/" + witness_id; | |
136 var data = {}; | |
137 data[key] = value; | |
138 | |
139 $.ajax(witnessURL, { | |
140 type: 'PATCH', | |
141 headers: { | |
142 'X-CSRFToken': csrf | |
143 }, | |
144 data: JSON.stringify(data), | |
145 contentType: "application/json", | |
146 success: function(data, status, xhr) | |
147 { | |
148 // we'll need to operate on the button, so pass it back... | |
149 successCallback(data, caller); | |
150 } | |
151 }); | |
152 } | |
153 | |
154 function handlePageSwitch(idx, fn, divid) | |
155 { | |
156 // page number is what we're after, which is always | |
157 // page index + 1. | |
158 $('#current-page-idx').text(idx + 1); | |
159 $('#current-page-fn').text(fn); | |
160 } | |
161 | |
162 function handleDocumentLoaded(idx, fn) | |
163 { | |
164 var witnesses = {}; | |
165 | |
166 // we could do this with an ajax request, but we have | |
167 // the variables already here, we just need to get them | |
168 // from Django and not JS. | |
169 | |
170 var urlParams = getURLParams(); | |
171 if (urlParams.hasOwnProperty('witness')) | |
172 { | |
173 urlWitness = parseInt(urlParams['witness'], 10); | |
174 | |
175 // this won't be populated if the witness doesn't have a | |
176 // start page set. | |
177 if (witnesses.hasOwnProperty(urlWitness)) | |
178 { | |
179 this.gotoPageByNumber(witnesses[urlWitness]); | |
180 } | |
181 } | |
182 } | |
183 | |
184 $("#diva-wrapper").diva( | |
185 { | |
186 enableAutoHeight: true, | |
187 enableAutoTitle: false, | |
188 enableGotoPage: false, | |
189 fixedHeightGrid: false, | |
190 contained: true, | |
191 iipServerURL: divaGlobal.iipServerURL, | |
192 digiId: "<%=digiBean.getDigiId()%>", | |
193 objectData: divaGlobal.rest_url + "/rest/diva/proxy/json/<%=digiBean.getDigiLabel()%>", | |
194 imageDir: "/data7/srv/images/<%=digiBean.getDigiLabel()%>", | |
195 onSetCurrentPage : handlePageSwitch, | |
196 onDocumentLoaded : handleDocumentLoaded, | |
197 zoomLevel: 1, | |
198 canvasPlugin: { | |
199 proxyURL: divaGlobal.rest_url + "/rest/diva/proxy/image" | |
200 } | |
201 }); | |
202 }); | |
203 | |
204 | |
205 </script> | |
206 </head> | |
207 | |
208 <body bgcolor=white> | |
209 | |
210 <jsp:include page="header.jsp" /> | |
211 <div class="custom-container"> | |
212 | |
213 <div class="row-fluid"> | |
214 <div class="span4 page"> | |
215 <div style="height: 800px; overflow: scroll;"> | |
216 | |
217 | |
218 <input type='hidden' name='csrfmiddlewaretoken' value='psDBHsF5a1mttLSKeUgoUUVN3HL6f8Re' /> | |
219 | |
220 <c:if test="${digiBean.getDigi() != null}"> | |
221 | |
222 <input type="hidden" id="digi_id" value="${digiBean.getDigi().getId()}"> | |
223 | |
224 <div class="divaBackgroud"> | |
225 | |
226 <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> | |
227 | |
228 <h4><%=digiBean.getDigiLabel()%></h4> | |
229 | |
230 <c:if test="${digiBean.getWitnessList().size() > 0}"> | |
231 <span class="titlePanel">Titles in this Codex</span> | |
232 | |
233 <table class="table table-bordered table-condensed divaPanel"> | |
234 <thead> | |
235 <tr> | |
236 <th class="tableHead">Title</th> | |
237 <th class="tableHead">Folios</th> | |
238 </tr> | |
239 </thead> | |
240 <tbody> | |
241 <c:forEach var="witness" items="${digiBean.getWitnessList()}"> | |
242 <tr> | |
243 <td class="tdTitle"> | |
244 <c:out value="[${witness.id}] ${witness.title}"/> | |
245 <a target="_blank" | |
246 href="<c:out value='../search/displayTitle.xhtml?witnessId=${witness.id}#witnesses'/>"> | |
247 <img src="../resources/images/display_32.png" alt="Display witness" width="20" height="20" > | |
248 </a> | |
249 <a target="_blank" | |
250 href="<c:out value='../browse/entityDetails.xhtml?eid=${witness.id}'/>"> | |
251 <img src="../resources/images/network_32.png" alt="show witness" | |
252 width="20" height="20"> | |
253 </a> | |
254 <c:if test="${digiBean.canEdit()}"> | |
255 <a target="_blank" | |
256 href="<c:out value='../entry/createEntity.xhtml?eid=${witness.id}'/>"> | |
257 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
258 </a> | |
259 </c:if> | |
260 </td> | |
261 <td class="columnCentered"> | |
262 <a id="witness-link-${witness.id}" class="go-to-witness-link" data-start="${witness.startPage}" href="#"> | |
263 <c:out value="${witness.folios}"/> | |
264 </a> | |
265 </td> | |
266 </tr> | |
267 </c:forEach> | |
268 </tbody> | |
269 </table> | |
270 </c:if> | |
271 | |
272 <h4>Unknown titles in this Codex</h4> | |
273 <c:forEach var="witness" items="${digiBean.getUnknownList()}"> | |
274 <a id="witness-link-${witness.id}" class="go-to-witness-link" data-start="${witness.startPage}" href="#"> | |
275 <c:out value="${witness.folios}"/> | |
276 </a> | |
277 </c:forEach> | |
278 | |
279 <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> | |
280 | |
281 <h4>Edit Folio/Image Correspondence</h4> | |
282 | |
283 | |
284 <div id="page-jump-group" class="control-group"> | |
285 <label for="page-jump" class="control-label">Go to page: </label> | |
286 <div class="controls" id="page-jump-controls"> | |
287 <input id="page-jump" type="text" class="form-control"> | |
288 </div> | |
289 </div> | |
290 | |
291 <p> | |
292 <strong>Current Page Index:</strong> <span id="current-page-idx"></span> | |
293 </p> | |
294 <p> | |
295 <strong>Page Filename:</strong> <span id="current-page-fn"></span> | |
296 </p> | |
297 | |
298 <table> | |
299 <tr> | |
300 <td> | |
301 <span class="titlePanel">[${digiBean.getDigi().getId()}] Digitalization</span> | |
302 <c:if test="${digiBean.canEdit()}"> | |
303 <a href="<c:out value='../entry/createEntity.xhtml?eid=${digiBean.getDigi().getId()}'/>"> | |
304 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit digitalization" > | |
305 </a> | |
306 </c:if> | |
307 <table class="divaPanel"> | |
308 <tr> | |
309 <td class="tdTitle">Name</td> | |
310 <td class="tdContent"><c:out value="${digiBean.getName()}"></c:out> </td> | |
311 </tr> | |
312 <tr> | |
313 <td class="tdTitle">Number of files</td> | |
314 <td class="tdContent"><c:out value="${digiBean.getNumFiles()}"></c:out> </td> | |
315 </tr> | |
316 </table> | |
317 </td> | |
318 </tr> | |
319 <tr> | |
320 <td> | |
321 <c:if test="${digiBean.getCodex() == null}"> | |
322 <span class="titlePanel">Codex not yet assigned!</span> | |
323 </c:if> | |
324 | |
325 <c:if test="${digiBean.getCodex() != null}"> | |
326 <span class="titlePanel">[${digiBean.getCodex().getId()}] Codex</span> | |
327 <c:if test="${digiBean.canEdit()}"> | |
328 <a href="<c:out value='../entry/createEntity.xhtml?eid=${digiBean.getCodex().getId()}'/>"> | |
329 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
330 </a> | |
331 </c:if> | |
332 <table class="divaPanel"> | |
333 <tr> | |
334 <td class="tdTitle">Own Value</td> | |
335 <td class="tdTitle"><c:out value="${digiBean.getCodex().getOv()}"></c:out> </td> | |
336 </tr> | |
337 <tr> | |
338 <td class="tdTitle">Shelf Mark</td> | |
339 <td class="tdContent"><c:out value="${digiBean.getCodex().getIdentifier()}"></c:out> </td> | |
340 </tr> | |
341 <tr> | |
342 <td class="tdTitle">Collection</td> | |
343 <td class="tdContent"><c:out value="${digiBean.getCodex().getCollection()}"></c:out> </td> | |
344 </tr> | |
345 <tr> | |
346 <td class="tdTitle">Repository</td> | |
347 <td class="tdContent"><c:out value="${digiBean.getCodex().getRepository()}"></c:out> </td> | |
348 </tr> | |
349 <tr> | |
350 <td class="tdTitle">City</td> | |
351 <td class="tdContent"><c:out value="${digiBean.getCodex().getCity()}"></c:out> </td> | |
352 </tr> | |
353 <tr> | |
354 <td class="tdTitle">Country</td> | |
355 <td class="tdContent"><c:out value="${digiBean.getCodex().getCountry()}"></c:out> </td> | |
356 </tr> | |
357 </table> | |
358 | |
359 <c:if test="${digiBean.getWitnessList().size() > 0}"> | |
360 <span class="titlePanel">Witnesses in Codex</span> | |
361 <table id="witness-edit" class="table table-bordered table-condensed divaPanel"> | |
362 <thead> | |
363 <tr> | |
364 <th></th> | |
365 <th class="tableHead">Start</th> | |
366 <th class="tableHead">End</th> | |
367 </tr> | |
368 </thead> | |
369 <tbody> | |
370 <c:forEach var="witness" items="${digiBean.getWitnessList()}"> | |
371 <tr> | |
372 <td> | |
373 <table class="witnessTableDetail"> | |
374 <tr> | |
375 <td class="tdTitle"> | |
376 <c:out value="[${witness.id}]"/> | |
377 </td> | |
378 </tr> | |
379 <tr> | |
380 <td class="tdTitle"> | |
381 <c:out value="${witness.title}"/> | |
382 </td> | |
383 </tr> | |
384 <tr> | |
385 <td class="tdTitle"> | |
386 <c:out value="Folios: ${witness.folios}"/> | |
387 </td> | |
388 </tr> | |
389 <tr> | |
390 <td > | |
391 <a href="<c:out value='../browse/entityDetails.xhtml?eid=${witness.id}'/>"> | |
392 <img src="../resources/images/network_32.png" alt="show witness" | |
393 width="20" height="20"> | |
394 </a> | |
395 <c:if test="${digiBean.canEdit()}"> | |
396 <a href="<c:out value='../entry/createEntity.xhtml?eid=${witness.id}'/>"> | |
397 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
398 </a> | |
399 </c:if> | |
400 </td> | |
401 </tr> | |
402 </table> | |
403 </td> | |
404 | |
405 <td class="columnCentered"> | |
406 <input | |
407 id="input-start-page-<c:out value="${witness.id}"/>" | |
408 data-witness="<c:out value="${witness.id}"/>" | |
409 type="text" | |
410 readonly="readonly" | |
411 value="<c:out value="${witness.startPage}"/>" class="inputPageNumber"> | |
412 <c:if test="${digiBean.canEdit()}"> | |
413 <button class="set-start-set ismi-button" data-witness="<c:out value="${witness.id}"/>">Set Start</button> | |
414 <button class="set-start-reset ismi-button" data-witness="<c:out value="${witness.id}"/>">Reset Start</button> | |
415 </c:if> | |
416 </td> | |
417 | |
418 <td class="columnCentered"> | |
419 <input | |
420 id="input-end-page-<c:out value="${witness.id}"/>" | |
421 data-witness="<c:out value="${witness.id}"/>" | |
422 type="text" | |
423 readonly="readonly" | |
424 value="<c:out value="${witness.endPage}"/>" class="inputPageNumber"> | |
425 <c:if test="${digiBean.canEdit()}"> | |
426 <button class="set-end-set ismi-button" data-witness="<c:out value="${witness.id}"/>">Set Start</button> | |
427 <button class="set-end-reset ismi-button" data-witness="<c:out value="${witness.id}"/>">Reset Start</button> | |
428 </c:if> | |
429 </td> | |
430 <c:if test="${digiBean.canEdit()}"> | |
431 <td class="columnCentered"> | |
432 <button class="update-witness ismi-button" data-witness="<c:out value="${witness.id}"/>">Update</button> | |
433 </td> | |
434 </c:if> | |
435 </tr> | |
436 </c:forEach> | |
437 </tbody> | |
438 </table> | |
439 </c:if> | |
440 | |
441 </c:if> | |
442 | |
443 </td> | |
444 </tr> | |
445 </table> | |
446 </div> | |
447 </c:if> | |
448 | |
449 | |
450 </div> | |
451 </div> | |
452 <div class="span8"> | |
453 <input type='hidden' name='csrfmiddlewaretoken' value='psDBHsF5a1mttLSKeUgoUUVN3HL6f8Re' /> | |
454 <div id="diva-wrapper"></div> | |
455 </div> | |
456 </div> | |
457 </div> | |
458 | |
459 | |
460 </body> | |
461 </html> |