User:BZPN/PNHelper.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
No edit summary Tag: Reverted |
No edit summary Tag: Reverted |
||
Line 1: | Line 1: | ||
$(document).ready(function() { |
|||
// <nowiki> |
|||
// Dodaj przycisk do p-tb |
|||
mw.loader.using(['oojs-ui-core', 'oojs-ui-windows', 'oojs-ui-widgets'], function () { |
|||
var button = new OO.ui.ButtonWidget({ |
|||
mw.hook('wikipage.content').add(function ($content) { |
|||
label: 'Dodaj zadanie', |
|||
icon: 'add', |
|||
var $button = $('<li id="t-custom-task"><a href="#"></a></li>'); |
|||
flags: ['primary'] |
|||
}); |
|||
// Funkcja otwierająca popup |
|||
// Dodanie przycisku do paska narzędzi |
|||
function openPopup() { |
|||
$('#p-tb ul').append($button); |
|||
var dialog = new OO.ui.Dialog({ |
|||
title: 'Dodaj nowe zadanie', |
|||
size: 'medium' |
|||
}); |
|||
// |
// Tworzenie formularza |
||
var titleInput = new OO.ui.TextInputWidget({ |
|||
function createDialog() { |
|||
placeholder: 'Tytuł zadania' |
|||
}); |
|||
title: 'Dodaj nowe zadanie' |
|||
}); |
|||
var descriptionInput = new OO.ui.TextInputWidget({ |
|||
// Tworzenie pól formularza |
|||
placeholder: 'Opis zadania', |
|||
multiline: true, |
|||
rows: 5 |
|||
}); |
|||
var addButton = new OO.ui.ButtonWidget({ |
|||
label: 'Dodaj', |
|||
flags: ['primary'] |
|||
}); |
|||
}); |
|||
var cancelButton = new OO.ui.ButtonWidget({ |
|||
label: 'Anuluj', |
|||
flags: ['secondary'] |
|||
}); |
|||
}); |
|||
var italicButton = new OO.ui.ButtonWidget({ |
|||
icon: 'italic', |
|||
title: 'Kursywa' |
|||
}); |
|||
var underlineButton = new OO.ui.ButtonWidget({ |
|||
icon: 'underline', |
|||
title: 'Podkreślenie' |
|||
}); |
|||
var strikethroughButton = new OO.ui.ButtonWidget({ |
|||
icon: 'strikethrough', |
|||
title: 'Przekreślenie' |
|||
}); |
|||
var subscriptButton = new OO.ui.ButtonWidget({ |
|||
icon: 'subscript', |
|||
title: 'Indeks dolny' |
|||
}); |
|||
var superscriptButton = new OO.ui.ButtonWidget({ |
|||
icon: 'superscript', |
|||
title: 'Indeks górny' |
|||
}); |
|||
var linkButton = new OO.ui.ButtonWidget({ |
|||
icon: 'link', |
|||
title: 'Wstaw link' |
|||
}); |
|||
// Przycisk do dodawania linków |
|||
var editButtons = new OO.ui.ButtonGroupWidget({ |
|||
var linkButton = new OO.ui.ButtonWidget({ |
|||
items: [boldButton, italicButton, underlineButton, strikethroughButton, subscriptButton, superscriptButton, linkButton] |
|||
label: 'Dodaj link', |
|||
flags: ['primary'] |
|||
}); |
|||
// Zdarzenie kliknięcia przycisku "Anuluj" |
|||
cancelButton.on('click', function() { |
|||
dialog.close(); |
|||
}); |
|||
var start = textarea.selectionStart; |
|||
var end = textarea.selectionEnd; |
|||
var selectedText = textarea.value.substring(start, end); |
|||
var replacement = before + selectedText + after; |
|||
textarea.value = textarea.value.substring(0, start) + replacement + textarea.value.substring(end); |
|||
descriptionInput.setValue(textarea.value); |
|||
} |
|||
// Zdarzenie kliknięcia przycisku "Dodaj" |
|||
boldButton.on('click', function() { wrapSelection("'''", "'''"); }); |
|||
addButton.on('click', function() { |
|||
var title = titleInput.getValue(); |
|||
underlineButton.on('click', function() { wrapSelection("<u>", "</u>"); }); |
|||
var description = descriptionInput.getValue(); |
|||
strikethroughButton.on('click', function() { wrapSelection("<s>", "</s>"); }); |
|||
// Logika dodawania zadania |
|||
subscriptButton.on('click', function() { wrapSelection("<sub>", "</sub>"); }); |
|||
console.log('Dodano zadanie:', title, description); |
|||
dialog.close(); |
|||
}); |
|||
var selectedText = descriptionInput.$input[0].value.substring( |
|||
descriptionInput.$input[0].selectionStart, |
|||
descriptionInput.$input[0].selectionEnd |
|||
); |
|||
if (selectedText) { |
|||
wrapSelection("[[", "]]"); |
|||
} else { |
|||
alert('Zaznacz tekst, aby dodać link.'); |
|||
} |
|||
}); |
|||
// Zdarzenie kliknięcia przycisku "Dodaj link" |
|||
// Konfiguracja okna dialogowego |
|||
linkButton.on('click', function() { |
|||
dialog.$body.append( |
|||
// Logika dodawania linków do zaznaczonych wyrazów |
|||
console.log('Dodaj link do zaznaczonych wyrazów'); |
|||
}); |
|||
new OO.ui.FieldLayout(titleInput, { |
|||
label: 'Tytuł zadania', |
|||
align: 'top' |
|||
}), |
|||
new OO.ui.FieldLayout(editButtons, { |
|||
label: 'Edycja tekstu', |
|||
align: 'top' |
|||
}), |
|||
new OO.ui.FieldLayout(descriptionInput, { |
|||
label: 'Opis zadania', |
|||
align: 'top' |
|||
}) |
|||
] |
|||
}).$element |
|||
); |
|||
// Dodaj elementy do dialogu |
|||
dialog.$body.append(titleInput.$element); |
|||
dialog.$body.append(descriptionInput.$element); |
|||
{ action: 'cancel', label: 'Anuluj', flags: ['safe', 'close'] }, |
|||
dialog.$body.append(addButton.$element); |
|||
{ action: 'submit', label: 'Zapisz', flags: ['primary', 'progressive'] } |
|||
dialog.$body.append(linkButton.$element); |
|||
]; |
|||
dialog.$body.append(cancelButton.$element); |
|||
// Otwórz dialog |
|||
dialog.open(); |
|||
} |
|||
if (action === 'submit') { |
|||
return new OO.ui.Process(function () { |
|||
console.log('Zapisano zadanie:', titleInput.getValue(), descriptionInput.getValue()); |
|||
dialog.close(); |
|||
}); |
|||
} |
|||
return dialog.parent.getActionProcess.call(this, action); |
|||
}; |
|||
// Dodaj zdarzenie kliknięcia do przycisku |
|||
// Otwieranie okna dialogowego |
|||
button.on('click', openPopup); |
|||
var windowManager = new OO.ui.WindowManager(); |
|||
$('body').append(windowManager.$element); |
|||
windowManager.addWindows([dialog]); |
|||
windowManager.openWindow(dialog); |
|||
} |
|||
// Dodaj przycisk do p-tb |
|||
$('#mw-panel > div.mw-portlet-body').append(button.$element); |
|||
$button.on('click', function (e) { |
|||
e.preventDefault(); |
|||
createDialog(); |
|||
}); |
|||
}); |
|||
}); |
}); |
||
// </nowiki> |
Revision as of 16:17, 20 November 2024
$(document).ready(function() {
// Dodaj przycisk do p-tb
var button = new OO.ui.ButtonWidget({
label: 'Dodaj zadanie',
icon: 'add',
flags: ['primary']
});
// Funkcja otwierająca popup
function openPopup() {
var dialog = new OO.ui.Dialog({
title: 'Dodaj nowe zadanie',
size: 'medium'
});
// Tworzenie formularza
var titleInput = new OO.ui.TextInputWidget({
placeholder: 'Tytuł zadania'
});
var descriptionInput = new OO.ui.TextInputWidget({
placeholder: 'Opis zadania',
multiline: true,
rows: 5
});
var addButton = new OO.ui.ButtonWidget({
label: 'Dodaj',
flags: ['primary']
});
var cancelButton = new OO.ui.ButtonWidget({
label: 'Anuluj',
flags: ['secondary']
});
// Przycisk do dodawania linków
var linkButton = new OO.ui.ButtonWidget({
label: 'Dodaj link',
flags: ['primary']
});
// Zdarzenie kliknięcia przycisku "Anuluj"
cancelButton.on('click', function() {
dialog.close();
});
// Zdarzenie kliknięcia przycisku "Dodaj"
addButton.on('click', function() {
var title = titleInput.getValue();
var description = descriptionInput.getValue();
// Logika dodawania zadania
console.log('Dodano zadanie:', title, description);
dialog.close();
});
// Zdarzenie kliknięcia przycisku "Dodaj link"
linkButton.on('click', function() {
// Logika dodawania linków do zaznaczonych wyrazów
console.log('Dodaj link do zaznaczonych wyrazów');
});
// Dodaj elementy do dialogu
dialog.$body.append(titleInput.$element);
dialog.$body.append(descriptionInput.$element);
dialog.$body.append(addButton.$element);
dialog.$body.append(linkButton.$element);
dialog.$body.append(cancelButton.$element);
// Otwórz dialog
dialog.open();
}
// Dodaj zdarzenie kliknięcia do przycisku
button.on('click', openPopup);
// Dodaj przycisk do p-tb
$('#mw-panel > div.mw-portlet-body').append(button.$element);
});