diff --git a/app/src/modules/content/routes/item.vue b/app/src/modules/content/routes/item.vue
index 735fede214..7d8995019e 100644
--- a/app/src/modules/content/routes/item.vue
+++ b/app/src/modules/content/routes/item.vue
@@ -42,7 +42,7 @@
icon
secondary
exact
- @click="router.back()"
+ @click="navigateBack"
>
@@ -365,6 +365,16 @@ const disabledOptions = computed(() => {
return [];
});
+function navigateBack() {
+ const backState = router.options.history.state.back;
+ if (typeof backState !== 'string' || !backState.startsWith('/login')) {
+ router.back();
+ return;
+ }
+
+ router.push(`/content/${props.collection}`);
+}
+
function useBreadcrumb() {
const breadcrumb = computed(() => [
{
diff --git a/app/src/modules/files/routes/item.vue b/app/src/modules/files/routes/item.vue
index ed88307685..b37e32ce30 100644
--- a/app/src/modules/files/routes/item.vue
+++ b/app/src/modules/files/routes/item.vue
@@ -2,7 +2,7 @@
-
@@ -288,6 +288,20 @@ const fieldsFiltered = computed(() => {
return fields.value.filter((field: Field) => fieldsDenyList.includes(field.field) === false);
});
+function navigateBack() {
+ const backState = router.options.history.state.back;
+ if (typeof backState !== 'string' || !backState.startsWith('/login')) {
+ router.back();
+ return;
+ }
+
+ if (item?.value?.folder) {
+ router.push(`/files/folders/${item.value.folder}`);
+ } else {
+ router.push('/files');
+ }
+}
+
function useBreadcrumb() {
const breadcrumb = computed(() => {
if (!item?.value?.folder) {
diff --git a/app/src/modules/users/routes/item.vue b/app/src/modules/users/routes/item.vue
index 806c4b9c8e..1616c8ef91 100644
--- a/app/src/modules/users/routes/item.vue
+++ b/app/src/modules/users/routes/item.vue
@@ -1,7 +1,7 @@
-
@@ -328,6 +328,7 @@ export default defineComponent({
item,
loading,
isNew,
+ navigateBack,
breadcrumb,
edits,
hasEdits,
@@ -369,6 +370,16 @@ export default defineComponent({
isSavable,
};
+ function navigateBack() {
+ const backState = router.options.history.state.back;
+ if (typeof backState !== 'string' || !backState.startsWith('/login')) {
+ router.back();
+ return;
+ }
+
+ router.push('/users');
+ }
+
function useBreadcrumb() {
const breadcrumb = computed(() => [
{