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