לדלג לתוכן

משתמש:גאון הירדן/חסימה לעריכה.js

מתוך המכלול, האנציקלופדיה היהודית

לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
mw.loader.using(['mediawiki.api']).then(function () {
var userEndPage = "user:"+mw.config.get('wgUserName')+"/סוף.js";
var url = '/w/api.php?';
var currentDate = Date.now();
function blockPage (time){


 $.post(
                mw.util.wikiScript('api'),
                 {
	"action": "edit",
	"format": "json",
	"title": userEndPage,
	"text": time,
	"contentmodel": "javascript",
	"token": mw.user.tokens.get('csrfToken'),
	"utf8": 1
}, function(data){
if (data && data.edit){
                  mw.notify("נשמר בהצלחה");
logOut();
}
if (error && error.code){
                  mw.notify("שגיאה: " + error.code);
                }
              });

}


function getTimeFromPage(){

var params = {
	"action": "parse",
	"format": "json",
	"page": userEndPage,
	"prop": "wikitext",
	"utf8": 1
}

fetch(`${url}${new URLSearchParams(params)}`)
        .then((res) => res.json())
        .then((res) => {
          
          var time = res.parse.wikitext["*"];
calculateIt(time) ;
        }).catch((error) => {
  return false;
});
}
function calculateIt(timeToBlocking){


if (currentDate <= timeToBlocking) {
var timeEnd = timer(timeToBlocking);
alert(" בקשת להחסם עד ל " + new Date(+timeToBlocking).toLocaleString() + "\n\nתוכל לשוב ולערוך בעוד: " + timeEnd + "\n\nלהתראות!");
                logOut();



}
}
function openMyDialog(){

var time ='<input type="datetime-local" id="myDate" >';
var dialog = $("<div>").append(time).dialog({title: "עד מתי ברצונך להיחסם?",
			open: function() {

},
			close: function() {
			dialog.remove();
			},
buttons: [{
		text: "חסום אותי",
		id: "startbtn",
		click: function() {
var time = Date.parse($('#myDate').val());
	
if (currentDate > time) {

alert("בחרת בזמן עבר.")
return;
}	
blockPage (time);
			dialog.dialog("close");
		}	
}]
});
}
function logOut(){
$.post(
                mw.util.wikiScript('api'),
                 {
	"action": "logout",
	"format": "json",
	"token": mw.user.tokens.get('csrfToken'),
	"utf8": 1
});
}


function timer(timeToBlock){


var countDownDate = timeToBlock;

  var now = new Date().getTime();   

  var distance = countDownDate - now;
    
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);
    

 var d = " ימים, " , h = " שעות, " , m = " דקות, " , s = " שניות " ;
 var  timeend = days + d  + hours + h 
  + minutes + m  + seconds + s ;
return timeend;


}
$('#pt-watchlist').after(
	$("<li>").append(
		$('<a>')
.click(function(){

openMyDialog()

})
			.text("חסימה עצמית")
	)
);
getTimeFromPage();
});