diff --git a/themes/bootstrap3/js/advanced_search.js b/themes/bootstrap3/js/advanced_search.js index d8f47aaa86d40f66aed18ca7bc64f6ffc809461b..de41e07955ea8e8749c5c1266d0a7a32e45fd25b 100644 --- a/themes/bootstrap3/js/advanced_search.js +++ b/themes/bootstrap3/js/advanced_search.js @@ -52,7 +52,7 @@ function addGroup(firstTerm, firstField, join) if (firstField == undefined) {firstField = '';} if (join == undefined) {join = '';} - var newGroup = '<div id="group'+nextGroup+'" class="group well clearfix">' + var newGroup = '<div id="group'+nextGroup+'" class="group well row">' + '<div class="col-md-9"><div class="row"><div class="col-md-3"><label class="help-block">'+searchLabel+':</label></div>' + '<div class="col-md-9"><i id="group'+nextGroup+'Holder" class="fa fa-plus-circle"></i> <a href="#" onClick="addSearch('+nextGroup+')">'+addSearchString+'</a></div></div></div>' + '<div class="col-md-3">' diff --git a/themes/bootstrap3/js/vendor/bootlint.min.js b/themes/bootstrap3/js/vendor/bootlint.min.js index 72015dc6c4312d2a5e105bd02e89cfda6a837c3d..c7d1ab30e296015745a73586431192b5b6244248 100644 --- a/themes/bootstrap3/js/vendor/bootlint.min.js +++ b/themes/bootstrap3/js/vendor/bootlint.min.js @@ -1456,7 +1456,7 @@ var cheerio=require("cheerio");(function(exports){"use strict";var COL_CLASSES=[ var lastSlash=filename.lastIndexOf("/");if(lastSlash!==-1){filename=filename.slice(lastSlash+1)}return filename}exports.lintDoctype=function(){var MISSING_DOCTYPE="Document is missing a DOCTYPE declaration";var NON_HTML5_DOCTYPE="Document declares a non-HTML5 DOCTYPE";if(IN_NODE_JS){return function($){var doctype=$(":root")[0];while(doctype&&!isDoctype(doctype)){doctype=doctype.prev}if(!doctype){return MISSING_DOCTYPE}var doctypeId=doctype.data.toLowerCase();if(doctypeId!=="!doctype html"&&doctypeId!=='!doctype html system "about:legacy-compat"'){return NON_HTML5_DOCTYPE}}}else{return function(){/*eslint-disable no-undef */ var doc=window.document;/*eslint-enable un-undef */ if(doc.doctype===null){return MISSING_DOCTYPE}if(doc.doctype.publicId){return NON_HTML5_DOCTYPE}if(doc.doctype.systemId&&doc.doctype.systemId!=="about:legacy-compat"){return NON_HTML5_DOCTYPE}}}}();exports.lintMetaCharsetUtf8=function($){var meta=$("head>meta[charset]");var charset=meta.attr("charset");if(!charset){return"<head> is missing UTF-8 charset <meta> tag"}if(charset.toLowerCase()!=="utf-8"){return"charset <meta> tag is specifying a legacy, non-UTF-8 charset"}};exports.lintXUaCompatible=function($){var meta=$('head>meta[http-equiv="X-UA-Compatible"][content="IE=edge"]');if(!meta.length){return"<head> is missing X-UA-Compatible <meta> tag that disables old IE compatibility modes"}};exports.lintViewport=function($){var meta=$('head>meta[name="viewport"][content]');if(!meta.length){return"<head> is missing viewport <meta> tag that enables responsiveness"}};exports.lintBootstrapv2=function($){var columnClasses=[];for(var n=1;n<=12;n++){columnClasses.push(".span"+n)}var selector=columnClasses.join(",");var spanNs=$(selector);if(spanNs.length){return"Found one or more uses of outdated Bootstrap v2 `.spanN` grid classes"}};exports.lintContainers=function($){var notAnyColClass=COL_CLASSES.map(function(colClass){return":not("+colClass+")"}).join("");var selector="*:not(.bs-example)"+notAnyColClass+">.row";var rowsOutsideColumns=$(selector);var rowsOutsideColumnsAndContainers=rowsOutsideColumns.filter(function(i,row){var parent=$(row);while(parent.length){if(parent.hasClass("container")||parent.hasClass("container-fluid")){return false}parent=$(parent).parent()}return true});if(rowsOutsideColumnsAndContainers.length){return"Found one or more `.row`s that were not children of a grid column or descendants of a `.container` or `.container-fluid`"}};exports.lintNestedContainers=function($){var nestedContainers=$(".container, .container-fluid").children(".container, .container-fluid");if(nestedContainers.length){return"Containers (`.container` and `.container-fluid`) are not nestable"}};exports.lintRowAndColOnSameElem=function($){var selector=COL_CLASSES.map(function(col){return".row"+col}).join(",");var rowCols=$(selector);if(rowCols.length){return"Found both `.row` and `.col-*-*` used on the same element"}};exports.lintRemoteModals=function($){var remoteModalTriggers=$('[data-toggle="modal"][data-remote]');if(remoteModalTriggers.length){return"Found one or more modals using the deprecated `remote` option"}};exports.lintJquery=function($){var theWindow=null;try{/*eslint-disable no-undef */ -theWindow=window}catch(e){}if(theWindow&&(theWindow.$||theWindow.jQuery)){return undefined}var jqueries=$('script[src*="jquery"],script[src*="jQuery"]');if(!jqueries.length){return"Unable to locate jQuery, which is required for Bootstrap's JavaScript plugins to work"}};exports.lintInputGroupFormControlTypes=function($){var errs=[];var selectInputGroups=$(".input-group select");if(selectInputGroups.length){errs.push("`.input-group` contains a <select>; this should be avoided as <select>s cannot be fully styled in WebKit browsers")}var textareaInputGroups=$(".input-group textarea");if(textareaInputGroups.length){errs.push("`.input-group` contains a <textarea>; only text-based <input>s are permitted in an `.input-group`")}return errs};exports.lintBootstrapJs=function($){var longhands=$('script[src*="bootstrap.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.js"});if(!longhands.length){return undefined}var minifieds=$('script[src*="bootstrap.min.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.min.js"});if(!minifieds.length){return undefined}return"Only one copy of Bootstrap's JS should be included; currently the webpage includes both bootstrap.js and bootstrap.min.js"};exports.lintTooltipsOnDisabledElems=function($){var selector=['[disabled][data-toggle="tooltip"]','.disabled[data-toggle="tooltip"]','[disabled][data-toggle="popover"]','.disabled[data-toggle="popover"]'].join(",");var disabledWithTooltips=$(selector);if(disabledWithTooltips.length){return"Tooltips and popovers on disabled elements cannot be triggered by user interaction unless the element becomes enabled."+" To have tooltips and popovers be triggerable by the user even when their associated element is disabled,"+" put the disabled element inside a wrapper <div> and apply the tooltip or popover to the wrapper <div> instead."}};exports.lintTooltipsInBtnGroups=function($){var nonBodyContainers=$('.btn-group [data-toggle="tooltip"]:not([data-container="body"]), .btn-group [data-toggle="popover"]:not([data-container="body"])');if(nonBodyContainers.length){return"Tooltips and popovers within button groups should have their `container` set to 'body'. Found tooltips/popovers that might lack this setting."}};exports.lintMissingInputGroupSizes=function($){var selector=[".input-group:not(.input-group-lg) .btn-lg",".input-group:not(.input-group-lg) .input-lg",".input-group:not(.input-group-sm) .btn-sm",".input-group:not(.input-group-sm) .input-sm"].join(",");var badInputGroupSizing=$(selector);if(badInputGroupSizing.length){return"Button and input sizing within `.input-group`s can cause issues. Instead, use input group sizing classes `.input-group-lg` or `.input-group-sm`"}};exports.lintMultipleFormControlsInInputGroup=function($){var badInputGroups=$(".input-group").filter(function(i,inputGroup){return $(inputGroup).find(".form-control").length>1});if(badInputGroups.length){return"Input groups cannot contain multiple `.form-control`s"}};exports.lintFormGroupMixedWithInputGroup=function($){var badMixes=$(".input-group.form-group");if(badMixes.length){return".input-group and .form-group cannot be used directly on the same element. Instead, nest the .input-group within the .form-group"}};exports.lintGridClassMixedWithInputGroup=function($){var selector=COL_CLASSES.map(function(colClass){return".input-group"+colClass}).join(",");var badMixes=$(selector);if(badMixes.length){return".input-group and .col-*-* cannot be used directly on the same element. Instead, nest the .input-group within the .col-*-*"}};exports.lintRowChildrenAreCols=function($){var ALLOWED_CHILD_CLASSES=COL_CLASSES.concat([".clearfix",".bs-customizer-input"]);var selector=".row>*"+ALLOWED_CHILD_CLASSES.map(function(colClass){return":not("+colClass+")"}).join("");var nonColRowChildren=$(selector);if(nonColRowChildren.length){return"Only columns (.col-*-*) may be children of `.row`s"}};exports.lintColParentsAreRowsOrFormGroups=function($){var selector=COL_CLASSES.map(function(colClass){return"*:not(.row):not(.form-group)>"+colClass+":not(col):not(th):not(td)"}).join(",");var colsOutsideRowsAndFormGroups=$(selector);if(colsOutsideRowsAndFormGroups.length){return"Columns (.col-*-*) can only be children of `.row`s or `.form-group`s"}};exports.lintInputGroupsWithMultipleAddOnsPerSide=function($){var addOnClasses=[".input-group-addon",".input-group-btn"];var combos=[];addOnClasses.forEach(function(first){addOnClasses.forEach(function(second){combos.push(".input-group>"+first+"+"+second)})});var selector=combos.join(",");var multipleAddOns=$(selector);if(multipleAddOns.length){return"Having multiple add-ons on a single side of an input group is not supported"}};exports.lintBtnToggle=function($){var badBtnToggle=$(".btn.dropdown-toggle ~ .btn");if(badBtnToggle.length){return"`.btn.dropdown-toggle` must be the last button in a button group."}};exports.lintBtnType=function($){var badBtnType=$('button:not([type="submit"], [type="button"])');if(badBtnType.length){return"Always set a `type` on `<button>`s."}};exports.lintBlockCheckboxes=function($){var badCheckboxes=$(".checkbox").filter(function(i,div){return $(div).filter(':has(>label>input[type="checkbox"])').length<=0});if(badCheckboxes.length){return'Incorrect markup used with the `.checkbox` class. The correct markup structure is .checkbox>label>input[type="checkbox"]'}};exports.lintBlockRadios=function($){var badRadios=$(".radio").filter(function(i,div){return $(div).filter(':has(>label>input[type="radio"])').length<=0});if(badRadios.length){return'Incorrect markup used with the `.radio` class. The correct markup structure is .radio>label>input[type="radio"]'}};exports.lintInlineCheckboxes=function($){var errs=[];var wrongElems=$(".checkbox-inline:not(label)");if(wrongElems.length){errs.push(".checkbox-inline should only be used on <label> elements")}var badStructures=$(".checkbox-inline").filter(function(i,label){return $(label).children('input[type="checkbox"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.checkbox-inline` class. The correct markup structure is label.checkbox-inline>input[type="checkbox"]')}return errs};exports.lintInlineRadios=function($){var errs=[];var wrongElems=$(".radio-inline:not(label)");if(wrongElems.length){errs.push(".radio-inline should only be used on <label> elements")}var badStructures=$(".radio-inline").filter(function(i,label){return $(label).children('input[type="radio"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.radio-inline` class. The correct markup structure is label.radio-inline>input[type="radio"]')}return errs};exports.lintButtonsCheckedActive=function($){var selector=['[data-toggle="buttons"]>label:not(.active)>input[type="checkbox"][checked]','[data-toggle="buttons"]>label.active>input[type="checkbox"]:not([checked])','[data-toggle="buttons"]>label:not(.active)>input[type="radio"][checked]','[data-toggle="buttons"]>label.active>input[type="radio"]:not([checked])'].join(",");var mismatchedButtonInputs=$(selector);if(mismatchedButtonInputs.length){return".active class used without the `checked` attribute (or vice-versa) in a button group using the button.js plugin"}};exports.lintModalsWithinOtherComponents=function($){var badNestings=$(".table .modal");if(badNestings.length){return"Modal markup should not be placed within other components, so as to avoid the component's styles interfering with the modal's appearance or functionality"}};exports.lintPanelBodyWithoutPanel=function($){var badPanelBody=$(".panel-body").parent(":not(.panel, .panel-collapse)");if(badPanelBody.length){return"`.panel-body` must have a `.panel` or `.panel-collapse` parent"}};exports.lintPanelHeadingWithoutPanel=function($){var badPanelHeading=$(".panel-heading").parent(":not(.panel)");if(badPanelHeading.length){return"`.panel-heading` must have a `.panel` parent"}};exports.lintPanelFooterWithoutPanel=function($){var badPanelFooter=$(".panel-footer").parent(":not(.panel)");if(badPanelFooter.length){return"`.panel-footer` must have a `.panel` parent"}};exports.lintPanelTitleWithoutPanelHeading=function($){var badPanelTitle=$(".panel-title").parent(":not(.panel-heading)");if(badPanelTitle.length){return"`.panel-title` must have a `.panel-heading` parent"}};exports._lint=function($){var errs=[];errs.push(this.lintDoctype($));errs.push(this.lintMetaCharsetUtf8($));errs.push(this.lintXUaCompatible($));errs.push(this.lintBootstrapv2($));errs.push(this.lintContainers($));errs.push(this.lintNestedContainers($));errs.push(this.lintViewport($));errs.push(this.lintRowAndColOnSameElem($));errs.push(this.lintRowChildrenAreCols($));errs.push(this.lintColParentsAreRowsOrFormGroups($));errs.push(this.lintRemoteModals($));errs.push(this.lintJquery($));errs.push(this.lintBootstrapJs($));errs.push(this.lintTooltipsOnDisabledElems($));errs.push(this.lintTooltipsInBtnGroups($));errs.push(this.lintMultipleFormControlsInInputGroup($));errs.push(this.lintMissingInputGroupSizes($));errs.push(this.lintFormGroupMixedWithInputGroup($));errs.push(this.lintGridClassMixedWithInputGroup($));errs.push(this.lintInputGroupsWithMultipleAddOnsPerSide($));errs.push(this.lintBtnToggle($));errs.push(this.lintBtnType($));errs.push(this.lintBlockCheckboxes($));errs.push(this.lintBlockRadios($));errs.push(this.lintButtonsCheckedActive($));errs.push(this.lintModalsWithinOtherComponents($));errs.push(this.lintPanelBodyWithoutPanel($));errs.push(this.lintPanelHeadingWithoutPanel($));errs.push(this.lintPanelTitleWithoutPanelHeading($));errs.push(this.lintPanelFooterWithoutPanel($));errs=errs.concat(this.lintInputGroupFormControlTypes($));errs=errs.concat(this.lintInlineCheckboxes($));errs=errs.concat(this.lintInlineRadios($));errs=errs.filter(function(item){return item!==undefined});return errs};if(IN_NODE_JS){// cheerio; Node.js +theWindow=window}catch(e){}if(theWindow&&(theWindow.$||theWindow.jQuery)){return undefined}var jqueries=$('script[src*="jquery"],script[src*="jQuery"]');if(!jqueries.length){return"Unable to locate jQuery, which is required for Bootstrap's JavaScript plugins to work"}};exports.lintInputGroupFormControlTypes=function($){var errs=[];var selectInputGroups=$(".input-group select");if(selectInputGroups.length){errs.push("`.input-group` contains a <select>; this should be avoided as <select>s cannot be fully styled in WebKit browsers")}var textareaInputGroups=$(".input-group textarea");if(textareaInputGroups.length){errs.push("`.input-group` contains a <textarea>; only text-based <input>s are permitted in an `.input-group`")}return errs};exports.lintBootstrapJs=function($){var longhands=$('script[src*="bootstrap.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.js"});if(!longhands.length){return undefined}var minifieds=$('script[src*="bootstrap.min.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.min.js"});if(!minifieds.length){return undefined}return"Only one copy of Bootstrap's JS should be included; currently the webpage includes both bootstrap.js and bootstrap.min.js"};exports.lintTooltipsOnDisabledElems=function($){var selector=['[disabled][data-toggle="tooltip"]','.disabled[data-toggle="tooltip"]','[disabled][data-toggle="popover"]','.disabled[data-toggle="popover"]'].join(",");var disabledWithTooltips=$(selector);if(disabledWithTooltips.length){return"Tooltips and popovers on disabled elements cannot be triggered by user interaction unless the element becomes enabled."+" To have tooltips and popovers be triggerable by the user even when their associated element is disabled,"+" put the disabled element inside a wrapper <div> and apply the tooltip or popover to the wrapper <div> instead."}};exports.lintTooltipsInBtnGroups=function($){var nonBodyContainers=$('.btn-group [data-toggle="tooltip"]:not([data-container="body"]), .btn-group [data-toggle="popover"]:not([data-container="body"])');if(nonBodyContainers.length){return"Tooltips and popovers within button groups should have their `container` set to 'body'. Found tooltips/popovers that might lack this setting."}};exports.lintMissingInputGroupSizes=function($){var selector=[".input-group:not(.input-group-lg) .btn-lg",".input-group:not(.input-group-lg) .input-lg",".input-group:not(.input-group-sm) .btn-sm",".input-group:not(.input-group-sm) .input-sm"].join(",");var badInputGroupSizing=$(selector);if(badInputGroupSizing.length){return"Button and input sizing within `.input-group`s can cause issues. Instead, use input group sizing classes `.input-group-lg` or `.input-group-sm`"}};exports.lintMultipleFormControlsInInputGroup=function($){var badInputGroups=$(".input-group").filter(function(i,inputGroup){return $(inputGroup).find(".form-control").length>1});if(badInputGroups.length){return"Input groups cannot contain multiple `.form-control`s"}};exports.lintFormGroupMixedWithInputGroup=function($){var badMixes=$(".input-group.form-group");if(badMixes.length){return".input-group and .form-group cannot be used directly on the same element. Instead, nest the .input-group within the .form-group"}};exports.lintGridClassMixedWithInputGroup=function($){var selector=COL_CLASSES.map(function(colClass){return".input-group"+colClass}).join(",");var badMixes=$(selector);if(badMixes.length){return".input-group and .col-*-* cannot be used directly on the same element. Instead, nest the .input-group within the .col-*-*"}};exports.lintRowChildrenAreCols=function($){var ALLOWED_CHILD_CLASSES=COL_CLASSES.concat([".clearfix",".bs-customizer-input"]);var selector=".row>*"+ALLOWED_CHILD_CLASSES.map(function(colClass){return":not("+colClass+")"}).join("");console.log($(selector)[0]);var nonColRowChildren=$(selector);if(nonColRowChildren.length){return"Only columns (.col-*-*) may be children of `.row`s"}};exports.lintColParentsAreRowsOrFormGroups=function($){var selector=COL_CLASSES.map(function(colClass){return"*:not(.row):not(.form-group)>"+colClass+":not(col):not(th):not(td)"}).join(",");var colsOutsideRowsAndFormGroups=$(selector);if(colsOutsideRowsAndFormGroups.length){return"Columns (.col-*-*) can only be children of `.row`s or `.form-group`s"}};exports.lintInputGroupsWithMultipleAddOnsPerSide=function($){var addOnClasses=[".input-group-addon",".input-group-btn"];var combos=[];addOnClasses.forEach(function(first){addOnClasses.forEach(function(second){combos.push(".input-group>"+first+"+"+second)})});var selector=combos.join(",");var multipleAddOns=$(selector);if(multipleAddOns.length){return"Having multiple add-ons on a single side of an input group is not supported"}};exports.lintBtnToggle=function($){var badBtnToggle=$(".btn.dropdown-toggle ~ .btn");if(badBtnToggle.length){return"`.btn.dropdown-toggle` must be the last button in a button group."}};exports.lintBtnType=function($){var badBtnType=$('button:not([type="submit"], [type="button"])');if(badBtnType.length){return"Always set a `type` on `<button>`s."}};exports.lintBlockCheckboxes=function($){var badCheckboxes=$(".checkbox").filter(function(i,div){return $(div).filter(':has(>label>input[type="checkbox"])').length<=0});if(badCheckboxes.length){return'Incorrect markup used with the `.checkbox` class. The correct markup structure is .checkbox>label>input[type="checkbox"]'}};exports.lintBlockRadios=function($){var badRadios=$(".radio").filter(function(i,div){return $(div).filter(':has(>label>input[type="radio"])').length<=0});if(badRadios.length){return'Incorrect markup used with the `.radio` class. The correct markup structure is .radio>label>input[type="radio"]'}};exports.lintInlineCheckboxes=function($){var errs=[];var wrongElems=$(".checkbox-inline:not(label)");if(wrongElems.length){errs.push(".checkbox-inline should only be used on <label> elements")}var badStructures=$(".checkbox-inline").filter(function(i,label){return $(label).children('input[type="checkbox"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.checkbox-inline` class. The correct markup structure is label.checkbox-inline>input[type="checkbox"]')}return errs};exports.lintInlineRadios=function($){var errs=[];var wrongElems=$(".radio-inline:not(label)");if(wrongElems.length){errs.push(".radio-inline should only be used on <label> elements")}var badStructures=$(".radio-inline").filter(function(i,label){return $(label).children('input[type="radio"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.radio-inline` class. The correct markup structure is label.radio-inline>input[type="radio"]')}return errs};exports.lintButtonsCheckedActive=function($){var selector=['[data-toggle="buttons"]>label:not(.active)>input[type="checkbox"][checked]','[data-toggle="buttons"]>label.active>input[type="checkbox"]:not([checked])','[data-toggle="buttons"]>label:not(.active)>input[type="radio"][checked]','[data-toggle="buttons"]>label.active>input[type="radio"]:not([checked])'].join(",");var mismatchedButtonInputs=$(selector);if(mismatchedButtonInputs.length){return".active class used without the `checked` attribute (or vice-versa) in a button group using the button.js plugin"}};exports.lintModalsWithinOtherComponents=function($){var badNestings=$(".table .modal");if(badNestings.length){return"Modal markup should not be placed within other components, so as to avoid the component's styles interfering with the modal's appearance or functionality"}};exports.lintPanelBodyWithoutPanel=function($){var badPanelBody=$(".panel-body").parent(":not(.panel, .panel-collapse)");if(badPanelBody.length){return"`.panel-body` must have a `.panel` or `.panel-collapse` parent"}};exports.lintPanelHeadingWithoutPanel=function($){var badPanelHeading=$(".panel-heading").parent(":not(.panel)");if(badPanelHeading.length){return"`.panel-heading` must have a `.panel` parent"}};exports.lintPanelFooterWithoutPanel=function($){var badPanelFooter=$(".panel-footer").parent(":not(.panel)");if(badPanelFooter.length){return"`.panel-footer` must have a `.panel` parent"}};exports.lintPanelTitleWithoutPanelHeading=function($){var badPanelTitle=$(".panel-title").parent(":not(.panel-heading)");if(badPanelTitle.length){return"`.panel-title` must have a `.panel-heading` parent"}};exports._lint=function($){var errs=[];errs.push(this.lintDoctype($));errs.push(this.lintMetaCharsetUtf8($));errs.push(this.lintXUaCompatible($));errs.push(this.lintBootstrapv2($));errs.push(this.lintContainers($));errs.push(this.lintNestedContainers($));errs.push(this.lintViewport($));errs.push(this.lintRowAndColOnSameElem($));errs.push(this.lintRowChildrenAreCols($));errs.push(this.lintColParentsAreRowsOrFormGroups($));errs.push(this.lintRemoteModals($));errs.push(this.lintJquery($));errs.push(this.lintBootstrapJs($));errs.push(this.lintTooltipsOnDisabledElems($));errs.push(this.lintTooltipsInBtnGroups($));errs.push(this.lintMultipleFormControlsInInputGroup($));errs.push(this.lintMissingInputGroupSizes($));errs.push(this.lintFormGroupMixedWithInputGroup($));errs.push(this.lintGridClassMixedWithInputGroup($));errs.push(this.lintInputGroupsWithMultipleAddOnsPerSide($));errs.push(this.lintBtnToggle($));errs.push(this.lintBtnType($));errs.push(this.lintBlockCheckboxes($));errs.push(this.lintBlockRadios($));errs.push(this.lintButtonsCheckedActive($));errs.push(this.lintModalsWithinOtherComponents($));errs.push(this.lintPanelBodyWithoutPanel($));errs.push(this.lintPanelHeadingWithoutPanel($));errs.push(this.lintPanelTitleWithoutPanelHeading($));errs.push(this.lintPanelFooterWithoutPanel($));errs=errs.concat(this.lintInputGroupFormControlTypes($));errs=errs.concat(this.lintInlineCheckboxes($));errs=errs.concat(this.lintInlineRadios($));errs=errs.filter(function(item){return item!==undefined});return errs};if(IN_NODE_JS){// cheerio; Node.js /** * Lints the given HTML. * @param {string} html The HTML to lint diff --git a/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml b/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml index 4428ad96c47fdc2a0ddd508169e83ae6de53a330..2c2c8664898b9d5a3fc30ec924e96f777ee6c390 100644 --- a/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml +++ b/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml @@ -195,10 +195,12 @@ var infowindow = new google.maps.InfoWindow({maxWidth: 480, minWidth: 480}); <div id="mapWrap" onload="initialize()" style="height:479px;display:none;margin-bottom:1em" class="clearfix"> <div id="map_canvas" style="width: 100%; height: 100%"></div> <div class="mapClusterToggle" id="useCluster"> - <label for="usegmm" class="checkbox"> - <input type="checkbox" id="usegmm" checked="true" onclick="refreshMap();"></input> - <?=$this->transEsc('google_map_cluster_points') ?> - </label> + <div class="checkbox"> + <label for="usegmm"> + <input type="checkbox" id="usegmm" checked="true" onclick="refreshMap();"></input> + <?=$this->transEsc('google_map_cluster_points') ?> + </label> + </div> </div> </div> <br/> \ No newline at end of file diff --git a/themes/bootstrap3/templates/admin/tags/checkbox.phtml b/themes/bootstrap3/templates/admin/tags/checkbox.phtml index 4bd0d83f62732294b9b303e0ee7bece409aedc67..75bf67473ecfe2f1d90832ff6165f1cdb0036e82 100644 --- a/themes/bootstrap3/templates/admin/tags/checkbox.phtml +++ b/themes/bootstrap3/templates/admin/tags/checkbox.phtml @@ -1,4 +1,6 @@ -<label for="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>" class="checkbox"> - <input id="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>" type="checkbox" name="ids[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" class="checkbox_ui"/> - <input type="hidden" name="idsAll[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" /> -</label> \ No newline at end of file +<div class="checkbox"> + <label for="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>"> + <input id="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>" type="checkbox" name="ids[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" class="checkbox_ui"/> + <input type="hidden" name="idsAll[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" /> + </label> +</div> \ No newline at end of file diff --git a/themes/bootstrap3/templates/alphabrowse/home.phtml b/themes/bootstrap3/templates/alphabrowse/home.phtml index fedf4f382562ea7bf8da7ccbdda7a9a505f3a334..d472b2c773cb5fe47dad6dd7d0d7f24af0140d72 100644 --- a/themes/bootstrap3/templates/alphabrowse/home.phtml +++ b/themes/bootstrap3/templates/alphabrowse/home.phtml @@ -22,91 +22,87 @@ <? $pageLinks = ob_get_contents(); ?> <? ob_end_clean(); ?> -<div class="<?=$this->layoutClass('mainbody')?>"> - <div> - <form class="form-inline" method="get" action="<?=$this->url('alphabrowse-home')?>" name="alphaBrowseForm" id="alphaBrowseForm"> - <label for="alphaBrowseForm_source"><?=$this->transEsc('Browse Alphabetically') ?></label> - <select id="alphaBrowseForm_source" name="source" class="form-control"> - <? foreach ($this->alphaBrowseTypes as $key => $item): ?> - <option value="<?=$this->escapeHtmlAttr($key) ?>"<? if ($this->source == $key): ?> selected="selected"<? endif; ?>><?=$this->transEsc($item) ?></option> - <? endforeach; ?> - </select> - <label for="alphaBrowseForm_from"><?=$this->transEsc('starting from') ?></label> - <input type="text" name="from" id="alphaBrowseForm_from" value="<?=$this->escapeHtmlAttr($this->from) ?>" class="form-control"/> - <input class="btn btn-default" type="submit" value="<?=$this->transEsc('Browse') ?>"/> - </form> - </div> +<form class="form-inline" method="get" action="<?=$this->url('alphabrowse-home')?>" name="alphaBrowseForm" id="alphaBrowseForm"> + <label for="alphaBrowseForm_source"><?=$this->transEsc('Browse Alphabetically') ?></label> + <select id="alphaBrowseForm_source" name="source" class="form-control"> + <? foreach ($this->alphaBrowseTypes as $key => $item): ?> + <option value="<?=$this->escapeHtmlAttr($key) ?>"<? if ($this->source == $key): ?> selected="selected"<? endif; ?>><?=$this->transEsc($item) ?></option> + <? endforeach; ?> + </select> + <label for="alphaBrowseForm_from"><?=$this->transEsc('starting from') ?></label> + <input type="text" name="from" id="alphaBrowseForm_from" value="<?=$this->escapeHtmlAttr($this->from) ?>" class="form-control"/> + <input class="btn btn-default" type="submit" value="<?=$this->transEsc('Browse') ?>"/> +</form> - <? if ($this->result): ?> - <?=$pageLinks ?> - <table class="table table-striped"> - <tr><td></td><th><?=$this->transEsc("alphabrowse_matches") ?></th></tr> - <? foreach ($this->result['Browse']['items'] as $i => $item): ?> - <tr> - <td> - <? if ($item['count'] > 0): ?> - <?/* linking using bib ids is generally more reliable than - doing searches for headings, but headings give shorter - queries and don't look as strange. */?> - <? if ($item['count'] < 5): ?> - <? $query = array('type' => 'ids', 'lookfor' => implode(' ', $item['ids'])); ?> - <? else: ?> - <? $query = array('type' => ucwords($this->source) . 'Browse', 'lookfor' => '"' . addcslashes($item['heading'], '"') . '"'); ?> - <? endif; ?> - <a class="col-sm-6" href="<?=$this->escapeHtmlAttr($this->url('search-results', array(), array('query' => $query)))?>"><?=$this->escapeHtml($item['heading'])?></a> +<? if ($this->result): ?> + <?=$pageLinks ?> + <table class="table table-striped"> + <tr><td></td><th><?=$this->transEsc("alphabrowse_matches") ?></th></tr> + <? foreach ($this->result['Browse']['items'] as $i => $item): ?> + <tr> + <td> + <? if ($item['count'] > 0): ?> + <?/* linking using bib ids is generally more reliable than + doing searches for headings, but headings give shorter + queries and don't look as strange. */?> + <? if ($item['count'] < 5): ?> + <? $query = array('type' => 'ids', 'lookfor' => implode(' ', $item['ids'])); ?> <? else: ?> - <span class="col-sm-6"><?=$this->escapeHtml($item['heading'])?></span> + <? $query = array('type' => ucwords($this->source) . 'Browse', 'lookfor' => '"' . addcslashes($item['heading'], '"') . '"'); ?> <? endif; ?> + <a class="col-sm-6" href="<?=$this->escapeHtmlAttr($this->url('search-results', array(), array('query' => $query)))?>"><?=$this->escapeHtml($item['heading'])?></a> + <? else: ?> + <span class="col-sm-6"><?=$this->escapeHtml($item['heading'])?></span> + <? endif; ?> - <? - foreach ($this->extras as $ei => $extraName): - $extraData = $item['extras'][$extraName]; - ?> - <div class="col-sm-<?=floor(6/count($this->extras)) ?>"> - <? - $extraDisplayArray = array(); - foreach ($extraData as $j => $e) { - $extraDisplayArray = array_unique(array_merge($extraDisplayArray, $e)); - } - echo (empty($extraDisplayArray)) ? ' ' : implode('<br />', $extraDisplayArray); - ?> - </div> - <? endforeach; ?> - <div class="clearfix"></div> - <? if (count($item['useInstead']) > 0): ?> - <div> - <?=$this->transEsc('Use instead') ?>: - <ul> - <? foreach ($item['useInstead'] as $heading): ?> - <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li> - <? endforeach; ?> - </ul> - </div> - <? endif; ?> + <? + foreach ($this->extras as $ei => $extraName): + $extraData = $item['extras'][$extraName]; + ?> + <div class="col-sm-<?=floor(6/count($this->extras)) ?>"> + <? + $extraDisplayArray = array(); + foreach ($extraData as $j => $e) { + $extraDisplayArray = array_unique(array_merge($extraDisplayArray, $e)); + } + echo (empty($extraDisplayArray)) ? ' ' : implode('<br />', $extraDisplayArray); + ?> + </div> + <? endforeach; ?> + <div class="clearfix"></div> + <? if (count($item['useInstead']) > 0): ?> + <div> + <?=$this->transEsc('Use instead') ?>: + <ul> + <? foreach ($item['useInstead'] as $heading): ?> + <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li> + <? endforeach; ?> + </ul> + </div> + <? endif; ?> - <? if (count($item['seeAlso']) > 0): ?> - <div> - <?=$this->transEsc('See also') ?>: - <ul> - <? foreach ($item['seeAlso'] as $heading): ?> - <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li> - <? endforeach; ?> - </ul> - </div> - <? endif; ?> + <? if (count($item['seeAlso']) > 0): ?> + <div> + <?=$this->transEsc('See also') ?>: + <ul> + <? foreach ($item['seeAlso'] as $heading): ?> + <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li> + <? endforeach; ?> + </ul> + </div> + <? endif; ?> - <? if ($item['note']): ?> - <div> - <?=$this->transEsc('Note') ?>: - <ul> - <li><?=$this->escapeHtml($item['note'])?></li> - </ul> - </div> - <? endif; ?> - </td> - <td><? if ($item['count'] > 0): echo $item['count']; endif; ?></td> - <? endforeach; ?> - </table> - <?= $pageLinks ?> - <? endif; ?> -</div> + <? if ($item['note']): ?> + <div> + <?=$this->transEsc('Note') ?>: + <ul> + <li><?=$this->escapeHtml($item['note'])?></li> + </ul> + </div> + <? endif; ?> + </td> + <td><? if ($item['count'] > 0): echo $item['count']; endif; ?></td> + <? endforeach; ?> + </table> + <?= $pageLinks ?> +<? endif; ?> diff --git a/themes/bootstrap3/templates/browse/home.phtml b/themes/bootstrap3/templates/browse/home.phtml index 5842142bfc0143625fde058682327768e0914b57..a66373cd281fc5e4c96ceb71e9d55080468a4e07 100644 --- a/themes/bootstrap3/templates/browse/home.phtml +++ b/themes/bootstrap3/templates/browse/home.phtml @@ -10,71 +10,73 @@ <h2><?=$this->transEsc('Choose a Category to Begin Browsing') ?>:</h2> <? endif; ?> -<ul class="browse list-group col-sm-3<? if (!empty($this->categoryList)): ?> hidden-xs<? endif ?>" id="list1"> -<? foreach ($this->browseOptions as $item=>$currentOption): ?> - <a href="<?=$this->url('browse-' . strtolower($currentOption['action'])); ?>" class="list-group-item<? if($currentOption['action'] == $this->currentAction): ?> active<? endif; ?>"> - <?=$this->transEsc($currentOption['description']) ?> - <span class="pull-right"><i class="fa fa-angle-right"></i></span> - </a> -<? endforeach; ?> -</ul> - -<? if (!empty($this->categoryList)): ?> - <ul class="browse list-group col-sm-3<? if (!empty($this->secondaryList) || !empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list2"> - <? foreach($this->categoryList as $findby=>$category): ?> - <a href="<?=$BROWSE_BASE ?>?findby=<?=urlencode($findby) ?>&query_field=<?=$this->browse()->getSolrField($findby, $this->currentAction) ?>" class="list-group-item clearfix<? if ($this->findby == $findby): ?> active<? endif; ?>"> - <? if(is_string($category)): ?> - <?=$this->transEsc($category)?> - <span class="pull-right"><i class="fa fa-angle-right"></i></span> - <? else: ?> - <?=$this->transEsc($category['text'])?> - <span class="badge"><?=number_format($category['count'])?></span> - <? endif; ?> - </a> - <? endforeach; ?> +<div class="row"> + <ul class="browse list-group col-sm-3<? if (!empty($this->categoryList)): ?> hidden-xs<? endif ?>" id="list1"> + <? foreach ($this->browseOptions as $item=>$currentOption): ?> + <a href="<?=$this->url('browse-' . strtolower($currentOption['action'])); ?>" class="list-group-item<? if($currentOption['action'] == $this->currentAction): ?> active<? endif; ?>"> + <?=$this->transEsc($currentOption['description']) ?> + <span class="pull-right"><i class="fa fa-angle-right"></i></span> + </a> + <? endforeach; ?> </ul> -<? endif; ?> -<? if (!empty($this->secondaryList)): ?> - <ul class="browse list-group col-sm-3<? if (!empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list3"> - <? foreach($this->secondaryList as $secondary): ?> - <? $url = $BROWSE_BASE . '?findby=' . urlencode($this->findby) - . '&category=' . urlencode($this->category) - . '&query=' . urlencode($secondary['value']); - if ($this->facetPrefix) { - $url .= '&facet_prefix=' . urlencode($secondary['displayText']); - } - if ($this->secondaryParams) { - foreach($this->secondaryParams as $var=>$val) { - $url .= '&' . $var .'=' . urlencode($val); + <? if (!empty($this->categoryList)): ?> + <ul class="browse list-group col-sm-3<? if (!empty($this->secondaryList) || !empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list2"> + <? foreach($this->categoryList as $findby=>$category): ?> + <a href="<?=$BROWSE_BASE ?>?findby=<?=urlencode($findby) ?>&query_field=<?=$this->browse()->getSolrField($findby, $this->currentAction) ?>" class="list-group-item clearfix<? if ($this->findby == $findby): ?> active<? endif; ?>"> + <? if(is_string($category)): ?> + <?=$this->transEsc($category)?> + <span class="pull-right"><i class="fa fa-angle-right"></i></span> + <? else: ?> + <?=$this->transEsc($category['text'])?> + <span class="badge"><?=number_format($category['count'])?></span> + <? endif; ?> + </a> + <? endforeach; ?> + </ul> + <? endif; ?> + + <? if (!empty($this->secondaryList)): ?> + <ul class="browse list-group col-sm-3<? if (!empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list3"> + <? foreach($this->secondaryList as $secondary): ?> + <? $url = $BROWSE_BASE . '?findby=' . urlencode($this->findby) + . '&category=' . urlencode($this->category) + . '&query=' . urlencode($secondary['value']); + if ($this->facetPrefix) { + $url .= '&facet_prefix=' . urlencode($secondary['displayText']); + } + if ($this->secondaryParams) { + foreach($this->secondaryParams as $var=>$val) { + $url .= '&' . $var .'=' . urlencode($val); + } } - } - $viewRecord = !empty($this->categoryList) && $this->currentAction != 'Tag' && $this->findby != 'alphabetical'; - ?> - <a href="<?=$url ?>" class="list-group-item clearfix<? if ($this->query == $secondary['value'].'' || $this->query == $secondary['value'].'*'): ?> active<? endif; ?>"> - <?=$this->escapeHtml($secondary['displayText']) ?> <i class="fa fa-angle-right"></i> - <? if ($this->findby != 'alphabetical'): ?> - <span class="badge"><?=number_format($secondary['count']) ?></span> + $viewRecord = !empty($this->categoryList) && $this->currentAction != 'Tag' && $this->findby != 'alphabetical'; + ?> + <a href="<?=$url ?>" class="list-group-item clearfix<? if ($this->query == $secondary['value'].'' || $this->query == $secondary['value'].'*'): ?> active<? endif; ?>"> + <?=$this->escapeHtml($secondary['displayText']) ?> <i class="fa fa-angle-right"></i> + <? if ($this->findby != 'alphabetical'): ?> + <span class="badge"><?=number_format($secondary['count']) ?></span> + <? endif; ?> + </a> + <? if($viewRecord): ?> + <a class="list-group-item view-record" href="<?=$SEARCH_BASE ?>?lookfor=<? if ($this->filter): ?>&filter[]=<?=urlencode($this->filter) ?>%3A<?=str_replace('+AND+','&filter[]=', urlencode($secondary['value'])) ?><? endif; ?>&filter[]=<?=$this->browse()->getSolrField($this->currentAction) ?>%3A[* TO *]"><?=$this->transEsc('View Records') ?></a> <? endif; ?> - </a> - <? if($viewRecord): ?> - <a class="list-group-item view-record" href="<?=$SEARCH_BASE ?>?lookfor=<? if ($this->filter): ?>&filter[]=<?=urlencode($this->filter) ?>%3A<?=str_replace('+AND+','&filter[]=', urlencode($secondary['value'])) ?><? endif; ?>&filter[]=<?=$this->browse()->getSolrField($this->currentAction) ?>%3A[* TO *]"><?=$this->transEsc('View Records') ?></a> - <? endif; ?> - <? endforeach; ?> - </ul> -<? endif; ?> + <? endforeach; ?> + </ul> + <? endif; ?> -<? if (!empty($this->resultList)): ?> - <ul class="browse list-group col-sm-3" id="list4"> - <? foreach($this->resultList as $result): ?> - <a class="list-group-item clearfix" href="<?=$SEARCH_BASE ?>?<?=$this->paramTitle ?><?=urlencode($result['result']) ?><? if ($this->searchParams): foreach($this->searchParams as $var=>$val): ?>&<?=$var ?>=<?=urlencode($val) ?><? endforeach;endif; ?>"> - <?=$this->escapeHtml($result['result'])?> - <span class="badge"><?=number_format($result['count']) ?></span> - </a> - <? endforeach; ?> - </ul> -<? elseif (isset($this->query)): ?> - <ul class="browse list-group col-sm-3" id="list4"> - <li class="list-group-item"><?=$this->transEsc('nohit_heading') ?></li> - </ul> -<? endif; ?> + <? if (!empty($this->resultList)): ?> + <ul class="browse list-group col-sm-3" id="list4"> + <? foreach($this->resultList as $result): ?> + <a class="list-group-item clearfix" href="<?=$SEARCH_BASE ?>?<?=$this->paramTitle ?><?=urlencode($result['result']) ?><? if ($this->searchParams): foreach($this->searchParams as $var=>$val): ?>&<?=$var ?>=<?=urlencode($val) ?><? endforeach;endif; ?>"> + <?=$this->escapeHtml($result['result'])?> + <span class="badge"><?=number_format($result['count']) ?></span> + </a> + <? endforeach; ?> + </ul> + <? elseif (isset($this->query)): ?> + <ul class="browse list-group col-sm-3" id="list4"> + <li class="list-group-item"><?=$this->transEsc('nohit_heading') ?></li> + </ul> + <? endif; ?> +</div> diff --git a/themes/bootstrap3/templates/cart/cart.phtml b/themes/bootstrap3/templates/cart/cart.phtml index f7e3db42c4a1b95a1962fa2828b72ea22a4bdc81..09dbfe6e597ae00e857a605e6ef76b241ff55479 100644 --- a/themes/bootstrap3/templates/cart/cart.phtml +++ b/themes/bootstrap3/templates/cart/cart.phtml @@ -9,10 +9,12 @@ <?=$this->flashmessages()?> <form class="form-inline" action="<?=$this->url('cart-home')?>" method="post" name="cartForm"> <? if (!$this->cart()->isEmpty()): ?> - <label class="checkbox"> - <input type="checkbox" name="selectAll" class="checkbox-select-all"/> <?=$this->transEsc('select_page')?> - | <?=$this->transEsc('with_selected')?>: - </label> + <div class="checkbox"> + <label> + <input type="checkbox" name="selectAll" class="checkbox-select-all"/> <?=$this->transEsc('select_page')?> + | <?=$this->transEsc('with_selected')?>: + </label> + </div> <? if ($this->userlist()->getMode() !== 'disabled'): ?> <input class="btn btn-default" type="submit" name="saveCart" value="<?=$this->transEsc('bookbag_save_selected')?>" title="<?=$this->transEsc('bookbag_save')?>"/> <? endif; ?> diff --git a/themes/bootstrap3/templates/cart/contents.phtml b/themes/bootstrap3/templates/cart/contents.phtml index b561819f745e17f45fd9d33cadba1b3485ce1c3d..b339ab9087914390f15df4d2d88e1cf6dde0b0c2 100644 --- a/themes/bootstrap3/templates/cart/contents.phtml +++ b/themes/bootstrap3/templates/cart/contents.phtml @@ -3,10 +3,12 @@ <ul class="list-unstyled"> <? foreach ($records as $i => $record): ?> <li> - <label class="checkbox"> - <?=$this->record($record)->getCheckbox('cart')?> - <a title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>"><?=$this->escapeHtml($record->getBreadcrumb())?></a> - </label> + <div class="checkbox"> + <label> + <?=$this->record($record)->getCheckbox('cart')?> + <a title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>"><?=$this->escapeHtml($record->getBreadcrumb())?></a> + </label> + </div> </li> <? endforeach; ?> </ul> diff --git a/themes/bootstrap3/templates/combined/results-list.phtml b/themes/bootstrap3/templates/combined/results-list.phtml index b3674ed737429bed028cce5f262c9342f5f61af8..85712c53c6a9e9c91174eb563515c48971c78e6a 100644 --- a/themes/bootstrap3/templates/combined/results-list.phtml +++ b/themes/bootstrap3/templates/combined/results-list.phtml @@ -73,6 +73,6 @@ ?> <?=$this->render('search/list-' . $viewType . '.phtml', $viewParams)?> <? if ($currentSearch['more_link']): ?> - <p class="pad text-right"><a href="<?=$moreUrl?>"><?=$this->transEsc($currentSearch['more_link'])?> <i class="fa fa-long-arrow-right"></i></a></p> + <p><a href="<?=$moreUrl?>"><?=$this->transEsc($currentSearch['more_link'])?> <i class="fa fa-long-arrow-right"></i></a></p> <? endif; ?> <? endif; ?> diff --git a/themes/bootstrap3/templates/primo/advanced.phtml b/themes/bootstrap3/templates/primo/advanced.phtml index 7a164aa85f1cba460672416616444659ff5fc4fe..379e72770ce89518aa790e01f1c44161f90ec73e 100644 --- a/themes/bootstrap3/templates/primo/advanced.phtml +++ b/themes/bootstrap3/templates/primo/advanced.phtml @@ -25,31 +25,31 @@ ?> <form id="advSearchForm" name="searchForm" method="get" action="<?=$this->url($this->options->getSearchAction())?>" class="form-horizontal"> <input type="hidden" name="join" value="AND" /> - <div class="<?=$this->layoutClass('mainbody')?>"> - <h3><?=$this->transEsc('Advanced Search')?></h3> - <? /* fallback to a fixed set of search groups/fields if JavaScript is turned off */ ?> - <? if ($groups !== false) { - $numGroups = count($groups); - } - if (!isset($numGroups) || $numGroups < 3) { - $numGroups = 1; - } - ?> - <div class="row"> + <div class="row"> + <div class="<?=$this->layoutClass('mainbody')?>"> + <h3><?=$this->transEsc('Advanced Search')?></h3> + <? /* fallback to a fixed set of search groups/fields if JavaScript is turned off */ ?> + <? if ($groups !== false) { + $numGroups = count($groups); + } + if (!isset($numGroups) || $numGroups < 3) { + $numGroups = 1; + } + ?> <? for ($i = 0; $i < $numGroups; $i++): ?> <input type="hidden" name="bool<?=$i?>[]" value="AND" /> - <div class="group well clearfix" id="group<?=$i?>"> + <div class="group well row" id="group<?=$i?>"> <div class="col-sm-2" id="group<?=$i?>SearchHolder"><label><?=$this->transEsc("adv_search_label")?>:</label></div> <div class="col-sm-10"> <? if (isset($groups[$i])) { - $currentGroup = $groups[$i]->getQueries(); - $numRows = count($currentGroup); + $currentGroup = $groups[$i]->getQueries(); + $numRows = count($currentGroup); } else { - $currentGroup = false; + $currentGroup = false; } if (!isset($numRows) || $numRows < 3) { - $numRows = 3; + $numRows = 3; } ?> <? for ($j = 0; $j < $numRows; $j++): ?> @@ -77,33 +77,46 @@ </div> </div> <? endfor; ?> + <? $lastSort = $this->options->getLastSort(); ?> + <? if (!empty($lastSort)): ?> + <input type="hidden" name="sort" value="<?=$this->escapeHtmlAttr($lastSort)?>" /> + <? endif; ?> + <input type="submit" class="btn btn-primary" name="submit" value="<?=$this->transEsc("Find")?>"/> </div> - <? $lastSort = $this->options->getLastSort(); ?> - <? if (!empty($lastSort)): ?> - <input type="hidden" name="sort" value="<?=$this->escapeHtmlAttr($lastSort)?>" /> - <? endif; ?> - <input type="submit" class="btn btn-primary" name="submit" value="<?=$this->transEsc("Find")?>"/> - </div> - <div class="<?=$this->layoutClass('sidebar')?>"> - <? if ($hasDefaultsApplied): ?> - <input type="hidden" name="dfApplied" value="1" /> - <? endif ?> - <? if (!empty($searchFilters)): ?> - <h4><?=$this->transEsc("adv_search_filters")?></h4> - <ul class="list-group"> - <li class="list-group-item"><label class="checkbox"><?=$this->transEsc("adv_search_select_all")?> <input type="checkbox" checked="checked" class="checkbox-select-all" /></label></li> - </ul> - <? foreach ($searchFilters as $field => $data): ?> - <div> - <ul class="list-group"> - <li class="list-group-item title"><?=$this->transEsc($field)?></li> - <? foreach ($data as $value): ?> - <li class="list-group-item"><label class="checkbox"><input type="checkbox" class="checkbox-select-item" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?></label></li> - <? endforeach; ?> - </ul> - </div> - <? endforeach; ?> - <? endif; ?> + <div class="<?=$this->layoutClass('sidebar')?>"> + <? if ($hasDefaultsApplied): ?> + <input type="hidden" name="dfApplied" value="1" /> + <? endif ?> + <? if (!empty($searchFilters)): ?> + <h4><?=$this->transEsc("adv_search_filters")?></h4> + <ul class="list-group"> + <li class="list-group-item"> + <div class="checkbox"> + <label> + <?=$this->transEsc("adv_search_select_all")?> + <input type="checkbox" checked="checked" class="checkbox-select-all" /> + </label> + </div> + </li> + </ul> + <? foreach ($searchFilters as $field => $data): ?> + <div> + <ul class="list-group"> + <li class="list-group-item title"><?=$this->transEsc($field)?></li> + <? foreach ($data as $value): ?> + <li class="list-group-item"> + <div class="checkbox"> + <label> + <input type="checkbox" class="checkbox-select-item" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?> + </label> + </div> + </li> + <? endforeach; ?> + </ul> + </div> + <? endforeach; ?> + <? endif; ?> + </div> </div> </form> diff --git a/themes/bootstrap3/templates/record/email.phtml b/themes/bootstrap3/templates/record/email.phtml index 894894b6bf2251952b8b0512b0f83a467174a0d1..6a33ffbd5ab8e93aa3baff8c9e41c2a8f9e9367b 100644 --- a/themes/bootstrap3/templates/record/email.phtml +++ b/themes/bootstrap3/templates/record/email.phtml @@ -26,9 +26,11 @@ </div> <div class="form-group"> <div class="col-sm-9 col-sm-offset-3"> - <label class="checkbox"> - <input type="checkbox" name="ccself"/> <?=$this->translate('send_an_email_copy'); ?> - </label> + <div class="checkbox"> + <label> + <input type="checkbox" name="ccself"/> <?=$this->translate('send_an_email_copy'); ?> + </label> + </div> </div> </div> <? endif; ?> @@ -41,9 +43,11 @@ <? if ($this->disableFrom && $this->userEmailInFrom): ?> <div class="form-group"> <div class="col-sm-9 col-sm-offset-3"> - <label class="checkbox"> - <input type="checkbox" name="ccself"/> <?=$this->translate('send_email_copy_to_me'); ?> - </label> + <div class="checkbox"> + <label> + <input type="checkbox" name="ccself"/> <?=$this->translate('send_email_copy_to_me'); ?> + </label> + </div> </div> </div> <? endif ?> diff --git a/themes/bootstrap3/templates/record/storageretrievalrequest.phtml b/themes/bootstrap3/templates/record/storageretrievalrequest.phtml index d08a0d089c84cbbae48c9a44ea2b39f63905bd53..d8c88ef2ceb1896210c35eb5b00fe43440016d3e 100644 --- a/themes/bootstrap3/templates/record/storageretrievalrequest.phtml +++ b/themes/bootstrap3/templates/record/storageretrievalrequest.phtml @@ -18,15 +18,19 @@ <? if (in_array("item-issue", $this->extraFields)): ?> <div class="form-group"> <div class="col-sm-3 controls"> - <label class="radio"> - <input type="radio" id="storageRetrievalRequestItem" name="gatheredDetails[level]" value="copy"<?=!isset($this->gatheredDetails['level']) || $this->gatheredDetails['level'] != 'title' ? ' checked="checked"' : ''?>> - <?=$this->transEsc('storage_retrieval_request_selected_item')?> - </label> + <div class="radio"> + <label> + <input type="radio" id="storageRetrievalRequestItem" name="gatheredDetails[level]" value="copy"<?=!isset($this->gatheredDetails['level']) || $this->gatheredDetails['level'] != 'title' ? ' checked="checked"' : ''?>> + <?=$this->transEsc('storage_retrieval_request_selected_item')?> + </label> + </div> - <label class="radio"> - <input type="radio" id="storageRetrievalRequestTitle" name="gatheredDetails[level]" value="title"<?=isset($this->gatheredDetails['level']) && $this->gatheredDetails['level'] == 'title' ? ' checked="checked"' : ''?>> - <?=$this->transEsc('storage_retrieval_request_reference')?> - </label> + <div class="radio"> + <label> + <input type="radio" id="storageRetrievalRequestTitle" name="gatheredDetails[level]" value="title"<?=isset($this->gatheredDetails['level']) && $this->gatheredDetails['level'] == 'title' ? ' checked="checked"' : ''?>> + <?=$this->transEsc('storage_retrieval_request_reference')?> + </label> + </div> </div> <div id="storageRetrievalRequestReference" class="storageRetrievalRequestReference"> <label class="col-sm-3 control-label"><?=$this->transEsc('storage_retrieval_request_volume')?>:</label> diff --git a/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml b/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml index 5cd4cbe30e9db3f53cd0369460183576744d2404..1af8c77a7bc1a5066a29ce5f1887c049f47dc59c 100644 --- a/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml +++ b/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml @@ -1,10 +1,12 @@ <? if (isset($this->checkboxFacets) && count($this->checkboxFacets) > 0): ?> <fieldset class="checkboxFilter"> <? foreach ($this->checkboxFacets as $current): ?> - <label class="checkbox"> - <input type="checkbox" name="filter[]" value="<?=$this->escapeHtmlAttr($current['filter'])?>" id="<?=$this->escapeHtmlAttr(str_replace(' ', '', $current['desc']))?>"<? if ($current['selected']): ?> checked="checked"<? endif; ?>/> - <?=$this->transEsc($current['desc'])?> - </label> + <div class="checkbox"> + <label> + <input type="checkbox" name="filter[]" value="<?=$this->escapeHtmlAttr($current['filter'])?>" id="<?=$this->escapeHtmlAttr(str_replace(' ', '', $current['desc']))?>"<? if ($current['selected']): ?> checked="checked"<? endif; ?>/> + <?=$this->transEsc($current['desc'])?> + </label> + </div> <? endforeach; ?> </fieldset> <?endif;?> \ No newline at end of file diff --git a/themes/bootstrap3/templates/search/advanced/eds.phtml b/themes/bootstrap3/templates/search/advanced/eds.phtml index 758c7b607f55bc0b8864f8a3541f06051e279837..b2f0f2c340af216eaf872541576cf8ec0b5dd95d 100644 --- a/themes/bootstrap3/templates/search/advanced/eds.phtml +++ b/themes/bootstrap3/templates/search/advanced/eds.phtml @@ -4,10 +4,12 @@ <legend><?=$this->transEsc('eds_modes_and_expanders')?></legend> <? foreach ($this->expanderList as $field => $expander): $value = $expander['Value'] ?> - <label class="checkbox" for="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>"> - <input id="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($expander['selected']) && $expander['selected'])?'checked="checked"':''?> name="filter[]" value="EXPAND:<?=$this->escapeHtmlAttr($value)?>"> - <?=$this->transEsc('eds_expander_' . $value, array(), $expander['Label'])?> - </label> + <div class="checkbox"> + <label for="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>"> + <input id="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($expander['selected']) && $expander['selected'])?'checked="checked"':''?> name="filter[]" value="EXPAND:<?=$this->escapeHtmlAttr($value)?>"> + <?=$this->transEsc('eds_expander_' . $value, array(), $expander['Label'])?> + </label> + </div> <? endforeach; ?> <label class="displayBlock" for="searchModes"><?=$this->transEsc('Search Mode')?></label> @@ -39,10 +41,12 @@ <? break; case 'select': $value = $facet['LimiterValues'][0]['Value'] ?> - <label class="checkbox" for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>"> - <input id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($facet['LimiterValues'][0]['selected']) && $facet['LimiterValues'][0]['selected'])?'checked="checked"':''?> name="filter[]" value="<?=$this->escapeHtmlAttr('LIMIT|'.$field . ':' . $value)?>"> - <?=$this->transEsc('eds_limiter_' . $field, array(), $facet['Label'])?> - </label> + <div class="checkbox"> + <label for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>"> + <input id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($facet['LimiterValues'][0]['selected']) && $facet['LimiterValues'][0]['selected'])?'checked="checked"':''?> name="filter[]" value="<?=$this->escapeHtmlAttr('LIMIT|'.$field . ':' . $value)?>"> + <?=$this->transEsc('eds_limiter_' . $field, array(), $facet['Label'])?> + </label> + </div> <? break; case 'text': ?> <!-- not implemented --> diff --git a/themes/bootstrap3/templates/search/advanced/layout.phtml b/themes/bootstrap3/templates/search/advanced/layout.phtml index 588f2d109ddb872eee9ec0b5d93f4c1a6c375d01..491b65c1c32c6fcb5c4fa797cb0858c23916e141 100644 --- a/themes/bootstrap3/templates/search/advanced/layout.phtml +++ b/themes/bootstrap3/templates/search/advanced/layout.phtml @@ -42,52 +42,54 @@ <?=$this->flashmessages()?> <form role="search" name="searchForm" id="advSearchForm" method="get" action="<?=$this->url($this->options->getSearchAction())?>"> - <div class="<?=$this->layoutClass('mainbody')?>"> - <input type="hidden" name="sort" value="relevance"> - <div class="clearfix"> - <p class="lead pull-left"><?=$this->transEsc('Advanced Search')?></p> - <div id="groupJoin" class="form-inline pull-right hidden"> - <label for="join"><?=$this->transEsc("search_match")?>:</label> - <select id="search_bool0" name="join" class="form-control"> - <option value="AND"<? if($searchDetails && $searchDetails->getOperator()=='ALL'):?> selected<?endif?>><?= $this->transEsc('group_AND') ?></option> - <option value="OR"<? if($searchDetails && $searchDetails->getOperator()=='OR'):?> selected<?endif?>><?= $this->transEsc('group_OR') ?></option> - </select> + <div class="row"> + <div class="<?=$this->layoutClass('mainbody')?>"> + <input type="hidden" name="sort" value="relevance"> + <div class="clearfix"> + <p class="lead pull-left"><?=$this->transEsc('Advanced Search')?></p> + <div id="groupJoin" class="form-inline pull-right hidden"> + <label for="join"><?=$this->transEsc("search_match")?>:</label> + <select id="search_bool0" name="join" class="form-control"> + <option value="AND"<? if($searchDetails && $searchDetails->getOperator()=='ALL'):?> selected<?endif?>><?= $this->transEsc('group_AND') ?></option> + <option value="OR"<? if($searchDetails && $searchDetails->getOperator()=='OR'):?> selected<?endif?>><?= $this->transEsc('group_OR') ?></option> + </select> + </div> </div> + <span id="groupPlaceHolder"> + <i class="fa fa-plus-circle"></i> <a href="#" onClick="addGroup()"><?= $this->transEsc('add_search_group') ?></a> + </span> + <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>"> + <? if (isset($this->extraAdvancedControls)): ?> + <?=$this->extraAdvancedControls ?> + <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>"/> + <? endif; ?> </div> - <span id="groupPlaceHolder"> - <i class="fa fa-plus-circle"></i> <a href="#" onClick="addGroup()"><?= $this->transEsc('add_search_group') ?></a> - </span> - <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>"> - <? if (isset($this->extraAdvancedControls)): ?> - <?=$this->extraAdvancedControls ?> - <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>"/> - <? endif; ?> - </div> - <div class="<?=$this->layoutClass('sidebar')?>"> - <? if ($hasDefaultsApplied): ?> - <input type="hidden" name="dfApplied" value="1" /> - <? endif ?> - <? if (!empty($searchFilters)): ?> - <h4><?=$this->transEsc("adv_search_filters")?></h4> - <ul class="list-group"> - <label class="list-group-item checkbox"><?=$this->transEsc("adv_search_select_all")?> <input type="checkbox" checked="checked" class="checkbox-select-all"/></label> - </ul> - <? foreach ($searchFilters as $field => $data): ?> + <div class="<?=$this->layoutClass('sidebar')?>"> + <? if ($hasDefaultsApplied): ?> + <input type="hidden" name="dfApplied" value="1" /> + <? endif ?> + <? if (!empty($searchFilters)): ?> + <h4><?=$this->transEsc("adv_search_filters")?></h4> + <ul class="list-group"> + <label class="list-group-item checkbox"><?=$this->transEsc("adv_search_select_all")?> <input type="checkbox" checked="checked" class="checkbox-select-all"/></label> + </ul> + <? foreach ($searchFilters as $field => $data): ?> + <ul class="list-group"> + <li class="list-group-item title"><?=$this->transEsc($field)?></li> + <? foreach ($data as $value): ?> + <label class="list-group-item checkbox"><input class="checkbox-select-item" type="checkbox" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?></label> + <? endforeach; ?> + </ul> + <? endforeach; ?> + <? endif; ?> + <div class="sidegroup"> + <h4><?=$this->transEsc("Search Tips")?></h4> <ul class="list-group"> - <li class="list-group-item title"><?=$this->transEsc($field)?></li> - <? foreach ($data as $value): ?> - <label class="list-group-item checkbox"><input class="checkbox-select-item" type="checkbox" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?></label> - <? endforeach; ?> + <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=advsearch" title="<?=$this->transEsc('Help with Advanced Search')?>"><?=$this->transEsc("Help with Advanced Search")?></a> + <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=search" title="<?=$this->transEsc('Help with Search Operators')?>"><?=$this->transEsc("Help with Search Operators")?></a> </ul> - <? endforeach; ?> - <? endif; ?> - <div class="sidegroup"> - <h4><?=$this->transEsc("Search Tips")?></h4> - <ul class="list-group"> - <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=advsearch" title="<?=$this->transEsc('Help with Advanced Search')?>"><?=$this->transEsc("Help with Advanced Search")?></a> - <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=search" title="<?=$this->transEsc('Help with Search Operators')?>"><?=$this->transEsc("Help with Search Operators")?></a> - </ul> + </div> </div> </div> </form> diff --git a/themes/bootstrap3/templates/search/advanced/ranges.phtml b/themes/bootstrap3/templates/search/advanced/ranges.phtml index aebf80d66486b378c2884117930ae9a26cb61085..7523ec869c69540620afe84ab5f1ba54c5b8d693 100644 --- a/themes/bootstrap3/templates/search/advanced/ranges.phtml +++ b/themes/bootstrap3/templates/search/advanced/ranges.phtml @@ -17,21 +17,20 @@ <? if ($current['type'] == 'date'): ?> <input type="text" id="<?=$escField?><?=$this->escapeHtmlAttr($current['type'])?>Slider"> <? endif; ?> - </fieldset> - <? if ($current['type'] == 'date'): ?> - <? - $this->headScript()->appendFile('vendor/bootstrap-slider.js'); - $min = !empty($current['values'][0]) ? min($current['values'][0], 1400) : 1400; - $future = date('Y', time()+31536000); - $max = !empty($current['values'][1]) ? max($future, $current['values'][1]) : $future; - $low = !empty($current['values'][0]) ? $current['values'][0] : $min; - $high = !empty($current['values'][1]) ? $current['values'][1] : $max; - $min = intval($min); - $max = intval($max); - $low = intval($low); - $high = intval($high); - $init = !empty($current['values'][0]) ? 'fillTexts()' : ''; - $script = <<<JS + <? if ($current['type'] == 'date'): ?> + <? + $this->headScript()->appendFile('vendor/bootstrap-slider.js'); + $min = !empty($current['values'][0]) ? min($current['values'][0], 1400) : 1400; + $future = date('Y', time()+31536000); + $max = !empty($current['values'][1]) ? max($future, $current['values'][1]) : $future; + $low = !empty($current['values'][0]) ? $current['values'][0] : $min; + $high = !empty($current['values'][1]) ? $current['values'][1] : $max; + $min = intval($min); + $max = intval($max); + $low = intval($low); + $high = intval($high); + $init = !empty($current['values'][0]) ? 'fillTexts()' : ''; + $script = <<<JS $(document).ready(function() { var fillTexts = function() { var v = {$escField}dateSlider.getValue(); @@ -51,8 +50,9 @@ $(document).ready(function() { {$init} }); JS; - ?> - <?=$this->inlineScript(\Zend\View\Helper\HeadScript::SCRIPT, $script, 'SET'); ?> + ?> + <?=$this->inlineScript(\Zend\View\Helper\HeadScript::SCRIPT, $script, 'SET'); ?> + </fieldset> <? endif; ?> <? endforeach; ?> <? endif; ?> diff --git a/themes/bootstrap3/templates/search/advanced/solr.phtml b/themes/bootstrap3/templates/search/advanced/solr.phtml index 866b96d169683085905f1ef75c9edd4faaabc6ca..513cb93d6758f968894e31268a122691e7e2cfa2 100644 --- a/themes/bootstrap3/templates/search/advanced/solr.phtml +++ b/themes/bootstrap3/templates/search/advanced/solr.phtml @@ -1,5 +1,5 @@ <? if (!empty($this->facetList) || !empty($this->checkboxFacets)): ?> - <fieldset class="col-sm-12"> + <fieldset> <legend><?=$this->transEsc('Limit To')?></legend> <? if (!empty($this->checkboxFacets)): ?> <?=$this->render('search/advanced/checkbox-filters.phtml')?> @@ -8,7 +8,7 @@ <? foreach ($this->facetList as $field => $list): ?> <div class="col-sm-<?=floor(12/count($this->facetList)) ?>"> <label for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>"><?=$this->transEsc($list['label'])?>:</label> - <select class="col-sm-12" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10"> + <select class="form-control" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10"> <? // Sort the current facet list alphabetically; we'll use this data // along with the foreach below to display facet options in the diff --git a/themes/bootstrap3/templates/search/advanced/summon.phtml b/themes/bootstrap3/templates/search/advanced/summon.phtml index dfefcc64aab7a673618a2ece49a8686378ecd213..52a11b254b7fa07ccfb12f0bf80d1091d06ac4d8 100644 --- a/themes/bootstrap3/templates/search/advanced/summon.phtml +++ b/themes/bootstrap3/templates/search/advanced/summon.phtml @@ -7,8 +7,8 @@ <div class="row"> <? foreach ($this->facetList as $field => $list): ?> <div class="col-sm-<?=floor(12/count($this->facetList)) ?>"> - <label class="displayBlock" for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>"><?=$this->transEsc($list['label'])?>:</label> - <select class="col-sm-12" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10"> + <label for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>"><?=$this->transEsc($list['label'])?>:</label> + <select class="form-control" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10"> <? // Sort the current facet list alphabetically; we'll use this data // along with the foreach below to display facet options in the @@ -29,5 +29,7 @@ </div> </fieldset> <? endif; ?> -<?=$this->render('search/advanced/limit.phtml')?> -<?=$this->render('search/advanced/ranges.phtml')?> \ No newline at end of file +<div class="row"> + <?=$this->render('search/advanced/limit.phtml')?> + <?=$this->render('search/advanced/ranges.phtml')?> +</div> diff --git a/themes/bootstrap3/templates/search/home.phtml b/themes/bootstrap3/templates/search/home.phtml index ad2eb83f4362e53c4cb246b5dde452d094b5cc21..acde395e2420bc39a7b248ef8d96666f4526df9e 100644 --- a/themes/bootstrap3/templates/search/home.phtml +++ b/themes/bootstrap3/templates/search/home.phtml @@ -17,23 +17,23 @@ $this->layout()->breadcrumbs = false; ?> - <div class="searchHomeContent col-sm-12"> - <? if ($this->ils()->getOfflineMode() == "ils-offline"): ?> - <div class="alert alert-warning"> - <h2><?=$this->transEsc('ils_offline_title')?></h2> - <p><strong><?=$this->transEsc('ils_offline_status')?></strong></p> - <p><?=$this->transEsc('ils_offline_home_message')?></p> - <? $supportEmail = $this->escapeHtmlAttr($this->systemEmail()); ?> - <p><a href="mailto:<?=$supportEmail?>"><?=$supportEmail?></a></p> - </div> - <? endif; ?> - <div class="well well-lg clearfix"> - <?=$this->render("search/searchbox.phtml")?> + +<div class="searchHomeContent"> + <? if ($this->ils()->getOfflineMode() == "ils-offline"): ?> + <div class="alert alert-warning"> + <h2><?=$this->transEsc('ils_offline_title')?></h2> + <p><strong><?=$this->transEsc('ils_offline_status')?></strong></p> + <p><?=$this->transEsc('ils_offline_home_message')?></p> + <? $supportEmail = $this->escapeHtmlAttr($this->systemEmail()); ?> + <p><a href="mailto:<?=$supportEmail?>"><?=$supportEmail?></a></p> </div> + <? endif; ?> + <div class="well well-lg clearfix"> + <?=$this->render("search/searchbox.phtml")?> </div> +</div> <? $facetList = is_object($this->results) ? $this->results->getFacetList() : array(); if (isset($facetList) && is_array($facetList)): ?> -</div> <!-- close row from layout.phtml --> <div class="row"> <? foreach ($facetList as $field => $details): ?> <? $sortedList = $this->sortFacetList($this->results, $field, $details['list'], $basicSearch); ?> diff --git a/themes/bootstrap3/templates/search/newitem.phtml b/themes/bootstrap3/templates/search/newitem.phtml index d4085b258a5cf8786879f9abf93bf148a343f631..f3aea47ad0352736f613674adcc7a41ebb74aec0 100644 --- a/themes/bootstrap3/templates/search/newitem.phtml +++ b/themes/bootstrap3/templates/search/newitem.phtml @@ -12,10 +12,12 @@ <label class="col-sm-3 control-label"><?=$this->transEsc('Range')?>:</label> <div class="col-sm-9"> <? foreach ($this->ranges as $key => $range): ?> - <label class="radio"> - <input type="radio" name="range" id="newitem_range_<?=$this->escapeHtmlAttr($key)?>" value="<?=$this->escapeHtmlAttr($range)?>"<?= ($key == 0) ? ' checked="checked"' : ''?>/> - <?=($range == 1) ? $this->transEsc('Yesterday') : $this->transEsc('Past') . ' ' . $this->escapeHtml($range) . ' ' . $this->transEsc('Days')?> - </label> + <div class="radio"> + <label> + <input type="radio" name="range" id="newitem_range_<?=$this->escapeHtmlAttr($key)?>" value="<?=$this->escapeHtmlAttr($range)?>"<?= ($key == 0) ? ' checked="checked"' : ''?>/> + <?=($range == 1) ? $this->transEsc('Yesterday') : $this->transEsc('Past') . ' ' . $this->escapeHtml($range) . ' ' . $this->transEsc('Days')?> + </label> + </div> <? endforeach; ?> </div> </div> diff --git a/themes/bootstrap3/templates/vudl/grid.phtml b/themes/bootstrap3/templates/vudl/grid.phtml index 9dfcc18f604afd1f4ff63d653ee4cd5a58434e53..9cf901d1984fb5b94fa741ed78ee3db601d1edba 100644 --- a/themes/bootstrap3/templates/vudl/grid.phtml +++ b/themes/bootstrap3/templates/vudl/grid.phtml @@ -34,47 +34,48 @@ var documentID = '<?=$this->id ?>'; var initPage = <?=isset($this->initPage) ? $this->initPage : 0 ?>; </script> -<div class="vudl container row"> +<div class="vudl row"> <div class="col-sm-3"> <?=$this->context($this)->renderInContext('vudl/details.phtml', array())?> </div> <div class="col-sm-9"> - <? $index=0; foreach($this->outline['lists'] as $key=>$list): ?> - <!-- PRE LOADING PLACEHOLDERS --> - <? for($i=0;$i<current(array_keys($list))-1;$i++, $index++): ?> - <a class="col-sm-3 page-grid" id="item<?=$i ?>" title="<?=$i ?>">Loading...</a> - <? endfor; ?> - <!-- LOADED ITEMS --> - <? foreach($list as $i=>$item): ?> - <a href="<?=$this->url('vudl-record', array('id'=>$item['id'])) ?>" class="col-sm-3 page-grid" title="<?=$item['id'] ?>" id="item<?=$index?>"> - <? if(isset($item['thumbnail'])): ?> - <img src="<?=$item['thumbnail'] ?>" alt="<?=$item['label'] ?>"/> - <? else: ?> - <img class="<?=$item['fulltype'] ?>" src="<?=$this->imageLink('vudl/'.$item['fulltype'].'.png') ?>"/> - <? endif; ?> - <br/><?=$this->transEsc($item['label']) ?> - </a> - <? $index++; ?> - <? endforeach; ?> - <!-- POST LOADING PLACEHOLDERS --> - <? if(isset($this->outline['counts'][$key])): ?> - <? for($i=$this->initPage+count($list);$i<$this->outline['counts'][$key];$i++, $index++): ?> + <div class="row"> + <? $index=0; foreach($this->outline['lists'] as $key=>$list): ?> + <!-- PRE LOADING PLACEHOLDERS --> + <? for($i=0;$i<current(array_keys($list))-1;$i++, $index++): ?> <a class="col-sm-3 page-grid" id="item<?=$i ?>" title="<?=$i ?>">Loading...</a> <? endfor; ?> - <? endif; ?> - <? endforeach; ?> + <!-- LOADED ITEMS --> + <? foreach($list as $i=>$item): ?> + <a class="col-sm-3 page-grid" href="<?=$this->url('vudl-record', array('id'=>$item['id'])) ?>" title="<?=$item['id'] ?>" id="item<?=$index?>"> + <? if(isset($item['thumbnail'])): ?> + <img src="<?=$item['thumbnail'] ?>" alt="<?=$item['label'] ?>"/> + <? else: ?> + <img class="<?=$item['fulltype'] ?>" src="<?=$this->imageLink('vudl/'.$item['fulltype'].'.png') ?>"/> + <? endif; ?> + <br/><?=$this->transEsc($item['label']) ?> + </a> + <? $index++; ?> + <? endforeach; ?> + <!-- POST LOADING PLACEHOLDERS --> + <? if(isset($this->outline['counts'][$key])): ?> + <? for($i=$this->initPage+count($list);$i<$this->outline['counts'][$key];$i++, $index++): ?> + <a class="col-sm-3 page-grid" id="item<?=$i ?>" title="<?=$i ?>">Loading...</a> + <? endfor; ?> + <? endif; ?> + <? endforeach; ?> + </div> </div> - <script> - $.ajax({dataType:'json', - url:'../VuDL/ajax?method=pageAjax&record=<?=$this->id ?>&start=0&end=16', - success:ajaxLoadPages, - error:function(d,e){ - console.log(d);console.log(e) - } - }); - counts = $.parseJSON('<?=json_encode($this->outline['counts'], JSON_HEX_APOS | JSON_HEX_AMP) ?>'); - $('.accordion').removeClass('hidden'); - $('#collapse0').addClass('in'); - </script> </div> -<div class="bottom"> </div> +<script> + $.ajax({dataType:'json', + url:'../VuDL/ajax?method=pageAjax&record=<?=$this->id ?>&start=0&end=16', + success:ajaxLoadPages, + error:function(d,e){ + console.log(d);console.log(e) + } + }); + counts = $.parseJSON('<?=json_encode($this->outline['counts'], JSON_HEX_APOS | JSON_HEX_AMP) ?>'); + $('.accordion').removeClass('hidden'); + $('#collapse_details').addClass('in'); +</script>