MediaWiki:CreatureList.js

From Virtuverse Wiki
Jump to navigation Jump to search

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.
function drawTable(mobs) {
   var output = $("#creatures-list");
   var html = "<div><a href='/index.php/Data:CreatureForm'><button>Add</button></a></div>";
   html += "<table class='vvwiki-table'><tr><th>Name</th><th>HP</th><th>Damage</th><th>Maturity</th><th>Planets</th><th></th></tr>";
   mobs.creatures.forEach(function(mob) {
      var url = "/index.php/Creatures:"+mob["name"];
      var planets = mob["planets"];
      var planetURLs = "";
      planets.forEach(function(planet) {
         planetURLs += "<a href='index.php/Story:"+planet+"'>"+planet+"</a>&nbsp;&nbsp;";
      });
      var editURL = "/index.php/Data:CreatureForm?id="+mob["_id"];
      
      html += "<tr>";
      html += "<td><b><a href='"+url+"'>"+mob["name"]+"</a></b></td>";
      html += "<td>"+mob["hp"]+"</td>";
      html += "<td>"+mob["min_damage"]+" - "+mob["max_damage"]+"</td>";
      html += "<td>"+mob["maturity"]+"</td>";
      html += "<td>"+planetURLs+"</td>";
      html += "<td><a href='"+editURL+"'>Edit</a></td>";
      html += "</tr>"
   });

   var paging = "<tr><td colspan='10'>";
   mobs.pages.forEach(function(section) {
      var link = "";
      if (section.is_current) {
         link = "&nbsp;&nbsp;[" + section.page + "]&nbsp;&nbsp;";
      } else {
         var path = "/index.php/Creatures?page="+section.start+"&count="+section.count;
         link = "&nbsp;<a href='"+path+"'>"+section.page+"</a>&nbsp;";
      }
      paging += link;
   })
   paging += "</td></tr>";
   html += paging;

   html += "</table>";
   output.html(html);
}

function query(page, count) {
   $("#loader-creatures-list").show();
   $.ajax({
        type: "GET",
        dataType: "json",
        url: "/vv-api/get-creatures.php?page="+page+"&count="+count,
        success: function(data) {
           $("#loader-creatures-list").hide();
           drawTable(data.result);
        },
        error: function(status, exec) {
           $("#loader-creatures-list").hide();
           $("#creatures-list").html("<i>Error retrieving mob data!</i>");
        }
     });
}

$(document).ready(function() {
  if ($("#creatures-list") != null) {
     var url = new URL(window.location.href);
     var page = url.searchParams.get("page");
     var count = url.searchParams.get("count");
     if (page == null) page = 0;
     if (count == null) count = 10;
     query(page, count);
  }
});