]> git.wh0rd.org - tt-rss.git/blobdiff - js/prefs.js
fix filter and feed dialogs breaking each other
[tt-rss.git] / js / prefs.js
index d1d02afd550885fdf298596f10bad8b63012ff80..ce233b749d3fde300a827a9e30f1dbe2953879a1 100644 (file)
@@ -5,62 +5,8 @@ var hotkey_prefix_pressed = false;
 
 var seq = "";
 
-function instancelist_callback2(transport) {
-       try {
-               dijit.byId('instanceConfigTab').attr('content', transport.responseText);
-               selectTab("instanceConfig", true);
-               notify("");
-       } catch (e) {
-               exception_error("instancelist_callback2", e);
-       }
-}
-
-function feedlist_callback2(transport) {
-       try {
-               dijit.byId('feedConfigTab').attr('content', transport.responseText);
-               selectTab("feedConfig", true);
-               notify("");
-       } catch (e) {
-               exception_error("feedlist_callback2", e);
-       }
-}
-
-function filterlist_callback2(transport) {
-       dijit.byId('filterConfigTab').attr('content', transport.responseText);
-       notify("");
-}
-
-function labellist_callback2(transport) {
-       try {
-               dijit.byId('labelConfigTab').attr('content', transport.responseText);
-               notify("");
-       } catch (e) {
-               exception_error("labellist_callback2", e);
-       }
-}
-
-function userlist_callback2(transport) {
-       try {
-               dijit.byId('userConfigTab').attr('content', transport.responseText);
-
-               notify("");
-       } catch (e) {
-               exception_error("userlist_callback2", e);
-       }
-}
-
-function prefslist_callback2(transport) {
-       try {
-               dijit.byId('genConfigTab').attr('content', transport.responseText);
-
-               notify("");
-       } catch (e) {
-               exception_error("prefslist_callback2", e);
-       }
-}
-
-function notify_callback2(transport) {
-       notify_info(transport.responseText);
+function notify_callback2(transport, sticky) {
+       notify_info(transport.responseText, sticky);
 }
 
 function updateFeedList(sort_key) {
@@ -72,7 +18,9 @@ function updateFeedList(sort_key) {
        new Ajax.Request("backend.php", {
                parameters: "?op=pref-feeds&search=" + param_escape(search),
                onComplete: function(transport) {
-                       feedlist_callback2(transport);
+                       dijit.byId('feedConfigTab').attr('content', transport.responseText);
+                       selectTab("feedConfig", true);
+                       notify("");
                } });
 }
 
@@ -80,14 +28,14 @@ function updateInstanceList(sort_key) {
        new Ajax.Request("backend.php", {
                parameters: "?op=pref-instances&sort=" + param_escape(sort_key),
                onComplete: function(transport) {
-                       instancelist_callback2(transport);
+                       dijit.byId('instanceConfigTab').attr('content', transport.responseText);
+                       selectTab("instanceConfig", true);
+                       notify("");
                } });
 }
 
 function updateUsersList(sort_key) {
-
        try {
-
                var user_search = $("user_search");
                var search = "";
                if (user_search) { search = user_search.value; }
@@ -99,7 +47,9 @@ function updateUsersList(sort_key) {
                new Ajax.Request("backend.php", {
                        parameters: query,
                        onComplete: function(transport) {
-                               userlist_callback2(transport);
+                               dijit.byId('userConfigTab').attr('content', transport.responseText);
+                               selectTab("userConfig", true)
+                               notify("");
                        } });
 
        } catch (e) {
@@ -130,7 +80,8 @@ function addUser() {
                new Ajax.Request("backend.php", {
                        parameters: query,
                        onComplete: function(transport) {
-                               userlist_callback2(transport);
+                               notify_callback2(transport);
+                               updateUsersList();
                        } });
 
        } catch (e) {
@@ -175,6 +126,9 @@ function editFilter(id) {
 
                var query = "backend.php?op=pref-filters&method=edit&id=" + param_escape(id);
 
+               if (dijit.byId("feedEditDlg"))
+                       dijit.byId("feedEditDlg").destroyRecursive();
+
                if (dijit.byId("filterEditDlg"))
                        dijit.byId("filterEditDlg").destroyRecursive();
 
@@ -329,7 +283,7 @@ function removeSelectedLabels() {
                        new Ajax.Request("backend.php", {
                                parameters: query,
                                onComplete: function(transport) {
-                                               labellist_callback2(transport);
+                                               updateLabelList();
                                        } });
 
                }
@@ -359,7 +313,7 @@ function removeSelectedUsers() {
                                new Ajax.Request("backend.php", {
                                        parameters: query,
                                        onComplete: function(transport) {
-                                               userlist_callback2(transport);
+                                               updateUsersList();
                                        } });
 
                        }
@@ -530,7 +484,7 @@ function userEditSave() {
                new Ajax.Request("backend.php", {
                        parameters: query,
                        onComplete: function(transport) {
-                               userlist_callback2(transport);
+                               updateUsersList();
                        } });
 
        } catch (e) {
@@ -589,7 +543,7 @@ function resetSelectedUserPass() {
                        new Ajax.Request("backend.php", {
                                parameters: query,
                                onComplete: function(transport) {
-                                       userlist_callback2(transport);
+                                       notify_info(transport.responseText);
                                } });
 
                }
@@ -619,7 +573,7 @@ function selectedUserDetails() {
 
                var id = rows[0];
 
-               var query = "?op=pref-users&method=user-details&id=" + id;
+               var query = "?op=pref-users&method=userdetails&id=" + id;
 
                new Ajax.Request("backend.php", {
                        parameters: query,
@@ -803,6 +757,8 @@ function opmlImportComplete(iframe) {
        try {
                if (!iframe.contentDocument.body.innerHTML) return false;
 
+               Element.show(iframe);
+
                notify('');
 
                if (dijit.byId('opmlImportDlg'))
@@ -816,6 +772,14 @@ function opmlImportComplete(iframe) {
                        style: "width: 600px",
                        onCancel: function() {
                                updateFeedList();
+                               updateFilterList();
+                               updateLabelList();
+                       },
+                       execute: function() {
+                               updateFeedList();
+                               updateFilterList();
+                               updateLabelList();
+                               this.hide();
                        },
                        content: content});
 
@@ -835,15 +799,36 @@ function opmlImport() {
                return false;
        } else {
                notify_progress("Importing, please wait...", true);
+
+               Element.show("upload_iframe");
+
                return true;
        }
 }
 
+function importData() {
+
+       var file = $("export_file");
+
+       if (file.value.length == 0) {
+               alert(__("Please choose the file first."));
+               return false;
+       } else {
+               notify_progress("Importing, please wait...", true);
+
+               Element.show("data_upload_iframe");
+
+               return true;
+       }
+}
+
+
 function updateFilterList() {
        new Ajax.Request("backend.php", {
                parameters: "?op=pref-filters",
                onComplete: function(transport) {
-                       filterlist_callback2(transport);
+                       dijit.byId('filterConfigTab').attr('content', transport.responseText);
+                       notify("");
                } });
 }
 
@@ -851,7 +836,8 @@ function updateLabelList() {
        new Ajax.Request("backend.php", {
                parameters: "?op=pref-labels",
                onComplete: function(transport) {
-                       labellist_callback2(transport);
+                       dijit.byId('labelConfigTab').attr('content', transport.responseText);
+                       notify("");
                } });
 }
 
@@ -859,7 +845,8 @@ function updatePrefsList() {
        new Ajax.Request("backend.php", {
                parameters: "?op=pref-prefs",
                onComplete: function(transport) {
-                       prefslist_callback2(transport);
+                       dijit.byId('genConfigTab').attr('content', transport.responseText);
+                       notify("");
                } });
 }
 
@@ -1047,12 +1034,7 @@ function pref_hotkey_handler(e) {
                if (!hotkey_prefix) {
 
                        if ((keycode == 191 || keychar == '?') && shift_key) { // ?
-                               if (!Element.visible("hotkey_help_overlay")) {
-                                       //Element.show("hotkey_help_overlay");
-                                       Effect.Appear("hotkey_help_overlay", {duration : 0.3, to: 0.9});
-                               } else {
-                                       Element.hide("hotkey_help_overlay");
-                               }
+                               showHelp();
                                return false;
                        }
 
@@ -1440,13 +1422,13 @@ function labelColorReset() {
                        var ok = confirm(__("Reset selected labels to default colors?"));
 
                        if (ok) {
-                               var query = "?op=pref-labels&method=color-reset&ids="+
+                               var query = "?op=pref-labels&method=colorreset&ids="+
                                        param_escape(labels.toString());
 
                                new Ajax.Request("backend.php", {
                                        parameters: query,
                                        onComplete: function(transport) {
-                                               labellist_callback2(transport);
+                                               updateLabelList();
                                        } });
                        }
 
@@ -1705,7 +1687,7 @@ function editLabel(id, event) {
                                        color = bg;
                                }
 
-                               var query = "?op=pref-labels&method=color-set&kind="+kind+
+                               var query = "?op=pref-labels&method=colorset&kind="+kind+
                                        "&ids=" + param_escape(id) + "&fg=" + param_escape(fg) +
                                        "&bg=" + param_escape(bg) + "&color=" + param_escape(color);
 
@@ -1965,3 +1947,130 @@ function editSelectedInstance() {
        editInstance(rows[0]);
 }
 
+function showHelp() {
+       try {
+               new Ajax.Request("backend.php", {
+                       parameters: "?op=backend&method=help&topic=prefs",
+                       onComplete: function(transport) {
+                               $("hotkey_help_overlay").innerHTML = transport.responseText;
+                               Effect.Appear("hotkey_help_overlay", {duration : 0.3});
+                       } });
+
+       } catch (e) {
+               exception_error("showHelp", e);
+       }
+}
+
+function exportData() {
+       try {
+
+               var query = "backend.php?op=dlg&method=exportData";
+
+               if (dijit.byId("dataExportDlg"))
+                       dijit.byId("dataExportDlg").destroyRecursive();
+
+               var exported = 0;
+
+               dialog = new dijit.Dialog({
+                       id: "dataExportDlg",
+                       title: __("Export Data"),
+                       style: "width: 600px",
+                       prepare: function() {
+
+                               notify_progress("Loading, please wait...");
+
+                               new Ajax.Request("backend.php", {
+                                       parameters: "?op=rpc&method=exportrun&offset=" + exported,
+                                       onComplete: function(transport) {
+                                               try {
+                                                       var rv = JSON.parse(transport.responseText);
+
+                                                       if (rv && rv.exported != undefined) {
+                                                               if (rv.exported > 0) {
+
+                                                                       exported += rv.exported;
+
+                                                                       $("export_status_message").innerHTML =
+                                                                               "<img src='images/indicator_tiny.gif'> " +
+                                                                               "Exported %d articles, please wait...".replace("%d",
+                                                                                       exported);
+
+                                                                       setTimeout('dijit.byId("dataExportDlg").prepare()', 2000);
+
+                                                               } else {
+
+                                                                       $("export_status_message").innerHTML =
+                                                                               __("Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>.")
+                                                                               .replace("%d", exported)
+                                                                               .replace("%u", "backend.php?op=rpc&subop=exportget");
+
+                                                                       exported = 0;
+
+                                                               }
+
+                                                       } else {
+                                                               $("export_status_message").innerHTML =
+                                                                       "Error occured, could not export data.";
+                                                       }
+                                               } catch (e) {
+                                                       exception_error("exportData", e, transport.responseText);
+                                               }
+
+                                               notify('');
+
+                                       } });
+
+                       },
+                       execute: function() {
+                               if (this.validate()) {
+
+
+
+                               }
+                       },
+                       href: query});
+
+               dialog.show();
+
+
+       } catch (e) {
+               exception_error("exportData", e);
+       }
+}
+
+function dataImportComplete(iframe) {
+       try {
+               if (!iframe.contentDocument.body.innerHTML) return false;
+
+               Element.hide(iframe);
+
+               notify('');
+
+               if (dijit.byId('dataImportDlg'))
+                       dijit.byId('dataImportDlg').destroyRecursive();
+
+               var content = iframe.contentDocument.body.innerHTML;
+
+               dialog = new dijit.Dialog({
+                       id: "dataImportDlg",
+                       title: __("Data Import"),
+                       style: "width: 600px",
+                       onCancel: function() {
+
+                       },
+                       content: content});
+
+               dialog.show();
+
+       } catch (e) {
+               exception_error("dataImportComplete", e);
+       }
+}
+
+function gotoExportOpml(filename, settings) {
+       tmp = settings ? 1 : 0;
+       document.location.href = "opml.php?op=Export&filename=" + filename + "&settings=" + tmp;
+}
+
+
+