Got library attribute form onto the screen :D

This commit is contained in:
Stefan Zermatten
2019-06-28 14:48:02 +02:00
parent 9757da2cae
commit 4abb5edbf3
9 changed files with 44 additions and 16 deletions

View File

@@ -41,7 +41,7 @@
import Vue from "vue"; import Vue from "vue";
import AbilityListTile from '/imports/ui/creature/properties/attributes/AbilityListTile.Story.vue'; import AbilityListTile from '/imports/ui/creature/properties/attributes/AbilityListTile.Story.vue';
import AttributeCard from '/imports/ui/creature/properties/attributes/AttributeCard.Story.vue'; import AttributeCard from '/imports/ui/creature/properties/attributes/AttributeCard.Story.vue';
import AttributeEdit from '/imports/ui/creature/properties/attributes/AttributeEdit.Story.vue'; import AttributeForm from '/imports/ui/creature/properties/attributes/AttributeForm.Story.vue';
import ColorPicker from '/imports/ui/components/ColorPicker.Story.vue'; import ColorPicker from '/imports/ui/components/ColorPicker.Story.vue';
import ColumnLayout from "/imports/ui/components/ColumnLayout.Story.vue"; import ColumnLayout from "/imports/ui/components/ColumnLayout.Story.vue";
import DialogStack from '/imports/ui/dialogStack/DialogStack.Story.vue'; import DialogStack from '/imports/ui/dialogStack/DialogStack.Story.vue';
@@ -62,7 +62,7 @@
components: { components: {
AbilityListTile, AbilityListTile,
AttributeCard, AttributeCard,
AttributeEdit, AttributeForm,
ColorPicker, ColorPicker,
ColumnLayout, ColumnLayout,
DialogStack, DialogStack,

View File

@@ -3,7 +3,7 @@
<v-container fluid grid-list-lg fill-height> <v-container fluid grid-list-lg fill-height>
<v-layout row wrap> <v-layout row wrap>
<v-flex v-for="property in properties" :key="property.name" xs4> <v-flex v-for="property in properties" :key="property.name" xs4>
<v-card hover @click="$emit('select', property.type)"> <v-card hover @click="$emit('select', property)">
<div class="layout row align-center justify-center" style="min-height: 70px;"> <div class="layout row align-center justify-center" style="min-height: 70px;">
<v-icon x-large>{{ property.icon }}</v-icon> <v-icon x-large>{{ property.icon }}</v-icon>
</div> </div>

View File

@@ -22,13 +22,13 @@
</template> </template>
<script> <script>
import AttributeEdit from '/imports/ui/creature/properties/attributes/AttributeEdit.vue'; import AttributeForm from '/imports/ui/creature/properties/attributes/AttributeForm.vue';
import Attributes from '/imports/api/creature/properties/Attributes.js'; import Attributes from '/imports/api/creature/properties/Attributes.js';
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue'; import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
export default { export default {
components: { components: {
AttributeEdit, AttributeForm,
DialogBase, DialogBase,
}, },
data(){ return { data(){ return {

View File

@@ -36,7 +36,7 @@
<script> <script>
import DialogBase from "/imports/ui/dialogStack/DialogBase.vue"; import DialogBase from "/imports/ui/dialogStack/DialogBase.vue";
import EffectChildList from '/imports/ui/creature/properties/effects/EffectChildList.vue'; import EffectChildList from '/imports/ui/creature/properties/effects/EffectChildList.vue';
import AttributeEdit from '/imports/ui/creature/properties/attributes/AttributeEdit.vue'; import AttributeForm from '/imports/ui/creature/properties/attributes/AttributeForm.vue';
import numberToSignedString from '/imports/ui/utility/numberToSignedString.js'; import numberToSignedString from '/imports/ui/utility/numberToSignedString.js';
export default { export default {
@@ -79,7 +79,7 @@
components: { components: {
DialogBase, DialogBase,
EffectChildList, EffectChildList,
AttributeEdit, AttributeForm,
}, },
}; };
</script> </script>

View File

@@ -13,11 +13,11 @@
</template> </template>
<script> <script>
import AttributeEdit from '/imports/ui/creature/properties/attributes/AttributeEdit.vue'; import AttributeForm from '/imports/ui/creature/properties/attributes/AttributeForm.vue';
import debounceUpdate from '/imports/ui/utility/debounceUpdate.js'; import debounceUpdate from '/imports/ui/utility/debounceUpdate.js';
export default { export default {
components: { components: {
AttributeEdit, AttributeForm,
}, },
data(){ return { data(){ return {
attributes: [ attributes: [

View File

@@ -0,0 +1,5 @@
import AttributeForm from '/imports/ui/creature/properties/attributes/AttributeForm.vue';
export default {
attribute: AttributeForm,
};

View File

@@ -1,37 +1,44 @@
<template lang="html"> <template lang="html">
<dialog-base :override-back-button="step === 2 && back"> <dialog-base :override-back-button="step === 2 ? back : undefined">
<div slot="toolbar">{{ step === 2 ? `Add ${property.name}` : 'Add Library Content'}}</div>
<v-window v-model="step" slot="unwrapped-content" style="height: 100%;"> <v-window v-model="step" slot="unwrapped-content" style="height: 100%;">
<v-window-item :value="1"> <v-window-item :value="1">
<property-selector @select="setType"/> <property-selector @select="setProperty"/>
</v-window-item> </v-window-item>
<v-window-item :value="2"> <v-window-item :value="2">
<v-card-text> <v-card-text>
{{ type }} <library-node-form :type="property && property.type"/>
</v-card-text> </v-card-text>
</v-window-item> </v-window-item>
</v-window> </v-window>
<div slot="actions" v-if="step === 2" class="layout row justify-end">
<v-btn flat>Insert</v-btn>
</div>
</dialog-base> </dialog-base>
</template> </template>
<script> <script>
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue'; import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import PropertySelector from '/imports/ui/components/properties/PropertySelector.vue'; import PropertySelector from '/imports/ui/creature/properties/PropertySelector.vue';
import LibraryNodeForm from '/imports/ui/library/LibraryNodeForm.vue';
export default { export default {
data() { return { data() { return {
type: undefined, property: undefined,
step: 1, step: 1,
};}, };},
components: { components: {
DialogBase, DialogBase,
PropertySelector, PropertySelector,
LibraryNodeForm,
}, },
methods: { methods: {
back(){ back(){
this.step = 1; this.step = 1;
}, },
setType(type){ setProperty(property){
this.type = type; this.property = property;
this.step = 2; this.step = 2;
} }
}, },

View File

@@ -0,0 +1,16 @@
<template lang="html">
<component v-if="type" :is="type" class="library-node-form"/>
</template>
<script>
import propertyFormIndex from '/imports/ui/creature/properties/propertyFormIndex.js';
export default {
props: {
type: String,
},
components: propertyFormIndex,
}
</script>
<style lang="css" scoped>
</style>