Build details with no slots hidden moved to a dialog

This commit is contained in:
Stefan Zermatten
2020-11-05 14:27:01 +02:00
parent 7cb65954b5
commit 46385dd9b2
6 changed files with 46 additions and 8 deletions

View File

@@ -1,6 +1,7 @@
<template lang="html"> <template lang="html">
<v-card <v-card
:hover="hasClickListener" :hover="hasClickListener"
:elevation="hovering ? 8 : undefined"
class="toolbar-card" class="toolbar-card"
@click="$emit('click')" @click="$emit('click')"
> >
@@ -11,6 +12,8 @@
:dark="isDark" :dark="isDark"
:light="!isDark" :light="!isDark"
@click="$emit('toolbarclick')" @click="$emit('toolbarclick')"
@mouseover="hoverToolbar(true)"
@mouseleave="hoverToolbar(false)"
> >
<slot name="toolbar" /> <slot name="toolbar" />
</v-toolbar> </v-toolbar>
@@ -31,17 +34,27 @@
}, },
}, },
}, },
data(){ return {
hovering: false,
}},
computed: { computed: {
isDark(){ isDark(){
return isDarkColor(this.color); return isDarkColor(this.color);
}, },
hasClickListener(){ hasClickListener(){
return this.$listeners && !!this.$listeners.click; return this.$listeners && !!this.$listeners.click;
}, },
hasToolbarClickListener(){ hasToolbarClickListener(){
return this.$listeners && !!this.$listeners.toolbarclick; return this.$listeners && !!this.$listeners.toolbarclick;
}, },
} },
methods: {
hoverToolbar(val){
this.hovering = this.$listeners &&
!!this.$listeners.toolbarclick &&
val;
}
}
}; };
</script> </script>

View File

@@ -21,11 +21,17 @@
</v-card> </v-card>
</div> </div>
<div> <div>
<v-card> <toolbar-card
data-id="slot-card"
@toolbarclick="showSlotDialog"
>
<v-toolbar-title slot="toolbar">
Build
</v-toolbar-title>
<v-card-text style="background-color: inherit;"> <v-card-text style="background-color: inherit;">
<slots :creature-id="creatureId" /> <slots :creature-id="creatureId" />
</v-card-text> </v-card-text>
</v-card> </toolbar-card>
</div> </div>
<div> <div>
<v-card class="class-details"> <v-card class="class-details">
@@ -110,12 +116,14 @@ import ColumnLayout from '/imports/ui/components/ColumnLayout.vue';
import NoteCard from '/imports/ui/properties/components/persona/NoteCard.vue'; import NoteCard from '/imports/ui/properties/components/persona/NoteCard.vue';
import getActiveProperties from '/imports/api/creature/getActiveProperties.js'; import getActiveProperties from '/imports/api/creature/getActiveProperties.js';
import Slots from '/imports/ui/creature/slots/Slots.vue'; import Slots from '/imports/ui/creature/slots/Slots.vue';
import ToolbarCard from '/imports/ui/components/ToolbarCard.vue';
export default { export default {
components: { components: {
ColumnLayout, ColumnLayout,
NoteCard, NoteCard,
Slots, Slots,
ToolbarCard,
}, },
props: { props: {
creatureId: { creatureId: {
@@ -194,6 +202,15 @@ export default {
!!this.creature.variables.milestoneLevels.value, !!this.creature.variables.milestoneLevels.value,
}, },
}); });
},
showSlotDialog(){
this.$store.commit('pushDialogStack', {
component: 'slot-details-dialog',
elementId: 'slot-card',
data: {
creatureId: this.creatureId,
},
});
}, },
}, },
}; };

View File

@@ -1,5 +1,8 @@
<template lang="html"> <template lang="html">
<dialog-base> <dialog-base>
<v-toolbar-title slot="toolbar">
Add Experience
</v-toolbar-title>
<experience-form <experience-form
:start-as-milestone="startAsMilestone" :start-as-milestone="startAsMilestone"
:model="model" :model="model"

View File

@@ -1,9 +1,12 @@
<template lang="html"> <template lang="html">
<dialog-base> <dialog-base>
<v-toolbar-title slot="toolbar"> <v-toolbar-title slot="toolbar">
Slots Build
</v-toolbar-title> </v-toolbar-title>
<slots creature-id="creatureId" /> <slots
:creature-id="creatureId"
show-hidden-slots
/>
</dialog-base> </dialog-base>
</template> </template>

View File

@@ -13,6 +13,7 @@ import LibraryNodeDialog from '/imports/ui/library/LibraryNodeDialog.vue';
import MoveLibraryNodeDialog from '/imports/ui/library/MoveLibraryNodeDialog.vue' import MoveLibraryNodeDialog from '/imports/ui/library/MoveLibraryNodeDialog.vue'
import SelectCreaturesDialog from '/imports/ui/tabletop/SelectCreaturesDialog.vue'; import SelectCreaturesDialog from '/imports/ui/tabletop/SelectCreaturesDialog.vue';
import ShareDialog from '/imports/ui/sharing/ShareDialog.vue'; import ShareDialog from '/imports/ui/sharing/ShareDialog.vue';
import SlotDetailsDialog from '/imports/ui/creature/slots/SlotDetailsDialog.vue';
import SlotFillDialog from '/imports/ui/creature/slots/SlotFillDialog.vue'; import SlotFillDialog from '/imports/ui/creature/slots/SlotFillDialog.vue';
import TierTooLowDialog from '/imports/ui/user/TierTooLowDialog.vue'; import TierTooLowDialog from '/imports/ui/user/TierTooLowDialog.vue';
import UsernameDialog from '/imports/ui/user/UsernameDialog.vue'; import UsernameDialog from '/imports/ui/user/UsernameDialog.vue';
@@ -33,6 +34,7 @@ export default {
MoveLibraryNodeDialog, MoveLibraryNodeDialog,
SelectCreaturesDialog, SelectCreaturesDialog,
ShareDialog, ShareDialog,
SlotDetailsDialog,
SlotFillDialog, SlotFillDialog,
TierTooLowDialog, TierTooLowDialog,
UsernameDialog, UsernameDialog,

View File

@@ -2,7 +2,7 @@
<toolbar-card <toolbar-card
:id="model._id" :id="model._id"
:color="model.color" :color="model.color"
@click="$emit('click')" @toolbarclick="$emit('click')"
> >
<template slot="toolbar"> <template slot="toolbar">
<v-toolbar-title> <v-toolbar-title>