MediaViki:ADMForm.js
Qeyd: Dəyişiklikləri yayımladıqdan sonra etdiyiniz dəyişikliklərin görünməsi üçün brauzerinizin keşinin təmizlənməsi lazım ola bilər.
- Firefox / Safari: Reload düyməsinə basılı tutarkən Shift düyməsinə basın, və ya Ctrl+F5 və ya Ctrl+R (Mac üçün ⌘-R )
- Google Chrome: Ctrl-Shift-R (Mac üçün ⌘-Shift-R)
- Edge: Ctrl düyməsini basılı tutarkən Refresh düyməsinə basın, və ya sadəcə Ctrl+F5.
// ADM – Addəyişmə müraciətləri üçün qadcet
// Müəllif: Vikipolimer @trwiki; Toghrul R @azwiki
/* <nowiki> */
$(function() {
mw.loader.using(['mediawiki.api', 'mediawiki.widgets', 'mediawiki.util', 'oojs-ui-core', 'oojs-ui-windows']).then(function() {
var api = new mw.Api();
var requestPageTitle = 'Vikipediya:Addəyişmə_müraciətləri';
var currentTitleInput, newTitleInput, reasonInput, reasonPreview;
function MoveRequestDialog(config) {
MoveRequestDialog.super.call(this, config);
}
OO.inheritClass(MoveRequestDialog, OO.ui.ProcessDialog);
MoveRequestDialog.static.name = 'MoveRequestDialog';
MoveRequestDialog.static.title = 'ADM – Addəyişmə müraciəti';
MoveRequestDialog.static.actions = [{
action: 'save',
label: 'Təqdim et',
flags: ['primary', 'progressive']
}, {
label: 'İmtina',
flags: 'safe'
}];
MoveRequestDialog.prototype.initialize = function() {
MoveRequestDialog.super.prototype.initialize.apply(this, arguments);
var headerTitle = new OO.ui.MessageWidget({
type: 'notice',
inline: true,
label: new OO.ui.HtmlSnippet('<small>Aşağıdakı formanı dolduraraq səhifənin adının dəyişdirilməsi üçün müraciət edə bilərsiniz.<br>Başlıqlarda daxili keçidlər yerləşdirməyə və şərhinizin sonuna imza əlavə etməyə ehtiyac yoxdur.</small>')
});
currentTitleInput = new OO.ui.TextInputWidget({
'showMissing': false,
'required': true,
'placeholder': 'Səhifənin hazırkı adını daxil edin',
});
newTitleInput = new OO.ui.TextInputWidget({
'showMissing': false,
'required': true,
'placeholder': 'Səhifənin yeni adını daxil edin',
});
reasonInput = new OO.ui.MultilineTextInputWidget({
'placeholder': 'Adın dəyişdirilməsi üçün səbəbi qeyd edin',
'required': true
});
reasonPreview = new OO.ui.LabelWidget();
var fieldset = new OO.ui.FieldsetLayout();
fieldset.addItems([
new OO.ui.FieldLayout(currentTitleInput, { 'label': 'Səhifənin hazırkı adı:', align: 'top' }),
new OO.ui.FieldLayout(newTitleInput, { 'label': 'Səhifənin yeni adı:', align: 'top' }),
new OO.ui.FieldLayout(reasonInput, { 'label': 'Addəyişməyə səbəb:', align: 'top' }),
]);
this.content = new OO.ui.PanelLayout({
padded: true,
expanded: false
});
this.content.$element.append(headerTitle.$element, '<br><hr><br>', fieldset.$element);
this.$body.append(this.content.$element);
};
MoveRequestDialog.prototype.getActionProcess = function(action) {
var dialog = this;
if(action) {
return new OO.ui.Process(function() {
var currentPageTitle = currentTitleInput.getValue().replace(/\[\[|\]\]/g, '');
var newPageTitle = newTitleInput.getValue().replace(/\[\[|\]\]/g, '');
if (!currentTitleInput.getValue()) {
mw.notify('Səhifənin hazırkı adı qeyd edilməlidir!', { type: 'error' });
return;
}
if (!newTitleInput.getValue()) {
mw.notify('Səhifənin yeni adı qeyd edilməlidir!', { type: 'error' });
return;
}
if (!reasonInput.getValue()) {
mw.notify('Səbəb göstərilməlidir!', { type: 'error' });
return;
}
var currentTitle = currentTitleInput.getValue();
var newTitle = newTitleInput.getValue();
if (!currentTitle.includes('[[')) {
currentTitle = '[[:' + currentTitle + ']]';
}
if (!newTitle.includes('[[')) {
newTitle = '[[:' + newTitle + ']]';
}
var reason = reasonInput.getValue();
if (!reason.includes('~')) {
reason += ' ~~~~';
} else {
reason = reason.replace(/~{1,5}/g, '~~~~');
}
api.get({
action: 'parse',
prop: 'wikitext',
page: currentPageTitle,
format: 'json'
}).then(function(data) {
var content = data.parse.wikitext['*'];
var updatedContent = '{{Addəyişmə təklifi|:' + newPageTitle + '|Vikipediya:Addəyişmə_müraciətləri#' + currentPageTitle + ' → ' + newPageTitle + '}}\n' + content;
var reason = reasonInput.getValue();
if (!reason.includes('~')) {
reason += ' ~~~~';
} else {
reason = reason.replace(/~{1,5}/g, '~~~~');
}
api.postWithToken('csrf', {
action: 'edit',
title: currentPageTitle,
text: updatedContent,
summary: 'Səhifənin adının dəyişdirilməsi təklif edilir. Ətraflı: [[Vikipediya:Addəyişmə müraciətləri#' + currentPageTitle + ' → ' + newPageTitle + ']]'
}).then(function() {
api.postWithToken('csrf', {
action: 'edit',
title: requestPageTitle,
appendtext: "\n" + '{{subst:Vikipediya:Addəyişmə müraciətləri/Yeni müraciət |1= ' + currentPageTitle + ' |2= ' + newPageTitle + '|3= ' + reason + ' }}' + "\n",
summary: 'Yeni müraciət əlavə edildi: ' + currentTitle + ' → ' + newTitle
}).then(function() {
window.location.href = mw.util.getUrl(requestPageTitle);
});
});
});
dialog.close({ action: action });
mw.notify('Müraciətiniz uğurla əlavə edildi! Zəhmət olmasa, gözləyin.', { type: 'success' });
});
}
return MoveRequestDialog.super.prototype.getActionProcess.call(this, action);
};
var windowManager = new OO.ui.WindowManager();
$(document.body).append(windowManager.$element);
var dialog = new MoveRequestDialog();
windowManager.addWindows([dialog]);
windowManager.openWindow(dialog);
});
});
/* </nowiki> */