MediaWiki:Common.js: различия между версиями

Страница интерфейса MediaWiki
Нет описания правки
Нет описания правки
Строка 32: Строка 32:


/* ----------------------------------------------Блок Shegare ---------------------------------------------------------------------------------*/
/* ----------------------------------------------Блок Shegare ---------------------------------------------------------------------------------*/
/* Лого сайта
Shegare */
document.getElementsByClassName('citizen-header__logo')[0].innerHTML = '<div class="logo1"><a href="https://spacestories.club/index.php?title=Заглавная страница" class="mw-logo citizen-header__button" title="Перейти на заглавную страницу"><img class="mw-logo-icon" src="/resources/assets/logo.png" alt="" aria-hidden="true" height="32" width="32"></a></div><div class="logo2"><a href="https://spacestories.club/index.php?title=Colonial_Marines" class="mw-logo citizen-header__button" title="Перейти на заглавную страницу CM"><img class="mw-logo-icon" src="/images/0/0d/CMlog.png" alt="" aria-hidden="true" height="32" width="32"></a></div>';


/* Перенос page-info в конец footer-places
$(document).ready(function() {
Shegare */
  /* Лого сайта
document.getElementById('footer-places').insertAdjacentHTML('afterEnd', document.getElementsByClassName('page-info')[0].innerHTML);
  Shegare */
document.getElementsByClassName('page-info')[0].innerHTML = null;
  document.getElementsByClassName('citizen-header__logo')[0].innerHTML = '<div class="logo1"><a href="https://spacestories.club/index.php?title=Заглавная страница" class="mw-logo citizen-header__button" title="Перейти на заглавную страницу"><img class="mw-logo-icon" src="/resources/assets/logo.png" alt="" aria-hidden="true" height="32" width="32"></a></div><div class="logo2"><a href="https://spacestories.club/index.php?title=Colonial_Marines" class="mw-logo citizen-header__button" title="Перейти на заглавную страницу CM"><img class="mw-logo-icon" src="/images/0/0d/CMlog.png" alt="" aria-hidden="true" height="32" width="32"></a></div>';


/* Begin логика цвета через headerColor
  /* Перенос page-info в конец footer-places
Shegare */
  Shegare */
if (document.getElementsByClassName('headerColor').length >= 1) {
  document.getElementById('footer-places').insertAdjacentHTML('afterEnd', document.getElementsByClassName('page-info')[0].innerHTML);
  document.getElementsByClassName('page-info')[0].innerHTML = null;


  var isValidColor = function (color) {
  /* Begin логика цвета через headerColor
    var el = document.createElement('div');
  Shegare */
    el.style.backgroundColor = color;
  if (document.getElementsByClassName('headerColor').length >= 1) {
    return el.style.backgroundColor ? true : false;
  };


  var header = document.getElementsByClassName('headerColor');
    var isValidColor = function (color) {
  var colorBorder = '';
      var el = document.createElement('div');
  var colorBtn = '';
      el.style.backgroundColor = color;
  var i = 0;
      return el.style.backgroundColor ? true : false;
    };


  for (; header[0].innerHTML[i] !== '|' && i < header[0].innerHTML.length; i++) {
    var header = document.getElementsByClassName('headerColor');
    colorBorder += header[0].innerHTML[i];
    var colorBorder = '';
  }
    var colorBtn = '';
  i++;
    var i = 0;
  for (; i < header[0].innerHTML.length; i++) {
    colorBtn += header[0].innerHTML[i];
  }


  if (isValidColor(colorBorder) && isValidColor(colorBtn) && header[0].innerHTML.length > 0) {
    for (; header[0].innerHTML[i] !== '|' && i < header[0].innerHTML.length; i++) {
    headerRender(colorBorder, colorBtn);
      colorBorder += header[0].innerHTML[i];
    document.body.addEventListener('click', function () {
    }
      headerRender(colorBorder, colorBtn);
    i++;
    });
    for (; i < header[0].innerHTML.length; i++) {
  } else {
      colorBtn += header[0].innerHTML[i];
    throw "headerColor";
    }
  }
}


function headerRender(colorBorder, colorBtn) {
    if (isValidColor(colorBorder) && isValidColor(colorBtn) && header[0].innerHTML.length > 0) {
  var array = document.querySelectorAll('h1, h2, h3 , h4, h5');
      headerRender(colorBorder, colorBtn);
  for (var i = 0; i < array.length; i++) {
      document.body.addEventListener('click', function () {
    if (array[i].className === 'citizen-section-heading') {
        headerRender(colorBorder, colorBtn);
      array[i].querySelector('.citizen-sections-enabled,.citizen-section-indicator').style.background = colorBtn;
      });
      array[i].querySelector('.citizen-sections-enabled,.citizen-section-indicator').style.boxShadow = ('0 0 20px 0px ' + colorBtn + 'cc');
    } else {
      array[i].querySelector('.mw-headline').style.borderImage = ('linear-gradient(to right top, ' + colorBorder + ', black)');
      throw "headerColor";
      array[i].querySelector('.mw-headline').style.borderImageSlice = '1';
    }
    } else if (array[i].className === 'citizen-section-heading citizen-section-heading--collapsed') {
  }
      array[i].querySelector('.citizen-sections-enabled,.citizen-section-heading--collapsed,.citizen-section-indicator').style.background = 'black';
      array[i].querySelector('.citizen-sections-enabled,.citizen-section-heading--collapsed,.citizen-section-indicator').style.boxShadow = 'unset';
    }
  }
}
/* End логика цвета через headerColor
Shegare */


/* Begin sidebar для ролей
  function headerRender(colorBorder, colorBtn) {
Shegare */
    var array = document.querySelectorAll('h1, h2, h3 , h4, h5');
if (document.getElementsByClassName('JobsTableContainer').length >= 1) {
    for (var i = 0; i < array.length; i++) {
    document.getElementById('bodyContent').insertAdjacentHTML('beforebegin', document.getElementsByClassName('JobsTableContainer')[0].innerHTML);
      if (array[i].className === 'citizen-section-heading') {
    document.getElementById('IdJobsTableContainer1').id = 'IdJobsTableContainer2';
        array[i].querySelector('.citizen-sections-enabled,.citizen-section-indicator').style.background = colorBtn;
}
        array[i].querySelector('.citizen-sections-enabled,.citizen-section-indicator').style.boxShadow = ('0 0 20px 0px ' + colorBtn + 'cc');
        array[i].querySelector('.mw-headline').style.borderImage = ('linear-gradient(to right top, ' + colorBorder + ', black)');
        array[i].querySelector('.mw-headline').style.borderImageSlice = '1';
      } else if (array[i].className === 'citizen-section-heading citizen-section-heading--collapsed') {
        array[i].querySelector('.citizen-sections-enabled,.citizen-section-heading--collapsed,.citizen-section-indicator').style.background = 'black';
        array[i].querySelector('.citizen-sections-enabled,.citizen-section-heading--collapsed,.citizen-section-indicator').style.boxShadow = 'unset';
      }
    }
  }
  /* End логика цвета через headerColor
  Shegare */


/* End sidebar для ролей
  /* Begin sidebar для ролей
Shegare */
  Shegare */
  if (document.getElementsByClassName('JobsTableContainer').length >= 1) {
      document.getElementById('bodyContent').insertAdjacentHTML('beforebegin', document.getElementsByClassName('JobsTableContainer')[0].innerHTML);
      document.getElementById('IdJobsTableContainer1').id = 'IdJobsTableContainer2';
  }
 
  /* End sidebar для ролей
  Shegare */
});


/* ----------------------------------------------------------Данте------------------------------------------------------------------------ */
/* ----------------------------------------------------------Данте------------------------------------------------------------------------ */

Версия от 16:23, 17 января 2025

/*Подгруздка внешних css js*/
mw.loader.using('mediawiki.util', function () {
    var files = mw.util.getParamValue('use'),
        FileRE = new RegExp('^(?:MediaWiki:|User:' + mw.util.escapeRegExp(mw.config.get('wgUserName', '')) + '/)?[^&<>=%#]*\\.(js|css)$'),
        path = mw.config.get('wgServer').replace('http://', 'https://') + mw.config.get('wgScript') + '?action=raw&ctype=text/';

    if (!files) {
        return;
    }

    $.each(files.split('|'), function (k, v) {
        var file = $.trim(v), match = FileRE.exec(file);
        if (match) {
            switch (match[1]) {
                case 'js':
                    mw.loader.load(path + 'javascript&title=' + encodeURIComponent(file), 'text/javascript');
                    console.log('JS загружен: ' + file);
                    break;
                case 'css':
                    mw.loader.load(path + 'css&title=' + encodeURIComponent(file), 'text/css');
                    console.log('CSS загружен: ' + file);
                    break;
            }
        }
    });
});




/*------------------------------------------------Полигон-----------------------------------------------------------------------------*/

/* ----------------------------------------------Блок Shegare ---------------------------------------------------------------------------------*/

$(document).ready(function() {
   /* Лого сайта
   Shegare */
   document.getElementsByClassName('citizen-header__logo')[0].innerHTML = '<div class="logo1"><a href="https://spacestories.club/index.php?title=Заглавная страница" class="mw-logo citizen-header__button" title="Перейти на заглавную страницу"><img class="mw-logo-icon" src="/resources/assets/logo.png" alt="" aria-hidden="true" height="32" width="32"></a></div><div class="logo2"><a href="https://spacestories.club/index.php?title=Colonial_Marines" class="mw-logo citizen-header__button" title="Перейти на заглавную страницу CM"><img class="mw-logo-icon" src="/images/0/0d/CMlog.png" alt="" aria-hidden="true" height="32" width="32"></a></div>';

   /* Перенос page-info в конец footer-places
   Shegare */
   document.getElementById('footer-places').insertAdjacentHTML('afterEnd', document.getElementsByClassName('page-info')[0].innerHTML);
   document.getElementsByClassName('page-info')[0].innerHTML = null;

   /* Begin логика цвета через headerColor
   Shegare */
   if (document.getElementsByClassName('headerColor').length >= 1) {

     var isValidColor = function (color) {
       var el = document.createElement('div');
       el.style.backgroundColor = color;
       return el.style.backgroundColor ? true : false;
     };

     var header = document.getElementsByClassName('headerColor');
     var colorBorder = '';
     var colorBtn = '';
     var i = 0;

     for (; header[0].innerHTML[i] !== '|' && i < header[0].innerHTML.length; i++) {
       colorBorder += header[0].innerHTML[i];
     }
     i++;
     for (; i < header[0].innerHTML.length; i++) {
       colorBtn += header[0].innerHTML[i];
     }

     if (isValidColor(colorBorder) && isValidColor(colorBtn) && header[0].innerHTML.length > 0) {
       headerRender(colorBorder, colorBtn);
       document.body.addEventListener('click', function () {
         headerRender(colorBorder, colorBtn);
       });
     } else {
       throw "headerColor";
     }
   }

   function headerRender(colorBorder, colorBtn) {
     var array = document.querySelectorAll('h1, h2, h3 , h4, h5');
     for (var i = 0; i < array.length; i++) {
       if (array[i].className === 'citizen-section-heading') {
         array[i].querySelector('.citizen-sections-enabled,.citizen-section-indicator').style.background = colorBtn;
         array[i].querySelector('.citizen-sections-enabled,.citizen-section-indicator').style.boxShadow = ('0 0 20px 0px ' + colorBtn + 'cc');
         array[i].querySelector('.mw-headline').style.borderImage = ('linear-gradient(to right top, ' + colorBorder + ', black)');
         array[i].querySelector('.mw-headline').style.borderImageSlice = '1';
       } else if (array[i].className === 'citizen-section-heading citizen-section-heading--collapsed') {
         array[i].querySelector('.citizen-sections-enabled,.citizen-section-heading--collapsed,.citizen-section-indicator').style.background = 'black';
         array[i].querySelector('.citizen-sections-enabled,.citizen-section-heading--collapsed,.citizen-section-indicator').style.boxShadow = 'unset';
       }
     }
   }
   /* End логика цвета через headerColor
   Shegare */

   /* Begin sidebar для ролей
   Shegare */
   if (document.getElementsByClassName('JobsTableContainer').length >= 1) {
       document.getElementById('bodyContent').insertAdjacentHTML('beforebegin', document.getElementsByClassName('JobsTableContainer')[0].innerHTML);
       document.getElementById('IdJobsTableContainer1').id = 'IdJobsTableContainer2';
   }

   /* End sidebar для ролей
   Shegare */
});

/* ----------------------------------------------------------Данте------------------------------------------------------------------------ */

/* ----------------------------------------------------------Главное меню лора------------------------------------------------------------------------ */
document.querySelectorAll('.custom-item').forEach(function(item) {
  item.addEventListener('click', function() {
    window.location.href = item.querySelector('a').getAttribute('href');
  });
});

/*хронология */
$(document).ready(function() {
    $('.timeline-header').click(function() {
        var content = $(this).next('.timeline-content');
        if (content.is(':visible')) {
            content.slideUp();
        } else {
            content.slideDown();
        }
    });
    $('.timeline-content').hide();
});