summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-11-12 14:21:28 +0400
committerAndrew Dolgov <[email protected]>2013-11-12 14:21:28 +0400
commit0c7e49936acc3e96b09364c02b7cbabe6043e950 (patch)
tree8e1908110d0dcafcf3659564e6884d7e017a81de /js
parent43d790f0541f2743099813b4971e2072e233fc0b (diff)
quickAddFilter: if text is currently highlighted, use that instead of active article title for placeholder text
Diffstat (limited to 'js')
-rw-r--r--js/functions.js67
1 files changed, 52 insertions, 15 deletions
diff --git a/js/functions.js b/js/functions.js
index fdd791598..43fae715b 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -1150,33 +1150,48 @@ function quickAddFilter() {
href: query});
if (!inPreferences()) {
+ var selectedText = getSelectionText();
+
var lh = dojo.connect(dialog, "onLoad", function(){
dojo.disconnect(lh);
- var query = "op=rpc&method=getlinktitlebyid&id=" + getActiveArticleId();
+ if (selectedText != "") {
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- var reply = JSON.parse(transport.responseText);
+ var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) :
+ getActiveFeedId();
+
+ var rule = { reg_exp: selectedText, feed_id: feed_id, filter_type: 1 };
+
+ addFilterRule(null, dojo.toJson(rule));
+
+ } else {
- var title = false;
+ var query = "op=rpc&method=getlinktitlebyid&id=" + getActiveArticleId();
- if (reply && reply) title = reply.title;
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ var reply = JSON.parse(transport.responseText);
- if (title || getActiveFeedId() || activeFeedIsCat()) {
+ var title = false;
- console.log(title + " " + getActiveFeedId());
+ if (reply && reply) title = reply.title;
- var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) :
- getActiveFeedId();
+ if (title || getActiveFeedId() || activeFeedIsCat()) {
- var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 };
+ console.log(title + " " + getActiveFeedId());
- addFilterRule(null, dojo.toJson(rule));
- }
+ var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) :
+ getActiveFeedId();
- } });
+ var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 };
+
+ addFilterRule(null, dojo.toJson(rule));
+ }
+
+ } });
+
+ }
});
}
@@ -1936,3 +1951,25 @@ function feed_to_label_id(feed) {
return _label_base_index - 1 + Math.abs(feed);
}
+// http://stackoverflow.com/questions/6251937/how-to-get-selecteduser-highlighted-text-in-contenteditable-element-and-replac
+
+function getSelectionText() {
+ var text = "";
+
+ if (typeof window.getSelection != "undefined") {
+ var sel = window.getSelection();
+ if (sel.rangeCount) {
+ var container = document.createElement("div");
+ for (var i = 0, len = sel.rangeCount; i < len; ++i) {
+ container.appendChild(sel.getRangeAt(i).cloneContents());
+ }
+ text = container.innerHTML;
+ }
+ } else if (typeof document.selection != "undefined") {
+ if (document.selection.type == "Text") {
+ text = document.selection.createRange().textText;
+ }
+ }
+
+ return text.stripTags();
+}