Advertisement
vovan333

mom get the camera

Sep 18th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Array.prototype.contains = function(needle)
  2. {
  3.     var result = false;
  4.     this.forEach(function (val)
  5.     {
  6.         if (val == needle) result = true;
  7.     });
  8.     return result;
  9. }
  10.  
  11. function request(url)
  12. {
  13.     var xhr = new XMLHttpRequest();
  14.     xhr.open("GET", url, false);
  15.     xhr.send();
  16.     return xhr.response;
  17. }
  18.  
  19. function setBodyContents(contents)
  20. {
  21.     document.body.innerHTML = contents;
  22. }
  23.  
  24. function warn(message)
  25. {
  26.     if (debugMode) console.warn(`Warning: ${message}`);
  27. }
  28.  
  29. function getView(name)
  30. {
  31.     return request(`/views/${name}.html`);
  32. }
  33.  
  34. function loadScript(script, async)
  35. {
  36.     var element = document.createElement("script");
  37.     var url = `/js/${script}.js`;
  38.     if (async)
  39.     {
  40.         element.src = url;
  41.     }
  42.     else
  43.     {
  44.         element.innerText = request(url);
  45.     }
  46.     document.head.appendChild(element);
  47. }
  48.  
  49. function loadController(name)
  50. {
  51.     loadScript(`controllers/${name}`);
  52. }
  53.  
  54. function initView(name, view)
  55. {
  56.     viewEntries["Entry_" + name](view);
  57. }
  58.  
  59. function loadView(viewName)
  60. {
  61.     var views = ["index"];
  62.     if (views.contains(viewName))
  63.     {
  64.         var view = getView(viewName);
  65.         loadController(viewName);
  66.         initView(viewName, view);
  67.     }
  68.     else
  69.     {
  70.         warn(`no such view ${viewName}`);
  71.     }
  72. }
  73.  
  74. function processTemplate(template, data)
  75. {
  76.     return Handlebars.compile(template)(data);
  77. }
  78.  
  79. onload = function ()
  80. {
  81.     debugMode = true;
  82.     viewEntries = [];
  83.     loadView("index");
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement