From 81b8e7345a842dd134a201d42d8d4669cf1debe6 Mon Sep 17 00:00:00 2001 From: Nico Hoffmann Date: Tue, 14 Apr 2026 21:08:58 +0700 Subject: [PATCH] fix: Refresh file view after replacing file Fixes #7956 --- panel/src/components/Views/ModelView.vue | 7 +++++++ panel/src/panel/upload.js | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/panel/src/components/Views/ModelView.vue b/panel/src/components/Views/ModelView.vue index 0addeb9c13..0b8d24c7e0 100644 --- a/panel/src/components/Views/ModelView.vue +++ b/panel/src/components/Views/ModelView.vue @@ -68,6 +68,7 @@ export default { this.$events.on("keydown.left", this.toPrev); this.$events.on("keydown.right", this.toNext); this.$events.on("model.reload", this.$reload); + this.$events.on("model.update", this.onModelUpdate); this.$events.on("view.save", this.onViewSave); }, destroyed() { @@ -76,6 +77,7 @@ export default { this.$events.off("keydown.left", this.toPrev); this.$events.off("keydown.right", this.toNext); this.$events.off("model.reload", this.$reload); + this.$events.off("model.update", this.onModelUpdate); this.$events.off("view.save", this.onViewSave); }, methods: { @@ -111,6 +113,11 @@ export default { language: this.$panel.language.code }); }, + onModelUpdate({ path } = {}) { + if (path === this.api) { + this.$panel.view.refresh(); + } + }, async onSubmit() { try { await this.$panel.content.publish(this.content, { diff --git a/panel/src/panel/upload.js b/panel/src/panel/upload.js index 09db08e643..3512c4be95 100644 --- a/panel/src/panel/upload.js +++ b/panel/src/panel/upload.js @@ -40,7 +40,9 @@ export default (panel) => { input: null, announce() { panel.notification.success({ context: "view" }); - panel.events.emit("model.update"); + panel.events.emit("model.update", { + path: this.replacing?.link + }); }, /** * Called when dialog's cancel button was clicked