diff --git a/rpg-docs/client/views/character/features/featureDialog/featureDialog.html b/rpg-docs/client/views/character/features/featureDialog/featureDialog.html index 45a49e37..a5a76035 100644 --- a/rpg-docs/client/views/character/features/featureDialog/featureDialog.html +++ b/rpg-docs/client/views/character/features/featureDialog/featureDialog.html @@ -1,40 +1,85 @@ \ No newline at end of file + + + + + diff --git a/rpg-docs/client/views/character/features/featureDialog/featureDialog.js b/rpg-docs/client/views/character/features/featureDialog/featureDialog.js index 7d52ace0..5ffa015e 100644 --- a/rpg-docs/client/views/character/features/featureDialog/featureDialog.js +++ b/rpg-docs/client/views/character/features/featureDialog/featureDialog.js @@ -1,12 +1,80 @@ +Template.featureDialog.onCreated(function(){ + this.editing = new ReactiveVar(false); +}); + +Template.featureDialog.helpers({ + editing: function(){ + return Template.instance().editing.get(); + }, + feature: function(){ + return Features.findOne(this.featureId); + }, +}); + Template.featureDialog.events({ "color-change": function(event, instance){ Features.update(instance.data.featureId, {$set: {color: event.color}}); }, + "tap #editButton": function(event, instance){ + instance.editing.set(true); + }, + "tap #doneEditingButton": function(event, instance){ + instance.editing.set(false); + }, "tap #deleteButton": function(event, instance){ Features.softRemoveNode(instance.data.featureId); GlobalUI.deletedToast(instance.data.featureId, "Features", "Feature"); GlobalUI.closeDetail(); }, +}); + +Template.featureDetails.helpers({ + or: function(a, b){ + return a ||b; + }, + hasUses: function(){ + return this.usesValue() > 0; + }, + noUsesLeft: function(){ + return this.usesLeft() <= 0; + }, + usesFull: function(){ + return this.usesLeft() >= this.usesValue(); + }, +}); + +Template.featureDetails.events({ + "tap .useFeature": function(event){ + var featureId = this._id; + Features.update(featureId, {$inc: {used: 1}}); + }, + "tap .resetFeature": function(event){ + var featureId = this._id; + Features.update(featureId, {$set: {used: 0}}); + }, + + "change .enabledCheckbox": function(event){ + var enabled = !this.enabled; + Features.update(this._id, {$set: {enabled: enabled}}); + } +}); + +Template.featureEdit.onRendered(function(){ + updatePolymerInputs(this); +}); + +Template.featureEdit.helpers({ + usesSet: function(){ + return _.isString(this.uses); + }, + enabledSelection: function(){ + if(!this.enabled) return "disabled"; + if(this.alwaysEnabled) return "alwaysEnabled"; + return "enabled"; + } +}); + +Template.featureEdit.events({ "change #featureNameInput": function(event){ var name = Template.instance().find("#featureNameInput").value; Features.update(this._id, {$set: {name: name}}); @@ -45,15 +113,3 @@ Template.featureDialog.events({ Features.update(this._id, {$set: setter}); }, }); - -Template.featureDialog.helpers({ - feature: function(){ - return Features.findOne(this.featureId); - }, - usesSet: function(){ - return _.isString(this.uses); - }, - isEnabled: function(){ - return this.enabled !== "disabled"; - } -}); \ No newline at end of file