Join us for an engaging webinar, as we unravel the potential of AI for revolutionizing document management.
Watch Now
Enable your employees to remain productive throughout the document management process.
Read More
Learn how SmartZone uses a regular expression engine integrated into the recognition engine to achieve the best possible accuracy on data that can be defined by a regular expression.
Docubee is an intelligent contact automation platform built to help your team success
In some other viewers, there are highlights or markers that appear on the UI to indicate that annotations are available for a given page or document. Is there a way to implement this in PrizmDoc?
Sure can, you just need to make a MarkupLayerRecords request to determine if there are marks that pertain to the given Viewing Session. Keep in mind that documents don’t really have a specific set of annotations associated with them though — Markup IDs do, and you can specify any Markup ID you want when you create a viewing session:
MarkupLayerRecords
// Add rules to your CSS for the following classes. // The actual style information can be whatever you like. // // .mark-indicator { // background-color: gold !important; // } // // .marked-page-indicator { // background-color: gold !important; // } let pasUrl = "http://localhost/pas-service"; // Example PAS proxy URL let viewingSessionId = <%= viewingSessionId %>; // Example viewingSessionId let thumbnailButton = $(".pcc-icon-thumbnails"); let pageIndicatorsAdded = false; let thumbnailsClicked = false; let marksRetrieved = false; let markedPages = {}; async function addPageIndicators() { console.log("Attempting to add page indicators..."); if (thumbnailsClicked && marksRetrieved && !pageIndicatorsAdded) { console.log("Conditions met."); let wrappers = $(".pccThumbnailWrapper"); wrappers.each(function(index, wrapper) { if (markedPages[index]) { $(wrapper).addClass("marked-page-indicator"); } }); pageIndicatorsAdded = true; } else { console.log("Conditions not met"); } } thumbnailButton.click(function() { console.log("Thumbnails button clicked."); thumbnailsClicked = true; addPageIndicators(); }); async function apiCall(type, url, body = {}) { return await $.ajax({ "type": type, "url": url, "contentType": "application/json", "data": JSON.stringify(body) }); } async function createMarkIndicators() { let output = await apiCall("GET", `${pasUrl}/MarkupLayers/u${viewingSessionId}`); if (output.length > 0) { console.log("Found layers."); thumbnailButton.addClass("mark-indicator"); let layers = await Promise.all(output.map(function(element) { return apiCall("GET", `${pasUrl}/MarkupLayers/u${viewingSessionId}/${element.layerRecordId}`); })); layers.forEach(function(layer) { layer.marks.forEach(function(mark) { markedPages[mark.pageNumber - 1] = true; }); }); marksRetrieved = true; console.log("Marks retrieved."); addPageIndicators(); } else { console.log("No layers found."); } } createMarkIndicators();