From aae3d298c2a74d2f17887555bf7398c3de339b62 Mon Sep 17 00:00:00 2001 From: Florian Eckert Date: Wed, 17 Jan 2018 16:05:25 +0100 Subject: [PATCH] luci-app-mwan3: refactoring warning compilation on the rule config pages Signed-off-by: Florian Eckert --- .../luasrc/model/cbi/mwan/rule.lua | 50 ++++++++++--------- .../luasrc/model/cbi/mwan/ruleconfig.lua | 40 +++------------ 2 files changed, 32 insertions(+), 58 deletions(-) diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua index 97f28bd32..d71cb2bc1 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua @@ -1,40 +1,42 @@ --- ------ extra functions ------ -- +dsp = require "luci.dispatcher" +sys = require "luci.sys" +ut = require "luci.util" -function ruleCheck() -- determine if rules needs a proper protocol configured +function ruleCheck() + local rule_error = {} uci.cursor():foreach("mwan3", "rule", function (section) - local sourcePort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".src_port")) - local destPort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".dest_port")) - if sourcePort ~= "" or destPort ~= "" then -- ports configured - local protocol = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".proto")) - if protocol == "" or protocol == "all" then -- no or improper protocol - error_protocol_list = error_protocol_list .. section[".name"] .. " " + rule_error[section[".name"]] = false + local uci = uci.cursor(nil, "/var/state") + local sourcePort = uci:get("mwan3", section[".name"], "src_port") + local destPort = uci:get("mwan3", section[".name"], "dest_port") + if sourcePort ~= nil or destPort ~= nil then + local protocol = uci:get("mwan3", section[".name"], "proto") + if protocol == nil or protocol == "all" then + rule_error[section[".name"]] = true end end end ) + return rule_error end -function ruleWarn() -- display warning messages at the top of the page - if error_protocol_list ~= " " then - return "" .. translate("WARNING: Some rules have a port configured with no or improper protocol specified! Please configure a specific protocol!") .. "" - else - return "" +function ruleWarn(rule_error) + local warnings = "" + for i, k in pairs(rule_error) do + if rule_error[i] == true then + warnings = warnings .. string.format("%s
", + translatef("WARNING: Rule %s have a port configured with no or improper protocol specified!", i) + ) + end end -end - --- ------ rule configuration ------ -- - -dsp = require "luci.dispatcher" -sys = require "luci.sys" -ut = require "luci.util" - -error_protocol_list = " " -ruleCheck() + return warnings +end m5 = Map("mwan3", translate("MWAN - Rules"), - ruleWarn()) + ruleWarn(ruleCheck()) + ) mwan_rule = m5:section(TypedSection, "rule", nil, translate("Rules specify which traffic will use a particular MWAN policy
" .. diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua index 812d46365..4ff9f1167 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua @@ -1,23 +1,7 @@ --- ------ extra functions ------ -- - -function ruleCheck() -- determine if rule needs a protocol specified - local sourcePort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".src_port")) - local destPort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".dest_port")) - if sourcePort ~= "" or destPort ~= "" then -- ports configured - local protocol = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".proto")) - if protocol == "" or protocol == "all" then -- no or improper protocol - error_protocol = 1 - end - end -end - -function ruleWarn() -- display warning message at the top of the page - if error_protocol == 1 then - return "" .. translate("WARNING: This rule is incorrectly configured with no or improper protocol specified! Please configure a specific protocol!") .. "" - else - return "" - end -end +dsp = require "luci.dispatcher" +sys = require "luci.sys" +ut = require "luci.util" +arg[1] = arg[1] or "" function cbiAddPolicy(field) uci.cursor():foreach("mwan3", "policy", @@ -34,20 +18,8 @@ function cbiAddProtocol(field) end end --- ------ rule configuration ------ -- - -dsp = require "luci.dispatcher" -sys = require "luci.sys" -ut = require "luci.util" -arg[1] = arg[1] or "" - -error_protocol = 0 -ruleCheck() - - -m5 = Map("mwan3", translatef("MWAN Rule Configuration - %s", arg[1]), - ruleWarn()) - m5.redirect = dsp.build_url("admin", "network", "mwan", "rule") +m5 = Map("mwan3", translatef("MWAN Rule Configuration - %s", arg[1])) +m5.redirect = dsp.build_url("admin", "network", "mwan", "rule") mwan_rule = m5:section(NamedSection, arg[1], "rule", "") -- 2.25.1