MediaViki:AFDForm.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.
/* <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:Silinməyə namizəd səhifələr';
var titleInput, reasonInput;
function MoveRequestDialog(config) {
MoveRequestDialog.super.call(this, config);
}
OO.inheritClass(MoveRequestDialog, OO.ui.ProcessDialog);
MoveRequestDialog.static.name = 'MoveRequestDialog';
MoveRequestDialog.static.title = 'SNS – Məqalə namizəd göstər';
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>Silinməyə namizəd göstərmək istədiyiniz daha əvvəl silinməyə təqdim edilib-edilməməsini dəqiqləşdirməyiniz tövsiyə olunur.<br>Yazınızın sonunda imza əlavə etməyə ehtiyac yoxdur.</small>')
});
titleInput = new OO.ui.TextInputWidget({
'showMissing': false,
'required': true,
'placeholder': 'Səhifənin adını daxil edin',
});
reasonInput = new OO.ui.MultilineTextInputWidget({
'placeholder': 'Silinməyə təqdim etmək üçün səbəbi qeyd edin.',
'required': true
});
var fieldset = new OO.ui.FieldsetLayout();
fieldset.addItems([
new OO.ui.FieldLayout(titleInput, { 'label': 'Səhifənin adı:', align: 'top' }),
new OO.ui.FieldLayout(reasonInput, { 'label': '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 pageTitle = titleInput.getValue().replace(/\[\[|\]\]/g, '');
if (!titleInput.getValue()) {
mw.notify('Səhifənin adı qeyd edilməlidir!', { type: 'error' });
return;
}
if (!reasonInput.getValue()) {
mw.notify('Səbəb göstərilməlidir!', { type: 'error' });
return;
}
var reason = reasonInput.getValue();
if (!reason.includes('~')) {
reason += ' ~~~~';
} else {
reason = reason.replace(/~{1,5}/g, '~~~~');
}
api.get({
action: 'parse',
prop: 'wikitext',
page: pageTitle,
format: 'json'
}).then(function(data) {
var content = data.parse.wikitext['*'];
var updatedContent = '{{Silinməyə namizəd}}\n' + content;
var venue = 'Vikipediya:Silinməyə namizəd səhifələr';
api.postWithToken('csrf', {
action: 'edit',
title: pageTitle,
text: updatedContent,
summary: 'Səhifə silinməyə namizəd göstərilir. Ətraflı: [[:' + venue + '#' + pageTitle + ']]'
}).then(function() {
api.postWithToken('csrf', {
action: 'edit',
title: requestPageTitle,
appendtext: "\n" + '{{' + venue + '/' + pageTitle + '}}',
summary: '[[' + pageTitle + ']] səhifəsi əlavə edilir'
}).then(function() {
api.postWithToken('csrf', {
action: 'edit',
title: requestPageTitle + '/' + pageTitle,
appendtext: '{{subst:sns2|s=' + pageTitle + '|səbəb=' + reason + '}}',
summary: 'Namizədlik səhifəsi yaradılır'
}).then(function() {
window.location.href = mw.util.getUrl(requestPageTitle) + '/' + pageTitle;
});
});
});
});
dialog.close({ action: action });
mw.notify('Namizədlik 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> */