Dear visitors, IOP Wiki is currently the target of a denial of service campaign. We are investigating countermeasures. In the meantime, the Wiki may experience periods of unplanned downtime.

Widget:indexSorterGrouper: Difference between revisions

Welcome to IOP Wiki. This website is maintained by the Girls' Frontline community and is free to edit by anyone.
Jump to navigation Jump to search
No more line break while grouping
m Missed some parts
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly><script>
<includeonly><script>
RLQ.push(function () {
RLQ.push(['jquery', function () {
   $(document).ready(function() {
   $(document).ready(function() {
    // initially remove the paragraph
    var parents = $(".mw-headline").closest("h2");
    parents.each(function() {
      var parent = $(this);
      var paragraph = parent.next('p');
      paragraph.replaceWith(paragraph.children());
    });
   
     // For now, we have to make sure the data is there (Change the template, dammit!)
     // For now, we have to make sure the data is there (Change the template, dammit!)
$(".card-bg-small").each(function() {
$(".gfl-doll-card").each(function() {
  var element = $(this);
  var element = $(this);
  var name = element.find('span').first().text();
  var name = element.find('.name').first().text();
  var index = parseInt(element.find('span').last().text());
  var index = parseInt(element.find('.index').last().text());
  var srcStr = element.find("img").eq(2).attr("src");
  var srcStr = element.find("img.rarity-class").attr("src");
  var myRegexp = /^.*Icon_(.*)_(.*)star.*$/g;
  var myRegexp = /^.*Icon_(.*)_(.*)star.*$/g;
  var match = myRegexp.exec(srcStr);
  var match = myRegexp.exec(srcStr);
  var classification = match[1];
  var classification = match[1];
  var rarity = match[2];
  var rarity = match[2];
   
         
          var serverDataSpans = $("span.serverdata[data-server-doll='" + name + "']");
          serverDataSpans.each(function() {
            var serverDataSpan = $(this);
            var serverShort = serverDataSpan.attr('data-server-released');
            var serverDollName = serverDataSpan.attr('data-server-releasename');
            element.attr("data-server-" + serverShort, serverDollName);
          });
          serverDataSpans.remove();
 
  element.attr('data-server-WIKI', name);
  element.data('name', name);
  element.data('name', name);
  element.data('index', index);
  element.data('index', index);
Line 21: Line 39:
     // Once everything is ready, default-sort it
     // Once everything is ready, default-sort it
     $('[data-initialsort]').click();
     $('[data-initialsort]').click();
   
    // Activate ui for user
    $(".gf-button").prop('disabled', false);
    $('.removeAfterInitIsg').remove();
   });
   });
});
}]);


function orderByName(currentButton) {
function orderByName(currentButton) {
Line 197: Line 219:
     var firstIndex = elements.first().data('index');
     var firstIndex = elements.first().data('index');
     var firstTen = Math.ceil(parseInt(firstIndex) / 10) * 10;
     var firstTen = Math.ceil(parseInt(firstIndex) / 10) * 10;
    if (sortOrder == -1) { firstTen -= 9; }
     var groupHeader = $("<h3 />").text(getNumberText(firstIndex) + "..." + getNumberText(firstTen)).addClass("addedbysorter");
     var groupHeader = $("<h3 />").text(getNumberText(firstIndex) + "..." + getNumberText(firstTen)).addClass("addedbysorter");
     groupHeader.insertBefore(elements.first());
     groupHeader.insertBefore(elements.first());
Line 206: Line 229:
       var nextElement = $(elements[i+1]);
       var nextElement = $(elements[i+1]);
        
        
       createIndexGroup(element, nextElement);
       createIndexGroup(element, nextElement, sortOrder);
        
        
       return true;
       return true;
Line 222: Line 245:
}
}


function createIndexGroup(element, nextElement) {
function createIndexGroup(element, nextElement, sortOrder) {
   var currentTen = Math.ceil(parseInt($(element).data('index')) / 10) * 10;
   var currentTen = Math.ceil(parseInt($(element).data('index')) / 10) * 10;
   var nextElementTen = Math.ceil(parseInt(nextElement.data('index')) / 10) * 10;
   var nextElementTen = Math.ceil(parseInt(nextElement.data('index')) / 10) * 10;
   if (currentTen !== nextElementTen) {
   if (currentTen !== nextElementTen) {
    var groupHeaderText = getNumberText(currentTen) + "..." + getNumberText(nextElementTen);
     if (!isNaN(nextElementTen)) {
     if (!isNaN(nextElementTen)) {
      if (sortOrder == -1) {
        currentTen -= 10;
        nextElementTen -= 9;
      }
     
      var currentIdxShow = currentTen;
      if (sortOrder != -1 && currentIdxShow > 1) currentIdxShow += 1;
      var groupHeaderText = getNumberText(currentIdxShow) + "..." + getNumberText(nextElementTen);
     
       var groupHeader = $("<h3 />").text(groupHeaderText).addClass("addedbysorter");
       var groupHeader = $("<h3 />").text(groupHeaderText).addClass("addedbysorter");
       groupHeader.insertAfter(element);
       groupHeader.insertAfter(element);
Line 245: Line 276:
     return 1;
     return 1;
   }
   }
}
function switchServer(butt) {
  var activeServer = $(butt).attr('data-tdollserver');
 
  $('[data-tdollserverbutton="true"]').removeClass("enabled");
 
  $('.gfl-doll-card.unreleased').removeClass('unreleased');
  $('.gfl-doll-card').each(function() {
    var element = $(this);
    var nameToSet = "";
    if (element.is("[data-server-" + activeServer + "]")) {
      nameToSet = element.attr('data-server-' + activeServer);
    } else {
      element.addClass('unreleased');
      nameToSet = element.attr('data-server-wiki');
    }
    element.find('.name').first().text(nameToSet);
  });
 
  $(butt).addClass("enabled");
}
}


Line 253: Line 305:
   parents.each(function() {
   parents.each(function() {
     var parent = $(this);
     var parent = $(this);
     var elements = parent.nextUntil("h2", ".card-bg-small");
    // All elements inside the paragraph after the h2 which have special class
     var elements = parent.nextUntil("h2", ".gfl-doll-card");
    
    
     elements.detach().sort(comparer);
     elements.detach().sort(comparer);
Line 265: Line 318:
}
}
</script><div style="display:inline-block">
</script><div style="display:inline-block">
<button class="gf-button" data-tdollsortbutton="true" data-initialsort="true" onclick="orderByClassRarityName(this);">By Class&gt;Rarity&gt;Name</button>
<button class="gf-button" data-tdollsortbutton="true" disabled data-initialsort="true" onclick="orderByClassRarityName(this);">By Class&gt;Rarity&gt;Name</button>
<button class="gf-button" data-tdollsortbutton="true" onclick="orderByRarityClassName(this);">By Rarity&gt;Class&gt;Name</button>
<button class="gf-button" data-tdollsortbutton="true" disabled onclick="orderByRarityClassName(this);">By Rarity&gt;Class&gt;Name</button>
<button class="gf-button" data-tdollsortbutton="true" onclick="orderByName(this);">By Name</button>
<button class="gf-button" data-tdollsortbutton="true" disabled onclick="orderByName(this);">By Name</button>
<button class="gf-button" data-tdollsortbutton="true" onclick="orderByIndex(this);">By Index</button></div>
<button class="gf-button" data-tdollsortbutton="true" disabled onclick="orderByIndex(this);">By Index</button>
<div style="width:20px; height:20px; display:inline-block;" class="loading2 removeAfterInitIsg">&nbsp;</div></div>
 
<p>
Released on this server:<br/>
<button class="gf-button" data-tdollserverbutton="true" data-tdollserver="WIKI" disabled data-initialsort="true" onclick="switchServer(this);">All</button>
<button class="gf-button" data-tdollserverbutton="true" data-tdollserver="CN" disabled onclick="switchServer(this);">CN</button>
<button class="gf-button" data-tdollserverbutton="true" data-tdollserver="TW" disabled onclick="switchServer(this);">TW</button>
<button class="gf-button" data-tdollserverbutton="true" data-tdollserver="KR" disabled onclick="switchServer(this);">KR</button>
<button class="gf-button" data-tdollserverbutton="true" data-tdollserver="EN" disabled onclick="switchServer(this);">EN</button>
<button class="gf-button" data-tdollserverbutton="true" data-tdollserver="JP" disabled onclick="switchServer(this);">JP</button>
</p>
</includeonly>
</includeonly>



Revision as of 22:28, 24 June 2024


 

Released on this server:

Some heading