diff --git a/app/imports/ui/components/propertyToolbar.vue b/app/imports/ui/components/propertyToolbar.vue
index ed25bcbb..aad13513 100644
--- a/app/imports/ui/components/propertyToolbar.vue
+++ b/app/imports/ui/components/propertyToolbar.vue
@@ -5,6 +5,12 @@
:light="!isDark"
:flat="flat"
>
+
+ arrow_back
+
diff --git a/app/imports/ui/creature/creatureProperties/Breadcrumbs.vue b/app/imports/ui/creature/creatureProperties/Breadcrumbs.vue
new file mode 100644
index 00000000..8eef5676
--- /dev/null
+++ b/app/imports/ui/creature/creatureProperties/Breadcrumbs.vue
@@ -0,0 +1,78 @@
+
+
+
+
+ chevron_right
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue b/app/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue
index f793b71e..2948f024 100644
--- a/app/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue
+++ b/app/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue
@@ -13,6 +13,9 @@
/>
+
+
+
@@ -93,6 +96,7 @@ import equipItem from '/imports/api/creature/creatureProperties/methods/equipIte
import { snackbar } from '/imports/ui/components/snackbars/SnackbarQueue.js';
import { getHighestOrder } from '/imports/api/parenting/order.js';
import insertProperty from '/imports/api/creature/creatureProperties/methods/insertProperty.js';
+import Breadcrumbs from '/imports/ui/creature/creatureProperties/Breadcrumbs.vue';
let formIndex = {};
for (let key in propertyFormIndex){
@@ -112,6 +116,7 @@ export default {
DialogBase,
PropertyToolbar,
CreaturePropertiesTree,
+ Breadcrumbs,
},
props: {
_id: String,
diff --git a/app/imports/ui/dialogStack/dialogStackStore.js b/app/imports/ui/dialogStack/dialogStackStore.js
index 329acbf3..049a03a1 100644
--- a/app/imports/ui/dialogStack/dialogStackStore.js
+++ b/app/imports/ui/dialogStack/dialogStackStore.js
@@ -1,3 +1,5 @@
+import Vue from 'vue';
+
let dialogStack = {};
dialogStack.dialogs = [];
@@ -25,7 +27,7 @@ const dialogStackStore = {
if (!state.dialogs.length){
throw new Meteor.Error('can\'t replace dialog if no dialogs are open');
}
- state.dialogs.$set(0, {
+ Vue.set(state.dialogs, state.dialogs.length - 1, {
_id,
component,
data,
@@ -57,8 +59,24 @@ const dialogStackStore = {
} else {
context.commit('popDialogStackMutation', result);
}
- }
- }
+ },
+ popDialogStacks(context, quantity){
+ if (quantity <= 0) return;
+ let iterationsLeft = quantity;
+ let intervalId = setInterval(() => {
+ if (history && history.state && history.state.openDialogs){
+ context.commit('setCurrentResult');
+ history.back();
+ } else {
+ context.commit('popDialogStackMutation');
+ }
+ iterationsLeft -= 1;
+ if (iterationsLeft === 0){
+ clearInterval(intervalId);
+ }
+ }, 150);
+ },
+ },
};
export default dialogStackStore;