From 1000c92c849016acc033879479a6d39e288d5221 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 13 Mar 2018 18:56:11 +0100 Subject: [PATCH 1/3] gluon-config-mode-domain-select: allow hiding of individual domain codes --- .../gluon-config-mode-domain-select/check_site.lua | 1 + .../gluon/config-mode/wizard/0200-domain-select.lua | 13 ++++++++++++- scripts/check_site.lua | 8 ++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/package/gluon-config-mode-domain-select/check_site.lua b/package/gluon-config-mode-domain-select/check_site.lua index 18994ecd..47001d28 100644 --- a/package/gluon-config-mode-domain-select/check_site.lua +++ b/package/gluon-config-mode-domain-select/check_site.lua @@ -1 +1,2 @@ need_boolean(in_domain({'hide_domain'}), false) +need_array_of(in_domain({'hide_domain_codes'}), table_keys(need_table(in_domain({'domain_names'}), nil, true)), false) diff --git a/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua b/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua index 8046e006..5c8a2bf9 100644 --- a/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua +++ b/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua @@ -9,12 +9,23 @@ return function(form, uci) local configured = uci:get_first('gluon-setup-mode','setup_mode', 'configured') == '1' or (selected_domain ~= site.default_domain()) local function get_domain_list() + local function hidden_domain_code(domain, code) + if domain.hide_domain_codes ~= nil then + for _, hidden_code in ipairs(domain.hide_domain_codes) do + if code == hidden_code then + return true + end + end + end + return false + end + local list = {} for domain_path in fs.glob('/lib/gluon/domains/*.json') do local domain_code = domain_path:match('([^/]+)%.json$') local domain = assert(json.load(domain_path)) - if not domain.hide_domain or (configured and domain.domain_code == selected_domain) then + if (not domain.hide_domain and not hidden_domain_code(domain, domain_code)) or (configured and domain.domain_code == selected_domain) then table.insert(list, { domain_code = domain_code, domain_name = domain.domain_names[domain_code], diff --git a/scripts/check_site.lua b/scripts/check_site.lua index 6d1603a0..ac1237bc 100644 --- a/scripts/check_site.lua +++ b/scripts/check_site.lua @@ -71,6 +71,14 @@ local function array_to_string(array) return '[' .. table.concat(array, ', ') .. ']' end +function table_keys(tbl) + local keys = {} + for k, _ in pairs(tbl) do + keys[#keys + 1] = k + end + return keys +end + local loadpath From ea1cc3911999104329c984b5921eef4b81f2df22 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 19 Mar 2018 04:10:32 +0100 Subject: [PATCH 2/3] gluon-config-mode-domain-select: fix condition to show hidden domains when selected --- .../luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua b/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua index 5c8a2bf9..0d8ad49a 100644 --- a/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua +++ b/package/gluon-config-mode-domain-select/luasrc/lib/gluon/config-mode/wizard/0200-domain-select.lua @@ -25,7 +25,7 @@ return function(form, uci) local domain_code = domain_path:match('([^/]+)%.json$') local domain = assert(json.load(domain_path)) - if (not domain.hide_domain and not hidden_domain_code(domain, domain_code)) or (configured and domain.domain_code == selected_domain) then + if (not domain.hide_domain and not hidden_domain_code(domain, domain_code)) or (configured and domain_code == selected_domain) then table.insert(list, { domain_code = domain_code, domain_name = domain.domain_names[domain_code], From 717d6ea4c40be61d12792748156628c8e622b51e Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 20 Mar 2018 04:03:37 +0100 Subject: [PATCH 3/3] fixup! gluon-config-mode-domain-select: allow hiding of individual domain codes --- package/gluon-config-mode-domain-select/check_site.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package/gluon-config-mode-domain-select/check_site.lua b/package/gluon-config-mode-domain-select/check_site.lua index 47001d28..2dd92ffb 100644 --- a/package/gluon-config-mode-domain-select/check_site.lua +++ b/package/gluon-config-mode-domain-select/check_site.lua @@ -1,2 +1,3 @@ need_boolean(in_domain({'hide_domain'}), false) -need_array_of(in_domain({'hide_domain_codes'}), table_keys(need_table(in_domain({'domain_names'}), nil, true)), false) +valid_domain_codes = table_keys(need_table(in_domain({'domain_names'}))) +need_array_of(in_domain({'hide_domain_codes'}), valid_domain_codes, false)