User:BZPN/PNHelper.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
No edit summary Tag: Reverted |
Tag: Undo |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
mw.loader.using(['mediawiki.api', 'oojs-ui'], function() { |
|||
function createTaskModal() { |
|||
// Dodaj przycisk do p-tb |
|||
// Główne okno modalne |
|||
var button = new OO.ui.ButtonWidget({ |
|||
var taskModal = new OO.ui.WindowManager(); |
|||
label: 'Dodaj zadanie', |
|||
$('body').append(taskModal.$element); |
|||
flags: ['primary'] |
|||
}); |
|||
// |
// Klasa okna modalnego |
||
var TaskDialog = function() { |
|||
function openPopup() { |
|||
TaskDialog.super.apply(this, arguments); |
|||
}; |
|||
title: 'Dodaj nowe zadanie', |
|||
OO.inheritClass(TaskDialog, OO.ui.ProcessDialog); |
|||
size: 'medium' |
|||
}); |
|||
TaskDialog.static.name = 'taskDialog'; |
|||
// Tworzenie formularza |
|||
TaskDialog.static.title = 'Dodaj zadanie'; |
|||
var titleInput = new OO.ui.TextInputWidget({ |
|||
TaskDialog.static.actions = [ |
|||
placeholder: 'Tytuł zadania' |
|||
{ |
|||
action: 'save', |
|||
label: 'Zapisz', |
|||
flags: ['primary', 'progressive'] |
|||
}, |
|||
{ |
|||
action: 'cancel', |
|||
label: 'Anuluj', |
|||
flags: ['safe', 'close'] |
|||
} |
|||
]; |
|||
TaskDialog.prototype.initialize = function() { |
|||
var descriptionInput = new OO.ui.TextInputWidget({ |
|||
TaskDialog.super.prototype.initialize.apply(this, arguments); |
|||
placeholder: 'Opis zadania', |
|||
// Pole tytułu zadania |
|||
this.titleInput = new OO.ui.TextInputWidget({ |
|||
}); |
|||
placeholder: 'Wprowadź tytuł zadania' |
|||
}); |
|||
// Pole opisu zadania |
|||
this.descriptionInput = new OO.ui.MultilineTextInputWidget({ |
|||
label: 'Dodaj', |
|||
placeholder: 'Szczegółowy opis zadania', |
|||
rows: 5 |
|||
}); |
|||
// Przycisk dodawania linków |
|||
var cancelButton = new OO.ui.ButtonWidget({ |
|||
this.addLinkButton = new OO.ui.ButtonWidget({ |
|||
label: 'Dodaj linki do tekstu', |
|||
icon: 'link' |
|||
}); |
|||
// Przycisk |
// Przycisk stylowania tekstu |
||
this.styleTextButton = new OO.ui.ButtonWidget({ |
|||
label: ' |
label: 'Style tekstu', |
||
icon: 'formatting' |
|||
}); |
}); |
||
// |
// Układ pionowy elementów |
||
var contentLayout = new OO.ui.VerticalLayout({ |
|||
cancelButton.on('click', function() { |
|||
items: [ |
|||
this.titleInput, |
|||
this.descriptionInput, |
|||
new OO.ui.HorizontalLayout({ |
|||
items: [ |
|||
this.addLinkButton, |
|||
this.styleTextButton |
|||
] |
|||
}) |
|||
] |
|||
}); |
|||
// |
// Dodanie layoutu do panelu |
||
this.$body.append(contentLayout.$element); |
|||
addButton.on('click', function() { |
|||
}; |
|||
var title = titleInput.getValue(); |
|||
var description = descriptionInput.getValue(); |
|||
TaskDialog.prototype.getActionProcess = function(action) { |
|||
// Logika dodawania zadania |
|||
if (action === 'save') { |
|||
return new OO.ui.Process(function() { |
|||
// Logika zapisu zadania |
|||
}); |
|||
console.log('Tytuł:', this.titleInput.getValue()); |
|||
console.log('Opis:', this.descriptionInput.getValue()); |
|||
this.close(); |
|||
}, this); |
|||
} |
|||
if (action === 'cancel') { |
|||
return new OO.ui.Process(function() { |
|||
this.close(); |
|||
}, this); |
|||
} |
|||
return TaskDialog.super.prototype.getActionProcess.call(this, action); |
|||
}; |
|||
// |
// Dodanie obsługi zdarzeń dla przycisków specjalnych |
||
TaskDialog.prototype.onDialogReady = function() { |
|||
this.addLinkButton.on('click', function() { |
|||
// Logika dodawania linków do zaznaczonych wyrazów |
|||
// Logika dodawania linków |
|||
alert('Funkcja dodawania linków w trakcie implementacji'); |
|||
}); |
|||
this.styleTextButton.on('click', function() { |
|||
// Logika stylowania tekstu |
|||
alert('Funkcja stylowania tekstu w trakcie implementacji'); |
|||
}); |
|||
}; |
|||
// Stworzenie instancji dialogu |
|||
var taskDialog = new TaskDialog({ |
|||
size: 'large' |
|||
}); |
}); |
||
// |
// Dodanie dialogu do menedżera okien |
||
taskModal.addWindows([taskDialog]); |
|||
dialog.$body.append(descriptionInput.$element); |
|||
dialog.$body.append(addButton.$element); |
|||
dialog.$body.append(linkButton.$element); |
|||
dialog.$body.append(cancelButton.$element); |
|||
// |
// Funkcja otwierania modala |
||
function openTaskModal() { |
|||
taskModal.openWindow(taskDialog); |
|||
} |
|||
} |
|||
// Dodanie przycisku do paska narzędzi |
|||
function addTaskButton() { |
|||
var $toolbar = $('#p-tb .vector-menu-content-list'); |
|||
var $taskButton = $('<li>') |
|||
.append( |
|||
$('<a>') |
|||
.text('Dodaj zadanie') |
|||
.on('click', openTaskModal) |
|||
); |
|||
$toolbar.append($taskButton); |
|||
} |
|||
// Inicjalizacja po załadowaniu strony |
|||
// Dodaj zdarzenie kliknięcia do przycisku |
|||
$(document).ready(addTaskButton); |
|||
button.on('click', openPopup); |
|||
} |
|||
// |
// Wywołanie funkcji inicjalizującej |
||
createTaskModal(); |
|||
$('#mw-panel > div.mw-portlet-body').append(button.$element); |
|||
}); |
}); |
Latest revision as of 16:25, 20 November 2024
mw.loader.using(['mediawiki.api', 'oojs-ui'], function() {
function createTaskModal() {
// Główne okno modalne
var taskModal = new OO.ui.WindowManager();
$('body').append(taskModal.$element);
// Klasa okna modalnego
var TaskDialog = function() {
TaskDialog.super.apply(this, arguments);
};
OO.inheritClass(TaskDialog, OO.ui.ProcessDialog);
TaskDialog.static.name = 'taskDialog';
TaskDialog.static.title = 'Dodaj zadanie';
TaskDialog.static.actions = [
{
action: 'save',
label: 'Zapisz',
flags: ['primary', 'progressive']
},
{
action: 'cancel',
label: 'Anuluj',
flags: ['safe', 'close']
}
];
TaskDialog.prototype.initialize = function() {
TaskDialog.super.prototype.initialize.apply(this, arguments);
// Pole tytułu zadania
this.titleInput = new OO.ui.TextInputWidget({
placeholder: 'Wprowadź tytuł zadania'
});
// Pole opisu zadania
this.descriptionInput = new OO.ui.MultilineTextInputWidget({
placeholder: 'Szczegółowy opis zadania',
rows: 5
});
// Przycisk dodawania linków
this.addLinkButton = new OO.ui.ButtonWidget({
label: 'Dodaj linki do tekstu',
icon: 'link'
});
// Przycisk stylowania tekstu
this.styleTextButton = new OO.ui.ButtonWidget({
label: 'Style tekstu',
icon: 'formatting'
});
// Układ pionowy elementów
var contentLayout = new OO.ui.VerticalLayout({
items: [
this.titleInput,
this.descriptionInput,
new OO.ui.HorizontalLayout({
items: [
this.addLinkButton,
this.styleTextButton
]
})
]
});
// Dodanie layoutu do panelu
this.$body.append(contentLayout.$element);
};
TaskDialog.prototype.getActionProcess = function(action) {
if (action === 'save') {
return new OO.ui.Process(function() {
// Logika zapisu zadania
console.log('Tytuł:', this.titleInput.getValue());
console.log('Opis:', this.descriptionInput.getValue());
this.close();
}, this);
}
if (action === 'cancel') {
return new OO.ui.Process(function() {
this.close();
}, this);
}
return TaskDialog.super.prototype.getActionProcess.call(this, action);
};
// Dodanie obsługi zdarzeń dla przycisków specjalnych
TaskDialog.prototype.onDialogReady = function() {
this.addLinkButton.on('click', function() {
// Logika dodawania linków
alert('Funkcja dodawania linków w trakcie implementacji');
});
this.styleTextButton.on('click', function() {
// Logika stylowania tekstu
alert('Funkcja stylowania tekstu w trakcie implementacji');
});
};
// Stworzenie instancji dialogu
var taskDialog = new TaskDialog({
size: 'large'
});
// Dodanie dialogu do menedżera okien
taskModal.addWindows([taskDialog]);
// Funkcja otwierania modala
function openTaskModal() {
taskModal.openWindow(taskDialog);
}
// Dodanie przycisku do paska narzędzi
function addTaskButton() {
var $toolbar = $('#p-tb .vector-menu-content-list');
var $taskButton = $('<li>')
.append(
$('<a>')
.text('Dodaj zadanie')
.on('click', openTaskModal)
);
$toolbar.append($taskButton);
}
// Inicjalizacja po załadowaniu strony
$(document).ready(addTaskButton);
}
// Wywołanie funkcji inicjalizującej
createTaskModal();
});