Can now move and copy spells between characters

This commit is contained in:
Jacob
2017-07-26 21:02:36 +01:00
parent 53afaa4f37
commit c76fe99148
3 changed files with 117 additions and 41 deletions

View File

@@ -334,21 +334,23 @@ Template.layout.events({
Session.set("inventory.dragItemId", null);
},
"drop .characterRepresentative": function(event, instance) {
var itemId = event.originalEvent.dataTransfer.getData("dicecloud-id/items");
if (event.ctrlKey){
//split the stack to the container
pushDialogStack({
template: "splitStackDialog",
data: {
id: itemId,
parentCollection: "Characters",
parentId: this._id,
},
});
} else {
//move item to the character
Meteor.call("moveItemToCharacter", itemId, this._id);
if (_.contains(event.originalEvent.dataTransfer.types, "dicecloud-id/items")){
var itemId = event.originalEvent.dataTransfer.getData("dicecloud-id/items");
if (event.ctrlKey){
//split the stack to the container
pushDialogStack({
template: "splitStackDialog",
data: {
id: itemId,
parentCollection: "Characters",
parentId: this._id,
},
});
} else {
//move item to the character
Meteor.call("moveItemToCharacter", itemId, this._id);
}
Session.set("inventory.dragItemId", null);
}
Session.set("inventory.dragItemId", null);
},
});

View File

@@ -337,26 +337,45 @@ Template.spells.events({
Template.layout.events({
"dragstart .spellItem": function(event, instance){
event.originalEvent.dataTransfer.setData("dicecloud-id/spells", this._id);
Session.set("inventory.dragSpellId", this._id);
Session.set("spellLists.dragSpellId", this._id);
},
"dragend .spellItem": function(event, instance){
Session.set("inventory.dragSpellId", null);
Session.set("spellLists.dragSpellId", null);
},
"dragover .spellList, dragenter .spellList":
function(event, instance){
"dragover .spellList, dragenter .spellList": function(event, instance){
if (_.contains(event.originalEvent.dataTransfer.types, "dicecloud-id/spells")){
event.preventDefault();
}
},
"drop .spellList": function(event, instance){
var spellId = event.originalEvent.dataTransfer.getData("dicecloud-id/spells");
//move spell to new list
if (event.ctrlKey){
//copy spell to new list
Meteor.call("copySpellToList", spellId, this._id);
} else {
//move spell to new list
Meteor.call("moveSpellToList", spellId, this._id);
}
Session.set("inventory.dragSpellId", null);
Session.set("spellLists.dragSpellId", null);
},
"dragover .characterRepresentative, dragenter .characterRepresentative": function(event, instance){
if (_.contains(event.originalEvent.dataTransfer.types, "dicecloud-id/spells")){
event.preventDefault();
}
},
"drop .characterRepresentative": function(event, instance) {
if (_.contains(event.originalEvent.dataTransfer.types, "dicecloud-id/spells")){ //to prevent conflicts with item drag/drop
var spellId = event.originalEvent.dataTransfer.getData("dicecloud-id/spells");
if (event.ctrlKey){
//copy spell to character
Meteor.call("copySpellToCharacter", spellId, this._id);
} else {
//move spell to character
Meteor.call("moveSpellToCharacter", spellId, this._id);
}
Session.set("spellLists.dragSpellId", null);
}
},
});