From d72edba966ba2b55697685f3711dbfcb38d9fbc8 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Wed, 5 Feb 2025 22:48:19 +0100 Subject: fix edit node behaviour --- public/javascripts/admin_search.js | 123 +++++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 54 deletions(-) diff --git a/public/javascripts/admin_search.js b/public/javascripts/admin_search.js index 6d3ca93..98571de 100644 --- a/public/javascripts/admin_search.js +++ b/public/javascripts/admin_search.js @@ -1,12 +1,12 @@ admin_search = { - + initialize : function() { $(document).bind("keydown", 'Alt+f', function(){ admin_search.display_toggle(); return false; }); }, - + display_toggle : function() { if ($('#search_widget').css("display") != "none") { $('#search_widget').fadeOut(); @@ -16,7 +16,7 @@ admin_search = { $('#search_term').attr("value", ""); $('#search_term').focus(); } - + $("#search_term").bind("keyup", function() { if ($(this).attr("value")) { $.ajax({ @@ -31,11 +31,11 @@ admin_search = { } else { $('#search_results').slideUp(); - $('#search_results').empty(); + $('#search_results').empty(); } }); }, - + show_results : function(results) { $('#search_results').empty(); for (result in results) { @@ -46,7 +46,7 @@ admin_search = { }; menu_items = { - + initialize_search : function() { $("#menu_search_term").bind("keyup", function() { if ($(this).attr("value")) { @@ -62,28 +62,28 @@ menu_items = { } else { $('#search_results').slideUp(); - $('#search_results').empty(); + $('#search_results').empty(); } }); }, - + show_results : function(results) { $("#search_results").empty(); for (result in results) { var link = $((""+ results[result].title + "")); $(link).bind("click", menu_items.link_closure(results[result])); - - + + // Sometimes I don't get jquery; wrap() didn't work *sigh* // Guess I'll need a book someday or another framework var wrapper = $("
"); $(wrapper).append(link) - + $("#search_results").append(wrapper); - + } }, - + link_closure : function(node) { var barf = function(){ $("#menu_item_node_id").val(node.node_id); @@ -91,7 +91,7 @@ menu_items = { $("#menu_item_title").val(node.title); return false; } - + return barf; } }; @@ -99,7 +99,7 @@ menu_items = { parent_search = { initialize_search : function() { parent_search.initialize_radio_buttons(); - + $("#parent_search_term").bind("keyup", function() { if ($(this).attr("value")) { $.ajax({ @@ -114,28 +114,31 @@ parent_search = { } else { $('#search_results').slideUp(); - $('#search_results').empty(); + $('#search_results').empty(); } }); }, - + show_results : function(results) { $("#search_results").empty(); + var found = false; for (result in results) { var link = $((""+ results[result].title + "")); $(link).bind("click", parent_search.link_closure(results[result])); - - + + // Sometimes I don't get jquery; wrap() didn't work *sigh* // Guess I'll need a book someday or another framework var wrapper = $("
"); - $(wrapper).append(link) - + $(wrapper).append(link); + $("#search_results").append(wrapper); - + found = true; } + if (found) + $('#search_results').slideDown(); }, - + link_closure : function(node) { var barf = function(){ $("#parent_search_term").attr("value", node.title); @@ -144,64 +147,76 @@ parent_search = { $('#search_results').empty(); return false; } - + return barf; }, - + initialize_radio_buttons : function() { $("#kind_top_level").bind("change", function(){ $("#parent_search_field").hide(); }); - + $("#kind_update").bind("change", function(){ $("#parent_search_field").hide(); }); - + $("#kind_generic").bind("change", function(){ $("#parent_search_field").show(); }); - + } } move_to_search = { - initialize_search : function() { - $("#move_to_search_term").bind("keyup", function() { - if ($(this).attr("value")) { - $.ajax({ - type: "GET", - url: "/admin/menu_search", - data: "search_term=" + $(this).attr("value"), - dataType: "json", - success : function(results) { - move_to_search.show_results(results); - } - }); - } - else { - $('#search_results').slideUp(); - $('#search_results').empty(); - } - }); + initialize_search : function() { + $("#move_to_search_term").bind("keyup", function() { move_to_search.do_search($(this))}); + $("#move_to_search_term").bind("keydown", function() { move_to_search.do_search($(this))}); + $("#move_to_search_term").bind("keypress", function() { move_to_search.do_search($(this))}); + $("#move_to_search_term").bind("paste", function() { move_to_search.do_search($(this))}); + $("#move_to_search_term").bind("cut", function() { move_to_search.do_search($(this))}); }, - + + do_search : function(_this) { + if (_this.attr("value")) { + $.ajax({ + type: "GET", + url: "/admin/menu_search", + data: "search_term=" + _this.attr("value"), + dataType: "json", + success : function(results) { + move_to_search.show_results(results); + } + }); + } + else { + $('#search_results').slideUp(); + $('#search_results').empty(); + } + }, + show_results : function(results) { $("#search_results").empty(); + var found = false; for (result in results) { var link = $((""+ results[result].title + "")); $(link).bind("click", move_to_search.link_closure(results[result])); - - + + // Sometimes I don't get jquery; wrap() didn't work *sigh* // Guess I'll need a book someday or another framework var wrapper = $("
"); $(wrapper).append(link) - + $("#search_results").append(wrapper); - + found = true; } + if (found) + $('#search_results').slideDown(); + else + $('#search_results').slideUp(); + }, - + link_closure : function(node) { var barf = function(){ $("#move_to_search_term").attr("value", node.title); @@ -210,7 +225,7 @@ move_to_search = { $('#search_results').empty(); return false; } - + return barf; } -} \ No newline at end of file +} -- cgit v1.3