Gebruiker:Sumurai8/offdb.js
Uiterlijk
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;
}