category search fixes, search dialog now searches in category view

This commit is contained in:
Andrew Dolgov 2006-08-01 05:13:48 +01:00
parent 59e2aab468
commit 0a6c4846cd
5 changed files with 54 additions and 14 deletions

View File

@ -2537,7 +2537,12 @@
print "<form id='search_form'>"; 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>"; print "<table width='100%'><tr><td>Search:</td><td>";
@ -2553,16 +2558,25 @@
<option value=\"all_feeds\">All feeds</option>"; <option value=\"all_feeds\">All feeds</option>";
$feed_title = getFeedTitle($link, $active_feed_id); $feed_title = getFeedTitle($link, $active_feed_id);
$feed_cat_title = getFeedCatTitle($link, $active_feed_id);
if ($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 && !$is_cat) {
print "<option selected value=\"this_feed\">This feed ($feed_title)</option>"; print "<option selected value=\"this_feed\">This feed ($feed_title)</option>";
} else { } else {
print "<option disabled>This feed</option>"; print "<option disabled>This feed</option>";
} }
if (get_pref($link, 'ENABLE_FEED_CATS') && $active_feed_id && $active_feed_id > 0) { if ($is_cat) {
print "<option value=\"this_cat\">This category ($feed_cat_title)</option>"; $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 { } else {
print "<option disabled>This category</option>"; print "<option disabled>This category</option>";
} }

View File

@ -55,6 +55,8 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) {
setActiveFeedId(feed); setActiveFeedId(feed);
getMainContext().active_feed_is_cat = is_cat;
if (subop == "MarkAllRead") { if (subop == "MarkAllRead") {
var feedr = document.getElementById("FEEDR-" + feed); var feedr = document.getElementById("FEEDR-" + feed);

View File

@ -462,6 +462,10 @@ function getActiveFeedId() {
} }
} }
function activeFeedIsCat() {
return getMainContext().active_feed_is_cat;
}
function setActiveFeedId(id) { function setActiveFeedId(id) {
// return setCookie("ttrss_vf_actfeed", id); // return setCookie("ttrss_vf_actfeed", id);
try { try {

View File

@ -1972,7 +1972,7 @@
OR UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))"); 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") { } else if ($match_on == "title") {
@ -1980,7 +1980,7 @@
array_push($query_keywords, "(UPPER(ttrss_entries.title) LIKE UPPER('%$k%'))"); 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") { } else if ($match_on == "content") {
@ -1988,7 +1988,7 @@
array_push($query_keywords, "(UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))"); 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 { } else {
$search_query_part = ""; $search_query_part = "";
@ -2033,9 +2033,16 @@
$vfeed_query_part = "ttrss_feeds.title AS feed_title,"; $vfeed_query_part = "ttrss_feeds.title AS feed_title,";
$tmp_result = db_query($link, "SELECT id $tmp_result = false;
FROM ttrss_feeds WHERE cat_id =
(SELECT cat_id FROM ttrss_feeds WHERE id = '$feed') AND id != '$feed'"); 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(); $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";
}
}
?> ?>

View File

@ -12,6 +12,7 @@ var firsttime_update = true;
var last_refetch = 0; var last_refetch = 0;
var cookie_lifetime = 0; var cookie_lifetime = 0;
var active_feed_id = 0; var active_feed_id = 0;
var active_feed_is_cat = false;
var xmlhttp = Ajax.getTransport(); var xmlhttp = Ajax.getTransport();
@ -433,7 +434,7 @@ function quickMenuGo(opid) {
} }
if (opid == "qmcSearch") { if (opid == "qmcSearch") {
displayDlg("search", getActiveFeedId()); displayDlg("search", getActiveFeedId() + ":" + activeFeedIsCat());
return; return;
} }