diff --git a/app/imports/api/properties/Buffs.js b/app/imports/api/properties/Buffs.js index 31935fd0..f16f5fd7 100644 --- a/app/imports/api/properties/Buffs.js +++ b/app/imports/api/properties/Buffs.js @@ -1,5 +1,5 @@ import SimpleSchema from 'simpl-schema'; -import { EffectSchema } from '/imports/api/properties/Effects.js'; +import { StoredEffectSchema } from '/imports/api/properties/Effects.js'; let BuffSchema = new SimpleSchema({ name: { @@ -25,7 +25,7 @@ let StoredBuffSchema = new SimpleSchema({ defaultValue: [], }, 'effects.$': { - type: EffectSchema, + type: StoredEffectSchema, }, target: { type: String, diff --git a/app/imports/api/properties/Effects.js b/app/imports/api/properties/Effects.js index 41620c7e..eb5b8bdb 100644 --- a/app/imports/api/properties/Effects.js +++ b/app/imports/api/properties/Effects.js @@ -5,13 +5,6 @@ import SimpleSchema from 'simpl-schema'; * that modify their final value or presentation in some way */ let EffectSchema = new SimpleSchema({ - _id: { - type: String, - regEx: SimpleSchema.RegEx.Id, - autoValue(){ - if (!this.isSet) return Random.id(); - } - }, name: { type: String, optional: true, @@ -43,6 +36,16 @@ let EffectSchema = new SimpleSchema({ }, }); +const StoredEffectSchema = new SimpleSchema({ + _id: { + type: String, + regEx: SimpleSchema.RegEx.Id, + autoValue(){ + if (!this.isSet) return Random.id(); + } + }, +}).extend(EffectSchema); + const ComputedEffectSchema = new SimpleSchema({ // The computed result of the effect result: { @@ -51,4 +54,4 @@ const ComputedEffectSchema = new SimpleSchema({ }, }).extend(EffectSchema); -export { EffectSchema, ComputedEffectSchema }; +export { EffectSchema, StoredEffectSchema, ComputedEffectSchema }; diff --git a/app/imports/api/properties/Skills.js b/app/imports/api/properties/Skills.js index 76ff3e95..0f0dc5fc 100644 --- a/app/imports/api/properties/Skills.js +++ b/app/imports/api/properties/Skills.js @@ -20,7 +20,7 @@ let SkillSchema = new SimpleSchema({ optional: true, }, // What type of skill is this - type: { + skillType: { type: String, allowedValues: [ "skill", @@ -43,6 +43,11 @@ let SkillSchema = new SimpleSchema({ type: Number, optional: true, }, + // Description of what the skill is used for + description: { + type: String, + optional: true, + }, }); diff --git a/app/imports/ui/components/tree/TreeNode.vue b/app/imports/ui/components/tree/TreeNode.vue index 3d04e91d..7205017a 100644 --- a/app/imports/ui/components/tree/TreeNode.vue +++ b/app/imports/ui/components/tree/TreeNode.vue @@ -63,7 +63,7 @@ * the tree view shows off the full character structure, and where each part of * character comes from. **/ - import PropertyIcon from '/imports/ui/components/properties/PropertyIcon.vue'; + import PropertyIcon from '/imports/ui/properties/PropertyIcon.vue'; export default { name: 'tree-node', beforeCreate() { diff --git a/app/imports/ui/library/LibraryNodeEditDialog.vue b/app/imports/ui/library/LibraryNodeEditDialog.vue index 6d09f124..c869b05c 100644 --- a/app/imports/ui/library/LibraryNodeEditDialog.vue +++ b/app/imports/ui/library/LibraryNodeEditDialog.vue @@ -42,7 +42,7 @@ import librarySchemas from '/imports/api/library/librarySchemas.js'; import DialogBase from '/imports/ui/dialogStack/DialogBase.vue'; import { getPropertyName } from '/imports/constants/PROPERTIES.js'; - import PropertyIcon from '/imports/ui/components/properties/PropertyIcon.vue'; + import PropertyIcon from '/imports/ui/properties/PropertyIcon.vue'; import propertyFormIndex from '/imports/ui/properties/forms/shared/propertyFormIndex.js'; import { get } from 'lodash'; diff --git a/app/imports/ui/pages/Library.vue b/app/imports/ui/pages/Library.vue index 40c6ded9..46051733 100644 --- a/app/imports/ui/pages/Library.vue +++ b/app/imports/ui/pages/Library.vue @@ -59,7 +59,7 @@ import LibraryNodes, { insertNode } from '/imports/api/library/LibraryNodes.js'; import Libraries from '/imports/api/library/Libraries.js'; import { setDocToLastOrder } from '/imports/api/parenting/order.js'; - import PropertyIcon from '/imports/ui/components/properties/PropertyIcon.vue'; + import PropertyIcon from '/imports/ui/properties/PropertyIcon.vue'; import { getPropertyName } from '/imports/constants/PROPERTIES.js'; export default { diff --git a/app/imports/ui/properties/PropertyIcon.vue b/app/imports/ui/properties/PropertyIcon.vue new file mode 100644 index 00000000..abec4576 --- /dev/null +++ b/app/imports/ui/properties/PropertyIcon.vue @@ -0,0 +1,18 @@ + + + diff --git a/app/imports/ui/properties/PropertyViewer.vue b/app/imports/ui/properties/PropertyViewer.vue index 5ead802f..9969fec8 100644 --- a/app/imports/ui/properties/PropertyViewer.vue +++ b/app/imports/ui/properties/PropertyViewer.vue @@ -24,5 +24,5 @@ export default { } - diff --git a/app/imports/ui/properties/components/ProficiencyIcon.vue b/app/imports/ui/properties/components/ProficiencyIcon.vue new file mode 100644 index 00000000..8159f21d --- /dev/null +++ b/app/imports/ui/properties/components/ProficiencyIcon.vue @@ -0,0 +1,25 @@ + + + diff --git a/app/imports/ui/properties/features/FeatureCreationDialog.vue b/app/imports/ui/properties/features/FeatureCreationDialog.vue index b367ba60..ec4eb902 100644 --- a/app/imports/ui/properties/features/FeatureCreationDialog.vue +++ b/app/imports/ui/properties/features/FeatureCreationDialog.vue @@ -1,28 +1,19 @@ diff --git a/app/imports/ui/properties/viewers/ContainerViewer.vue b/app/imports/ui/properties/viewers/ContainerViewer.vue index 38e40f18..940b39a2 100644 --- a/app/imports/ui/properties/viewers/ContainerViewer.vue +++ b/app/imports/ui/properties/viewers/ContainerViewer.vue @@ -1,34 +1,22 @@ diff --git a/app/imports/ui/properties/viewers/DamageMultiplierViewer.vue b/app/imports/ui/properties/viewers/DamageMultiplierViewer.vue index 34b5b9bd..5c2b6598 100644 --- a/app/imports/ui/properties/viewers/DamageMultiplierViewer.vue +++ b/app/imports/ui/properties/viewers/DamageMultiplierViewer.vue @@ -1,8 +1,6 @@ diff --git a/app/imports/ui/properties/viewers/FeatureViewer.vue b/app/imports/ui/properties/viewers/FeatureViewer.vue index cb15ad4e..1aa3c866 100644 --- a/app/imports/ui/properties/viewers/FeatureViewer.vue +++ b/app/imports/ui/properties/viewers/FeatureViewer.vue @@ -1,25 +1,17 @@ diff --git a/app/imports/ui/properties/viewers/FolderViewer.vue b/app/imports/ui/properties/viewers/FolderViewer.vue index 71c70511..0a784889 100644 --- a/app/imports/ui/properties/viewers/FolderViewer.vue +++ b/app/imports/ui/properties/viewers/FolderViewer.vue @@ -1,19 +1,13 @@ diff --git a/app/imports/ui/properties/viewers/ItemViewer.vue b/app/imports/ui/properties/viewers/ItemViewer.vue new file mode 100644 index 00000000..d7100b38 --- /dev/null +++ b/app/imports/ui/properties/viewers/ItemViewer.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/app/imports/ui/properties/viewers/NoteViewer.vue b/app/imports/ui/properties/viewers/NoteViewer.vue index c3905394..957247ab 100644 --- a/app/imports/ui/properties/viewers/NoteViewer.vue +++ b/app/imports/ui/properties/viewers/NoteViewer.vue @@ -1,22 +1,14 @@ diff --git a/app/imports/ui/properties/viewers/ProficiencyViewer.vue b/app/imports/ui/properties/viewers/ProficiencyViewer.vue new file mode 100644 index 00000000..e6d7f36c --- /dev/null +++ b/app/imports/ui/properties/viewers/ProficiencyViewer.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/app/imports/ui/properties/viewers/SkillViewer.vue b/app/imports/ui/properties/viewers/SkillViewer.vue new file mode 100644 index 00000000..a56b853d --- /dev/null +++ b/app/imports/ui/properties/viewers/SkillViewer.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/app/imports/ui/properties/viewers/SpellListViewer.vue b/app/imports/ui/properties/viewers/SpellListViewer.vue new file mode 100644 index 00000000..76966d88 --- /dev/null +++ b/app/imports/ui/properties/viewers/SpellListViewer.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/app/imports/ui/properties/viewers/SpellViewer.vue b/app/imports/ui/properties/viewers/SpellViewer.vue new file mode 100644 index 00000000..ceefd901 --- /dev/null +++ b/app/imports/ui/properties/viewers/SpellViewer.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/app/imports/ui/properties/viewers/shared/PropertyDescription.vue b/app/imports/ui/properties/viewers/shared/PropertyDescription.vue new file mode 100644 index 00000000..47767357 --- /dev/null +++ b/app/imports/ui/properties/viewers/shared/PropertyDescription.vue @@ -0,0 +1,13 @@ + + + diff --git a/app/imports/ui/properties/viewers/shared/PropertyField.vue b/app/imports/ui/properties/viewers/shared/PropertyField.vue new file mode 100644 index 00000000..2c728ec8 --- /dev/null +++ b/app/imports/ui/properties/viewers/shared/PropertyField.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/app/imports/ui/properties/viewers/shared/PropertyName.vue b/app/imports/ui/properties/viewers/shared/PropertyName.vue new file mode 100644 index 00000000..b51d484d --- /dev/null +++ b/app/imports/ui/properties/viewers/shared/PropertyName.vue @@ -0,0 +1,13 @@ + + + diff --git a/app/imports/ui/properties/viewers/shared/PropertyVariableName.vue b/app/imports/ui/properties/viewers/shared/PropertyVariableName.vue new file mode 100644 index 00000000..f4a853e9 --- /dev/null +++ b/app/imports/ui/properties/viewers/shared/PropertyVariableName.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js b/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js index 394043f0..cf7e0ec6 100644 --- a/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js +++ b/app/imports/ui/properties/viewers/shared/propertyViewerIndex.js @@ -8,13 +8,13 @@ import EffectViewer from '/imports/ui/properties/viewers/EffectViewer.vue'; import ExperienceViewer from '/imports/ui/properties/viewers/ExperienceViewer.vue'; import FeatureViewer from '/imports/ui/properties/viewers/FeatureViewer.vue'; import FolderViewer from '/imports/ui/properties/viewers/FolderViewer.vue'; -//import ItemViewer from '/imports/ui/properties/viewers/ItemViewer.vue'; +import ItemViewer from '/imports/ui/properties/viewers/ItemViewer.vue'; import NoteViewer from '/imports/ui/properties/viewers/NoteViewer.vue'; -//import ProficiencyViewer from '/imports/ui/properties/viewers/ProficiencyViewer.vue'; +import ProficiencyViewer from '/imports/ui/properties/viewers/ProficiencyViewer.vue'; //import RollViewer from '/imports/ui/properties/viewers/RollViewer.vue'; -//import SkillViewer from '/imports/ui/properties/viewers/SkillViewer.vue'; -//import SpellListViewer from '/imports/ui/properties/viewers/SpellListViewer.vue'; -//import SpellViewer from '/imports/ui/properties/viewers/SpellViewer.vue'; +import SkillViewer from '/imports/ui/properties/viewers/SkillViewer.vue'; +import SpellListViewer from '/imports/ui/properties/viewers/SpellListViewer.vue'; +import SpellViewer from '/imports/ui/properties/viewers/SpellViewer.vue'; export default { // action: ActionViewer, @@ -27,11 +27,11 @@ export default { effect: EffectViewer, feature: FeatureViewer, folder: FolderViewer, -// item: ItemViewer, + item: ItemViewer, note: NoteViewer, -// proficiency: ProficiencyViewer, + proficiency: ProficiencyViewer, // roll: RollViewer, -// skill: SkillViewer, -// spellList: SpellListViewer, -// spell: SpellViewer, + skill: SkillViewer, + spellList: SpellListViewer, + spell: SpellViewer, }; diff --git a/app/imports/ui/properties/viewers/shared/propertyViewerMixin.js b/app/imports/ui/properties/viewers/shared/propertyViewerMixin.js new file mode 100644 index 00000000..d8f39b6b --- /dev/null +++ b/app/imports/ui/properties/viewers/shared/propertyViewerMixin.js @@ -0,0 +1,21 @@ +import PropertyName from '/imports/ui/properties/viewers/shared/PropertyName.vue'; +import PropertyVariableName from '/imports/ui/properties/viewers/shared/PropertyVariableName.vue'; +import PropertyField from '/imports/ui/properties/viewers/shared/PropertyField.vue'; +import PropertyDescription from '/imports/ui/properties/viewers/shared/PropertyDescription.vue'; + +const propertyViewerMixin = { + components: { + PropertyName, + PropertyVariableName, + PropertyField, + PropertyDescription, + }, + props: { + model: { + type: Object, + required: true, + }, + }, +}; + +export default propertyViewerMixin;