MediaWiki:Gadget-Welcome.js

Материал из Викитеки — свободной библиотеки

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
//Скрипт для приветствования новичков
//Разработан участником [[w:en:User:Whiteknight]]
/*
  Creates a new tab at the top of user-talk-edit pages to automatically welcome a new user or
  an anonymous user. Uses AJAX-based editing to post a welcome message automatically. Requires
  Whiteknight's wknightcore.js library to handle the AJAX editing functions.
*/

if(mw.config.get('wgNamespaceNumber') != 3) $(function() { 
  if(mw.config.get('wgAction') == "edit" && 
     (text = document.getElementById("wpTextbox1")) && 
     text.value.length < 300) {   
    if(mw.config.get('wgTitle').match(/\d+\.\d+\.\d+\.\d+/)) {
      var tab = "joinus";
    } else {
      var tab = "welcome";
    }
    add_toolbox_link("Javascript:WelcomeUser();", tab,  'ca-welcome');
  }
  add_toolbox_link("Javascript:WarnUser();", 'warn',  'ca-warn'); 
});

if(mw.config.get('wgPageName') == "Special:Contributions") $(function() {
  add_toolbox_link("Javascript:WarnUser();", 'warn', 'ca-warn');
});

function WelcomeUser() {
  if(confirm("Welcome this new user?")) {
    if(mw.config.get('wgTitle').match(/\d+\.\d+\.\d+\.\d+/)) {
      wk.postEdit(mw.config.get('wgPageName'), "{"+"{subst:joinus}}--~~"+"~~", "Join Us!", 
                  {section:"new"});
    } else {
      wk.postEdit(mw.config.get('wgPageName'), "{"+"{subst:welcome}}--~~"+"~~", "Welcome!",
                  {section:"new"});
    }
    var w = document.getElementById("ca-welcome");
    w.innerHTML = "Welcomed";
    var form = document.getElementById("editform");
    if(form) wk.toggleDisplay(form, "none");
  }  
}

function WarnUser() {
  var username = mw.config.get('wgPageName');
  if (mw.config.get('wgPageName') == "Special:Contributions") {
    username = document.getElementsByName("target")[0].value;
    if(!username) return;
    username = "User talk:" + username;
  } else if (mw.config.get('wgNamespaceNumber') != 3) {
    return;
  }
  if (confirm("Warn this user? (" + username + ")")) {
    wk.postEdit(username, "{"+"{subst:test|~~"+"~~}}", "You have been warned",
                {section:"new"});
    var w = document.getElementById("ca-warn");
    w.innerHTML = "Warned";
    var form = document.getElementById("editform");
    if (form) wk.toggleDisplay(form, "none");
  }
}