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));
+ }
+
+ } });
+
+ }
});
}
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();
+}