var msg = e.toString();
- msg += "<p>"+ __("The error will be reported to the configured log destination.") +
- "</p>";
-
console.error(msg);
- var content = "<div class=\"fatalError\">" +
- "<pre>" + msg + "</pre>";
-
- content += "<form name=\"exceptionForm\" id=\"exceptionForm\" target=\"_blank\" "+
- "action=\"https://tt-rss.org/report.php\" method=\"POST\">";
-
- content += "<textarea style=\"display : none\" name=\"message\">" + msg + "</textarea>";
- content += "<textarea style=\"display : none\" name=\"params\">N/A</textarea>";
+ var content = "<div class='fatalError'><p>" + msg + "</p>";
- if (e) {
+ if (e.stack) {
content += "<div><b>Stack trace:</b></div>" +
"<textarea name=\"stack\" readonly=\"1\">" + e.stack + "</textarea>";
}
- content += "</form>";
-
content += "</div>";
content += "<div class='dlgButtons'>";
- content += "<button dojoType=\"dijit.form.Button\""+
- "onclick=\"dijit.byId('exceptionDlg').report()\">" +
- __('Report to tt-rss.org') + "</button> ";
content += "<button dojoType=\"dijit.form.Button\" "+
"onclick=\"dijit.byId('exceptionDlg').hide()\">" +
__('Close') + "</button>";
id: "exceptionDlg",
title: "Unhandled exception",
style: "width: 600px",
- report: function() {
- if (confirm(__("Are you sure to report this exception to tt-rss.org? The report will include information about your web browser and tt-rss configuration. Your IP will be saved in the database."))) {
-
- document.forms['exceptionForm'].params.value = $H({
- browserName: navigator.appName,
- browserVersion: navigator.appVersion,
- browserPlatform: navigator.platform,
- browserCookies: navigator.cookieEnabled,
- ttrssVersion: __ttrss_version,
- initParams: JSON.stringify(init_params),
- }).toQueryString();
-
- document.forms['exceptionForm'].submit();
-
- }
- },
content: content});
dialog.show();
function updateFeedList() {
+ try {
+ Element.show("feedlistLoading");
- Element.show("feedlistLoading");
-
- resetCounterCache();
-
- if (dijit.byId("feedTree")) {
- dijit.byId("feedTree").destroyRecursive();
- }
-
- var store = new dojo.data.ItemFileWriteStore({
- url: "backend.php?op=pref_feeds&method=getfeedtree&mode=2"});
-
- var treeModel = new fox.FeedStoreModel({
- store: store,
- query: {
- "type": getInitParam('enable_feed_cats') == 1 ? "category" : "feed"
- },
- rootId: "root",
- rootLabel: "Feeds",
- childrenAttrs: ["items"]
- });
-
- var tree = new fox.FeedTree({
- model: treeModel,
- onClick: function (item, node) {
- var id = String(item.id);
- var is_cat = id.match("^CAT:");
- var feed = id.substr(id.indexOf(":")+1);
- viewfeed({feed: feed, is_cat: is_cat});
- return false;
- },
- openOnClick: false,
- showRoot: false,
- persist: true,
- id: "feedTree",
- }, "feedTree");
-
-/* var menu = new dijit.Menu({id: 'feedMenu'});
-
- menu.addChild(new dijit.MenuItem({
- label: "Simple menu item"
- }));
-
-// menu.bindDomNode(tree.domNode); */
-
- var tmph = dojo.connect(dijit.byId('feedMenu'), '_openMyself', function (event) {
- console.log(dijit.getEnclosingWidget(event.target));
- dojo.disconnect(tmph);
- });
-
- $("feeds-holder").appendChild(tree.domNode);
-
- var tmph = dojo.connect(tree, 'onLoad', function() {
- dojo.disconnect(tmph);
- Element.hide("feedlistLoading");
-
- try {
- feedlist_init();
+ resetCounterCache();
- loading_set_progress(25);
- } catch (e) {
- exception_error(e);
+ if (dijit.byId("feedTree")) {
+ dijit.byId("feedTree").destroyRecursive();
}
- });
- tree.startup();
+ var store = new dojo.data.ItemFileWriteStore({
+ url: "backend.php?op=pref_feeds&method=getfeedtree&mode=2"
+ });
+
+ var treeModel = new fox.FeedStoreModel({
+ store: store,
+ query: {
+ "type": getInitParam('enable_feed_cats') == 1 ? "category" : "feed"
+ },
+ rootId: "root",
+ rootLabel: "Feeds",
+ childrenAttrs: ["items"]
+ });
+
+ var tree = new fox.FeedTree({
+ model: treeModel,
+ onClick: function (item, node) {
+ var id = String(item.id);
+ var is_cat = id.match("^CAT:");
+ var feed = id.substr(id.indexOf(":") + 1);
+ viewfeed({feed: feed, is_cat: is_cat});
+ return false;
+ },
+ openOnClick: false,
+ showRoot: false,
+ persist: true,
+ id: "feedTree",
+ }, "feedTree");
+
+ /* var menu = new dijit.Menu({id: 'feedMenu'});
+
+ menu.addChild(new dijit.MenuItem({
+ label: "Simple menu item"
+ }));
+
+ // menu.bindDomNode(tree.domNode); */
+
+ var tmph = dojo.connect(dijit.byId('feedMenu'), '_openMyself', function (event) {
+ console.log(dijit.getEnclosingWidget(event.target));
+ dojo.disconnect(tmph);
+ });
+
+ $("feeds-holder").appendChild(tree.domNode);
+
+ var tmph = dojo.connect(tree, 'onLoad', function () {
+ dojo.disconnect(tmph);
+ Element.hide("feedlistLoading");
+
+ try {
+ feedlist_init();
+
+ loading_set_progress(25);
+ } catch (e) {
+ exception_error(e);
+ }
+ });
+
+ tree.startup();
+ } catch (e) {
+ exception_error(e);
+ }
}
function catchupAllFeeds() {