Merge pull request #2336 from TDT-AG/pr/20181127-luci-app-openvpn
authorJo-Philipp Wich <jo@mein.io>
Tue, 27 Nov 2018 14:28:05 +0000 (15:28 +0100)
committerGitHub <noreply@github.com>
Tue, 27 Nov 2018 14:28:05 +0000 (15:28 +0100)
luci-app-openvpn: Add missing config options

modules/luci-base/luasrc/dispatcher.lua
modules/luci-base/luasrc/dispatcher.luadoc
themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css
themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/mobile.css

index c4066a25920c26ff2c9d7113405096866238bcff..d85cb58243082e007a3144ca2ee03bbc50e2aca0 100644 (file)
@@ -40,6 +40,28 @@ function build_url(...)
        return table.concat(url, "")
 end
 
+function _ordered_children(node)
+       local name, child, children = nil, nil, {}
+
+       for name, child in pairs(node.nodes) do
+               children[#children+1] = {
+                       name  = name,
+                       node  = child,
+                       order = child.order or 100
+               }
+       end
+
+       table.sort(children, function(a, b)
+               if a.order == b.order then
+                       return a.name < b.name
+               else
+                       return a.order < b.order
+               end
+       end)
+
+       return children
+end
+
 function node_visible(node)
    if node then
          return not (
@@ -55,15 +77,10 @@ end
 function node_childs(node)
        local rv = { }
        if node then
-               local k, v
-               for k, v in util.spairs(node.nodes,
-                       function(a, b)
-                               return (node.nodes[a].order or 100)
-                                    < (node.nodes[b].order or 100)
-                       end)
-               do
-                       if node_visible(v) then
-                               rv[#rv+1] = k
+               local _, child
+               for _, child in ipairs(_ordered_children(node)) do
+                       if node_visible(child.node) then
+                               rv[#rv+1] = child.name
                        end
                end
        end
@@ -595,11 +612,9 @@ function createtree()
 
        local ctx  = context
        local tree = {nodes={}, inreq=true}
-       local modi = {}
 
        ctx.treecache = setmetatable({}, {__mode="v"})
        ctx.tree = tree
-       ctx.modifiers = modi
 
        local scope = setmetatable({}, {__index = luci.dispatcher})
 
@@ -609,28 +624,9 @@ function createtree()
                v()
        end
 
-       local function modisort(a,b)
-               return modi[a].order < modi[b].order
-       end
-
-       for _, v in util.spairs(modi, modisort) do
-               scope._NAME = v.module
-               setfenv(v.func, scope)
-               v.func()
-       end
-
        return tree
 end
 
-function modifier(func, order)
-       context.modifiers[#context.modifiers+1] = {
-               func = func,
-               order = order or 0,
-               module
-                       = getfenv(2)._NAME
-       }
-end
-
 function assign(path, clone, title, order)
        local obj  = node(unpack(path))
        obj.nodes  = nil
@@ -720,24 +716,7 @@ end
 -- Subdispatchers --
 
 function _find_eligible_node(root, prefix, deep, types, descend)
-       local _, cur_name, cur_node
-       local childs = { }
-
-       for cur_name, cur_node in pairs(root.nodes) do
-               childs[#childs+1] = {
-                       node = cur_node,
-                       name = cur_name,
-                       order = cur_node.order or 100
-               }
-       end
-
-       table.sort(childs, function(a, b)
-               if a.order == b.order then
-                       return a.name < b.name
-               else
-                       return a.order < b.order
-               end
-       end)
+       local children = _ordered_children(root)
 
        if not root.leaf and deep ~= nil then
                local sub_path = { unpack(prefix) }
@@ -746,10 +725,11 @@ function _find_eligible_node(root, prefix, deep, types, descend)
                        deep = nil
                end
 
-               for _, cur_node in ipairs(childs) do
-                       sub_path[#prefix+1] = cur_node.name
+               local _, child
+               for _, child in ipairs(children) do
+                       sub_path[#prefix+1] = child.name
 
-                       local res_path = _find_eligible_node(cur_node.node, sub_path,
+                       local res_path = _find_eligible_node(child.node, sub_path,
                                                             deep, types, true)
 
                        if res_path then
index f26256953a4a1433916b5149ebb33d4d829a0b19..a77f8d8b0732b0491b680a295b3c31d2893ce3f3 100644 (file)
@@ -81,15 +81,6 @@ Build the index before if it does not exist yet.
 @name createtree
 ]]
 
----[[
-Register a tree modifier.
-
-@class function
-@name modifier
-@param func    Modifier function
-@param order   Modifier order value (optional)
-]]
-
 ---[[
 Clone a node of the dispatching tree to another position.
 
index 394361ecdebe84710116bea520ca8942d973f31f..98f6022ca0b8aeb65e906177026f4d6138617690 100644 (file)
@@ -174,6 +174,10 @@ a:hover {
        float: left;
 }
 
+.nowrap {
+       white-space: nowrap;
+}
+
 /* Typography.less
  * Headings, body text, lists, code, and more for a versatile and durable typography system
  * ---------------------------------------------------------------------------------------- */
@@ -1020,8 +1024,9 @@ header .dropdown-menu a.hover,
        padding: 0 2px;
        list-style: none;
        display: flex;
-       background: linear-gradient(#ddd 0%, #ddd 100%) repeat-x;
-       background-size: 1px 1px;
+       flex-wrap: wrap;
+       background: linear-gradient(#fff 28px, #ddd 28px);
+       background-size: 1px 29px;
        background-position: left bottom;
 }
 
index 2e1ffb035bf6df5fd1a50cdfaff25c84425fe390..062d274b7504e436a7970d0e47211ad0f6cdd488 100644 (file)
@@ -11,7 +11,6 @@ header h3 a, header .brand {
                background: linear-gradient(#fff 20%, #ddd 100%);
                background-size: 1px 34px;
                margin-bottom: 10px;
-               flex-wrap: wrap;
        }
 
        .tabs > li, .cbi-tabmenu > li {