پرش به محتوا

مدیاویکی:Common.js: تفاوت میان نسخه‌ها

فرم بازخورد سفارشی زیر مقالات
(رفع خطای ES5 (نماد BMP به‌جای ایموجی))
(فرم بازخورد سفارشی زیر مقالات)
 
(۲ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۱: خط ۱:
#تغییرمسیر[[اسعد_رزم_آرا،_خلیل_(ملایر_۱۳۰۰ـ_تهران_۱۳۸۲ش)|اسعد_رزم_آرا،_خلیل_(ملایر_۱۳۰۰ـ_تهران_۱۳۸۲ش)]]
$( '.CategoryTreeToggle' ).click();
mw.loader.using('mediawiki.util', function () {
mw.loader.using('mediawiki.util', function () {
   var ribbon = document.createElement("div");
   var ribbon = document.createElement("div");
خط ۱۰: خط ۴:
   document.body.appendChild(ribbon);
   document.body.appendChild(ribbon);
});
});
/* ===== Wikijoo night-mode toggle (2026-05-31) ===== */
 
/* ===== Wikijoo custom feedback form (2026-06-01) ===== */
(function () {
(function () {
   function apply(t) {
   try {
     document.documentElement.classList.toggle('wj-night', t === 'dark');
    if (mw.config.get('wgNamespaceNumber') !== 0) { return; }
     var b = document.getElementById('wj-theme-btn');
     if (mw.config.get('wgAction') !== 'view') { return; }
     if (b) {
    if (mw.config.get('wgIsMainPage')) { return; }
       b.textContent = (t === 'dark' ? '' : '');
     if (!mw.config.get('wgArticleId')) { return; }
       b.title = (t === 'dark' ? 'حالت روز' : 'حالت شب');
  } catch (e) { return; }
 
  function val(id) { var el = document.getElementById(id); return el ? el.value : ''; }
 
  function build() {
    var content = document.querySelector('.mw-parser-output');
     if (!content || document.getElementById('wj-fb')) { return; }
    var box = document.createElement('div');
    box.className = 'wj-fb';
    box.id = 'wj-fb';
    box.innerHTML =
      '<div class="wj-fb-title">به بهبود این صفحه کمک کنید</div>' +
      '<div class="wj-fb-q">آیا آنچه را که دنبالش بودید یافتید؟</div>' +
       '<div class="wj-fb-rate"><button type="button" data-r="1">بله</button><button type="button" data-r="0">خیر</button></div>' +
      '<textarea id="wj-fb-comment" placeholder="نظر یا پیشنهاد شما دربارهٔ این صفحه (اختیاری)…"></textarea>' +
      '<details class="wj-fb-contact"><summary>اطلاعات تماس (اختیاری) — اگر مایل به دریافت پاسخ هستید</summary>' +
        '<div class="wj-fb-grid">' +
          '<input id="wj-fb-name" type="text" placeholder="نام">' +
          '<input id="wj-fb-family" type="text" placeholder="نام خانوادگی">' +
          '<input id="wj-fb-email" type="email" placeholder="ایمیل">' +
          '<input id="wj-fb-phone" type="tel" placeholder="شمارهٔ تماس">' +
        '</div></details>' +
      '<input class="wj-hp" type="text" id="wj-fb-hp" tabindex="-1" autocomplete="off" aria-hidden="true">' +
       '<div class="wj-fb-actions"><button type="button" class="wj-fb-submit" id="wj-fb-submit">ثبت بازخورد</button>' +
        '<span class="wj-fb-consent">با ارسال، با ذخیرهٔ این اطلاعات و تماس احتمالی موافقت می‌کنید.</span></div>' +
      '<div class="wj-fb-done">سپاس از بازخورد شما! &#x1F33F;</div>';
    content.appendChild(box);
 
    var rating = '';
    var rbtns = box.querySelectorAll('.wj-fb-rate button');
    for (var i = 0; i < rbtns.length; i++) {
      rbtns[i].addEventListener('click', function () {
        rating = this.getAttribute('data-r');
        for (var j = 0; j < rbtns.length; j++) { rbtns[j].classList.remove('sel'); }
        this.classList.add('sel');
      });
     }
     }
  }
 
  var saved = 'light';
    document.getElementById('wj-fb-submit').addEventListener('click', function () {
  try { saved = localStorage.getItem('wj-theme') || 'light'; } catch (e) {}
      var comment = val('wj-fb-comment');
  apply(saved);
      if (rating === '' && comment.replace(/\s/g, '') === '') {
  function addBtn() {
        alert('لطفاً «بله/خیر» را انتخاب کنید یا نظری بنویسید.');
    if (document.getElementById('wj-theme-btn')) { return; }
        return;
    var host = document.querySelector('.vector-header-end') || document.querySelector('#p-personal') || document.querySelector('.vector-user-links');
      }
    if (!host) { return; }
      var btn = this; btn.disabled = true;
    var btn = document.createElement('button');
      var fd = new FormData();
    btn.id = 'wj-theme-btn';
      fd.append('rating', rating);
    btn.type = 'button';
      fd.append('comment', comment);
    btn.className = 'wj-theme-btn';
      fd.append('name', val('wj-fb-name'));
    btn.setAttribute('aria-label', 'تغییر حالت شب و روز');
      fd.append('family', val('wj-fb-family'));
    host.insertBefore(btn, host.firstChild);
      fd.append('email', val('wj-fb-email'));
    btn.addEventListener('click', function () {
      fd.append('phone', val('wj-fb-phone'));
       var cur = document.documentElement.classList.contains('wj-night') ? 'dark' : 'light';
      fd.append('website', val('wj-fb-hp'));
       var next = (cur === 'dark') ? 'light' : 'dark';
      fd.append('page_id', mw.config.get('wgArticleId'));
      try { localStorage.setItem('wj-theme', next); } catch (e) {}
       fd.append('page_title', mw.config.get('wgPageName').replace(/_/g, ' '));
      apply(next);
       fetch('/wjfeedback.php', { method: 'POST', body: fd })
        .then(function (r) { return r.json(); })
        .then(function (d) {
          if (d && d.ok) { box.className = 'wj-fb done'; }
          else { btn.disabled = false; alert('خطا در ثبت بازخورد. لطفاً دوباره تلاش کنید.'); }
        })
        .catch(function () { btn.disabled = false; alert('خطا در ارتباط. لطفاً دوباره تلاش کنید.'); });
     });
     });
    apply(document.documentElement.classList.contains('wj-night') ? 'dark' : 'light');
   }
   }
   if (document.readyState !== 'loading') { addBtn(); }
   if (document.readyState !== 'loading') { build(); }
   else { document.addEventListener('DOMContentLoaded', addBtn); }
   else { document.addEventListener('DOMContentLoaded', build); }
})();
})();
۲٬۲۵۴

ویرایش