Informator beta

Dodatkowe informacje o zgłoszeniach w panelu naruszeń portalu Wykop.pl.

  1. // ==UserScript==
  2. // @name Informator beta
  3. // @namespace http://www.wykop.pl/ludzie/Deykun
  4. // @description Dodatkowe informacje o zgłoszeniach w panelu naruszeń portalu Wykop.pl.
  5. // @author Deykun
  6. // @icon http://x3.cdn03.imgwykop.pl/c3201142/comment_bWVFKhjLOfg5B1xNe08BMxJTQF4qMS8V.gif
  7. // @include htt*wykop.pl/naruszenia/*
  8. // @version 3.51
  9. // @grant none
  10. // @run-at document-end
  11. //
  12. // ==/UserScript==
  13.  
  14. $(document).ready(function() {
  15. var wersjainformatora = '3.50';
  16. console.info('Informator '+wersjainformatora);
  17. // Style CSS - kolory można podmienić na własne
  18. var dziennynocny = $('.rbl-block').css('background-color');
  19. /* Matowa paleta kolorów */
  20. var kolory = ['#8aa380', '#b3868f', '#d4cbad', '#62a2b1', '#8cb1ba', '#717171'];
  21. /* Kontrastowa paleta kolorów */
  22. if (localStorage.getItem('informator.lo-o(2)') === '1') {kolory = ['#54a145', '#bb4751', '#e3d77c', '#4da0c5', '#8cb1ba', '#717171'];}
  23. // Jeśli niżej własne kolory i usuniesz "//" przed "kolory = " dodatek użyje Twojej palety
  24. // kolory = ['#prawidlowe', '#nieprawidlowe', '#zmieniony', '#konsultacji', '#nowe', '#rozpatrywane'];
  25. if (dziennynocny !== 'rgb(255, 255, 255)'){kolory[5] = '#717171';}
  26. $('head').append('<link href="http://deykun.boo.pl/lab/informator/styl-informator.css" rel="stylesheet">\
  27. <link href="http://deykun.boo.pl/lab/informator/styl-informator-piechart.css" rel="stylesheet">\
  28. <style>\
  29. .prawidlowe, .infMod {background-color: '+kolory[0]+';}\
  30. .nieprawidlowe, .infUst {background-color: '+kolory[1]+';}\
  31. .zmieniony, .infPow {background-color: '+kolory[2]+';}\
  32. .konsultacji {background-color: '+kolory[3]+';}\
  33. .nowe, .infNag {background-color: '+kolory[4]+';}\
  34. .rozpatrywane {background-color: '+kolory[5]+';}\
  35. .tlo {background-color: #fff;}\
  36. .infoBox { width: 1.2em; border-radius: 3px;}\
  37. .infoBar, .infoBox { display:inline-block; vertical-align:middle; height: 1.2em;}\
  38. .infoLeft { border-top-left-radius: 3px; border-bottom-left-radius: 3px;}\
  39. .infoRigth { border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\
  40. [tooltip]:before { content: attr(tooltip);\
  41. position: absolute;\
  42. opacity: 0;\
  43. background-color: '+dziennynocny+';\
  44. transition: all 0.25s ease;\
  45. padding: 10px;}\
  46. [tooltip]:hover:before { opacity: 1; margin-top: 50px;}\
  47. [tooltip]:not([tooltip-persistent]):before { pointer-events: none;}\
  48. </style>');
  49.  
  50. /* Strona z naruszeniami */
  51. if (document.location.pathname.match('/naruszenia/moje')){
  52. // Liczba zgłoszeń z określonymi ocenami:
  53. var prawidlowe, dprawidlowe, nieprawidlowe, dnieprawidlowe, zmieniony, dzmieniony, konsultacja, dkonsultacja, nowe, dnowe, rozpatrywane, i;
  54. prawidlowe = nieprawidlowe = zmieniony = konsultacja = nowe = rozpatrywane = 0;
  55. dprawidlowe = dnieprawidlowe = dzmieniony = dkonsultacja = dnowe = 0;
  56.  
  57. // Ukrywanie miniaturek w panelu zgłoszeń
  58. if (localStorage.getItem('informator.lo-o(1)') === '1') {$('div[class="media-content m-reset-float"]').remove();}
  59. /*
  60. Dane localStorage:
  61. lm - lista znanych moderatorów
  62. lp - lista znanych powodów
  63.  
  64. los - lista tagów ostatnio sprawdzonych
  65. lds - lista tagów do sprawdzenia
  66. nlos, nlds - listy wyżej do zapisania
  67. */
  68.  
  69. var lm = [], lp = [], los = [], lds = [], nlos = [], nlds = [];
  70.  
  71. for(i = 0 ; localStorage.getItem('informator.lm-m('+i+')') ; i++){
  72. lm[i] = localStorage.getItem('informator.lm-m('+i+')');}
  73.  
  74. for(i = 0 ; localStorage.getItem('informator.lp-p('+i+')') ; i++){
  75. lp[i] = localStorage.getItem('informator.lp-p('+i+')');}
  76.  
  77. for(i = 0 ; localStorage.getItem('informator.los-t('+i+')') ; i++){
  78. los[i] = localStorage.getItem('informator.los-t('+i+')');}
  79.  
  80. for(i = 0 ; localStorage.getItem('informator.lds-t('+i+')') ; i++){
  81. lds[i] = localStorage.getItem('informator.lds-t('+i+')');}
  82.  
  83. if (lm.length != ''){ console.log('Moderatorzy ('+lm.length+'): '+lm);}
  84. if (lp.length != ''){ console.log('Powody ('+lp.length+'): '+lp);}
  85. if (los.length != ''){ console.log('Ostatnio rozpatrzone zgłoszenia ('+los.length+'): '+los);}
  86. if (lds.length != ''){ console.log('Zgłoszenia wymagające ponownego rozpatrzenia ('+lds.length+'): '+lds);}
  87. console.log(' ');
  88.  
  89. // Funkcja zajmująca się rozpatrzonymi zgłoszeniami
  90. function analizuj(tag, werdykt, moderator, powod){
  91. switch (werdykt) {
  92. case 'Prawidłowe': prawidlowe++; break;
  93. case 'Nieprawidłowe': nieprawidlowe++; break;
  94. case 'Zmieniony powód': zmieniony++; break;
  95. case 'W konsultacji': konsultacja++; break;}
  96.  
  97. if (los.indexOf(tag) === -1 ) {
  98. //Nowe rozpatrzone zgłoszenie
  99. zapisz(werdykt, moderator, powod);
  100. zmiana(werdykt);
  101. } else if (lds.indexOf(tag) !== -1 && werdykt !== 'W konsultacji'){
  102. //Zgłoszenie rozpatrzone ponownie po trafieniu do konsultacji
  103. zapisz(werdykt, moderator, powod);
  104. zmiana(werdykt);
  105. }
  106.  
  107. nlos.push(tag);
  108. if (werdykt === 'W konsultacji') {nlds.push(tag);}
  109. }
  110.  
  111. // Funkcja zapisywania zgłoszenia w pamięci
  112. function zapisz(werdykt, moderator, powod) {
  113. if (lm.indexOf(moderator) === -1){
  114. //Nieznany moderator
  115. console.info('Dodano moderatora '+moderator+'.');
  116. localStorage.setItem('informator.lm-m('+lm.length+')', moderator);
  117. lm[lm.length] = moderator;
  118. }
  119. if (lp.indexOf(powod) === -1) {
  120. //Nieznany powod
  121. console.info('Dodano powód "'+powod+'".');
  122. localStorage.setItem('informator.lp-p('+lp.length+')', powod);
  123. lp[lp.length] = powod;
  124. }
  125.  
  126. //Zapis
  127. var werdykt = werdykt.toLowerCase().charAt(0);
  128. if (werdykt === 'w'){werdykt = 'k';}
  129.  
  130. var zapis = localStorage.getItem('informator.lo-'+werdykt) || 0; zapis++;
  131. localStorage.setItem('informator.lo-'+werdykt, zapis);
  132. zapis = localStorage.getItem('informator.lm-m('+lm.indexOf(moderator)+')-'+werdykt) || 0; zapis++;
  133. localStorage.setItem('informator.lm-m('+lm.indexOf(moderator)+')-'+werdykt, zapis);
  134. zapis = localStorage.getItem('informator.lp-p('+lp.indexOf(powod)+')-'+werdykt) || 0; zapis++;
  135. localStorage.setItem('informator.lp-p('+lp.indexOf(powod)+')-'+werdykt, zapis);
  136. zapis = localStorage.getItem('informator.lm-m('+lm.indexOf(moderator)+')-p('+lp.indexOf(powod)+')-'+werdykt) || 0; zapis++;
  137. localStorage.setItem('informator.lm-m('+lm.indexOf(moderator)+')-p('+lp.indexOf(powod)+')-'+werdykt, zapis);
  138. }
  139. function zmiana(werdykt){
  140. switch (werdykt) {
  141. case 'Prawidłowe': dprawidlowe++; break;
  142. case 'Nieprawidłowe': dnieprawidlowe++; break;
  143. case 'Zmieniony powód': dzmieniony++; break;
  144. case 'W konsultacji': dkonsultacja++; break;
  145. case 'Nowe': dnowe++; break;
  146. }
  147. }
  148.  
  149. /*
  150. Pobranie listy zgłoszeń z tabeli:
  151. t - tag,
  152. w - werdykt,
  153. m - moderator
  154. p - powod
  155. */
  156.  
  157. var t, w, m, p;
  158. $('#violationsList > tbody > tr').each(
  159. function() {
  160. t = $(this).find('td:eq(2) > p').text().split(':').reverse().pop();
  161. w = $(this).find('td:eq(3) > strong').text();
  162. p = $(this).find('td:eq(2) > p > span').text();
  163.  
  164. if (w === 'Prawidłowe' || w === 'Nieprawidłowe' || w === 'Zmieniony powód' || w === 'W konsultacji'){
  165. //Rozpatrzone zgłoszenia
  166. m = $(this).find('td:eq(3) > span').text().split('przez').pop().trim();
  167. console.log('#'+t+' rozpatrzone przez moderatora '+m+': '+w+' (powód zgłoszenia "'+p+'").');
  168. analizuj(t,w,m,p);
  169. } else if (w === 'Nowe' || w === ''){
  170. //Nierozpatrzone zgłoszenia
  171. switch (w) {
  172. case 'Nowe':
  173. nowe++;
  174. var test = (lds.indexOf(t) !== -1);
  175. console.log(test)
  176. if (lds.indexOf(t) === -1){ zmiana(w); console.log(t)}
  177. break;
  178. case '': rozpatrywane++; break;}
  179. nlds.push(t);
  180. console.log('#'+t+' oczekuje na rozpatrzenie (powód zgłoszenia "'+p+'").');
  181. }
  182. });
  183.  
  184.  
  185. /* Aktualizacja list sprawdzonych i do sprawdzenia*/
  186. for (i = 0 ; i <= nlos.length ; i++) {
  187. if (i !== nlos.length){localStorage.setItem('informator.los-t('+i+')', nlos[i]);
  188. } else {localStorage.removeItem('informator.los-t('+i+')');}}
  189. for (i = 0 ; i <= nlds.length ; i++) {
  190. if (i !== nlds.length){localStorage.setItem('informator.lds-t('+i+')', nlds[i]);
  191. } else {localStorage.removeItem('informator.lds-t('+i+')');}}
  192.  
  193. /* Podanie podsumowania w konsoli */
  194. console.log(' ');
  195. console.info('Prawidłowe : '+prawidlowe+' | Nieprawidłowe : '+nieprawidlowe+' | Zmieniony powód : '+zmieniony+' | W konsultacji : '+konsultacja+' | Nowe : '+nowe+' | Rozpatrywane : '+rozpatrywane);
  196.  
  197. /* Panel statystyk na pasku */
  198. if (prawidlowe === 0 && nieprawidlowe === 0 && zmieniony === 0 && konsultacja === 0 && nowe === 0 && rozpatrywane === 0){
  199. $('.bspace > ul:nth-child(3) > li:nth-child(3)').after('<li><a href="http://www.wykop.pl/naruszenia/informator">Statystyki</a></liv>');
  200. } else {
  201. var przycisk = '<li><a href="http://www.wykop.pl/naruszenia/informator">';
  202. if (prawidlowe !== 0 || nieprawidlowe !== 0){
  203. var suma = prawidlowe + nieprawidlowe;
  204. if(dprawidlowe !== 0){przycisk += '(+'+dprawidlowe+') ';}
  205. przycisk += prawidlowe+' <div class="infoBar infoLeft prawidlowe" tooltip="Prawidłowe zgłoszenia ('+prawidlowe+' - '+Math.round((prawidlowe/suma)*100)+'%)" style="width:'+(5+Math.round((prawidlowe/suma)*100))+'px"></div><div class="infoBar infoRigth nieprawidlowe" tooltip="Nieprawidłowe zgłoszenia ('+nieprawidlowe+' - '+Math.round((nieprawidlowe/suma)*100)+'%)" style="width:'+(5+Math.round((nieprawidlowe/suma)*100))+'px"></div> '+nieprawidlowe;
  206. if(dnieprawidlowe !== 0){przycisk += ' (+'+dnieprawidlowe+')';}}
  207. if (zmieniony !== 0){
  208. przycisk += ' <div class="infoBox zmieniony" tooltip="Zgłoszenia w których powód został zmieniony ('+zmieniony+')"></div> '+zmieniony;
  209. if(dzmieniony !== 0){przycisk += ' (+'+dzmieniony+')';}}
  210. if (konsultacja !== 0){
  211. przycisk += ' <div class="infoBox konsultacji" tooltip="Zgłoszenia które zostały przekazane do konsultacji ('+konsultacja+')"></div> '+konsultacja;
  212. if(dkonsultacja !== 0){przycisk += ' (+'+dkonsultacja+')';}}
  213. if (nowe !== 0){
  214. przycisk += ' <div class="infoBox nowe" tooltip="Zgłoszenie czekające na rozpatrzenie ('+nowe+')"></div> '+nowe;
  215. if(dnowe !== 0){przycisk += ' (+'+dnowe+')';}}
  216. if (rozpatrywane !== 0){
  217. przycisk += ' <div class="infoBox rozpatrywane" tooltip="Zgłoszenia które w tym momencie przegląda moderator ('+rozpatrywane+')"></div> '+rozpatrywane;}
  218. przycisk += '</a></li>';
  219. $('.bspace > ul:last-child').append(przycisk);}
  220. }
  221.  
  222. /* Strona wyświetlająca szczegółowe statystyki */
  223. else if (document.location.pathname.match('/naruszenia/informator')){
  224. $('.bspace > ul:last-child').append('<li class="active"><a href="http://www.wykop.pl/naruszenia/informator">Informator</a></liv>');
  225. var infkomunikat = 'Witaj w zakładce ustawień dodatku Informator!</p><p>Jeśli uważasz dodatek za użyteczny i wart polecenia pamiętaj, że zawsze <strong>możesz go ocenić</strong> <a href="http://www.wykop.pl/dodatki/pokaz/409/">tutaj</a>. :)';
  226. var panelmoderatorow = '', panelpowodow = '', panelustawien = '', panelustawienmod = '', i;
  227. var lh = '', lhls = [];
  228.  
  229. /* Pobieranie danych liczbowych do wykresu */
  230. function informatorGetLS(indeks){
  231. var output = [];
  232. output[0] = Number(localStorage.getItem('informator.'+indeks+'-p') || 0);
  233. output[1] = Number(localStorage.getItem('informator.'+indeks+'-z') || 0);
  234. output[2] = Number(localStorage.getItem('informator.'+indeks+'-k') || 0);
  235. output[3] = Number(localStorage.getItem('informator.'+indeks+'-n') || 0);
  236. return output;}
  237.  
  238. /* Rysowanie wykresu */
  239. function informatorPieChart(prawidlowe, zmieniony, konsultacja, nieprawidlowe){
  240. var suma = prawidlowe+zmieniony+konsultacja+nieprawidlowe;
  241. var deg = 0, charArea = 0, procent = '';
  242. var colorClass = ['prawidlowe', 'zmieniony ', 'konsultacji ', 'nieprawidlowe '];
  243. var html = '';
  244. if (suma !== 0){
  245. html = '<div class="divChart"><div class="chartBase"><div class="info">';
  246. for (var i = 0; i < arguments.length ; i++){
  247. if(arguments[i] === 0){continue;}
  248.  
  249. charArea = Math.round((arguments[i]/suma)*360);
  250. if(charArea < 120){
  251. html += '<div class="clipPie" style="transform: rotate('+deg+'deg);"><div class="chartPie clipPie" style="transform: rotate('+(charArea - 180)+'deg);"><div class="charPieSmall '+colorClass[i]+'"></div></div></div>';
  252. deg += charArea;
  253. charArea = 0;
  254. }
  255. if(charArea > 180){
  256. html += '<div class="clipPie" style="transform: rotate('+deg+'deg);"><div class="chartPie clipPie '+colorClass[i]+'" style="transform: rotate(0deg);"></div></div><div class="clipPie" style="transform: rotate('+(deg+179)+'deg);"><div class="chartPie clipPie '+colorClass[i]+'" style="transform: rotate(-178deg);"></div></div>';
  257. deg += 180;
  258. charArea -= 180;
  259. }
  260. if(charArea > 0){
  261. html += '<div class="clipPie" style="transform: rotate('+deg+'deg);"><div class="chartPie clipPie '+colorClass[i]+'" style="transform: rotate('+(charArea - 180)+'deg);"></div></div>';
  262. deg += charArea;}}
  263. if (prawidlowe !== 0){procent = '<h3>'+(parseFloat(((prawidlowe)/suma)*100).toFixed(1))+'%</h3><p>prawidłowych z <strong>'+suma+'</strong></p>';
  264. } else if (zmieniony !== 0 || konsultacja !== 0){procent = '<h3>'+(parseFloat(((zmieniony+konsultacja)/suma)*100).toFixed(1))+'%</h3><p>uzasadnionych z <strong>'+suma+'</strong></p>';
  265. } else {procent = '<h3>100.0%</h3><p>nieprawidłowych z <strong>'+suma+'</strong></p>';}
  266. html += '<div class="chartCenter"><span>'+procent+'</span></div></div><div class="detalils"><span class="topChart leftChart"><div class="infoBox prawidlowe"></div> '+prawidlowe+'</span><span class="topChart rightChart">'+nieprawidlowe+' <div class="infoBox nieprawidlowe"></div></span><span class="bottomChart leftChart"><div class="infoBox zmieniony"></div> '+zmieniony+'</span><span class="bottomChart rightChart">'+konsultacja+' <div class="infoBox konsultacji"></div></span></div></div></div>';
  267. }
  268.  
  269. var output = [html,suma];
  270. return output;
  271. }
  272. //Sortowanie wykresów
  273. function informatorSort(a,b){
  274. var zamiana; do {
  275. zamiana = false;
  276. for (i = 0 ; i < a.length-1 ; i++) {
  277. if (a[i] < a[i+1]) {
  278. var temp = a[i];
  279. a[i] = a[i+1];
  280. a[i+1] = temp;
  281.  
  282. temp = b[i];
  283. b[i] = b[i+1];
  284. b[i+1] = temp;
  285. zamiana = true;}}
  286. } while (zamiana);}
  287. /* Rekacja na wybór powodu */
  288. function informatorPowody(){
  289. var id = this.id;
  290. var panelmoderatorowdetale = '';
  291. if (id === ''){panelmoderatorowdetale = panelmoderatorow;
  292. } else {
  293. id = Number(id.split('_').pop()); //id powodu
  294. var nazwapowod = localStorage.getItem('informator.lp-p('+id+')');
  295. /* Pobieranie danych do wykresu moderatorów */
  296. var sorta = [], sortb = [];
  297. for(var i = 0 ; localStorage.getItem('informator.lm-m('+i+')') ; i++){
  298. if (localStorage.getItem('informator.lm-m('+i+')-o(1)') !== '1'){
  299. lh = localStorage.getItem('informator.lm-m('+i+')');
  300. lhls = informatorGetLS('lm-m('+i+')-p('+id+')');
  301. sorta[i] = informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[1];
  302. if (sorta[i] !== 0) { sortb[i] = '<div>'+informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[0]+'<h3>'+lh+'</h3></div>';}
  303. else {sortb[i] = '';}}
  304. else {sorta[i] = 0; sortb[i] = '';}}
  305. /* Wykres sumaryczny */
  306. lhls = informatorGetLS('lp-p('+id+')');
  307. panelmoderatorowdetale += '<p>Statystyki dla powodu "'+nazwapowod+'".<p><div>'+informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[0]+'<h3>Razem</h3></div>';
  308. informatorSort(sorta,sortb); for(var i = 0 ; i < sorta.length ; i++){panelmoderatorowdetale += sortb[i];}}
  309. var dtime = 400;
  310. $('.infMod').slideUp( dtime, function() { $('.infMod').empty().append('<h2>Moderatorzy</h2>'+panelmoderatorowdetale).slideDown((dtime/2));});}
  311.  
  312. /* Rekacja panelu ustawień */
  313. function informatorUstawienia(){
  314. var id = this.id;
  315. if (id == 'ustMin'){
  316. var temp = localStorage.getItem('informator.lo-o(1)') || 0;
  317. if (temp === '1') {
  318. temp = 0; var check = '✗ Ukryj miniaturki znalezisk w panelu.';
  319. } else {
  320. temp = 1; var check = '✔ Miniaturki znalezisk są ukrywane w panelu.';}
  321. localStorage.setItem('informator.lo-o(1)', temp);
  322. $('#ustMin').empty().append(check);
  323. } else if (id == 'ustKont'){
  324. var temp = localStorage.getItem('informator.lo-o(2)') || 0;
  325. if (temp === '1') {
  326. temp = 0; var check = 'Większy kontrast kolorów dodatku.';
  327. $('.prawidlowe, .infMod').css('background-color', '#8aa380');
  328. $('.nieprawidlowe, .infUst').css('background-color', '#b3868f');
  329. $('.zmieniony, .infPow').css('background-color', '#d4cbad');
  330. $('.konsultacji').css('background-color', '#62a2b1');
  331. $('.nowe, .infNag').css('background-color', '#8cb1ba');
  332. } else {
  333. temp = 1; var check = 'Mniejszy kontrast kolorów dodatku.';
  334. $('.prawidlowe, .infMod').css('background-color', '#54a145');
  335. $('.nieprawidlowe, .infUst').css('background-color', '#bb4751');
  336. $('.zmieniony, .infPow').css('background-color', '#e3d77c');
  337. $('.konsultacji').css('background-color', '#4da0c5');
  338. $('.nowe, .infNag').css('background-color', '#8cb1ba');}
  339. localStorage.setItem('informator.lo-o(2)', temp);
  340. $('#ustKont').empty().append(check);
  341. } else {
  342. id = Number(id.split('_').pop()); //id moderatora
  343. var temp = localStorage.getItem('informator.lm-m('+id+')-o(1)');
  344. if (temp === '1'){
  345. temp = 0; var check = localStorage.getItem('informator.lm-m('+id+')')+' ✔ ';
  346. } else {
  347. temp = 1; var check = localStorage.getItem('informator.lm-m('+id+')')+' ✗ ';}}
  348. localStorage.setItem('informator.lm-m('+id+')-o(1)', temp);
  349. $('#infoIDM_'+id).empty().append(check);}
  350.  
  351. /* Pobieranie danych dla moderatorów */
  352. var sorta = [], sortb = [];
  353. for(i = 0 ; localStorage.getItem('informator.lm-m('+i+')') ; i++){
  354. if (localStorage.getItem('informator.lm-m('+i+')-o(1)') !== '1'){
  355. lh = localStorage.getItem('informator.lm-m('+i+')');
  356. lhls = informatorGetLS('lm-m('+i+')');
  357. sorta[i] = informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[1];
  358. sortb[i] = '<div>'+informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[0]+'<h3>'+lh+'</h3></div>';}
  359. else {sorta[i] = 0; sortb[i] = '';} }
  360. informatorSort(sorta,sortb); for(var i = 0 ; i < sorta.length ; i++){panelmoderatorow += sortb[i];}
  361.  
  362. /* Pobieranie danych dla powodów */
  363. sorta = []; sortb = [];
  364. for(i = 0 ; localStorage.getItem('informator.lp-p('+i+')') ; i++){
  365. lh = localStorage.getItem('informator.lp-p('+i+')');
  366. lhls = informatorGetLS('lp-p('+i+')');
  367. sorta[i] = informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[1];
  368. sortb[i] = '<div id="infoIDP_'+i+'">'+informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[0]+'<p>"<em>'+lh+'</em>"</p></div>';}
  369. informatorSort(sorta,sortb); for(var i = 0 ; i < sorta.length ; i++){panelpowodow += sortb[i];}
  370.  
  371. /* Panel ustawień */
  372. if (localStorage.getItem('informator.lo-o(1)') === '1'){
  373. panelustawien += '<p><span id="ustMin">✔ Miniaturki znalezisk są ukrywane w panelu.</span></p>';
  374. } else {
  375. panelustawien += '<p><span id="ustMin">✗ Ukryj miniaturki znalezisk w panelu.</span></p>';}
  376. if (localStorage.getItem('informator.lo-o(2)') === '1'){
  377. panelustawien += '<p><span id="ustKont">Mniejszy kontrast kolorów dodatku.</span></p>';
  378. } else {
  379. panelustawien += '<p><span id="ustKont">Większy kontrast kolorów dodatku.</span></p>';}
  380. panelustawienmod += '<p>Widoczność moderatorów : ';
  381. for(i = 0 ; localStorage.getItem('informator.lm-m('+i+')') ; i++){
  382. if (localStorage.getItem('informator.lm-m('+i+')-o(1)') === '1'){
  383. panelustawienmod += ' <span id="infoIDM_'+i+'">'+localStorage.getItem('informator.lm-m('+i+')')+' ✗ </span>';
  384. } else {
  385. panelustawienmod += ' <span id="infoIDM_'+i+'">'+localStorage.getItem('informator.lm-m('+i+')')+' ✔ </span>';
  386. }}
  387. panelustawienmod += '</p>';
  388. /* Wykres sumaryczny */
  389. lhls = informatorGetLS('lo');
  390. /* Wyświetlenie panelu - jeśli są jakieś dane, i jeśli ich nie ma */
  391. if (lhls[0]+lhls[1]+lhls[2]+lhls[3] !== 0){
  392. $('.error-page').replaceWith('<div id="informator"><div class="infNag"><div><table>\
  393. <tr><td class="bold">'+lhls[0]+'</td><td><div class="white"><div class="infoBox prawidlowe"></div></div></td><td class="bold">Prawidłowe</td></tr>\
  394. <tr><td class="bold">'+lhls[3]+'</td><td><div class="white"><div class="infoBox nieprawidlowe"></div></div></td> <td class="bold">Nieprawidłowe</td> </tr>\
  395. <tr><td>'+lhls[1]+'</td><td><div class="white"><div class="infoBox zmieniony"></div></div></td><td>Zmieniony powód</td></tr>\
  396. <tr><td>'+lhls[2]+'</td><td><div class="white"><div class="infoBox konsultacji"></div></div></td><td>W konsultacji</td></tr>\
  397. <tr><td></td><td><div class="white"><div class="infoBox nowe"></div></div></td> <td>Nowe</td></tr>\
  398. <tr><td></td><td><div class="white"><div class="infoBox rozpatrywane"></div></div></td><td>Obecnie rozpatrywane</td></tr></table><h2>Legenda</h2></div>\
  399. <div id="infSuma">'+informatorPieChart(lhls[0],lhls[1],lhls[2],lhls[3])[0]+'<h2>Razem</h2></div></div>\
  400. <div class="infMod"><h2>Moderatorzy</h2>'+panelmoderatorow+'</div>\
  401. <div class="infPow"><h2>Powody zgłoszeń</h2><p>Po wybraniu powodu pojawi się więcej informacji.</p>'+panelpowodow+'</div>\
  402. <div class="infUst"><div><h2>Ustawienia</h2>'+panelustawien+panelustawienmod+'</div><div><h2>O dodatku</h2><p>Jeśli uważasz dodatek za użyteczny i wart polecenia pamiętaj, że zawsze <strong>możesz go ocenić</strong> <a href="http://www.wykop.pl/dodatki/pokaz/409/">tutaj</a>. :)</p><p>Błędy w jego działaniu możesz zgłosić w <a href="http://www.wykop.pl/wiadomosc-prywatna/konwersacja/Deykun/">prywatnej wiadomości</a>.</p></div></div></div>');
  403. } else {
  404. $('.error-page').replaceWith('<div id="informator"><div class="infNag"><div><table>\
  405. <tr><td class="bold">'+lhls[0]+'</td><td><div class="white"><div class="infoBox prawidlowe"></div></div></td><td class="bold">Prawidłowe</td></tr>\
  406. <tr><td class="bold">'+lhls[3]+'</td><td><div class="white"><div class="infoBox nieprawidlowe"></div></div></td> <td class="bold">Nieprawidłowe</td> </tr>\
  407. <tr><td>'+lhls[1]+'</td><td><div class="white"><div class="infoBox zmieniony"></div></div></td><td>Zmieniony powód</td></tr>\
  408. <tr><td>'+lhls[2]+'</td><td><div class="white"><div class="infoBox konsultacji"></div></div></td><td>W konsultacji</td></tr>\
  409. <tr><td></td><td><div class="white"><div class="infoBox nowe"></div></div></td> <td>Nowe</td></tr>\
  410. <tr><td></td><td><div class="white"><div class="infoBox rozpatrywane"></div></div></td><td>Obecnie rozpatrywane</td></tr></table><h2>Legenda</h2></div>\
  411. <div id="infSuma"><p>Test</p><h2>Razem</h2></div></div>\
  412. <div class="infUst"><div><h2>Ustawienia</h2>'+panelustawien+'</div><div><h2>O dodatku</h2><p>Jeśli uważasz dodatek za użyteczny i wart polecenia pamiętaj, że zawsze <strong>możesz go ocenić</strong> <a href="http://www.wykop.pl/dodatki/pokaz/409/">tutaj</a>. :)</p><p>Błędy w jego działaniu możesz zgłosić w <a href="http://www.wykop.pl/wiadomosc-prywatna/konwersacja/Deykun/">prywatnej wiadomości</a>.</p></div></div></div>');
  413. }
  414. /* Obsługa akcji */
  415. $('.infPow > div, #infSuma > div').click(informatorPowody);
  416. $('.infUst span').click(informatorUstawienia);
  417. }
  418. else if (document.location.pathname.match('/naruszenia/')){
  419. $('.bspace > ul:last-child').append('<li><a href="http://www.wykop.pl/naruszenia/informator">Statystyki</a></liv>');
  420. }
  421. });