diff --git a/themes/fid_bbi/js/theme.js b/themes/fid_bbi/js/theme.js index 76111a94f9e7b430b0f661150ecab6f52e3553e1..3f131cbf59ab1a206a53cd55fd27d574bab73f72 100644 --- a/themes/fid_bbi/js/theme.js +++ b/themes/fid_bbi/js/theme.js @@ -69,8 +69,13 @@ const theme = { continue } - // eslint-disable-next-line no-new - new SlimSelect({ + // Exclude type select in advanced search: These fields are cloned an + // extra handling for re-initializing SlimSelect would be required + if (select.classList.contains('adv-term-type')) { + continue + } + + new SlimSelect({ // eslint-disable-line no-new select, closeOnSelect: !isMultiSelect, placeholder: 'Auswahl', diff --git a/themes/fid_bbi/languages/de.ini b/themes/fid_bbi/languages/de.ini index abe90783a971528c4251cf43a4190984612cd176..5ad29ff59a3c50b9039182f1727904cca81d6995 100644 --- a/themes/fid_bbi/languages/de.ini +++ b/themes/fid_bbi/languages/de.ini @@ -41,3 +41,5 @@ home_step_3 = <p>Registrieren Sie sich kostenlos für die Nutzung weiterer Funkt home_tagline = Das Nachweisportal für die <br>Buch-, BiblioÂtheks- und InformaÂtionsÂwissenÂschaft licenses_BookHistoryOnline = Bibliographie "Book History Online" bei brill.com + +offcanvas-toggler-search-tips = Suchtipps anzeigen diff --git a/themes/fid_bbi/scss/blocks/advanced-search.scss b/themes/fid_bbi/scss/blocks/advanced-search.scss index 02f1d457155fb351558df63b5c7f704656b9786d..a07bd99b2a3fdc6be727f0a71858fcb538a0c8e4 100644 --- a/themes/fid_bbi/scss/blocks/advanced-search.scss +++ b/themes/fid_bbi/scss/blocks/advanced-search.scss @@ -1,116 +1,219 @@ -.advanced-search { - width: 100%; -} +// Styling the original Bootstrap 3 template, thus not following fid_bbi theme +// naming rules -.advanced-search_actions { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - margin: g(-.5); - margin-top: g(-.75); +#advSearchForm { + .add_search_link { + margin-top: g(); + } - > * { - margin: g(.5); + // Group of multiple searches + .adv-group { + @extend .border; + margin: g() auto !important; // Override .border margin + position: relative; } - > button { - width: 100%; + .adv-group-close { + display: inline-block; + margin-top: g(); - @media #{$bp2} { - width: auto; + @media #{$bp3} { + position: absolute; + right: g(); + bottom: g(1.5); } } -} -.advanced-search_conditions { - padding: 0; -} + .adv-group-label { + margin-bottom: g(.5); + } -.advanced-search_condition { - display: flex; - flex-wrap: wrap; - margin: g(-.25) g(-.25) g(-.25 + 1); + .adv-group-match { + border-top: 2px solid; + padding-top: g() - 2px; + margin-top: g(.5); - &::before { - content: none; + label + select { + margin-left: 0; + } } - > button, - label { - align-items: center; - margin: g(.25); + .adv-group-terms { + margin-bottom: g(); + + @media #{$bp3} { + flex: 1; + margin-bottom: 0; + } + } + + // Container of "Results per Page" and "Year of Publication" + .adv-submit + .clearfix { + display: flex; + flex-direction: column; + margin: g(-.5); max-width: 100%; + + @media #{$bp2} { + flex-wrap: wrap; + flex-direction: row; + max-width: none; + } } - label, - input, - select { - width: 100%; + .adv-term-input { + flex: 1; + margin-bottom: g(.5); + width: calc(100% - #{g(2.5)}); // Space for "x" button @media #{$bp3} { + margin-right: g(.5); width: auto; } } - > label { - width: calc(100% - #{g(3)}); + .adv-search:only-of-type .adv-term-input { + width: 100%; @media #{$bp3} { width: auto; } } -} -.advanced-search_options { - border: 0; - box-shadow: none; - display: flex; - flex: 1; - flex-wrap: wrap; - margin: 0; - padding: 0; + .adv-term-remove { + box-shadow: 0 0 0 2px inset; + display: inline-block; + flex: 0 0 g(2); + font-size: g(); + align-self: flex-start; + line-height: g(2); + margin: 0 g(.5) 0 0; + order: -1; + text-align: center; + + @media #{$bp3} { + margin: 0 0 0 g(.5); + order: 0; + } + + @include hover { + background: $button-hover-bg; + } - &.-year { - [type=number] { - margin-left: g(.5); - max-width: 5em; - min-width: 5em; + &::after { + content: '×'; } } -} -.advanced-search_more { - @include button-icon-bg(big); + .adv-search { + display: flex; + flex-wrap: wrap; + margin-bottom: g(); + + @media #{$bp3} { + margin-bottom: 0; + } - .icon { - color: #fff; + .input-group { + width: 100%; + } } -} -.advanced-search_remove { - align-self: flex-end; - order: -1; - padding: g(.5) - 2px; + .adv-submit { + display: flex; + flex-direction: row-reverse; + justify-content: space-between; + margin: g() 0; + + .clear-btn { + @extend a; + align-self: flex-end; + border: 0; + height: auto; + margin-bottom: g(.5); + padding: 0; + } + } - @media #{$bp3} { - order: 0; + .adv-term-type { + width: 100%; + + @media #{$bp3} { + margin-bottom: g(.5); + max-width: 33.333%; + } } -} -.advanced-search_submit { - @include button-icon-bg(big); -} + // "Back" link + .close-offcanvas { + display: none; + } + + .date-fields { + clear: both; + display: flex; + + label + [type=text] { + margin-left: 0; + } -.advanced-search_term { - display: flex; - flex: 1; + input { + width: 4.5rem; // Fit 4 digits + } + } - [data-type=year] & { - flex: 0; + .date-to { + margin-left: .5em; } - input, - select { /* stylelint-disable-line */ + // "Results per Page" and "Year of Publication" + .limits, + .range.left { flex: 1; + margin: g(.5); + width: 100%; + + @media #{$bp2} { + width: auto; + } } + + // Header + .mainbody.left > .clearfix:first-child { + display: flex; + flex-direction: column; + } + + // "Show search help" link\ + .offcanvas-toggler { + order: 1; + text-align: center; + } + + // "Search Tips" + .sidebar { + margin: 0; + max-width: none; + } + + .slider-container { + display: none; + } + + .solr-adv-facet { + + .solr-adv-facet { + margin-top: g(.5); + } + } + + .solr-facets { + margin: g(.5); + width: 100%; + } +} + +#groupJoin { + margin-top: g(); + order: 2; + text-align: center; } diff --git a/themes/fid_bbi/scss/blocks/border.scss b/themes/fid_bbi/scss/blocks/border.scss index 8892cc8ad7127ca8e634d2d5afd034825415ea1f..a126d029abaf15d110d250f3b4d275bfba8ed918 100644 --- a/themes/fid_bbi/scss/blocks/border.scss +++ b/themes/fid_bbi/scss/blocks/border.scss @@ -1,4 +1,6 @@ .border { border: 2px solid $text-color; + margin: 0 auto; + max-width: $line-width; padding: g() - 2px; } diff --git a/themes/fid_bbi/scss/blocks/results.scss b/themes/fid_bbi/scss/blocks/results.scss index 52a9d021c9d51f448510edf913dcc4c8027e9c5e..ed3d2197be4dc2060747ccef19d0e05f5253fba7 100644 --- a/themes/fid_bbi/scss/blocks/results.scss +++ b/themes/fid_bbi/scss/blocks/results.scss @@ -28,6 +28,17 @@ } } +.results_advanced-search-info { + @extend .alert; + color: $text-muted-color; + margin: g(.25) g(.25) g(.25 + .5); + width: 100%; + + h3 { + margin: 0 0 g(.5); + } +} + .results_count { margin: g(.25); } diff --git a/themes/fid_bbi/templates/layout/layout.phtml b/themes/fid_bbi/templates/layout/layout.phtml index 67bef23384f760b393b1678f32cfaab5f2de6175..0a21b508a4eb29989b9f0758444e14945df53970 100644 --- a/themes/fid_bbi/templates/layout/layout.phtml +++ b/themes/fid_bbi/templates/layout/layout.phtml @@ -3,19 +3,9 @@ <!-- fid_bbi: layout - layout --> <body class="layout <?=$this->templateName === 'home' ? '-home' : '-default'?>"> - <?php - // Set up the search box -- there are three possible cases: - // 1. No search box was set; we should default to the normal box - // 2. It was set to false; we should display nothing - // 3. It is set to a custom string; we should display the provided version - // Set up default search box if no data was provided from the template; - // this covers case 1. Cases 2 and 3 are then covered by logic below. - if (!isset($this->layout()->searchbox)) { - $this->layout()->searchbox = $this->render('search/searchbox.phtml'); - } - ?> + <?php $this->layout()->searchbox = $this->render('search/searchbox.phtml'); ?> - <?php /* Add landmark role to avoid 'all content must be inside landmarks error', CK */ ?> + <?php // Add landmark role to avoid 'all content must be inside landmarks error', CK ?> <div role="navigation" aria-label="Skip_navigation_links"> <?php if (isset($this->layout()->srmessage)): ?> <span class="sr-only"><?=$this->layout()->srmessage?></span> @@ -27,7 +17,8 @@ <?=$this->render('header.phtml')?> - <main class="main"> + <?php // NOTE: `role="main` is obsolete, but several scripts stop working when it is removed ?> + <main class="main" role="main"> <div class="main_wrap"> <?=$this->layout()->content?> </div> @@ -49,14 +40,14 @@ aria-labelledby="modal-title" aria-modal="true" > - <div class="modal_content"> + <section class="modal_content"> <button class="-icon-only -small close" data-dismiss="modal" tabindex="0"> <?=$this->icon('small/x')?> <span class="sr-only"><?=$this->transEsc('Close')?></span> </button> <div class="sr-only" id="modal-description"><?=$this->transEsc('Modal_description')?></div> <div class="modal_main modal-body"><?=$this->transEsc('Loading')?> …</div> - </div> + </section> </div> <?=$this->googleanalytics()?> diff --git a/themes/fid_bbi/templates/search/advanced-search-info.phtml b/themes/fid_bbi/templates/search/advanced-search-info.phtml new file mode 100644 index 0000000000000000000000000000000000000000..a021b153178d9e06958d2d8a6483c68501ec58cf --- /dev/null +++ b/themes/fid_bbi/templates/search/advanced-search-info.phtml @@ -0,0 +1,39 @@ +<!-- fid_bbi - templates - search - advanced-search-info --> +<?php +// Following section adaption from themes/finc/templates/search/results.phtml +$searchType = $this->params->getSearchType(); +$searchId = $this->results->getSearchId(); +$searchClassId = $this->params->getSearchClassId(); +$lookfor = $this->results->getUrlQuery()->isQuerySuppressed() ? '' : $this->params->getDisplayQuery(); + +// following section adaption from themes/finc/templates/search/searchbox.phtml + +// Set default value if necessary +if (!isset($this->searchClassId)) { + $this->searchClassId = 'Solr'; +} + +// Load search actions and settings (if any) +$options = $this->searchOptions($this->searchClassId); +$advSearch = $options->getAdvancedSearchAction(); +?> + +<?php if ($searchType == 'advanced'): ?> + <div class="results_advanced-search-info"> + <?=$this->icon('small/magnifier')?> + + <h3><?=$this->translate('Advanced Search')?></h3> + + <p> + <?=$this->translate('Your search terms')?>: + <strong><?=$this->escapeHtml($lookfor)?></strong> + </p> + + <p> + <a href="<?=$this->url($advSearch)?>?edit=<?=$this->escapeHtmlAttr($searchId)?>"> + <?=$this->transEsc('Edit this Advanced Search')?> + </a> + </p> + </div> +<?php endif; ?> +<!-- fid_bbi - templates - search - advanced-search-info - END --> diff --git a/themes/fid_bbi/templates/search/results.phtml b/themes/fid_bbi/templates/search/results.phtml index 22cbe3ed9af23f3e262abc23511ae6b7b772e785..17aa1814e7800a3cc2146d04cc4e8bedb2a765e1 100644 --- a/themes/fid_bbi/templates/search/results.phtml +++ b/themes/fid_bbi/templates/search/results.phtml @@ -64,6 +64,8 @@ $this->headScript()->appendFile("check_save_statuses.js"); <?=$this->flashmessages()?> <div class="results_header"> + <?=$this->render('search/advanced-search-info.phtml');?> + <div class="results_count"> <?=$this->translate('%%count%% results', ['%%count%%' => $this->localizedNumber($recordTotal)])?> </div>