memex/logic/main.js

46 lines
946 B
JavaScript
Raw Normal View History

2018-07-13 15:56:09 +00:00
function Main()
{
2018-07-16 02:58:03 +00:00
// REFERENCE
this.db = null;
this.view = null;
2018-07-13 15:56:09 +00:00
2018-07-15 14:23:07 +00:00
this.install = function()
{
this.db = new DataWrap(DATABASE);
this.db.install();
this.view = new ViewMasonry();
this.view.install();
2018-07-15 14:23:07 +00:00
}
this.start = function()
{
this.load(window.document.location.hash == "" ? 'home' : window.document.location.hash);
this.view.doStats(this.db.getStats());
2018-07-15 14:23:07 +00:00
}
this.load = function(target = "home")
2018-07-15 14:23:07 +00:00
{
target = target.substr(0,1) == "#" ? target.substr(1,target.length-1) : target
target = target.trim() == "" ? "home" : target
if (target === '')
2018-07-15 14:23:07 +00:00
{
window.history.replaceState(undefined, undefined, "#" + target)
2018-07-15 14:23:07 +00:00
}
else
{
window.location.hash = target;
2018-07-15 14:23:07 +00:00
}
var entries = this.db.filter(target);
this.view.doEntries(entries);
2018-07-15 14:23:07 +00:00
}
2018-07-13 15:56:09 +00:00
}
window.addEventListener("hashchange", navigate);
2018-07-16 02:58:03 +00:00
function navigate()
{
main.load(window.document.location.hash);
2018-07-16 02:58:03 +00:00
}