} });
}
+function checkInactiveFeeds() {
+ try {
+ new Ajax.Request("backend.php", {
+ parameters: "?op=pref-feeds&method=getinactivefeeds",
+ onComplete: function(transport) {
+ if (parseInt(transport.responseText) > 0) {
+ Element.show(dijit.byId("pref_feeds_inactive_btn").domNode);
+ }
+ } });
+
+ } catch (e) {
+ exception_error("checkInactiveFeeds", e);
+ }
+}
function updateUsersList(sort_key) {
try {
function editUser(id, event) {
try {
- notify_progress("Loading, please wait...");
-
- var query = "?op=pref-users&method=edit&id=" +
+ var query = "backend.php?op=pref-users&method=edit&id=" +
param_escape(id);
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- infobox_callback2(transport);
- document.forms['user_edit_form'].login.focus();
- } });
+ if (dijit.byId("userEditDlg"))
+ dijit.byId("userEditDlg").destroyRecursive();
+
+ dialog = new dijit.Dialog({
+ id: "userEditDlg",
+ title: __("User Editor"),
+ style: "width: 600px",
+ execute: function() {
+ if (this.validate()) {
+ notify_progress("Saving data...", true);
+
+ var query = dojo.formToQuery("user_edit_form");
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ dialog.hide();
+ updateUsersList();
+ }});
+ }
+ },
+ href: query});
+
+ dialog.show();
} catch (e) {
exception_error("editUser", e);
}
+function editFilterTest(query) {
+ try {
+
+ if (dijit.byId("filterTestDlg"))
+ dijit.byId("filterTestDlg").destroyRecursive();
+
+ var test_dlg = new dijit.Dialog({
+ id: "filterTestDlg",
+ title: "Test Filter",
+ style: "width: 600px",
+ results: 0,
+ limit: 100,
+ max_offset: 10000,
+ getTestResults: function(query, offset) {
+ var updquery = query + "&offset=" + offset + "&limit=" + test_dlg.limit;
+
+ console.log("getTestResults:" + offset);
+
+ new Ajax.Request("backend.php", {
+ parameters: updquery,
+ onComplete: function (transport) {
+ try {
+ var result = JSON.parse(transport.responseText);
+
+ if (result && dijit.byId("filterTestDlg") && dijit.byId("filterTestDlg").open) {
+ test_dlg.results += result.size();
+
+ console.log("got results:" + result.size());
+
+ $("prefFilterProgressMsg").innerHTML = __("Looking for articles (%d processed, %f found)...")
+ .replace("%f", test_dlg.results)
+ .replace("%d", offset);
+
+ console.log(offset + " " + test_dlg.max_offset);
+
+ for (var i = 0; i < result.size(); i++) {
+ var tmp = new Element("table");
+ tmp.innerHTML = result[i];
+ dojo.parser.parse(tmp);
+
+ $("prefFilterTestResultList").innerHTML += tmp.innerHTML;
+ }
+
+ if (test_dlg.results < 30 && offset < test_dlg.max_offset) {
+
+ // get the next batch
+ window.setTimeout(function () {
+ test_dlg.getTestResults(query, offset + test_dlg.limit);
+ }, 0);
+
+ } else {
+ // all done
+
+ Element.hide("prefFilterLoadingIndicator");
+
+ if (test_dlg.results == 0) {
+ $("prefFilterTestResultList").innerHTML = "<tr><td align='center'>No recent articles matching this filter have been found.</td></tr>";
+ $("prefFilterProgressMsg").innerHTML = "Articles matching this filter:";
+ } else {
+ $("prefFilterProgressMsg").innerHTML = __("Found %d articles matching this filter:")
+ .replace("%d", test_dlg.results);
+ }
+
+ }
+
+ } else if (!result) {
+ console.log("getTestResults: can't parse results object");
+
+ Element.hide("prefFilterLoadingIndicator");
+
+ notify_error("Error while trying to get filter test results.");
+
+ } else {
+ console.log("getTestResults: dialog closed, bailing out.");
+ }
+ } catch (e) {
+ exception_error("editFilterTest/inner", e);
+ }
+
+ } });
+ },
+ href: query});
+
+ dojo.connect(test_dlg, "onLoad", null, function(e) {
+ test_dlg.getTestResults(query, 0);
+ });
+
+ test_dlg.show();
+
+ } catch (e) {
+ exception_error("editFilterTest", e);
+ }
+}
+
function editFilter(id) {
try {
id: "filterEditDlg",
title: __("Edit Filter"),
style: "width: 600px",
+
test: function() {
var query = "backend.php?" + dojo.formToQuery("filter_edit_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();
+ editFilterTest(query);
},
selectRules: function(select) {
$$("#filterDlg_Matches input[type=checkbox]").each(function(e) {
return false;
}
-function userEditCancel() {
- closeInfoBox();
- return false;
-}
-
-function userEditSave() {
-
- try {
-
- var login = document.forms["user_edit_form"].login.value;
-
- if (login.length == 0) {
- alert(__("Login field cannot be blank."));
- return;
- }
-
- notify_progress("Saving user...");
-
- closeInfoBox();
-
- var query = Form.serialize("user_edit_form");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- updateUsersList();
- } });
-
- } catch (e) {
- exception_error("userEditSave", e);
- }
-
- return false;
-
-}
-
-
function editSelectedUser() {
var rows = getSelectedUsers();
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- notify_info(transport.responseText);
+ notify_info(transport.responseText, true);
} });
}
return;
}
- notify_progress("Loading, please wait...");
-
var id = rows[0];
- var query = "?op=pref-users&method=userdetails&id=" + id;
+ var query = "backend.php?op=pref-users&method=userdetails&id=" + id;
+
+ if (dijit.byId("userDetailsDlg"))
+ dijit.byId("userDetailsDlg").destroyRecursive();
+
+ dialog = new dijit.Dialog({
+ id: "userDetailsDlg",
+ title: __("User details"),
+ style: "width: 600px",
+ execute: function() {
+ dialog.hide();
+ },
+ href: query});
+
+ dialog.show();
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- infobox_callback2(transport);
- } });
} catch (e) {
exception_error("selectedUserDetails", e);
}
/* Form.serialize ignores unchecked checkboxes */
- if (!query.match("&rtl_content=") &&
- this.getChildByName('rtl_content').attr('disabled') == false) {
- query = query + "&rtl_content=false";
- }
-
if (!query.match("&private=") &&
this.getChildByName('private').attr('disabled') == false) {
query = query + "&private=false";
}
} catch (e) { }
+ try {
+ if (!query.match("&hide_images=") &&
+ this.getChildByName('hide_images').attr('disabled') == false) {
+ query = query + "&hide_images=false";
+ }
+ } catch (e) { }
+
if (!query.match("&include_in_digest=") &&
this.getChildByName('include_in_digest').attr('disabled') == false) {
query = query + "&include_in_digest=false";
query = query + "&mark_unread_on_update=false";
}
- if (!query.match("&update_on_checksum_change=") &&
- this.getChildByName('update_on_checksum_change').attr('disabled') == false) {
- query = query + "&update_on_checksum_change=false";
- }
-
console.log(query);
notify_progress("Saving data...", true);
}
}
-function piggie(enable) {
- if (enable) {
- console.log("I LOVEDED IT!");
- var piggie = $("piggie");
-
- Element.show(piggie);
- Position.Center(piggie);
- Effect.Puff(piggie);
-
- }
-}
-
function opmlImportComplete(iframe) {
try {
if (!iframe.contentDocument.body.innerHTML) return false;
} });
}
+function updateSystemList() {
+ new Ajax.Request("backend.php", {
+ parameters: "?op=pref-system",
+ onComplete: function(transport) {
+ dijit.byId('systemConfigTab').attr('content', transport.responseText);
+ notify("");
+ } });
+}
+
function selectTab(id, noupdate, method) {
try {
if (!noupdate) {
updatePrefsList();
} else if (id == "userConfig") {
updateUsersList();
+ } else if (id == "systemConfig") {
+ updateSystemList();
}
var tab = dijit.byId(id + "Tab");
dojo.addOnLoad(function() {
loading_set_progress(50);
+ var clientTzOffset = new Date().getTimezoneOffset() * 60;
+
new Ajax.Request("backend.php", {
- parameters: {op: "rpc", method: "sanityCheck"},
+ parameters: {op: "rpc", method: "sanityCheck",
+ clientTzOffset: clientTzOffset },
onComplete: function(transport) {
backend_sanity_check_callback(transport);
} });
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- var msg = transport.responseText;
- if (msg.match("PREFS_THEME_CHANGED")) {
- window.location.reload();
- } else {
- notify_info(msg);
- selectTab();
- }
+ updatePrefsList();
+ notify_info(transport.responseText);
} });
}
notify_progress("Trying to change address...", true);
- var query = "?op=rpc&method=regenOPMLKey";
+ var query = "?op=pref-feeds&method=regenOPMLKey";
new Ajax.Request("backend.php", {
parameters: query,
if (dijit.byId("profileEditDlg"))
dijit.byId("profileEditDlg").destroyRecursive();
- var query = "backend.php?op=dlg&method=editPrefProfiles";
+ var query = "backend.php?op=pref-prefs&method=editPrefProfiles";
dialog = new dijit.Dialog({
id: "profileEditDlg",
if (ok) {
notify_progress("Clearing URLs...");
- var query = "?op=rpc&method=clearKeys";
+ var query = "?op=pref-feeds&method=clearKeys";
new Ajax.Request("backend.php", {
parameters: query,
return false;
}
-function clearArticleAccessKeys() {
-
- var ok = confirm(__("This will invalidate all previously shared article URLs. Continue?"));
-
- if (ok) {
- notify_progress("Clearing URLs...");
-
- var query = "?op=rpc&method=clearArticleKeys";
+function resetFilterOrder() {
+ try {
+ notify_progress("Loading, please wait...");
new Ajax.Request("backend.php", {
- parameters: query,
+ parameters: "?op=pref-filters&method=filtersortreset",
onComplete: function(transport) {
- notify_info("Shared URLs cleared.");
+ updateFilterList();
} });
- }
- return false;
+
+ } catch (e) {
+ exception_error("resetFilterOrder");
+ }
}
+
+
function resetFeedOrder() {
try {
notify_progress("Loading, please wait...");
}
}
-function toggleHiddenFeedCats() {
- try {
- notify_progress("Loading, please wait...");
-
- new Ajax.Request("backend.php", {
- parameters: "?op=pref-feeds&method=togglehiddenfeedcats",
- onComplete: function(transport) {
- updateFeedList();
- } });
-
- } catch (e) {
- exception_error("toggleHiddenFeedCats");
- }
-}
-
function editCat(id, item, event) {
try {
var new_name = prompt(__('Rename category to:'), item.name);
}
}
-function clearTwitterCredentials() {
- try {
- var ok = confirm(__("This will clear your stored authentication information for Twitter. Continue?"));
-
- if (ok) {
- notify_progress("Clearing credentials...");
-
- var query = "?op=pref-feeds&method=remtwitterinfo";
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- notify_info("Twitter credentials have been cleared.");
- updateFeedList();
- } });
- }
-
- } catch (e) {
- exception_error("clearTwitterCredentials", e);
- }
-}
function customizeCSS() {
try {
- var query = "backend.php?op=dlg&method=customizeCSS";
+ var query = "backend.php?op=pref-prefs&method=customizeCSS";
if (dijit.byId("cssEditDlg"))
dijit.byId("cssEditDlg").destroyRecursive();
function batchSubscribe() {
try {
- var query = "backend.php?op=dlg&method=batchSubscribe";
+ var query = "backend.php?op=pref-feeds&method=batchSubscribe";
// overlapping widgets
if (dijit.byId("batchSubDlg")) dijit.byId("batchSubDlg").destroyRecursive();
exception_error("clearPluginData", e);
}
}
+
+function clearSqlLog() {
+
+ if (confirm(__("Clear all messages in the error log?"))) {
+
+ notify_progress("Loading, please wait...");
+ var query = "?op=pref-system&method=clearLog";
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ updateSystemList();
+ } });
+
+ }
+}
+
+