diff --git a/themes/finc/js/lightbox.js b/themes/finc/js/lightbox.js new file mode 100644 index 0000000000000000000000000000000000000000..17e429708bac72f025bb0a06dad804f9dc0f83e9 --- /dev/null +++ b/themes/finc/js/lightbox.js @@ -0,0 +1,439 @@ +/*global recaptchaOnLoad, resetCaptcha, VuFind, TEMPORARY BARF CK*/ +VuFind.register('lightbox', function Lightbox() { + // State + var _originalUrl = false; + var _currentUrl = false; + var _lightboxTitle = false; + var refreshOnClose = false; + var _modalParams = {}; + // Elements + var _modal, _modalBody, _modalTitle, _clickedButton = null; + // Utilities + function _storeClickedStatus() { + _clickedButton = this; + } + function _html(content) { + _modalBody.html(content); + // Set or update title if we have one + if (_lightboxTitle) { + _modalTitle.text(_lightboxTitle); + _lightboxTitle = false; + } + _modal.modal('handleUpdate'); + } + function _emit(msg, _details) { + var details = _details || {}; + var event; + try { + event = new CustomEvent(msg, { + detail: details, + bubbles: true, + cancelable: true + }); + } catch (e) { + // Fallback to document.createEvent() if creating a new CustomEvent fails (e.g. IE 11) + event = document.createEvent('CustomEvent'); + event.initCustomEvent(msg, true, true, details); + } + return document.dispatchEvent(event); + } + + // Public: Present an alert + function showAlert(message, _type) { + var type = _type || 'info'; + _html('<div class="flash-message alert alert-' + type + '">' + message + '</div>' + + '<button class="btn btn-default" data-dismiss="modal">' + VuFind.translate('close') + '</button>'); + _modal.modal('show'); + } + function flashMessage(message, _type) { + var type = _type || 'info'; + _modalBody.find('.flash-message,.fa.fa-spinner').remove(); + _modalBody.find('h2:first-of-type') + .after('<div class="flash-message alert alert-' + type + '">' + message + '</div>'); + } + function close() { + _modal.modal('hide'); + } + + /** + * Update content + * + * Form data options: + * + * data-lightbox-ignore = do not submit this form in lightbox + */ + // function declarations to avoid style warnings about circular references + var _constrainLink; + var _formSubmit; + function render(content) { + if (typeof content !== "string") { + return; + } + // Isolate successes + var htmlDiv = $('<div/>').html(content); + var alerts = htmlDiv.find('.flash-message.alert-success:not([data-lightbox-ignore])'); + if (alerts.length > 0) { + var msgs = alerts.toArray().map(function getSuccessHtml(el) { + return el.innerHTML; + }).join('<br/>'); + var href = alerts.find('.download').attr('href'); + if (typeof href !== 'undefined') { + location.href = href; + close(); + } else { + showAlert(msgs, 'success'); + } + return; + } + // Deframe HTML + var finalHTML = content; + if (content.match('<!DOCTYPE html>')) { + finalHTML = htmlDiv.find('.main > .container').html(); + } + // Fill HTML + _html(finalHTML); + VuFind.modal('show'); + // Attach capturing events + _modalBody.find('a').click(_constrainLink); + // Handle submit buttons attached to a form as well as those in a form. Store + // information about which button was clicked here as checking focused button + // doesn't work on all browsers and platforms. + _modalBody.find('[type=submit]').click(_storeClickedStatus); + + var forms = _modalBody.find('form:not([data-lightbox-ignore])'); + for (var i = 0; i < forms.length; i++) { + $(forms[i]).on('submit', _formSubmit); + } + // Select all checkboxes + $('#modal').find('.checkbox-select-all').change(function lbSelectAllCheckboxes() { + $(this).closest('.modal-body').find('.checkbox-select-item').prop('checked', this.checked); + }); + $('#modal').find('.checkbox-select-item').change(function lbSelectAllDisable() { + $(this).closest('.modal-body').find('.checkbox-select-all').prop('checked', false); + }); + // Recaptcha + recaptchaOnLoad(); + } + + var _xhr = false; + // Public: Handle AJAX in the Lightbox + function ajax(obj) { + if (_xhr !== false) { + return; + } + if (_originalUrl === false) { + _originalUrl = obj.url; + } + // Add lightbox GET parameter + if (!obj.url.match(/layout=lightbox/)) { + var parts = obj.url.split('#'); + obj.url = parts[0].indexOf('?') < 0 + ? parts[0] + '?' + : parts[0] + '&'; + obj.url += 'layout=lightbox'; + if (_currentUrl) { + obj.url += '&lbreferer=' + encodeURIComponent(_currentUrl); + } + obj.url += parts.length < 2 ? '' : '#' + parts[1]; + } + _xhr = $.ajax(obj); + _xhr.always(function lbAjaxAlways() { _xhr = false; }) + .done(function lbAjaxDone(content, status, jq_xhr) { + var errorMsgs = []; + var flashMessages = []; + if (jq_xhr.status === 204) { + // No content, close lightbox + close(); + return; + } else if (jq_xhr.status !== 205) { + var testDiv = $('<div/>').html(content); + errorMsgs = testDiv.find('.flash-message.alert-danger:not([data-lightbox-ignore])'); + flashMessages = testDiv.find('.flash-message:not([data-lightbox-ignore])'); + // Place Hold error isolation + if (obj.url.match(/\/Record\/.*(Hold|Request)\?/)) { + if (errorMsgs.length && testDiv.find('.record').length) { + var msgs = errorMsgs.toArray().map(function getAlertHtml(el) { + return el.innerHTML; + }).join('<br/>'); + showAlert(msgs, 'danger'); + return false; + } + } + } + // Close the lightbox after deliberate login provided that: + // - is a form + // - catalog login for holds + // - or that matches login/create account + // - not a failed login + if ( + obj.method && ( + obj.url.match(/catalogLogin/) + || obj.url.match(/MyResearch\/(?!Bulk|Delete|Recover)/) + ) && flashMessages.length === 0 + ) { + + var eventResult = _emit('VuFind.lightbox.login', { + originalUrl: _originalUrl, + formUrl: obj.url + }); + if (_originalUrl.match(/UserLogin/) || obj.url.match(/catalogLogin/)) { + if (eventResult) { + VuFind.refreshPage(); + } + return false; + } else { + VuFind.lightbox.refreshOnClose = true; + } + _currentUrl = _originalUrl; // Now that we're logged in, where were we? + } + if (jq_xhr.status === 205) { + VuFind.refreshPage(); + return; + } + render(content); + }) + .fail(function lbAjaxFail(deferred, errorType, msg) { + showAlert(VuFind.translate('error_occurred') + '<br/>' + msg, 'danger'); + }); + return _xhr; + } + function reload() { + ajax({ url: _currentUrl || _originalUrl }); + } + + /** + * Evaluate a callback + */ + function _evalCallback(callback, event, data) { + if ('function' === typeof window[callback]) { + return window[callback](event, data); + } + var parts = callback.split('.'); + if (typeof window[parts[0]] === 'object') { + var obj = window[parts[0]]; + for (var i = 1; i < parts.length; i++) { + if (typeof obj[parts[i]] === 'undefined') { + obj = false; + break; + } + obj = obj[parts[i]]; + } + if ('function' === typeof obj) { + return obj(event, data); + } + } + console.error('Lightbox callback function not found.'); + return null; + } + + /** + * Modal link data options + * + * data-lightbox-href = go to this url instead + * data-lightbox-ignore = do not open this link in lightbox + * data-lightbox-post = post data + * data-lightbox-title = Lightbox title (overrides any title the page provides) + */ + _constrainLink = function constrainLink(event) { + /** + * Fixme: TEST correct Lightbox behavior as in #13088 - CK + */ + if (typeof $(this).data('lightboxReset') !== 'undefined') { + VuFind.lightbox.reset(); + } + var $link = $(this); + if (typeof $link.data("lightboxIgnore") != "undefined" + || typeof $link.attr("href") === "undefined" + || $link.attr("href").charAt(0) === "#" + || $link.attr("href").match(/^[a-zA-Z]+:[^/]/) // ignore resource identifiers (mailto:, tel:, etc.) + || (typeof $link.attr("target") !== "undefined" + && ( + $link.attr("target").toLowerCase() === "_new" + || $link.attr("target").toLowerCase() === "new" + )) + ) { + return true; + } + if (this.href.length > 1) { + event.preventDefault(); + var obj = {url: $(this).data('lightboxHref') || this.href}; + if ("string" === typeof $(this).data('lightboxPost')) { + obj.type = 'POST'; + obj.data = $(this).data('lightboxPost'); + } + _lightboxTitle = $(this).data('lightbox-title'); + _modalParams = $(this).data(); + VuFind.modal('show'); + ajax(obj); + _currentUrl = this.href; + return false; + } + }; + + /** + * Handle form submission. + * + * Form data options: + * + * data-lightbox-onsubmit = on submit, run named function + * data-lightbox-onclose = on close, run named function + * data-lightbox-title = Lightbox title (overrides any title the page provides) + * + * Submit button data options: + * + * data-lightbox-ignore = do not handle clicking this button in lightbox + */ + _formSubmit = function formSubmit(event) { + // Gather data + var form = event.target; + var data = $(form).serializeArray(); + // Force layout + data.push({ name: 'layout', value: 'lightbox' }); // Return in lightbox, please + // Add submit button information + var submit = $(_clickedButton); + _clickedButton = null; + var buttonData = { name: 'submit', value: 1 }; + if (submit.length > 0) { + if (typeof submit.data('lightbox-close') !== 'undefined') { + close(); + return false; + } + if (typeof submit.data('lightbox-ignore') !== 'undefined') { + return true; + } + buttonData.name = submit.attr('name') || 'submit'; + buttonData.value = submit.attr('value') || 1; + } + data.push(buttonData); + // Special handlers + // On submit behavior + if ('string' === typeof $(form).data('lightboxOnsubmit')) { + var ret = _evalCallback($(form).data('lightboxOnsubmit'), event, data); + // return true or false to send that to the form + // return null or anything else to continue to the ajax + if (ret === false || ret === true) { + return ret; + } + } + // onclose behavior + if ('string' === typeof $(form).data('lightboxOnclose')) { + document.addEventListener('VuFind.lightbox.closed', function lightboxClosed(e) { + this.removeEventListener('VuFind.lightbox.closed', arguments.callee); + _evalCallback($(form).data('lightboxOnclose'), e, form); + }, false); + } + // Loading + _modalBody.prepend('<i class="modal-loading fa fa-spinner fa-spin" title="' + VuFind.translate('loading') + '"></i>'); + // Prevent multiple submission of submit button in lightbox + if (submit.closest(_modal).length > 0) { + submit.attr('disabled', 'disabled'); + } + // Store custom title + _lightboxTitle = submit.data('lightboxTitle') || $(form).data('lightboxTitle') || ''; + // Get Lightbox content + ajax({ + url: $(form).attr('action') || _currentUrl, + method: $(form).attr('method') || 'GET', + data: data + }).done(function recaptchaReset() { + resetCaptcha($(form)); + }); + + VuFind.modal('show'); + return false; + }; + + // Public: Attach listeners to the page + function bind(el) { + var target = el || document; + $(target).find('a[data-lightbox]') + .unbind('click', _constrainLink) + .on('click', _constrainLink); + $(target).find('form[data-lightbox]') + .unbind('submit', _formSubmit) + .on('submit', _formSubmit); + + // Handle submit buttons attached to a form as well as those in a form. Store + // information about which button was clicked here as checking focused button + // doesn't work on all browsers and platforms. + $('form[data-lightbox]').each(function bindFormSubmitsLightbox(i, form) { + $(form).find('[type=submit]').click(_storeClickedStatus); + $('[type="submit"][form="' + form.id + '"]').click(_storeClickedStatus); + }); + + // Display images in the lightbox + $('[data-lightbox-image]', el).each(function lightboxOpenImage(i, link) { + $(link).unbind("click", _constrainLink); + $(link).bind("click", function lightboxImageRender(event) { + event.preventDefault(); + var url = link.dataset.lightboxHref || link.href || link.src; + var imageCheck = $.ajax({ + url: url, + method: "HEAD" + }); + imageCheck.done(function lightboxImageCheckDone(content, status, jq_xhr) { + if ( + jq_xhr.status === 200 && + jq_xhr.getResponseHeader("content-type").substr(0, 5) === "image" + ) { + render('<div class="lightbox-image"><img src="' + url + '"/></div>'); + } else { + location.href = url; + } + }); + }); + }); + } + + function reset() { + _html(VuFind.translate('loading') + '...'); + _originalUrl = false; + _currentUrl = false; + _lightboxTitle = ''; + _modalParams = {}; + } + function init() { + _modal = $('#modal'); + _modalBody = _modal.find('.modal-body'); + _modalTitle = _modal.find("#modal-title"); + _modal.on('hide.bs.modal', function lightboxHide() { + if (VuFind.lightbox.refreshOnClose) { + VuFind.refreshPage(); + } + this.setAttribute('aria-hidden', true); + _emit('VuFind.lightbox.closing'); + }); + _modal.on('hidden.bs.modal', function lightboxHidden() { + VuFind.lightbox.reset(); + _emit('VuFind.lightbox.closed'); + }); + + VuFind.modal = function modalShortcut(cmd) { + if (cmd === 'show') { + _modal.modal($.extend({ show: true }, _modalParams)).attr('aria-hidden', false); + } else { + _modal.modal(cmd); + } + }; + bind(); + } + + // Reveal + return { + // Properties + refreshOnClose: refreshOnClose, + + // Methods + ajax: ajax, + alert: showAlert, + bind: bind, + close: close, + flashMessage: flashMessage, + reload: reload, + render: render, + // Reset + reset: reset, + // Init + init: init + }; +}); diff --git a/themes/finc/scss/compiled.scss b/themes/finc/scss/compiled.scss index b0146b6727da6286d187bce0409cf6981f142977..e9dd655e78a6f31ce82ed4037acf91337daa2ea5 100644 --- a/themes/finc/scss/compiled.scss +++ b/themes/finc/scss/compiled.scss @@ -691,6 +691,12 @@ table.collapse.in { //// Display styleBasedIcons .record, .result { + // make sure that results items display correctly on XS + .media { + padding-left: 0; + padding-right: 0; + } + .media-left, .media-right { &.record-icon img { @@ -1216,7 +1222,7 @@ header, @media (min-width: $screen-sm-min) { background-color: $navbar-bg-color; position: absolute; - top: $navbar-height-xs * 1.5; + top: calc(#{$navbar-height-xs} * 1.5); // Use this formula to allow for separately calculated $navbar-height in themes } } @@ -1228,6 +1234,10 @@ header, } } +.language.dropdown { + margin-right: 15px; +} + .language .dropdown-menu { background-color: $navbar-bg-color; border: 0; @@ -1237,6 +1247,10 @@ header, background-color: $btn-language-hover-bg; } + .active .btn:hover { + background-color: $btn-language-active-hover-bg; + } + li a { color: $link-color; @@ -1294,7 +1308,7 @@ header, #header-collapse.collapse.in { @media (max-width: $screen-sm-max) { background-color: $header-bg-color; - // margin-top: -$navbar-height-xs - 10px; // pull over searchbox + // margin-top: -($navbar-height-xs) - 10px; // pull over searchbox li > a.btn { text-align: left; @@ -1850,6 +1864,7 @@ footer { } } } + //////// Tab-content active needs to display 'inline-block' top display the border correctly (or content will bleed over) .tab-content > .active { display: inline-block; @@ -2030,7 +2045,7 @@ footer { } } - ////// Swap find and clear buttons for consistency +////// Swap find and clear buttons for consistency .adv-submit { .fnd-btn { float: right; @@ -2639,16 +2654,3 @@ input { color: $btn-transparent-active-color; } } - -// Accessibility -.language .dropdown-menu { - .btn:hover { - background-color: $btn-language-hover-bg; - } - - .active .btn:hover { - background-color: $btn-language-active-hover-bg; - } -} - -// Accessibility - END diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler-myresearch.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler-myresearch.phtml index 7baae6a4f2e2399adf117d7e988285877211aed8..3a0f991d8c718e6956ad65a2ad51fe92f3830328 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler-myresearch.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler-myresearch.phtml @@ -1,8 +1,8 @@ <!-- finc: RecordDriver - DefaultRecord - offcanvas-toggler-myresearch --> <?php ?> <span class="offcanvas-toggler"> - <button class="search-filter-toggle btn btn-primary visible-xs" href="#search-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand')?>"> + <a class="search-filter-toggle btn btn-primary visible-xs" href="#myresearch-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand')?>"> <?=$this->transEsc('offcanvas-toggler-myresearch')?> - </button> + </a> </span> <!-- finc: RecordDriver - DefaultRecord - offcanvas-toggler-myresearch - END --> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler.phtml index a44ef4dfd660838528306c85c3d9ba81ebe41eb6..aa6b8054f3cc968367097f1c570c0f9ef6d3db7b 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler.phtml @@ -1,8 +1,8 @@ <!-- finc: RecordDriver - DefaultRecord - offcanvas-toggler --> <?php ?> <span class="offcanvas-toggler"> - <button class="search-filter-toggle btn btn-primary visible-xs" href="#search-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand')?>"> + <a class="search-filter-toggle btn btn-primary visible-xs" href="#myresearch-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand')?>"> <?=$this->transEsc('offcanvas-toggler-record-view')?> - </button> + </a> </span> <!-- finc: RecordDriver - DefaultRecord - offcanvas-toggler - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml index 8f5c8ac4d7b9fee721140266f055f270eed37542..0a278226b22553f57def57ca00dcd66948fb8808 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml @@ -209,7 +209,7 @@ $i = 0; <?php if ($this->permission()->allowDisplay('feature.Favorites')): ?> <?php /* Add to favorites; finc: keep Icon inside link - CK */ ?> <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" data-lightbox class="save-record result-link-label" data-id="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" aria-label="<?=$this->transEsc('Add to favorites')?>"> - <i class="fa fa-fw fa-star" aria-hidden="true"></i> <span class="hidden-xs hidden-sm"><?=$this->transEsc('Add to favorites')?></span> + <i class="fa fa-fw fa-star" aria-hidden="true"></i> <span><?=$this->transEsc('Add to favorites')?></span> </a><br/> <?php elseif ($block = $this->permission()->getAlternateContent('feature.Favorites')): ?> <?=$block?> diff --git a/themes/finc/templates/collection/view.phtml b/themes/finc/templates/collection/view.phtml index 14646b9d9dffe2826ea4f0138e4082fc2ba59c2f..057474afed69e6f01dd3e1425f0b714c716d6bff 100644 --- a/themes/finc/templates/collection/view.phtml +++ b/themes/finc/templates/collection/view.phtml @@ -82,7 +82,7 @@ </div> <?php if (isset($activeTabObj) && is_callable([$activeTabObj, 'getSideRecommendations'])): ?> - <div class="<?= $this->layoutClass('sidebar') ?>"> + <div class="<?= $this->layoutClass('sidebar') ?>" id="myresearch-sidebar"> <?php /* pull the toolbar here, finc-specific, CK */ ?> <?= $this->record($this->driver)->getToolbar() ?> diff --git a/themes/finc/templates/header.phtml b/themes/finc/templates/header.phtml index b0cc6784bbac2454fb06f65f257c7f63c8358c67..e277d9d9374976bbd3e34e3f0b88dea27fefbfb2 100644 --- a/themes/finc/templates/header.phtml +++ b/themes/finc/templates/header.phtml @@ -104,13 +104,13 @@ <input type="hidden" name="mylang"/> </form> - <a href="#" class="btn dropdown-toggle <?=(count($this->layout()->allLangs) == 2) ? ' hidden-xs hidden-sm hidden-md hidden-lg' : ''?>" data-toggle="dropdown" aria-controls="langmenu" aria-expanded="false"> + <a href="#" class="btn dropdown-toggle <?=(count($this->layout()->allLangs) == 2) ? ' hidden' : ''?>" data-toggle="dropdown" aria-controls="langmenu" aria-expanded="false"> <?=$this->transEsc("Language")?> <strong class="caret"></strong> </a> <ul id="langmenu" class="dropdown-menu <?=(count($this->layout()->allLangs) == 2) ? ' oneLanguage' : ''?>"> <?php foreach ($this->layout()->allLangs as $langCode => $langName): ?> - <?php if (!(strcmp($langCode, $this->layout()->userLang) == 0)) : ?> + <?php if ($langCode !== $this->layout()->userLang) : ?> <li> <a class="btn <?=(count($this->layout()->allLangs) == 2) ? ' btn-secondary' : ''?>" href="#" onClick="document.langForm.mylang.value='<?=$langCode?>';document.langForm.submit()"><?=$this->displayLanguageOption($langName)?></a> </li> diff --git a/themes/finc/templates/layout/layout.phtml b/themes/finc/templates/layout/layout.phtml index b933baef49bc99d3bfb2749b4b98acd5dd5470e2..2db1002ed24142e7b60fbe138a54d0219c5a8090 100644 --- a/themes/finc/templates/layout/layout.phtml +++ b/themes/finc/templates/layout/layout.phtml @@ -164,9 +164,9 @@ if (!isset($this->layout()->searchbox)) { <a class="sr-only" href="#content"><?=$this->transEsc('Skip to content')?></a> <?php if (substr_count(strtolower($this->layout()->templateName), 'results') > 0): ?> <?php if (strcmp($this->layout()->userLang, 'de') == 0): ?> - <a class="sr-only hidden-xs" href="#search-sidebar"><?=$this->transEsc(isset($this->overrideSideFacetCaption) ? $this->overrideSideFacetCaption : 'Narrow Search')?></a> + <a class="sr-only hidden-xs" href="#myresearch-sidebar"><?=$this->transEsc(isset($this->overrideSideFacetCaption) ? $this->overrideSideFacetCaption : 'Narrow Search')?></a> <?php else: ?> - <a class="sr-only hidden-xs" href="#search-sidebar"><?=$this->transEsc('skip-to')?><?=strtolower($this->transEsc(isset($this->overrideSideFacetCaption) ? $this->overrideSideFacetCaption : 'Narrow Search'))?></a> + <a class="sr-only hidden-xs" href="#myresearch-sidebar"><?=$this->transEsc('skip-to')?><?=strtolower($this->transEsc(isset($this->overrideSideFacetCaption) ? $this->overrideSideFacetCaption : 'Narrow Search'))?></a> <?php endif; ?> <?php endif; ?> diff --git a/themes/finc/templates/librarycards/home.phtml b/themes/finc/templates/librarycards/home.phtml index c9935519e9ad9e8597eb3315603557fa44fbc76e..aa272f988dfcc902786529b75be77e73e4fd6931 100644 --- a/themes/finc/templates/librarycards/home.phtml +++ b/themes/finc/templates/librarycards/home.phtml @@ -60,7 +60,7 @@ </div> </div> - <div class="<?=$this->layoutClass('sidebar')?>"> + <div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar"> <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'librarycards'])?> </div> <!-- find: librarycards - home - END --> diff --git a/themes/finc/templates/myresearch/acquisition.phtml b/themes/finc/templates/myresearch/acquisition.phtml index 608df7c59185a3985064118fd6d0d8d8fb454b8a..ec13fd1bfc84894c2ffde5ab1dab069025486e3f 100644 --- a/themes/finc/templates/myresearch/acquisition.phtml +++ b/themes/finc/templates/myresearch/acquisition.phtml @@ -7,7 +7,7 @@ $this->headTitle($this->translate('PDA::pda_form_title')); $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . '">' . $this->transEsc('Your Account') . '</a></li> <li class="active">' . $this->transEsc('PDA::pda_form_title') . '</li>'; ?> -<a class="search-filter-toggle visible-xs" href="#account-sidebar" data-toggle="offcanvas" title="Expand Sidebar"> +<a class="search-filter-toggle visible-xs" href="#myresearch-sidebar" data-toggle="offcanvas" title="Expand Sidebar"> <?= $this->transEsc('Your Account') ?> </a> diff --git a/themes/finc/templates/myresearch/newpassword.phtml b/themes/finc/templates/myresearch/newpassword.phtml index cd1ea2deb08f2d763b00b8e5c26ecea0f016d841..d6c79c657a275ab8d60730f59c6ff693677fbeef 100644 --- a/themes/finc/templates/myresearch/newpassword.phtml +++ b/themes/finc/templates/myresearch/newpassword.phtml @@ -34,7 +34,7 @@ <?php if ($this->auth()->isLoggedIn()): ?> </div> - <div class="<?=$this->layoutClass('sidebar')?>"> + <div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar"> <?=$this->context($this)->renderInContext("myresearch/menu.phtml", ['active' => 'newpassword'])?> </div> <?php endif; ?> diff --git a/themes/finc/templates/myresearch/profile.phtml b/themes/finc/templates/myresearch/profile.phtml index 27b7a2b22e3da49749f2e7d0befcaf867ad67a89..17be7a17faa1fe2e38c4ef5ecec0d36721fe74ee 100644 --- a/themes/finc/templates/myresearch/profile.phtml +++ b/themes/finc/templates/myresearch/profile.phtml @@ -10,7 +10,7 @@ $arrTemplate = '<tr><th>%%LABEL%%:</th><td> %%VALUE%%</td></tr>'; ?> -<a class="search-filter-toggle visible-xs" href="#account-sidebar" data-toggle="offcanvas" title="Expand Sidebar"> +<a class="search-filter-toggle visible-xs" href="#myresearch-sidebar" data-toggle="offcanvas" title="Expand Sidebar"> <?=$this->transEsc('Your Account') ?> </a> diff --git a/themes/finc/templates/record/prev-next.phtml b/themes/finc/templates/record/prev-next.phtml index 0ee502839a65fcfe10e75332543c1eee102f93f1..bac5680bb85fb69eca72d10571108d61b3e24d9e 100644 --- a/themes/finc/templates/record/prev-next.phtml +++ b/themes/finc/templates/record/prev-next.phtml @@ -22,8 +22,8 @@ <?php endif; ?> <li class="disabled left" aria-hidden="true" role="none"><a href="#"><i class="fa fa-angle-left"></i> <?=$this->transEsc('Prev')?></a></li> <?php endif; ?> - <?php /* finc-specific wrapping: li + hidden-xs for consistency - CK */ ?> + <li class="hidden-xs"> <?=$this->transEsc('of_num_results', [ '%%position%%' => $this->localizedNumber($this->scrollData['currentPosition']), '%%total%%' => $this->localizedNumber($this->scrollData['resultTotal']) diff --git a/themes/finc/templates/record/view.phtml b/themes/finc/templates/record/view.phtml index 4f289827c88d6bba345f1e5b94229256c5c9addb..1f97d387fad4ff410d80c391850a4220a5bfe5a1 100644 --- a/themes/finc/templates/record/view.phtml +++ b/themes/finc/templates/record/view.phtml @@ -32,7 +32,8 @@ <?php /* finc: remove related-sidebar count and "solo" class since we use a custom sidebar, keep print classes, CK */ ?> <?php $sidebarList = $this->related()->getList($this->driver); ?> - <div class="<?= $this->layoutClass('mainbody') ?><?=count($sidebarList) < 1 ? ' solo' : '' ?> print-full-width"> + <?php /* finc: remove the count of related-items-sidebars since we have a custom sidebar ! CK */ ?> + <div class="<?=$this->layoutClass('mainbody')?>"> <input type="hidden" value="<?= $this->escapeHtmlAttr($this->driver->getUniqueId()) ?>" class="hiddenId"/> <input type="hidden" value="<?= $this->escapeHtmlAttr($this->driver->getSourceIdentifier()) ?>" class="hiddenSource"/> <?= $this->flashmessages() ?> @@ -83,7 +84,7 @@ </div> - <div class="<?= $this->layoutClass('sidebar') ?>"> + <div class="<?= $this->layoutClass('sidebar') ?>" id="myresearch-sidebar"> <?php /* finc-specific: add toolbar to sidebar - CK */ ?> <?= $this->record($this->driver)->getToolbar() ?> diff --git a/themes/finc/templates/search/advanced/layout.phtml b/themes/finc/templates/search/advanced/layout.phtml index 3e133f9d664b256ed67b61d27e2199c0fddbbbdd..a7f4c048d40273945e2db99d5b19e3d0817b3919 100644 --- a/themes/finc/templates/search/advanced/layout.phtml +++ b/themes/finc/templates/search/advanced/layout.phtml @@ -159,7 +159,7 @@ if (isset($searchDetails) && is_object($searchDetails)) { <?php endif; ?> </div> - <div class="<?=$this->layoutClass('sidebar')?>"> + <div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar"> <?php if ($hasDefaultsApplied): ?> <input type="hidden" name="dfApplied" value="1" /> <?php endif ?> diff --git a/themes/finc/templates/search/history.phtml b/themes/finc/templates/search/history.phtml index 8828b4efb034435a29a16d881d579183002e209c..f66a1c5c7df4e8c7d313814c226c911174780e58 100644 --- a/themes/finc/templates/search/history.phtml +++ b/themes/finc/templates/search/history.phtml @@ -10,7 +10,7 @@ $saveSupported = $this->accountCapabilities()->getSavedSearchSetting() === 'enabled'; ?> -<a class="search-filter-toggle visible-xs" href="#account-sidebar" data-toggle="offcanvas" title="Expand Sidebar"> +<a class="search-filter-toggle visible-xs" href="#myresearch-sidebar" data-toggle="offcanvas" title="Expand Sidebar"> <?=$this->transEsc('Your Account') ?> </a> diff --git a/themes/finc/templates/search/results.phtml b/themes/finc/templates/search/results.phtml index 1175c8e358f62a9b48d3f998e21cba5bab8e72b1..01364b6b21221c25ce69c8efefc9c0a70b36e3a4 100644 --- a/themes/finc/templates/search/results.phtml +++ b/themes/finc/templates/search/results.phtml @@ -71,9 +71,9 @@ $this->headScript()->appendFile("check_save_statuses.js"); <?=$this->context()->renderInContext('search/controls/showing.phtml', ['lookfor' => $lookfor, 'recordTotal' => $recordTotal]) ?> </span> <span class="offcanvas-toggler"> - <button class="search-filter-toggle btn btn-primary visible-xs" href="#search-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand') ?>"> + <a class="search-filter-toggle btn btn-primary visible-xs" href="#myresearch-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand') ?>"> <?=$this->transEsc('Refine Results') ?> - </button> + </a> </span> <?php else: ?> <h2><?=$this->transEsc('nohit_heading')?></h2> @@ -148,7 +148,7 @@ $this->headScript()->appendFile("check_save_statuses.js"); <?php /* End Main Listing */ ?> <?php /* Narrow Search Options */ ?> -<div class="<?=$this->layoutClass('sidebar')?>" id="search-sidebar"> +<div class="<?=$this->layoutClass('sidebar')?>" id="myresearch-sidebar"> <?php foreach ($this->results->getRecommendations('side') as $index => $current): ?> <?=$this->recommend($current, 'side', $index)?> <?php endforeach; ?>