From 23cd5d6a1280d5b0fb0633a32fe6f6fbc48432b4 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Fri, 15 Feb 2019 14:25:11 +0200 Subject: [PATCH] Added effect edit expansion panel --- app/imports/ui/StoryBook.vue | 2 + .../ui/components/AttributeEffectList.vue | 3 +- app/imports/ui/components/EffectEdit.vue | 14 +-- .../EffectEditExpansionList.Story.vue | 104 ++++++++++++++++++ .../ui/components/EffectEditExpansionList.vue | 54 +++++++++ app/imports/ui/components/EffectListTile.vue | 15 ++- .../ui/components/global/SmartSelect.vue | 4 +- 7 files changed, 182 insertions(+), 14 deletions(-) create mode 100644 app/imports/ui/components/EffectEditExpansionList.Story.vue create mode 100644 app/imports/ui/components/EffectEditExpansionList.vue diff --git a/app/imports/ui/StoryBook.vue b/app/imports/ui/StoryBook.vue index eb5d1896..90c30651 100644 --- a/app/imports/ui/StoryBook.vue +++ b/app/imports/ui/StoryBook.vue @@ -46,6 +46,7 @@ import ColumnLayout from "/imports/ui/components/ColumnLayout.Story.vue"; import DialogStack from '/imports/ui/dialogStack/DialogStack.Story.vue'; import EffectEdit from '/imports/ui/components/EffectEdit.Story.vue'; + import EffectEditExpansionList from '/imports/ui/components/EffectEditExpansionList.Story.vue'; import HealthBar from '/imports/ui/components/HealthBar.Story.vue'; import HitDiceListTile from '/imports/ui/components/HitDiceListTile.Story.vue'; import IconSearch from '/imports/ui/components/IconSearch.Story.vue'; @@ -62,6 +63,7 @@ ColumnLayout, DialogStack, EffectEdit, + EffectEditExpansionList, HealthBar, HitDiceListTile, IconSearch, diff --git a/app/imports/ui/components/AttributeEffectList.vue b/app/imports/ui/components/AttributeEffectList.vue index 87033bf6..4f822902 100644 --- a/app/imports/ui/components/AttributeEffectList.vue +++ b/app/imports/ui/components/AttributeEffectList.vue @@ -4,7 +4,8 @@ v-for="effect in sortedEffects" v-bind="effect" v-on="$listeners.click ? { click(e){$emit('click', e)} } : {}" - > + :key="effect._id" + /> diff --git a/app/imports/ui/components/EffectEdit.vue b/app/imports/ui/components/EffectEdit.vue index 1537ffec..ec9c34f5 100644 --- a/app/imports/ui/components/EffectEdit.vue +++ b/app/imports/ui/components/EffectEdit.vue @@ -3,13 +3,13 @@ - {{item.item.text}} - + - @@ -49,7 +49,7 @@ :menu-props="{transition: 'slide-y-transition', lazy: true}" :value="effect.stat" :items="stats" - @input="stat => $emit('change', {stat})" + @input="stat => $emit('change', {set: {stat}, ack: () => {} })" /> @@ -64,7 +64,7 @@ props: { effect: { type: Object, - default: {}, + default: () => ({}), }, stats: { type: Array, diff --git a/app/imports/ui/components/EffectEditExpansionList.Story.vue b/app/imports/ui/components/EffectEditExpansionList.Story.vue new file mode 100644 index 00000000..78b5638a --- /dev/null +++ b/app/imports/ui/components/EffectEditExpansionList.Story.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/app/imports/ui/components/EffectEditExpansionList.vue b/app/imports/ui/components/EffectEditExpansionList.vue new file mode 100644 index 00000000..99e22583 --- /dev/null +++ b/app/imports/ui/components/EffectEditExpansionList.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/app/imports/ui/components/EffectListTile.vue b/app/imports/ui/components/EffectListTile.vue index 919bd1be..3e568fff 100644 --- a/app/imports/ui/components/EffectListTile.vue +++ b/app/imports/ui/components/EffectListTile.vue @@ -3,7 +3,6 @@ class="effect-list-tile" :class="{disabled: !enabled}" :id="elementId" - :key="_id" v-on="$listeners.click ? { click(e){ $emit('click', {$props, elementId}) } } : {}" @@ -16,11 +15,14 @@ {{getValue(operation, result)}}
- {{calculation}} + {{operation === 'conditional' ? calculation : ''}}
- + + {{statName}} + + {{name}} @@ -41,6 +43,8 @@ result: [String, Number], calculation: String, name: String, + stat: String, + statName: String, }, computed: { elementId(){ @@ -99,11 +103,12 @@ .icon { min-width: 30px; } - .theme--light .icon { - color: black; + .icon { + color: inherit !important; } .net-effect { flex-grow: 0; + flex-shrink: 0; } .value, .calculation { min-width: 80px; diff --git a/app/imports/ui/components/global/SmartSelect.vue b/app/imports/ui/components/global/SmartSelect.vue index 21aa896c..3c96442b 100644 --- a/app/imports/ui/components/global/SmartSelect.vue +++ b/app/imports/ui/components/global/SmartSelect.vue @@ -8,7 +8,9 @@ @change="change" @focus="focused = true" @blur="focused = false" - /> + > + +