From dba24389370e4bc075908f7ef53926fb0da7d07d Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Wed, 18 Jun 2025 09:59:07 -0500 Subject: [PATCH] Refactor brand management UI; replace datalist with combo box widget and enhance styling for better usability --- static/css/widget.css | 20 ++++++++ static/js/datalist.js | 20 -------- templates/layout.html | 17 +------ templates/settings.html | 108 ++++++++++++++++++++++------------------ 4 files changed, 82 insertions(+), 83 deletions(-) create mode 100644 static/css/widget.css delete mode 100644 static/js/datalist.js diff --git a/static/css/widget.css b/static/css/widget.css new file mode 100644 index 0000000..237a70d --- /dev/null +++ b/static/css/widget.css @@ -0,0 +1,20 @@ +.combo-box-widget .form-control:focus, +.combo-box-widget .form-select:focus, +.combo-box-widget .btn:focus { + box-shadow: none !important; + outline: none !important; + border-color: #ced4da !important; /* Bootstrap’s default neutral border */ + background-color: inherit; /* Or explicitly #fff if needed */ + color: inherit; +} + +.combo-box-widget .btn-primary:focus, +.combo-box-widget .btn-danger:focus { + background-color: inherit; /* Keep button from darkening */ + color: inherit; +} + +.combo-box-widget:focus-within { + box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.25); + border-radius: 0.375rem; +} diff --git a/static/js/datalist.js b/static/js/datalist.js deleted file mode 100644 index d17a9fc..0000000 --- a/static/js/datalist.js +++ /dev/null @@ -1,20 +0,0 @@ -document.querySelectorAll('[data-datalist-bind]').forEach(input => { - const datalistSelector = input.dataset.datalistBind; - const hiddenSelector = input.dataset.hiddenTarget; - const datalist = document.querySelector(datalistSelector); - const hidden = document.querySelector(hiddenSelector); - - if (!datalist || !hidden) return; - - input.addEventListener('input', function () { - const value = this.value; - const options = datalist.querySelectorAll('option'); - let foundId = ''; - options.forEach(option => { - if (option.value === value) { - foundId = option.dataset.id || ''; - } - }); - hidden.value = foundId; - }); -}); diff --git a/templates/layout.html b/templates/layout.html index c6fb91d..fa3f463 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -17,22 +17,10 @@ href="https://cdn.datatables.net/v/bs5/jq-3.7.0/moment-2.29.4/dt-2.3.2/b-3.2.3/b-colvis-3.2.3/b-print-3.2.3/cr-2.1.1/cc-1.0.4/r-3.0.4/rg-1.5.1/rr-1.5.0/sc-2.4.3/sr-1.4.1/datatables.min.css" rel="stylesheet" integrity="sha384-gdnBcErvPbrURVoR9w3NhVMliw+ZmcTCmq+64xj2Ksx21nRJFX3qW0zFvBotL5rm" crossorigin="anonymous"> + @@ -74,7 +62,6 @@ src="https://cdn.datatables.net/v/bs5/jq-3.7.0/moment-2.29.4/dt-2.3.2/b-3.2.3/b-colvis-3.2.3/b-print-3.2.3/cr-2.1.1/cc-1.0.4/r-3.0.4/rg-1.5.1/rr-1.5.0/sc-2.4.3/sr-1.4.1/datatables.min.js" integrity="sha384-tNYRX2RiDDDRKCJgPF8Pw3rTxC1GUe1pt5qH1SBmwcazrEUj7Ii4C1Tz9wCCRUI4" crossorigin="anonymous"> -