From 59ef7527b7720f61b7c63ee42be2f6157317baa6 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Sat, 9 Jul 2022 12:53:44 +0200 Subject: [PATCH] Fixed some errors with character insertion/deletion --- .../creatures/methods/removeCreature.js | 2 ++ .../computation/writeComputation/writeScope.js | 4 ++-- .../ui/creature/character/CharacterSheet.vue | 11 +++++++++++ .../character/characterSheetTabs/BuildTab.vue | 6 ------ .../character/characterSheetTabs/StatsTab.vue | 5 +++-- .../ui/dialogStack/DialogComponentIndex.js | 2 ++ app/imports/ui/pages/CharacterList.vue | 17 +++++++++++++---- 7 files changed, 33 insertions(+), 14 deletions(-) diff --git a/app/imports/api/creature/creatures/methods/removeCreature.js b/app/imports/api/creature/creatures/methods/removeCreature.js index 66eaa0b4..d157f5d7 100644 --- a/app/imports/api/creature/creatures/methods/removeCreature.js +++ b/app/imports/api/creature/creatures/methods/removeCreature.js @@ -3,11 +3,13 @@ import { ValidatedMethod } from 'meteor/mdg:validated-method'; import { RateLimiterMixin } from 'ddp-rate-limiter-mixin'; import { assertOwnership } from '/imports/api/creature/creatures/creaturePermissions.js'; import Creatures from '/imports/api/creature/creatures/Creatures.js'; +import CreatureVariables from '/imports/api/creature/creatures/CreatureVariables.js'; import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js'; import CreatureLogs from '/imports/api/creature/log/CreatureLogs.js'; import Experiences from '/imports/api/creature/experience/Experiences.js'; function removeRelatedDocuments(creatureId){ + CreatureVariables.remove({_creatureId: creatureId}); CreatureProperties.remove({'ancestors.id': creatureId}); CreatureLogs.remove({creatureId}); Experiences.remove({creatureId}); diff --git a/app/imports/api/engine/computation/writeComputation/writeScope.js b/app/imports/api/engine/computation/writeComputation/writeScope.js index 04858b8f..1c5bfde3 100644 --- a/app/imports/api/engine/computation/writeComputation/writeScope.js +++ b/app/imports/api/engine/computation/writeComputation/writeScope.js @@ -1,9 +1,9 @@ import CreatureVariables from '/imports/api/creature/creatures/CreatureVariables.js'; import Creatures from '/imports/api/creature/creatures/Creatures.js'; import { EJSON } from 'meteor/ejson'; -import { omitBy } from 'lodash'; export default function writeScope(creatureId, computation) { + if (!creatureId) throw 'creatureId is required'; const scope = computation.scope; const variables = computation.variables || {}; delete variables._id; @@ -50,7 +50,7 @@ export default function writeScope(creatureId, computation) { if ($unset) update.$unset = $unset; CreatureVariables.upsert({_creatureId: creatureId}, update); } - if (computation.creature.dirty) { + if (computation.creature?.dirty) { Creatures.update({_creatureId: creatureId}, {$unset: { dirty: 1 }}); } } diff --git a/app/imports/ui/creature/character/CharacterSheet.vue b/app/imports/ui/creature/character/CharacterSheet.vue index 9edaf0fb..0b4870f0 100644 --- a/app/imports/ui/creature/character/CharacterSheet.vue +++ b/app/imports/ui/creature/character/CharacterSheet.vue @@ -129,6 +129,16 @@ if