From 9ce58c0339f2b570c049c7bee04af66c3d695a39 Mon Sep 17 00:00:00 2001
From: Steven Barth <steven@midlink.org>
Date: Sat, 6 Sep 2008 15:15:38 +0000
Subject: [PATCH] Made flashing more responsive as well

---
 i18n/english/luasrc/i18n/admin-core.en.lua              | 2 ++
 i18n/english/luasrc/i18n/admin-core.en.xml              | 2 ++
 i18n/german/luasrc/i18n/admin-core.de.lua               | 2 ++
 i18n/german/luasrc/i18n/admin-core.de.xml               | 2 ++
 modules/admin-full/luasrc/controller/admin/system.lua   | 6 ++++--
 modules/admin-full/luasrc/view/admin_system/upgrade.htm | 5 ++++-
 6 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/i18n/english/luasrc/i18n/admin-core.en.lua b/i18n/english/luasrc/i18n/admin-core.en.lua
index 44613f236..127904986 100644
--- a/i18n/english/luasrc/i18n/admin-core.en.lua
+++ b/i18n/english/luasrc/i18n/admin-core.en.lua
@@ -69,6 +69,8 @@ a_s_fstab_swap1 = 'If your physical memory is insufficient unused data can be te
 a_s_flash_flashed = 'Firmware successfully flashed. Rebooting device...'
 a_s_flash_flasherr = 'Failed to flash'
 a_s_flash_fwimage = 'Firmwareimage'
+a_s_flash_received = 'Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!'
+a_s_flash_inprogress = 'Writing firmware...'
 a_s_flash_fwupgrade = 'Flash Firmware'
 a_s_flash_keepcfg = 'Keep configuration files'
 a_s_flash_notimplemented = 'Sorry, this function is not (yet) available for your platform.'
diff --git a/i18n/english/luasrc/i18n/admin-core.en.xml b/i18n/english/luasrc/i18n/admin-core.en.xml
index ec78c773a..8a8d21f6a 100644
--- a/i18n/english/luasrc/i18n/admin-core.en.xml
+++ b/i18n/english/luasrc/i18n/admin-core.en.xml
@@ -73,6 +73,8 @@
 <i18n:msg xml:id="a_s_flash_flashed">Firmware successfully flashed. Rebooting device...</i18n:msg>
 <i18n:msg xml:id="a_s_flash_flasherr">Failed to flash</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
+<i18n:msg xml:id="a_s_flash_received">Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!</i18n:msg>
+<i18n:msg xml:id="a_s_flash_inprogress">Writing firmware...</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwupgrade">Flash Firmware</i18n:msg>
 <i18n:msg xml:id="a_s_flash_keepcfg">Keep configuration files</i18n:msg>
 <i18n:msg xml:id="a_s_flash_notimplemented">Sorry, this function is not (yet) available for your platform.</i18n:msg>
diff --git a/i18n/german/luasrc/i18n/admin-core.de.lua b/i18n/german/luasrc/i18n/admin-core.de.lua
index 224d74210..509c49604 100644
--- a/i18n/german/luasrc/i18n/admin-core.de.lua
+++ b/i18n/german/luasrc/i18n/admin-core.de.lua
@@ -39,6 +39,8 @@ a_s_flash = 'Upgrade'
 a_s_flash_flashed = 'Flashvorgang erfolgreich. Router startet neu...'
 a_s_flash_flasherr = 'Flashvorgang fehlgeschlagen'
 a_s_flash_fwimage = 'Firmwareimage'
+a_s_flash_received = 'Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!'
+a_s_flash_inprogress = 'Schreibe Firmware...'
 a_s_flash_fwupgrade = 'Firmware aktualisieren'
 a_s_flash_keepcfg = 'Konfigurationsdateien übernehmen'
 a_s_flash_notimplemented = 'Diese Funktion steht leider (noch) nicht zur Verfügung.'
diff --git a/i18n/german/luasrc/i18n/admin-core.de.xml b/i18n/german/luasrc/i18n/admin-core.de.xml
index 7e1269580..48f949371 100644
--- a/i18n/german/luasrc/i18n/admin-core.de.xml
+++ b/i18n/german/luasrc/i18n/admin-core.de.xml
@@ -43,6 +43,8 @@
 <i18n:msg xml:id="a_s_flash_flashed">Flashvorgang erfolgreich. Router startet neu...</i18n:msg>
 <i18n:msg xml:id="a_s_flash_flasherr">Flashvorgang fehlgeschlagen</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
+<i18n:msg xml:id="a_s_flash_received">Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!</i18n:msg>
+<i18n:msg xml:id="a_s_flash_inprogress">Schreibe Firmware...</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwupgrade">Firmware aktualisieren</i18n:msg>
 <i18n:msg xml:id="a_s_flash_keepcfg">Konfigurationsdateien übernehmen</i18n:msg>
 <i18n:msg xml:id="a_s_flash_notimplemented">Diese Funktion steht leider (noch) nicht zur Verfügung.</i18n:msg>
diff --git a/modules/admin-full/luasrc/controller/admin/system.lua b/modules/admin-full/luasrc/controller/admin/system.lua
index 6cf951a15..bbe202d9d 100644
--- a/modules/admin-full/luasrc/controller/admin/system.lua
+++ b/modules/admin-full/luasrc/controller/admin/system.lua
@@ -182,7 +182,7 @@ end
 function action_upgrade()
 	require("luci.model.uci")
 
-	local ret  = nil
+	local ret
 	local plat = luci.fs.mtime("/lib/upgrade/platform.sh")
 	local tmpfile = "/tmp/firmware.img"
 	local broadcom = os.execute('grep brcm_ /lib/upgrade/platform.sh >/dev/null 2>&1') == 0
@@ -208,7 +208,9 @@ function action_upgrade()
 	local keepcfg = keep_avail and luci.http.formvalue("keepcfg")
 
 	if plat and fname then
-		ret = luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
+		ret = function()
+			return luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
+		end
 	end
 
 	luci.template.render("admin_system/upgrade", {sysupgrade=plat, ret=ret, keep_avail=keep_avail})
diff --git a/modules/admin-full/luasrc/view/admin_system/upgrade.htm b/modules/admin-full/luasrc/view/admin_system/upgrade.htm
index e0fbb9332..03cd555c7 100644
--- a/modules/admin-full/luasrc/view/admin_system/upgrade.htm
+++ b/modules/admin-full/luasrc/view/admin_system/upgrade.htm
@@ -34,7 +34,10 @@ $Id$
 	</div>
 </form>
 <% elseif ret then %>
-	<% if ret == 0 then %>
+	<p><%:a_s_flash_received%></p>
+	<p><%:a_s_flash_inprogress%></p>
+	<% local ret = ret() 
+	if ret == 0 then %>
 <div class="ok"><%:a_s_flash_flashed%></div>
 	<% else %>
 <div class="error"><%:a_s_flash_flasherr%>! (<%:code%> <%=ret%>)</div>	
-- 
2.25.1