repo: janusweb
action: commit
revision: 
path_from: 
revision_from: 1e0ace013912a0a49bee85cc461583f8430400a0:
path_to: 
revision_to: 
git.thebackupbox.net
janusweb
git clone git://git.thebackupbox.net/janusweb
commit 1e0ace013912a0a49bee85cc461583f8430400a0
Author: James Baicoianu 
Date:   Sat Oct 19 00:01:34 2019 -0700

    Initialize events for new rooms as they're created

diff --git a/media/assets/webui/apps/editor/editor.js b/media/assets/webui/apps/editor/editor.js
index 8555b5b876d9c4e0b74e61bcf5ed2771449a6876..
index ..b310d79a4f3ad81e4f215c6c82cfb6a5b03b3614 100644
--- a/media/assets/webui/apps/editor/editor.js
+++ b/media/assets/webui/apps/editor/editor.js
@@ -63,20 +63,25 @@ console.log('my elements!', elements);
     });
     janus.engine.systems.controls.activateContext('roomedit_paste');

+    this.initialized = new Set();
     if (typeof room != 'undefined') {
       this.initRoomEvents(room);
     }
+    elation.events.add(janus._target, 'room_change', (ev) => this.initRoomEvents(room));
     document.addEventListener('paste', (ev) => this.handlePaste(ev));
   }
   initRoomEvents(room) {
-    room.addEventListener('click', (ev) => this.handleRoomClick(ev));
-    //room.addEventListener('mouseover', (ev) => console.log('mouseover', ev.data));
-    //room.addEventListener('mouseout', (ev) => console.log('mouseout', ev.data));
-    elation.events.add(room, 'dragenter', (ev) => this.handleDragOver(ev));
-    elation.events.add(room, 'dragover', (ev) => this.handleDragOver(ev));
-    room.addEventListener('dragenter', (ev) => this.handleDragOver(ev));
-    room.addEventListener('dragover', (ev) => this.handleDragOver(ev));
-    room.addEventListener('drop', (ev) => this.handleDrop(ev));
+    if (!this.initialized.has(room)) {
+      room.addEventListener('click', (ev) => this.handleRoomClick(ev));
+      //room.addEventListener('mouseover', (ev) => console.log('mouseover', ev.data));
+      //room.addEventListener('mouseout', (ev) => console.log('mouseout', ev.data));
+      elation.events.add(room, 'dragenter', (ev) => this.handleDragOver(ev));
+      elation.events.add(room, 'dragover', (ev) => this.handleDragOver(ev));
+      room.addEventListener('dragenter', (ev) => this.handleDragOver(ev));
+      room.addEventListener('dragover', (ev) => this.handleDragOver(ev));
+      room.addEventListener('drop', (ev) => this.handleDrop(ev));
+      this.initialized.add(room);
+    }
   }

   getManipulator() {

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