diff --git a/app/imports/ui/creature/character/CreatureRootDialog.vue b/app/imports/ui/creature/character/CreatureRootDialog.vue
new file mode 100644
index 00000000..9d9ecffe
--- /dev/null
+++ b/app/imports/ui/creature/character/CreatureRootDialog.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+ mdi-plus
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+
+
+
diff --git a/app/imports/ui/creature/creatureProperties/Breadcrumbs.vue b/app/imports/ui/creature/creatureProperties/Breadcrumbs.vue
index 2cd94af0..abc790c6 100644
--- a/app/imports/ui/creature/creatureProperties/Breadcrumbs.vue
+++ b/app/imports/ui/creature/creatureProperties/Breadcrumbs.vue
@@ -3,9 +3,16 @@
class="breadcrumbs layout align-center wrap"
:class="{'no-icons': noIcons}"
>
+
+
+ mdi-account
+
+
mdi-chevron-right
@@ -60,7 +67,7 @@
},
methods: {
click(id){
- let store = this.$store;
+ const store = this.$store;
// Check if there is a dialog open for this doc already
let dialogFound;
let dialogsToPop = 0;
@@ -84,6 +91,31 @@
});
}
},
+ clickRootCreature() {
+ const store = this.$store;
+ // Check if there is a dialog open for this doc already
+ let dialogFound;
+ let dialogsToPop = 0;
+ store.state.dialogStack.dialogs.forEach(dialog => {
+ if (dialog.component === 'creature-root-dialog'){
+ dialogFound = true;
+ dialogsToPop = 0;
+ } else {
+ dialogsToPop += 1;
+ }
+ });
+ if (dialogFound){
+ // Pop dialogs until we get to it
+ store.dispatch('popDialogStacks', dialogsToPop);
+ } else {
+ // Otherwise open it as a new dialog
+ store.commit('pushDialogStack', {
+ component: 'creature-root-dialog',
+ elementId: 'breadcrumb-root',
+ data: {_id: this.model.ancestors[0].id},
+ });
+ }
+ }
}
}
diff --git a/app/imports/ui/dialogStack/DialogComponentIndex.js b/app/imports/ui/dialogStack/DialogComponentIndex.js
index cd9e7322..c8079709 100644
--- a/app/imports/ui/dialogStack/DialogComponentIndex.js
+++ b/app/imports/ui/dialogStack/DialogComponentIndex.js
@@ -6,6 +6,7 @@ const CreatureFormDialog = () => import('/imports/ui/creature/CreatureFormDialog
const CreaturePropertyCreationDialog = () => import('/imports/ui/creature/creatureProperties/CreaturePropertyCreationDialog.vue');
const CreaturePropertyDialog = () => import('/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue');
const CreaturePropertyFromLibraryDialog = () => import('/imports/ui/creature/creatureProperties/CreaturePropertyFromLibraryDialog.vue');
+const CreatureRootDialog = () => import('/imports/ui/creature/character/CreatureRootDialog.vue');
const DeleteConfirmationDialog = () => import('/imports/ui/dialogStack/DeleteConfirmationDialog.vue');
const DeleteUserAccountDialog = () => import('/imports/ui/user/DeleteUserAccountDialog.vue');
const ExperienceInsertDialog = () => import( '/imports/ui/creature/experiences/ExperienceInsertDialog.vue');
@@ -36,6 +37,7 @@ export default {
CreaturePropertyCreationDialog,
CreaturePropertyDialog,
CreaturePropertyFromLibraryDialog,
+ CreatureRootDialog,
DeleteConfirmationDialog,
DeleteUserAccountDialog,
ExperienceInsertDialog,