소도구:rc-lazy-load.js

최근 편집: 2019년 3월 12일 (화) 00:38
낙엽1124 (토론 | 기여)님의 2019년 3월 12일 (화) 00:38 판 (특:차이/138149 수정 재시도(limit 쿼리를 검사하려던 조건문이었는데 검사를 일부 빼먹어서 추가합니다))
// <nowiki>
(function() {
  "use strict";

  function init() {
    // 만일 개선된 필터를 사용하고 있지 않다면 아무것도 하지 않습니다.
    if (mw.user.options.get("rcenhancedfilters-disable") == 1) return;

    // 바뀐글 링크를 limit가 0인 링크로 바꿉니다.
    $("#site-navigation .changes a").attr(
      "href",
      $("#site-navigation .changes a").attr("href") + "?limit=0"
    );

    if (
      mw.config.get("wgCanonicalSpecialPageName") == "Recentchanges" &&
      (new URLSearchParams(window.location.search)).get("limit") === "0"
    ) {
      // "주어진 기간 동안에 이 조건들에 맞는 바뀜이 없습니다." 메시지를 안 보여줍니다.
      var css = document.createElement("style");
      css.type = "text/css";
      css.innerHTML =
        ".mw-rcfilters-ui-changesListWrapperWidget-results-noresult { display: none; }";
      document.body.appendChild(css);

      // 최근 바뀜 필터가 초기화된 다음
      mw.hook("structuredChangeFilters.ui.initialized").add(function() {
        var limitButtonIndex = 1,
          // limit를 50으로 변경하는 버튼
          btn = $(
            ".mw-rcfilters-ui-changesLimitPopupWidget .oo-ui-buttonSelectWidget a"
          ).eq(limitButtonIndex);

        // 버튼을 누르는 동작을 흉내냅니다. 즉 limit를 50으로 다시 설정합니다.
        btn.trigger(
          jQuery.Event("mousedown", { which: OO.ui.MouseButtons.LEFT })
        );
        btn[0].dispatchEvent(new MouseEvent("mouseup"));
      });
    }
  }

  $(init);
})();
// </nowiki>