global_view.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. "use strict";
  2. var panel_loading = false;
  3. function load_panel(link) {
  4. if (panel_loading) {
  5. return;
  6. }
  7. panel_loading = true;
  8. $.get(link, function (data) {
  9. $("#panel").append($(".nav_menu, #stream .day, #stream .flux, #stream .pagination", data));
  10. $("#panel .nav_menu").children().not("#nav_menu_read_all").remove();
  11. init_load_more($("#panel"));
  12. init_posts();
  13. $("#overlay").fadeIn();
  14. $("#panel").slideToggle();
  15. // force le démarrage du scroll en haut.
  16. // Sans ça, si l'on scroll en lisant une catégorie par exemple,
  17. // en en ouvrant une autre ensuite, on se retrouve au même point de scroll
  18. $("#panel").scrollTop(0);
  19. $('#panel').on('click', '#nav_menu_read_all > a, #nav_menu_read_all .item > a, #bigMarkAsRead', function () {
  20. $.ajax({
  21. url: $(this).attr("href"),
  22. async: false
  23. });
  24. //$("#panel .close").first().click();
  25. window.location.reload(false);
  26. return false;
  27. });
  28. panel_loading = false;
  29. });
  30. }
  31. function init_close_panel() {
  32. $("#panel .close").click(function () {
  33. $("#panel").html('<a class="close" href="#">' + window.iconClose + '</a>');
  34. init_close_panel();
  35. $("#panel").slideToggle();
  36. $("#overlay").fadeOut();
  37. return false;
  38. });
  39. }
  40. function init_global_view() {
  41. $("#stream .box-category a").click(function () {
  42. var link = $(this).attr("href");
  43. load_panel(link);
  44. return false;
  45. });
  46. $(".nav_menu #nav_menu_read_all, .nav_menu .toggle_aside").remove();
  47. init_stream($("#panel"));
  48. }
  49. function init_all_global_view() {
  50. if (!(window.$ && window.init_stream)) {
  51. if (window.console) {
  52. console.log('FreshRSS Global view waiting for JS…');
  53. }
  54. window.setTimeout(init_all_global_view, 50); //Wait for all js to be loaded
  55. return;
  56. }
  57. init_global_view();
  58. init_close_panel();
  59. }
  60. if (document.readyState && document.readyState !== 'loading') {
  61. init_all_global_view();
  62. } else if (document.addEventListener) {
  63. document.addEventListener('DOMContentLoaded', function () {
  64. init_all_global_view();
  65. }, false);
  66. }