सदस्य:Aviram7/StatusChange.js

मुक्त ज्ञानकोश विकिपीडिया से

सूचना: यह पृष्ठ सुरक्षित करने बाद, परिवर्तनों को देखने लिए ब्राउज़र का कैश ख़ाली करने की आवश्यकता हो सकती है।

  • मोज़िला / फ़ायरफ़ॉक्स / सफ़ारी: shift hold करें जब आप reload क्लिक करते है, या Ctrl-Shift-R (अपल मैक में Cmd-Shift-R) दबाएँ;
  • गूगल क्रोम: Ctrl-shift-R (मैक में Cmd-Shift-R) दबाएँ
  • इंटरनेट एक्सप्लोरर: Ctrl hold करें जब आप refresh क्लिक करते हैं, या Ctrl-F5 क्लिक करते हैं;
  • कॉङ्करर: सिर्फ़ Reload बटन पर क्लिक करें, या F5 क्लिक करें;
  • ऑपरा सदस्य को Tools→Preferences में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
//////////STATUS CHANGER
// Creator: Misza13
// Credits: Voyagerfan5761 for some minor improvements
//     Modified by Xenocidic to simply use /Status as a one word indicator,
//     Modified by Kraftlos to include Sleep status
//     Modified by APerson for compatibility with {{UserStatus}}
//     Modified by RhinosF1 for compatibility with his script.
//     Modified by Berrely to for compatability with his template.
$(function() {
  var wgUserName = mw.config.get("wgUserName");
  var wgServer = mw.config.get("wgServer");
  var wgScript = mw.config.get("wgScript");
  //Check if the config is defined
  if (typeof(statusChangerConfig) == 'undefined') {
    statusChangerConfig = {};
  }
  var setMessage = function(stat) {
    var message = stat;
    switch (message) {
      case "around":
        message = "around";
        break;
      case "busy":
        message = "busy";
        break;
      case "away":
        message = "away";
        break;
      case "wikibreak":
        message = "wikibreak";
        break;
      case "sleep":
        message = "sleeping";
        break;
      case "school":
        message = "in class";
        break;
    }
    return message;
  };

  if (typeof(statusChangerConfig.statusList) == 'undefined') {
    statusChangerConfig.statusList = ['online', 'offline', 'around', 'busy', 'away', 'wikibreak', 'sleep', 'school'];
  }

  if (typeof(statusChangerConfig.statusPage) == 'undefined') {
    statusChangerConfig.statusPage = 'User:' + wgUserName + '/Status';
  }
  var msg;
  //Add the links
  for (var i = 0; i < statusChangerConfig.statusList.length; i++) {
    var stat = statusChangerConfig.statusList[i];
    msg = setMessage(stat);
    mw.util.addPortletLink(
      "p-personal", //target tab - personal links
      wgServer + wgScript + "?title=" + statusChangerConfig.statusPage + "&action=submit&newstatus=" + stat, //link URL
      stat, //link text
      "pt-status-" + stat, //id of new button
      "I'm " + msg + "!", //hover text
      "", //???
      document.getElementById("pt-logout")); //add before logout button
  }

  if (location.href.indexOf("&action=submit&newstatus=") == -1) return; //Are we here to auto-edit the status?
  //Get new status
  statusRegExp = /&action=submit&newstatus=(.*)/;
  var status = statusRegExp.exec(location.href)[1];
  //Modify the form
  document.getElementById('wpTextbox1').value = status;
  msg = setMessage(status);
  if (status == "sleep") {
    status = "sleeping";
  }

  document.getElementById('wpSummary').value = wgUserName + " is now " + msg + ".";
  document.getElementById('wpMinoredit').checked = true;
  //Submit it!
  document.getElementById('editform').submit();
});