diff options
-rw-r--r-- | functions.php | 10 | ||||
-rw-r--r-- | modules/backend-rpc.php | 2 | ||||
-rw-r--r-- | modules/popup-dialog.php | 29 | ||||
-rw-r--r-- | viewfeed.js | 25 |
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"); + } +} |