diff options
author | Dirk Brenken <dev@brenken.org> | 2017-07-31 23:07:11 +0200 |
---|---|---|
committer | Dirk Brenken <dev@brenken.org> | 2017-07-31 23:07:11 +0200 |
commit | 3909cf79dcee55c90dc3dd50af619fbb63290b65 (patch) | |
tree | ef48d1e1784669eb8b88a77e835f8acb8fd20e36 /applications/luci-app-travelmate/luasrc/model/cbi/travelmate | |
parent | 4142839e0d3196cf74fdeee80de5e01d84ffb861 (diff) |
luci-app-travelmate: rework wireless station re-ordering
* rework wireless station re-ordering code, now complete uci index
based, therefore no longer tied to a definite order of wifi-iface
sections
Signed-off-by: Dirk Brenken <dev@brenken.org>
Diffstat (limited to 'applications/luci-app-travelmate/luasrc/model/cbi/travelmate')
-rw-r--r-- | applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua index 5734841030..d53e1f55e5 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua @@ -1,22 +1,51 @@ -- Copyright 2017 Dirk Brenken (dev@brenken.org) -- This is free software, licensed under the Apache License, Version 2.0 -local uci = require("luci.model.uci").cursor() local http = require("luci.http") local cfg = http.formvalue("cfg") -local pos = http.formvalue("pos") local dir = http.formvalue("dir") +local uci = require("luci.model.uci").cursor() +local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" if cfg ~= nil then + local iface = "" + local section = "" + local idx = "" + local idx_change = "" if dir == "up" then - pos = pos - 1 - uci:reorder("wireless", cfg, pos) + uci:foreach("wireless", "wifi-iface", function(s) + iface = s.network + if iface == trmiface then + section = s['.name'] + if cfg == section then + idx = s['.index'] + else + idx_change = s['.index'] + end + if idx ~= "" and idx_change ~= "" and idx_change < idx then + uci:reorder("wireless", cfg, idx_change) + idx = "" + end + end + end) elseif dir == "down" then - pos = pos + 1 - uci:reorder("wireless", cfg, pos) + uci:foreach("wireless", "wifi-iface", function(s) + iface = s.network + if iface == trmiface then + section = s['.name'] + if cfg == section then + idx = s['.index'] + else + idx_change = s['.index'] + end + if idx ~= "" and idx_change ~= "" and idx_change > idx then + uci:reorder("wireless", cfg, idx_change) + idx = "" + end + end + end) end uci:save("wireless") uci:commit("wireless") end - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) |