The version of vichan running on lainchan.org
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

76 linhas
2.3KB

  1. /*
  2. * treeview.js
  3. * https://github.com/vichan-devel/vichan/blob/master/js/treeview.js
  4. *
  5. * Released under the MIT license
  6. * Copyright (c) 2014 Marcin Łabanowski <marcin@6irc.net>
  7. *
  8. * Usage:
  9. * $config['additional_javascript'][] = 'js/jquery.min.js';
  10. * $config['additional_javascript'][] = 'js/treeview.js';
  11. *
  12. */
  13. if (active_page == 'thread' || active_page == 'ukko' || active_page == 'index')
  14. $(function() {
  15. if (window.Options && Options.get_tab('general')) {
  16. var selector = '#treeview-global>input';
  17. Options.extend_tab("general", "<label id='treeview-global'><input type='checkbox' /> "+_('Use tree view by default')+"</label>");
  18. $(selector).on('change', function() {
  19. if (localStorage.treeview === 'true') {
  20. localStorage.treeview = 'false';
  21. } else {
  22. localStorage.treeview = 'true';
  23. }
  24. });
  25. if (localStorage.treeview === 'true') {
  26. $(selector).attr('checked', 'checked');
  27. }
  28. }
  29. });
  30. if (active_page == 'thread')
  31. $(function() {
  32. var treeview = function(enable) {
  33. if (enable === true) {
  34. $('.post.reply').each(function(){
  35. var references = [];
  36. $(this).find('.body a').each(function(){
  37. if ($(this).html().match('^&gt;&gt;[0-9]+$')) {
  38. references.push(parseInt($(this).html().replace('&gt;&gt;', '')));
  39. }
  40. });
  41. var maxref = references.reduce(function(a,b) { return a > b ? a : b; }, 0);
  42. var parent_post = $("#reply_"+maxref);
  43. if (parent_post.length == 0) return;
  44. var margin = parseInt(parent_post.css("margin-left"))+32;
  45. var post = $(this);
  46. var br = post.next();
  47. post.detach().css("margin-left", margin).insertAfter(parent_post.next());
  48. br.detach().insertAfter(post);
  49. });
  50. } else {
  51. $('.post.reply').sort(function(a,b) {
  52. return parseInt(a.id.replace('reply_', '')) - parseInt(b.id.replace('reply_', ''));
  53. }).each(function () {
  54. var post = $(this);
  55. var br = post.next();
  56. post.detach().css('margin-left', '').appendTo('.thread');
  57. br.detach().insertAfter(post);
  58. });
  59. }
  60. }
  61. $('hr:first').before('<div class="unimportant" style="text-align:right"><label for="treeview"><input type="checkbox" id="treeview"> '+_('Tree view')+'</label></div>');
  62. $('input#treeview').on('change', function(e) { treeview($(this).is(':checked')); });
  63. if (localStorage.treeview === 'true') {
  64. treeview(true);
  65. $('input#treeview').attr('checked', true);
  66. }
  67. });