MediaWiki:Character-Banner.js: Difference between revisions

no edit summary
No edit summary
No edit summary
 
(38 intermediate revisions by the same user not shown)
Line 5: Line 5:
     var isMobile = $('body').hasClass('skin-minerva') ? true : false;
     var isMobile = $('body').hasClass('skin-minerva') ? true : false;
     $('#p-Characters-label + .mw-portlet-body #nav > ul > li > a').each(function () {
     $('#p-Characters-label + .mw-portlet-body #nav > ul > li > a').each(function () {
         classes.push($(this).attr('title').replace('/', ''))
         classes.push($(this).attr('title').replace('Lu/Ciel', 'LuCiel').replace(/(\/.*)/g, ''))
     });
     });
    $('.character-banner-select a:eq(0)').addClass('active');


     function classesIntoMaps() {
     function classesIntoMaps() {
        var apix;
        var i = 1;
         for (let classx of classes) {
         for (let classx of classes) {
             var apix = api.parse(
             var apix = api.parse(
Line 15: Line 19:
                 maps[classx] = text.match(/\/wiki(.*?)\.png/g)[0];
                 maps[classx] = text.match(/\/wiki(.*?)\.png/g)[0];
             });
             });
            i++;
            if (i == classes.length) {
                apix.done(function(){
                    $('.character-banner-select').addClass('loading-done');
                });
            }
         }
         }
         apix.done(function() {
          
            $('.character-banner-select').css('pointer-events', 'all');
        });
     }
     }
    var lang = $('.character-banner-outer')[0].dataset.lang ?? ''


     if (isMobile) {
     if (isMobile) {
         var classes = [];
         var classes = [];
         var apix = api.parse(
         var apix = api.parse(
             new mw.Title('MediaWiki:NavSidebar/Character'), { contentmodel: 'wikitext', wrapoutputclass: '', disablelimitreport: true, prop: 'text' });
             new mw.Title('MediaWiki:NavSidebar' + (lang ? '/' + lang : '') + '/Character'), { contentmodel: 'wikitext', wrapoutputclass: '', disablelimitreport: true, prop: 'text' });
         apix.then(function (text) {
         apix.then(function (text) {
             $('html').prepend('<div id="sidebar-content" style="display:none;position:absolute;top:-999999px;">' + text + '</div>');
             $('html').prepend('<div id="sidebar-content" style="display:none;position:absolute;top:-999999px;">' + text + '</div>');
             $('#sidebar-content #nav > ul > li > a').each(function () {
             $('#sidebar-content #nav > ul > li > a').each(function () {
                 classes.push($(this).attr('title').replace('/', ''));
                 classes.push($(this).attr('title').replace('Lu/Ciel', 'LuCiel').replace(/(\/.*)/g, ''));
             });
             });
            console.log(classes)
             $('#sidebar-content').remove();
             $('#sidebar-content').remove();
             classesIntoMaps();
             classesIntoMaps();
Line 66: Line 77:


     $('.char-banner-tree-image').mouseenter(function (e) {
     $('.char-banner-tree-image').mouseenter(function (e) {
         var base_name = $(this).parent().attr('data-base');
         var base_name = $(this).parent()[0].dataset.base;
         var class_name = $(this).attr('data-class-name');
         var class_name = $(this).attr('data-class-name');
         var index = $(this).index() + 1;
         var index = $(this).index() + 1;
Line 75: Line 86:
         else coords = [index - 8, 3];
         else coords = [index - 8, 3];


         if ($(this).find('img').attr('alt') == 'Dunno.png') {
         if ($(this).attr('data-unreleased') == 'true') {
             coords = [undefined, undefined];
             coords = [undefined, undefined];
         }
         }
Line 82: Line 93:
         $('.char-banner-image').html(face(base_name, coords[0], coords[1]));
         $('.char-banner-image').html(face(base_name, coords[0], coords[1]));
     });
     });
    function changeCharacterLink(el) {
        $('.char-banner').click(function () {
            var base_name = $(el)[0].dataset.base;
            if (base_name == 'LuCiel (Lu)') base_name = 'LuCiel';
            window.location.href = '/w/' + base_name + (lang ? '/' + lang : '');
        });
    }
    changeCharacterLink('.char-banner-tree');


     $('.char-banner-tree').mouseleave(function (e) {
     $('.char-banner-tree').mouseleave(function (e) {
         var base_name = $(this).attr('data-base');
         var base_name = $(this)[0].dataset.base;
         if (base_name == 'LuCiel') base_name = 'Lu/Ciel';
         if (base_name == 'LuCiel') base_name = 'Lu/Ciel';
         $('.char-banner-title').text(base_name);
         $('.char-banner-title').text($(this)[0].dataset.displayBase);
         $('.char-banner-image').html(face(base_name.replace('/', '')));
         $('.char-banner-image').html(face(base_name.replace('/', '')));
         $('.char-banner').click(function () {
         changeCharacterLink(this);
            window.location.href = '/w/' + base_name;
        });
     });
     });


     var global_tree = 'Elsword';
     var global_tree = 'Elsword';
    var global_display_tree = 'Elsword';


     $('.character-banner-select a').click(function (e) {
     $('.character-banner-select a').click(function (e) {
         e.preventDefault();
         e.preventDefault();
         var base_name = $(this).find('img').attr('alt').replace(/Icon - (.*?)\.png/g, '$1');
         $('.character-banner-select a').removeClass('active');
        $(this).addClass('active');
        var base_name = $(this).parents('div[data-base]')[0].dataset.base;
         if (base_name == 'LuCiel (Lu)') base_name = 'LuCiel';
         if (base_name == 'LuCiel (Lu)') base_name = 'LuCiel';
         $('.char-banner-tree').hide();
         $('.char-banner-tree').hide();
         $('.char-banner-tree[data-base=' + base_name + ']').css('display', 'grid');
         $('.char-banner-tree[data-base=' + base_name + ']').css('display', 'grid');
         global_tree = base_name;
         global_tree = base_name;
         if (isMobile) {
         global_display_tree = $(this).parents('div[data-base]')[0].dataset.displayBase;
            $('.char-banner').click(function () {
        changeCharacterLink($(this).parent()[0]);
                window.location.href = '/w/' + base_name;
            });
            console.log(1);
        }
     });
     });


     $('.character-banner-select a').mouseenter(function () {
     $('.character-banner-select a').on('mouseenter', function () {
         var base_name = $(this).find('img').attr('alt').replace(/Icon - (.*?)\.png/g, '$1');
         var base_name = $(this).parents('div[data-base]')[0].dataset.base;
        var base_display_name = $(this).parents('div[data-base]')[0].dataset.displayBase;
         if (base_name == 'LuCiel (Lu)') base_name = 'LuCiel';
         if (base_name == 'LuCiel (Lu)') base_name = 'LuCiel';
         var coords = [undefined, undefined];
         var coords = [undefined, undefined];


         $('.char-banner-title').text(base_name.replace('LuCiel', 'Lu/Ciel'));
         $('.char-banner-title').text(base_display_name.replace('LuCiel', 'Lu/Ciel'));
         $('.char-banner-image').html(face(base_name, coords[0], coords[1]));
         $('.char-banner-image').html(face(base_name, coords[0], coords[1]));
     });
     });
Line 122: Line 140:
         var coords = [undefined, undefined];
         var coords = [undefined, undefined];


         $('.char-banner-title').text(global_tree.replace('LuCiel', 'Lu/Ciel'));
         $('.char-banner-title').text(global_display_tree.replace('LuCiel', 'Lu/Ciel'));
         $('.char-banner-image').html(face(global_tree, coords[0], coords[1]));
         $('.char-banner-image').html(face(global_tree, coords[0], coords[1]));
     });
     });
});
});