User:Talex/common.js

From Geohashing
< User:Talex
Revision as of 06:05, 6 September 2023 by Talex (talk | contribs) (Created page with "// <includeonly> function addToolbarButton(expeditionTemplate) { $('#wpTextbox1').on('wikiEditor-toolbar-doneInitialSections', function () { $('#wpTextbox1').wikiE...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note: After saving, 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: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
// <includeonly>
function addToolbarButton(expeditionTemplate) {
    $('#wpTextbox1').on('wikiEditor-toolbar-doneInitialSections', function () {
        $('#wpTextbox1').wikiEditor('addToToolbar', {
            section: 'main',
            group: 'insert',
            tools: {
                buttonId: {
                    label: 'Expedition template',
                    type: 'button',
                    icon: '/images/thumb/4/4c/Landgeohash.png/24px-Landgeohash.png',
                    action: {
                        type: 'encapsulate',
                        options: {
                            post: expeditionTemplate,
                        },
                    },
                },
            },
        });
    });
}

const userName = $('.navbar-userloggedin')[0].title.replace(
    /You are logged in as (.*)\./,
    '$1'
);

const expeditionRegex = /\d{4}-\d{2}-\d{2}_-?\d{1,3}_-?\d{1,3}/;
const expeditionMatch = location.toString().match(expeditionRegex);

if (
    expeditionMatch !== null &&
    (mw.config.get(['wgAction']).wgAction === 'edit' ||
        mw.config.get(['wgAction']).wgAction === 'submit')
) {
    const expeditionData = expeditionMatch[0].split('_');
    const date = expeditionData[0];
    const lat = expeditionData[1];
    const lon = expeditionData[2];
    const meetupTemplate =
        '{{meetup graticule|date=' +
        date +
        '|lat=' +
        lat +
        '|lon=' +
        lon +
        '}}';
    // prettier-ignore
    const expeditionTemplate = meetupTemplate + "\
\n\
==Location==\n\
\n\
==Participants==\n\
*[[User:" + userName + "|" + userName + "]]\n\
\n\
==Expedition==\n\
\n\
==Photos==\n\
<gallery heights=\"300px\" mode=\"packed\">\n\
</gallery>\n\
\n\
==Achievements==\n\
{{#vardefine:ribbonwidth|100%}}\n\
<!-- delete as appropriate\n\
{{Walk geohash|latitude=" + lat + "|longitude=" + lon + "|date=" + date + "|name=" + userName + "|distance=COMPLETETHIS}}\n\
{{Bicycle geohash|latitude=" + lat + "|longitude=" + lon + "|date=" + date + "|name=" + userName + "|distance=COMPLETETHIS}}\n\
{{Public transport geohash|latitude=" + lat + "|longitude=" + lon + "|date=" + date + "|name=" + userName + "|distance=COMPLETETHIS}}\n\
{{Velociraptor geohash|latitude=" + lat + "|longitude=" + lon + "|date=" + date + "|name=" + userName + "}}\n\
{{Ambassador geohash|latitude=" + lat + "|longitude=" + lon + "|date=" + date + "|name=" + userName + "}}\n\
-->\n\
\n\
__NOTOC__\n\
<!-- delete as appropriate\n\
[[Category:Expeditions]]\n\
[[Category:Expedition planning]]\n\
[[Category:Coordinates reached]]\n\
[[Category:Coordinates not reached]]\n\
[[Category:Not reached - Did not attempt]]\n\
[[Category:Not reached - No public access]]\n\
[[Category:Not reached - Mother Nature]]\n\
[[Category:Not reached - Technology]]\n\
[[Category:Not reached - Time constraints]]\n\
[[Category:Expeditions with photos]]\n\
-->\n";

    $(document).ready(function () {
        addToolbarButton(expeditionTemplate);

        if ($('#wpTextbox1').val() === '') {
            // Let's just automatically fill a blank page with the template
            $('#wpTextbox1').val(expeditionTemplate);
        }
    });
}
// </includeonly>