Kellokortti.fi-korjauksia

Käytettävyysparannuksia Kellokortti.fi -palveluun

  1. // ==UserScript==
  2. // @name Kellokortti.fi-korjauksia
  3. // @version 1.3.2
  4. // @description Käytettävyysparannuksia Kellokortti.fi -palveluun
  5. // @namespace raina
  6. // @match https://app.kellokortti.fi/*
  7. // @grant none
  8. // ==/UserScript==
  9.  
  10.  
  11. // Estää päävalikon sulkeutumisen rosvosektoria klikattaessa
  12. [].forEach.call(document.querySelectorAll('.rmRootLink, .rmLink[href="#"]'), el => {
  13. el.addEventListener("click", ev => {
  14. ev.preventDefault()
  15. ev.stopPropagation();
  16. });
  17. });
  18.  
  19.  
  20. // Oma leimauspääte päävalikkoon, kyllä on hienot systeemit.
  21. let paavali = document.querySelector('#ctl00_paavalikko1_mnumain ul.rmGroup');
  22. let omaleima = paavali.querySelector('li:first-child').cloneNode("true");
  23. omaleima.classList.remove("rmFirst");
  24. omaleima.querySelector('a').href = "/app/omaleimaus";
  25. omaleima.querySelector('a').onclick = function(ev) { ev.preventDefault(); ev.stopPropagation(); location.href = this.href; };
  26. omaleima.querySelector('span').textContent = "Oma leimauspääte";
  27. omaleima.addEventListener("mouseover", function() {
  28. let alaots = paavali.querySelector('.rmExpanded');
  29. if (!alaots) return;
  30. let alavali = paavali.querySelector('.rmExpanded + .rmSlide');
  31. alavali.querySelector('.rmGroup').style.transition = "left .45s cubic-bezier(0.165, 0.84, 0.44, 1), visibility 0s .45s";
  32. alavali.querySelector('.rmGroup').style.visibility = "hidden";
  33. alavali.querySelector('.rmGroup').style.left = "-199px";
  34. alavali.style.zIndex = "0";
  35. alavali.style.overflow = "hidden";
  36. alaots.parentElement.style.zIndex = "0";
  37. alaots.classList.remove("rmExpanded");
  38. });
  39. let what = function() {
  40. setTimeout(fuu => paavali.insertBefore(omaleima, paavali.querySelector('li:nth-child(3)')));
  41. document.querySelector('.rmRootLink').removeEventListener("mouseover", what);
  42. };
  43. document.querySelector('.rmRootLink').addEventListener("mouseover", what);
  44.  
  45.  
  46. // Etusivun pikkuisten linkkien suurennus säiliöidensä mittoihin
  47. if ("/app/" == location.pathname) {
  48. let style = document.createElement("style");
  49. style.textContent = `
  50. #oikeapalsta .box {
  51. position: relative;
  52. }
  53.  
  54. #oikeapalsta .box table a {
  55. position: absolute;
  56. left: 0;
  57. top: 0;
  58. width: 100%;
  59. height: 100%;
  60. padding: 45% 1ex 1ex 1ex;
  61. box-sizing: border-box;
  62. transition: background .1s;
  63. }
  64.  
  65. #oikeapalsta .box table a:hover {
  66. background: rgba(0, 0, 0, .05);
  67. transition-duration: 0s;
  68. }
  69. `;
  70. document.head.appendChild(style);
  71. }
  72.  
  73.  
  74. // Automaattinen viikko-näkymän päivitys, jos sivu on viimeksi ladattu yli 15min sitten
  75. if ("/app/viikko" == location.pathname) {
  76. window.loaded = Date.now();
  77. window.addEventListener("focus", () => {
  78. if (Date.now() - window.loaded > 1000 * 60 * 15) {
  79. location.reload();
  80. }
  81. });
  82. }