summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2016-08-10 10:01:05 +0300
committerAndrew Dolgov <[email protected]>2016-08-10 10:01:05 +0300
commitee5170424e8dc571b3a811e02f906aef5ee49e83 (patch)
tree3c79fb7ec06084dcee674a0e7021e9bcc4521a56
parent25a533c432036280de057bf10ca7b673e4f4aac4 (diff)
dojo: main UI: load stuff asynchronously
-rw-r--r--index.php11
-rw-r--r--js/tt-rss.js361
-rw-r--r--plugins/af_zz_noautoplay/init.js59
-rw-r--r--plugins/shorten_expanded/init.js34
4 files changed, 245 insertions, 220 deletions
diff --git a/index.php b/index.php
index ecde3bae2..36734619f 100644
--- a/index.php
+++ b/index.php
@@ -88,6 +88,15 @@
<link rel="shortcut icon" type="image/png" href="images/favicon.png"/>
<link rel="icon" type="image/png" sizes="72x72" href="images/favicon-72px.png" />
+ <script>
+ dojoConfig = {
+ async: true,
+ packages: [
+ { name: "fox", location: "../../js" },
+ ]
+ };
+ </script>
+
<?php
foreach (array("lib/prototype.js",
"lib/scriptaculous/scriptaculous.js?load=effects,controls",
@@ -105,7 +114,7 @@
require_once 'lib/jshrink/Minifier.php';
print get_minified_js(array("tt-rss",
- "functions", "feedlist", "viewfeed", "FeedTree", "PluginHost"));
+ "functions", "feedlist", "viewfeed", "PluginHost"));
foreach (PluginHost::getInstance()->get_plugins() as $n => $p) {
if (method_exists($p, "get_js")) {
diff --git a/js/tt-rss.js b/js/tt-rss.js
index 108b65a7f..776c5d02b 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -216,90 +216,94 @@ function genericSanityCheck() {
function init() {
try {
- //dojo.registerModulePath("fox", "../../js/");
-
- dojo.require("fox.FeedTree");
-
- dojo.require("dijit.ColorPalette");
- dojo.require("dijit.Dialog");
- dojo.require("dijit.form.Button");
- dojo.require("dijit.form.CheckBox");
- dojo.require("dijit.form.DropDownButton");
- dojo.require("dijit.form.FilteringSelect");
- dojo.require("dijit.form.Form");
- dojo.require("dijit.form.RadioButton");
- dojo.require("dijit.form.Select");
- dojo.require("dijit.form.SimpleTextarea");
- dojo.require("dijit.form.TextBox");
- dojo.require("dijit.form.ComboBox");
- dojo.require("dijit.form.ValidationTextBox");
- dojo.require("dijit.InlineEditBox");
- dojo.require("dijit.layout.AccordionContainer");
- dojo.require("dijit.layout.BorderContainer");
- dojo.require("dijit.layout.ContentPane");
- dojo.require("dijit.layout.TabContainer");
- dojo.require("dijit.Menu");
- dojo.require("dijit.ProgressBar");
- dojo.require("dijit.ProgressBar");
- dojo.require("dijit.Toolbar");
- dojo.require("dijit.Tree");
- dojo.require("dijit.tree.dndSource");
- dojo.require("dojo.data.ItemFileWriteStore");
-
- dojo.parser.parse();
-
- if (!genericSanityCheck())
- return false;
-
- loading_set_progress(30);
-
- var a = document.createElement('audio');
-
- var hasAudio = !!a.canPlayType;
- var hasSandbox = "sandbox" in document.createElement("iframe");
- var hasMp3 = !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
- var clientTzOffset = new Date().getTimezoneOffset() * 60;
-
- new Ajax.Request("backend.php", {
- parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio,
- hasMp3: hasMp3,
- clientTzOffset: clientTzOffset,
- hasSandbox: hasSandbox},
- onComplete: function(transport) {
+ require(['dojo/_base/kernel', 'dojo/ready', 'dojo/parser', 'dojo/_base/loader'], function(dojo, ready, parser) {
+
+ //dojo.registerModulePath("fox", "../../js/");
+
+ dojo.require("fox.FeedTree");
+
+ dojo.require("dijit.ColorPalette");
+ dojo.require("dijit.Dialog");
+ dojo.require("dijit.form.Button");
+ dojo.require("dijit.form.ComboButton");
+ dojo.require("dijit.form.CheckBox");
+ dojo.require("dijit.form.DropDownButton");
+ dojo.require("dijit.form.FilteringSelect");
+ dojo.require("dijit.form.Form");
+ dojo.require("dijit.form.RadioButton");
+ dojo.require("dijit.form.Select");
+ dojo.require("dijit.form.SimpleTextarea");
+ dojo.require("dijit.form.TextBox");
+ dojo.require("dijit.form.ComboBox");
+ dojo.require("dijit.form.ValidationTextBox");
+ dojo.require("dijit.InlineEditBox");
+ dojo.require("dijit.layout.AccordionContainer");
+ dojo.require("dijit.layout.BorderContainer");
+ dojo.require("dijit.layout.ContentPane");
+ dojo.require("dijit.layout.TabContainer");
+ dojo.require("dijit.PopupMenuItem");
+ dojo.require("dijit.Menu");
+ dojo.require("dijit.ProgressBar");
+ dojo.require("dijit.ProgressBar");
+ dojo.require("dijit.Toolbar");
+ dojo.require("dijit.Tree");
+ dojo.require("dijit.tree.dndSource");
+ dojo.require("dojo.data.ItemFileWriteStore");
+
+ dojo.parser.parse();
+
+ if (!genericSanityCheck())
+ return false;
+
+ loading_set_progress(30);
+
+ var a = document.createElement('audio');
+
+ var hasAudio = !!a.canPlayType;
+ var hasSandbox = "sandbox" in document.createElement("iframe");
+ var hasMp3 = !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
+ var clientTzOffset = new Date().getTimezoneOffset() * 60;
+
+ new Ajax.Request("backend.php", {
+ parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio,
+ hasMp3: hasMp3,
+ clientTzOffset: clientTzOffset,
+ hasSandbox: hasSandbox},
+ onComplete: function(transport) {
backend_sanity_check_callback(transport);
} });
- hotkey_actions["next_feed"] = function() {
+ hotkey_actions["next_feed"] = function() {
var rv = dijit.byId("feedTree").getNextFeed(
- getActiveFeedId(), activeFeedIsCat());
+ getActiveFeedId(), activeFeedIsCat());
if (rv) viewfeed({feed: rv[0], is_cat: rv[1], can_wait: true})
- };
- hotkey_actions["prev_feed"] = function() {
+ };
+ hotkey_actions["prev_feed"] = function() {
var rv = dijit.byId("feedTree").getPreviousFeed(
- getActiveFeedId(), activeFeedIsCat());
+ getActiveFeedId(), activeFeedIsCat());
if (rv) viewfeed({feed: rv[0], is_cat: rv[1], can_wait: true})
- };
- hotkey_actions["next_article"] = function() {
+ };
+ hotkey_actions["next_article"] = function() {
moveToPost('next');
- };
- hotkey_actions["prev_article"] = function() {
+ };
+ hotkey_actions["prev_article"] = function() {
moveToPost('prev');
- };
- hotkey_actions["next_article_noscroll"] = function() {
+ };
+ hotkey_actions["next_article_noscroll"] = function() {
moveToPost('next', true);
- };
- hotkey_actions["prev_article_noscroll"] = function() {
+ };
+ hotkey_actions["prev_article_noscroll"] = function() {
moveToPost('prev', true);
- };
- hotkey_actions["next_article_noexpand"] = function() {
+ };
+ hotkey_actions["next_article_noexpand"] = function() {
moveToPost('next', true, true);
- };
- hotkey_actions["prev_article_noexpand"] = function() {
+ };
+ hotkey_actions["prev_article_noexpand"] = function() {
moveToPost('prev', true, true);
- };
- hotkey_actions["collapse_article"] = function() {
+ };
+ hotkey_actions["collapse_article"] = function() {
var id = getActiveArticleId();
var elem = $("CICD-"+id);
@@ -311,8 +315,8 @@ function init() {
cdmExpandArticle(id);
}
}
- };
- hotkey_actions["toggle_expand"] = function() {
+ };
+ hotkey_actions["toggle_expand"] = function() {
var id = getActiveArticleId();
var elem = $("CICD-"+id);
@@ -324,48 +328,48 @@ function init() {
cdmExpandArticle(id);
}
}
- };
- hotkey_actions["search_dialog"] = function() {
+ };
+ hotkey_actions["search_dialog"] = function() {
search();
- };
- hotkey_actions["toggle_mark"] = function() {
+ };
+ hotkey_actions["toggle_mark"] = function() {
selectionToggleMarked(undefined, false, true);
- };
- hotkey_actions["toggle_publ"] = function() {
+ };
+ hotkey_actions["toggle_publ"] = function() {
selectionTogglePublished(undefined, false, true);
- };
- hotkey_actions["toggle_unread"] = function() {
+ };
+ hotkey_actions["toggle_unread"] = function() {
selectionToggleUnread(undefined, false, true);
- };
- hotkey_actions["edit_tags"] = function() {
+ };
+ hotkey_actions["edit_tags"] = function() {
var id = getActiveArticleId();
if (id) {
editArticleTags(id);
};
}
- hotkey_actions["open_in_new_window"] = function() {
+ hotkey_actions["open_in_new_window"] = function() {
if (getActiveArticleId()) {
openArticleInNewWindow(getActiveArticleId());
return;
}
- };
- hotkey_actions["catchup_below"] = function() {
+ };
+ hotkey_actions["catchup_below"] = function() {
catchupRelativeToArticle(1);
- };
- hotkey_actions["catchup_above"] = function() {
+ };
+ hotkey_actions["catchup_above"] = function() {
catchupRelativeToArticle(0);
- };
- hotkey_actions["article_scroll_down"] = function() {
+ };
+ hotkey_actions["article_scroll_down"] = function() {
var ctr = $("content_insert") ? $("content_insert") : $("headlines-frame");
scrollArticle(40);
- };
- hotkey_actions["article_scroll_up"] = function() {
+ };
+ hotkey_actions["article_scroll_up"] = function() {
var ctr = $("content_insert") ? $("content_insert") : $("headlines-frame");
scrollArticle(-40);
- };
- hotkey_actions["close_article"] = function() {
+ };
+ hotkey_actions["close_article"] = function() {
if (isCdmMode()) {
if (!getInitParam("cdm_expanded")) {
cdmCollapseArticle(false, getActiveArticleId());
@@ -373,8 +377,8 @@ function init() {
} else {
closeArticlePanel();
}
- };
- hotkey_actions["email_article"] = function() {
+ };
+ hotkey_actions["email_article"] = function() {
if (typeof emailArticle != "undefined") {
emailArticle();
} else if (typeof mailtoArticle != "undefined") {
@@ -382,103 +386,103 @@ function init() {
} else {
alert(__("Please enable mail plugin first."));
}
- };
- hotkey_actions["select_all"] = function() {
+ };
+ hotkey_actions["select_all"] = function() {
selectArticles('all');
- };
- hotkey_actions["select_unread"] = function() {
+ };
+ hotkey_actions["select_unread"] = function() {
selectArticles('unread');
- };
- hotkey_actions["select_marked"] = function() {
+ };
+ hotkey_actions["select_marked"] = function() {
selectArticles('marked');
- };
- hotkey_actions["select_published"] = function() {
+ };
+ hotkey_actions["select_published"] = function() {
selectArticles('published');
- };
- hotkey_actions["select_invert"] = function() {
+ };
+ hotkey_actions["select_invert"] = function() {
selectArticles('invert');
- };
- hotkey_actions["select_none"] = function() {
+ };
+ hotkey_actions["select_none"] = function() {
selectArticles('none');
- };
- hotkey_actions["feed_refresh"] = function() {
+ };
+ hotkey_actions["feed_refresh"] = function() {
if (getActiveFeedId() != undefined) {
viewfeed({feed: getActiveFeedId(), is_cat: activeFeedIsCat()});
return;
}
- };
- hotkey_actions["feed_unhide_read"] = function() {
+ };
+ hotkey_actions["feed_unhide_read"] = function() {
toggleDispRead();
- };
- hotkey_actions["feed_subscribe"] = function() {
+ };
+ hotkey_actions["feed_subscribe"] = function() {
quickAddFeed();
- };
- hotkey_actions["feed_debug_update"] = function() {
- if (!activeFeedIsCat() && parseInt(getActiveFeedId()) > 0) {
- window.open("backend.php?op=feeds&method=update_debugger&feed_id=" + getActiveFeedId() +
- "&csrf_token=" + getInitParam("csrf_token"));
- } else {
- alert("You can't debug this kind of feed.");
- }
- };
+ };
+ hotkey_actions["feed_debug_update"] = function() {
+ if (!activeFeedIsCat() && parseInt(getActiveFeedId()) > 0) {
+ window.open("backend.php?op=feeds&method=update_debugger&feed_id=" + getActiveFeedId() +
+ "&csrf_token=" + getInitParam("csrf_token"));
+ } else {
+ alert("You can't debug this kind of feed.");
+ }
+ };
- hotkey_actions["feed_debug_viewfeed"] = function() {
- viewfeed({feed: getActiveFeedId(), is_cat: activeFeedIsCat(), viewfeed_debug: true});
- };
+ hotkey_actions["feed_debug_viewfeed"] = function() {
+ viewfeed({feed: getActiveFeedId(), is_cat: activeFeedIsCat(), viewfeed_debug: true});
+ };
- hotkey_actions["feed_edit"] = function() {
+ hotkey_actions["feed_edit"] = function() {
if (activeFeedIsCat())
alert(__("You can't edit this kind of feed."));
else
editFeed(getActiveFeedId());
- };
- hotkey_actions["feed_catchup"] = function() {
+ };
+ hotkey_actions["feed_catchup"] = function() {
if (getActiveFeedId() != undefined) {
catchupCurrentFeed();
return;
}
- };
- hotkey_actions["feed_reverse"] = function() {
+ };
+ hotkey_actions["feed_reverse"] = function() {
reverseHeadlineOrder();
- };
- hotkey_actions["feed_toggle_vgroup"] = function() {
- var query_str = "?op=rpc&method=togglepref&key=VFEED_GROUP_BY_FEED";
+ };
+ hotkey_actions["feed_toggle_vgroup"] = function() {
+ var query_str = "?op=rpc&method=togglepref&key=VFEED_GROUP_BY_FEED";
- new Ajax.Request("backend.php", {
- parameters: query_str,
- onComplete: function(transport) {
- viewCurrentFeed();
- } });
+ new Ajax.Request("backend.php", {
+ parameters: query_str,
+ onComplete: function(transport) {
+ viewCurrentFeed();
+ } });
- };
- hotkey_actions["catchup_all"] = function() {
+ };
+ hotkey_actions["catchup_all"] = function() {
catchupAllFeeds();
- };
- hotkey_actions["cat_toggle_collapse"] = function() {
+ };
+ hotkey_actions["cat_toggle_collapse"] = function() {
if (activeFeedIsCat()) {
dijit.byId("feedTree").collapseCat(getActiveFeedId());
return;
}
- };
- hotkey_actions["goto_all"] = function() {
+ };
+ hotkey_actions["goto_all"] = function() {
viewfeed({feed: -4});
- };
- hotkey_actions["goto_fresh"] = function() {
+ };
+ hotkey_actions["goto_fresh"] = function() {
viewfeed({feed: -3});
- };
- hotkey_actions["goto_marked"] = function() {
+ };
+ hotkey_actions["goto_marked"] = function() {
viewfeed({feed: -1});
- };
- hotkey_actions["goto_published"] = function() {
+ };
+ hotkey_actions["goto_published"] = function() {
viewfeed({feed: -2});
- };
- hotkey_actions["goto_tagcloud"] = function() {
+ };
+ hotkey_actions["goto_tagcloud"] = function() {
displayDlg(__("Tag cloud"), "printTagCloud");
- };
- hotkey_actions["goto_prefs"] = function() {
+ };
+ hotkey_actions["goto_prefs"] = function() {
gotoPreferences();
- };
- hotkey_actions["select_article_cursor"] = function() {
+ };
+ hotkey_actions["select_article_cursor"] = function() {
var id = getArticleUnderPointer();
if (id) {
var row = $("RROW-" + id);
@@ -494,25 +498,25 @@ function init() {
}
}
}
- };
- hotkey_actions["create_label"] = function() {
+ };
+ hotkey_actions["create_label"] = function() {
addLabel();
- };
- hotkey_actions["create_filter"] = function() {
+ };
+ hotkey_actions["create_filter"] = function() {
quickAddFilter();
- };
- hotkey_actions["collapse_sidebar"] = function() {
+ };
+ hotkey_actions["collapse_sidebar"] = function() {
collapse_feedlist();
- };
- hotkey_actions["toggle_embed_original"] = function() {
+ };
+ hotkey_actions["toggle_embed_original"] = function() {
if (typeof embedOriginalArticle != "undefined") {
if (getActiveArticleId())
embedOriginalArticle(getActiveArticleId());
} else {
alert(__("Please enable embed_original plugin first."));
}
- };
- hotkey_actions["toggle_widescreen"] = function() {
+ };
+ hotkey_actions["toggle_widescreen"] = function() {
if (!isCdmMode()) {
_widescreen_mode = !_widescreen_mode;
@@ -524,11 +528,11 @@ function init() {
} else {
alert(__("Widescreen is not available in combined mode."));
}
- };
- hotkey_actions["help_dialog"] = function() {
+ };
+ hotkey_actions["help_dialog"] = function() {
helpDialog("main");
- };
- hotkey_actions["toggle_combined_mode"] = function() {
+ };
+ hotkey_actions["toggle_combined_mode"] = function() {
notify_progress("Loading, please wait...");
var value = isCdmMode() ? "false" : "true";
@@ -538,14 +542,14 @@ function init() {
parameters: query,
onComplete: function(transport) {
setInitParam("combined_display_mode",
- !getInitParam("combined_display_mode"));
+ !getInitParam("combined_display_mode"));
closeArticlePanel();
viewCurrentFeed();
- } });
- };
- hotkey_actions["toggle_cdm_expanded"] = function() {
+ } });
+ };
+ hotkey_actions["toggle_cdm_expanded"] = function() {
notify_progress("Loading, please wait...");
var value = getInitParam("cdm_expanded") ? "false" : "true";
@@ -557,8 +561,9 @@ function init() {
setInitParam("cdm_expanded", !getInitParam("cdm_expanded"));
viewCurrentFeed();
} });
- };
+ };
+ });
} catch (e) {
exception_error("init", e);
@@ -568,7 +573,11 @@ function init() {
function init_second_stage() {
try {
- dojo.addOnLoad(function() {
+ Event.observe(window, 'resize', function() {
+ dijit.byId("main").resize();
+ });
+
+ //dojo.addOnLoad(function() {
updateFeedList();
closeArticlePanel();
@@ -594,7 +603,7 @@ function init_second_stage() {
}
});
- });
+ //});
delCookie("ttrss_test");
diff --git a/plugins/af_zz_noautoplay/init.js b/plugins/af_zz_noautoplay/init.js
index 9b7bf0077..3cf3a381c 100644
--- a/plugins/af_zz_noautoplay/init.js
+++ b/plugins/af_zz_noautoplay/init.js
@@ -1,40 +1,43 @@
-dojo.addOnLoad(function() {
- PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM, function(row) {
- if (row) {
- console.log("af_zz_noautoplay!");
- console.log(row);
-
- var videos = row.getElementsByTagName("video");
- console.log(row.innerHTML);
-
- for (i = 0; i < videos.length; i++) {
-
- videos[i].removeAttribute("autoplay");
- videos[i].pause();
- videos[i].onclick = function() {
- this.paused ? this.play() : this.pause();
+require(['dojo/_base/kernel', 'dojo/ready'], function (dojo, ready) {
+ dojo.addOnLoad(function () {
+ PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM, function (row) {
+ if (row) {
+ console.log("af_zz_noautoplay!");
+ console.log(row);
+
+ var videos = row.getElementsByTagName("video");
+ console.log(row.innerHTML);
+
+ for (i = 0; i < videos.length; i++) {
+
+ videos[i].removeAttribute("autoplay");
+ videos[i].pause();
+ videos[i].onclick = function () {
+ this.paused ? this.play() : this.pause();
+ }
}
}
- }
- return true;
- });
+ return true;
+ });
- PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED, function(row) {
- if (row) {
- var videos = row.getElementsByTagName("video");
+ PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED, function (row) {
+ if (row) {
+ var videos = row.getElementsByTagName("video");
- for (i = 0; i < videos.length; i++) {
- videos[i].removeAttribute("autoplay");
- videos[i].pause();
- videos[i].onclick = function() {
- this.paused ? this.play() : this.pause();
+ for (i = 0; i < videos.length; i++) {
+ videos[i].removeAttribute("autoplay");
+ videos[i].pause();
+ videos[i].onclick = function () {
+ this.paused ? this.play() : this.pause();
+ }
}
+
}
- }
+ return true;
+ });
- return true;
});
}); \ No newline at end of file
diff --git a/plugins/shorten_expanded/init.js b/plugins/shorten_expanded/init.js
index 5e9e84aec..899f8a54d 100644
--- a/plugins/shorten_expanded/init.js
+++ b/plugins/shorten_expanded/init.js
@@ -22,26 +22,30 @@ function expandSizeWrapper(id) {
}
-dojo.addOnLoad(function() {
- PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM, function(row) {
- if (getInitParam('cdm_expanded')) {
+require(['dojo/_base/kernel', 'dojo/ready'], function (dojo, ready) {
- window.setTimeout(function() {
- if (row) {
- if (row.offsetHeight >= _shorten_expanded_threshold * window.innerHeight) {
- var content = row.select(".cdmContentInner")[0];
+ dojo.addOnLoad(function() {
+ PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM, function(row) {
+ if (getInitParam('cdm_expanded')) {
- if (content) {
- content.innerHTML = "<div class='contentSizeWrapper'>" +
- content.innerHTML + "</div><button class='expandPrompt' onclick='return expandSizeWrapper(\""+row.id+"\")' "+
- "href='#'>" + __("Click to expand article") + "</button>";
+ window.setTimeout(function() {
+ if (row) {
+ if (row.offsetHeight >= _shorten_expanded_threshold * window.innerHeight) {
+ var content = row.select(".cdmContentInner")[0];
+ if (content) {
+ content.innerHTML = "<div class='contentSizeWrapper'>" +
+ content.innerHTML + "</div><button class='expandPrompt' onclick='return expandSizeWrapper(\""+row.id+"\")' "+
+ "href='#'>" + __("Click to expand article") + "</button>";
+
+ }
}
}
- }
- }, 150);
- }
+ }, 150);
+ }
- return true;
+ return true;
+ });
});
+
});