From 55a5137307bf99d9868a775d4197cbe25dbf25d5 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 10 Nov 2010 13:14:40 +0300 Subject: [PATCH] subscribeToFeed: add ajax exception handler --- functions.js | 96 ++++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 45 deletions(-) diff --git a/functions.js b/functions.js index e4deab47a..926fda2bb 100644 --- a/functions.js +++ b/functions.js @@ -1302,54 +1302,60 @@ function subscribeToFeed() { onComplete: function(transport) { //dlg_frefresh_callback(transport); - notify(''); + try { - var result = transport.responseXML.getElementsByTagName('result')[0]; - var rc = parseInt(result.getAttribute('code')); - - Form.enable("feed_add_form"); - - switch (rc) { - case 1: - closeInfoBox(); - notify_info(__("Subscribed to %s").replace("%s", feed_url)); - - if (inPreferences()) { - updateFeedList(); - } else { - setTimeout('updateFeedList(false, false)', 50); - } - break; - case 2: - case 3: - alert(__("Can't subscribe to the specified URL.")); - break; - case 4: - new Ajax.Request("backend.php", { - parameters: 'op=rpc&subop=extractfeedurls&url=' + encodeURIComponent(feed_url), - onComplete: function(transport) { - var result = transport.responseXML.getElementsByTagName('urls')[0]; - var feeds = JSON.parse(result.firstChild.nodeValue); - var select = document.getElementById("faad_feeds_container_select"); - - while (select.hasChildNodes()) { - select.removeChild(elem.firstChild); - } - var count = 0; - for (var feedUrl in feeds) { - select.insert(new Option(feeds[feedUrl], feedUrl, false)); - count++; + var result = transport.responseXML.getElementsByTagName('result')[0]; + var rc = parseInt(result.getAttribute('code')); + + Form.enable("feed_add_form"); + + notify(''); + + switch (rc) { + case 1: + closeInfoBox(); + notify_info(__("Subscribed to %s").replace("%s", feed_url)); + + if (inPreferences()) { + updateFeedList(); + } else { + setTimeout('updateFeedList(false, false)', 50); + } + break; + case 2: + case 3: + alert(__("Can't subscribe to the specified URL.")); + break; + case 4: + new Ajax.Request("backend.php", { + parameters: 'op=rpc&subop=extractfeedurls&url=' + encodeURIComponent(feed_url), + onComplete: function(transport) { + var result = transport.responseXML.getElementsByTagName('urls')[0]; + var feeds = JSON.parse(result.firstChild.nodeValue); + var select = document.getElementById("faad_feeds_container_select"); + + while (select.hasChildNodes()) { + select.removeChild(elem.firstChild); + } + var count = 0; + for (var feedUrl in feeds) { + select.insert(new Option(feeds[feedUrl], feedUrl, false)); + count++; + } + if (count > 5) count = 5; + select.size = count; + + Effect.Appear('fadd_feeds_container', {duration : 0.5}); } - if (count > 5) count = 5; - select.size = count; + }); + break; + case 0: + alert(__("You are already subscribed to this feed.")); + break; + } - Effect.Appear('fadd_feeds_container', {duration : 0.5}); - } - }); - break; - case 0: - alert(__("You are already subscribed to this feed.")); - break; + } catch (e) { + exception_error("subscribeToFeed", e); } } });