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

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

Iz Vojne Enciklopedije
Promena koda
Promena koda
 
(6 међуизмена истог корисника није приказано)
Ред 1: Ред 1:
// Gadget: FRQuickLinks (FlaggedRevs + Patrol helpers)
// Gadget: FRQuickLinks (FlaggedRevs + Patrol helpers)
// Prikazuje linkove u Toolbox-u samo za sysop/patroller
// Linkovi u Toolbox-u samo za sysop/patroller
// Latinica, prilagodjeno za Vojnu Enciklopediju
// Prilagođeno za Vojnu Enciklopediju


$(function () {
$(function () {
 
   // dozvoli samo u “normalnim” imenima prostora:
   // samo u glavnom imenskom prostoru (clanci)
  // članci (0), Šabloni (10), Kategorije (14), Vojna Enciklopedija (4), Pomoć (12)
   if (mw.config.get('wgNamespaceNumber') !== 0) return;
   var ns = mw.config.get('wgNamespaceNumber');
  var allowedNamespaces = [0, 10, 14, 4, 12];
  if (!allowedNamespaces.includes(ns)) return;


   // dozvoli samo sysop ili patroller
   // dozvoli samo sysop ili patroller
Ред 12: Ред 14:
   if (!(groups.includes('sysop') || groups.includes('patroller'))) return;
   if (!(groups.includes('sysop') || groups.includes('patroller'))) return;


   // Toolbox portlet mora da postoji
   var pageName = mw.config.get('wgPageName'); // npr. AB_23
   if (!document.getElementById('p-tb')) return;
   var titleTxt = mw.config.get('wgTitle');   // npr. AB 23


   var pageName = mw.config.get('wgPageName'); // AB_23
   // 1) Nepregledane stranice (GLOBAL)
  var titleTxt = mw.config.get('wgTitle');    // AB 23
 
  /* -------------------------------------------------
  * 1) Nepregledane stranice (GLOBAL)
  * ------------------------------------------------- */
   mw.util.addPortletLink(
   mw.util.addPortletLink(
     'p-tb',
     'p-tb',
Ред 29: Ред 26:
   );
   );


   /* -------------------------------------------------
   // 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(
     'p-tb',
     'p-tb',
Ред 38: Ред 32:
     'FlaggedRevs: izmene na čekanju',
     'FlaggedRevs: izmene na čekanju',
     't-fr-pending',
     't-fr-pending',
     'Stranice koje imaju izmene koje čekaju proveru (u zavisnosti od FR režima može biti prazno)'
     'Sve stranice koje imaju izmene koje čekaju proveru'
   );
   );


   /* -------------------------------------------------
   // 3) Stabilizacija (OVA STRANA)
  * 3) Stabilizacija (OVA STRANA)
  * ------------------------------------------------- */
   mw.util.addPortletLink(
   mw.util.addPortletLink(
     'p-tb',
     'p-tb',
Ред 49: Ред 41:
     'FlaggedRevs: stabilizacija',
     'FlaggedRevs: stabilizacija',
     't-fr-stabilize',
     't-fr-stabilize',
     'Podesavanja stabilne verzije za "' + titleTxt + '"'
     'Podešavanja stabilne verzije za "' + titleTxt + '"'
   );
   );


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


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


   /* -------------------------------------------------
   // NAMERNO uklonjeno:
  * 6) Status: Provereno – SKOK NA REVIEW BOX (dno strane)
  // "Status: Provereno/Neprovereno" (pravilo duplikate i nije ti potrebno)
  * (ovo ti je praktično "idi odmah na proveru / prihvati / odbij")
});
  * ------------------------------------------------- */
 
   var statusLink = mw.util.addPortletLink(
// --- FlaggedRevs review box: premesti na vrh LEVO samo na diff strani ---
    'p-tb',
(function () {
     '#',
  // diff strana: kad URL ima diff=... ili oldid=...
     'Status: Provereno',
   var isDiff =
     't-fr-reviewbox',
    mw.util.getParamValue('diff') !== null ||
    'Skoci na dno strane – okvir za proveru izmene (FlaggedRevs review box)'
     mw.util.getParamValue('oldid') !== null ||
  );
     mw.config.get('wgDiffNewId') ||
     mw.config.get('wgDiffOldId');


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


      // Najčešći ID/selektori za FR review box (različite verzije/skinovi)
  function moveFrReviewBox() {
      var $box =
    // FlaggedRevs review forma (razne verzije/skinovi mogu imati različite selektore)
        $('#mw-fr-reviewform, .fr-reviewform, .flaggedrevs_review, #mw-fr-reviewbox').first();
    var $box = $('#mw-fr-reviewform');
    if (!$box.length) $box = $('.flaggedrevs_reviewform');
    if (!$box.length) $box = $('.fr-reviewform');
    if (!$box.length) $box = $('form').filter(function () {
      return /review/i.test(this.id || '') && /fr/i.test(this.id || '');
    }).first();


      if (!$box.length) {
    if (!$box.length) return; // nema review boksa na toj strani
        // 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) {
    // napravi “kontejner” gore levo, jednom
        $box[0].scrollIntoView({ behavior: 'smooth', block: 'center' });
    var $host = $('#fr-review-topbox');
    if (!$host.length) {
      $host = $('<div id="fr-review-topbox" class="fr-review-topbox"></div>');


        // kratko highlight da odmah vidiš gde je
      // ubaci ga gore (ispod subheader-a, pre sadržaja)
        $box
      // contentSub obično stoji odmah ispod naslova
          .stop(true, true)
      var $anchor = $('#contentSub');
          .css({ outline: '2px solid #3b82f6', outlineOffset: '6px' })
      if ($anchor.length) {
          .delay(900)
        $anchor.after($host);
          .queue(function (next) {
            $(this).css({ outline: '', outlineOffset: '' });
            next();
          });
       } else {
       } else {
         // ako nema review boxa na toj strani, reci korisniku (silent fallback)
         // fallback: na sam vrh sadržaja
         mw.notify('Na ovoj strani trenutno nema FlaggedRevs okvira za proveru (možda nema pending izmena).');
         $('#mw-content-text').prepend($host);
       }
       }
     });
     }
 
    // premesti review form unutra
    $host.append($box);
   }
   }


});
  // Sačekaj da se sadržaj učita (nekad se FR elementi pojave malo kasnije)
  mw.hook('wikipage.content').add(function () {
    moveFrReviewBox();
    setTimeout(moveFrReviewBox, 300);
    setTimeout(moveFrReviewBox, 1000);
  });
})();

Тренутна верзија на датум 8. фебруар 2026. у 21:36

// Gadget: FRQuickLinks (FlaggedRevs + Patrol helpers)
// Linkovi u Toolbox-u samo za sysop/patroller
// Prilagođeno za Vojnu Enciklopediju

$(function () {
  // dozvoli samo u “normalnim” imenima prostora:
  // članci (0), Šabloni (10), Kategorije (14), Vojna Enciklopedija (4), Pomoć (12)
  var ns = mw.config.get('wgNamespaceNumber');
  var allowedNamespaces = [0, 10, 14, 4, 12];
  if (!allowedNamespaces.includes(ns)) return;

  // dozvoli 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

  // 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) – brzi pregled poslednje promene
  mw.util.addPortletLink(
    'p-tb',
    mw.util.getUrl(pageName, { diff: 'cur', oldid: 'prev' }),
    'Pregledaj izmene (diff)',
    't-fr-diffcur',
    'Otvori diff poslednje izmene (najbrži put do pregleda)'
  );

  // NAMERNO uklonjeno:
  // "Status: Provereno/Neprovereno" (pravilo duplikate i nije ti potrebno)
});

// --- FlaggedRevs review box: premesti na vrh LEVO samo na diff strani ---
(function () {
  // diff strana: kad URL ima diff=... ili oldid=...
  var isDiff =
    mw.util.getParamValue('diff') !== null ||
    mw.util.getParamValue('oldid') !== null ||
    mw.config.get('wgDiffNewId') ||
    mw.config.get('wgDiffOldId');

  if (!isDiff) return;

  function moveFrReviewBox() {
    // FlaggedRevs review forma (razne verzije/skinovi mogu imati različite selektore)
    var $box = $('#mw-fr-reviewform');
    if (!$box.length) $box = $('.flaggedrevs_reviewform');
    if (!$box.length) $box = $('.fr-reviewform');
    if (!$box.length) $box = $('form').filter(function () {
      return /review/i.test(this.id || '') && /fr/i.test(this.id || '');
    }).first();

    if (!$box.length) return; // nema review boksa na toj strani

    // napravi “kontejner” gore levo, jednom
    var $host = $('#fr-review-topbox');
    if (!$host.length) {
      $host = $('<div id="fr-review-topbox" class="fr-review-topbox"></div>');

      // ubaci ga gore (ispod subheader-a, pre sadržaja)
      // contentSub obično stoji odmah ispod naslova
      var $anchor = $('#contentSub');
      if ($anchor.length) {
        $anchor.after($host);
      } else {
        // fallback: na sam vrh sadržaja
        $('#mw-content-text').prepend($host);
      }
    }

    // premesti review form unutra
    $host.append($box);
  }

  // Sačekaj da se sadržaj učita (nekad se FR elementi pojave malo kasnije)
  mw.hook('wikipage.content').add(function () {
    moveFrReviewBox();
    setTimeout(moveFrReviewBox, 300);
    setTimeout(moveFrReviewBox, 1000);
  });
})();