User:BZPN/PNHelper.js: Difference between revisions

From Test Wiki
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) {
// Tworzenie przycisku
label: 'Dodaj zadanie',
icon: 'add',
var $button = $('<li id="t-custom-task"><a href="#"></a></li>');
$button.find('a').text('Dodaj zadanie');
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'
});


// Funkcja tworząca okno dialogowe
// Tworzenie formularza
var titleInput = new OO.ui.TextInputWidget({
function createDialog() {
var dialog = new OO.ui.ProcessDialog({
placeholder: 'Tytuł zadania'
size: 'large',
});
title: 'Dodaj nowe zadanie'
});


var descriptionInput = new OO.ui.TextInputWidget({
// Tworzenie pól formularza
var titleInput = new OO.ui.TextInputWidget({
placeholder: 'Opis zadania',
placeholder: 'Wpisz tytuł zadania'
multiline: true,
});
rows: 5
});


var descriptionInput = new OO.ui.MultilineTextInputWidget({
var addButton = new OO.ui.ButtonWidget({
placeholder: 'Wpisz opis zadania',
label: 'Dodaj',
rows: 10,
flags: ['primary']
autosize: true
});
});


// Przyciski edycji tekstu
var cancelButton = new OO.ui.ButtonWidget({
var boldButton = new OO.ui.ButtonWidget({
label: 'Anuluj',
icon: 'bold',
flags: ['secondary']
title: 'Pogrubienie'
});
});
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']
});


// Funkcje edycji tekstu
// Zdarzenie kliknięcia przycisku "Anuluj"
function wrapSelection(before, after) {
cancelButton.on('click', function() {
var textarea = descriptionInput.$input[0];
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("'''", "'''"); });
italicButton.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>"); });
superscriptButton.on('click', function() { wrapSelection("<sup>", "</sup>"); });
console.log('Dodano zadanie:', title, description);
linkButton.on('click', function() {
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(
new OO.ui.FieldsetLayout({
// Logika dodawania linków do zaznaczonych wyrazów
items: [
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
);


// Przyciski akcji
// Dodaj elementy do dialogu
dialog.actions = [
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);


// Obsługa akcji
// Otwórz dialog
dialog.getActionProcess = function (action) {
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);
}


// Dodanie obsługi kliknięcia przycisku
// 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);
});