global_view.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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, #stream.prompt", 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 button, #bigMarkAsRead', function () {
  20. console.log($(this).attr("formaction"));
  21. $.ajax({
  22. type: "POST",
  23. url: $(this).attr("formaction"),
  24. async: false
  25. });
  26. window.location.reload(false);
  27. return false;
  28. });
  29. panel_loading = false;
  30. });
  31. }
  32. function init_close_panel() {
  33. $("#overlay .close").click(function () {
  34. $("#panel").html('');
  35. $("#panel").slideToggle();
  36. $("#overlay").fadeOut();
  37. return false;
  38. });
  39. }
  40. function init_global_view() {
  41. // TODO: should be based on generic classes.
  42. $(".box a").click(function () {
  43. var link = $(this).attr("href");
  44. load_panel(link);
  45. return false;
  46. });
  47. $(".nav_menu #nav_menu_read_all, .nav_menu .toggle_aside").remove();
  48. init_stream($("#panel"));
  49. }
  50. function init_all_global_view() {
  51. if (!(window.$ && window.init_stream)) {
  52. if (window.console) {
  53. console.log('FreshRSS Global view waiting for JS…');
  54. }
  55. window.setTimeout(init_all_global_view, 50); //Wait for all js to be loaded
  56. return;
  57. }
  58. init_global_view();
  59. init_close_panel();
  60. }
  61. if (document.readyState && document.readyState !== 'loading') {
  62. init_all_global_view();
  63. } else if (document.addEventListener) {
  64. document.addEventListener('DOMContentLoaded', function () {
  65. init_all_global_view();
  66. }, false);
  67. }