luci-app-mwan3: refactoring member config pages
[project/luci.git] / applications / luci-app-mwan3 / luasrc / model / cbi / mwan / member.lua
1 ds = require "luci.dispatcher"
2
3
4 m5 = Map("mwan3", translate("MWAN - Members"))
5
6 mwan_member = m5:section(TypedSection, "member", nil,
7         translate("Members are profiles attaching a metric and weight to an MWAN interface<br />" ..
8         "Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />" ..
9         "Members may not share the same name as configured interfaces, policies or rules"))
10         mwan_member.addremove = true
11         mwan_member.dynamic = false
12         mwan_member.sectionhead = translate("Member")
13         mwan_member.sortable = true
14         mwan_member.template = "cbi/tblsection"
15         mwan_member.extedit = ds.build_url("admin", "network", "mwan", "member", "%s")
16         function mwan_member.create(self, section)
17                 TypedSection.create(self, section)
18                 m5.uci:save("mwan3")
19                 luci.http.redirect(ds.build_url("admin", "network", "mwan", "member", section))
20         end
21
22 interface = mwan_member:option(DummyValue, "interface", translate("Interface"))
23         interface.rawhtml = true
24         function interface.cfgvalue(self, s)
25                 return self.map:get(s, "interface") or "&#8212;"
26         end
27
28 metric = mwan_member:option(DummyValue, "metric", translate("Metric"))
29         metric.rawhtml = true
30         function metric.cfgvalue(self, s)
31                 return self.map:get(s, "metric") or "1"
32         end
33
34 weight = mwan_member:option(DummyValue, "weight", translate("Weight"))
35         weight.rawhtml = true
36         function weight.cfgvalue(self, s)
37                 return self.map:get(s, "weight") or "1"
38         end
39
40 return m5