]> git.wh0rd.org - tt-rss.git/blobdiff - js/prefs.js
wip: filter async testing
[tt-rss.git] / js / prefs.js
index e226459fc24fa0386b479ea53e20b464256b6560..797e0e07146623f3b40c063fffb5d76f76c20c66 100644 (file)
@@ -24,6 +24,20 @@ function updateFeedList(sort_key) {
                } });
 }
 
+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 {
@@ -83,17 +97,33 @@ function addUser() {
 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, __("User Editor"));
-                                       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);
@@ -116,6 +146,7 @@ function editFilter(id) {
                        id: "filterEditDlg",
                        title: __("Edit Filter"),
                        style: "width: 600px",
+
                        test: function() {
                                var query = "backend.php?" + dojo.formToQuery("filter_edit_form") + "&savemode=test";
 
@@ -126,8 +157,61 @@ function editFilter(id) {
                                        id: "filterTestDlg",
                                        title: "Test Filter",
                                        style: "width: 600px",
+                                       results: 0,
+                                       max_offset: 10000,
+                                       getTestResults: function(query, offset) {
+                                               var updquery = query + "&offset=" + offset;
+
+                                               console.log("getTestResults:" + offset);
+                                               //console.log(updquery);
+
+                                               new Ajax.Request("backend.php", {
+                                                       parameters: updquery,
+                                                       onComplete: function (transport) {
+
+                                                               console.log(transport.responseText);
+
+                                                               var result = JSON.parse(transport.responseText);
+
+                                                               console.log("R:" + result);
+
+                                                               //console.log("<<< " + transport.responseText);
+
+                                                               if (result && dijit.byId("filterTestDlg") && dijit.byId("filterTestDlg").open) {
+                                                                       test_dlg.results += result.size();
+
+                                                                       $("prefFilterProgressMsg").innerHTML = __("Looking for articles (%d)...".replace("%d", offset));
+
+                                                                       console.log(offset + " " + test_dlg.max_offset);
+
+                                                                       for (var i = 0; i < result.size(); i++) {
+                                                                               $("prefFilterTestResultList").innerHTML += result[i];
+                                                                       }
+
+                                                                       if (test_dlg.results < 30 && offset < test_dlg.max_offset) {
+                                                                               window.setTimeout(function() {
+                                                                                       //console.log("blaargh");
+
+                                                                                       test_dlg.getTestResults(query, offset + 30);
+                                                                               }, 0);
+                                                                       } else {
+
+                                                                               // all done
+
+                                                                       }
+
+                                                               } else {
+                                                                       console.log("can't parse results object / dialog closed");
+                                                               }
+
+                                                       } });
+                                       },
                                        href: query});
 
+                               dojo.connect(test_dlg, "onShow", null, function(e) {
+                                       test_dlg.getTestResults(query, 0);
+                               });
+
                                test_dlg.show();
                        },
                        selectRules: function(select) {
@@ -463,43 +547,6 @@ function purgeSelectedFeeds() {
        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();
 
@@ -573,17 +620,24 @@ function selectedUserDetails() {
                        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, __("User details"));
-                               } });
        } catch (e) {
                exception_error("selectedUserDetails", e);
        }
@@ -1542,25 +1596,6 @@ function clearFeedAccessKeys() {
        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";
-
-               new Ajax.Request("backend.php", {
-                       parameters: query,
-                       onComplete: function(transport) {
-                               notify_info("Shared URLs cleared.");
-                       } });
-       }
-
-       return false;
-}
-
 function resetFilterOrder() {
        try {
                notify_progress("Loading, please wait...");