Opmerking: na het publiceren is het wellicht nodig uw browsercache te legen om de veranderingen te zien.

  • Firefox / Safari: houd Shift ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
  • Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
  • Edge: houd Ctrl ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5.
/**
 *
 * Made by: Sumurai8
 * Using: HTML5 technology
 *        - Database
 *        - Localstorage
 * Might not work in your browser. If your browser isn't supported,
 * make sure you take a less retarded one...
 *
 * This script is used to keep track of installed offline-tool's
 * and keeps track of the database for each extension. If I upgrade
 * the database at some point I need to know that the latest version
 * of the database is in place
 *
**/

function offlinedatabasesupport() {
  if (typeof(localStorage) == 'undefined') {
    if(typeof(console) != 'undefined') {
      console.error("This browser doesn't support localStorage. Please upgrade your browser to a less retarded one!");
    }
    else {
      window.status("This browser doesn't support localStorage. Please upgrade your browser to a less retarded one!");
    }
    return false;
  }
  else if(typeof(openDatabase) == 'undefined') {
    if(typeof(console) != 'undefined') {
      console.error("This browser doesn't support webDatabases. Please upgrade your browser to a less retarded one!");
    }
    else {
      window.status("This browser doesn't support webDatabases. Please upgrade your browser to a less retarded one!");
    }
    return false;
  }
  else if(typeof(sessionStorage) == 'undefined') {
    if(typeof(console) != 'undefined') {
      console.error("This browser doesn't support sessionStorage. Please upgrade your browser to a less retarded one!");
    }
    else {
      window.status("This browser doesn't support sessionStorage. Please upgrade your browser to a less retarded one!");
    }
    return false;
  }
  return true;
}

function getVersionOfflineDatabase(dbname) {
  var versions = localStorage.getItem("OfflineDatabases").split(",");
  for(var c = 0; c < versions.length; c++) {
    db = versions[c].split(":");
    if(db[0] == dbname) {
      return db[1];
    }
  }
  return "";
}

function setVersionOfflineDatabase(dbname, dbversion) {
  var versions = localStorage.getItem("OfflineDatabases").split(",");
  for(var c = 0; c < versions.length; c++) {
    db = versions[c].split(":");
    if(db[0] == dbname) {
      versions[c] = [dbname, dbversion].join(":");
      localStorage.setItem("OfflineDatabases", versions.join(","));
      return true;
    }
  }
  versions[versions.length] = [dbname, dbversion].join(":");
  localStorage.setItem("OfflineDatabases", versions.join(","));
  return true;
}

//Let's check if we have dbsupport and then check if we runned this once before
if (offlinedatabasesupport()) {
  if(!localStorage.getItem("OfflineDatabases")) {
    localStorage.setItem("OfflineDatabases", "");
  }
  addOnloadHook(function() {
    var tag = document.getElementById('mw-panel')
    var tag2 = document.getElementById('p-navigation2')
    var temp = "<div class=\"portal\" id=\"offlinesupport\"><h5>Offline support</h5><div class=\"body\"><ul id=\"offlul\"></ul></div>"
    var div = document.createElement('div');
    div.innerHTML = temp;
    tag.insertBefore(div, tag2);
  } )
}

function currenttimestamp() {
  return new Date().getTime();
}

function timestamptodate(timestamp) {
  if( typeof(timestamp) == "string" ) {
    timestamp = parseInt(timestamp);
  }
  var date = new Date(timestamp);
  var datestr = date.getDate()+"/"+(date.getMonth()+1)+"/"+date.getFullYear()+" ";
  datestr += (date.getHours()<10?"0"+date.getHours():date.getHours()) +":"+ (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes());
  return datestr;
}

function timesincenow(timestamp) {
  if( typeof(timestamp) == "string" ) {
    timestamp = parseInt(timestamp);
  }
  var substract = currenttimestamp() - timestamp;
  var date = new Date(substract);
  if(date.getFullYear() > 1970) {
    return date.getFullYear() - 1970 + " jr";
  }
  else if(date.getMonth() > 1) {
    return date.getMonth() + " mnd";
  }
  else if(date.getDate() > 1) {
    return (date.getDate()-1) + " d";
  }
  else if(date.getHours() > 1) {
    return date.getHours() + " u";
  }
  else if(date.getMinutes() > 0) {
    return date.getMinutes() + " m";
  }
  else {
    return "<1 m";
  }
}

function inlist(item, list) {
  for(var i = 0; i < i.length; i++) {
    if( list[i] == item ) {
      return true;
    }
  }
  return false;
}