Ir al contenido

Usuario:FAR/statuschanger.js

De Wikipedia, la enciclopedia libre

Nota: Después de guardar, debes refrescar la caché de tu navegador para ver los cambios. Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar. Firefox: mientras presionas Mayús pulsas el botón Actualizar, (o presiona Ctrl-Shift-R). Los usuarios de Google Chrome y Safari pueden simplemente pulsar el botón Recargar. Para más detalles e instrucciones acerca de otros exploradores, véase Ayuda:Cómo limpiar la caché.

//<pre><nowiki>
//Fuente: http://en.wikipedia.org/wiki/User:Topaz/Wikiscripts
//Personalizada por Axxgreazz, para el [[w:es:User:Axxgreazz/Monobook-Suite]]
//http://es.wikipedia.org/wiki/Usuario:Axxgreazz/Monobook-Suite

var topaz         = new Object();

topaz.util = {
getobj:function(id) {
  return document.getElementById ?
             document.getElementById(id) :
             document.all[id];
},
add:function(parent, tag, attr) {
  var el = document.createElement(tag);
  if (attr) {
    for (key in attr) {
      el[key] = attr[key];
    }
  }
  return parent.appendChild(el);
},
add2:function(parent, el0, tag, attr) {
  var el = document.createElement(tag);
  if (attr) {
    for (key in attr) {
      el[key] = attr[key];
    }
  }
  return parent.insertBefore(el, el0);
},
mousebtnmap:{
  ns:[null,1,3,2],
  ie:[null,1,2,null,3]
},
xmlhttpreq:function() {
  if (window.XMLHttpRequest) {
    xmlhttpobj = new XMLHttpRequest()
  } else {
    try {
      xmlhttpobj = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttpobj = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        xmlhttpobj = null;
      }
    }
  }
  return xmlhttpobj;
}
};

topaz.comm = {
doreq:function(url,postdata,headers) {
  var req = topaz.util.xmlhttpreq();
  req.open(postdata?"POST":"GET", url, false);
  for(header in headers) {
    req.setRequestHeader(header,headers[header]);
  }
  req.send(postdata||null);
  return req;
}
};

topaz.wputil = {
username:function() {
  return topaz.util.getobj("pt-userpage").childNodes[0].childNodes[0].nodeValue;
},
iseditpage:function() {
  return document.title.indexOf("Editing ")==0;
},
pagename:function() {
  var iseditpage = topaz.wputil.iseditpage();
  return document.title.substr(iseditpage?8:0,document.title.indexOf(" - ")-(iseditpage?8:0));
},
addsidepanel:function(id,label) {
  var div = topaz.util.add(topaz.util.getobj("column-one"), "div", {className:"portlet",id:id});
  topaz.util.add(div, "H5").innerHTML = label;
  topaz.util.add(topaz.util.add(div, "div", {className:"pBody"}), "ul");
},
addsidepanelbutton:function(id,label,targhref) {
  var li = topaz.util.add((topaz.util.getobj(id).getElementsByTagName("ul"))[0],"li");
  with(topaz.util.add(li,"a")) {
    innerHTML = label;
    href = targhref;
  }
  return li;
},
addsidepanelbutton2:function(id,label,targhref) {
  var li = topaz.util.add2((topaz.util.getobj(id).getElementsByTagName("ul"))[0],((topaz.util.getobj(id).getElementsByTagName("ul"))[0].getElementsByTagName("li"))[0],"li");
  with(topaz.util.add(li,"a")) {
    innerHTML = label;
    href = targhref;
  }
  return li;
},
setpagecontent:function(pagename,content,summary,watch) {
  var prelimresp = topaz.comm.doreq("/w/index.php?title="+pagename+"&action=submit");
  var edittime = prelimresp.responseText.match(/\<input type='hidden' value="(\d+)" name="wpEdittime" \/\>/)[1];
  var edittoken = prelimresp.responseText.match(/\<input type='hidden' value="([0-9a-f]+)" name="wpEditToken" \/\>/)[1];
  topaz.comm.doreq("/w/index.php?title="+pagename+"&action=submit",
      "wpEdittime="+edittime+
      "&wpEditToken="+edittoken+
      "&wpTextbox1="+ content +
      "&wpSummary="+ summary +
      (watch?"&wpWatchthis=on":"")+
      "&wpSection=&wpSave=Save+page",
      {"Content-Type":"application/x-www-form-urlencoded"});
},
getpagecontent:function(pagename) {
  topaz.comm.doreq2("/w/index.php?title="+pagename+"&action=submit",
      "",
      {"Content-Type":"application/x-www-form-urlencoded"});
}
};


topaz.statuschanger = new Object();

/* configuracion */
var estiloini = '<div style="position:absolute; z-index:100; right:10px; top:10px;" class="metadata" >';
var estilofin = '</div>';

// cambiar a cualquier valor que desees que aparezca en tu página de status.
topaz.statuschanger.statuscode = {
  conectado:'1',
  ocupado:'3',
  desconectado:'5'
};

topaz.statuschanger.statuscode2 = {
  conectado:estiloini + 'Mi estado actual: <span style="color: green;">En linea [[Image:ButtonGreen.png|40px]]</span>' + estilofin,
  ocupado:estiloini + 'Mi estado actual: <span style="color: #FFAA00;">Ocupado [[Image:ButtonYellow.png|40px]]</span>' + estilofin,
  desconectado:estiloini + 'Mi estado actual: <span style="color: red;">No conectado [[Image:ButtonRed.png|40px]]</span>' + estilofin
};

// true para usar la barra personal, false para crear un panel en la columna izquierda
topaz.statuschanger.usepersonalbar = true;

// true para poner el status al inicio de la barra personal, false para ponerlo al final
topaz.statuschanger.ubicacion = true; 

// true si quieres que tu página de status figure en tu lista de seguimiento
topaz.statuschanger.watchstatus = true;

/* fin de configuracion */

topaz.statuschanger.oldonload = window.onload;
window.onload = function() 
{
   if (typeof topaz.statuschanger.oldonload == "function"){setTimeout('topaz.statuschanger.oldonload()',50);}
   if (topaz.statuschanger.usepersonalbar) 
   {
      if (topaz.statuschanger.ubicacion)
      {
        var c = topaz.wputil.addsidepanelbutton2("p-personal", "No conectado",
            'javascript:topaz.statuschanger.setstatus("desconectado")');
        var b = topaz.wputil.addsidepanelbutton2("p-personal", "Ocupado",
            'javascript:topaz.statuschanger.setstatus("ocupado")');
        var a = topaz.wputil.addsidepanelbutton2("p-personal", "En linea",
            'javascript:topaz.statuschanger.setstatus("conectado")');
      }
      else
      {
        var a = topaz.wputil.addsidepanelbutton("p-personal", "En linea",
            'javascript:topaz.statuschanger.setstatus("conectado")');
        var b = topaz.wputil.addsidepanelbutton("p-personal", "Ocupado",
            'javascript:topaz.statuschanger.setstatus("ocupado")');
        var c = topaz.wputil.addsidepanelbutton("p-personal", "No conectado",
            'javascript:topaz.statuschanger.setstatus("desconectado")');
      }

      a.style.borderRight=a.style.borderLeft=b.style.borderRight=c.style.borderRight="1px solid #aaaaaa";
      a.style.marginLeft=b.style.marginLeft=c.style.marginLeft=c.style.marginRight="0px";
      a.style.paddingLeft=a.style.paddingRight=b.style.paddingLeft="2px";
      b.style.paddingRight=c.style.paddingLeft=c.style.paddingRight="2px";
   } 
   else 
   {  topaz.wputil.addsidepanel("tz-statuschanger", "status changer");
      topaz.wputil.addsidepanelbutton("tz-statuschanger", "En linea",
          'javascript:topaz.statuschanger.setstatus("conectado")');
      topaz.wputil.addsidepanelbutton("tz-statuschanger", "Ocupado",
          'javascript:topaz.statuschanger.setstatus("ocupado")');
      topaz.wputil.addsidepanelbutton("tz-statuschanger", "No conectado",
          'javascript:topaz.statuschanger.setstatus("desconectado")');
   }
};

topaz.statuschanger.setstatus = function(statusname) 
{
   topaz.wputil.setpagecontent(
        "User:"+topaz.wputil.username()+"/Estado",
        topaz.statuschanger.statuscode[statusname],
        statusname,
        topaz.statuschanger.watchstatus);
   topaz.wputil.setpagecontent(
        "User:"+topaz.wputil.username()+"/Status",
        topaz.statuschanger.statuscode2[statusname],
        statusname,
        topaz.statuschanger.watchstatus);
};

//</nowiki></pre>