diff --git a/functions.php b/functions.php
index 5bcfa3e35..1d5210677 100644
--- a/functions.php
+++ b/functions.php
@@ -6102,4 +6102,29 @@
(label_id, article_id) VALUES ('$label_id', '$id')");
}
}
+
+ function label_remove($link, $id, $owner_uid) {
+
+ db_query($link, "BEGIN");
+
+ $result = db_query($link, "SELECT caption FROM ttrss_labels2
+ WHERE id = '$id'");
+
+ $caption = db_fetch_result($result, 0, "caption");
+
+ $result = db_query($link, "DELETE FROM ttrss_labels2 WHERE id = '$id'
+ AND owner_uid = " . $_SESSION["uid"]);
+
+ if (db_affected_rows($link, $result) != 0 && $caption) {
+
+ /* Disable filters that reference label being removed */
+
+ db_query($link, "UPDATE ttrss_filters SET
+ enabled = false WHERE action_param = '$caption'
+ AND action_id = 7
+ AND owner_uid = " . $_SESSION["uid"]);
+ }
+
+ db_query($link, "COMMIT");
+ }
?>
diff --git a/modules/pref-feeds.php b/modules/pref-feeds.php
index ee4e4d1f8..8b715e48f 100644
--- a/modules/pref-feeds.php
+++ b/modules/pref-feeds.php
@@ -717,6 +717,8 @@
if (file_exists($icons_dir . "/$id.ico")) {
unlink($icons_dir . "/$id.ico");
}
+ } else {
+ label_remove($link, -11-$id, $_SESSION["uid"]);
}
}
}
diff --git a/modules/pref-labels.php b/modules/pref-labels.php
index 797d2de3f..c645b12a1 100644
--- a/modules/pref-labels.php
+++ b/modules/pref-labels.php
@@ -50,30 +50,10 @@
$ids = split(",", db_escape_string($_GET["ids"]));
- db_query($link, "BEGIN");
-
foreach ($ids as $id) {
- $result = db_query($link, "SELECT caption FROM ttrss_labels2
- WHERE id = '$id'");
-
- $caption = db_fetch_result($result, 0, "caption");
-
- $result = db_query($link, "DELETE FROM ttrss_labels2 WHERE id = '$id'
- AND owner_uid = " . $_SESSION["uid"]);
-
- if (db_affected_rows($link, $result) != 0 && $caption) {
-
- /* Disable filters that reference label being removed */
-
- db_query($link, "UPDATE ttrss_filters SET
- enabled = false WHERE action_param = '$caption'
- AND action_id = 7
- AND owner_uid = " . $_SESSION["uid"]);
- }
+ label_remove($link, $id, $_SESSION["uid"]);
}
- db_query($link, "COMMIT");
-
}
if ($subop == "add") {
diff --git a/tt-rss.js b/tt-rss.js
index fba1158f0..9757639b3 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -562,11 +562,6 @@ function quickMenuGo(opid) {
return;
}
- if (actid <= 0) {
- alert(__("You can't unsubscribe from this kind of feed."));
- return;
- }
-
if (!actid) {
alert(__("Please select some feed first."));
return;
@@ -627,6 +622,10 @@ function quickMenuGo(opid) {
displayDlg("quickAddFilter", getActiveFeedId());
}
+ if (opid == "qmcAddLabel") {
+ addLabel();
+ }
+
if (opid == "qmcRescoreFeed") {
rescoreCurrentFeed();
}
@@ -1391,3 +1390,35 @@ function hotkey_handler(e) {
function feedsSortByUnread() {
return feeds_sort_by_unread;
}
+
+function addLabel() {
+
+ try {
+
+ var caption = prompt(__("Please enter label caption:"), "");
+
+ if (caption != undefined) {
+
+ if (caption == "") {
+ alert(__("Can't create label: missing caption."));
+ return false;
+ }
+
+ var query = "backend.php?op=pref-labels&subop=add&caption=" +
+ param_escape(caption);
+
+ notify_progress("Loading, please wait...", true);
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ updateFeedList();
+ } });
+
+ }
+
+ } catch (e) {
+ exception_error("addLabel", e);
+ }
+}
+
+
diff --git a/tt-rss.php b/tt-rss.php
index 6e3d19a29..3454a3484 100644
--- a/tt-rss.php
+++ b/tt-rss.php
@@ -160,6 +160,8 @@ window.onload = init;
+
+