-- 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: cc8d996e1e61b665e660d7bfb9ab8e1e5b91c417:
path_to:
revision_to:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

commit cc8d996e1e61b665e660d7bfb9ab8e1e5b91c417
Author: James Baicoianu <james_github@baicoianu.com>
Date:   Thu Jul 20 11:53:24 2017 -0700

    Improved avatar config tab, with drag and drop

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

index 2d523bb81054fb4f4fbbd43ed126ff6e41d406c0..

index ..b629929a24275a1cc12ebc6230f377e5cb4eaa5b 100644

--- a/scripts/configuration.js
+++ b/scripts/configuration.js
@@ -30,6 +30,7 @@ elation.require(['engine'], function() {
       var username = elation.ui.input({
         append: this,
         label: 'Username',
+        classname: 'janusweb_config_username',
         value: this.client.janusweb.getUsername(),
         events: {
           change: elation.bind(this, function(ev) {
@@ -37,7 +38,7 @@ elation.require(['engine'], function() {
           })
         }
       });
-      var avatar = elation.ui.textarea({
+      this.avatarinput = elation.ui.textarea({
         append: this,
         label: 'Avatar',
         value: this.client.player.getAvatarData(),
@@ -48,7 +49,66 @@ elation.require(['engine'], function() {
           })
         }
       });
-
+      elation.events.add(this.avatarinput, 'dragover', elation.bind(this, this.handleAvatarDragOver));
+      elation.events.add(this.avatarinput, 'dragenter', elation.bind(this, this.handleAvatarDragEnter));
+      elation.events.add(this.avatarinput, 'dragleave', elation.bind(this, this.handleAvatarDragLeave));
+      elation.events.add(this.avatarinput, 'drop', elation.bind(this, this.handleAvatarDrop));
+    }
+    this.showAvatarPalette = function() {
+      this.palette = elation.ui.window({append: document.body, right: true,top: true, title: 'Avatar Selector'});
+      this.palette.setcontent('<iframe src="https://kool.website/avatars/chibii/"></iframe>');
+    }
+    this.handleAvatarDragOver = function(ev) {
+      ev.dataTransfer.dropEffect = "link"
+      ev.preventDefault();
+    }
+    this.handleAvatarDragEnter = function(ev) {
+      this.avatarinput.addclass('state_droppable');
+    }
+    this.handleAvatarDragLeave = function(ev) {
+      this.avatarinput.removeclass('state_droppable');
+    }
+    this.handleAvatarDrop = function(ev) {
+      this.avatarinput.removeclass('state_droppable');
+      ev.preventDefault();
+      var files = ev.dataTransfer.files,
+          items = ev.dataTransfer.items;
+      if (files.length > 0) {
+        console.log('dropped files!', files);
+        for (var i = 0; i < files.length; i++) {
+          console.log(files[i]);
+          if (files[i].type == 'text/plain') {
+            var reader = new FileReader();
+            reader.onload = elation.bind(this, function() { this.loadAvatarFromFile(reader.result); });
+            reader.readAsText(files[i]);
+          }
+        }
+      } else if (items.length > 0) {
+        var types = {};
+        var numitems = items.length;
+        for (var i = 0; i < numitems; i++) {
+          var type = items[i].type;
+          if (type == 'text/uri-list') {
+            items[i].getAsString(elation.bind(this, this.loadObjectFromURIList));
+          }
+        }
+      }
+      ev.preventDefault();
+    }
+    this.loadObjectFromURIList = function(data) {
+      console.log('get it', data);
+      var url = data;
+      if (elation.engine.assets.corsproxy && url.indexOf(elation.engine.assets.corsproxy) == -1) {
+        url = elation.engine.assets.corsproxy + url;
+      }
+      elation.net.get(url, null, {
+        callback: elation.bind(this, this.loadAvatarFromFile)
+      });
+    }
+    this.loadAvatarFromFile = function(data) {
+      console.log('yey', data);
+      this.avatarinput.value = data;
+      this.client.player.setAvatar(data)
     }
   }, elation.ui.panel_vertical);
 });

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

-- Response ended

-- Page fetched on Sun Jun 2 16:45:33 2024