m Protected "MediaWiki:Common.js" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
No edit summary
 
(18 intermediate revisions by the same user not shown)
Line 26: Line 26:
   });
   });
   element.addEventListener('click', (e) => {
   element.addEventListener('click', (e) => {
     // this will only get triggered on desktop
     // this will only get triggered on desktopg
     // because we call preventDefault for the "touchend" event
     // because we call preventDefault for the "touchend" event
     handler(e);
     handler(e);
Line 118: Line 118:
     var d = Math.floor(h / 24);
     var d = Math.floor(h / 24);
     return d + "d ago";
     return d + "d ago";
  }
  function jakeInjectStyles() {
    if (document.getElementById("jake-rc-style")) return;
    var style = document.createElement("style");
    style.id = "jake-rc-style";
    style.textContent =
      "#p-jake-recentchanges .vector-menu-heading{display:flex;align-items:center;justify-content:space-between;}" +
      "#p-jake-recentchanges .jake-rc-dot{width:8px;height:8px;border-radius:50%;background:#2da44e;box-shadow:0 0 0 2px rgba(45,164,78,.18);flex:0 0 auto;}" +
      "#p-jake-recentchanges .vector-menu-heading{font-size:.95em;}" +
      "#p-jake-recentchanges .vector-menu-content{font-size:.92em;}" +
      "#p-jake-recentchanges .jake-rc-meta{font-size:.85em;opacity:.85;}";
    document.head.appendChild(style);
   }
   }


Line 127: Line 141:
     if (!menu) return null;
     if (!menu) return null;
     if (document.getElementById("p-jake-recentchanges")) return null;
     if (document.getElementById("p-jake-recentchanges")) return null;
    jakeInjectStyles();


     var portlet = document.createElement("div");
     var portlet = document.createElement("div");
Line 134: Line 150:
     var heading = document.createElement("div");
     var heading = document.createElement("div");
     heading.className = "vector-menu-heading";
     heading.className = "vector-menu-heading";
     heading.textContent = "Recent changes";
 
     var headingText = document.createElement("span");
    headingText.textContent = "Recent changes";
 
    var dot = document.createElement("span");
    dot.className = "jake-rc-dot";
    dot.setAttribute("aria-hidden", "true");
    dot.title = "Live";
 
    heading.appendChild(headingText);
    heading.appendChild(dot);


     var content = document.createElement("div");
     var content = document.createElement("div");
Line 180: Line 206:
         action: "query",
         action: "query",
         list: "recentchanges",
         list: "recentchanges",
         rcnamespace: 0,
         rcnamespace: "0", /* 4 */
         rclimit: 5,
         rclimit: 5,
         rcprop: "title|timestamp|user",
         rcprop: "title|timestamp|user",
Line 261: Line 287:


   jakeWaitForMenu();
   jakeWaitForMenu();
})();
/* */
/*
(function () {
  function jakeAddFeedbackToNamespaces() {
    var list = document.querySelector("#p-associated-pages .vector-menu-content-list");
    if (!list) return;
    var existing = document.getElementById("jake-feedback-btn");
    if (existing && !existing.closest("#p-associated-pages")) {
      var oldLi = existing.closest("li");
      if (oldLi) oldLi.remove();
      else existing.remove();
    }
    if (document.getElementById("ca-jake-feedback")) return;
    var li = document.createElement("li");
    li.id = "ca-jake-feedback";
    li.className = "vector-tab-noicon mw-list-item";
    var a = document.createElement("a");
    a.id = "jake-feedback-btn";
    a.className = "jake-feedback-btn";
    a.href = mw.util.getUrl("Consumer_Rights_Wiki:Feedback", {
      from: mw.config.get("wgPageName")
    });
    a.title = "Give feedback";
    var span = document.createElement("span");
    span.textContent = "Give feedback";
    a.appendChild(span);
    li.appendChild(a);
    list.appendChild(li);
  }
  function jakeInit() {
    if (!window.mw || !mw.util || !mw.config) return;
    jakeAddFeedbackToNamespaces();
  }
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", jakeInit);
  } else {
    jakeInit();
  }
})();
*/
/* */
(function () {
  function jakeAddFooterSocialRow() {
    var footer = document.getElementById("footer");
    if (!footer) return;
    var places = document.getElementById("footer-places");
    if (!places) return;
    if (document.getElementById("footer-social")) return;
    var ul = document.createElement("ul");
    ul.id = "footer-social";
    ul.className = "noprint crw-footer-social";
    function add(href, label) {
      var li = document.createElement("li");
      var a = document.createElement("a");
      a.href = href;
      a.textContent = label;
      a.setAttribute("aria-label", label);
      a.title = label;
      li.appendChild(a);
      ul.appendChild(li);
    }
    // add("https://discord.gg/8w5rSNAXRf", "Discord");
    add("https://www.linkedin.com/company/consumer-rights-wiki/", "LinkedIn");
    add("https://www.reddit.com/user/ConsumerRightsWiki/", "Reddit");
    places.parentNode.insertBefore(ul, places.nextSibling);
  }
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", jakeAddFooterSocialRow);
  } else {
    jakeAddFooterSocialRow();
  }
})();
})();