From af4b4ae85ccea7ba20f12b4113935e8b2ed8837e Mon Sep 17 00:00:00 2001 From: shortcutme Date: Sat, 28 Apr 2018 22:01:12 +0200 Subject: [PATCH] Get new wrapper nonce API command to proper reload iframe content --- src/Ui/UiWebsocket.py | 6 +++++- src/Ui/media/Wrapper.coffee | 12 ++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index 75f3b7dd..4f65ab5e 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -36,7 +36,7 @@ class UiWebsocket(object): self.send_queue = [] # Messages to send to client self.admin_commands = ( "sitePause", "siteResume", "siteDelete", "siteList", "siteSetLimit", - "channelJoinAllsite", "serverUpdate", "serverPortcheck", "serverShutdown", "serverShowdirectory", + "channelJoinAllsite", "serverUpdate", "serverPortcheck", "serverShutdown", "serverShowdirectory", "serverGetWrapperNonce", "certSet", "configSet", "permissionAdd", "permissionRemove" ) self.async_commands = ("fileGet", "fileList", "dirList", "fileNeed") @@ -382,6 +382,10 @@ class UiWebsocket(object): ret = self.formatServerInfo() self.response(to, ret) + # Create a new wrapper nonce that allows to load html file + def actionServerGetWrapperNonce(self, to): + wrapper_nonce = self.request.getWrapperNonce() + self.response(to, wrapper_nonce) def actionAnnouncerInfo(self, to): ret = self.formatAnnouncerInfo(self.site) diff --git a/src/Ui/media/Wrapper.coffee b/src/Ui/media/Wrapper.coffee index 657d1887..1843ae16 100644 --- a/src/Ui/media/Wrapper.coffee +++ b/src/Ui/media/Wrapper.coffee @@ -545,12 +545,16 @@ class Wrapper return false @loading.printLine res @inner_loaded = false # Inner frame not loaded, just a 404 page displayed - if reload - src = $("iframe").attr("src") - $("iframe").attr "src", "" - $("iframe").attr "src", src + if reload then @reloadIframe() return false + reloadIframe: => + src = $("iframe").attr("src") + @ws.cmd "serverGetWrapperNonce", [], (wrapper_nonce) => + src = src.replace(/wrapper_nonce=[A-Za-z0-9]+/, "wrapper_nonce=" + wrapper_nonce) + @log "Reloading iframe using url", src + $("iframe").attr "src", src + log: (args...) -> console.log "[Wrapper]", args...