From e151e396330597cebdc000abf6d291045dda6915 Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Tue, 3 Feb 2026 16:05:47 -0700 Subject: [PATCH 1/9] Upgrade jquery dependency to 4.0.0 --- package-lock.json | 14 ++++++++++---- package.json | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 095449f990..6841ad2a64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "chartjs-adapter-luxon": "^1.3.1", "datatables.net-dt": "^1.13.11", "esbuild": "^0.27.2", - "jquery": "^3.7.1", + "jquery": "^4.0.0", "js-cookie": "^3.0.5", "jstz": "^2.1.1", "lodash": "^4.17.21", @@ -5001,6 +5001,12 @@ "jquery": ">=3.4.0 <4.0.0" } }, + "node_modules/bootstrap-datepicker/node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "license": "MIT" + }, "node_modules/bootstrap-scss": { "version": "5.3.8", "resolved": "https://registry.npmjs.org/bootstrap-scss/-/bootstrap-scss-5.3.8.tgz", @@ -11001,9 +11007,9 @@ } }, "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-4.0.0.tgz", + "integrity": "sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg==", "license": "MIT" }, "node_modules/js-cookie": { diff --git a/package.json b/package.json index ca4b2a642c..0c77c6124d 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "chartjs-adapter-luxon": "^1.3.1", "datatables.net-dt": "^1.13.11", "esbuild": "^0.27.2", - "jquery": "^3.7.1", + "jquery": "^4.0.0", "js-cookie": "^3.0.5", "jstz": "^2.1.1", "lodash": "^4.17.21", From 49e8ad5a3f13e7d1620592592c25faff94bf2ea7 Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Tue, 3 Feb 2026 16:06:25 -0700 Subject: [PATCH 2/9] Remove unused bootstrap-select dependency This dependency is incompatible with JQuery 4.x. After searching for how it's used in the app, it looks like this dependency isn't being used and can be removed. --- app/javascript/application.js | 1 - package-lock.json | 11 ----------- package.json | 1 - 3 files changed, 13 deletions(-) diff --git a/app/javascript/application.js b/app/javascript/application.js index 9fff3fc64f..88f9aef317 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -2,7 +2,6 @@ import './jQueryGlobalizer.js' import '@hotwired/turbo-rails' import 'bootstrap' -import 'bootstrap-select' import './sweet-alert-confirm.js' import './controllers' import 'trix' diff --git a/package-lock.json b/package-lock.json index 6841ad2a64..f7953349c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,6 @@ "bootstrap": "5.3.6", "bootstrap-datepicker": "^1.10.1", "bootstrap-scss": "^5.3.8", - "bootstrap-select": "^1.13.18", "chart.js": "^4.5.1", "chartjs-adapter-luxon": "^1.3.1", "datatables.net-dt": "^1.13.11", @@ -5013,16 +5012,6 @@ "integrity": "sha512-lDjTMXl2lRwfhGJY3vmDXlWSk50gg7eW2+zzCQi9tsyeZgD6N5hcmMk3G28F7MvLniJKS9LZV+2YNCxiW8+WIw==", "license": "MIT" }, - "node_modules/bootstrap-select": { - "version": "1.13.18", - "resolved": "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.13.18.tgz", - "integrity": "sha512-V1IzK4rxBq5FrJtkzSH6RmFLFBsjx50byFbfAf8jYyXROWs7ZpprGjdHeoyq2HSsHyjJhMMwjsQhRoYAfxCGow==", - "license": "MIT", - "peerDependencies": { - "bootstrap": ">=3.0.0", - "jquery": "1.9.1 - 3" - } - }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", diff --git a/package.json b/package.json index 0c77c6124d..ac47ace73f 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "bootstrap": "5.3.6", "bootstrap-datepicker": "^1.10.1", "bootstrap-scss": "^5.3.8", - "bootstrap-select": "^1.13.18", "chart.js": "^4.5.1", "chartjs-adapter-luxon": "^1.3.1", "datatables.net-dt": "^1.13.11", From 28999eeda38e0a9606de9272cbe6e28a0ae37913 Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Tue, 3 Feb 2026 16:07:00 -0700 Subject: [PATCH 3/9] Remove console.log from test --- app/javascript/src/validated_form.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/javascript/src/validated_form.js b/app/javascript/src/validated_form.js index 41cf7526f3..51f19b2b36 100644 --- a/app/javascript/src/validated_form.js +++ b/app/javascript/src/validated_form.js @@ -253,7 +253,6 @@ $(() => { // JQuery's callback for the DOM loading if ($('#case_contact_miles_driven').length) { safeInstantiateComponent('non driving contact medium warning', () => { const contactMediumWithMilesDrivenWarning = new NonDrivingContactMediumWarning(validatedFormCollection.find('.contact-medium.form-group input:not([type=hidden]), #case_contact_miles_driven'), pageNotifier) - console.log(contactMediumWithMilesDrivenWarning) validatableFormSectionComponents.push(contactMediumWithMilesDrivenWarning) }) } From c463e14a2b081ca15f7ad532967a1801cae6b817 Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Wed, 4 Feb 2026 19:52:55 -0700 Subject: [PATCH 4/9] Remove JQuery globalizer With JQuery 4, we can use standard imports instead of this globalizer. --- app/javascript/application.js | 6 ++++-- app/javascript/datatable.js | 2 -- app/javascript/jQueryGlobalizer.js | 3 --- app/javascript/src/add_to_calendar_button.js | 2 -- app/javascript/src/all_casa_admin/tables.js | 2 -- app/javascript/src/casa_case.js | 1 - app/javascript/src/case_contact.js | 8 -------- app/javascript/src/case_emancipation.js | 1 - app/javascript/src/dashboard.js | 1 - app/javascript/src/emancipations.js | 2 -- app/javascript/src/import.js | 1 - app/javascript/src/notifier.js | 1 - app/javascript/src/password_confirmation.js | 1 - app/javascript/src/reimbursements.js | 2 -- app/javascript/src/select.js | 2 -- app/javascript/src/tooltip.js | 2 -- app/javascript/src/validated_form.js | 1 - 17 files changed, 4 insertions(+), 34 deletions(-) delete mode 100644 app/javascript/jQueryGlobalizer.js diff --git a/app/javascript/application.js b/app/javascript/application.js index 88f9aef317..c2dd8633fe 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -1,5 +1,3 @@ -/* global window */ -import './jQueryGlobalizer.js' import '@hotwired/turbo-rails' import 'bootstrap' import './sweet-alert-confirm.js' @@ -9,6 +7,10 @@ import '@rails/actiontext' import './datatable.js' Turbo.session.drive = false +import jquery from "jquery"; +window.jQuery = jquery; +window.$ = jquery; + require('datatables.net-dt')(null, window.jQuery) // First parameter is the global object. Defaults to window if null require('select2')(window.jQuery) require('@rails/ujs').start() diff --git a/app/javascript/datatable.js b/app/javascript/datatable.js index 439af46cd1..7af6758cd4 100644 --- a/app/javascript/datatable.js +++ b/app/javascript/datatable.js @@ -1,5 +1,3 @@ -/* global $ */ - export function initializeDataTable (selector) { if ($(selector).length > 0) { $(selector).DataTable({ searching: true, order: [[0, 'asc']] }) diff --git a/app/javascript/jQueryGlobalizer.js b/app/javascript/jQueryGlobalizer.js deleted file mode 100644 index 788c0f91f7..0000000000 --- a/app/javascript/jQueryGlobalizer.js +++ /dev/null @@ -1,3 +0,0 @@ -import jquery from 'jquery' -window.jQuery = jquery -window.$ = jquery diff --git a/app/javascript/src/add_to_calendar_button.js b/app/javascript/src/add_to_calendar_button.js index b252d41f64..6b48530059 100644 --- a/app/javascript/src/add_to_calendar_button.js +++ b/app/javascript/src/add_to_calendar_button.js @@ -1,5 +1,3 @@ -/* global $ */ - import 'add-to-calendar-button' function createCalendarEvents () { diff --git a/app/javascript/src/all_casa_admin/tables.js b/app/javascript/src/all_casa_admin/tables.js index 5054d519f0..de8ce4366c 100644 --- a/app/javascript/src/all_casa_admin/tables.js +++ b/app/javascript/src/all_casa_admin/tables.js @@ -1,5 +1,3 @@ -/* global $ */ - import { initializeDataTable } from '../../datatable' $(() => { diff --git a/app/javascript/src/casa_case.js b/app/javascript/src/casa_case.js index 3ada7c2ea1..366097fc61 100644 --- a/app/javascript/src/casa_case.js +++ b/app/javascript/src/casa_case.js @@ -2,7 +2,6 @@ /* global FormData */ /* global DOMParser */ /* global spinner */ -/* global $ */ import Swal from 'sweetalert2' diff --git a/app/javascript/src/case_contact.js b/app/javascript/src/case_contact.js index 77ee094d24..e3155fc3d0 100644 --- a/app/javascript/src/case_contact.js +++ b/app/javascript/src/case_contact.js @@ -1,6 +1,3 @@ -/* global window */ -/* global $ */ - import Swal from 'sweetalert2' function convertDateToSystemTimeZone (date) { return new Date((typeof date === 'string' ? new Date(date) : date)) @@ -48,11 +45,6 @@ $(document).on('turbo:load', function () { }) }) -$(() => { // JQuery's callback for the DOM loading - $('[data-toggle="tooltip"]').tooltip() - $('.followup-button').on('click', displayFollowupAlert) -}) - export { convertDateToSystemTimeZone } diff --git a/app/javascript/src/case_emancipation.js b/app/javascript/src/case_emancipation.js index f4868ed13a..ae6d013d1f 100644 --- a/app/javascript/src/case_emancipation.js +++ b/app/javascript/src/case_emancipation.js @@ -1,5 +1,4 @@ /* eslint-env jquery */ -/* global $ */ const { Notifier } = require('./notifier') const TypeChecker = require('./type_checker') diff --git a/app/javascript/src/dashboard.js b/app/javascript/src/dashboard.js index 56989d3493..f46e804c70 100644 --- a/app/javascript/src/dashboard.js +++ b/app/javascript/src/dashboard.js @@ -1,5 +1,4 @@ /* global alert */ -/* global $ */ const { Notifier } = require('./notifier') let pageNotifier diff --git a/app/javascript/src/emancipations.js b/app/javascript/src/emancipations.js index 10406bab44..2a16d36edd 100644 --- a/app/javascript/src/emancipations.js +++ b/app/javascript/src/emancipations.js @@ -1,5 +1,3 @@ -/* global $ */ - $(() => { // JQuery's callback for the DOM loading $('table#all-case-emancipations').DataTable({ autoWidth: false, diff --git a/app/javascript/src/import.js b/app/javascript/src/import.js index c5e9055a0a..c99b5b3ffe 100644 --- a/app/javascript/src/import.js +++ b/app/javascript/src/import.js @@ -4,7 +4,6 @@ /* global localStorage */ /* global File */ /* global DataTransfer */ -/* global $ */ function dataURItoBlob (dataURI) { // convert base64 to raw binary data held in a string diff --git a/app/javascript/src/notifier.js b/app/javascript/src/notifier.js index 3f65ebacf7..a5344d5ca3 100644 --- a/app/javascript/src/notifier.js +++ b/app/javascript/src/notifier.js @@ -1,4 +1,3 @@ -/* global $ */ import { escape } from 'lodash' const TypeChecker = require('./type_checker.js') diff --git a/app/javascript/src/password_confirmation.js b/app/javascript/src/password_confirmation.js index 58f12caf87..ec44c1b8bb 100644 --- a/app/javascript/src/password_confirmation.js +++ b/app/javascript/src/password_confirmation.js @@ -1,5 +1,4 @@ /* eslint-env jquery */ -/* global $ */ import Swal from 'sweetalert2' import { disableBtn, enableBtn } from './casa_case' diff --git a/app/javascript/src/reimbursements.js b/app/javascript/src/reimbursements.js index a170ff9fcf..60008d41f7 100644 --- a/app/javascript/src/reimbursements.js +++ b/app/javascript/src/reimbursements.js @@ -1,5 +1,3 @@ -/* global $ */ - $(() => { // JQuery's callback for the DOM loading const { groupBy, map, mapValues } = require('lodash') diff --git a/app/javascript/src/select.js b/app/javascript/src/select.js index 03ee914fc3..4717be2666 100644 --- a/app/javascript/src/select.js +++ b/app/javascript/src/select.js @@ -1,5 +1,3 @@ -/* global $ */ - $(() => { // JQuery's callback for the DOM loading $('.select2').select2( { diff --git a/app/javascript/src/tooltip.js b/app/javascript/src/tooltip.js index 4cdc13035d..d1dc6e75b8 100644 --- a/app/javascript/src/tooltip.js +++ b/app/javascript/src/tooltip.js @@ -1,5 +1,3 @@ -/* global $ */ - $(() => { // JQuery's callback for the DOM loading $('[data-toggle="tooltip"]').tooltip() }) diff --git a/app/javascript/src/validated_form.js b/app/javascript/src/validated_form.js index 51f19b2b36..9a6d6926e0 100644 --- a/app/javascript/src/validated_form.js +++ b/app/javascript/src/validated_form.js @@ -1,4 +1,3 @@ -/* global $ */ const { Notifier } = require('./notifier') const TypeChecker = require('./type_checker') From bd2b90b29048817c97b149f3907659b42e1025e7 Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Wed, 4 Feb 2026 19:53:50 -0700 Subject: [PATCH 5/9] Remove tooltip require This seems to not be necessary anymore but I need to test it. I tried importing it with require and import but it returns a `$ is not defined`. --- app/javascript/application.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/javascript/application.js b/app/javascript/application.js index c2dd8633fe..8fdb6311e0 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -30,7 +30,6 @@ require('./src/reimbursements') require('./src/reports') require('./src/require_communication_preference') require('./src/select') -require('./src/tooltip') require('./src/time_zone') require('./src/session_timeout_poller.js') require('./src/display_app_metric.js') From 764579de02c50918e45ed6159393dccc9b5e4b6b Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Wed, 4 Feb 2026 20:09:12 -0700 Subject: [PATCH 6/9] linter --- app/javascript/application.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/javascript/application.js b/app/javascript/application.js index 8fdb6311e0..b469324944 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -5,12 +5,13 @@ import './controllers' import 'trix' import '@rails/actiontext' import './datatable.js' -Turbo.session.drive = false -import jquery from "jquery"; +import jquery from 'jquery' window.jQuery = jquery; window.$ = jquery; +Turbo.session.drive = false + require('datatables.net-dt')(null, window.jQuery) // First parameter is the global object. Defaults to window if null require('select2')(window.jQuery) require('@rails/ujs').start() From ea0760923824ccef6977ddbb30081279ccd542d5 Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Thu, 5 Feb 2026 12:37:25 -0700 Subject: [PATCH 7/9] does it pass in CI? --- app/javascript/application.js | 74 +++++++++++++++--------------- app/javascript/jquery.js | 7 +++ app/javascript/src/case_contact.js | 64 +++++++++++++------------- 3 files changed, 76 insertions(+), 69 deletions(-) create mode 100644 app/javascript/jquery.js diff --git a/app/javascript/application.js b/app/javascript/application.js index b469324944..4f4410fb6e 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -1,40 +1,38 @@ -import '@hotwired/turbo-rails' -import 'bootstrap' -import './sweet-alert-confirm.js' -import './controllers' -import 'trix' -import '@rails/actiontext' -import './datatable.js' +import "@hotwired/turbo-rails"; +import "./jquery"; +require("./src/tooltip"); +import "bootstrap"; +import "./sweet-alert-confirm.js"; +import "./controllers"; +import "trix"; +import "@rails/actiontext"; +import "./datatable.js"; -import jquery from 'jquery' -window.jQuery = jquery; -window.$ = jquery; +Turbo.session.drive = false; -Turbo.session.drive = false - -require('datatables.net-dt')(null, window.jQuery) // First parameter is the global object. Defaults to window if null -require('select2')(window.jQuery) -require('@rails/ujs').start() -require('@rails/activestorage').start() -require('bootstrap-datepicker') -require('./src/add_to_calendar_button') -require('./src/case_contact') -require('./src/case_emancipation') -require('./src/casa_case') -require('./src/new_casa_case') -require('./src/dashboard') -require('./src/emancipations') -require('./src/import') -require('./src/password_confirmation') -require('./src/read_more') -require('./src/reimbursements') -require('./src/reports') -require('./src/require_communication_preference') -require('./src/select') -require('./src/time_zone') -require('./src/session_timeout_poller.js') -require('./src/display_app_metric.js') -require('./src/casa_org') -require('./src/sms_reactivation_toggle') -require('./src/validated_form') -require('./src/learning_hours') +require("datatables.net-dt")(null, window.jQuery); // First parameter is the global object. Defaults to window if null +require("select2")(window.jQuery); +require("@rails/ujs").start(); +require("@rails/activestorage").start(); +require("bootstrap-datepicker"); +require("./src/add_to_calendar_button"); +require("./src/case_contact"); +require("./src/case_emancipation"); +require("./src/casa_case"); +require("./src/new_casa_case"); +require("./src/dashboard") +require("./src/emancipations"); +require("./src/import"); +require("./src/password_confirmation"); +require("./src/read_more"); +require("./src/reimbursements"); +require("./src/reports"); +require("./src/require_communication_preference"); +require("./src/select"); +require("./src/time_zone"); +require("./src/session_timeout_poller.js"); +require("./src/display_app_metric.js"); +require("./src/casa_org"); +require("./src/sms_reactivation_toggle"); +require("./src/validated_form"); +require("./src/learning_hours"); diff --git a/app/javascript/jquery.js b/app/javascript/jquery.js new file mode 100644 index 0000000000..dbcd38bfb1 --- /dev/null +++ b/app/javascript/jquery.js @@ -0,0 +1,7 @@ +import jquery from "jquery"; +window.jQuery = jquery; +window.$ = jquery; + +$(function () { + console.log("Hey!"); +}); diff --git a/app/javascript/src/case_contact.js b/app/javascript/src/case_contact.js index e3155fc3d0..7368aa6b06 100644 --- a/app/javascript/src/case_contact.js +++ b/app/javascript/src/case_contact.js @@ -1,50 +1,52 @@ -import Swal from 'sweetalert2' -function convertDateToSystemTimeZone (date) { - return new Date((typeof date === 'string' ? new Date(date) : date)) +import Swal from "sweetalert2"; +import 'select2' + +function convertDateToSystemTimeZone(date) { + return new Date(typeof date === "string" ? new Date(date) : date); } -async function displayFollowupAlert () { - const { value: text, isConfirmed } = await fireSwalFollowupAlert() +async function displayFollowupAlert() { + const { value: text, isConfirmed } = await fireSwalFollowupAlert(); - if (!isConfirmed) return + if (!isConfirmed) return; - const params = text ? { note: text } : {} - const caseContactId = this.id.replace('followup-button-', '') + const params = text ? { note: text } : {}; + const caseContactId = this.id.replace("followup-button-", ""); - $.post( - `/case_contacts/${caseContactId}/followups`, - params, - () => window.location.reload() - ) + $.post(`/case_contacts/${caseContactId}/followups`, params, () => window.location.reload()); } -async function fireSwalFollowupAlert () { - const inputLabel = 'Optional: Add a note about what followup is needed.' +async function fireSwalFollowupAlert() { + const inputLabel = "Optional: Add a note about what followup is needed."; return await Swal.fire({ - input: 'textarea', + input: "textarea", title: inputLabel, - inputPlaceholder: 'Type your note here...', - inputAttributes: { 'aria-label': 'Type your note here' }, + inputPlaceholder: "Type your note here...", + inputAttributes: { "aria-label": "Type your note here" }, showCancelButton: true, showCloseButton: true, - confirmButtonText: 'Confirm', - confirmButtonColor: '#dc3545', + confirmButtonText: "Confirm", + confirmButtonColor: "#dc3545", customClass: { - inputLabel: 'mx-5' - } - }) + inputLabel: "mx-5", + }, + }); } -$(document).on('turbo:load', function () { - $('.filter-form').on('change', '.filter-input', function () { - $(this).closest('form').submit() - }) -}) +$(document).on("turbo:load", function () { + $(".filter-form").on("change", ".filter-input", function () { + $(this).closest("form").submit(); + }); +}); -export { - convertDateToSystemTimeZone -} +$(() => { + // JQuery's callback for the DOM loading + $('[data-toggle="tooltip"]').tooltip(); + $(".followup-button").on("click", displayFollowupAlert); +}); + +export { convertDateToSystemTimeZone }; From a72ec7f734ef94271ef882c63c6b772c67f2c82d Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Thu, 5 Feb 2026 13:21:03 -0700 Subject: [PATCH 8/9] only tests fail but app works --- app/javascript/application.js | 3 --- app/javascript/src/casa_case.js | 23 ----------------------- app/javascript/src/case_contact.js | 1 - app/javascript/src/select.js | 9 --------- 4 files changed, 36 deletions(-) delete mode 100644 app/javascript/src/select.js diff --git a/app/javascript/application.js b/app/javascript/application.js index 4f4410fb6e..cfdefd8c8d 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -1,6 +1,5 @@ import "@hotwired/turbo-rails"; import "./jquery"; -require("./src/tooltip"); import "bootstrap"; import "./sweet-alert-confirm.js"; import "./controllers"; @@ -11,7 +10,6 @@ import "./datatable.js"; Turbo.session.drive = false; require("datatables.net-dt")(null, window.jQuery); // First parameter is the global object. Defaults to window if null -require("select2")(window.jQuery); require("@rails/ujs").start(); require("@rails/activestorage").start(); require("bootstrap-datepicker"); @@ -28,7 +26,6 @@ require("./src/read_more"); require("./src/reimbursements"); require("./src/reports"); require("./src/require_communication_preference"); -require("./src/select"); require("./src/time_zone"); require("./src/session_timeout_poller.js"); require("./src/display_app_metric.js"); diff --git a/app/javascript/src/casa_case.js b/app/javascript/src/casa_case.js index 366097fc61..bd06aa9018 100644 --- a/app/javascript/src/casa_case.js +++ b/app/javascript/src/casa_case.js @@ -148,23 +148,6 @@ function clearSelectErrors () { errorEl.classList.add('d-none') } -function handleModalClose () { - const selectEl = document.querySelector('#case-selection') - - if (!selectEl) return - - clearSelectErrors() - // this line taken from docs https://select2.org/programmatic-control/add-select-clear-items - $('#case-selection').val(null).trigger('change') -} - -// re-initialized for setting modal as dropdownParent -function handleDropdownSelection () { - if ($('#case-selection').hasClass('select2')) { - $('#case-selection').select2() - } -} - $(() => { // JQuery's callback for the DOM loading $('button.copy-court-button').on('click', copyOrdersFromCaseWithConfirmation) @@ -181,12 +164,6 @@ $(() => { // JQuery's callback for the DOM loading disableBtn($('button.copy-court-button')[0]) } }) - // modal id is defined in _generate_docx.html.erb so would like to be able to implement modal close logic in that file - // but not sure how to - $('#generate-docx-report-modal').on('hidden.bs.modal', () => handleModalClose()) - - $('#generate-docx-report-modal').on('shown.bs.modal', () => handleDropdownSelection()) - $('#btnGenerateReport').on('click', handleGenerateReport) if (/\/casa_cases\/.*\?.*success=true/.test(window.location.href)) { diff --git a/app/javascript/src/case_contact.js b/app/javascript/src/case_contact.js index 7368aa6b06..83023b5108 100644 --- a/app/javascript/src/case_contact.js +++ b/app/javascript/src/case_contact.js @@ -1,5 +1,4 @@ import Swal from "sweetalert2"; -import 'select2' function convertDateToSystemTimeZone(date) { return new Date(typeof date === "string" ? new Date(date) : date); diff --git a/app/javascript/src/select.js b/app/javascript/src/select.js deleted file mode 100644 index 4717be2666..0000000000 --- a/app/javascript/src/select.js +++ /dev/null @@ -1,9 +0,0 @@ -$(() => { // JQuery's callback for the DOM loading - $('.select2').select2( - { - theme: 'bootstrap-5', - width: $(this).data('width') ? $(this).data('width') : $(this).hasClass('w-100') ? '100%' : 'style', - placeholder: $(this).data('placeholder') - } - ) -}) From b02467275b505923589d53557f67bb2a8055251e Mon Sep 17 00:00:00 2001 From: Stefanni Brasil Date: Thu, 5 Feb 2026 13:30:43 -0700 Subject: [PATCH 9/9] whaat --- app/javascript/application.js | 9 ++++++--- app/javascript/src/select.js | 12 ++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 app/javascript/src/select.js diff --git a/app/javascript/application.js b/app/javascript/application.js index cfdefd8c8d..a27b35c18a 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -1,15 +1,16 @@ +import "./jquery.js"; import "@hotwired/turbo-rails"; -import "./jquery"; import "bootstrap"; +import "bootstrap-select"; import "./sweet-alert-confirm.js"; import "./controllers"; import "trix"; import "@rails/actiontext"; import "./datatable.js"; - Turbo.session.drive = false; require("datatables.net-dt")(null, window.jQuery); // First parameter is the global object. Defaults to window if null +require("select2")(window.jQuery); require("@rails/ujs").start(); require("@rails/activestorage").start(); require("bootstrap-datepicker"); @@ -18,7 +19,7 @@ require("./src/case_contact"); require("./src/case_emancipation"); require("./src/casa_case"); require("./src/new_casa_case"); -require("./src/dashboard") +require("./src/dashboard"); require("./src/emancipations"); require("./src/import"); require("./src/password_confirmation"); @@ -26,6 +27,8 @@ require("./src/read_more"); require("./src/reimbursements"); require("./src/reports"); require("./src/require_communication_preference"); +require("./src/select"); +require("./src/tooltip"); require("./src/time_zone"); require("./src/session_timeout_poller.js"); require("./src/display_app_metric.js"); diff --git a/app/javascript/src/select.js b/app/javascript/src/select.js new file mode 100644 index 0000000000..1d111d6abb --- /dev/null +++ b/app/javascript/src/select.js @@ -0,0 +1,12 @@ +$(() => { + // JQuery's callback for the DOM loading + $(".select2").select2({ + theme: "bootstrap-5", + width: $(this).data("width") + ? $(this).data("width") + : $(this).hasClass("w-100") + ? "100%" + : "style", + placeholder: $(this).data("placeholder"), + }); +});