Mercurial > hg > ismi-richfaces
annotate src/main/webapp/imageServer/displayDigi.jsp @ 155:f2c1e5be355c
changing images.rasi.mcgill.ca URLs again.
author | casties |
---|---|
date | Wed, 18 Oct 2017 15:03:39 +0200 |
parents | 72b58ef8b9ae |
children | be6bc580b137 |
rev | line source |
---|---|
7 | 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()%>", | |
155 | 194 imageDir: "/<%=digiBean.getDigiLabel()%>", |
7 | 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" /> | |
42 | 211 |
212 <form method="GET" action='https://images.rasi.mcgill.ca/pdfs/${digiBean.getDigiLabel()}.pdf'> | |
213 <button type="submit" style="font-size: 12; float: right; width: 100px; margin-right: 33px; margin-top: -10px;">Download PDF</button> | |
214 </form> | |
215 | |
7 | 216 <div class="custom-container"> |
217 | |
218 <div class="row-fluid"> | |
30
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
219 <div id="attributesPanel" class="span4 page" style="min-height: 700px;"> |
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
220 <a class="ismi-fullscreen-icon" href="#" data-in-fullscreen-mode="true"></a> |
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
221 |
34
9087a4623a08
Temporary Fix: Minor layout issues with info box on left of codex pages.
arussell
parents:
30
diff
changeset
|
222 <div class="attPanel" style="height: 700px; overflow: auto;"> |
7 | 223 |
30
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
224 <input type='hidden' name='csrfmiddlewaretoken' value='psDBHsF5a1mttLSKeUgoUUVN3HL6f8Re' /> |
7 | 225 |
226 <c:if test="${digiBean.getDigi() != null}"> | |
227 | |
228 <input type="hidden" id="digi_id" value="${digiBean.getDigi().getId()}"> | |
229 | |
230 <div class="divaBackgroud"> | |
231 | |
232 <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> | |
233 | |
234 <h4><%=digiBean.getDigiLabel()%></h4> | |
235 | |
236 <c:if test="${digiBean.getWitnessList().size() > 0}"> | |
237 <span class="titlePanel">Titles in this Codex</span> | |
238 | |
239 <table class="table table-bordered table-condensed divaPanel"> | |
240 <thead> | |
241 <tr> | |
242 <th class="tableHead">Title</th> | |
243 <th class="tableHead">Folios</th> | |
244 </tr> | |
245 </thead> | |
246 <tbody> | |
247 <c:forEach var="witness" items="${digiBean.getWitnessList()}"> | |
248 <tr> | |
249 <td class="tdTitle"> | |
250 <c:out value="[${witness.id}] ${witness.title}"/> | |
251 <a target="_blank" | |
252 href="<c:out value='../search/displayTitle.xhtml?witnessId=${witness.id}#witnesses'/>"> | |
253 <img src="../resources/images/display_32.png" alt="Display witness" width="20" height="20" > | |
254 </a> | |
255 <a target="_blank" | |
256 href="<c:out value='../browse/entityDetails.xhtml?eid=${witness.id}'/>"> | |
257 <img src="../resources/images/network_32.png" alt="show witness" | |
258 width="20" height="20"> | |
259 </a> | |
260 <c:if test="${digiBean.canEdit()}"> | |
261 <a target="_blank" | |
262 href="<c:out value='../entry/createEntity.xhtml?eid=${witness.id}'/>"> | |
263 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
264 </a> | |
265 </c:if> | |
266 </td> | |
267 <td class="columnCentered"> | |
268 <a id="witness-link-${witness.id}" class="go-to-witness-link" data-start="${witness.startPage}" href="#"> | |
269 <c:out value="${witness.folios}"/> | |
270 </a> | |
271 </td> | |
272 </tr> | |
273 </c:forEach> | |
274 </tbody> | |
275 </table> | |
276 </c:if> | |
277 | |
278 <h4>Unknown titles in this Codex</h4> | |
279 <c:forEach var="witness" items="${digiBean.getUnknownList()}"> | |
280 <a id="witness-link-${witness.id}" class="go-to-witness-link" data-start="${witness.startPage}" href="#"> | |
281 <c:out value="${witness.folios}"/> | |
282 </a> | |
283 </c:forEach> | |
284 | |
285 <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> | |
286 | |
287 <h4>Edit Folio/Image Correspondence</h4> | |
288 | |
289 | |
290 <div id="page-jump-group" class="control-group"> | |
291 <label for="page-jump" class="control-label">Go to page: </label> | |
292 <div class="controls" id="page-jump-controls"> | |
293 <input id="page-jump" type="text" class="form-control"> | |
294 </div> | |
295 </div> | |
296 | |
297 <p> | |
298 <strong>Current Page Index:</strong> <span id="current-page-idx"></span> | |
299 </p> | |
300 <p> | |
301 <strong>Page Filename:</strong> <span id="current-page-fn"></span> | |
302 </p> | |
303 | |
304 <table> | |
305 <tr> | |
306 <td> | |
307 <span class="titlePanel">[${digiBean.getDigi().getId()}] Digitalization</span> | |
308 <c:if test="${digiBean.canEdit()}"> | |
309 <a href="<c:out value='../entry/createEntity.xhtml?eid=${digiBean.getDigi().getId()}'/>"> | |
310 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit digitalization" > | |
311 </a> | |
312 </c:if> | |
313 <table class="divaPanel"> | |
314 <tr> | |
315 <td class="tdTitle">Name</td> | |
316 <td class="tdContent"><c:out value="${digiBean.getName()}"></c:out> </td> | |
317 </tr> | |
318 <tr> | |
319 <td class="tdTitle">Number of files</td> | |
320 <td class="tdContent"><c:out value="${digiBean.getNumFiles()}"></c:out> </td> | |
321 </tr> | |
322 </table> | |
323 </td> | |
324 </tr> | |
325 <tr> | |
326 <td> | |
327 <c:if test="${digiBean.getCodex() == null}"> | |
328 <span class="titlePanel">Codex not yet assigned!</span> | |
329 </c:if> | |
330 | |
331 <c:if test="${digiBean.getCodex() != null}"> | |
332 <span class="titlePanel">[${digiBean.getCodex().getId()}] Codex</span> | |
333 <c:if test="${digiBean.canEdit()}"> | |
334 <a href="<c:out value='../entry/createEntity.xhtml?eid=${digiBean.getCodex().getId()}'/>"> | |
335 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
336 </a> | |
337 </c:if> | |
338 <table class="divaPanel"> | |
339 <tr> | |
340 <td class="tdTitle">Own Value</td> | |
341 <td class="tdTitle"><c:out value="${digiBean.getCodex().getOv()}"></c:out> </td> | |
342 </tr> | |
343 <tr> | |
344 <td class="tdTitle">Shelf Mark</td> | |
345 <td class="tdContent"><c:out value="${digiBean.getCodex().getIdentifier()}"></c:out> </td> | |
346 </tr> | |
347 <tr> | |
348 <td class="tdTitle">Collection</td> | |
349 <td class="tdContent"><c:out value="${digiBean.getCodex().getCollection()}"></c:out> </td> | |
350 </tr> | |
351 <tr> | |
352 <td class="tdTitle">Repository</td> | |
353 <td class="tdContent"><c:out value="${digiBean.getCodex().getRepository()}"></c:out> </td> | |
354 </tr> | |
355 <tr> | |
356 <td class="tdTitle">City</td> | |
357 <td class="tdContent"><c:out value="${digiBean.getCodex().getCity()}"></c:out> </td> | |
358 </tr> | |
359 <tr> | |
360 <td class="tdTitle">Country</td> | |
361 <td class="tdContent"><c:out value="${digiBean.getCodex().getCountry()}"></c:out> </td> | |
362 </tr> | |
363 </table> | |
364 | |
365 <c:if test="${digiBean.getWitnessList().size() > 0}"> | |
366 <span class="titlePanel">Witnesses in Codex</span> | |
367 <table id="witness-edit" class="table table-bordered table-condensed divaPanel"> | |
368 <thead> | |
369 <tr> | |
370 <th></th> | |
371 <th class="tableHead">Start</th> | |
372 <th class="tableHead">End</th> | |
373 </tr> | |
374 </thead> | |
375 <tbody> | |
376 <c:forEach var="witness" items="${digiBean.getWitnessList()}"> | |
377 <tr> | |
378 <td> | |
379 <table class="witnessTableDetail"> | |
380 <tr> | |
381 <td class="tdTitle"> | |
382 <c:out value="[${witness.id}]"/> | |
383 </td> | |
384 </tr> | |
385 <tr> | |
386 <td class="tdTitle"> | |
387 <c:out value="${witness.title}"/> | |
388 </td> | |
389 </tr> | |
390 <tr> | |
391 <td class="tdTitle"> | |
392 <c:out value="Folios: ${witness.folios}"/> | |
393 </td> | |
394 </tr> | |
395 <tr> | |
396 <td > | |
397 <a href="<c:out value='../browse/entityDetails.xhtml?eid=${witness.id}'/>"> | |
398 <img src="../resources/images/network_32.png" alt="show witness" | |
399 width="20" height="20"> | |
400 </a> | |
401 <c:if test="${digiBean.canEdit()}"> | |
402 <a href="<c:out value='../entry/createEntity.xhtml?eid=${witness.id}'/>"> | |
403 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
404 </a> | |
405 </c:if> | |
406 </td> | |
407 </tr> | |
408 </table> | |
409 </td> | |
410 | |
411 <td class="columnCentered"> | |
412 <input | |
413 id="input-start-page-<c:out value="${witness.id}"/>" | |
414 data-witness="<c:out value="${witness.id}"/>" | |
415 type="text" | |
416 readonly="readonly" | |
417 value="<c:out value="${witness.startPage}"/>" class="inputPageNumber"> | |
418 <c:if test="${digiBean.canEdit()}"> | |
419 <button class="set-start-set ismi-button" data-witness="<c:out value="${witness.id}"/>">Set Start</button> | |
420 <button class="set-start-reset ismi-button" data-witness="<c:out value="${witness.id}"/>">Reset Start</button> | |
421 </c:if> | |
422 </td> | |
423 | |
424 <td class="columnCentered"> | |
425 <input | |
426 id="input-end-page-<c:out value="${witness.id}"/>" | |
427 data-witness="<c:out value="${witness.id}"/>" | |
428 type="text" | |
429 readonly="readonly" | |
430 value="<c:out value="${witness.endPage}"/>" class="inputPageNumber"> | |
431 <c:if test="${digiBean.canEdit()}"> | |
432 <button class="set-end-set ismi-button" data-witness="<c:out value="${witness.id}"/>">Set Start</button> | |
433 <button class="set-end-reset ismi-button" data-witness="<c:out value="${witness.id}"/>">Reset Start</button> | |
434 </c:if> | |
435 </td> | |
436 <c:if test="${digiBean.canEdit()}"> | |
437 <td class="columnCentered"> | |
438 <button class="update-witness ismi-button" data-witness="<c:out value="${witness.id}"/>">Update</button> | |
439 </td> | |
440 </c:if> | |
441 </tr> | |
442 </c:forEach> | |
443 </tbody> | |
444 </table> | |
445 </c:if> | |
446 | |
447 </c:if> | |
448 | |
449 </td> | |
450 </tr> | |
451 </table> | |
452 </div> | |
453 </c:if> | |
454 | |
455 | |
456 </div> | |
457 </div> | |
458 <div class="span8"> | |
459 <input type='hidden' name='csrfmiddlewaretoken' value='psDBHsF5a1mttLSKeUgoUUVN3HL6f8Re' /> | |
460 <div id="diva-wrapper"></div> | |
461 </div> | |
462 </div> | |
463 </div> | |
464 | |
465 | |
466 </body> | |
467 </html> |