Date: Mon, 17 Aug 2026 21:42:29 -0400
Subject: [PATCH 03/10] Remove Alma search option
This also removes the jQuery plugin that drives the tabbed search interface, because we are
no longer supporting multiple search options in this widget.
We also bump the plugin version to 1.8.0.
Squash into alma removal
---
.../class-multisearch-widget.php | 73 ++---------
.../libs/jquery.responsiveTabs.min.js | 10 --
.../mitlib-multisearch-widget.js | 29 +----
.../mitlib-multisearch-widget.php | 2 +-
.../templates/tab-all-alma.php | 33 -----
.../templates/tab-articles-alma.php | 76 ------------
.../templates/tab-books-alma.php | 115 ------------------
.../templates/tab-more-alma.php | 54 --------
8 files changed, 11 insertions(+), 381 deletions(-)
delete mode 100644 web/app/plugins/mitlib-multisearch-widget/libs/jquery.responsiveTabs.min.js
delete mode 100644 web/app/plugins/mitlib-multisearch-widget/templates/tab-all-alma.php
delete mode 100644 web/app/plugins/mitlib-multisearch-widget/templates/tab-articles-alma.php
delete mode 100644 web/app/plugins/mitlib-multisearch-widget/templates/tab-books-alma.php
delete mode 100644 web/app/plugins/mitlib-multisearch-widget/templates/tab-more-alma.php
diff --git a/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php b/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
index b8bee4f7..02102465 100644
--- a/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
+++ b/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
@@ -32,48 +32,34 @@ public function __construct() {
* @link https://developer.wordpress.org/reference/classes/wp_widget/
*/
public function widget( $args, $instance ) {
- // Identify which templates are needed based on instance variable.
- $all_template = 'templates/tab-all-alma.php';
- $books_template = 'templates/tab-books-alma.php';
- $articles_template = 'templates/tab-articles-alma.php';
- $articles_tab_name = 'Articles + chapters';
- $more_template = 'templates/tab-more-alma.php';
+ // By default, we use the v2 template (suitable for v2 page layouts).
+ $all_template = 'templates/tab-all-use-v2.php';
if ( 'use' == $instance['targets'] ) {
+ // Alternatively, we use the v1 template (for old page layouts).
$all_template = 'templates/tab-all-use.php';
}
- if ( 'use-v2' == $instance['targets'] ) {
- $all_template = 'templates/tab-all-use-v2.php';
- }
// Strip initial arguments.
$args = null;
// Register / enqueue javascript.
- // First we add the responsive tabs plugin.
- wp_register_script(
- 'responsivetabs-js',
- plugin_dir_url( __FILE__ ) . 'libs/jquery.responsiveTabs.min.js',
- array( 'jquery' ),
- '1.6.1',
- false
- );
// Second, we add this plugin's javascript.
wp_register_script(
'multisearch-js',
plugin_dir_url( __FILE__ ) . 'mitlib-multisearch-widget.js',
- array( 'responsivetabs-js' ),
- '1.4.1',
+ array(),
+ '1.8.0',
false
);
// Finally, we enquey only this plugin's javascript (which brings everything else in).
wp_enqueue_script( 'multisearch-js' );
// Register / enqueue styles.
- wp_register_style( 'responsivetabs-css', plugin_dir_url( __FILE__ ) . 'libs/responsive-tabs.css', '', '1.6.1' );
+ wp_register_style( 'responsivetabs-css', plugin_dir_url( __FILE__ ) . 'libs/responsive-tabs.css', '', '1.8.0' );
wp_register_style(
'multisearch-tabs',
plugin_dir_url( __FILE__ ) . 'mitlib-multisearch-widget.css',
array( 'responsivetabs-css' ),
- '1.3.0'
+ '1.8.0'
);
wp_enqueue_style( 'multisearch-tabs' );
@@ -88,34 +74,6 @@ public function widget( $args, $instance ) {
};
- // Render the search tabs only when "Unified Search" option is not selected.
- if ( $instance['targets'] != 'use' && $instance['targets'] != 'use-v2' ) {
-
- echo '';
-
- // Render the individual tab panes.
- echo '';
- include $all_template;
- echo '
';
- echo '';
- include $books_template;
- echo '
';
- echo '';
- include $articles_template;
- echo '
';
- echo '';
- include $more_template;
- echo '
';
-
- };
-
if ( $instance['targets'] == 'use' ) {
// Determine whether to enable NLS based on widget settings and the user's cookie.
@@ -176,7 +134,7 @@ public function form( $instance ) {
$banner_text = $instance['banner_text'];
$targets = $instance['targets'];
if ( '' == $instance['targets'] ) {
- $targets = 'alma';
+ $targets = 'use-v2';
}
$bento_url = $instance['bento_url'];
if ( '' == $instance['bento_url'] ) {
@@ -201,21 +159,6 @@ class="widefat"
Which set of search targets should be shown?
-
-
-
- >
- Alma and Primo
-
-
- * @version v1.6.1
- * @license MIT
- */
-!function(t,s,a){function e(s,a){this.element=s,this.$element=t(s),this.tabs=[],this.state="",this.rotateInterval=0,this.$queue=t({}),this.options=t.extend({},o,a),this.init()}var o={active:null,event:"click",disabled:[],collapsible:"accordion",startCollapsed:!1,rotate:!1,setHash:!1,animation:"default",animationQueue:!1,duration:500,fluidHeight:!0,scrollToAccordion:!1,scrollToAccordionOnLoad:!0,scrollToAccordionOffset:0,accordionTabElement:"
",click:function(){},activate:function(){},deactivate:function(){},load:function(){},activateState:function(){},classes:{stateDefault:"r-tabs-state-default",stateActive:"r-tabs-state-active",stateDisabled:"r-tabs-state-disabled",stateExcluded:"r-tabs-state-excluded",container:"r-tabs",ul:"r-tabs-nav",tab:"r-tabs-tab",anchor:"r-tabs-anchor",panel:"r-tabs-panel",accordionTitle:"r-tabs-accordion-title"}};e.prototype.init=function(){var a=this;this.tabs=this._loadElements(),this._loadClasses(),this._loadEvents(),t(s).on("resize",function(t){a._setState(t),a.options.fluidHeight!==!0&&a._equaliseHeights()}),t(s).on("hashchange",function(t){var e=a._getTabRefBySelector(s.location.hash),o=a._getTab(e);e>=0&&!o._ignoreHashChange&&!o.disabled&&a._openTab(t,a._getTab(e),!0)}),this.options.rotate!==!1&&this.startRotation(),this.options.fluidHeight!==!0&&a._equaliseHeights(),this.$element.bind("tabs-click",function(t,s){a.options.click.call(this,t,s)}),this.$element.bind("tabs-activate",function(t,s){a.options.activate.call(this,t,s)}),this.$element.bind("tabs-deactivate",function(t,s){a.options.deactivate.call(this,t,s)}),this.$element.bind("tabs-activate-state",function(t,s){a.options.activateState.call(this,t,s)}),this.$element.bind("tabs-load",function(t){var s;a._setState(t),a.options.startCollapsed===!0||"accordion"===a.options.startCollapsed&&"accordion"===a.state||(s=a._getStartTab(),a._openTab(t,s),a.options.load.call(this,t,s))}),this.$element.trigger("tabs-load")},e.prototype._loadElements=function(){var s=this,a=this.$element.children("ul:first"),e=[],o=0;return this.$element.addClass(s.options.classes.container),a.addClass(s.options.classes.ul),t("li",a).each(function(){var a,i,n,l,r,c=t(this),h=c.hasClass(s.options.classes.stateExcluded);if(!h){a=t("a",c),r=a.attr("href"),i=t(r),n=t(s.options.accordionTabElement).insertBefore(i),l=t(" ").attr("href",r).html(a.html()).appendTo(n);var p={_ignoreHashChange:!1,id:o,disabled:-1!==t.inArray(o,s.options.disabled),tab:t(this),anchor:t("a",c),panel:i,selector:r,accordionTab:n,accordionAnchor:l,active:!1};o++,e.push(p)}}),e},e.prototype._loadClasses=function(){for(var t=0;t=0&&!this._getTab(a).disabled?this._getTab(a):this.options.active>0&&!this._getTab(this.options.active).disabled?this._getTab(this.options.active):this._getTab(0)},e.prototype._setState=function(s){var e,o=t("ul:first",this.$element),i=this.state,n="string"==typeof this.options.startCollapsed;o.is(":visible")?this.state="tabs":this.state="accordion",this.state!==i&&(this.$element.trigger("tabs-activate-state",{oldState:i,newState:this.state}),i&&n&&this.options.startCollapsed!==this.state&&this._getCurrentTab()===a&&(e=this._getStartTab(s),this._openTab(s,e)))},e.prototype._openTab=function(s,a,e,o){var i,n=this;e&&this._closeTab(s,this._getCurrentTab()),o&&this.rotateInterval>0&&this.stopRotation(),a.active=!0,a.tab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),a.accordionTab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),n._doTransition(a.panel,n.options.animation,"open",function(){var e="tabs-load"!==s.type||n.options.scrollToAccordionOnLoad;a.panel.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),"accordion"!==n.getState()||!n.options.scrollToAccordion||n._isInView(a.accordionTab)&&"default"===n.options.animation||!e||(i=a.accordionTab.offset().top-n.options.scrollToAccordionOffset,"default"!==n.options.animation&&n.options.duration>0?t("html, body").animate({scrollTop:i},n.options.duration):t("html, body").scrollTop(i))}),this.$element.trigger("tabs-activate",a)},e.prototype._closeTab=function(t,s){var e,o=this,i="string"==typeof o.options.animationQueue;s!==a&&(e=i&&o.getState()===o.options.animationQueue?!0:i?!1:o.options.animationQueue,s.active=!1,s.tab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault),o._doTransition(s.panel,o.options.animation,"close",function(){s.accordionTab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault),s.panel.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault)},!e),this.$element.trigger("tabs-deactivate",s))},e.prototype._doTransition=function(t,s,a,e,o){var i,n=this;switch(s){case"slide":i="open"===a?"slideDown":"slideUp";break;case"fade":i="open"===a?"fadeIn":"fadeOut";break;default:i="open"===a?"show":"hide",n.options.duration=0}this.$queue.queue("responsive-tabs",function(o){t[i]({duration:n.options.duration,complete:function(){e.call(t,s,a),o()}})}),("open"===a||o)&&this.$queue.dequeue("responsive-tabs")},e.prototype._isCollapisble=function(){return"boolean"==typeof this.options.collapsible&&this.options.collapsible||"string"==typeof this.options.collapsible&&this.options.collapsible===this.getState()},e.prototype._getTab=function(t){return this.tabs[t]},e.prototype._getTabRefBySelector=function(t){for(var s=0;s=n&&i>=e},e.prototype.activate=function(t,s){var a=jQuery.Event("tabs-activate"),e=this._getTab(t);e.disabled||this._openTab(a,e,!0,s||!0)},e.prototype.deactivate=function(t){var s=jQuery.Event("tabs-dectivate"),a=this._getTab(t);a.disabled||this._closeTab(s,a)},e.prototype.enable=function(t){var s=this._getTab(t);s&&(s.disabled=!1,s.tab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled),s.accordionTab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled))},e.prototype.disable=function(t){var s=this._getTab(t);s&&(s.disabled=!0,s.tab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled),s.accordionTab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled))},e.prototype.getState=function(){return this.state},e.prototype.startRotation=function(s){var a=this;if(!(this.tabs.length>this.options.disabled.length))throw new Error("Rotation is not possible if all tabs are disabled");this.rotateInterval=setInterval(function(){var t=jQuery.Event("rotate");a._openTab(t,a._getTab(a._getNextTabRef()),!0)},s||(t.isNumeric(a.options.rotate)?a.options.rotate:4e3))},e.prototype.stopRotation=function(){s.clearInterval(this.rotateInterval),this.rotateInterval=0},e.prototype.option=function(t,s){return s&&(this.options[t]=s),this.options[t]},t.fn.responsiveTabs=function(s){var o,i=arguments;return s===a||"object"==typeof s?this.each(function(){t.data(this,"responsivetabs")||t.data(this,"responsivetabs",new e(this,s))}):"string"==typeof s&&"_"!==s[0]&&"init"!==s?(o=t.data(this[0],"responsivetabs"),"destroy"===s&&t.data(this,"responsivetabs",null),o instanceof e&&"function"==typeof o[s]?o[s].apply(o,Array.prototype.slice.call(i,1)):this):void 0}}(jQuery,window);
diff --git a/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.js b/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.js
index cb82aa30..46a676d4 100644
--- a/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.js
+++ b/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.js
@@ -16,9 +16,7 @@ function preventSearch(textField,button) {
$( button ).prop('disabled', true);
e.preventDefault();
}
-
});
-
}
@@ -28,33 +26,10 @@ jQuery( document ).ready(function() {
// If javascript is present, we disable the nojs class.
$tabs.removeClass("nojs");
- // Check if this is the USE form and does not need tabs.
- if ( $('#search-all').hasClass("use") ) {
- // add r-tabs class to force styling of the form to be consistent with the other tabs.
- $tabs.addClass("r-tabs");
- } else {
- // Call Responsive Tabs plugin.
- $tabs.responsiveTabs({
- rotate: false,
- startCollapsed: false,
- collapsible: false,
- setHash: true
- });
-
- $( '#search_tabs_nav a' ).click( function(e) {
- $( '#search_tabs_nav a' ).removeAttr( "aria-expanded" );
- $( '#search_tabs_nav a .current' ).remove();
- $(this).attr( "aria-expanded", "true" ).prepend( "Current: " );
- });
- }
+ // add r-tabs class to force styling of the form to be consistent with the other tabs.
+ $tabs.addClass("r-tabs");
// prevent submission until text field is not empty
preventSearch( '#searchinput-bento', '.search-bento .button-search');
-
- preventSearch( '#searchinput-bookslocal', 'form#booksearch .button-search');
-
- preventSearch( '#searchinput-site', '.search-site .button-search');
-
-
});
diff --git a/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.php b/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.php
index e7256f60..287d5e01 100644
--- a/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.php
+++ b/web/app/plugins/mitlib-multisearch-widget/mitlib-multisearch-widget.php
@@ -2,7 +2,7 @@
/**
* Plugin Name: MITlib Multisearch Widget
* Description: This plugin provides a widget that provides searches against multiple targets.
- * Version: 1.7.0
+ * Version: 1.8.0
* Author: MIT Libraries
* License: GPL2
*
diff --git a/web/app/plugins/mitlib-multisearch-widget/templates/tab-all-alma.php b/web/app/plugins/mitlib-multisearch-widget/templates/tab-all-alma.php
deleted file mode 100644
index 75695c40..00000000
--- a/web/app/plugins/mitlib-multisearch-widget/templates/tab-all-alma.php
+++ /dev/null
@@ -1,33 +0,0 @@
-
-All panel
-
-
- Advanced search | Citation search
-
diff --git a/web/app/plugins/mitlib-multisearch-widget/templates/tab-articles-alma.php b/web/app/plugins/mitlib-multisearch-widget/templates/tab-articles-alma.php
deleted file mode 100644
index f8a576f4..00000000
--- a/web/app/plugins/mitlib-multisearch-widget/templates/tab-articles-alma.php
+++ /dev/null
@@ -1,76 +0,0 @@
-
-Articles and chapters panel
-
-
-Also search for:
- Journals or
- Databases or use
- Citation search
-
diff --git a/web/app/plugins/mitlib-multisearch-widget/templates/tab-books-alma.php b/web/app/plugins/mitlib-multisearch-widget/templates/tab-books-alma.php
deleted file mode 100644
index ddabe6d8..00000000
--- a/web/app/plugins/mitlib-multisearch-widget/templates/tab-books-alma.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
-Books and media panel
-
-Also search for:
- MIT theses or
- Course reserves
-
-
diff --git a/web/app/plugins/mitlib-multisearch-widget/templates/tab-more-alma.php b/web/app/plugins/mitlib-multisearch-widget/templates/tab-more-alma.php
deleted file mode 100644
index a69e3cf9..00000000
--- a/web/app/plugins/mitlib-multisearch-widget/templates/tab-more-alma.php
+++ /dev/null
@@ -1,54 +0,0 @@
-
-More panel
-
-
From b669740f0b0852226941bd056f531cfd2bad2fa6 Mon Sep 17 00:00:00 2001
From: Matthew Bernhardt
Date: Mon, 17 Aug 2026 22:01:49 -0400
Subject: [PATCH 04/10] Remove bento_url option
---
.../class-multisearch-widget.php | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php b/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
index 02102465..74238d5e 100644
--- a/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
+++ b/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
@@ -136,10 +136,6 @@ public function form( $instance ) {
if ( '' == $instance['targets'] ) {
$targets = 'use-v2';
}
- $bento_url = $instance['bento_url'];
- if ( '' == $instance['bento_url'] ) {
- $bento_url = 'https://lib.mit.edu/';
- }
$nls_default = $instance['nls_default'];
if ( '' == $instance['nls_default'] ) {
$nls_default = 'off';
@@ -190,18 +186,6 @@ class="widefat"
-
-
- (formatted like "https://lib.mit.edu/")
-
-
-
- Natural language search
Should the natural language option be shown?
@@ -266,7 +250,6 @@ public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['banner_text'] = $new_instance['banner_text'];
$instance['targets'] = $new_instance['targets'];
- $instance['bento_url'] = $new_instance['bento_url'];
$instance['nls_default'] = $new_instance['nls_default'];
$instance['nls_included'] = $new_instance['nls_included'];
return $instance;
From 0c6e8fa9f6a572c2ad975c78d968a5ea960e25d6 Mon Sep 17 00:00:00 2001
From: Matthew Bernhardt
Date: Mon, 17 Aug 2026 22:02:06 -0400
Subject: [PATCH 05/10] Move arg-stripping to first step of widget method
---
.../mitlib-multisearch-widget/class-multisearch-widget.php | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php b/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
index 74238d5e..a0076b33 100644
--- a/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
+++ b/web/app/plugins/mitlib-multisearch-widget/class-multisearch-widget.php
@@ -32,14 +32,15 @@ public function __construct() {
* @link https://developer.wordpress.org/reference/classes/wp_widget/
*/
public function widget( $args, $instance ) {
+ // Strip initial arguments.
+ $args = null;
+
// By default, we use the v2 template (suitable for v2 page layouts).
$all_template = 'templates/tab-all-use-v2.php';
if ( 'use' == $instance['targets'] ) {
// Alternatively, we use the v1 template (for old page layouts).
$all_template = 'templates/tab-all-use.php';
}
- // Strip initial arguments.
- $args = null;
// Register / enqueue javascript.
// Second, we add this plugin's javascript.
From e0649ce6c5218573c24926b2e44056f3d8fe9e98 Mon Sep 17 00:00:00 2001
From: Matthew Bernhardt
Date: Mon, 17 Aug 2026 22:02:35 -0400
Subject: [PATCH 06/10] Remove NLS state debugging output from templates
---
.../mitlib-multisearch-widget/templates/tab-all-use-v2.php | 1 -
.../plugins/mitlib-multisearch-widget/templates/tab-all-use.php | 1 -
2 files changed, 2 deletions(-)
diff --git a/web/app/plugins/mitlib-multisearch-widget/templates/tab-all-use-v2.php b/web/app/plugins/mitlib-multisearch-widget/templates/tab-all-use-v2.php
index 2d652e86..b6b900e9 100644
--- a/web/app/plugins/mitlib-multisearch-widget/templates/tab-all-use-v2.php
+++ b/web/app/plugins/mitlib-multisearch-widget/templates/tab-all-use-v2.php
@@ -8,7 +8,6 @@
*/
?>
-