The version of vichan running on lainchan.org
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

129 行
4.2KB

  1. /*
  2. * forced-anon.js
  3. * https://github.com/savetheinternet/Tinyboard/blob/master/js/forced-anon.js
  4. *
  5. * Released under the MIT license
  6. * Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
  7. * Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net>
  8. *
  9. * Usage:
  10. * $config['additional_javascript'][] = 'js/jquery.min.js';
  11. * //$config['additional_javascript'][] = 'js/options.js';
  12. * //$config['additional_javascript'][] = 'js/style-select.js';
  13. * //$config['additional_javascript'][] = 'js/options/general.js';
  14. * $config['additional_javascript'][] = 'js/forced-anon.js';
  15. *
  16. */
  17. if (active_page == 'ukko' || active_page == 'thread' || active_page == 'index' || (window.Options && Options.get_tab('general')))
  18. $(document).ready(function() {
  19. var force_anon = function() {
  20. if ($(this).children('a.capcode').length == 0) {
  21. var id = $(this).parent().children('a.post_no:eq(1)').text();
  22. if ($(this).children('a.email').length != 0)
  23. var p = $(this).children('a.email');
  24. else
  25. var p = $(this);
  26. old_info[id] = {'name': p.children('span.name').text(), 'trip': p.children('span.trip').text()};
  27. p.children('span.name').text('Anonymous');
  28. if (p.children('span.trip').length != 0)
  29. p.children('span.trip').text('');
  30. }
  31. };
  32. var enable_fa = function() {
  33. $('p.intro label').each(force_anon);
  34. };
  35. var disable_fa = function() {
  36. $('p.intro label').each(function() {
  37. if ($(this).children('a.capcode').length == 0) {
  38. var id = $(this).parent().children('a.post_no:eq(1)').text();
  39. if(old_info[id]) {
  40. if ($(this).children('a.email').length != 0)
  41. var p = $(this).children('a.email');
  42. else
  43. var p = $(this);
  44. p.children('span.name').text(old_info[id]['name']);
  45. if (p.children('span.trip').length != 0)
  46. p.children('span.trip').text(old_info[id]['trip']);
  47. }
  48. }
  49. });
  50. };
  51. var toggle_id = function() {
  52. if (localStorage.hideids == 'true'){
  53. $(this).addClass('hidden');
  54. } else {
  55. $(this).removeClass('hidden');
  56. }
  57. };
  58. old_info = {};
  59. forced_anon = localStorage['forcedanon'] ? true : false;
  60. if (window.Options && Options.get_tab('general')) {
  61. var s1 = '#hide-ids', s2 = '#forced-anon', e = 'change';
  62. Options.extend_tab("general", "<label id='hide-ids'><input type='checkbox' /> "+_('Hide IDs')+"</label>");
  63. Options.extend_tab("general", "<label id='forced-anon'><input type='checkbox' /> "+_('Forced anonymity')+"</label>");
  64. }
  65. else {
  66. var s1 = '#hide-ids', s2 = '#forced-anon', e = 'click';
  67. $('hr:first').before('<div id="hide-ids" style="text-align:right"><a class="unimportant" href="javascript:void(0)">Hide IDs</a></div>');
  68. $('hr:first').before('<div id="forced-anon" style="text-align:right"><a class="unimportant" href="javascript:void(0)">-</a></div>');
  69. $('div#forced-anon a').text(_('Forced anonymity')+' (' + (forced_anon ? _('enabled') : _('disabled')) + ')');
  70. }
  71. $(s1).on(e, function(e) {
  72. if (!localStorage.hideids || localStorage.hideids == 'false') {
  73. localStorage.hideids = 'true';
  74. if (window.Options && Options.get_tab('general')) e.target.checked = true;
  75. } else {
  76. localStorage.hideids = 'false';
  77. if (window.Options && Options.get_tab('general')) e.target.checked = false;
  78. }
  79. $('.poster_id').each(toggle_id);
  80. });
  81. $(s2).on(e, function() {
  82. forced_anon = !forced_anon;
  83. if (forced_anon) {
  84. $('div#forced-anon a').text(_('Forced anonymity')+' ('+_('enabled')+')');
  85. localStorage.forcedanon = true;
  86. enable_fa();
  87. } else {
  88. $('div#forced-anon a').text(_('Forced anonymity')+' ('+_('disabled')+')');
  89. delete localStorage.forcedanon;
  90. disable_fa();
  91. }
  92. return false;
  93. });
  94. // initial option setup on script load
  95. if (localStorage.hideids == 'true'){
  96. if (window.Options && Options.get_tab('general')) $('#hide-ids>input').prop('checked',true);
  97. $('.poster_id').each(toggle_id);
  98. }
  99. if(forced_anon) {
  100. enable_fa();
  101. if (window.Options && Options.get_tab('general')) {
  102. $('#toggle-locked-threads>input').prop('checked', true);
  103. }
  104. }
  105. $(document).on('new_post', function(e, post) {
  106. if (forced_anon)
  107. $(post).find('p.intro label').each(force_anon);
  108. if (localStorage.hideids == 'true')
  109. $(post).find('.poster_id').each(toggle_id);
  110. });
  111. });