MediaWiki:Common.js: відмінності між версіями

нема опису редагування
Немає опису редагування
Немає опису редагування
Рядок 104: Рядок 104:
});
});


// ==================================================
// МОБІЛЬНИЙ ПОШУК
// ==================================================
$(function() {
    // Тільки для мобільних
    if ($(window).width() > 768) return;
   
    var $searchBtn = $('.mobile-search-btn');
    var $overlay = $('.mobile-search-overlay');
   
    // Якщо вже є - не створюємо заново
    if ($searchBtn.length === 0) {
        $searchBtn = $('<div class="mobile-search-btn">' +
            '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2">' +
            '<circle cx="11" cy="11" r="8"/>' +
            '<path d="m21 21-4.35-4.35"/>' +
            '</svg>' +
        '</div>');
       
        $overlay = $('<div class="mobile-search-overlay">' +
            '<input type="text" placeholder="Пошук..." autocomplete="off">' +
            '<div class="mobile-search-close">×</div>' +
        '</div>');
       
        $('.minerva-header .branding-box').after($searchBtn);
        $('body').append($overlay);
    }
   
    var $input = $overlay.find('input');
    var $close = $overlay.find('.mobile-search-close');
   
    $searchBtn.on('click', function(e) {
        e.preventDefault();
        e.stopPropagation();
        $overlay.addClass('active');
        setTimeout(function() { $input.focus(); }, 100);
    });
   
    $close.on('click', function() {
        $overlay.removeClass('active');
        $input.val('');
    });
   
    $input.on('keydown', function(e) {
        if (e.keyCode === 13) {
            var query = $input.val().trim();
            if (query) {
                window.location.href = '/index.php?title=Спеціальна:Пошук&search=' + encodeURIComponent(query);
            }
        }
        if (e.keyCode === 27) {
            $overlay.removeClass('active');
            $input.val('');
        }
    });
   
    $overlay.on('click', function(e) {
        if (e.target === this) {
            $overlay.removeClass('active');
            $input.val('');
        }
    });
});


// ==================================================
// ==================================================
Рядок 312: Рядок 249:
     });
     });
});
});


// ==================================================
// ==================================================
Рядок 317: Рядок 255:
// ==================================================
// ==================================================
$(function() {
$(function() {
    // Тільки на мобільних
     if ($(window).width() > 768) return;
     if ($(window).width() > 768) return;
      
      
     // Створюємо overlay для пошуку
     // Перевіряємо чи вже створено
     var $overlay = $('<div class="mobile-search-overlay">' +
     if ($('.mobile-search-btn').length > 0) return;
        '<input type="search" placeholder="Пошук..." id="mobileSearchInput">' +
        '<span class="mobile-search-close">×</span>' +
    '</div>');
   
    $('body').append($overlay);
   
    var $input = $('#mobileSearchInput');
    var $close = $overlay.find('.mobile-search-close');
    var $searchIcon = $('#searchIcon');
   
    // Клік на іконку пошуку - відкриваємо
    $searchIcon.on('click', function(e) {
        e.preventDefault();
        e.stopPropagation();
        $overlay.addClass('active');
        $input.focus();
    });
   
    // Клік на хрестик - закриваємо
    $close.on('click', function() {
        $overlay.removeClass('active');
        $input.val('');
    });
   
    // Enter - пошук
    $input.on('keydown', function(e) {
        if (e.which === 13 || e.keyCode === 13) {
            e.preventDefault();
            var query = $(this).val().trim();
            if (query) {
                window.location.href = '/index.php?title=Спеціальна:Пошук&search=' + encodeURIComponent(query);
            }
        }
    });
   
    // Escape - закриваємо
    $(document).on('keydown', function(e) {
        if (e.which === 27 && $overlay.hasClass('active')) {
            $overlay.removeClass('active');
            $input.val('');
        }
    });
      
      
    // Клік поза overlay - закриваємо
    $overlay.on('click', function(e) {
        if (e.target === this) {
            $overlay.removeClass('active');
            $input.val('');
        }
    });
});
/* ==================================================== */
/* МОБІЛЬНИЙ ПОШУК - ІКОНКА + OVERLAY */
/* ==================================================== */
$(function() {
    // Тільки для мобільних
    if (window.innerWidth > 768) return;
   
    // Створюємо кнопку пошуку
     var $searchBtn = $('<div class="mobile-search-btn">' +
     var $searchBtn = $('<div class="mobile-search-btn">' +
         '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2">' +
         '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2">' +
Рядок 390: Рядок 267:
     '</div>');
     '</div>');
      
      
    // Створюємо overlay
     var $overlay = $('<div class="mobile-search-overlay">' +
     var $overlay = $('<div class="mobile-search-overlay">' +
         '<input type="text" placeholder="Пошук..." autocomplete="off" autocapitalize="off">' +
         '<input type="text" placeholder="Пошук..." autocomplete="off">' +
         '<div class="mobile-search-close">×</div>' +
         '<div class="mobile-search-close">×</div>' +
     '</div>');
     '</div>');
      
      
    // Додаємо в DOM
     $('.minerva-header .branding-box').after($searchBtn);
     $('.minerva-header .branding-box').after($searchBtn);
     $('body').append($overlay);
     $('body').append($overlay);
Рядок 403: Рядок 278:
     var $close = $overlay.find('.mobile-search-close');
     var $close = $overlay.find('.mobile-search-close');
      
      
    // Відкриття пошуку
     $searchBtn.on('click', function(e) {
     $searchBtn.on('click', function(e) {
         e.preventDefault();
         e.preventDefault();
         e.stopPropagation();
         e.stopPropagation();
         $overlay.addClass('active');
         $overlay.addClass('active');
         setTimeout(function() {
         setTimeout(function() { $input.focus(); }, 100);
            $input.focus();
        }, 100);
     });
     });
      
      
    // Закриття пошуку
     $close.on('click', function() {
     $close.on('click', function() {
         $overlay.removeClass('active');
         $overlay.removeClass('active');
Рядок 419: Рядок 290:
     });
     });
      
      
    // Enter - пошук
     $input.on('keydown', function(e) {
     $input.on('keydown', function(e) {
         if (e.keyCode === 13) { // Enter
         if (e.keyCode === 13) {
             var query = $input.val().trim();
             var query = $input.val().trim();
             if (query) {
             if (query) {
Рядок 427: Рядок 297:
             }
             }
         }
         }
         if (e.keyCode === 27) { // Escape
         if (e.keyCode === 27) {
             $overlay.removeClass('active');
             $overlay.removeClass('active');
             $input.val('');
             $input.val('');
Рядок 433: Рядок 303:
     });
     });
      
      
    // Клік поза overlay - закриття
     $overlay.on('click', function(e) {
     $overlay.on('click', function(e) {
         if (e.target === this) {
         if (e.target === this) {