diff options
| author | 2013-10-26 16:49:44 +0200 | |
|---|---|---|
| committer | 2013-10-26 16:49:44 +0200 | |
| commit | dd5273871a74d01d87fa1eaad7aa53bc1c148f85 (patch) | |
| tree | d59245952cc982ef8b09119e71739d3c0adc2c99 | |
| parent | 298b5ecf206ff0020d8fed29e9aba4d7b148b080 (diff) | |
| parent | 410f7631988e277d615c5acab44d3380f5f34b9b (diff) | |
Merge branch 'AvoidNonCacheableJavaScript' of https://github.com/Alkarex/FreshRSS into Alkarex-AvoidNonCacheableJavaScript
Conflicts:
app/views/javascript/main.phtml
| -rwxr-xr-x | app/controllers/indexController.php | 4 | ||||
| -rw-r--r-- | app/layout/layout.phtml | 3 | ||||
| -rw-r--r-- | app/views/javascript/actualize.phtml | 7 | ||||
| -rw-r--r-- | app/views/javascript/main.phtml | 440 | ||||
| -rw-r--r-- | public/scripts/main.js | 422 |
5 files changed, 442 insertions, 434 deletions
diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php index d1c615d6d..9f71c0e57 100755 --- a/app/controllers/indexController.php +++ b/app/controllers/indexController.php @@ -11,15 +11,13 @@ class indexController extends ActionController { if ($output == 'rss') { $this->view->_useLayout (false); } else { - View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'actualize'))); - if(!$output) { $output = $this->view->conf->viewMode(); Request::_param ('output', $output); } View::appendScript (Url::display ('/scripts/shortcut.js')); - View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'main'))); + View::appendScript (Url::display ('/scripts/main.js')); View::appendScript (Url::display ('/scripts/endless_mode.js')); if ($output == 'global') { diff --git a/app/layout/layout.phtml b/app/layout/layout.phtml index 331570873..7f389463e 100644 --- a/app/layout/layout.phtml +++ b/app/layout/layout.phtml @@ -8,6 +8,9 @@ <?php echo self::headTitle (); ?> <?php echo self::headStyle (); ?> + <script>//<![CDATA[ +<?php $this->renderHelper ('../javascript/main'); ?> + //]]></script> <?php echo self::headScript (); ?> </head> <body> diff --git a/app/views/javascript/actualize.phtml b/app/views/javascript/actualize.phtml index fa6e67ddb..f39540a9a 100644 --- a/app/views/javascript/actualize.phtml +++ b/app/views/javascript/actualize.phtml @@ -36,10 +36,3 @@ function updateFeeds () { }); } } - -$(document).ready (function () { - $("#actualize").click (function () { - updateFeeds (); - return false; - }); -}); diff --git a/app/views/javascript/main.phtml b/app/views/javascript/main.phtml index f6700330a..82ed8ff18 100644 --- a/app/views/javascript/main.phtml +++ b/app/views/javascript/main.phtml @@ -1,427 +1,19 @@ -<?php if ($this->conf->displayPosts () == 'no') { ?> -var hide_posts = true; -<?php } else { ?> -var hide_posts = false; -<?php } ?> - <?php - $s = $this->conf->shortcuts (); $mark = $this->conf->markWhen (); - $auto_load_more = $this->conf->autoLoadMore () -?> - -function is_reader_mode() { - var stream = $("#stream.reader"); - return stream.html() != null; -} - -function is_normal_mode() { - var stream = $("#stream.normal"); - return stream.html() != null; -} - -function is_global_mode() { - var stream = $("#stream.global"); - return stream.html() != null; -} - -function redirect (url, new_tab) { - if (url) { - if (new_tab) { - window.open (url); - } else { - location.href = url; - } - } -} - -function toggleContent (new_active, old_active) { - old_active.removeClass ("active"); - if (old_active[0] != new_active[0]) { - new_active.addClass ("active"); - } - - var box_to_move = "html,body"; - var relative_move = false; - if(is_global_mode()) { - box_to_move = "#panel"; - relative_move = true; - } - - var new_pos = new_active.position ().top, - old_scroll = $(box_to_move).scrollTop (), - new_scroll = old_scroll; - if (hide_posts) { - old_active.children (".flux_content").toggle (0); - - new_pos = new_active.position ().top; - old_scroll = $(box_to_move).scrollTop (); - - if(relative_move) { - new_pos += old_scroll; - } - - if (old_active[0] != new_active[0]) { - new_active.children (".flux_content").toggle (0, function () { - new_scroll = $(box_to_move).scrollTop (new_pos).scrollTop (); - }); - } - } else { - if(relative_move) { - new_pos += old_scroll; - } - - new_scroll = $(box_to_move).scrollTop (new_pos).scrollTop (); - } - - if ((new_scroll === old_scroll) && $.fn.lazyload) { - $(window).trigger ("scroll"); //When no scroll was done, generate fake scroll event for LazyLoad to load images - } - - <?php if ($mark['article'] == 'yes') { ?> - mark_read(new_active, true); - <?php } ?> -} - -function mark_read (active, only_not_read) { - if (active[0] === undefined || ( - only_not_read === true && !active.hasClass("not_read"))) { - return false; - } - - url = active.find ("a.read").attr ("href"); - if (url === undefined) { - return false; - } - - $.ajax ({ - type: 'POST', - url: url, - data : { ajax: true } - }).done (function (data) { - res = jQuery.parseJSON(data); - - active.find ("a.read").attr ("href", res.url); - - if (active.hasClass ("not_read")) { - active.removeClass ("not_read"); - } else if(only_not_read !== true || active.hasClass("not_read")) { - active.addClass ("not_read"); - } - }); -} - -function mark_favorite (active) { - if (active[0] === undefined) { - return false; - } - - url = active.find ("a.bookmark").attr ("href"); - if (url === undefined) { - return false; - } - - $.ajax ({ - type: 'POST', - url: url, - data : { ajax: true } - }).done (function (data) { - res = jQuery.parseJSON(data); - - active.find ("a.bookmark").attr ("href", res.url); - if (active.hasClass ("favorite")) { - active.removeClass ("favorite"); - } else { - active.addClass ("favorite"); - } - }); -} - -function prev_entry() { - old_active = $(".flux.active"); - last_active = $(".flux:last"); - new_active = old_active.prevAll (".flux:first"); - - if (new_active.hasClass("flux")) { - toggleContent (new_active, old_active); - } else if (old_active[0] === undefined && - new_active[0] === undefined) { - toggleContent (last_active, old_active); - } -} - -function next_entry() { - old_active = $(".flux.active"); - first_active = $(".flux:first"); - last_active = $(".flux:last"); - new_active = old_active.nextAll (".flux:first"); - - if (new_active.hasClass("flux")) { - toggleContent (new_active, old_active); - } else if (old_active[0] === undefined && - new_active[0] === undefined) { - toggleContent (first_active, old_active); - } - - <?php if ($auto_load_more !== 'yes') { ?> - if(last_active.attr("id") == new_active.attr("id")) { - load_more_posts (); - } - <?php } ?> -} - -function init_img () { - var maxWidth = $(".flux_content .content").width() / 2; - $(".flux_content .content img").each (function () { - if ($(this).width () > maxWidth) { - $(this).addClass("big"); - } - }); -} - -function inMarkViewport(flux, box_to_follow, relative_follow) { - var top = flux.position().top; - if(relative_follow) { - top += box_to_follow.scrollTop(); - } - var height = flux.height(); - var begin = top + 3 * height / 4; - var bot = Math.min(begin + 75, top + height); + echo 'var ', + 'hide_posts=', $this->conf->displayPosts () === 'no' ? 'true,' : 'false,', + 'hide_posts=', $this->conf->displayPosts () === 'no' ? 'true,' : 'false,', + 'auto_mark_article=', $mark['article'] === 'yes' ? 'true,' : 'false,', + 'auto_mark_site=', $mark['site'] === 'yes' ? 'true,' : 'false,', + 'auto_mark_scroll=', $mark['scroll'] === 'yes' ? 'true,' : 'false,', + 'auto_load_more=', $this->conf->autoLoadMore () === 'yes' ? 'true,' : 'false,', + 'does_lazyload=', $this->conf->lazyload() === 'yes' ? 'true' : 'false', ";\n"; - var windowTop = box_to_follow.scrollTop(); - var windowBot = windowTop + box_to_follow.height() / 2; - - return (windowBot >= begin && windowBot <= bot); -} - -function init_posts () { - init_img (); - <?php if($this->conf->lazyload() == 'yes') { ?> - if(is_global_mode()) { - $(".flux .content img").lazyload({ - container: $("#panel") - }); - } else { - $(".flux .content img").lazyload(); - } - <?php } ?> - - if (hide_posts) { - $(".flux:not(.active) .flux_content").hide (); - } - - var box_to_follow = $(window); - var relative_follow = false; - if(is_global_mode()) { - box_to_follow = $("#panel"); - relative_follow = true; - } - - <?php if ($mark['scroll'] == 'yes') { ?> - box_to_follow.scroll(function() { - $('.flux.not_read:visible').each(function() { - if($(this).children(".flux_content").is(':visible') && - inMarkViewport($(this), box_to_follow, relative_follow)) { - mark_read($(this), true); - } - }); - }); - <?php } ?> - - <?php if ($auto_load_more == 'yes') { ?> - box_to_follow.scroll(function() { - var load_more = $("#load_more"); - if (!load_more.is(':visible')) return; - var boxBot = box_to_follow.scrollTop() + box_to_follow.height(); - var load_more_top = load_more.position().top; - if(relative_follow) { - load_more_top += box_to_follow.scrollTop(); - } - - if(boxBot >= load_more_top) { - load_more_posts (); - } - }); - <?php } ?> -} - -function init_column_categories () { - if(!is_normal_mode()) { - return; - } - - $(".category").addClass ("stick"); - $(".categories .category .btn:first-child").width ("160px"); - $(".category").append ("<a class=\"btn dropdown-toggle\" href=\"#\"><i class=\"icon i_down\"></i></a>"); - - $(".category + .feeds").not(".active").hide(); - $(".category.active a.dropdown-toggle i").toggleClass ("i_up"); - - $(".category a.dropdown-toggle").click (function () { - $(this).children ().toggleClass ("i_up"); - $(this).parent ().next (".feeds").slideToggle(); - return false; - }); -} - -function init_shortcuts () { - // Touches de manipulation - shortcut.add("<?php echo $s['mark_read']; ?>", function () { - // on marque comme lu ou non lu - active = $(".flux.active"); - mark_read (active, false); - }, { - 'disable_in_input':true - }); - shortcut.add("shift+<?php echo $s['mark_read']; ?>", function () { - // on marque tout comme lu - url = $(".nav_menu a.read_all").attr ("href"); - redirect (url, false); - }, { - 'disable_in_input':true - }); - shortcut.add("<?php echo $s['mark_favorite']; ?>", function () { - // on marque comme favori ou non favori - active = $(".flux.active"); - mark_favorite (active); - }, { - 'disable_in_input':true - }); - - // Touches de navigation - shortcut.add("<?php echo $s['prev_entry']; ?>", prev_entry, { - 'disable_in_input':true - }); - shortcut.add("shift+<?php echo $s['prev_entry']; ?>", function () { - old_active = $(".flux.active"); - first = $(".flux:first"); - - if (first.hasClass("flux")) { - toggleContent (first, old_active); - } - }, { - 'disable_in_input':true - }); - shortcut.add("<?php echo $s['next_entry']; ?>", next_entry, { - 'disable_in_input':true - }); - shortcut.add("shift+<?php echo $s['next_entry']; ?>", function () { - old_active = $(".flux.active"); - last = $(".flux:last"); - - if (last.hasClass("flux")) { - toggleContent (last, old_active); - } - }, { - 'disable_in_input':true - }); - shortcut.add("<?php echo $s['go_website']; ?>", function () { - url_website = $(".flux.active .link a").attr ("href"); - - <?php if ($mark['site'] == 'yes') { ?> - $(".flux.active").each (function () { - mark_read($(this), true); - }); - <?php } ?> - - redirect (url_website, true); - }, { - 'disable_in_input':true - }); -} - -function init_stream_delegates(divStream) { - divStream.on('click', '.flux_header .item.title, .flux_header .item.date', function (e) { //flux_header_toggle - old_active = $(".flux.active"); - new_active = $(this).parent ().parent (); - if (e.target.tagName.toUpperCase() === 'A') { //Leave real links alone - <?php if ($mark['article'] == 'yes') { ?> - mark_read(new_active, true); - <?php } ?> - return true; - } - toggleContent (new_active, old_active); - }); - - divStream.on('click', '.flux a.read', function () { - active = $(this).parents (".flux"); - mark_read (active, false); - - return false; - }); - - divStream.on('click', '.flux a.bookmark', function () { - active = $(this).parents (".flux"); - mark_favorite (active); - - return false; - }); - - divStream.on('click', '.flux .content a', function () { - $(this).attr ('target', '_blank'); - }); - - divStream.on('click', '.item.title>a',function (e) { - if (e.ctrlKey) return true; //Allow default control-click behaviour such as open in backround-tab - $(this).parent ().click (); //Will perform toggle flux_content - return false; - }); - - divStream.on('click', '.bigMarkAsRead', function() { - url = $(".nav_menu a.read_all").attr ("href"); - redirect (url, false); - return false; - }); - - <?php if ($mark['site'] == 'yes') { ?> - divStream.on('click', '.flux .link a', function () { - mark_read($(this).parent().parent().parent(), true); - }); - <?php } ?> -} - -function init_nav_entries() { - $('.nav_entries a.previous_entry').click(function() { - prev_entry(); - return false; - }); - $('.nav_entries a.next_entry').click(function() { - next_entry(); - return false; - }); - $('.nav_entries a.up').click(function() { - var active_item = $(".flux.active"); - var windowTop = $(window).scrollTop(); - var item_top = active_item.position ().top; - - if(windowTop > item_top) { - $("html,body").scrollTop (item_top); - } else { - $("html,body").scrollTop (0); - } - return false; - }); -} - -function init_templates() { - $('#aside_flux').on('click', '.dropdown-toggle', function () { - if ($(this).nextAll('.dropdown-menu').length === 0) { - var feed_id = $(this).data('fid'), - feed_web = $(this).data('fweb'), - template = $('#feed_config_template').html().replace(/!!!!!!/g, feed_id).replace('http://example.net/', feed_web); - $(this).attr('href', '#dropdown-' + feed_id).prev('.dropdown-target').attr('id', 'dropdown-' + feed_id).parent().append(template); - } - }); -} - -$(function () { - if(is_reader_mode()) { - hide_posts = false; - } - init_posts (); - init_column_categories (); - init_shortcuts (); - init_stream_delegates($('#stream')); - init_nav_entries(); - init_templates(); -}); + $s = $this->conf->shortcuts (); + echo 'var shortcuts={', + 'mark_read:"', $s['mark_read'], '",', + 'mark_favorite:"', $s['mark_favorite'], '",', + 'go_website:"', $s['go_website'], '",', + 'prev_entry:"', $s['prev_entry'], '",', + 'next_entry:"', $s['next_entry'], '"', + "};\n"; diff --git a/public/scripts/main.js b/public/scripts/main.js new file mode 100644 index 000000000..72795be51 --- /dev/null +++ b/public/scripts/main.js @@ -0,0 +1,422 @@ +function is_reader_mode() { + var stream = $("#stream.reader"); + return stream.html() != null; +} + +function is_normal_mode() { + var stream = $("#stream.normal"); + return stream.html() != null; +} + +function is_global_mode() { + var stream = $("#stream.global"); + return stream.html() != null; +} + +function redirect (url, new_tab) { + if (url) { + if (new_tab) { + window.open (url); + } else { + location.href = url; + } + } +} + +function toggleContent (new_active, old_active) { + old_active.removeClass ("active"); + if (old_active[0] != new_active[0]) { + new_active.addClass ("active"); + } + + var box_to_move = "html,body"; + var relative_move = false; + if (is_global_mode()) { + box_to_move = "#panel"; + relative_move = true; + } + + var new_pos = new_active.position ().top, + old_scroll = $(box_to_move).scrollTop (), + new_scroll = old_scroll; + if (hide_posts) { + old_active.children (".flux_content").toggle (0); + + new_pos = new_active.position ().top; + old_scroll = $(box_to_move).scrollTop (); + + if (relative_move) { + new_pos += old_scroll; + } + + if (old_active[0] != new_active[0]) { + new_active.children (".flux_content").toggle (0, function () { + new_scroll = $(box_to_move).scrollTop (new_pos).scrollTop (); + }); + } + } else { + if (relative_move) { + new_pos += old_scroll; + } + + new_scroll = $(box_to_move).scrollTop (new_pos).scrollTop (); + } + + if ((new_scroll === old_scroll) && $.fn.lazyload) { + $(window).trigger ("scroll"); //When no scroll was done, generate fake scroll event for LazyLoad to load images + } + + if (auto_mark_article) { + mark_read(new_active, true); + } +} + +function mark_read (active, only_not_read) { + if (active[0] === undefined || ( + only_not_read === true && !active.hasClass("not_read"))) { + return false; + } + + url = active.find ("a.read").attr ("href"); + if (url === undefined) { + return false; + } + + $.ajax ({ + type: 'POST', + url: url, + data : { ajax: true } + }).done (function (data) { + res = jQuery.parseJSON(data); + + active.find ("a.read").attr ("href", res.url); + + if (active.hasClass ("not_read")) { + active.removeClass ("not_read"); + } else if (only_not_read !== true || active.hasClass("not_read")) { + active.addClass ("not_read"); + } + }); +} + +function mark_favorite (active) { + if (active[0] === undefined) { + return false; + } + + url = active.find ("a.bookmark").attr ("href"); + if (url === undefined) { + return false; + } + + $.ajax ({ + type: 'POST', + url: url, + data : { ajax: true } + }).done (function (data) { + res = jQuery.parseJSON(data); + + active.find ("a.bookmark").attr ("href", res.url); + if (active.hasClass ("favorite")) { + active.removeClass ("favorite"); + } else { + active.addClass ("favorite"); + } + }); +} + +function prev_entry() { + old_active = $(".flux.active"); + last_active = $(".flux:last"); + new_active = old_active.prevAll (".flux:first"); + + if (new_active.hasClass("flux")) { + toggleContent (new_active, old_active); + } else if (old_active[0] === undefined && + new_active[0] === undefined) { + toggleContent (last_active, old_active); + } +} + +function next_entry() { + old_active = $(".flux.active"); + first_active = $(".flux:first"); + last_active = $(".flux:last"); + new_active = old_active.nextAll (".flux:first"); + + if (new_active.hasClass("flux")) { + toggleContent (new_active, old_active); + } else if (old_active[0] === undefined && + new_active[0] === undefined) { + toggleContent (first_active, old_active); + } + + if ((!auto_load_more) && (last_active.attr("id") === new_active.attr("id"))) { + load_more_posts (); + } +} + +function init_img () { + var maxWidth = $(".flux_content .content").width() / 2; + $(".flux_content .content img").each (function () { + if ($(this).width () > maxWidth) { + $(this).addClass("big"); + } + }); +} + +function inMarkViewport(flux, box_to_follow, relative_follow) { + var top = flux.position().top; + if (relative_follow) { + top += box_to_follow.scrollTop(); + } + var height = flux.height(); + var begin = top + 3 * height / 4; + var bot = Math.min(begin + 75, top + height); + + var windowTop = box_to_follow.scrollTop(); + var windowBot = windowTop + box_to_follow.height() / 2; + + return (windowBot >= begin && bot >= windowBot); +} + +function init_posts () { + init_img (); + if (does_lazyload) { + if (is_global_mode()) { + $(".flux .content img").lazyload({ + container: $("#panel") + }); + } else { + $(".flux .content img").lazyload(); + } + } + + if (hide_posts) { + $(".flux:not(.active) .flux_content").hide (); + } + + var box_to_follow = $(window); + var relative_follow = false; + if (is_global_mode()) { + box_to_follow = $("#panel"); + relative_follow = true; + } + + if (auto_mark_scroll) { + box_to_follow.scroll(function() { + $('.flux.not_read:visible').each(function() { + if ($(this).children(".flux_content").is(':visible') && + inMarkViewport($(this), box_to_follow, relative_follow)) { + mark_read($(this), true); + } + }); + }); + } + + if (auto_load_more) { + box_to_follow.scroll(function() { + var load_more = $("#load_more"); + if (!load_more.is(':visible')) return; + var boxBot = box_to_follow.scrollTop() + box_to_follow.height(); + var load_more_top = load_more.position().top; + if (relative_follow) { + load_more_top += box_to_follow.scrollTop(); + } + if (boxBot >= load_more_top) { + load_more_posts (); + } + }); + } +} + +function init_column_categories () { + if (!is_normal_mode()) { + return; + } + + $(".category").addClass ("stick"); + $(".categories .category .btn:first-child").width ("160px"); + $(".category").append ("<a class=\"btn dropdown-toggle\" href=\"#\"><i class=\"icon i_down\"></i></a>"); + + $(".category + .feeds").not(".active").hide(); + $(".category.active a.dropdown-toggle i").toggleClass ("i_up"); + + $(".category a.dropdown-toggle").click (function () { + $(this).children ().toggleClass ("i_up"); + $(this).parent ().next (".feeds").slideToggle(); + return false; + }); +} + +function init_shortcuts () { + // Touches de manipulation + shortcut.add(shortcuts['mark_read'], function () { + // on marque comme lu ou non lu + active = $(".flux.active"); + mark_read (active, false); + }, { + 'disable_in_input':true + }); + shortcut.add("shift+"+shortcuts['mark_read'], function () { + // on marque tout comme lu + url = $(".nav_menu a.read_all").attr ("href"); + redirect (url, false); + }, { + 'disable_in_input':true + }); + shortcut.add(shortcuts['mark_favorite'], function () { + // on marque comme favori ou non favori + active = $(".flux.active"); + mark_favorite (active); + }, { + 'disable_in_input':true + }); + + // Touches de navigation + shortcut.add(shortcuts['prev_entry'], prev_entry, { + 'disable_in_input':true + }); + shortcut.add("shift+"+shortcuts['prev_entry'], function () { + old_active = $(".flux.active"); + first = $(".flux:first"); + + if (first.hasClass("flux")) { + toggleContent (first, old_active); + } + }, { + 'disable_in_input':true + }); + shortcut.add(shortcuts['next_entry'], next_entry, { + 'disable_in_input':true + }); + shortcut.add("shift+"+shortcuts['next_entry'], function () { + old_active = $(".flux.active"); + last = $(".flux:last"); + + if (last.hasClass("flux")) { + toggleContent (last, old_active); + } + }, { + 'disable_in_input':true + }); + shortcut.add(shortcuts['go_website'], function () { + url_website = $(".flux.active .link a").attr ("href"); + + if (auto_mark_site) { + $(".flux.active").each (function () { + mark_read($(this), true); + }); + } + + redirect (url_website, true); + }, { + 'disable_in_input':true + }); +} + +function init_stream_delegates(divStream) { + divStream.on('click', '.flux_header .item.title, .flux_header .item.date', function (e) { //flux_header_toggle + old_active = $(".flux.active"); + new_active = $(this).parent ().parent (); + if (e.target.tagName.toUpperCase() === 'A') { //Leave real links alone + if (auto_mark_article) { + mark_read(new_active, true); + } + return true; + } + toggleContent (new_active, old_active); + }); + + divStream.on('click', '.flux a.read', function () { + active = $(this).parents (".flux"); + mark_read (active, false); + + return false; + }); + + divStream.on('click', '.flux a.bookmark', function () { + active = $(this).parents (".flux"); + mark_favorite (active); + + return false; + }); + + divStream.on('click', '.flux .content a', function () { + $(this).attr ('target', '_blank'); + }); + + divStream.on('click', '.item.title>a',function (e) { + if (e.ctrlKey) return true; //Allow default control-click behaviour such as open in backround-tab + $(this).parent ().click (); //Will perform toggle flux_content + return false; + }); + + divStream.on('click', '.bigMarkAsRead', function() { + url = $(".nav_menu a.read_all").attr ("href"); + redirect (url, false); + return false; + }); + + if (auto_mark_site) { + divStream.on('click', '.flux .link a', function () { + mark_read($(this).parent().parent().parent(), true); + }); + } +} + +function init_nav_entries() { + $('.nav_entries a.previous_entry').click(function() { + prev_entry(); + return false; + }); + $('.nav_entries a.next_entry').click(function() { + next_entry(); + return false; + }); + $('.nav_entries a.up').click(function() { + var active_item = $(".flux.active"); + var windowTop = $(window).scrollTop(); + var item_top = active_item.position ().top; + + if (windowTop > item_top) { + $("html,body").scrollTop (item_top); + } else { + $("html,body").scrollTop (0); + } + return false; + }); +} + +function init_templates() { + $('#aside_flux').on('click', '.dropdown-toggle', function () { + if ($(this).nextAll('.dropdown-menu').length === 0) { + var feed_id = $(this).data('fid'), + feed_web = $(this).data('fweb'), + template = $('#feed_config_template').html().replace(/!!!!!!/g, feed_id).replace('http://example.net/', feed_web); + $(this).attr('href', '#dropdown-' + feed_id).prev('.dropdown-target').attr('id', 'dropdown-' + feed_id).parent().append(template); + } + }); +} + +function init_actualize() { + $("#actualize").click (function () { + $.getScript('./?c=javascript&a=actualize').done(function() { + updateFeeds (); + }); + return false; + }); +} + +$(function () { + if (is_reader_mode()) { + hide_posts = false; + } + init_posts (); + init_column_categories (); + init_shortcuts (); + init_stream_delegates($('#stream')); + init_nav_entries(); + init_templates(); + init_actualize(); +}); |
