summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2006-08-01 05:13:48 +0100
committerAndrew Dolgov <[email protected]>2006-08-01 05:13:48 +0100
commit0a6c4846cd819d8d0f50e184a45569e70e22ec4d (patch)
tree977ccfa438d2704ce351f1a4075632b322c8ea8f
parent59e2aab4687694d6e64d56e8751a1d1eff3fd609 (diff)
category search fixes, search dialog now searches in category view
-rw-r--r--backend.php24
-rw-r--r--feedlist.js4
-rw-r--r--functions.js4
-rw-r--r--functions.php33
-rw-r--r--tt-rss.js3
5 files changed, 54 insertions, 14 deletions
diff --git a/backend.php b/backend.php
index bd53354f2..6f4c932fb 100644
--- a/backend.php
+++ b/backend.php
@@ -2537,7 +2537,12 @@
print "<form id='search_form'>";
- $active_feed_id = db_escape_string($_GET["param"]);
+ #$active_feed_id = db_escape_string($_GET["param"]);
+
+ $params = split(":", db_escape_string($_GET["param"]));
+
+ $active_feed_id = $params[0];
+ $is_cat = $params[1] == "true";
print "<table width='100%'><tr><td>Search:</td><td>";
@@ -2553,16 +2558,25 @@
<option value=\"all_feeds\">All feeds</option>";
$feed_title = getFeedTitle($link, $active_feed_id);
- $feed_cat_title = getFeedCatTitle($link, $active_feed_id);
+
+ if (!$is_cat) {
+ $feed_cat_title = getFeedCatTitle($link, $active_feed_id);
+ } else {
+ $feed_cat_title = getCategoryTitle($link, $active_feed_id);
+ }
- if ($active_feed_id) {
+ if ($active_feed_id && !$is_cat) {
print "<option selected value=\"this_feed\">This feed ($feed_title)</option>";
} else {
print "<option disabled>This feed</option>";
}
- if (get_pref($link, 'ENABLE_FEED_CATS') && $active_feed_id && $active_feed_id > 0) {
- print "<option value=\"this_cat\">This category ($feed_cat_title)</option>";
+ if ($is_cat) {
+ $cat_preselected = "selected";
+ }
+
+ if (get_pref($link, 'ENABLE_FEED_CATS') && $active_feed_id >= 0) {
+ print "<option $cat_preselected value=\"this_cat\">This category ($feed_cat_title)</option>";
} else {
print "<option disabled>This category</option>";
}
diff --git a/feedlist.js b/feedlist.js
index 97d74ba2b..dd00c4da9 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -12,7 +12,7 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) {
if (!doc) doc = parent.document;
enableHotkeys();
-
+
var toolbar_query = parent.Form.serialize("main_toolbar_form");
var toolbar_form = parent.document.forms["main_toolbar_form"];
@@ -55,6 +55,8 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) {
setActiveFeedId(feed);
+ getMainContext().active_feed_is_cat = is_cat;
+
if (subop == "MarkAllRead") {
var feedr = document.getElementById("FEEDR-" + feed);
diff --git a/functions.js b/functions.js
index 853f36e19..64fac6135 100644
--- a/functions.js
+++ b/functions.js
@@ -462,6 +462,10 @@ function getActiveFeedId() {
}
}
+function activeFeedIsCat() {
+ return getMainContext().active_feed_is_cat;
+}
+
function setActiveFeedId(id) {
// return setCookie("ttrss_vf_actfeed", id);
try {
diff --git a/functions.php b/functions.php
index a58613ccb..65b374e1b 100644
--- a/functions.php
+++ b/functions.php
@@ -1972,7 +1972,7 @@
OR UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))");
}
- $search_query_part = implode("AND", $query_keywords) . "AND";
+ $search_query_part = implode("AND", $query_keywords) . " AND ";
} else if ($match_on == "title") {
@@ -1980,7 +1980,7 @@
array_push($query_keywords, "(UPPER(ttrss_entries.title) LIKE UPPER('%$k%'))");
}
- $search_query_part = implode("AND", $query_keywords) . "AND";
+ $search_query_part = implode("AND", $query_keywords) . " AND ";
} else if ($match_on == "content") {
@@ -1988,7 +1988,7 @@
array_push($query_keywords, "(UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))");
}
- $search_query_part = implode("AND", $query_keywords) . "AND";
+ $search_query_part = implode("AND", $query_keywords) . " AND ";
}
} else {
$search_query_part = "";
@@ -2032,10 +2032,17 @@
} else if ($feed >= 0 && $search && $search_mode == "this_cat") {
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
-
- $tmp_result = db_query($link, "SELECT id
- FROM ttrss_feeds WHERE cat_id =
- (SELECT cat_id FROM ttrss_feeds WHERE id = '$feed') AND id != '$feed'");
+
+ $tmp_result = false;
+
+ if ($cat_view) {
+ $tmp_result = db_query($link, "SELECT id
+ FROM ttrss_feeds WHERE cat_id = '$feed'");
+ } else {
+ $tmp_result = db_query($link, "SELECT id
+ FROM ttrss_feeds WHERE cat_id = (SELECT cat_id FROM ttrss_feeds
+ WHERE id = '$feed') AND id != '$feed'");
+ }
$cat_siblings = array();
@@ -2255,4 +2262,16 @@
}
+ function getCategoryTitle($link, $cat_id) {
+
+ $result = db_query($link, "SELECT title FROM ttrss_feed_categories WHERE
+ id = '$cat_id'");
+
+ if (db_num_rows($result) == 1) {
+ return db_fetch_result($result, 0, "title");
+ } else {
+ return "Uncategorized";
+ }
+ }
+
?>
diff --git a/tt-rss.js b/tt-rss.js
index 0a17c14c3..538e3203c 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -12,6 +12,7 @@ var firsttime_update = true;
var last_refetch = 0;
var cookie_lifetime = 0;
var active_feed_id = 0;
+var active_feed_is_cat = false;
var xmlhttp = Ajax.getTransport();
@@ -433,7 +434,7 @@ function quickMenuGo(opid) {
}
if (opid == "qmcSearch") {
- displayDlg("search", getActiveFeedId());
+ displayDlg("search", getActiveFeedId() + ":" + activeFeedIsCat());
return;
}