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) {
document.location.href = "prefs.php";
}
+function gotoLogout() {
+ document.location.href = "backend.php?op=logout";
+}
+
function gotoMain() {
document.location.href = "index.php";
}
return toggleSelectRow(sender, row);
}
-function tSR(sender, row) {
- return toggleSelectRow(sender, row);
-}
-
/* this is for dijit Checkbox */
-function toggleSelectRow2(sender, row) {
+function toggleSelectRow2(sender, row, is_cdm) {
- if (!row) row = sender.domNode.parentNode.parentNode;
+ if (!row)
+ if (!is_cdm)
+ row = sender.domNode.parentNode.parentNode;
+ else
+ row = sender.domNode.parentNode.parentNode.parentNode; // oh ffs
if (sender.checked && !row.hasClassName('Selected'))
row.addClassName('Selected');
try {
var query = "backend.php?op=dlg&method=quickAddFeed";
- if (dijit.byId("feedAddDlg"))
- dijit.byId("feedAddDlg").destroyRecursive();
+ // overlapping widgets
+ if (dijit.byId("batchSubDlg")) dijit.byId("batchSubDlg").destroyRecursive();
+ if (dijit.byId("feedAddDlg")) dijit.byId("feedAddDlg").destroyRecursive();
var dialog = new dijit.Dialog({
id: "feedAddDlg",
alert(__("Specified URL doesn't seem to contain any feeds."));
break;
case 4:
- notify_progress("Searching for feed urls...", true);
+ /* notify_progress("Searching for feed urls...", true);
new Ajax.Request("backend.php", {
parameters: 'op=rpc&method=extractfeedurls&url=' + param_escape(feed_url),
Effect.Appear('feedDlg_feedsContainer', {duration : 0.5});
}
});
+ break; */
+
+ feeds = rc['feeds'];
+
+ var select = dijit.byId("feedDlg_feedContainerSelect");
+
+ while (select.getOptions().length > 0)
+ select.removeOption(0);
+
+ var count = 0;
+ for (var feedUrl in feeds) {
+ select.addOption({value: feedUrl, label: feeds[feedUrl]});
+ count++;
+ }
+
+ Effect.Appear('feedDlg_feedsContainer', {duration : 0.5});
+
break;
case 5:
alert(__("Couldn't download the specified URL: %s").
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));
try {
var li = dojo.create("li");
- dojo.create("input", { type: "checkbox",
- onclick: function() { toggleSelectListRow(this) },
- }, li);
+ var cb = dojo.create("input", { type: "checkbox" }, li);
+
+ new dijit.form.CheckBox({
+ onChange: function() {
+ toggleSelectListRow2(this) },
+ }, cb);
dojo.create("input", { type: "hidden",
name: "rule[]",
try {
var li = dojo.create("li");
- dojo.create("input", { type: "checkbox",
- onclick: function() { toggleSelectListRow(this) },
- }, li);
+ var cb = dojo.create("input", { type: "checkbox" }, li);
+
+ new dijit.form.CheckBox({
+ onChange: function() {
+ toggleSelectListRow2(this) },
+ }, cb);
dojo.create("input", { type: "hidden",
name: "action[]",
id: "filterEditDlg",
title: __("Create Filter"),
style: "width: 600px",
+ test: function() {
+ var query = "backend.php?" + dojo.formToQuery("filter_new_form") + "&savemode=test";
+
+ if (dijit.byId("filterTestDlg"))
+ dijit.byId("filterTestDlg").destroyRecursive();
+
+ var test_dlg = new dijit.Dialog({
+ id: "filterTestDlg",
+ title: "Test Filter",
+ style: "width: 600px",
+ href: query});
+
+ test_dlg.show();
+ },
+ selectRules: function(select) {
+ $$("#filterDlg_Matches input[type=checkbox]").each(function(e) {
+ e.checked = select;
+ if (select)
+ e.parentNode.addClassName("Selected");
+ else
+ e.parentNode.removeClassName("Selected");
+ });
+ },
+ selectActions: function(select) {
+ $$("#filterDlg_Actions input[type=checkbox]").each(function(e) {
+ e.checked = select;
+
+ if (select)
+ e.parentNode.addClassName("Selected");
+ else
+ e.parentNode.removeClassName("Selected");
+
+ });
+ },
editRule: function(e) {
var li = e.parentNode;
var rule = li.getElementsByTagName("INPUT")[1].value;
},
href: query});
+ if (!inPreferences()) {
+ var lh = dojo.connect(dialog, "onLoad", function(){
+ dojo.disconnect(lh);
+
+ 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 (reply && reply) title = reply.title;
+
+ if (title || getActiveFeedId() || activeFeedIsCat()) {
+
+ console.log(title + " " + getActiveFeedId());
+
+ 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));
+ }
+
+ } });
+
+ });
+ }
+
dialog.show();
} catch (e) {
} else {
if (feed_id == getActiveFeedId())
setTimeout("viewfeed(-5)", 100);
+
+ if (feed_id < 0) updateFeedList();
}
} });
} });
},
removeFromArchive: function() {
- var selected = this.getSelectedFeeds();
+ var selected = this.getSelectedFeedIds();
if (selected.length > 0) {
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", {
function showFeedsWithErrors() {
try {
- var query = "backend.php?op=dlg&method=feedsWithErrors";
+ var query = "backend.php?op=pref-feeds&method=feedsWithErrors";
if (dijit.byId("errorFeedsDlg"))
dijit.byId("errorFeedsDlg").destroyRecursive();
var date = new Date();
return Math.round(date.getTime() / 1000);
}
+
+function helpDialog(topic) {
+ try {
+ var query = "backend.php?op=backend&method=help&topic=" + param_escape(topic);
+
+ if (dijit.byId("helpDlg"))
+ dijit.byId("helpDlg").destroyRecursive();
+
+ dialog = new dijit.Dialog({
+ id: "helpDlg",
+ title: __("Help"),
+ style: "width: 600px",
+ href: query,
+ });
+
+ dialog.show();
+
+ } catch (e) {
+ exception_error("helpDialog", e);
+ }
+}
+
+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 -> "</p>", 'ENT_NOQUOTES');
+ // * returns 1: '<p>this -> "</p>'
+ // * example 2: htmlspecialchars_decode("&quot;");
+ // * returns 2: '"'
+ var optTemp = 0,
+ i = 0,
+ noquotes = false;
+ if (typeof quote_style === 'undefined') {
+ quote_style = 2;
+ }
+ string = string.toString().replace(/</g, '<').replace(/>/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(/�*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
+ // string = string.replace(/'|�*27;/g, "'"); // This would also be useful here, but not a part of PHP
+ }
+ if (!noquotes) {
+ string = string.replace(/"/g, '"');
+ }
+ // Put this in last place to avoid escape being double-decoded
+ string = string.replace(/&/g, '&');
+
+ return string;
+}