From edf3920e841dbfa83fbe2c528b3216865841ab1a Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Sun, 31 May 2020 22:16:38 +0200 Subject: [PATCH] Character sheet toolbars now match the color of the character --- app/imports/api/creature/Creatures.js | 22 +- .../ui/creature/CreatureFormDialog.vue | 29 ++- .../character/CharacterSheetToolbar.vue | 235 ++++++++++++++++++ .../characterSheetTabs/InventoryTab.vue | 2 +- app/imports/ui/layouts/AppLayout.vue | 10 +- app/imports/ui/layouts/Sidebar.vue | 1 - app/imports/ui/router.js | 26 +- 7 files changed, 289 insertions(+), 36 deletions(-) create mode 100644 app/imports/ui/creature/character/CharacterSheetToolbar.vue diff --git a/app/imports/api/creature/Creatures.js b/app/imports/api/creature/Creatures.js index 999faf32..2c70a916 100644 --- a/app/imports/api/creature/Creatures.js +++ b/app/imports/api/creature/Creatures.js @@ -143,7 +143,15 @@ const updateCreature = new ValidatedMethod({ validate({_id, path}){ if (!_id) return false; // Allowed fields - let allowedFields = ['name', 'alignment', 'gender', 'picture', 'avatarPicture', 'settings']; + let allowedFields = [ + 'name', + 'alignment', + 'gender', + 'picture', + 'avatarPicture', + 'color', + 'settings', + ]; if (!allowedFields.includes(path[0])){ throw new Meteor.Error('Creatures.methods.update.denied', 'This field can\'t be updated using this method'); @@ -152,9 +160,15 @@ const updateCreature = new ValidatedMethod({ run({_id, path, value}) { let creature = Creatures.findOne(_id); assertEditPermission(creature, this.userId); - Creatures.update(_id, { - $set: {[path.join('.')]: value}, - }); + if (value === undefined || value === null){ + Creatures.update(_id, { + $unset: {[path.join('.')]: 1}, + }); + } else { + Creatures.update(_id, { + $set: {[path.join('.')]: value}, + }); + } }, }); diff --git a/app/imports/ui/creature/CreatureFormDialog.vue b/app/imports/ui/creature/CreatureFormDialog.vue index ca6bb79a..3c41eebb 100644 --- a/app/imports/ui/creature/CreatureFormDialog.vue +++ b/app/imports/ui/creature/CreatureFormDialog.vue @@ -1,8 +1,15 @@