Пређи на садржај

Медијавики:Gadget-PatrolLog.js — разлика између измена

Iz Vojne Enciklopedije
Promena koda
Promena koda
Ред 1: Ред 1:
// Gadget: FRQuickLinks (FlaggedRevs + Patrol helpers)
// Gadget: FRQuickLinks (FlaggedRevs + patrol helpers)
// Prikazuje linkove u Toolbox-u samo za sysop/patroller
// Toolbox linkovi za sysop/patroller — Vojna Enciklopedija
// Latinica, prilagodjeno za Vojnu Enciklopediju
// - 2 GLOBAL linka
// - 2 PER-PAGE linka
// - Status (klik skroluje na formu za proveru na dnu strane)


$(function () {
$(function () {


   // samo u glavnom imenskom prostoru (clanci)
   // samo članci (ns=0)
   if (mw.config.get('wgNamespaceNumber') !== 0) return;
   if (mw.config.get('wgNamespaceNumber') !== 0) return;


   // dozvoli samo sysop ili patroller
   // samo sysop ili patroller
   var groups = mw.config.get('wgUserGroups') || [];
   var groups = mw.config.get('wgUserGroups') || [];
   if (!(groups.includes('sysop') || groups.includes('patroller'))) return;
   if (!(groups.includes('sysop') || groups.includes('patroller'))) return;


   var pageName = mw.config.get('wgPageName'); // npr AB_23
   var pageName = mw.config.get('wgPageName'); // npr. AB_23
   var titleTxt = mw.config.get('wgTitle');   // npr AB 23
   var titleTxt = mw.config.get('wgTitle');     // npr. AB 23


  // FlaggedRevs stanje
   var curRev = mw.config.get('wgCurRevisionId') || 0;
   var stableId = mw.config.get('wgStableRevisionId'); // 0 ako nema stabilne
   var stableRev = mw.config.get('wgStableRevisionId') || 0;
   var curId = mw.config.get('wgCurRevisionId');
 
  var hasStable = !!stableId && stableId !== 0;
  var hasPending = hasStable && (stableId !== curId);
 
  // helper: review entry point (stable -> current diff) ili fallback na istoriju
  function getReviewEntryUrl() {
    if (hasPending) {
      return mw.util.getUrl(pageName, { diff: 'cur', oldid: 'stable' });
    }
    return mw.util.getUrl('Special:History/' + pageName);
  }
 
  function getReviewEntryText() {
    if (!hasStable) return 'Nema stabilne → istorija';
    if (hasPending) return 'Ima pending → pregledaj diff';
    return 'Nema pending → istorija';
  }


   /* -------------------------------------------------
   /* -------------------------------------------------
Ред 66: Ред 50:
     'FlaggedRevs: stabilizacija',
     'FlaggedRevs: stabilizacija',
     't-fr-stabilize',
     't-fr-stabilize',
     'Podesavanja stabilne verzije za "' + titleTxt + '"'
     'Podešavanja stabilne verzije za "' + titleTxt + '"'
   );
   );


Ред 81: Ред 65:


   /* -------------------------------------------------
   /* -------------------------------------------------
   * 5) Pregledaj i proveri (stable current)
   * 5) Pregledaj izmene (DIFF) — pametno:
   *    (ovo je pravi "entry point" za prihvatanje izmena)
  *    - ako postoji stable i razlikuje se: stable -> current
   *    - inače: prev -> current
   * ------------------------------------------------- */
   * ------------------------------------------------- */
  var diffHref, diffLabel, diffHint;
  if (stableRev > 0 && curRev > 0 && stableRev !== curRev) {
    diffHref = mw.util.getUrl(pageName, { diff: 'cur', oldid: String(stableRev) });
    diffLabel = 'Pregledaj i proveri (stable → current)';
    diffHint = 'Razlika između stabilne i trenutne verzije (najbolje za FlaggedRevs)';
  } else {
    diffHref = mw.util.getUrl(pageName, { diff: 'cur', oldid: 'prev' });
    diffLabel = 'Pregledaj poslednju izmenu (diff)';
    diffHint = 'Razlika poslednje izmene (prev → current)';
  }
   mw.util.addPortletLink(
   mw.util.addPortletLink(
     'p-tb',
     'p-tb',
     mw.util.getUrl(pageName, { diff: 'cur', oldid: 'stable' }),
     diffHref,
     'Pregledaj i proveri (stable → current)',
     diffLabel,
     't-fr-diff-stable',
     't-fr-diff',
     'Otvori diff stabilna → trenutna (odavde ide prihvatanje izmene)'
     diffHint
   );
   );


   /* -------------------------------------------------
   /* -------------------------------------------------
   * 6) Pametan link (sam bira: diff ako ima pending, inače istorija)
   * 6) Status: Nepregledano/Provereno
  *    Klik: skroluj do forme za proveru na dnu strane
   * ------------------------------------------------- */
   * ------------------------------------------------- */
   mw.util.addPortletLink(
   var statusText = (stableRev > 0) ? 'Status: Provereno' : 'Status: Nepregledano';
    'p-tb',
    getReviewEntryUrl(),
    getReviewEntryText(),
    't-fr-smart',
    'Pametan link: vodi na najlogičniji korak'
  );


  /* -------------------------------------------------
   var statusLink = mw.util.addPortletLink(
  * 7) Status: Provereno / Nepregledano (klikabilno)
  * ------------------------------------------------- */
   var statusText = (hasStable && !hasPending) ? 'Status: Provereno' : 'Status: Nepregledano';
  mw.util.addPortletLink(
     'p-tb',
     'p-tb',
     getReviewEntryUrl(),
     '#',
     statusText,
     statusText,
     't-fr-status',
     't-fr-status',
     'Klik vodi na pregled (diff) ili istoriju'
     'Klikni da te odvede na formu za proveru (na dnu strane)'
   );
   );
  // Klik na status -> spusti do review forme (ako je ima), inače otvori diff link
  if (statusLink) {
    $(statusLink).on('click', function (e) {
      e.preventDefault();
      // Probaj više mogućih selektora (zavisno od skin-a i verzije)
      var el =
        document.querySelector('#mw-fr-reviewform') ||
        document.querySelector('.fr-reviewform') ||
        document.querySelector('form[name="reviewform"]') ||
        document.querySelector('form[action*="RevisionReview"]') ||
        document.querySelector('.flaggedrevs_reviewform');
      if (el) {
        el.scrollIntoView({ behavior: 'smooth', block: 'start' });
        return;
      }
      // ako nema forme (npr. nema pending), vodi na diff
      window.location.href = diffHref;
    });
  }


});
});

Верзија на датум 8. фебруар 2026. у 17:03

// Gadget: FRQuickLinks (FlaggedRevs + patrol helpers)
// Toolbox linkovi za sysop/patroller — Vojna Enciklopedija
// - 2 GLOBAL linka
// - 2 PER-PAGE linka
// - Status (klik skroluje na formu za proveru na dnu strane)

$(function () {

  // samo članci (ns=0)
  if (mw.config.get('wgNamespaceNumber') !== 0) return;

  // samo sysop ili patroller
  var groups = mw.config.get('wgUserGroups') || [];
  if (!(groups.includes('sysop') || groups.includes('patroller'))) return;

  var pageName = mw.config.get('wgPageName');  // npr. AB_23
  var titleTxt = mw.config.get('wgTitle');     // npr. AB 23

  var curRev = mw.config.get('wgCurRevisionId') || 0;
  var stableRev = mw.config.get('wgStableRevisionId') || 0;

  /* -------------------------------------------------
   * 1) Nepregledane stranice (GLOBAL)
   * ------------------------------------------------- */
  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl('Special:UnreviewedPages'),
    'FlaggedRevs: nepregledane',
    't-fr-unreviewed',
    'Sve stranice koje još nisu pregledane'
  );

  /* -------------------------------------------------
   * 2) Izmene na čekanju (GLOBAL queue)
   * ------------------------------------------------- */
  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl('Special:PendingChanges'),
    'FlaggedRevs: izmene na čekanju',
    't-fr-pending',
    'Sve stranice koje imaju izmene koje čekaju proveru'
  );

  /* -------------------------------------------------
   * 3) Stabilizacija (OVA STRANA)
   * ------------------------------------------------- */
  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl('Special:Stabilization', { page: pageName }),
    'FlaggedRevs: stabilizacija',
    't-fr-stabilize',
    'Podešavanja stabilne verzije za "' + titleTxt + '"'
  );

  /* -------------------------------------------------
   * 4) Istorija (OVA STRANA)
   * ------------------------------------------------- */
  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl('Special:History/' + pageName),
    'Istorija (pregled izmena)',
    't-fr-history',
    'Istorija izmena za "' + titleTxt + '"'
  );

  /* -------------------------------------------------
   * 5) Pregledaj izmene (DIFF) — pametno:
   *    - ako postoji stable i razlikuje se: stable -> current
   *    - inače: prev -> current
   * ------------------------------------------------- */
  var diffHref, diffLabel, diffHint;

  if (stableRev > 0 && curRev > 0 && stableRev !== curRev) {
    diffHref = mw.util.getUrl(pageName, { diff: 'cur', oldid: String(stableRev) });
    diffLabel = 'Pregledaj i proveri (stable → current)';
    diffHint = 'Razlika između stabilne i trenutne verzije (najbolje za FlaggedRevs)';
  } else {
    diffHref = mw.util.getUrl(pageName, { diff: 'cur', oldid: 'prev' });
    diffLabel = 'Pregledaj poslednju izmenu (diff)';
    diffHint = 'Razlika poslednje izmene (prev → current)';
  }

  mw.util.addPortletLink(
    'p-tb',
    diffHref,
    diffLabel,
    't-fr-diff',
    diffHint
  );

  /* -------------------------------------------------
   * 6) Status: Nepregledano/Provereno
   *    Klik: skroluj do forme za proveru na dnu strane
   * ------------------------------------------------- */
  var statusText = (stableRev > 0) ? 'Status: Provereno' : 'Status: Nepregledano';

  var statusLink = mw.util.addPortletLink(
    'p-tb',
    '#',
    statusText,
    't-fr-status',
    'Klikni da te odvede na formu za proveru (na dnu strane)'
  );

  // Klik na status -> spusti do review forme (ako je ima), inače otvori diff link
  if (statusLink) {
    $(statusLink).on('click', function (e) {
      e.preventDefault();

      // Probaj više mogućih selektora (zavisno od skin-a i verzije)
      var el =
        document.querySelector('#mw-fr-reviewform') ||
        document.querySelector('.fr-reviewform') ||
        document.querySelector('form[name="reviewform"]') ||
        document.querySelector('form[action*="RevisionReview"]') ||
        document.querySelector('.flaggedrevs_reviewform');

      if (el) {
        el.scrollIntoView({ behavior: 'smooth', block: 'start' });
        return;
      }

      // ako nema forme (npr. nema pending), vodi na diff
      window.location.href = diffHref;
    });
  }

});