summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2005-12-09 20:48:13 +0100
committerAndrew Dolgov <[email protected]>2005-12-09 20:48:13 +0100
commita24f525cce32a6515532ac9392a5b02838ff82be (patch)
treef19d8acaf7f0fb7e7e5a0fa97c206c13204d2830
parent3820a960c6cd28c61a43d88add853c3b0b4c9932 (diff)
quick action to add filter, misc backend improvements
-rw-r--r--backend.php71
-rw-r--r--functions.js1
-rw-r--r--tt-rss.js52
-rw-r--r--tt-rss.php7
4 files changed, 126 insertions, 5 deletions
diff --git a/backend.php b/backend.php
index b1c57c3a9..a31afb61b 100644
--- a/backend.php
+++ b/backend.php
@@ -1268,6 +1268,7 @@
if ($op == "pref-feeds") {
$subop = $_GET["subop"];
+ $quiet = $_GET["quiet"];
if ($subop == "editSave") {
$feed_title = db_escape_string($_GET["t"]);
@@ -1442,6 +1443,8 @@
}
+ if ($quiet) return;
+
// print "<h3>Edit Feeds</h3>";
$result = db_query($link, "SELECT id,title,feed_url,last_error
@@ -1896,6 +1899,7 @@
if ($op == "pref-filters") {
$subop = $_GET["subop"];
+ $quiet = $_GET["quiet"];
if ($subop == "editSave") {
@@ -1960,6 +1964,8 @@
}
}
+ if ($quiet) return;
+
$result = db_query($link, "SELECT description
FROM ttrss_filter_types ORDER BY description");
@@ -2529,6 +2535,71 @@
}
+ if ($id == "quickAddFilter") {
+
+ $result = db_query($link, "SELECT description
+ FROM ttrss_filter_types ORDER BY description");
+
+ $filter_types = array();
+
+ while ($line = db_fetch_assoc($result)) {
+ array_push($filter_types, $line["description"]);
+ }
+
+ print "<table>";
+
+ print "<tr><td>Match:</td><td><input id=\"fadd_regexp\" size=\"40\">&nbsp;";
+
+ print_select("fadd_match", "Title", $filter_types);
+
+ print "</td></tr>";
+ print "<tr><td>Feed:</td><td><select id=\"fadd_feed\">";
+
+ print "<option selected id=\"0\">All feeds</option>";
+
+ $result = db_query($link, "SELECT id,title FROM ttrss_feeds
+ WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
+
+ if (db_num_rows($result) > 0) {
+ print "<option disabled>--------</option>";
+ }
+
+ while ($line = db_fetch_assoc($result)) {
+ if ($param == $line["id"]) {
+ $selected = "selected";
+ } else {
+ $selected = "";
+ }
+ printf("<option id='%d' %s>%s</option>", $line["id"], $selected, $line["title"]);
+ }
+
+ print "</select></td></tr>";
+
+ print "<tr><td>Action:</td>";
+
+ print "<td><select id=\"fadd_action\">";
+
+ $result = db_query($link, "SELECT id,description FROM ttrss_filter_actions
+ ORDER BY name");
+
+ while ($line = db_fetch_assoc($result)) {
+ printf("<option id='%d'>%s</option>", $line["id"], $line["description"]);
+ }
+
+ print "</select>";
+
+ print "</td></tr><tr><td colspan=\"2\" align=\"right\">";
+
+ print "<input type=\"submit\"
+ class=\"button\" onclick=\"javascript:qaddFilter()\"
+ value=\"Add filter\"> ";
+
+ print "<input class=\"button\"
+ type=\"submit\" onclick=\"javascript:closeDlg()\"
+ value=\"Close\">";
+
+ print "</td></tr></table>";
+ }
}
// update feeds of all users, may be used anonymously
diff --git a/functions.js b/functions.js
index 17cab9d76..d901cbb90 100644
--- a/functions.js
+++ b/functions.js
@@ -689,3 +689,4 @@ function showBlockElement(id) {
}
}
+
diff --git a/tt-rss.js b/tt-rss.js
index bb0f13c79..c8e1c3e3f 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -46,12 +46,20 @@ function toggleTags() {
function dlg_frefresh_callback() {
if (xmlhttp.readyState == 4) {
+ notify(xmlhttp.responseText);
updateFeedList(false, false);
closeDlg();
}
}
-function dialog_refresh_callback() {
+function dlg_submit_callback() {
+ if (xmlhttp.readyState == 4) {
+ notify(xmlhttp.responseText);
+ closeDlg();
+ }
+}
+
+function dlg_display_callback() {
if (xmlhttp.readyState == 4) {
var dlg = document.getElementById("userDlg");
var dlg_s = document.getElementById("userDlgShadow");
@@ -450,6 +458,10 @@ function quickMenuGo() {
return;
}
+ if (opid == "qmcAddFilter") {
+ displayDlg("quickAddFilter", getActiveFeedId());
+ }
+
}
function qafAdd() {
@@ -470,7 +482,7 @@ function qafAdd() {
feeds_doc.location.href = "backend.php?op=error&msg=Loading,%20please wait...";
- xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=add&link=" +
+ xmlhttp.open("GET", "backend.php?op=pref-feeds&quiet=1&subop=add&link=" +
param_escape(link.value), true);
xmlhttp.onreadystatechange=dlg_frefresh_callback;
xmlhttp.send(null);
@@ -480,13 +492,47 @@ function qafAdd() {
}
}
+function qaddFilter() {
+
+ if (!xmlhttp_ready(xmlhttp)) {
+ printLockingError();
+ return
+ }
+
+ var regexp = document.getElementById("fadd_regexp");
+ var match = document.getElementById("fadd_match");
+ var feed = document.getElementById("fadd_feed");
+ var action = document.getElementById("fadd_action");
+
+ if (regexp.value.length == 0) {
+ notify("Missing filter expression.");
+ } else {
+ notify("Adding filter...");
+
+ var v_match = match[match.selectedIndex].text;
+ var feed_id = feed[feed.selectedIndex].id;
+ var action_id = action[action.selectedIndex].id;
+
+ xmlhttp.open("GET", "backend.php?op=pref-filters&quiet=1&subop=add&regexp=" +
+ param_escape(regexp.value) + "&match=" + v_match +
+ "&fid=" + param_escape(feed_id) + "&aid=" + param_escape(action_id), true);
+
+ xmlhttp.onreadystatechange=dlg_submit_callback;
+ xmlhttp.send(null);
+
+ regexp.value = "";
+ }
+
+}
+
+
function displayDlg(id, param) {
notify("");
xmlhttp.open("GET", "backend.php?op=dlg&id=" +
param_escape(id) + "&param=" + param_escape(param), true);
- xmlhttp.onreadystatechange=dialog_refresh_callback;
+ xmlhttp.onreadystatechange=dlg_display_callback;
xmlhttp.send(null);
}
diff --git a/tt-rss.php b/tt-rss.php
index 89feb8571..5c15a507b 100644
--- a/tt-rss.php
+++ b/tt-rss.php
@@ -194,14 +194,17 @@
<option id="qmcPrefs" selected>Preferences...</option>
<option disabled>--------</option>
<option style="color : #5050aa" disabled>Feed actions:</option>
- <option id="qmcAddFeed">&nbsp;&nbsp;Add new feed</option>
- <option id="qmcRemoveFeed">&nbsp;&nbsp;Remove this feed</option>
+ <option id="qmcAddFeed">&nbsp;&nbsp;Add new feed...</option>
+ <option id="qmcRemoveFeed">&nbsp;&nbsp;Remove this feed...</option>
<!-- <option>Edit this feed</option> -->
<option disabled>--------</option>
<option style="color : #5050aa" disabled>All feeds:</option>
<option id="qmcUpdateFeeds">&nbsp;&nbsp;Update</option>
<option id="qmcCatchupAll">&nbsp;&nbsp;Mark as read</option>
<option id="qmcShowOnlyUnread">&nbsp;&nbsp;Show only unread</option>
+ <option disabled>--------</option>
+ <option style="color : #5050aa" disabled>Other actions:</option>
+ <option id="qmcAddFilter">&nbsp;&nbsp;Add filter...</option>
</select>
<input type="submit" class="button" onclick="quickMenuGo()" value="Go">
</td>