-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: janusweb
action: commit
revision:
path_from:
revision_from: 6583de20edba378c67ccf829e54b00a09d61b94b:
path_to:
revision_to:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

commit 6583de20edba378c67ccf829e54b00a09d61b94b
Author: James Baicoianu <james_github@baicoianu.com>
Date:   Sun Jan 22 00:34:25 2017 -0800

    Initialize sharing and preload screen

diff --git a/scripts/client.js b/scripts/client.js

index 918e382f1ece90ac2913ce28accfe114b5eaad3f..

index ..9e4ecd1a4b37d8e5838d30d9083703843653142c 100644

--- a/scripts/client.js
+++ b/scripts/client.js
@@ -59,6 +59,8 @@ elation.require(['engine.engine', 'engine.assets', 'engine.things.light_ambient'
   });
   elation.component.add('janusweb.client', function() {
     this.initEngine = function() {
+      this.initLoader();
+
       var hashargs = elation.url();

       this.enginecfg.stats = false;
@@ -77,6 +79,9 @@ elation.require(['engine.engine', 'engine.assets', 'engine.things.light_ambient'
       this.enginecfg.picking = true;

       this.buttons = elation.ui.buttonbar({append: document.body, classname: 'janusweb_ui_buttons'})
+      setTimeout(elation.bind(this, function() {
+        this.initSharing();
+      }), 0);
     }
     this.initWorld = function() {
       var things = this.world.load({
@@ -108,6 +113,36 @@ elation.require(['engine.engine', 'engine.assets', 'engine.things.light_ambient'
         this.ui = elation.janusweb.ui({append: document.body, client: this});
       }
     }
+    this.initLoader = function() {
+      var loader = document.getElementsByClassName('engine_loading')[0];
+      if (loader) {
+        var logo = loader.getElementsByTagName('svg')[0];
+        var label = loader.getElementsByClassName('janusweb_loading_status')[0];
+        this.loadingscreen = {
+          container: loader,
+          logo: logo,
+          label: label
+        };
+        elation.events.add(this, 'engine_error', elation.bind(this, this.handleEngineError));
+        elation.events.add(this.engine, 'engine_start', elation.bind(this, this.handleEngineStart));
+      }
+    }
+    this.handleEngineStart = function(ev) {
+      if (this.loadingscreen) {
+        this.loadingscreen.container.parentNode.removeChild(this.loadingscreen.container);
+      }
+    }
+    this.handleEngineError = function(ev) {
+      console.log('omg error!', ev);
+      if (this.loadingscreen) {
+        this.loadingscreen.label.innerHTML = 'Error!';
+        elation.html.addclass(this.loadingscreen.container, 'state_error');
+        var err = ev.data;
+        var msg = err.message + '\n' + err.stack;
+
+        var errordiv = elation.html.create({tag: 'pre', append: this.loadingscreen.container, content: msg, classname: 'janusweb_error'});
+      }
+    }
     this.showAbout = function() {
       var aboutwin = elation.ui.window({append: document.body, center: true, title: 'About JanusWeb'});
       var frame = elation.ui.iframe({src: 'http://github.com/jbaicoianu/janusweb/', classname: 'janusweb_about'});

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 17:37:03 2024