luci-app-ddns: rollup to 2.3.0 to reflect changes on ddns-scripts
[project/luci.git] / applications / luci-app-ddns / luasrc / model / cbi / ddns / global.lua
index 25d09b7..23ce4f1 100644 (file)
@@ -5,18 +5,14 @@ local NX   = require "nixio"
 local NXFS = require "nixio.fs"
 local DISP = require "luci.dispatcher"
 local SYS  = require "luci.sys"
+local CTRL = require "luci.controller.ddns"    -- this application's controller
 local DDNS = require "luci.tools.ddns"         -- ddns multiused functions
 
 -- cbi-map definition -- #######################################################
 local m = Map("ddns")
-
-m.title = [[<a href="]] .. DISP.build_url("admin", "services", "ddns") .. [[">]] 
-       .. translate("Dynamic DNS") .. [[</a>]]
-
-m.description = translate("Dynamic DNS allows that your router can be reached with " ..
-                       "a fixed hostname while having a dynamically changing IP address.")
-
-m.redirect = DISP.build_url("admin", "services", "ddns")
+m.title                = CTRL.app_title_back()
+m.description  = CTRL.app_description()
+m.redirect     = DISP.build_url("admin", "services", "ddns")
 
 function m.commit_handler(self)
        if self.changed then    -- changes ?
@@ -52,17 +48,7 @@ ali.description = translate("Non-public and by default blocked IP's") .. ":"
                .. "0/8, 10/8, 100.64/10, 127/8, 169.254/16, 172.16/12, 192.168/16"
                .. [[<br /><strong>IPv6: </strong>]]
                .. "::/32, f000::/4"
-ali.reempty    = true
 ali.default    = "0"
-function ali.parse(self, section)
-       DDNS.flag_parse(self, section)
-end
-function ali.validate(self, value)
-       if value == self.default then
-               return "" -- default = empty
-       end
-       return value
-end
 
 -- date_format  -- #############################################################
 local df       = ns:option(Value, "date_format")
@@ -71,7 +57,6 @@ df.description        = [[<a href="http://www.cplusplus.com/reference/ctime/strftime/"
                .. translate("For supported codes look here") 
                .. [[</a>]]
 df.template    = "ddns/global_value"
-df.rmempty     = true
 df.default     = "%F %R"
 df.date_string = ""
 function df.cfgvalue(self, section)
@@ -80,55 +65,45 @@ function df.cfgvalue(self, section)
        self.date_string = DDNS.epoch2date(epoch, value)
        return value
 end
-function df.validate(self, value)
-       if value == self.default then
-               return "" -- default = empty
-       end
-       return value
+function df.parse(self, section, novld)
+       DDNS.value_parse(self, section, novld)
 end
 
 -- run_dir  -- #################################################################
 local rd       = ns:option(Value, "run_dir")
 rd.title       = translate("Status directory")
 rd.description = translate("Directory contains PID and other status information for each running section")
-rd.rmempty     = true
 rd.default     = "/var/run/ddns"
-function rd.validate(self, value)
-       if value == self.default then
-               return "" -- default = empty
-       end
-       return value
+-- no need to validate. if empty default is used everything else created by dns-scripts
+function rd.parse(self, section, novld)
+       DDNS.value_parse(self, section, novld)
 end
 
 -- log_dir  -- #################################################################
 local ld       = ns:option(Value, "log_dir")
 ld.title       = translate("Log directory")
 ld.description = translate("Directory contains Log files for each running section")
-ld.rmempty     = true
 ld.default     = "/var/log/ddns"
-function ld.validate(self, value)
-       if value == self.default then
-               return "" -- default = empty
-       end
-       return value
+-- no need to validate. if empty default is used everything else created by dns-scripts
+function ld.parse(self, section, novld)
+       DDNS.value_parse(self, section, novld)
 end
 
 -- log_lines  -- ###############################################################
 local ll       = ns:option(Value, "log_lines")
 ll.title       = translate("Log length")
 ll.description = translate("Number of last lines stored in log files")
-ll.rmempty     = true
 ll.default     = "250"
 function ll.validate(self, value)
        local n = tonumber(value)
        if not n or math.floor(n) ~= n or n < 1 then
                return nil, self.title .. ": " .. translate("minimum value '1'")
        end
-       if value == self.default then
-               return "" -- default = empty
-       end
        return value
 end
+function ll.parse(self, section, novld)
+       DDNS.value_parse(self, section, novld)
+end
 
 -- use_curl  -- ################################################################
 if (SYS.call([[ grep -i "\+ssl" /usr/bin/wget >/dev/null 2>&1 ]]) == 0) 
@@ -139,17 +114,7 @@ and NXFS.access("/usr/bin/curl") then
                .. [[<br />]]
                .. translate("To use cURL activate this option.")
        pc.orientation  = "horizontal"
-       pc.rmempty      = true
        pc.default      = "0"
-       function pc.parse(self, section)
-               DDNS.flag_parse(self, section)
-       end
-       function pc.validate(self, value)
-               if value == self.default then
-                       return "" -- default = empty
-               end
-               return value
-       end
 end
 
 return m