From cf528618e2da29df23876ef2c95ed8c665a13bb3 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 01:45:26 +0000 Subject: Refactor: Remove jQuery dependency and use vanilla JavaScript. This commit removes jQuery and the jQuery.tmpl plugin from the frontend, refactoring all JavaScript code in static/ui.js and relevant HTML files to use vanilla JavaScript APIs. Key changes include: - Replaced jQuery selectors ($) with document.querySelector/querySelectorAll. - Replaced jQuery DOM manipulation methods with native equivalents (classList, style, appendChild, etc.). - Replaced jQuery event handling (ready, on, keydown) with addEventListener. - Replaced $.getJSON with the fetch API. - Replaced $.each with Array.prototype.forEach. - Implemented a custom vanilla JS templating function (`renderTemplate`) to replace jquery.tmpl.js functionality, including support for variable interpolation, conditionals (if/else), and raw HTML rendering. - Updated Backbone.js views to handle their own DOM interactions and event delegation using vanilla JS, removing the `events` hash and using manual event listener attachment in `render` or `attachEvents` methods. - Removed script tags for jquery and jquery.tmpl from HTML files. - Replaced inline jQuery calls in HTML onclick attributes with vanilla JS. - Added a minimal Backbone.$ shim to static/ui.js to address an `instanceof` TypeError in Backbone's _setElement method when jQuery is not present. This ensures Backbone's internal DOM handling and type checks can function correctly. --- static/ui.html | 4 ++-- static/ui.js | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) (limited to 'static') diff --git a/static/ui.html b/static/ui.html index 5701d47..93ab09d 100644 --- a/static/ui.html +++ b/static/ui.html @@ -18,11 +18,11 @@