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
Restored revision 53161 by BZPN (Restorer)
Tag: Undo
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
$(document).ready(function() {
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',
icon: 'add',
$('body').append(taskModal.$element);
flags: ['primary']
});


// Funkcja otwierająca popup
// Klasa okna modalnego
var TaskDialog = function() {
function openPopup() {
var dialog = new OO.ui.Dialog({
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',
multiline: true,
rows: 5
// Pole tytułu zadania
this.titleInput = new OO.ui.TextInputWidget({
});
placeholder: 'Wprowadź tytuł zadania'
});


var addButton = new OO.ui.ButtonWidget({
// Pole opisu zadania
this.descriptionInput = new OO.ui.MultilineTextInputWidget({
label: 'Dodaj',
flags: ['primary']
placeholder: 'Szczegółowy opis zadania',
});
rows: 5
});


// Przycisk dodawania linków
var cancelButton = new OO.ui.ButtonWidget({
label: 'Anuluj',
this.addLinkButton = new OO.ui.ButtonWidget({
flags: ['secondary']
label: 'Dodaj linki do tekstu',
});
icon: 'link'
});


// Przycisk do dodawania linków
// Przycisk stylowania tekstu
var linkButton = new OO.ui.ButtonWidget({
this.styleTextButton = new OO.ui.ButtonWidget({
label: 'Dodaj link',
label: 'Style tekstu',
flags: ['primary']
icon: 'formatting'
});
});


// Zdarzenie kliknięcia przycisku "Anuluj"
// Układ pionowy elementów
var contentLayout = new OO.ui.VerticalLayout({
cancelButton.on('click', function() {
dialog.close();
items: [
});
this.titleInput,
this.descriptionInput,
new OO.ui.HorizontalLayout({
items: [
this.addLinkButton,
this.styleTextButton
]
})
]
});


// Zdarzenie kliknięcia przycisku "Dodaj"
// 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
console.log('Dodano zadanie:', title, description);
if (action === 'save') {
dialog.close();
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);
};


// Zdarzenie kliknięcia przycisku "Dodaj link"
// Dodanie obsługi zdarzeń dla przycisków specjalnych
linkButton.on('click', function() {
TaskDialog.prototype.onDialogReady = function() {
this.addLinkButton.on('click', function() {
// Logika dodawania linków do zaznaczonych wyrazów
console.log('Dodaj link 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'
});
});


// Dodaj elementy do dialogu
// Dodanie dialogu do menedżera okien
dialog.$body.append(titleInput.$element);
taskModal.addWindows([taskDialog]);
dialog.$body.append(descriptionInput.$element);
dialog.$body.append(addButton.$element);
dialog.$body.append(linkButton.$element);
dialog.$body.append(cancelButton.$element);


// Otwórz dialog
// Funkcja otwierania modala
dialog.open();
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);
}


// Dodaj przycisk do p-tb
// 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();
});