summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2018-05-03 08:22:16 +0200
committerJo-Philipp Wich <jo@mein.io>2018-05-03 08:22:55 +0200
commit52cf265c9d12537d5f37043350328d30ca11bab4 (patch)
tree07e14d99aab2debb34b20aa633026c57600b0b30
parent3f517121532e8f7e1987e491fe42cdb43cacc3a7 (diff)
luci-base: support hiding the "Back to Overview" button in cbi maps
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua21
-rw-r--r--modules/luci-base/luasrc/view/cbi/footer.htm2
2 files changed, 13 insertions, 10 deletions
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
index 7b6b9658ca..e2f4e3f002 100644
--- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
@@ -19,8 +19,12 @@ m = Map("travelmate", translate("Travelmate"),
.. "<a href=\"%s\" target=\"_blank\">"
.. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md"))
+-- We might modify these configs too:
+m:chain("network")
+m:chain("firewall")
+
function m.on_after_commit(self)
- luci.sys.call("env -i /etc/init.d/travelmate restart >/dev/null 2>&1")
+ uci:apply(true)
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
end
@@ -42,25 +46,24 @@ if uplink == "" then
btn.disabled = false
function btn.write(self, section)
+ -- Do uci changes. Note that we must not commit here as the rollback handler
+ -- needs to see "unsaved changes" in order to roll them back.
local iface = o:formvalue(section)
if iface then
uci:set("travelmate", section, "trm_iface", iface)
- uci:save("travelmate")
- uci:commit("travelmate")
local net = nw:add_network(iface, { proto = "dhcp" })
if net then
- nw:save("network")
- nw:commit("network")
local zone = fw:get_zone_by_network("wan")
if zone then
zone:add_network(iface)
- fw:save("firewall")
- fw:commit("firewall")
end
end
- luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
end
- luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
+
+ -- Since we're prematurely terminating the cbi logic flow here and since we trigger
+ -- our modifications in a button write callback and not via cbi.apply, we do need to
+ -- tell cbi to trigger apply/rollback.
+ m.flow.autoapply = true
end
return m
end
diff --git a/modules/luci-base/luasrc/view/cbi/footer.htm b/modules/luci-base/luasrc/view/cbi/footer.htm
index 4d332fd07a..e6acfb0697 100644
--- a/modules/luci-base/luasrc/view/cbi/footer.htm
+++ b/modules/luci-base/luasrc/view/cbi/footer.htm
@@ -1,6 +1,6 @@
<%- if pageaction then -%>
<div class="cbi-page-actions">
- <% if redirect then %>
+ <% if redirect and not flow.hidebackbtn then %>
<div style="float:left">
<input class="cbi-button cbi-button-link" type="button" value="<%:Back to Overview%>" onclick="location.href='<%=pcdata(redirect)%>'" />
</div>