From c374a3fecab6e98544acc53e4bdaf034caf20caf Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 25 Aug 2005 14:27:12 +0100 Subject: [PATCH] improved search interface --- backend.php | 9 +++++---- tt-rss.js | 53 +++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/backend.php b/backend.php index ac7e9b51..d29cc280 100644 --- a/backend.php +++ b/backend.php @@ -245,14 +245,15 @@ $feed_last_updated = "Updated: " . $line["last_updated"]; print " - Search: - Reset + Search: + Reset "; print " " . $line["title"] . ""; - if ($subop == "search") { - $search = $_GET["search"]; + $search = $_GET["search"]; + + if (search) { $search_query_part = "(upper(title) LIKE upper('%$search%') OR content LIKE '%$search%') AND"; } diff --git a/tt-rss.js b/tt-rss.js index 1b92bac1..58acf1d3 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -19,6 +19,8 @@ var total_feed_entries = false; var _viewfeed_autoselect_first = false; var _viewfeed_autoselect_last = false; +var search_query = ""; + /*@cc_on @*/ /*@if (@_jscript_version >= 5) // JScript gives us Conditional compilation, we can cope with old IE versions. @@ -103,6 +105,10 @@ function viewfeed_callback() { } + var searchbox = document.getElementById("searchbox"); + + searchbox.value = search_query; + notify(""); } @@ -238,8 +244,18 @@ function catchupAllFeeds() { function viewfeed(feed, skip, subop) { -// document.getElementById('headlines').innerHTML='Loading headlines, please wait...'; -// document.getElementById('content').innerHTML=' '; + var searchbox = document.getElementById("searchbox"); + + if (searchbox) { + search_query = searchbox.value; + } else { + search_query = ""; + } + +/* if (active_feed_id == feed && subop != "ForceUpdate") { + notify("This feed is currently selected."); + return; + } */ if (skip < 0 || skip > total_feed_entries) { return; @@ -254,8 +270,14 @@ function viewfeed(feed, skip, subop) { active_post_id = false; active_offset = skip; - xmlhttp.open("GET", "backend.php?op=viewfeed&feed=" + param_escape(feed) + - "&skip=" + param_escape(skip) + "&subop=" + param_escape(subop) , true); + var query = "backend.php?op=viewfeed&feed=" + param_escape(feed) + + "&skip=" + param_escape(skip) + "&subop=" + param_escape(subop); + + if (search_query != "") { + query = query + "&search=" + param_escape(search_query); + } + + xmlhttp.open("GET", query, true); xmlhttp.onreadystatechange=viewfeed_callback; xmlhttp.send(null); @@ -326,22 +348,29 @@ function timeout() { } -function search(feed, sender) { +function resetSearch() { + document.getElementById("searchbox").value = ""; + viewfeed(active_feed_id, 0, ""); +} - if (xmlhttp.readyState != 4 && xmlhttp.readyState != 0) { - printLockingError(); - return - } +function search(feed) { + +// if (xmlhttp.readyState != 4 && xmlhttp.readyState != 0) { +// printLockingError(); +// return +// } - notify("Search: " + feed + ", " + sender.value) +// notify("Search: " + feed + ", " + sender.value) - document.getElementById('headlines').innerHTML='Loading headlines, please wait...'; +/* document.getElementById('headlines').innerHTML='Loading headlines, please wait...'; document.getElementById('content').innerHTML=' '; xmlhttp.open("GET", "backend.php?op=viewfeed&feed=" + param_escape(feed) + "&search=" + param_escape(sender.value) + "&subop=search", true); xmlhttp.onreadystatechange=viewfeed_callback; - xmlhttp.send(null); + xmlhttp.send(null); */ + + viewfeed(feed, 0, ""); } -- 2.39.5