summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-travelmate/luasrc/model/cbi/travelmate
diff options
context:
space:
mode:
authorDirk Brenken <dev@brenken.org>2017-07-31 23:07:11 +0200
committerDirk Brenken <dev@brenken.org>2017-07-31 23:07:11 +0200
commit3909cf79dcee55c90dc3dd50af619fbb63290b65 (patch)
treeef48d1e1784669eb8b88a77e835f8acb8fd20e36 /applications/luci-app-travelmate/luasrc/model/cbi/travelmate
parent4142839e0d3196cf74fdeee80de5e01d84ffb861 (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.lua43
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"))