No edit summary |
No edit summary |
||
Line 27: | Line 27: | ||
Line 176: | Line 145: | ||
})(jQuery); | |||
(function($) { | |||
// Function to toggle the submenu visibility | |||
function toggleSection(element) { | |||
var submenu = $(element).next('.submenu'); | |||
var isOpen = submenu.css('display') !== 'none'; | |||
submenu.css('display', isOpen ? 'none' : 'block'); | |||
saveMenuState(submenu.attr('id'), !isOpen); | |||
} | |||
// Function to save the submenu state | |||
function saveMenuState(menuItemId, isOpen) { | |||
localStorage.setItem(menuItemId, isOpen); | |||
} | |||
// Function to restore the submenu state on page load | |||
function restoreMenuState() { | |||
$('.submenu').each(function() { | |||
var isOpen = localStorage.getItem($(this).attr('id')) === 'true'; | |||
if (isOpen) { | |||
$(this).css('display', 'block'); | |||
} | |||
}); | |||
} | |||
// Function to set an item as active | |||
function setActiveItem(item) { | |||
$('.menu-item a, .menu-header').removeClass('active'); | |||
$(item).addClass('active'); | |||
} | |||
// Event listeners for submenu toggling and setting active item | |||
$(document).ready(function() { | |||
restoreMenuState(); | |||
$('.menu-header').click(function() { | |||
toggleSection(this); | |||
}); | |||
$('.menu-item a, .menu-header').click(function() { | |||
setActiveItem(this); | |||
}); | |||
}); | |||
})(jQuery); | })(jQuery); |
Revision as of 08:06, 23 November 2023
/* Any JavaScript here will be loaded for all users on every page load. */
$(document).ready(function () {
$.get(mw.util.wikiScript('api'), {
action: 'query',
meta: 'userinfo',
format: 'json'
}).done(function (data) {
if (data.query.userinfo.id !== 0) {
var username = data.query.userinfo.name;
var userLink = mw.util.getUrl('User:' + username);
var logoutLink = mw.util.getUrl('Special:Logout');
$('#user-info').html('<a href="' + userLink + '" class="text-white">' + username + '</a>' +
' | <a href="' + logoutLink + '" class="text-white">Logout</a>');
}
});
});
document.getElementById('offcanvas-toggler').addEventListener('click', function() {
var sidebar = document.getElementById('offcanvas-menu');
if (sidebar.classList.contains('show')) {
sidebar.classList.remove('show');
} else {
sidebar.classList.add('show');
}
});
$(document).ready(function() {
$('#offcanvas-close').on('click', function() {
$('#offcanvas-menu').removeClass('show');
});
});
document.addEventListener('DOMContentLoaded', function() {
var form = document.querySelector('.namespace-search-form');
if (form) {
form.addEventListener('submit', function(e) {
var input = form.querySelector('#bs-extendedsearch-input');
if (input) {
var namespace = mw.config.get('wgCanonicalNamespace');
if (namespace && namespace.length > 0) {
input.value = namespace + ": " + input.value;
}
}
});
}
});
(function($) {
'use strict';
var css = [
'#suggestion-container {',
' position: relative;',
' width: 100%;',
'}',
'#suggestion-box {',
' position: absolute;',
' top: 100%;',
' left: 0;',
' width: 100%;',
' margin-top: 5px;',
' border: 1px solid #ccc;',
' background-color: #fff;',
' z-index: 1000;',
'}',
'.suggestion-item {',
' padding: 8px;',
' cursor: pointer;',
'}',
'.suggestion-item:hover {',
' background-color: #e0e0e0;',
'}'
].join('\n');
$('head').append('<style type="text/css">' + css + '</style>');
$('#suggestion-container').append('<div id="suggestion-box"></div>');
function showSuggestions() {
var query = $(this).val();
if (query.length > 0) {
var apiUrl = "https://newwiki.mdriven.net/api.php";
var requestData = {
action: "bs-extendedsearch-autocomplete",
format: "json",
q: JSON.stringify({
query: {
bool: {
must: {
match: {
ac_ngram: {
query: query
}
}
}
}
},
size: 8
}),
searchData: JSON.stringify({
namespace: 0,
value: query,
mainpage: ""
})
};
$.ajax({
url: apiUrl,
data: requestData,
dataType: "json",
method: "GET",
success: function(data) {
var suggestions = data.suggestions || [];
$('#suggestion-box').empty();
$.each(suggestions, function(index, suggestion) {
var item = $('<div class="suggestion-item"></div>').text(suggestion.basename);
$('#suggestion-box').append(item);
});
},
error: function(jqxhr, textStatus, error) {
console.error('Error fetching suggestions:', error);
}
});
}
}
function hideSuggestions(event) {
if (!$(event.target).closest('#suggestion-container').length) {
$('#suggestion-box').empty();
}
}
function selectSuggestion(event) {
event.preventDefault(); // Prevent the mousedown event from triggering blur on the search input
var selectedText = $(this).text();
window.location.href = '/index.php?title=' + encodeURIComponent(selectedText);
}
$('.search-input').on('input', showSuggestions);
$(document).on('click', hideSuggestions);
$('#suggestion-box').on('mousedown', '.suggestion-item', selectSuggestion);
})(jQuery);
(function($) {
// Function to toggle the submenu visibility
function toggleSection(element) {
var submenu = $(element).next('.submenu');
var isOpen = submenu.css('display') !== 'none';
submenu.css('display', isOpen ? 'none' : 'block');
saveMenuState(submenu.attr('id'), !isOpen);
}
// Function to save the submenu state
function saveMenuState(menuItemId, isOpen) {
localStorage.setItem(menuItemId, isOpen);
}
// Function to restore the submenu state on page load
function restoreMenuState() {
$('.submenu').each(function() {
var isOpen = localStorage.getItem($(this).attr('id')) === 'true';
if (isOpen) {
$(this).css('display', 'block');
}
});
}
// Function to set an item as active
function setActiveItem(item) {
$('.menu-item a, .menu-header').removeClass('active');
$(item).addClass('active');
}
// Event listeners for submenu toggling and setting active item
$(document).ready(function() {
restoreMenuState();
$('.menu-header').click(function() {
toggleSection(this);
});
$('.menu-item a, .menu-header').click(function() {
setActiveItem(this);
});
});
})(jQuery);
This page was edited 146 days ago on 08/26/2024. What links here