summaryrefslogtreecommitdiff
path: root/js/functions.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/functions.js')
-rw-r--r--js/functions.js108
1 files changed, 94 insertions, 14 deletions
diff --git a/js/functions.js b/js/functions.js
index 72f72ddaa..a9367da60 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -201,17 +201,22 @@ function notify_real(msg, no_hide, n_type) {
n.className = "notify";
} else if (n_type == 2) {
n.className = "notifyProgress";
- msg = "<img src='"+getInitParam("sign_progress")+"'> " + msg;
+ msg = "<img src='images/indicator_white.gif'> " + msg;
} else if (n_type == 3) {
n.className = "notifyError";
- msg = "<img src='"+getInitParam("sign_excl")+"'> " + msg;
+ msg = "<img src='images/sign_excl.svg'> " + msg;
} else if (n_type == 4) {
n.className = "notifyInfo";
- msg = "<img src='"+getInitParam("sign_info")+"'> " + msg;
+ msg = "<img src='images/sign_info.svg'> " + msg;
}
// msg = "<img src='images/live_com_loading.gif'> " + msg;
+ if (no_hide) {
+ msg += " (<a href='#' onclick=\"notify('')\">X</a>)";
+ }
+
+
nb.innerHTML = msg;
if (!no_hide) {
@@ -964,6 +969,8 @@ function createNewRuleElement(parentNode, replaceNode) {
try {
var form = document.forms["filter_new_rule_form"];
+ form.reg_exp.value = form.reg_exp.value.replace(/(<([^>]+)>)/ig,"");
+
var query = "backend.php?op=pref-filters&method=printrulename&rule="+
param_escape(dojo.formToJson(form));
@@ -1209,20 +1216,31 @@ function quickAddFilter() {
var lh = dojo.connect(dialog, "onLoad", function(){
dojo.disconnect(lh);
- var title = $("PTITLE-FULL-" + getActiveArticleId());
+ var query = "op=rpc&method=getlinktitlebyid&id=" + getActiveArticleId();
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ var reply = JSON.parse(transport.responseText);
+
+ var title = false;
- if (title || getActiveFeedId() || activeFeedIsCat()) {
- if (title) title = title.innerHTML;
+ if (reply && reply) title = reply.title;
- console.log(title + " " + getActiveFeedId());
+ if (title || getActiveFeedId() || activeFeedIsCat()) {
- var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) :
- getActiveFeedId();
+ console.log(title + " " + getActiveFeedId());
- var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 };
+ 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));
+ }
+
+ } });
- addFilterRule(null, dojo.toJson(rule));
- }
});
}
@@ -1739,7 +1757,7 @@ function feedBrowser() {
} });
},
removeFromArchive: function() {
- var selected = this.getSelectedFeeds();
+ var selected = this.getSelectedFeedIds();
if (selected.length > 0) {
@@ -1748,7 +1766,7 @@ function feedBrowser() {
if (confirm(pr)) {
Element.show('feed_browser_spinner');
- var query = "?op=rpc&method=remarchived&ids=" +
+ var query = "?op=rpc&method=remarchive&ids=" +
param_escape(selected.toString());;
new Ajax.Request("backend.php", {
@@ -1906,3 +1924,65 @@ function helpDialog(topic) {
}
}
+function htmlspecialchars_decode (string, quote_style) {
+ // http://kevin.vanzonneveld.net
+ // + original by: Mirek Slugen
+ // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
+ // + bugfixed by: Mateusz "loonquawl" Zalega
+ // + input by: ReverseSyntax
+ // + input by: Slawomir Kaniecki
+ // + input by: Scott Cariss
+ // + input by: Francois
+ // + bugfixed by: Onno Marsman
+ // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
+ // + bugfixed by: Brett Zamir (http://brett-zamir.me)
+ // + input by: Ratheous
+ // + input by: Mailfaker (http://www.weedem.fr/)
+ // + reimplemented by: Brett Zamir (http://brett-zamir.me)
+ // + bugfixed by: Brett Zamir (http://brett-zamir.me)
+ // * example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
+ // * returns 1: '<p>this -> &quot;</p>'
+ // * example 2: htmlspecialchars_decode("&amp;quot;");
+ // * returns 2: '&quot;'
+ var optTemp = 0,
+ i = 0,
+ noquotes = false;
+ if (typeof quote_style === 'undefined') {
+ quote_style = 2;
+ }
+ string = string.toString().replace(/&lt;/g, '<').replace(/&gt;/g, '>');
+ var OPTS = {
+ 'ENT_NOQUOTES': 0,
+ 'ENT_HTML_QUOTE_SINGLE': 1,
+ 'ENT_HTML_QUOTE_DOUBLE': 2,
+ 'ENT_COMPAT': 2,
+ 'ENT_QUOTES': 3,
+ 'ENT_IGNORE': 4
+ };
+ if (quote_style === 0) {
+ noquotes = true;
+ }
+ if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
+ quote_style = [].concat(quote_style);
+ for (i = 0; i < quote_style.length; i++) {
+ // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
+ if (OPTS[quote_style[i]] === 0) {
+ noquotes = true;
+ } else if (OPTS[quote_style[i]]) {
+ optTemp = optTemp | OPTS[quote_style[i]];
+ }
+ }
+ quote_style = optTemp;
+ }
+ if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
+ string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
+ // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
+ }
+ if (!noquotes) {
+ string = string.replace(/&quot;/g, '"');
+ }
+ // Put this in last place to avoid escape being double-decoded
+ string = string.replace(/&amp;/g, '&');
+
+ return string;
+}