diff --git a/resources/js/views/dashboard/ArticleEdit.vue b/resources/js/views/dashboard/ArticleEdit.vue index f023e36..49f3449 100644 --- a/resources/js/views/dashboard/ArticleEdit.vue +++ b/resources/js/views/dashboard/ArticleEdit.vue @@ -241,7 +241,13 @@ const handleSubmit = async () => { type: "success", }); - router.push({ name: "dashboard-article-list" }); + const urlParams = new URLSearchParams(window.location.search); + const returnUrl = urlParams.get("return"); + if (returnUrl) { + router.push(decodeURIComponent(returnUrl)); + } else { + router.push({ name: "dashboard-article-list" }); + } } catch (error) { form.apiErrors(error); } diff --git a/resources/js/views/dashboard/ArticleList.vue b/resources/js/views/dashboard/ArticleList.vue index c101619..592dc09 100644 --- a/resources/js/views/dashboard/ArticleList.vue +++ b/resources/js/views/dashboard/ArticleList.vue @@ -192,7 +192,15 @@ const handleLoad = async () => { * @param {Artile} item The article item. */ const handleEdit = (item: Article) => { - router.push({ name: "dashboard-article-edit", params: { id: item.id } }); + router.push({ + name: "dashboard-article-edit", + params: { id: item.id }, + query: { + return: encodeURIComponent( + window.location.pathname + window.location.search + ), + }, + }); }; /** diff --git a/resources/js/views/dashboard/EventEdit.vue b/resources/js/views/dashboard/EventEdit.vue index 5f89541..ffb7cda 100644 --- a/resources/js/views/dashboard/EventEdit.vue +++ b/resources/js/views/dashboard/EventEdit.vue @@ -389,7 +389,13 @@ const handleSubmit = async () => { type: "success", }); - router.push({ name: "dashboard-event-list" }); + const urlParams = new URLSearchParams(window.location.search); + const returnUrl = urlParams.get("return"); + if (returnUrl) { + router.push(decodeURIComponent(returnUrl)); + } else { + router.push({ name: "dashboard-event-list" }); + } } catch (error) { useToastStore().addToast({ title: "Server error", diff --git a/resources/js/views/dashboard/EventList.vue b/resources/js/views/dashboard/EventList.vue index cd129fa..2c14f3c 100644 --- a/resources/js/views/dashboard/EventList.vue +++ b/resources/js/views/dashboard/EventList.vue @@ -262,7 +262,15 @@ const handleDuplicate = async (item: Event): Promise => { * @param {Event} item The event item. */ const handleEdit = (item: Event) => { - router.push({ name: "dashboard-event-edit", params: { id: item.id } }); + router.push({ + name: "dashboard-event-edit", + params: { id: item.id }, + query: { + return: encodeURIComponent( + window.location.pathname + window.location.search + ), + }, + }); }; /** diff --git a/resources/js/views/dashboard/MediaEdit.vue b/resources/js/views/dashboard/MediaEdit.vue index eb4bc39..8a5b39d 100644 --- a/resources/js/views/dashboard/MediaEdit.vue +++ b/resources/js/views/dashboard/MediaEdit.vue @@ -237,7 +237,13 @@ const handleSubmit = async () => { type: "success", }); - router.push({ name: "dashboard-media-list" }); + const urlParams = new URLSearchParams(window.location.search); + const returnUrl = urlParams.get("return"); + if (returnUrl) { + router.push(decodeURIComponent(returnUrl)); + } else { + router.push({ name: "dashboard-media-list" }); + } } catch (error) { useToastStore().addToast({ title: "Server error", diff --git a/resources/js/views/dashboard/MediaList.vue b/resources/js/views/dashboard/MediaList.vue index b24286b..0eeb31d 100644 --- a/resources/js/views/dashboard/MediaList.vue +++ b/resources/js/views/dashboard/MediaList.vue @@ -202,7 +202,15 @@ const handleLoad = async () => { * @param {Media} item The media item. */ const handleEdit = (item: Media) => { - router.push({ name: "dashboard-media-edit", params: { id: item.id } }); + router.push({ + name: "dashboard-media-edit", + params: { id: item.id }, + query: { + return: encodeURIComponent( + window.location.pathname + window.location.search + ), + }, + }); }; /** diff --git a/resources/js/views/dashboard/ShortlinkEdit.vue b/resources/js/views/dashboard/ShortlinkEdit.vue index fbf3e34..01ad030 100644 --- a/resources/js/views/dashboard/ShortlinkEdit.vue +++ b/resources/js/views/dashboard/ShortlinkEdit.vue @@ -154,7 +154,13 @@ const handleSubmit = async () => { }); } - router.push({ name: "dashboard" }); + const urlParams = new URLSearchParams(window.location.search); + const returnUrl = urlParams.get("return"); + if (returnUrl) { + router.push(decodeURIComponent(returnUrl)); + } else { + router.push({ name: "dashboard-shortlink-list" }); + } } catch (err) { form.apiErrors(err); } finally { diff --git a/resources/js/views/dashboard/ShortlinkList.vue b/resources/js/views/dashboard/ShortlinkList.vue index ef3651b..efb46b8 100644 --- a/resources/js/views/dashboard/ShortlinkList.vue +++ b/resources/js/views/dashboard/ShortlinkList.vue @@ -163,6 +163,11 @@ const handleEdit = (shortlink: Shortlink) => { router.push({ name: "dashboard-shortlink-edit", params: { id: shortlink.id }, + query: { + return: encodeURIComponent( + window.location.pathname + window.location.search + ), + }, }); }; diff --git a/resources/js/views/dashboard/UserEdit.vue b/resources/js/views/dashboard/UserEdit.vue index 3523765..92ac0bc 100644 --- a/resources/js/views/dashboard/UserEdit.vue +++ b/resources/js/views/dashboard/UserEdit.vue @@ -228,7 +228,13 @@ const handleSubmit = async () => { }); } - router.push({ name: "dashboard" }); + const urlParams = new URLSearchParams(window.location.search); + const returnUrl = urlParams.get("return"); + if (returnUrl) { + router.push(decodeURIComponent(returnUrl)); + } else { + router.push({ name: "dashboard-user-list" }); + } } catch (err) { form.apiErrors(err); } finally { diff --git a/resources/js/views/dashboard/UserList.vue b/resources/js/views/dashboard/UserList.vue index be5f4c0..452211c 100644 --- a/resources/js/views/dashboard/UserList.vue +++ b/resources/js/views/dashboard/UserList.vue @@ -168,7 +168,15 @@ const handleLoad = async () => { }; const handleEdit = (user: User) => { - router.push({ name: "dashboard-user-edit", params: { id: user.id } }); + router.push({ + name: "dashboard-user-edit", + params: { id: user.id }, + query: { + return: encodeURIComponent( + window.location.pathname + window.location.search + ), + }, + }); }; const handleDelete = async (user: User) => {