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

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

Iz Vojne Enciklopedije
Promena koda
Promena koda
Ред 12: Ред 12:
   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
  // Toolbox portlet mora da postoji
   var titleTxt = mw.config.get('wgTitle');    // npr. AB 23
  if (!document.getElementById('p-tb')) return;
 
   var pageName = mw.config.get('wgPageName'); // AB_23
   var titleTxt = mw.config.get('wgTitle');    // AB 23


   /* -------------------------------------------------
   /* -------------------------------------------------
Ред 28: Ред 31:
   /* -------------------------------------------------
   /* -------------------------------------------------
   * 2) Izmene na čekanju (GLOBAL queue)
   * 2) Izmene na čekanju (GLOBAL queue)
  * Napomena: ova strana ume da bude prazna ako FR nije u "pending changes" režimu za te strane.
   * ------------------------------------------------- */
   * ------------------------------------------------- */
   mw.util.addPortletLink(
   mw.util.addPortletLink(
Ред 34: Ред 38:
     'FlaggedRevs: izmene na čekanju',
     'FlaggedRevs: izmene na čekanju',
     't-fr-pending',
     't-fr-pending',
     'Sve stranice koje imaju izmene koje čekaju proveru'
     'Stranice koje imaju izmene koje čekaju proveru (u zavisnosti od FR režima može biti prazno)'
   );
   );


Ред 49: Ред 53:


   /* -------------------------------------------------
   /* -------------------------------------------------
   * 4) Istorija (OVA STRANA)
   * 4) Istorija (OVA STRANA) - najkorisnije za pregled
   * ------------------------------------------------- */
   * ------------------------------------------------- */
   mw.util.addPortletLink(
   mw.util.addPortletLink(
     'p-tb',
     'p-tb',
     mw.util.getUrl('Special:History/' + pageName),
     mw.util.getUrl(pageName, { action: 'history' }),
     'Istorija (pregled izmena)',
     'Istorija (pregled izmena)',
     't-fr-history',
     't-fr-history',
Ред 60: Ред 64:


   /* -------------------------------------------------
   /* -------------------------------------------------
   * 5) Pregledaj poslednju izmenu (DIFF)
   * 5) Pregledaj poslednju izmenu (diff) – brz prečac
   * ------------------------------------------------- */
   * ------------------------------------------------- */
  var diffUrl = mw.util.getUrl(pageName, { diff: 'cur', oldid: 'prev' });
   mw.util.addPortletLink(
   mw.util.addPortletLink(
     'p-tb',
     'p-tb',
     diffUrl,
     mw.util.getUrl(pageName, { diff: 'cur', oldid: 'prev' }),
     'Pregledaj poslednju izmenu (diff)',
     'Pregledaj poslednju izmenu (diff)',
     't-fr-diffcur',
     't-fr-diffcur',
Ред 73: Ред 75:


   /* -------------------------------------------------
   /* -------------------------------------------------
   * 6) Status indikator (KLIK vodi na diff)
   * 6) Status: Provereno – SKOK NA REVIEW BOX (dno strane)
  * (ovo ti je praktično "idi odmah na proveru / prihvati / odbij")
   * ------------------------------------------------- */
   * ------------------------------------------------- */
   var statusText = '';
   var statusLink = mw.util.addPortletLink(
   var bodyText = (document.body && document.body.innerText) ? document.body.innerText : '';
    'p-tb',
    '#',
    'Status: Provereno',
    't-fr-reviewbox',
    'Skoci na dno strane – okvir za proveru izmene (FlaggedRevs review box)'
  );
 
  // Klik -> skrol na review formu, i kratko "naglašavanje" okvira
   if (statusLink) {
    $(statusLink).on('click', function (e) {
      e.preventDefault();
 
      // Najčešći ID/selektori za FR review box (različite verzije/skinovi)
      var $box =
        $('#mw-fr-reviewform, .fr-reviewform, .flaggedrevs_review, #mw-fr-reviewbox').first();
 
      if (!$box.length) {
        // fallback: pokušaj da nađe dugme/tekst "Proveri ovu izmenu"
        $box = $(':contains("Proveri ovu izmenu")').closest('form, .mw-parser-output, .mw-body-content').first();
      }


  if (bodyText.includes('Непрегледано') || bodyText.includes('Nepregledano')) {
      if ($box.length) {
    statusText = 'Status: Nepregledano';
        $box[0].scrollIntoView({ behavior: 'smooth', block: 'center' });
  } else if (bodyText.includes('Проверено') || bodyText.includes('Provereno')) {
 
    statusText = 'Status: Provereno';
        // kratko highlight da odmah vidiš gde je
  } else {
        $box
    // fallback: ako ne možemo jasno da prepoznamo
          .stop(true, true)
    statusText = 'Status: (nepoznato)';
          .css({ outline: '2px solid #3b82f6', outlineOffset: '6px' })
          .delay(900)
          .queue(function (next) {
            $(this).css({ outline: '', outlineOffset: '' });
            next();
          });
      } else {
        // ako nema review boxa na toj strani, reci korisniku (silent fallback)
        mw.notify('Na ovoj strani trenutno nema FlaggedRevs okvira za proveru (možda nema pending izmena).');
      }
    });
   }
   }
  // Klik na status -> vodi na diff (najkorisnije)
  mw.util.addPortletLink(
    'p-tb',
    diffUrl,
    statusText,
    't-fr-status',
    'Klik vodi na diff poslednje izmene za "' + titleTxt + '"'
  );


});
});

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

// Gadget: FRQuickLinks (FlaggedRevs + Patrol helpers)
// Prikazuje linkove u Toolbox-u samo za sysop/patroller
// Latinica, prilagodjeno za Vojnu Enciklopediju

$(function () {

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

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

  // Toolbox portlet mora da postoji
  if (!document.getElementById('p-tb')) return;

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

  /* -------------------------------------------------
   * 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)
   * Napomena: ova strana ume da bude prazna ako FR nije u "pending changes" režimu za te strane.
   * ------------------------------------------------- */
  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl('Special:PendingChanges'),
    'FlaggedRevs: izmene na čekanju',
    't-fr-pending',
    'Stranice koje imaju izmene koje čekaju proveru (u zavisnosti od FR režima može biti prazno)'
  );

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

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

  /* -------------------------------------------------
   * 5) Pregledaj poslednju izmenu (diff) – brz prečac
   * ------------------------------------------------- */
  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl(pageName, { diff: 'cur', oldid: 'prev' }),
    'Pregledaj poslednju izmenu (diff)',
    't-fr-diffcur',
    'Otvori diff poslednje izmene (najbrzi put do pregleda)'
  );

  /* -------------------------------------------------
   * 6) Status: Provereno – SKOK NA REVIEW BOX (dno strane)
   * (ovo ti je praktično "idi odmah na proveru / prihvati / odbij")
   * ------------------------------------------------- */
  var statusLink = mw.util.addPortletLink(
    'p-tb',
    '#',
    'Status: Provereno',
    't-fr-reviewbox',
    'Skoci na dno strane – okvir za proveru izmene (FlaggedRevs review box)'
  );

  // Klik -> skrol na review formu, i kratko "naglašavanje" okvira
  if (statusLink) {
    $(statusLink).on('click', function (e) {
      e.preventDefault();

      // Najčešći ID/selektori za FR review box (različite verzije/skinovi)
      var $box =
        $('#mw-fr-reviewform, .fr-reviewform, .flaggedrevs_review, #mw-fr-reviewbox').first();

      if (!$box.length) {
        // fallback: pokušaj da nađe dugme/tekst "Proveri ovu izmenu"
        $box = $(':contains("Proveri ovu izmenu")').closest('form, .mw-parser-output, .mw-body-content').first();
      }

      if ($box.length) {
        $box[0].scrollIntoView({ behavior: 'smooth', block: 'center' });

        // kratko highlight da odmah vidiš gde je
        $box
          .stop(true, true)
          .css({ outline: '2px solid #3b82f6', outlineOffset: '6px' })
          .delay(900)
          .queue(function (next) {
            $(this).css({ outline: '', outlineOffset: '' });
            next();
          });
      } else {
        // ako nema review boxa na toj strani, reci korisniku (silent fallback)
        mw.notify('Na ovoj strani trenutno nema FlaggedRevs okvira za proveru (možda nema pending izmena).');
      }
    });
  }

});