diff --git a/js/client-teambuilder.js b/js/client-teambuilder.js
index 5b73f4cf4..8dfe2fb1e 100644
--- a/js/client-teambuilder.js
+++ b/js/client-teambuilder.js
@@ -290,7 +290,7 @@
var target = e.currentTarget;
var dataTransfer = e.originalEvent.dataTransfer;
- dataTransfer.effectAllowed = 'move';
+ dataTransfer.effectAllowed = 'copyMove';
dataTransfer.setData("text/plain", "Team " + e.currentTarget.dataset.value);
@@ -395,8 +395,7 @@
// Drag originated outside teambuilder
if (!e.originalEvent.dataTransfer) return;
if (!e.originalEvent.dataTransfer.files) return;
- if (!e.originalEvent.dataTransfer.files[0]) return;
- if (e.originalEvent.dataTransfer.files[0].name.slice(-4) !== '.txt') return;
+ if (e.originalEvent.dataTransfer.files[0] && e.originalEvent.dataTransfer.files[0].name.slice(-4) !== '.txt') return;
// We're dragging a .txt file! It might be a team!
this.$('.teamlist').append('
');
app.dragging = this.$('.dragging .team')[0];
@@ -408,6 +407,13 @@
defaultDropTeam: function (e) {
if (e.originalEvent.dataTransfer.files && e.originalEvent.dataTransfer.files[0]) {
var file = e.originalEvent.dataTransfer.files[0];
+ var name = file.name;
+ if (name.slice(-4) !== '.txt') {
+ app.dragging = null;
+ this.updateTeamList();
+ app.addPopupMessage("Your file is not a valid team. Team files are .txt files.");
+ return;
+ }
var reader = new FileReader();
var self = this;
reader.onload = function(e) {
@@ -415,12 +421,12 @@
try {
team = Storage.packTeam(Storage.importTeam(e.target.result));
} catch (err) {
- alert("Not a valid team.");
+ app.addPopupMessage("Your file is not a valid team.");
self.updateTeamList();
return;
}
var name = file.name;
- if (name.substr(name.length-4).toLowerCase() === '.txt') {
+ if (name.slice(name.length-4).toLowerCase() === '.txt') {
name = name.substr(0, name.length-4);
}
var format = '';
diff --git a/js/client.js b/js/client.js
index 0884943b5..5e2ff04f9 100644
--- a/js/client.js
+++ b/js/client.js
@@ -30,10 +30,16 @@
$(document).on('dragenter', function (e) {
e.preventDefault();
- if (!app.dragging && e.originalEvent.dataTransfer.files && e.originalEvent.dataTransfer.files[0]) {
- var file = e.originalEvent.dataTransfer.files[0];
- if (file.name.slice(-4) === '.txt' && app.curRoom.id === 'teambuilder') {
- // Someone dragged in a .txt file, hand it to the teambuilder
+ if (!app.dragging && app.curRoom.id === 'teambuilder') {
+ if (e.originalEvent.dataTransfer.files && e.originalEvent.dataTransfer.files[0]) {
+ var file = e.originalEvent.dataTransfer.files[0];
+ if (file.name.slice(-4) === '.txt') {
+ // Someone dragged in a .txt file, hand it to the teambuilder
+ app.curRoom.defaultDragEnterTeam(e);
+ }
+ } else {
+ // security doesn't let us read the filename :(
+ // we'll just have to assume it's a team
app.curRoom.defaultDragEnterTeam(e);
}
}
@@ -55,6 +61,7 @@
if (file.name.slice(-4) === '.txt' && app.curRoom.id === 'teambuilder') {
// Someone dragged in a .txt file, hand it to the teambuilder
app.curRoom.defaultDragEnterTeam(e);
+ app.curRoom.defaultDropTeam(e);
} else if (file.type && file.type.substr(0, 6) === 'image/') {
// It's an image file, try to set it as a background
CustomBackgroundPopup.readFile(file);