diff --git a/rpg-docs/client/views/character/buffs/applyBuffDialog/applyBuffDialog.js b/rpg-docs/client/views/character/buffs/applyBuffDialog/applyBuffDialog.js index f5fcbe44..c5f9bb8c 100644 --- a/rpg-docs/client/views/character/buffs/applyBuffDialog/applyBuffDialog.js +++ b/rpg-docs/client/views/character/buffs/applyBuffDialog/applyBuffDialog.js @@ -28,54 +28,12 @@ Template.applyBuffDialog.events({ }, "click #applyButton": function(event, instance){ var targetId = Template.instance().selectedTarget.get(); - var parent = global[this.buff.parent.collection].findOne(this.buff.parent.id); - console.log(parent, this.buff.parent); if (targetId === "default") { - if (this.buff.target === "others") return; //we have "Select a character" selected - targetId = this.buff.charId; //i.e. target self + if (this.buff.target === "others") return; //since we have "Select a character" selected + targetId = this.buff.charId; //otherwise, the default is to target self } - //insert new buff - newBuffId = Buffs.insert({ - charId: targetId, - name: this.buff.name, - description: this.buff.description, - lifeTime: {total: this.buff.lifeTime.total}, - type: "custom", - - appliedBy: this.buff.charId, - appliedByDetails: { - name: parent.name, - collection: this.buff.parent.collection, - }, - }); - - //insert children - Attacks.find({"parent.id": this.buff._id}).forEach(function(doc){ - temp = _.clone(doc); - temp.parent.id = newBuffId; - temp.parent.collection = "Buffs"; - delete temp._id; - - Attacks.insert(temp); - }); - Effects.find({"parent.id": this.buff._id}).forEach(function(doc){ - temp = _.clone(doc); - temp.parent.id = newBuffId; - temp.parent.collection = "Buffs"; - delete temp._id; - - Effects.insert(temp); - }); - Proficiencies.find({"parent.id": this.buff._id}).forEach(function(doc){ - temp = _.clone(doc); - temp.parent.id = newBuffId; - temp.parent.collection = "Buffs"; - delete temp._id; - - Proficiencies.insert(temp); - }); - popDialogStack(); + popDialogStack(targetId); }, "click #cancelButton": function(event, instance){ popDialogStack(); diff --git a/rpg-docs/client/views/character/buffs/customBuffView/customBuffView.js b/rpg-docs/client/views/character/buffs/customBuffView/customBuffView.js index c8573872..70c8d4da 100644 --- a/rpg-docs/client/views/character/buffs/customBuffView/customBuffView.js +++ b/rpg-docs/client/views/character/buffs/customBuffView/customBuffView.js @@ -1,3 +1,48 @@ +const applyBuff = function(targetId, buff) { + var parent = global[buff.parent.collection].findOne(buff.parent.id); + + //insert new buff + newBuffId = Buffs.insert({ + charId: targetId, + name: buff.name, + description: buff.description, + lifeTime: {total: buff.lifeTime.total}, + type: "custom", + + appliedBy: buff.charId, + appliedByDetails: { + name: parent.name, + collection: buff.parent.collection, + }, + }); + + //insert children + Attacks.find({"parent.id": buff._id}).forEach(function(doc){ + temp = _.clone(doc); + temp.parent.id = newBuffId; + temp.parent.collection = "Buffs"; + delete temp._id; + + Attacks.insert(temp); + }); + Effects.find({"parent.id": buff._id}).forEach(function(doc){ + temp = _.clone(doc); + temp.parent.id = newBuffId; + temp.parent.collection = "Buffs"; + delete temp._id; + + Effects.insert(temp); + }); + Proficiencies.find({"parent.id": buff._id}).forEach(function(doc){ + temp = _.clone(doc); + temp.parent.id = newBuffId; + temp.parent.collection = "Buffs"; + delete temp._id; + + Proficiencies.insert(temp); + }); +} + Template.customBuffView.helpers({ toSelf: function() { if (this.buff.target === "self") { @@ -15,56 +60,15 @@ Template.customBuffView.events({ template: "applyBuffDialog", data: {buff: this.buff}, element: event.currentTarget, + callback: (targetId) => { + if (!targetId) return; + applyBuff(targetId, this.buff); + }, }); } else { var targetId = this.buff.charId; - var parent = global[this.buff.parent.collection].findOne(this.buff.parent.id); - if (targetId === "default") { - if (this.buff.target === "others") return; //we have "Select a character" selected - targetId = this.buff.charId; //i.e. target self - } - - //insert new buff - newBuffId = Buffs.insert({ - charId: targetId, - name: this.buff.name, - description: this.buff.description, - lifeTime: {total: this.buff.lifeTime.total}, - type: "custom", - - appliedBy: this.buff.charId, - appliedByDetails: { - name: parent.name, - collection: this.buff.parent.collection, - }, - }); - - //insert children - Attacks.find({"parent.id": this.buff._id}).forEach(function(doc){ - temp = _.clone(doc); - temp.parent.id = newBuffId; - temp.parent.collection = "Buffs"; - delete temp._id; - - Attacks.insert(temp); - }); - Effects.find({"parent.id": this.buff._id}).forEach(function(doc){ - temp = _.clone(doc); - temp.parent.id = newBuffId; - temp.parent.collection = "Buffs"; - delete temp._id; - - Effects.insert(temp); - }); - Proficiencies.find({"parent.id": this.buff._id}).forEach(function(doc){ - temp = _.clone(doc); - temp.parent.id = newBuffId; - temp.parent.collection = "Buffs"; - delete temp._id; - - Proficiencies.insert(temp); - }); + applyBuff(targetId, this.buff); } }, }); \ No newline at end of file diff --git a/rpg-docs/server/publications/singleCharacter.js b/rpg-docs/server/publications/singleCharacter.js index f6a82658..42f8c073 100644 --- a/rpg-docs/server/publications/singleCharacter.js +++ b/rpg-docs/server/publications/singleCharacter.js @@ -46,6 +46,6 @@ Meteor.publish("singleCharacterName", function(characterId){ ], }); if (char) { - return Characters.find(characterId, {fields:"name"}); + return Characters.find(characterId, {fields:{"name": 1}}); } }); \ No newline at end of file