Trambambaj

Filtry dla speców

Apr 9th, 2021 (edited)
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name       Spec Filtr
  3. // @version    1.0
  4. // @include    *hegira.com.pl/*
  5. // @copyright  free
  6. // ==/UserScript==
  7. "use strict";
  8. const specData = $('select[name*="spec_zatrudnij_id"]')[0];
  9.   let zapamiet;
  10.   let reset;
  11.   if (specData) {
  12.     //pierwotna lista speców
  13.     zapamiet = document.querySelector(
  14.       "#srodeksyswSzeroki > div > center > table > tbody"
  15.     ).innerHTML;
  16.     // funkcja resetująca
  17.     reset = function (co) {
  18.       localStorage.setItem(`${co}`, "0");
  19.       document.querySelector(
  20.         "#srodeksyswSzeroki > div > center > table > tbody"
  21.       ).innerHTML = zapamiet;
  22.     };
  23.  
  24.     //obiekt zawodów z listy kupna za AD
  25.     const zawody = {};
  26.     for (let i = 0; i < specData.length; i++) {
  27.       zawody[specData[i].value] = specData[i].innerText.trim();
  28.     }
  29.     const listaSpec = specData.innerHTML;
  30.  
  31.     $("h2:contains(Specjaliści):first").after(
  32.       `<select name = "specFiltr">${listaSpec}</select><button type = "button" id = "filtrowanieSpec" title = "Filtruj wybranych specjalistów.">Filtruj</button><button type = "button" id = "rFiltr">Resetuj filtr</button><br><br>`
  33.     );
  34.     //filtr zawodów
  35.     const filtrZaw = function (wybranyZaw) {
  36.       for (const [id, z] of Object.entries(zawody))
  37.         id != wybranyZaw
  38.           ? $(`td:contains(${z})`).parent().remove()
  39.           : console.log(z);
  40.     };
  41.  
  42.     const zawPam = localStorage.getItem("filtrZawodow");
  43.     zawPam !== "0" && filtrZaw(zawPam); //nakłada filtr po odświeżeniu
  44.  
  45.     $("button#filtrowanieSpec").click(function () {
  46.       const wybranyZaw = document.getElementsByName("specFiltr")[0].value;
  47.       filtrZaw(wybranyZaw);
  48.       localStorage.setItem("filtrZawodow", wybranyZaw);
  49.     });
  50.     $("button#rFiltr").click(function () {
  51.       reset("filtrZawodow");
  52.     });
  53.   }
  54.   if ($("td:contains(brak)").length > 0) {
  55.     $("h2:contains(Specjaliści)").after(
  56.       `<br><button type = "button" id = "filtrBrak" title = "Filtruj speców bez przydziału.">Filtruj brak przydziału</button><button type = "button" id = "rrFiltr">Resetuj filtr</button><br><br>`
  57.     );
  58.     //filtr braku zatrudnienia
  59.     const czyZatrudniony = function () {
  60.       const specBezP = $("td:contains(brak)").parent();
  61.       let specHTML = "";
  62.       for (let i = 0; i < specBezP.length; i++)
  63.         specHTML += specBezP[i].outerHTML;
  64.       document.querySelector(
  65.         "#srodeksyswSzeroki > div > center > table > tbody"
  66.       ).innerHTML = specHTML;
  67.     };
  68.     $("button#filtrBrak").click(function () {
  69.       czyZatrudniony();
  70.       localStorage.setItem("brakZawodow", "1");
  71.     });
  72.     localStorage.getItem("brakZawodow") === "1" && czyZatrudniony(); // nakłada filtr po odświeżeniu
  73.     $("button#rrFiltr").click(function () {
  74.       reset("brakZawodow");
  75.     });
  76.   }
Add Comment
Please, Sign In to add comment