Користувач:Base/newBoardDecision.js
Перейти до навігації
Перейти до пошуку
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
- Opera: натисніть Ctrl-F5
/**
* An attempt to make a script that simplifies publishing board decisions
*
*/
var DecisionPublisher = function () {
mw.loader.using([
'oojs-ui-core',
'oojs-ui-windows',
'mediawiki.widgets',
'mediawiki.widgets.DateInputWidget',
]).done(function () {
function DecisionDialogue(config) {
DecisionDialogue.super.call(this, config);
}
OO.inheritClass(DecisionDialogue, OO.ui.ProcessDialog);
$.extend(DecisionDialogue.static, {
name: 'DecisionDialogue',
actions: [
{
flags: ['close'],
action: 'save'
},
],
title: 'Публікація рішення Правління',
size: 'large',
});
$.extend(DecisionDialogue.prototype, {
initialize: function () {
var me = this;
DecisionDialogue.super.prototype.initialize.call(this);
this.panel = new OO.ui.PanelLayout({
padded: true,
expanded: false
});
this.content = new OO.ui.FieldsetLayout();
this.decisionNumber = new OO.ui.TextInputWidget({
placeholder: '00/' + new Date().toISOString().slice(0, 4),
validate: /[0-9]{1,2}\/20[0-9]{2}/,
required: true
});
this.decisionNumberField = new OO.ui.FieldLayout(this.decisionNumber, {
align: 'left',
label: 'Рішення №'
});
this.dateDecided = new mw.widgets.DateInputWidget({
$overlay: this.$overlay,
value: new Date().toISOString().slice(0, 10),
inputFormat: 'YYYY-MM-DD',
displayFormat: 'YYYY-MM-DD',
required: true
});
this.dateDecidedField = new OO.ui.FieldLayout(this.dateDecided, {
align: 'left',
label: 'Рішення від'
});
this.decisionText = new OO.ui.MultilineTextInputWidget({
rows: 10,
value: 'Правління вирішило\n',
required: true,
});
this.decisionTextField = new OO.ui.FieldLayout(this.decisionText, {
align: 'top',
label: 'Текст рішення'
});
this.content.addItems([
this.decisionNumberField,
this.dateDecidedField,
this.decisionTextField,
]);
this.panel.$element.append(this.content.$element);
this.$body.append(this.panel.$element);
var api = new mw.Api();
var booklet = new OO.ui.BookletLayout({
outlined: true
});
},
getActionProcess: function (action) {
var dialog = this;
if (action) {
return new OO.ui.Process(function () {
dialog.close({action: action});
});
}
return DecisionDialogue.super.prototype.getActionProcess.call(this, action);
},
getBodyHeight: function () {
return 250;
},
});
var windowManager = new OO.ui.WindowManager();
$(document.body).append(windowManager.$element);
var decisionDialogue = new DecisionDialogue();
windowManager.addWindows([decisionDialogue]);
windowManager.openWindow(decisionDialogue, {});
});
};
DecisionPublisher();