From 350468d01896f344c815e472a8b3c3a1de726ec7 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 24 Jan 2009 07:11:42 +0100 Subject: [PATCH] prefs: some async work --- functions.js | 19 +++++ prefs.js | 193 ++++++++++++++++++++++----------------------------- tt-rss.js | 19 ----- 3 files changed, 101 insertions(+), 130 deletions(-) diff --git a/functions.js b/functions.js index ca94dd93..229303c4 100644 --- a/functions.js +++ b/functions.js @@ -2086,4 +2086,23 @@ function updateFeedBrowser() { } } +function browseFeeds(limit) { + + try { + + var query = "backend.php?op=pref-feeds&subop=browse"; + + notify_progress("Loading, please wait...", true); + + new Ajax.Request(query, { + onComplete: function(transport) { + infobox_callback2(transport); + } }); + + return false; + } catch (e) { + exception_error("browseFeeds", e); + } +} + diff --git a/prefs.js b/prefs.js index 377c9aac..82d3a32b 100644 --- a/prefs.js +++ b/prefs.js @@ -245,16 +245,12 @@ function init_cat_inline_editor() { } } -function infobox_feed_cat_callback() { - if (xmlhttp.readyState == 4) { - try { - - infobox_callback(); - init_cat_inline_editor(); - - } catch (e) { - exception_error("infobox_feed_cat_callback", e); - } +function infobox_feed_cat_callback2(transport) { + try { + infobox_callback2(transport); + init_cat_inline_editor(); + } catch (e) { + exception_error("infobox_feed_cat_callback2", e); } } @@ -379,10 +375,13 @@ function addFeedCat() { } else { notify_progress("Adding feed category..."); - xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editCats&action=add&cat=" + - param_escape(cat.value), true); - xmlhttp.onreadystatechange=infobox_feed_cat_callback; - xmlhttp.send(null); + var query = "backend.php?op=pref-feeds&subop=editCats&action=add&cat=" + + param_escape(cat.value); + + new Ajax.Request(query, { + onComplete: function(transport) { + infobox_feed_cat_callback2(transport); + } }); link.value = ""; @@ -716,10 +715,14 @@ function removeSelectedFeedCats() { if (ok) { notify_progress("Removing selected categories..."); - xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editCats&action=remove&ids="+ - param_escape(sel_rows.toString()), true); - xmlhttp.onreadystatechange=infobox_feed_cat_callback; - xmlhttp.send(null); + var query = "backend.php?op=pref-feeds&subop=editCats&action=remove&ids="+ + param_escape(sel_rows.toString()); + + new Ajax.Request(query, { + onComplete: function(transport) { + infobox_feed_cat_callback2(transport); + } }); + } } else { @@ -918,62 +921,35 @@ function resetSelectedUserPass() { function selectedUserDetails() { - if (!xmlhttp_ready(xmlhttp)) { - printLockingError(); - return - } - - var rows = getSelectedUsers(); + try { - if (rows.length == 0) { - alert(__("No users are selected.")); - return; - } + var rows = getSelectedUsers(); + + if (rows.length == 0) { + alert(__("No users are selected.")); + return; + } + + if (rows.length > 1) { + alert(__("Please select only one user.")); + return; + } + + notify_progress("Loading, please wait..."); + + var id = rows[0]; + + var query = "backend.php?op=pref-users&subop=user-details&id=" + id; - if (rows.length > 1) { - alert(__("Please select only one user.")); - return; + new Ajax.Request(query, { + onComplete: function(transport) { + infobox_callback2(transport); + } }); + } catch (e) { + exception_error("selectedUserDetails", e); } - - notify_progress("Loading, please wait..."); - - var id = rows[0]; - - xmlhttp.open("GET", "backend.php?op=pref-users&subop=user-details&id=" + id, true); - xmlhttp.onreadystatechange=infobox_callback; - xmlhttp.send(null); - } -function selectedFeedDetails() { - - if (!xmlhttp_ready(xmlhttp)) { - printLockingError(); - return - } - - var rows = getSelectedFeeds(); - - if (rows.length == 0) { - alert(__("No feeds are selected.")); - return; - } - - if (rows.length > 1) { - alert(__("Please select only one feed.")); - return; - } - -// var id = rows[0]; - - notify(""); - - xmlhttp.open("GET", "backend.php?op=feed-details&id=" + - param_escape(rows.toString()), true); - xmlhttp.onreadystatechange=infobox_callback; - xmlhttp.send(null); - -} function editSelectedFilter() { var rows = getSelectedFilters(); @@ -1016,30 +992,31 @@ function editSelectedFeed() { function editSelectedFeeds() { - if (!xmlhttp_ready(xmlhttp)) { - printLockingError(); - return - } + try { + var rows = getSelectedFeeds(); + + if (rows.length == 0) { + alert(__("No feeds are selected.")); + return; + } + + notify(""); + + disableHotkeys(); + + notify_progress("Loading, please wait..."); + + var query = "backend.php?op=pref-feeds&subop=editfeeds&ids=" + + param_escape(rows.toString()); - var rows = getSelectedFeeds(); + new Ajax.Request(query, { + onComplete: function(transport) { + infobox_callback2(transport); + } }); - if (rows.length == 0) { - alert(__("No feeds are selected.")); - return; + } catch (e) { + exception_error("editSelectedFeeds", e); } - - notify(""); - - disableHotkeys(); - - notify_progress("Loading, please wait..."); - - xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editfeeds&ids=" + - param_escape(rows.toString()), true); - - xmlhttp.onreadystatechange=infobox_callback; - xmlhttp.send(null); - } function piggie(enable) { @@ -1369,14 +1346,6 @@ function validatePrefsReset() { } -function browseFeeds(limit) { - - xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=browse", true); - xmlhttp.onreadystatechange=infobox_callback; - xmlhttp.send(null); - -} - function feedBrowserSubscribe() { try { @@ -1669,22 +1638,24 @@ function pref_hotkey_handler(e) { } function editFeedCats() { - if (!xmlhttp_ready(xmlhttp)) { - printLockingError(); - return - } - - document.getElementById("subscribe_to_feed_btn").disabled = true; - try { - document.getElementById("top25_feeds_btn").disabled = true; + document.getElementById("subscribe_to_feed_btn").disabled = true; + + try { + document.getElementById("top25_feeds_btn").disabled = true; + } catch (e) { + // this button is not always available, no-op if not found + } + + var query = "backend.php?op=pref-feeds&subop=editCats"; + + new Ajax.Request(query, { + onComplete: function(transport) { + infobox_feed_cat_callback2(transport); + } }); } catch (e) { - // this button is not always available, no-op if not found + exception_error("editFeedCats", e); } - - xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editCats", true); - xmlhttp.onreadystatechange=infobox_feed_cat_callback; - xmlhttp.send(null); } function showFeedsWithErrors() { diff --git a/tt-rss.js b/tt-rss.js index 98f79958..17e33bf8 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -1423,25 +1423,6 @@ function visitOfficialSite() { window.open("http://tt-rss.org/"); } -function browseFeeds(limit) { - - try { - - var query = "backend.php?op=pref-feeds&subop=browse"; - - notify_progress("Loading, please wait...", true); - - new Ajax.Request(query, { - onComplete: function(transport) { - infobox_callback2(transport); - } }); - - return false; - } catch (e) { - exception_error("browseFeeds", e); - } -} - function feedBrowserSubscribe() { try { -- 2.39.5