User:BZPN/PNHelper.js

From Test Wiki
Revision as of 16:24, 20 November 2024 by BZPN (talk | contribs)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
mw.loader.using('mediawiki.util').then(function() {
    // Dodanie przycisku do paska bocznego
    mw.util.addPortletLink(
        'p-tb',                   // Sekcja na pasku bocznym
        '#',                      // Link (placeholder)
        'Dodaj zadanie',          // Tekst przycisku
        'dodaj-zadanie-przycisk', // ID przycisku
        'Dodaj nowe zadanie'      // Opis przycisku (tooltip)
    );

    // Funkcja wyświetlająca popup
    function showPopup() {
        // Tworzenie elementów popupu
        var $popup = $('<div>', { id: 'zadanie-popup', class: 'popup-okno' }).css({
            position: 'fixed',
            top: '50%',
            left: '50%',
            transform: 'translate(-50%, -50%)',
            background: '#fff',
            padding: '20px',
            border: '1px solid #ccc',
            'z-index': 1000
        });
        
        // Pole do wpisania tytułu zadania
        var $titleInput = $('<input>', {
            type: 'text',
            id: 'zadanie-tytul',
            placeholder: 'Wpisz tytuł zadania'
        }).css({ width: '100%', 'margin-bottom': '10px' });
        
        // Większe pole do wpisania opisu zadania
        var $descriptionInput = $('<textarea>', {
            id: 'zadanie-opis',
            placeholder: 'Wpisz opis zadania'
        }).css({ width: '100%', height: '100px', 'margin-bottom': '10px' });
        
        // Przycisk do dodawania stylów tekstu
        var $editButtons = $('<div>', { id: 'edit-buttons' }).css({ 'margin-bottom': '10px' });
        var $boldButton = $('<button>', { text: 'B' }).css({ 'font-weight': 'bold' }).on('click', function() {
            document.execCommand('bold');
        });
        var $italicButton = $('<button>', { text: 'I' }).css({ 'font-style': 'italic' }).on('click', function() {
            document.execCommand('italic');
        });
        $editButtons.append($boldButton, $italicButton);
        
        // Przycisk do dodawania linków do zaznaczonych wyrazów
        var $linkButton = $('<button>', { text: 'Dodaj link' }).on('click', function() {
            var selectedText = window.getSelection().toString();
            if (selectedText) {
                var url = prompt('Podaj URL dla zaznaczonego tekstu:');
                if (url) {
                    document.execCommand('createLink', false, url);
                }
            } else {
                alert('Zaznacz tekst, aby dodać link.');
            }
        });

        // Przycisk Anuluj
        var $cancelButton = $('<button>', { text: 'Anuluj' }).on('click', function() {
            $popup.remove();
        }).css({ 'margin-top': '10px', 'background-color': '#f44336', color: '#fff' });

        // Dodanie elementów do popupu
        $popup.append($titleInput, $descriptionInput, $editButtons, $linkButton, $cancelButton);

        // Dodanie popupu do dokumentu
        $('body').append($popup);
    }

    // Podpięcie funkcji do kliknięcia przycisku
    $('#dodaj-zadanie-przycisk').on('click', function(e) {
        e.preventDefault();
        showPopup();
    });
});