From a8cf725312d245d8d1f1df0fff22718975ce249e Mon Sep 17 00:00:00 2001 From: erdgeist Date: Thu, 20 Aug 2026 12:50:30 +0200 Subject: Add redirect ui in in nodes#edit and apply some minor cleanup Also give search inputs a magnifier and a clear control: input_group wraps a field with an icon and, where clearing is meaningful, a button that empties it and any hidden companion named by data-clears. Clean up some inconistency between field hints presented as p and as span. Remove stray console.log. --- public/javascripts/admin_interface.js | 27 ++++++++++++++++++++++++++- public/javascripts/admin_search.js | 14 ++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) (limited to 'public/javascripts') diff --git a/public/javascripts/admin_interface.js b/public/javascripts/admin_interface.js index 994d3698..ffebb694 100644 --- a/public/javascripts/admin_interface.js +++ b/public/javascripts/admin_interface.js @@ -63,7 +63,6 @@ $(document).ready(function () { search_toggle.addEventListener('click', function (e) { admin_search.display_toggle(); e.preventDefault(); - console.log("Toggle"); }); } @@ -124,6 +123,32 @@ $(document).ready(function () { }); } + document.querySelectorAll('.field_clear').forEach(function (btn) { + btn.addEventListener('click', function () { + var wrap = btn.closest('.input_group'); + wrap.querySelector('input[type=text]').value = ''; + var hidden = wrap.dataset.clears; + if (hidden) { document.getElementById(hidden).value = ''; } + }); + }); + + if (document.getElementById('redirect_search_term')) { + redirect_search.initialize_search(); + + var mode = document.getElementById('page_redirect'); + var field = document.getElementById('redirect_target_field'); + mode.addEventListener('change', function () { + field.style.display = mode.checked ? '' : 'none'; + }); + + var term = document.getElementById('redirect_search_term'); + term.addEventListener('input', function () { + if (term.value === '') { + document.getElementById('page_redirect_node_id').value = ''; + } + }); + } + var metadata_details = document.getElementById('metadata_details'); if (metadata_details) { var desktop_mq = window.matchMedia('(min-width: 1016px)'); diff --git a/public/javascripts/admin_search.js b/public/javascripts/admin_search.js index e20e511a..746cecc1 100644 --- a/public/javascripts/admin_search.js +++ b/public/javascripts/admin_search.js @@ -263,6 +263,20 @@ move_to_search = { } }; +redirect_search = { + initialize_search : function() { + initSearchPicker({ + inputSelector: "#redirect_search_term", + resultsSelector: "#redirect_search_results", + showRestricted: true, + onSelect: function(node) { + $("#redirect_search_term").val(node.title); + $("#page_redirect_node_id").val(node.node_id); + } + }); + } +}; + restore_search = { initialize_search : function() { initSearchPicker({ -- cgit v1.3