CINXE.COM

Sign in - Ex Libris Knowledge Center

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Sign in - Ex Libris Knowledge Center</title> <link media="screen" type="text/css" rel="stylesheet" href="https://a.mtstatic.com/@cache/layout/legacy.css?_=4697dd37726fed7979fe7b0f4ce2bd05_a25vd2xlZGdlLmV4bGlicmlzZ3JvdXAuY29t:site_11811" id="mt-screen-css" /> <link media="print" type="text/css" rel="stylesheet" href="https://a.mtstatic.com/@cache/layout/print.css?_=c5d69afcac31700ff9758fde125e8285:site_11811" id="mt-print-css" /> <script type="text/javascript" nonce="77dccfced9d86c373aaf937cef5bea1e46b723706bb07964a4331cd350be3122" src="https://a.mtstatic.com/deki/javascript/out/grape.min.js?_=aae9f894b8b9c897d72439fee4980c96b51ba5ff:site_11811"></script><script type="application/json" id="mt-global-settings" nonce="77dccfced9d86c373aaf937cef5bea1e46b723706bb07964a4331cd350be3122">{"apiToken":"xhr_2_1732444677_4c5a61a74e20113387b3a6a59117cee6405d45735d9ce724d3ac4dc174166cb3","pageId":5,"pageViewId":"e8029a2e-a572-41ec-8813-8343a27f1400"}</script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css" integrity="sha256-jySGIHdxeqZZvJ9SHgPNjbsBP8roij7/WjgkoGTJICk=" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css" integrity="sha256-WmhCJ8Hu9ZnPRdh14PkGpz4PskespJwN5wwaFOfvgY8=" crossorigin="anonymous"> <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.js" integrity="sha256-4Cr335oZDYg4Di3OwgUOyqSTri0jUm2+7Gf2kH3zp1I=" crossorigin="anonymous"></script> <script type="text/javascript">/*<![CDATA[*/ var stIsIE = /*@cc_on!@*/false; sorttable = { init: function() { // quit if this function has already been called if (arguments.callee.done) return; // flag this function so we don't do the same thing twice arguments.callee.done = true; // kill the timer if (_timer) clearInterval(_timer); if (!document.createElement || !document.getElementsByTagName) return; sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/; forEach(document.getElementsByTagName('table'), function(table) { if (table.className.search(/\bsortable\b/) != -1) { sorttable.makeSortable(table); } }); }, makeSortable: function(table) { if (table.getElementsByTagName('thead').length == 0) { // table doesn't have a tHead. Since it should have, create one and // put the first table row in it. the = document.createElement('thead'); the.appendChild(table.rows[0]); table.insertBefore(the,table.firstChild); } // Safari doesn't support table.tHead, sigh if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0]; if (table.tHead.rows.length != 1) return; // can't cope with two header rows // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as // "total" rows, for example). This is B&R, since what you're supposed // to do is put them in a tfoot. So, if there are sortbottom rows, // for backwards compatibility, move them to tfoot (creating it if needed). sortbottomrows = []; for (var i=0; i<table.rows.length; i++) { if (table.rows[i].className.search(/\bsortbottom\b/) != -1) { sortbottomrows[sortbottomrows.length] = table.rows[i]; } } if (sortbottomrows) { if (table.tFoot == null) { // table doesn't have a tfoot. Create one. tfo = document.createElement('tfoot'); table.appendChild(tfo); } for (var i=0; i<sortbottomrows.length; i++) { tfo.appendChild(sortbottomrows[i]); } delete sortbottomrows; } // work through each column and calculate its type headrow = table.tHead.rows[0].cells; for (var i=0; i<headrow.length; i++) { // manually override the type with a sorttable_type attribute if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/); if (mtch) { override = mtch[1]; } if (mtch && typeof sorttable["sort_"+override] == 'function') { headrow[i].sorttable_sortfunction = sorttable["sort_"+override]; } else { headrow[i].sorttable_sortfunction = sorttable.guessType(table,i); } // make it clickable to sort headrow[i].sorttable_columnindex = i; headrow[i].sorttable_tbody = table.tBodies[0]; dean_addEvent(headrow[i],"click", sorttable.innerSortFunction = function(e) { if (this.className.search(/\bsorttable_sorted\b/) != -1) { // if we're already sorted by this column, just // reverse the table, which is quicker sorttable.reverse(this.sorttable_tbody); this.className = this.className.replace('sorttable_sorted', 'sorttable_sorted_reverse'); this.removeChild(document.getElementById('sorttable_sortfwdind')); sortrevind = document.createElement('span'); sortrevind.id = "sorttable_sortrevind"; sortrevind.innerHTML = stIsIE ? '&nbsp<font face="webdings">5' : '&nbsp;&#x25B4;'; this.appendChild(sortrevind); return; } if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) { // if we're already sorted by this column in reverse, just // re-reverse the table, which is quicker sorttable.reverse(this.sorttable_tbody); this.className = this.className.replace('sorttable_sorted_reverse', 'sorttable_sorted'); this.removeChild(document.getElementById('sorttable_sortrevind')); sortfwdind = document.createElement('span'); sortfwdind.id = "sorttable_sortfwdind"; sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6' : '&nbsp;&#x25BE;'; this.appendChild(sortfwdind); return; } // remove sorttable_sorted classes theadrow = this.parentNode; forEach(theadrow.childNodes, function(cell) { if (cell.nodeType == 1) { // an element cell.className = cell.className.replace('sorttable_sorted_reverse',''); cell.className = cell.className.replace('sorttable_sorted',''); } }); sortfwdind = document.getElementById('sorttable_sortfwdind'); if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); } sortrevind = document.getElementById('sorttable_sortrevind'); if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); } this.className += ' sorttable_sorted'; sortfwdind = document.createElement('span'); sortfwdind.id = "sorttable_sortfwdind"; sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6' : '&nbsp;&#x25BE;'; this.appendChild(sortfwdind); // build an array to sort. This is a Schwartzian transform thing, // i.e., we "decorate" each row with the actual sort key, // sort based on the sort keys, and then put the rows back in order // which is a lot faster because you only do getInnerText once per row row_array = []; col = this.sorttable_columnindex; rows = this.sorttable_tbody.rows; for (var j=0; j<rows.length; j++) { row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]]; } /* If you want a stable sort, uncomment the following line */ //sorttable.shaker_sort(row_array, this.sorttable_sortfunction); /* and comment out this one */ row_array.sort(this.sorttable_sortfunction); tb = this.sorttable_tbody; for (var j=0; j<row_array.length; j++) { tb.appendChild(row_array[j][1]); } delete row_array; }); } } }, guessType: function(table, column) { // guess the type of a column based on its first non-blank row sortfn = sorttable.sort_alpha; for (var i=0; i<table.tBodies[0].rows.length; i++) { text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]); if (text != '') { if (text.match(/^-?[&Acirc;&pound;$&Acirc;&curren;]?[\d,.]+%?$/)) { return sorttable.sort_numeric; } // check for a date: dd/mm/yyyy or dd/mm/yy // can have / or . or - as separator // can be mm/dd as well possdate = text.match(sorttable.DATE_RE) if (possdate) { // looks like a date first = parseInt(possdate[1]); second = parseInt(possdate[2]); if (first > 12) { // definitely dd/mm return sorttable.sort_ddmm; } else if (second > 12) { return sorttable.sort_mmdd; } else { // looks like a date, but we can't tell which, so assume // that it's dd/mm (English imperialism!) and keep looking sortfn = sorttable.sort_ddmm; } } } } return sortfn; }, getInnerText: function(node) { // gets the text we want to use for sorting for a cell. // strips leading and trailing whitespace. // this is *not* a generic getInnerText function; it's special to sorttable. // for example, you can override the cell text with a customkey attribute. // it also gets .value for <input> fields. if (!node) return ""; hasInputs = (typeof node.getElementsByTagName == 'function') && node.getElementsByTagName('input').length; if (node.getAttribute("sorttable_customkey") != null) { return node.getAttribute("sorttable_customkey"); } else if (typeof node.textContent != 'undefined' && !hasInputs) { return node.textContent.replace(/^\s+|\s+$/g, ''); } else if (typeof node.innerText != 'undefined' && !hasInputs) { return node.innerText.replace(/^\s+|\s+$/g, ''); } else if (typeof node.text != 'undefined' && !hasInputs) { return node.text.replace(/^\s+|\s+$/g, ''); } else { switch (node.nodeType) { case 3: if (node.nodeName.toLowerCase() == 'input') { return node.value.replace(/^\s+|\s+$/g, ''); } case 4: return node.nodeValue.replace(/^\s+|\s+$/g, ''); break; case 1: case 11: var innerText = ''; for (var i = 0; i < node.childNodes.length; i++) { innerText += sorttable.getInnerText(node.childNodes[i]); } return innerText.replace(/^\s+|\s+$/g, ''); break; default: return ''; } } }, reverse: function(tbody) { // reverse the rows in a tbody newrows = []; for (var i=0; i<tbody.rows.length; i++) { newrows[newrows.length] = tbody.rows[i]; } for (var i=newrows.length-1; i>=0; i--) { tbody.appendChild(newrows[i]); } delete newrows; }, /* sort functions each sort function takes two parameters, a and b you are comparing a[0] and b[0] */ sort_numeric: function(a,b) { aa = parseFloat(a[0].replace(/[^0-9.-]/g,'')); if (isNaN(aa)) aa = 0; bb = parseFloat(b[0].replace(/[^0-9.-]/g,'')); if (isNaN(bb)) bb = 0; return aa-bb; }, sort_alpha: function(a,b) { if (a[0]==b[0]) return 0; if (a[0]<b[0]) return -1; return 1; }, sort_ddmm: function(a,b) { mtch = a[0].match(sorttable.DATE_RE); y = mtch[3]; m = mtch[2]; d = mtch[1]; if (m.length == 1) m = '0'+m; if (d.length == 1) d = '0'+d; dt1 = y+m+d; mtch = b[0].match(sorttable.DATE_RE); y = mtch[3]; m = mtch[2]; d = mtch[1]; if (m.length == 1) m = '0'+m; if (d.length == 1) d = '0'+d; dt2 = y+m+d; if (dt1==dt2) return 0; if (dt1<dt2) return -1; return 1; }, sort_mmdd: function(a,b) { mtch = a[0].match(sorttable.DATE_RE); y = mtch[3]; d = mtch[2]; m = mtch[1]; if (m.length == 1) m = '0'+m; if (d.length == 1) d = '0'+d; dt1 = y+m+d; mtch = b[0].match(sorttable.DATE_RE); y = mtch[3]; d = mtch[2]; m = mtch[1]; if (m.length == 1) m = '0'+m; if (d.length == 1) d = '0'+d; dt2 = y+m+d; if (dt1==dt2) return 0; if (dt1<dt2) return -1; return 1; }, shaker_sort: function(list, comp_func) { // A stable sort function to allow multi-level sorting of data // see: http://en.wikipedia.org/wiki/Cocktail_sort // thanks to Joseph Nahmias var b = 0; var t = list.length - 1; var swap = true; while(swap) { swap = false; for(var i = b; i < t; ++i) { if ( comp_func(list[i], list[i+1]) > 0 ) { var q = list[i]; list[i] = list[i+1]; list[i+1] = q; swap = true; } } // for t--; if (!swap) break; for(var i = t; i > b; --i) { if ( comp_func(list[i], list[i-1]) < 0 ) { var q = list[i]; list[i] = list[i-1]; list[i-1] = q; swap = true; } } // for b++; } // while(swap) } } /* ****************************************************************** Supporting functions: bundled here to avoid depending on a library ****************************************************************** */ // Dean Edwards/Matthias Miller/John Resig /* for Mozilla/Opera9 */ if (document.addEventListener) { document.addEventListener("DOMContentLoaded", sorttable.init, false); } /* for Internet Explorer */ /*@cc_on @*/ /*@if (@_win32) document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>"); var script = document.getElementById("__ie_onload"); script.onreadystatechange = function() { if (this.readyState == "complete") { sorttable.init(); // call the onload handler } }; /*@end @*/ /* for Safari */ if (/WebKit/i.test(navigator.userAgent)) { // sniff var _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) { sorttable.init(); // call the onload handler } }, 10); } /* for other browsers */ window.onload = sorttable.init; // written by Dean Edwards, 2005 // with input from Tino Zijdel, Matthias Miller, Diego Perini // http://dean.edwards.name/weblog/2005/10/add-event/ function dean_addEvent(element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else { // assign each event handler a unique ID if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++; // create a hash table of event types for the element if (!element.events) element.events = {}; // create a hash table of event handlers for each element/event pair var handlers = element.events[type]; if (!handlers) { handlers = element.events[type] = {}; // store the existing event handler (if there is one) if (element["on" + type]) { handlers[0] = element["on" + type]; } } // store the event handler in the hash table handlers[handler.$$guid] = handler; // assign a global event handler to do all the work element["on" + type] = handleEvent; } }; // a counter used to create unique IDs dean_addEvent.guid = 1; function removeEvent(element, type, handler) { if (element.removeEventListener) { element.removeEventListener(type, handler, false); } else { // delete the event handler from the hash table if (element.events && element.events[type]) { delete element.events[type][handler.$$guid]; } } }; function handleEvent(event) { var returnValue = true; // grab the event object (IE uses a global event object) event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event); // get a reference to the hash table of event handlers var handlers = this.events[event.type]; // execute each event handler for (var i in handlers) { this.$$handleEvent = handlers[i]; if (this.$$handleEvent(event) === false) { returnValue = false; } } return returnValue; }; function fixEvent(event) { // add W3C standard event methods event.preventDefault = fixEvent.preventDefault; event.stopPropagation = fixEvent.stopPropagation; return event; }; fixEvent.preventDefault = function() { this.returnValue = false; }; fixEvent.stopPropagation = function() { this.cancelBubble = true; } // Dean's forEach: http://dean.edwards.name/base/forEach.js /* forEach, version 1.0 Copyright 2006, Dean Edwards License: http://www.opensource.org/licenses/mit-license.php */ // array-like enumeration if (!Array.forEach) { // mozilla already supports this Array.forEach = function(array, block, context) { for (var i = 0; i < array.length; i++) { block.call(context, array[i], i, array); } }; } // generic enumeration Function.prototype.forEach = function(object, block, context) { for (var key in object) { if (typeof this.prototype[key] == "undefined") { block.call(context, object[key], key, object); } } }; // character enumeration String.forEach = function(string, block, context) { Array.forEach(string.split(""), function(chr, index) { block.call(context, chr, index, string); }); }; // globally resolve forEach enumeration var forEach = function(object, block, context) { if (object) { var resolve = Object; // default if (object instanceof Function) { // functions have a "length" property resolve = Function; } else if (object.forEach instanceof Function) { // the object implements a custom forEach method so use that object.forEach(block, context); return; } else if (typeof object == "string") { // the object is a string resolve = String; } else if (typeof object.length == "number") { // the object is array-like resolve = Array; } resolve.forEach(object, block, context); } }; sorttable.sort_alpha = function(a,b) { return a[0].localeCompare(b[0]); } /*]]>*/</script> <!-- Google Tag Manager --> <script>/*<![CDATA[*/(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KXCRM3P');/*]]>*/</script> <!-- End Google Tag Manager --> <!-- OneTrust Cookies Consent Notice start for knowledge.exlibrisgroup.com --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="7286c7d4-44c2-4d10-b708-69445acbcc6a"></script> <script type="text/javascript">/*<![CDATA[*/ function OptanonWrapper() { } /*]]>*/</script> <!-- OneTrust Cookies Consent Notice end for knowledge.exlibrisgroup.com --> <!--temp baidu indexing token--> <script type="text/javascript" nonce="77dccfced9d86c373aaf937cef5bea1e46b723706bb07964a4331cd350be3122">(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','UA-71378210-1','knowledge.exlibrisgroup.com',{allowLinker:true});ga('send','pageview');ga('create','UA-65721316-17','knowledge.exlibrisgroup.com',{name:'mtTracker',allowLinker:true});ga('mtTracker.require','linker');ga('mtTracker.set', 'anonymizeIp', true);ga('mtTracker.send','pageview');document.addEventListener('mindtouch-web-widget:f1:loaded',function(e){var t=e.data||{},d=t.widget;d&&''!==t.embedId&&document.addEventListener('mindtouch-web-widget:f1:clicked',function(e){var t=(e.data||{}).href;if(t){var n=document.createElement('a');n.setAttribute('href',t),'expert-help.nice.com'===n.hostname&&(e.preventDefault(),ga('linker:decorate',n),d.open(n.href))}})});</script> </head> <body class="columbia-page-special columbia-special-userlogin columbia-breadcrumb-home-special%3Auserlogin columbia-live no-touch columbia-lang-en-us columbia-skin-grape"> <div class="grape-messaging"> </div> <div class="grape-header-custom"><div class="elm-nav-container"><div class="elm-header-logo-container"><a title="ExLibris" href="https://knowledge.exlibrisgroup.com/" rel="internal"><img alt="ExLibris" class="internal" loading="lazy" src="https://knowledge.exlibrisgroup.com/@api/deki/files/124993/ckclogonew.png?revision=1" /></a><div class="header-navigation-buttons"><div class="more-sites-container ex-dropdown"><select class="more-sites"><option value="">More Sites</option><option value="/Redirect_Corp">Exlibris Site</option><option value="http://support.proquest.com/">Support Center</option><option value="https://trust.exlibrisgroup.com/">ExLibris Trust Center</option><option value="/pageForRedirect?source=DeveloperNetwork2">Developer Network</option><option value="http://ideas.exlibrisgroup.com/">Idea Exchange</option></select></div><a href="https://status.exlibrisgroup.com/system_status" target="_blank" rel="external noopener nofollow" class="link-https"><button class="system-status-container btn-margin">System-Status</button></a><button class="submit-case">Submit a Case</button></div></div></div> <script type="text/javascript">/*<![CDATA[*/ $(function() { // MORE SITES DROPDOWN $("select.more-sites").on("click", function() { var val = $(this).val(); if (val != "") { $(this).prop("selectedIndex", 0); window.open(val, "_blank"); } }); // SYSTEM STATUS DROPDOWN $("select.system-status").on("click", function() { var val = $(this).val(); ga('send', 'event', { eventCategory: 'systemStatus', eventAction: 'systemStatusClick', eventLabel: 'systemStatus' }); if (val != "") { $(this).prop("selectedIndex", 0); window.open(val, "_blank"); } }); // SUBMIT A CASE BUTTON $(".submit-case").on("click", function() { window.open("https://support.proquest.com/s/submit-a-case", "_blank"); }); });/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { var toc_container = $("#mt-toc-container"); if (toc_container.is(":visible")) { // make the contents of the TOC container visible by default $("button.mt-toggle", toc_container) .removeClass("mt-toggle-expand") .addClass("mt-toggle-collapse"); $(".mt-toc-content").show(); } }); /*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { var pagenavigation = $(".elm-meta-article-navigation"); if (pagenavigation.length) { var content_container = $("section.mt-content-container"); pagenavigation.clone().insertBefore(content_container).addClass("article-top-navigation"); } }); /*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { var email_subject = "Interesting article from the Exlibris Knowledge Center"; var body_text = "You may be interested in this resource from the Ex Libris Knowledge Center:"; var current_page = window.location.href; var meta_icons = $("ol.elm-meta-top"); if (meta_icons.length) { var new_link_container = $("<li></li>", { "class": "elm-page-share" }); var new_link = $("<a></a>", { "href": "mailto:?subject=" + email_subject + "&body=" + body_text + " " + current_page, "title": "Share page by email", "class": "elm-page-share-link" }); var new_icon = $("<span></span>", { "text": "Share page by email", "class": "mt-icon-mail5" }); new_link.append(new_icon); new_link_container.append(new_link); meta_icons.prepend(new_link_container); $("a.elm-page-share-link").on("click", function() { ga('send', 'event', { eventCategory: 'Share', eventAction: 'SharePageByEmail', eventLabel: current_page }); }); } }); /*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { if (!$("body").hasClass("columbia-article-topic")) { var Content = $("section.mt-content-container"); var PDFLink = $("a.SectionPDF", Content); var SocialLink = $(".elm-social-share"); if (PDFLink.length) { var new_link_container = $("<li></li>", { "class": "elm-pdf-download" }); var new_link = $("<a></a>", { "href": PDFLink.attr("href"), "title": "Download PDF" }); var new_icon = $("<span></span>", { "text": "Download PDF", "class": "mt-icon-file-pdf" }); new_link.append(new_icon); new_link_container.append(new_link); new_link_container.insertBefore(SocialLink); PDFLink.closest("div").hide(); } } });/*]]>*/</script> <div id="back-to-top"><a href="#"><span class="mt-icon-arrow-up7"></span></a></div> <script type="text/javascript">/*<![CDATA[*/ $(document).scroll(function() { var pageTop = $(this).scrollTop(); var backToTop = $('#back-to-top'); if (pageTop > 800) { backToTop.fadeIn(); } else { backToTop.fadeOut(); } }); /*]]>*/</script> <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script> <script type="text/javascript">/*<![CDATA[*/ let firstOpen = true; const chatWindowStateKey = "chatWindowState"; const uniqueIdKey = 'conversationInfoToken'; const uniqueIdKeyExpDate = 'conversationInfoTokenExpDate'; document.addEventListener("DOMContentLoaded", function() { const chatButton = document.getElementById("chat-button"); const chatWindow = document.getElementById("chatBody"); const chatBodyHeadingClose = document.getElementById("chatBodyHeadingClose"); const chatWindowState = localStorage.getItem(chatWindowStateKey); // This is a walkaround to the problem that the HTML editor changes the html after each edit... chatButton.innerHTML = atob("PGRpdiBjbGFzcz0iY2hhdC1idXR0b24tdGV4dCI+S05PV0xFREdFIEFTU0lTVEFOVDwvZGl2Pg0KCQk8c3BhbiBjbGFzcz0iY2hhdC1ib2R5LWhlYWRpbmctdGl0bGUtYmV0YSIgc3R5bGU9IiI+QkVUQTwvc3Bhbj4NCgkJPGRpdiBjbGFzcz0iY2hhdC1idXR0b24taWNvbiI+DQoJCQk8c3ZnIGNsYXNzPSJjaGF0LWJ1dHRvbi1pY29uLXN2ZyIgZmlsbD0iI2ZmZmZmZiIgdmlld2JveD0iMCAwIDE2IDE2Ij4gDQoJCQkJPHBhdGggY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTAuNTYyNyA5LjU5ODIzQzcuNjQxMTMgOS41OTgyMyA1LjI4MTM3IDcuMjI5MTEgNS4yODEzNyA0LjMxNjg2QzUuMjgxMzcgNy4yMjkxMSAyLjkxMjI1IDkuNTk4MjMgMCA5LjU5ODIzQzIuOTEyMjUgOS41OTgyMyA1LjI4MTM3IDExLjk1OCA1LjI4MTM3IDE0Ljg3MDJDNS4yODEzNyAxMS45NTggNy42NDExMyA5LjU5ODIzIDEwLjU2MjcgOS41OTgyM1oiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPiANCgkJCQk8cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45ODQ4IDEyLjMyMzRDMTQuMzgzNSAxMi4zMjM0IDEzLjA5MTMgMTEuMDIxOCAxMy4wOTEzIDkuNDI5OUMxMy4wOTEzIDExLjAyMTggMTEuNzg5NyAxMi4zMjM0IDEwLjE5NzggMTIuMzIzNEMxMS43ODk3IDEyLjMyMzQgMTMuMDkxMyAxMy42MTU3IDEzLjA5MTMgMTUuMjE2OUMxMy4wOTEzIDEzLjYxNTcgMTQuMzgzNSAxMi4zMjM0IDE1Ljk4NDggMTIuMzIzNFoiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPiANCgkJCQk8cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC4zMTc3IDMuNTIwOTFDMTIuMzcgMy41MjA5MSAxMC43OTY4IDEuOTQ3NzQgMTAuNzk2OCAwQzEwLjc5NjggMS45NDc3NCA5LjIyMzYyIDMuNTIwOTEgNy4yNzU4OCAzLjUyMDkxQzkuMjIzNjIgMy41MjA5MSAxMC43OTY4IDUuMDk0MDkgMTAuNzk2OCA3LjA0MTgzQzEwLjc5NjggNS4wOTQwOSAxMi4zNyAzLjUyMDkxIDE0LjMxNzcgMy41MjA5MVoiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPiANCgkJCTwvc3ZnPg0KCQk8L2Rpdj4="); if (chatWindowState === "open") { openFirstChat(); firstOpen = false; chatWindow.style.display = "block"; } // Toggle chat window visibility chatBodyHeadingClose.addEventListener("click", function() { localStorage.setItem(chatWindowStateKey, "closed"); }); // Toggle chat window visibility chatButton.addEventListener("click", function() { if(firstOpen){ openFirstChat(); firstOpen = false; } localStorage.setItem(chatWindowStateKey, "open"); }); }); const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => { if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') { dispatch({ type: 'WEB_CHAT/SEND_EVENT', payload: { name: 'startConversation', value: { language: window.navigator.language } } }); } return next(action); }); const styleOptions = { // Add styleOptions to customize Web Chat canvas hideUploadButton: true, accent: '#00809d', botAvatarBackgroundColor: 'rgba(168,122,224,1)', botAvatarImage: 'https://knowledge.exlibrisgroup.com/@api/deki/files/174178/AI_Icon.png', botAvatarInitials: 'BT', userAvatarBackgroundColor: 'rgb(132 119 230)', userAvatarImage: 'https://knowledge.exlibrisgroup.com/@api/deki/files/174179/User_icon.png', userAvatarInitials: 'U', rootWidth: '360px', backgroundColor: 'transparent', sendBoxBorderTop: undefined, sendBoxBackground: 'transparent', sendBoxPlaceholderColor: '#424242', bubbleFromUserBackground: '#dae0ff', bubbleFromUserBorderRadius: '12px', bubbleFromUserBorderWidth: '0px', bubbleBorderRadius: '12px', }; // Add your BOT token endpoint below var theURL = "https://default127fa96e00b4429e95f972c2828437.a4.environment.api.powerplatform.com/powervirtualagents/botsbyschema/cr29b_knowledgeAssistantAcademic/directline/token?api-version=2022-03-01-preview"; var environmentEndPoint = theURL.slice(0, theURL.indexOf('/powervirtualagents')); var apiVersion = theURL.slice(theURL.indexOf('api-version')).split('=')[1]; var regionalChannelSettingsURL = `${environmentEndPoint}/powervirtualagents/regionalchannelsettings?api-version=${apiVersion}`; var directline; let conversationInfoStorage = sessionStorage.getItem(uniqueIdKey); let conversationInfoStorageExpDate = sessionStorage.getItem(uniqueIdKeyExpDate); function fetchConverstion() { if (!conversationInfoStorage || !conversationInfoStorageExpDate || (conversationInfoStorageExpDate < (new Date()).getTime())) { fetch(theURL) .then(response => response.json()) .then(conversationInfo => { sessionStorage.setItem(uniqueIdKey, conversationInfo.token); sessionStorage.setItem(uniqueIdKeyExpDate, (new Date()).getTime() + conversationInfo.expires_in * 1000); window.WebChat.renderWebChat({ directLine: window.WebChat.createDirectLine({ domain: `${directline}v3/directline`, token: conversationInfo.token, }), store, styleOptions }, document.getElementById('webchat') ); }) .catch(err => console.error("An error occurred: " + err)); } else { window.WebChat.renderWebChat({ directLine: window.WebChat.createDirectLine({ domain: `${directline}v3/directline`, token: conversationInfoStorage, }), styleOptions }, document.getElementById('webchat') ); } } function openFirstChat(){ fetch(regionalChannelSettingsURL) .then((response) => { return response.json(); }) .then((data) => { directline = data.channelUrlsById.directline; fetchConverstion(); }) .catch(err => console.error("An error occurred: " + err)); }/*]]>*/</script> <p><button id="chat-button" onclick="document.getElementById('chatBody').style.display = 'block'"></button></p> <div class="chat-body" id="chatBody" style="display:none"> <div class="chat-body-heading" id="heading"> <div class="chat-body-heading-title"><svg class="chat-body-heading-title-icon" fill="none" height="25" viewbox="0 0 26 25" width="26"> <path clip-rule="evenodd" d="M17.1645 15.5971C12.4168 15.5971 8.58223 11.7473 8.58223 7.01489C8.58223 11.7473 4.7324 15.5971 0 15.5971C4.7324 15.5971 8.58223 19.4317 8.58223 24.1641C8.58223 19.4317 12.4168 15.5971 17.1645 15.5971Z" fill="url(#paint0_radial_249_166)" fill-rule="evenodd"></path> <path clip-rule="evenodd" d="M25.9747 20.0256C23.3727 20.0256 21.2728 17.9105 21.2728 15.3236C21.2728 17.9105 19.1576 20.0256 16.5708 20.0256C19.1576 20.0256 21.2728 22.1255 21.2728 24.7275C21.2728 22.1255 23.3727 20.0256 25.9747 20.0256Z" fill="url(#paint1_radial_249_166)" fill-rule="evenodd"></path> <path clip-rule="evenodd" d="M23.2662 5.72148C20.1011 5.72148 17.5447 3.16508 17.5447 0C17.5447 3.16508 14.9883 5.72148 11.8232 5.72148C14.9883 5.72148 17.5447 8.27789 17.5447 11.443C17.5447 8.27789 20.1011 5.72148 23.2662 5.72148Z" fill="url(#paint2_radial_249_166)" fill-rule="evenodd"></path> <defs> <radialgradient cx="0" cy="0" gradienttransform="translate(10.8437 23.7164) rotate(-90) scale(15.9625 19.6815)" gradientunits="userSpaceOnUse" id="paint0_radial_249_166" r="1"> <stop stop-color="#B175E1"></stop> <stop offset="1" stop-color="#3595F0"></stop> </radialgradient> <radialgradient cx="0" cy="0" gradienttransform="translate(22.5118 24.482) rotate(-90) scale(8.75318 10.7829)" gradientunits="userSpaceOnUse" id="paint1_radial_249_166" r="1"> <stop stop-color="#B175E1"></stop> <stop offset="1" stop-color="#3595F0"></stop> </radialgradient> <radialgradient cx="0" cy="0" gradienttransform="translate(19.0524 11.1442) rotate(-90) scale(10.6511 13.121)" gradientunits="userSpaceOnUse" id="paint2_radial_249_166" r="1"> <stop stop-color="#B175E1"></stop> <stop offset="1" stop-color="#3595F0"></stop> </radialgradient> </defs> </svg> <div mt-section-origin="Template:Copilot_Knowledge_Assistant" class="mt-section"><h1 class="chat-body-heading-title-text editable">Knowledge Assistant</h1> <span class="chat-body-heading-title-beta" style="">BETA</span></div></div> <button aria-label="Close" class="chat-body-heading-close" id="chatBodyHeadingClose" onclick="document.getElementById('chatBody').style.display = 'none'" title="Hide Chat"><svg fill="none" height="25" viewbox="0 0 24 25" width="24"> <mask height="25" id="mask0_358_81" maskunits="userSpaceOnUse" style="mask-type:alpha" width="24" x="0" y="0"> <rect fill="#D9D9D9" height="24" width="24" y="0.360596"></rect> </mask> <g mask="url(#mask0_358_81)"> <path d="M6.4 19.3606L5 17.9606L10.6 12.3606L5 6.7606L6.4 5.3606L12 10.9606L17.6 5.3606L19 6.7606L13.4 12.3606L19 17.9606L17.6 19.3606L12 13.7606L6.4 19.3606Z" fill="#666666"></path> </g> </svg></button></div> <div id="webchat" role="main"> <div role="progressbar" aria-label="Loading..." aria-live="assertive" data-automation-id="PageSpinner" data-testid="PageSpinner" class="fui-Spinner r82apo5"><span class="fui-Spinner__spinner rvgcg50 ___1xxu43e f1d2rq10 f1szoe96 fb52u90"><span class="fui-Spinner__spinnerTail rxov3xa"></span></span></div> </div> </div> <script type="text/javascript">/*<![CDATA[*/ $(function() { var document_path = window.location.pathname.split("/"); var path_depth = document_path.length-1; // the following pages all have one additional level above the 'product page' level var second_level_product_pages = ["Intota", "360_Services"]; // the following pages are the community corner sections which should have icons var second_level_additional_icons = ["Content_Corner"]; if ((path_depth == 1 && document_path[1].length) || (second_level_product_pages.indexOf(document_path[1]) != -1 && path_depth == 2) || (second_level_additional_icons.indexOf(document_path[2]) !== -1 && path_depth ==2)) { $("body").addClass("product-page"); } });/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function () { // Only display the product link area when a link exists for the current page var FeaturedTopicsContainer = $(".featured-topics"); // limit appearance to top-level product pages if ( $("body").hasClass("product-page") && $("ul", FeaturedTopicsContainer).length >= 1 ) { var DestinationElement = $(".mt-category-container", "#elm-main-content"); FeaturedTopicsContainer.insertBefore(DestinationElement); } });/*]]>*/</script> <div class="product-link featured-topics"> </div> <script type="text/javascript">/*<![CDATA[*/ $(function () { // Only display the product link area when a link exists for the current page var ProductLinkContainer = $(".product-link"); // limit appearance to top-level product pages if ( $("body").hasClass("product-page") && $("p", ProductLinkContainer).length >= 1 ) { var DestinationElement = $("#elm-main-content"); ProductLinkContainer.appendTo(DestinationElement); } });/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ // This function adds a "language-options" class to the ul.sortable-listings container // which enables a class on the first-child li and makes it full width IF the page is // called "Product Documentation" (searched for in the body class) AND there is a title // containing the text "(English)" $(function() { if ( $('body').is('[class*="productdocumentation"]') ) { if ($('a[title*="(English)"]').length) { $('ul.mt-sortable-listings-container').addClass('language-options'); } } }); /*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { // RSS link icon displayed on the current page var rss_link = $("a.generate-rss"); // address of the MindTouch page that calls the FetchRSS API var generator_address = "/createRSSFeed"; // address of the current page var current_url = window.location.href; // address to redirect user to var rss_address = generator_address + "?pageurl=" + current_url; // if the RSS link icon exists set up the onclick action and relocate the // icon to its desired display position if (rss_link.length) { rss_link.on("click", function(e) { e.preventDefault(); window.open(rss_address, "_blank"); }); $(".elm-page-rss-feed").prependTo(".elm-meta-data.elm-meta-top"); } });/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { // RSS link icon displayed on the current page var rss_link = $("a.generate-rss"); // address of the MindTouch page that calls the FetchRSS API var generator_address = "/createRSSFeed"; // address of the current page var current_url = window.location.href; // address to redirect user to var rss_address = generator_address + "?pageurl=" + current_url; // if the RSS link icon exists set up the onclick action and relocate the // icon to its desired display position if (rss_link.length) { rss_link.on("click", function(e) { e.preventDefault(); window.open(rss_address, "_blank"); }); $(".elm-page-rss-feed").prependTo(".elm-meta-data.elm-meta-top"); } });/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(window).load(function() { var DetailedListingAreas = $("body.columbia-article-topic-category").find("dl.mt-listing-detailed"); DetailedListingAreas.each(function() { var Content = $("dd.mt-listing-detailed-subpages", $(this)); // Only make the changes if there are sub-pages to be displayed if ($("li", Content).length) { var Parent = $(this).parent(); /* parent li item */ var Trigger = Parent; var Title = $(".mt-listing-detailed-title", $(this)); var LinkAddress = Title.find("a").attr("href"); // shorten titles of sub-articles if necessary $("li a", Content).each(function() { var children = $(this).children(); var text = $(this).text(); if (text.length > 35) { $(this).text(text.substr(0,32) + "..."); $(this).prepend(children); } }); // create a button linking to the immediate sub-page var AllTopicLink = $("<button />", { class: "ex-listing-all", text: "Show all topics", }).on("click", function() { window.location=LinkAddress; }); var AllTopicLinkContainer = $("<li></li>"); AllTopicLinkContainer.append(AllTopicLink); $("ul", Content).append(AllTopicLinkContainer); // add the mouse actions Trigger.on("mouseenter", function() { Content.fadeIn("fast"); }); Trigger.on("mouseleave", function() { Content.hide(); }); } }); });/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(window).load(function() { if ($("body").hasClass("columbia-article-topic-guide")) { // remove the next/previous article links from the top of the page // can't be done in CSS although I can't ascertain for what reason $(".elm-meta-article-navigation").hide(); } // only apply this to Guide pages when viewed by non-administrator users if ($("body").hasClass("columbia-article-topic-guide") && !$("body").hasClass("elm-user-pro-edit")) { // hide the regular MT tabs $(".mt-guide-tabs-selectors").hide(); // hide the add tab button (not strictly necessary as it doesn't appear to non-admins, but nice for testing $(".mt-guide-add-button-container").hide(); // count the number of tabs on this page var numberOfTabs = $("li.mt-guide-tab").length; if (numberOfTabs > 1) { var guideTabContainer = $(".mt-guide-tabs-container"); // extract the link from each tab and insert it before the guide container $(".mt-guide-tab-link").each(function(index) { // get the ID of this link so that we can trigger a click event from the new element var link_id = $(this).attr("id"); // now have to remove the ID from the cloned element or we get stuck in a click-trigger loop var newLink = $(this) .clone() .removeAttr("id") .addClass("ex-tab-link"); // add an "active" class to the first of the new tab buttons if (index == 0) { newLink.addClass("active"); } // add the click trigger action to fire on the original when the new button is clicked // can't simply use a link as MT uses jQuery to load tab content newLink.on("click", function(e) { e.preventDefault(); $("a.ex-tab-link.active").not($(this)).removeClass("active"); $(this).addClass("active"); $("#" + link_id).trigger("click"); }); // finally: add the new link newLink.insertBefore(guideTabContainer); }); } } });/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { var SearchTipsLink = '/Cross-Product/Knowledge_Articles/Tips_for_Advanced_Document_Searching_in_the_Customer_Knowledge_Center'; var NoResultsText = 'Search Tips:<br><br>Try using an exact phrase search ("my search") or the AND operator (my AND search).<br><br>Other useful search tips can be found <a href="' + SearchTipsLink + '">here</a>.'; function overrideSearchText() { var TextContainer = $("li.type-empty p"); if (TextContainer.length) { // override the no results found text $("li.type-empty p").html(NoResultsText).show(); // stop the task that searches for text clearInterval(TextSearch); } } if ($("body").hasClass("columbia-special-search")) { // Keep running the function in case search text appears var TextSearch = setInterval(overrideSearchText, 500); } }); /*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { var PageRequested = window.location.href; var ReplacementHTML = "<strong>Sorry, the page </strong>" + PageRequested + "<strong> does not exist, or is no longer valid.</strong><br><br>"; ReplacementHTML = ReplacementHTML + "You may try searching the Knowledge Center for relevant information, or checking the following suggested pages:"; var Error404Container = $("#special-404"); if (Error404Container.length) { var NoticeParagraph = $("<p></p>").html(ReplacementHTML); Error404Container.prepend(NoticeParagraph); } }); /*]]>*/</script> <div class="elm-nav product-search-container product-search-container-home"><div class="elm-nav-container product-search"><div class="search-back"><button><i class="mt-icon-arrow-left8"></i>Back</button></div><form action="/Special:Search" class="product-search-form"><div class="product-search-form-inner"><div class="product-search-path-container"><select name="product" class="product-search-path"><option value="">SELECT A PRODUCT</option><option>Aleph</option><option>Alephino</option><option>Alma</option><option>bX</option><option>campusM</option><option>Content</option><option>Cross-Product</option><option>DigiTool</option><option>Esploro</option><option>Intota</option><option>Leganto</option><option>MetaLib</option><option>Pivot</option><option>Primo</option><option>Primo Central</option><option>Rapido</option><option>RapidILL</option><option>Research Professional</option><option>RefWorks</option><option>Rialto</option><option>Rosetta</option><option>SFX</option><option>Summon</option><option>Ulrich's</option><option>UStat</option><option>Verde</option><option>Voyager</option><option>360 KB</option><option>360 Services</option></select></div><input type="text" name="search" class="product-search-text" placeholder="Search..."></input><button type="submit"><span class="mt-icon-search"></span></button><input type="hidden" name="path" class="page-path"></input><input type="hidden" name="tags" class="search-tags"></input></div></form></div></div> <script type="text/javascript">/*<![CDATA[*/ $(function() { // Some items that we'll refer to throughout the code below var en_Message = "Please select a product to retrieve relevant results."; var SearchContainer = $(".product-search-container"); // the container that wraps the search input and select menu var SearchOptions = $(".product-search-path"); // the select menu that contains the product list var SearchInput = $(".product-search-text"); // the input field for search text var PagePath = $(".page-path"); // the hidden form element containing the current page path var SearchPath = getUrlParameter("path"); // if we are on a search results page this will allow us to retrieve the path var BackButton = $(".search-back button"); var CurrentProduct = getUrlParameter("product"); var SearchTags = getUrlParameter("tags"); var HiddenTagField = $(".search-tags"); if (CurrentProduct) { BackButton.show().on("click", function(event) { event.preventDefault(); window.history.back(); }); // we should also re-populate the search input field and path SearchInputText = getUrlParameter("search"); SearchInputText = decodeURIComponent(SearchInputText.replace(/\+/g, '%20')); SearchInput.val(SearchInputText); SearchPath = decodeURIComponent(SearchPath); PagePath.val(SearchPath); SearchTags = decodeURIComponent(SearchTags); if (SearchTags != "null" && SearchTags != "any") { HiddenTagField.val(SearchTags); } setSearchStyle(CurrentProduct); } // set up some actions to happen if the user manually switches the search path SearchOptions.on("change", function() { setSearchStyle($(this).val()); PagePath.val($(this).val()); }); // Now move the search from the custom header block into its final location // this will automatically "reveal" the search as it picks up global styles var DestinationElement = $(".elm-header-global-nav"); SearchContainer.insertBefore(DestinationElement); // Prevent the form from being submitted until a product has been selected $(".product-search-form").on("submit", function(event) { // cancel if no text for searching if (!SearchInput.val().length) { event.preventDefault(); return false; } // warn if no product selected var Product = SearchOptions.val(); if (Product == "") { alert(en_Message); event.preventDefault(); } }); }); // capture carousel path changes which is a bit complicated as the carousel is dynamically loaded after the page // is rendered, and then re-draws whenever a change is made. Using setInterval to check every second for updates // and then getting the path from any link within the carousel/MT help filter area $(window).load(function() { setInterval(function() { $("select.mt-classification-filter-select", "#mt-help-results").each(function() { $(this).on("change", setSearchTags); }); $("a", "#mt-help-results").on("click", function() { var CarouselPath = ""; if ($(this).data("crumb-path") || $(this).data("path")) { CarouselPath = ($(this).data("crumb-path")) ? $(this).data("crumb-path") : $(this).data("path"); } if (CarouselPath.length) { $(".page-path").val(CarouselPath); CurrentProduct = CarouselPath.split("/", 1); CurrentProduct = CurrentProduct[0]; setSearchStyle(CurrentProduct); } else { setSearchStyle(""); } }); }, 1000); }); function setSearchTags() { var tags = $(this).val(); var HiddenTagField = $(".search-tags"); if (tags == "any" || tags == "null") { HiddenTagField.val(""); } else { $(".search-tags").val($(this).val()); } } function setSearchStyle(product) { // set the search form container title to the product path // have to use the title (NOT class name) as some products are // invalid for CSS names, such as 360 KB (cannot start with number) var SearchContainer = $(".product-search-container"); // the container that wraps the search input and select menu var SearchInput = $(".product-search-text"); // the input field for search text var SearchOptions = $(".product-search-path"); // the select menu that contains the product list // select the relevant option from the product select menu var ProductInList = false; $("option", SearchOptions).each(function() { if ($(this).val() == product) { $(this).attr("selected", "selected"); ProductInList = true; } }); SearchContainer.attr("title", product); // set the placeholder text if (product.length) { SearchInput.attr("placeholder", "Search within " + product + "..."); } else { SearchInput.attr("placeholder", "Search..."); } } function getUrlParameter(param){ var pattern = new RegExp('[?&]'+param+'((=([^&]*))|(?=(&|$)))','i'); var m = window.location.search.match(pattern); return m && ( typeof(m[3])==='undefined' ? '' : m[3] ); }/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ $(function() { var homepage_text = $(".homepage_text"); var content_container = $("section.mt-content-container").first(); if ($(window).width() < 600) { homepage_text.prependTo(content_container); } $(window).on('resize', function() { if ($(window).width() < 600) { homepage_text.prependTo(content_container); } else { homepage_text.appendTo(content_container); } }); // First push the names of the products up from the link within the sortable list // and onto the <li> container so that this can get required border colour style $("li.mt-sortable-listing").attr("title", function() { return $(this).children("a.mt-sortable-listing-link").attr("title"); }); // Initialise the homepage product slider/carousel for non-ADMIN users // Note: this is dependant on 2 CSS files loaded in Control Panel -> Custom HTML // Note: this is dependant on a script loaded in Control Panel -> Custom HTML if (!$("body").hasClass("elm-user-pro-edit")) { var slick_slider = $(".columbia-page-home .mt-sortable-listings-container"); var settings = { dots: true, infinite: true, slidesToShow: 6, slidesToScroll: 6, responsive: [ { breakpoint: 1280, settings: { slidesToShow: 5, slidesToScroll: 5 } }, { breakpoint: 1230, settings: { slidesToShow: 4, slidesToScroll: 4 } }, { breakpoint: 930, settings: { slidesToShow: 3, slidesToScroll: 3 } } ] } if ($(window).width() > 599) { slick_slider .removeClass("mt-sortable-listings-container") .slick(settings); } // reslick only if it's not slick() $(window).on('resize', function() { if ($(window).width() < 600) { if (slick_slider.hasClass('slick-initialized')) { slick_slider.slick('unslick'); slick_slider.addClass("mt-sortable-listings-container"); } return; } if (!slick_slider.hasClass('slick-initialized')) { slick_slider.removeClass("mt-sortable-listings-container"); return slick_slider.slick(settings); } }); } $("div.mt-category-container").show(); }); /*]]>*/</script> <p>&nbsp;</p> <script type="text/javascript">/*<![CDATA[*/ // Add Roboto font Deki.Fonts.addGoogleFontFamily('Roboto:r,b,i');/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ /* Parse parameters */ var documentParams; function getDocumentParams() { if (!documentParams) { documentParams = {}; if (document.location.search) { var decodedSearch = decodeURIComponent(document.location.search.substring(1).replace('+', ' ')); var searchParams = decodedSearch.split(/&/); for (var i = 0; i < searchParams.length; i++) { var param = searchParams[i]; var match = param.match(/^([^=]+)=(.*)$/); if (match) { documentParams[match[1]] = match[2]; } } } } return documentParams; } function toggle(it,min,max) { if (!min) {min = 50}; if (!max) {max = 500}; if (it.width == min) {it.width = max;} else {it.width = min;} } /* * Optional sections processing * */ function initOptional() { /* Pivot */ var uxpParam = getDocumentParams().uxp; var uxpTrueElements = document.querySelectorAll(".CallOut"); if (uxpParam != "true") { for (var i = 0; i < uxpTrueElements.length; i++) { uxpTrueElements[i].style['display'] = 'none'; } } else if (uxpParam == "true") { var hrefs = document.getElementsByTagName('a'); for (var i = 0; i < hrefs.length; i++) { if (hrefs[i]['href'].indexOf('/Pivot/Product_Documentation') != -1 && hrefs[i]['href'].indexOf('uxp') == -1) { if (hrefs[i]['href'].indexOf('?') == -1) { if (hrefs[i]['href'].indexOf('#') == -1) { hrefs[i]['href'] += '?uxp=true'; } else { hrefs[i]['href'] = hrefs[i]['href'].replace('#','?uxp=true#'); } } else { hrefs[i]['href'] = hrefs[i]['href'].replace('?','?uxp=true&'); } } } } /* Release Notes: Process MON, CAT, and SER parameters */ var monParam = getDocumentParams().mon; var catParam = getDocumentParams().cat; var serParam = getDocumentParams().ser; if (monParam && document.getElementById('rnMonthList')) { document.getElementById('rnMonthList').value=monParam; if (catParam && document.getElementById('rnCatList')) { document.getElementById('rnCatList').value=catParam; } if (serParam && document.getElementById('rnSearchList')) { document.getElementById('rnSearchList').value=serParam; } filterRN(); } else if (document.getElementById('rnMonthList')) { if (catParam && document.getElementById('rnCatList')) { document.getElementById("rnMonthList").value="All"; document.getElementById('rnCatList').value=catParam; } if (serParam && document.getElementById('rnSearchList')) { document.getElementById("rnMonthList").value="All"; document.getElementById('rnSearchList').value=serParam; } filterRN(); } }/*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ //google analytics feedback buttons $(function() { $( 'button.mt-rating-button-no' ).click(function() { ga('send', 'event', { eventCategory: 'badFeedback', eventAction: 'badFeedbackClick', eventLabel: 'badFeedback' }); }); $( 'button.mt-rating-button-yes' ).click(function() { ga('send', 'event', { eventCategory: 'goodFeedback', eventAction: 'goodFeedbackClick', eventLabel: 'goodFeedback' }); }); // See pageForRedirect and LogoAndNavigation templates for additional action captures // as these needed changing from previous onclick handlers due to alteration of elements // from javascript pop-ups to standard "select" elements });/*]]>*/</script> </div> <div class="grape-header grape-wrapper"> <div class="grape-header-container grape-wrapper-container"> <div class="grape-site-logo"> <a class="logo-anonymous" href="/" title="Ex Libris Knowledge Center"> <img class="mt-cdn" src="https://a.mtstatic.com/@public/production/site_11811/1638394879-logo.png" alt="Ex Libris Knowledge Center" title="Ex Libris Knowledge Center"> </a> </div> <div class="grape-site-navigation"> </div> <div class="grape-site-search"> <div class="mt-quick-search-container"> <form action="/Special:Search"> <input name="path" id="mt-search-path" type="hidden" value="" /> <label class="mt-label" for="mt-site-search-input"> Search </label> <input class="mt-text mt-search search-field" name="q" id="mt-site-search-input" placeholder="How can we help you?" type="search" /> <button class="mt-button ui-button-icon mt-icon-site-search-button search-button" type="submit"> Search </button> </form> </div> </div> </div> <div class="grape-site-nav grape-wrapper-container"> <ul class="mt-breadcrumbs"> </ul> </div> </div> <div class="grape-content grape-wrapper"> <div class="grape-content-container grape-wrapper-container"> <div id="flash-messages"><div class="dekiFlash"></div></div> <h1 id="title" class="no-edit" style="visibility: visible;"> Sign in </h1> <div class="mt-last-updated"> <strong>Last updated:</strong> <span class="modified mt-last-updated-timestamp" data-timestamp="2015-06-30T22:27:32Z"></span> </div> <div id="mt-toc-container" data-title="Table of contents" data-collapsed="true"> <button class="mt-toggle mt-summary-toggle ui-button-icon mt-toggle-expand">Table of contents</button> <div class="mt-toc-content mt-collapsible-section mt-toc-hide"> <em>No headers</em> </div> </div> <div id="page-top"> <div id="topic"> <div id="pageText"><div id="SpecialUserlogin"><div class="mt-tabs ui-tabs ui-widget ui-widget-content ui-corner-all login-password-register"> <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"> <li class="ui-state-default ui-corner-top ui-state-active ui-tabs-selected" id="widget-login"> <a href="#">Sign in</a> <span></span> </li> <li class="ui-state-default ui-corner-top" id="widget-password"> <a href="#">Password reset</a> <span></span> </li> </ul> <div class="ui-tabs-panel ui-widget-content ui-corner-bottom"> <div class="mt-login-skin-template"> </div> <div id="widget-login-panel" class="widget-panel active-panel hide"> <form method="post" id="mt-login-form" action="https://knowledge.exlibrisgroup.com/Special:UserLogin" class="user-login"> <div class="field mt-field"> <label for="text-username" class="label-text-username">Username</label> <input type="text" value="" name="username" tabindex="2" autocomplete="off" size="24" spellcheck="false" class="input-text" id="text-username" /> </div> <div class="field mt-field last"> <label for="password-password" class="label-password-password">Password</label> <input type="password" name="password" tabindex="3" autocomplete="off" size="24" spellcheck="false" class="input-password" id="password-password" /> </div> <input type="hidden" value="Leganto/Training/Leganto_for_Instructors_2018" name="returntotitle" tabindex="-1" id="hidden-returntotitle" /><input type="hidden" value="" name="returnquery" tabindex="-1" id="hidden-returnquery" /> <div class="field mt-field mt-submit"> <button type="submit" name="deki_buttons[action][login]" value="login" class="ui-button ui-button-primary" tabindex="4"><span>Sign in</span></button> </div> </form> </div> <div id="widget-register-panel" class="widget-panel hide"> </div> <div id="widget-password-panel" class="widget-panel hide"> <form method="post" class="user-password-reminder" action="https://knowledge.exlibrisgroup.com/Special:UserPassword"> <div class="field mt-field"> <label for="text-mt-password-username" class="label-text-mt-password-username">Username</label> <input type="text" value="" name="mt-password-username" tabindex="2" size="24" spellcheck="false" autocomplete="off" class="input-text" id="text-mt-password-username" /> </div> <input type="hidden" name="email_submit"></input> <div class="field mt-field mt-submit"> <button type="submit" name="deki_buttons[action][login]" value="login" class="ui-button ui-button-primary" tabindex="3"><span>Password reset</span></button> </div> </form> </div> </div> </div> </div></div> </div> </div> </div> </div> <div class="grape-footer grape-wrapper"> <div class="grape-wrapper-container"> <ol> <li class="grape-footer-copyright">&copy; Copyright 2024 Ex Libris Knowledge Center</li> <li class="grape-footer-powered-by"><a href="https://mindtouch.com/demo" class="mt-poweredby product " title="MindTouch" target="_blank"> Powered by CXone Expert <span class="mt-registered">&reg;</span> </a></li> </ol> </div> </div> <div class="grape-footer-custom"><footer><div class="elm-nav-container"><div class="exlibris-footer"><ul id="useful_links"><li><a target="_self" href="https://knowledge.exlibrisgroup.com/TERMS_OF_USE" rel="internal">Term of Use</a></li><li><a target="_blank" href="https://www.exlibrisgroup.com/privacy-policy/" rel="external noopener nofollow" class="link-https">Privacy Policy</a></li><li id="teconsent"></li><li><a href="https://knowledge.exlibrisgroup.com/Cross-Product/Knowledge_Articles/How_to_contact_Ex_Libris_for_assistance_or_to_discuss_technical_matters" rel="internal">Contact Us</a></li></ul><span class="reserved">2024 Ex Libris. All rights reserved</span></div></div></footer> </div> <script>/*<![CDATA[*/ initOptional(); (function(){ var x = document.getElementsByClassName('lastModified'); for (var i = 0; i < x.length; i++) { var d = new Date(x[i].innerText); x[i].setAttribute('sorttable_customkey', d.toISOString().substring(0, 10)); } })(); /*]]>*/</script> <!--Feedback--> <script type="text/javascript">/*<![CDATA[*/ window.doorbellOptions = { "id": "2602", "appKey": "Qo1eqHoGxyAyBumYthdr9YjCAxeowyUw8hdj2EJ2bgPomMf5IeNGpABlK1QGmq42" }; (function(w, d, t) { var hasLoaded = false; function l() { if (hasLoaded) { return; } hasLoaded = true; window.doorbellOptions.windowLoaded = true; var g = d.createElement(t);g.id = 'doorbellScript';g.type = 'text/javascript';g.async = true;g.src = 'https://embed.doorbell.io/button/'+window.doorbellOptions['id']+'?t='+(new Date().getTime());(d.getElementsByTagName('head')[0]||d.getElementsByTagName('body')[0]).appendChild(g); } if (w.attachEvent) { w.attachEvent('onload', l); } else if (w.addEventListener) { w.addEventListener('load', l, false); } else { l(); } if (d.readyState == 'complete') { l(); } }(window, document, 'script')); /*]]>*/</script> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KXCRM3P" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10