summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--functions.php10
-rw-r--r--modules/backend-rpc.php2
-rw-r--r--modules/popup-dialog.php29
-rw-r--r--viewfeed.js25
4 files changed, 63 insertions, 3 deletions
diff --git a/functions.php b/functions.php
index 84b863e70..5fe75c288 100644
--- a/functions.php
+++ b/functions.php
@@ -3039,4 +3039,14 @@
return $tags;
}
+ function trim_value(&$value) {
+ $value = trim($value);
+ }
+
+ function trim_array($array) {
+ $tmp = $array;
+ array_walk($tmp, 'trim_value');
+ return $tmp;
+ }
+
?>
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index 3cba704e3..1a019af5b 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -210,7 +210,7 @@
$id = db_escape_string($_GET["id"]);
$tags_str = db_escape_string($_GET["tags_str"]);
- $tags = split(",", $tags_str);
+ $tags = array_unique(trim_array(split(",", $tags_str)));
db_query($link, "BEGIN");
diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php
index a1ead2b00..40f4df8a2 100644
--- a/modules/popup-dialog.php
+++ b/modules/popup-dialog.php
@@ -283,9 +283,34 @@
$tags_str = join(", ", $tags);
- print "<input type=\"hidden\" name=\"id\" value=\"$param\">";
+ print "<table width='100%'>";
+
+ print "<tr><td colspan='2'><input type=\"hidden\" name=\"id\" value=\"$param\"></td></tr>";
+
+ print "<tr><td colspan='2'><textarea rows='4' class='iedit' name='tags_str'>$tags_str</textarea></td></tr>";
+
+ print "<tr><td>Add existing tag:</td>";
- print "<textarea rows='4' class='iedit' name='tags_str'>$tags_str</textarea>";
+ $result = db_query($link, "SELECT DISTINCT tag_name FROM ttrss_tags
+ WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY tag_name");
+
+ $found_tags = array();
+
+ array_push($found_tags, '');
+
+ while ($line = db_fetch_assoc($result)) {
+ array_push($found_tags, $line["tag_name"]);
+ }
+
+ print "<td align='right'>";
+
+ print_select("found_tags", '', $found_tags, "onchange=\"javascript:editTagsInsert()\"");
+
+ print "</td>";
+
+ print "</tr>";
+
+ print "</table>";
print "</form>";
diff --git a/viewfeed.js b/viewfeed.js
index 5f338e46e..d89cac347 100644
--- a/viewfeed.js
+++ b/viewfeed.js
@@ -489,3 +489,28 @@ function editTagsSave() {
xmlhttp_rpc.send(null);
}
+
+function editTagsInsert() {
+ try {
+
+ var form = document.forms["tag_edit_form"];
+
+ var found_tags = form.found_tags;
+ var tags_str = form.tags_str;
+
+ var tag = found_tags[found_tags.selectedIndex].value;
+
+ if (tags_str.value.length > 0 &&
+ tags_str.value.lastIndexOf(", ") != tags_str.value.length - 2) {
+
+ tags_str.value = tags_str.value + ", ";
+ }
+
+ tags_str.value = tags_str.value + tag + ", ";
+
+ found_tags.selectedIndex = 0;
+
+ } catch (e) {
+ exception_error(e, "editTagsInsert");
+ }
+}