|
|
Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */ | | /* Any JavaScript here will be loaded for all users on every page load. */ |
| // === Universal "Create Page" Button for WikiOasis === | | // === CreatePageButton handler === |
| ( function () {
| | $(document).on('click', '.create-page-button', function () { |
| $(function () {
| | var prefix = $(this).data('prefix') || ''; |
| // Remove this line if you want guests to see it too:
| | var title = prompt('Enter the title of the new page:'); |
| if ( mw.user.isAnon() ) return;
| | if (!title) return; |
| | | title = title.trim().replace(/\s+/g, ' '); |
| // Function to open the edit page
| | var fullTitle = prefix ? prefix + title : title; |
| function createPage(title) {
| | window.location.href = mw.util.getUrl(fullTitle, { action: 'edit' }); |
| if (!title) return;
| | }); |
| title = title.trim().replace(/\s+/g, ' ');
| |
| var url = mw.util.getUrl(title, { action: 'edit' });
| |
| window.location.href = url;
| |
| }
| |
| | |
| // Create the button
| |
| var $btn = $('<a>')
| |
| .attr('id', 'create-new-page-button')
| |
| .attr('href', '#')
| |
| .text('Create page')
| |
| .css({
| |
| 'margin-left': '8px',
| |
| 'padding': '6px 10px',
| |
| 'background': '#2a7ae2',
| |
| 'color': '#fff',
| |
| 'border-radius': '4px',
| |
| 'text-decoration':'none',
| |
| 'font-weight':'600',
| |
| 'cursor': 'pointer'
| |
| })
| |
| .click(function (e) {
| |
| e.preventDefault();
| |
| var title = prompt('Enter the title of the new page:');
| |
| createPage(title);
| |
| });
| |
| | |
| // Try different common locations for modern Vector / Oasis skins
| |
| var added = false;
| |
| | |
| // 1. New Vector user menu area
| |
| if ($('.vector-user-menu, .vector-menu-content-list, .vector-menu-content').length) {
| |
| $('.vector-user-menu .vector-menu-content-list, .vector-menu-content').first().append($('<li>').append($btn));
| |
| added = true;
| |
| }
| |
| | |
| // 2. Classic personal toolbar
| |
| if (!added && $('#p-personal ul').length) {
| |
| $('#p-personal ul').append($('<li>').append($btn));
| |
| added = true;
| |
| }
| |
| | |
| // 3. Sidebar navigation
| |
| if (!added && $('#p-navigation .body ul').length) {
| |
| $('#p-navigation .body ul').append($('<li>').append($btn));
| |
| added = true;
| |
| }
| |
| | |
| // 4. Absolute fallback – inject near the top of the page
| |
| if (!added) {
| |
| $('#mw-content-text').prepend($('<div style="margin-bottom:1em;">').append($btn));
| |
| }
| |
| });
| |
| }() ); | |
/* Any JavaScript here will be loaded for all users on every page load. */
// === CreatePageButton handler ===
$(document).on('click', '.create-page-button', function () {
var prefix = $(this).data('prefix') || '';
var title = prompt('Enter the title of the new page:');
if (!title) return;
title = title.trim().replace(/\s+/g, ' ');
var fullTitle = prefix ? prefix + title : title;
window.location.href = mw.util.getUrl(fullTitle, { action: 'edit' });
});