luci-app-dockerman: cbi/networks refactoring

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
This commit is contained in:
Florian Eckert 2020-07-23 14:12:51 +02:00
parent 7c784349b9
commit 630a66163a

View file

@ -3,8 +3,6 @@ LuCI - Lua Configuration Interface
Copyright 2019 lisaac <https://github.com/lisaac/luci-app-dockerman> Copyright 2019 lisaac <https://github.com/lisaac/luci-app-dockerman>
]]-- ]]--
require "luci.util"
local uci = luci.model.uci.cursor()
local docker = require "luci.model.docker" local docker = require "luci.model.docker"
local m, s, o local m, s, o
@ -53,72 +51,75 @@ m = SimpleForm("docker", translate("Docker"))
m.submit=false m.submit=false
m.reset=false m.reset=false
network_table = m:section(Table, network_list, translate("Networks")) s = m:section(Table, network_list, translate("Networks"))
network_table.nodescr=true s.nodescr=true
network_selecter = network_table:option(Flag, "_selected","") o = s:option(Flag, "_selected","")
network_selecter.template = "dockerman/cbi/xfvalue" o.template = "dockerman/cbi/xfvalue"
network_id = network_table:option(DummyValue, "_id", translate("ID")) o.disabled = 0
network_selecter.disabled = 0 o.enabled = 1
network_selecter.enabled = 1 o.default = 0
network_selecter.default = 0 o.render = function(self, section, scope)
network_selecter.render = function(self, section, scope)
self.disable = 0 self.disable = 0
if network_list[section]["_name"] == "bridge" or network_list[section]["_name"] == "none" or network_list[section]["_name"] == "host" then if network_list[section]["_name"] == "bridge" or network_list[section]["_name"] == "none" or network_list[section]["_name"] == "host" then
self.disable = 1 self.disable = 1
end end
Flag.render(self, section, scope) Flag.render(self, section, scope)
end end
o.write = function(self, section, value)
network_name = network_table:option(DummyValue, "_name", translate("Network Name"))
network_driver = network_table:option(DummyValue, "_driver", translate("Driver"))
network_interface = network_table:option(DummyValue, "_interface", translate("Parent Interface"))
network_subnet = network_table:option(DummyValue, "_subnet", translate("Subnet"))
network_gateway = network_table:option(DummyValue, "_gateway", translate("Gateway"))
network_selecter.write = function(self, section, value)
network_list[section]._selected = value network_list[section]._selected = value
end end
docker_status = m:section(SimpleSection) o = s:option(DummyValue, "_id", translate("ID"))
docker_status.template = "dockerman/apply_widget"
docker_status.err=docker:read_status() o = s:option(DummyValue, "_name", translate("Network Name"))
docker_status.err=docker_status.err and docker_status.err:gsub("\n","<br>"):gsub(" ","&nbsp;")
if docker_status.err then o = s:option(DummyValue, "_driver", translate("Driver"))
o = s:option(DummyValue, "_interface", translate("Parent Interface"))
o = s:option(DummyValue, "_subnet", translate("Subnet"))
o = s:option(DummyValue, "_gateway", translate("Gateway"))
s = m:section(SimpleSection)
s.template = "dockerman/apply_widget"
s.err = docker:read_status()
s.err = s.err and s.err:gsub("\n","<br>"):gsub(" ","&nbsp;")
if s.err then
docker:clear_status() docker:clear_status()
end end
action = m:section(Table,{{}}) s = m:section(Table,{{}})
action.notitle=true s.notitle=true
action.rowcolors=false s.rowcolors=false
action.template="cbi/nullsection" s.template="cbi/nullsection"
btnnew=action:option(Button, "_new") o = s:option(Button, "_new")
btnnew.inputtitle= translate("New") o.inputtitle= translate("New")
btnnew.template = "dockerman/cbi/inlinebutton" o.template = "dockerman/cbi/inlinebutton"
btnnew.notitle=true o.notitle=true
btnnew.inputstyle = "add" o.inputstyle = "add"
btnnew.forcewrite = true o.forcewrite = true
btnnew.write = function(self, section) o.write = function(self, section)
uci.http.redirect(luci.dispatcher.build_url("admin/docker/newnetwork")) luci.http.redirect(luci.dispatcher.build_url("admin/docker/newnetwork"))
end end
btnremove = action:option(Button, "_remove") o = s:option(Button, "_remove")
btnremove.inputtitle= translate("Remove") o.inputtitle= translate("Remove")
btnremove.template = "dockerman/cbi/inlinebutton" o.template = "dockerman/cbi/inlinebutton"
btnremove.inputstyle = "remove" o.inputstyle = "remove"
btnremove.forcewrite = true o.forcewrite = true
btnremove.write = function(self, section) o.write = function(self, section)
local network_selected = {} local network_selected = {}
local network_name_selected = {} local network_name_selected = {}
local network_driver_selected = {} local network_driver_selected = {}
local network_table_sids = network_table:cfgsections() for k in pairs(network_list) do
for _, network_table_sid in ipairs(network_table_sids) do if network_list[k]._selected == 1 then
if network_list[network_table_sid]._selected == 1 then network_selected[#network_selected + 1] = network_list[k]._id
network_selected[#network_selected+1] = network_list[network_table_sid]._id network_name_selected[#network_name_selected + 1] = network_list[k]._name
network_name_selected[#network_name_selected+1] = network_list[network_table_sid]._name network_driver_selected[#network_driver_selected + 1] = network_list[k]._driver
network_driver_selected[#network_driver_selected+1] = network_list[network_table_sid]._driver
end end
end end