تضامنًا مع حق الشعب الفلسطيني |
ميدياويكي:Gadget-PersonalScript.js
ملاحظة: بعد الحفظ، قد يلزمك إفراغ الكاش لرؤية التغييرات.
// [[he:ויקיפדיה:סקריפטים/66]]
(function() {
var lsKey = 'personalScript';
function getTop() {return ((lsKey in localStorage) && localStorage[lsKey].split('\n')[0]) || ''}
function allScripts() {
return (localStorage[lsKey] || '').split('\n');
}
function setScript(script) {
var ls = localStorage[lsKey];
if (lsKey in localStorage)
{
var
lsa = allScripts(),
ind = $.inArray(script, lsa);
if (ind < 0)
ind = 10;
if (! lsa[0])
lsa.shift(); // if first is empty, remove it.
lsa.splice(ind, 1); // remove current if exists, or last if length >= 10
lsa.unshift(script);
localStorage[lsKey] = lsa.join('\n');
} else
localStorage[lsKey] = script;
loadScript(script);
}
function loadScript(s) {
if (!s)
return;
try {
var isCss = /\.css$/i.test(s);
if (/\/\//.test(s))
mw.loader.load(s, isCss ? 'text/css' : 'text/javascript');
else
return isCss ? importStylesheet(s) : importScript(s);
} catch(e) {}
}
function mySetSpecialScript() {
mw.loader.using('jquery.ui', function() {
var
inputBox = $('<input>').val(getTop()).css({width: '22em', direction: 'ltr'}),
selector = $('<select>')
.css({direction: 'ltr'})
.change(function() {inputBox.val(this.value)});
$.each(allScripts(), function(ind, item) {
selector.append($('<option>', {value: item, text: item.substr(0, 20) + (item.length > 20 ? '...':'')}));
});
$('<div>')
.css({direction: 'ltr'})
.dialog(
{title: 'سكربت شخصي',
modal: true,
position: [60, 60],
buttons: [
{text: 'احفظ', click: function() {
setScript(inputBox.val());
$(this).dialog('close');
}},
{text: 'ألغ', click: function() {
setScript('');
$(this).dialog('close');
}}]
})
.append(inputBox)
.append($('<p>'))
.append(selector);
$('.ui-dialog-buttonpane button').css({float: 'right'});
});
}
loadScript(getTop());
mw.util.addPortletLink('p-cactions', '#noAnchor', 'سكربت شخصي').onclick = mySetSpecialScript;
})();