mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-10-02 07:42:12 -05:00
More reliable desktop-to-PS team dragging
This commit is contained in:
@@ -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('<li class="dragging"><div class="team" data-value="' + Storage.teams.length + '"></div></li>');
|
||||
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 = '';
|
||||
|
||||
15
js/client.js
15
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);
|
||||
|
||||
Reference in New Issue
Block a user