Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Array.prototype.contains = function(needle)
- {
- var result = false;
- this.forEach(function (val)
- {
- if (val == needle) result = true;
- });
- return result;
- }
- function request(url)
- {
- var xhr = new XMLHttpRequest();
- xhr.open("GET", url, false);
- xhr.send();
- return xhr.response;
- }
- function setBodyContents(contents)
- {
- document.body.innerHTML = contents;
- }
- function warn(message)
- {
- if (debugMode) console.warn(`Warning: ${message}`);
- }
- function getView(name)
- {
- return request(`/views/${name}.html`);
- }
- function loadScript(script, async)
- {
- var element = document.createElement("script");
- var url = `/js/${script}.js`;
- if (async)
- {
- element.src = url;
- }
- else
- {
- element.innerText = request(url);
- }
- document.head.appendChild(element);
- }
- function loadController(name)
- {
- loadScript(`controllers/${name}`);
- }
- function initView(name, view)
- {
- viewEntries["Entry_" + name](view);
- }
- function loadView(viewName)
- {
- var views = ["index"];
- if (views.contains(viewName))
- {
- var view = getView(viewName);
- loadController(viewName);
- initView(viewName, view);
- }
- else
- {
- warn(`no such view ${viewName}`);
- }
- }
- function processTemplate(template, data)
- {
- return Handlebars.compile(template)(data);
- }
- onload = function ()
- {
- debugMode = true;
- viewEntries = [];
- loadView("index");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement