<h2><%:a_s_flash%></h2>
<p><%:a_s_flash_upgrade1%></p>
<br />
-<% if sysupgrade and not ret then %>
-<form method="post" action="<%=luci.http.getenv("REQUEST_URI")%>" enctype="multipart/form-data">
- <div class="cbi-section-node">
- <div class="cbi-value clear">
- <div class="cbi-value-title left"><%:a_s_flash_fwimage%></div>
- <div class="cbi-value-field"><input type="file" size="30" name="image" /></div>
- </div>
+<% if next(blocks) and not next(flash) then %>
+<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
+ <div class="left"><%:a_s_flash_fwimage%>:</div>
+ <div>
+ <% for name, v in pairs(blocks) do %>
+ <%=name%>: <input type="file" size="30" name="<%=name%>" /><br />
+ <% end %>
<br />
- <div class="cbi-value clear">
- <input type="checkbox" name="keepcfg" value="1" checked="checked" />
- <span class="bold"><%:a_s_flash_keepcfg%></span>
- </div>
- <br />
- <div>
- <input type="submit" value="<%:a_s_flash_fwupgrade%>" />
- </div>
+ <% if keep_avail then -%>
+ <input type="checkbox" name="keepcfg" value="1" checked="checked" />
+ <span class="bold"><%:a_s_flash_keepcfg%></span>
+ <% end -%>
+ </div>
+ <div>
+ <input type="submit" value="<%:a_s_flash_fwupgrade%>" />
</div>
</form>
-<% elseif ret then %>
- <% if ret == 0 then %>
-<div class="ok"><%:a_s_flash_flashed%></div>
- <% else %>
-<div class="error"><%:a_s_flash_flasherr%>! (<%:code%> <%=ret%>)</div>
+<% elseif next(flash) then %>
+ <p><%:a_s_flash_received%></p>
+
+ <% reboot.exec = false
+ for name, func in pairs(flash) do %>
+ <%:a_s_flash_inprogress%> <%=name%>...
+ <%=string.rep(" ", 2048)%>
+ <%
+ local stat, code = func()
+ reboot.exec = reboot.exec or stat
+ if stat and code then %>
+ <%:a_s_flash_flashed%><br />
+ <% else %>
+ <%:a_s_flash_flasherr%>! (<%:code%> <%=code%>)<br />
+ <% end %>
<% end %>
<% else %>
<div class="error"><%:a_s_flash_notimplemented%></div>