From df63125dd7797064f0bbd5f70267c8b5e1fb36c6 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 14 Mar 2014 14:05:32 +0400 Subject: [PATCH] handle_rpc_json: do not crash if net-alert is somehow unavailable --- js/tt-rss.js | 21 ++++++++++++++++----- js/viewfeed.js | 9 ++------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/js/tt-rss.js b/js/tt-rss.js index bb23169ec..a66411d11 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -989,6 +989,12 @@ function handle_rpc_json(transport, scheduled_call) { try { var reply = JSON.parse(transport.responseText); + var netalert_dijit = dijit.byId("net-alert"); + var netalert = false; + + if (netalert_dijit) + netalert = netalert_dijit.domNode; + if (reply) { var error = reply['error']; @@ -1035,16 +1041,21 @@ function handle_rpc_json(transport, scheduled_call) { if (runtime_info) parse_runtime_info(runtime_info); - Element.hide(dijit.byId("net-alert").domNode); + if (netalert) Element.hide(netalert); } else { - //notify_error("Error communicating with server."); - Element.show(dijit.byId("net-alert").domNode); + if (netalert) + Element.show(netalert); + else + notify_error("Communication problem with server."); } } catch (e) { - Element.show(dijit.byId("net-alert").domNode); - //notify_error("Error communicating with server."); + if (netalert) + Element.show(netalert); + else + notify_error("Communication problem with server."); + console.log(e); //exception_error("handle_rpc_json", e, transport); } diff --git a/js/viewfeed.js b/js/viewfeed.js index 8a07965fc..1a5f87d7c 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -194,14 +194,11 @@ function headlines_callback2(transport, offset, background, infscroll_req) { else request_counters(true); - } else if (transport.responseText) { + } else { console.error("Invalid object received: " + transport.responseText); dijit.byId("headlines-frame").attr('content', "
" + __('Could not update headlines (invalid object received - see error console for details)') + "
"); - } else { - //notify_error("Error communicating with server."); - Element.show(dijit.byId("net-alert").domNode); } _infscroll_request_sent = 0; @@ -318,13 +315,11 @@ function article_callback2(transport, id) { // return; // } - } else if (transport.responseText) { + } else { console.error("Invalid object received: " + transport.responseText); render_article("
" + __('Could not display article (invalid object received - see error console for details)') + "
"); - } else { - Element.show(dijit.byId("net-alert").domNode); } var unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length