This commit is contained in:
Théophile Diot 2024-08-08 14:06:19 +01:00
commit b4df834f46
No known key found for this signature in database
GPG key ID: FA995104A0BA376A
12 changed files with 21098 additions and 33 deletions

View file

@ -1,13 +1,21 @@
from .utils.form import get_forms, get_service_settings
def easy_mode_builder(templates: list[dict], plugins: list, global_config: dict, total_config: dict, service_name: str, is_new: bool = False) -> str:
def easy_mode_builder(
templates: list[dict],
plugins: list,
global_config: dict,
total_config: dict,
service_name: str,
is_new: bool = False,
) -> str:
"""Render forms with global config data.
ATM we don't need templates but we need to pass at least one to the function (it will simply not override anything).
"""
# We need
settings = get_service_settings(service_name, global_config, total_config)
builder = [
{
"type": "card",

View file

@ -43,7 +43,7 @@ def get_plugins_multisite(plugins: list) -> list:
plugin_multisite["settings"] = multisite_settings
plugins_multisite.append(plugin_multisite)
return plugins
return plugins_multisite
def get_forms(
@ -61,7 +61,19 @@ def get_forms(
"""
# Copy of the plugins, and get the plugins by context if needed
# In services page, we want only multisite settings, but in global config we want both
plugins_base = get_plugins_multisite(plugins) if only_multisite else copy.deepcopy(plugins)
plugins_base = get_plugins_multisite(plugins) if only_multisite else plugins
# This template will be used to show default value or value if exists
TEMPLATE_DEFAULT = [
{
"name": "default",
"steps": [],
"configs": {},
"settings": {},
}
]
templates = TEMPLATE_DEFAULT + templates
# Update SERVER_NAME to be empty if new
if is_new and "SERVER_NAME" in settings:

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -28,7 +28,7 @@ def advanced_mode_builder(templates: list[dict], plugins: list, global_config: d
{
"type": "Templates",
"data": {
"templates": get_forms(templates, plugins, settings, ("advanced",), is_new),
"templates": get_forms(templates, plugins, settings, ("advanced",), is_new, True),
"operation": "new" if is_new else "edit",
"oldServerName": service_name if service_name else "",
},

View file

@ -28,7 +28,7 @@ def easy_mode_builder(templates: list[dict], plugins: list, global_config: dict,
{
"type": "Templates",
"data": {
"templates": get_forms(templates, plugins, settings, ("easy",), is_new),
"templates": get_forms(templates, plugins, settings, ("easy",), is_new, True),
"operation": "new" if is_new else "edit",
"oldServerName": service_name if service_name else "",
},

View file

@ -29,7 +29,7 @@ def raw_mode_builder(templates: list[dict], plugins: list, global_config: dict,
{
"type": "Templates",
"data": {
"templates": get_forms(templates, plugins, settings, ("raw",), is_new),
"templates": get_forms(templates, plugins, settings, ("raw",), is_new, True),
"operation": "new" if is_new else "edit",
"oldServerName": service_name if service_name else "",
},

View file

@ -43,7 +43,7 @@ def get_plugins_multisite(plugins: list) -> list:
plugin_multisite["settings"] = multisite_settings
plugins_multisite.append(plugin_multisite)
return plugins
return plugins_multisite
def get_forms(
@ -61,7 +61,19 @@ def get_forms(
"""
# Copy of the plugins, and get the plugins by context if needed
# In services page, we want only multisite settings, but in global config we want both
plugins_base = get_plugins_multisite(plugins) if only_multisite else copy.deepcopy(plugins)
plugins_base = get_plugins_multisite(plugins) if only_multisite else plugins
# This template will be used to show default value or value if exists
TEMPLATE_DEFAULT = [
{
"name": "default",
"steps": [],
"configs": {},
"settings": {},
}
]
templates = TEMPLATE_DEFAULT + templates
# Update SERVER_NAME to be empty if new
if is_new and "SERVER_NAME" in settings:

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -101,17 +101,6 @@ signal(SIGTERM, handle_stop)
sbin_nginx_path = Path(sep, "usr", "sbin", "nginx")
TEMPLATE_PLACEHOLDER = [
{
"name": "default",
"steps": [],
"configs": {},
"settings": {},
}
]
# Flask app
app = Flask(__name__, static_url_path="/", static_folder="static", template_folder="templates")
@ -1347,20 +1336,15 @@ def services_modes():
plugins = app.bw_config.get_plugins()
data_server_builder = None
templates = []
if mode == "raw":
data_server_builder = raw_mode_builder(
TEMPLATE_PLACEHOLDER, plugins, global_config, total_config, service_name or "new", False if service_name else True
)
data_server_builder = raw_mode_builder(templates, plugins, global_config, total_config, service_name or "new", False if service_name else True)
if mode == "advanced":
data_server_builder = advanced_mode_builder(
TEMPLATE_PLACEHOLDER, plugins, global_config, total_config, service_name or "new", False if service_name else True
)
data_server_builder = advanced_mode_builder(templates, plugins, global_config, total_config, service_name or "new", False if service_name else True)
if mode == "easy":
data_server_builder = easy_mode_builder(
TEMPLATE_PLACEHOLDER, plugins, global_config, total_config, service_name or "new", False if service_name else True
)
data_server_builder = easy_mode_builder(templates, plugins, global_config, total_config, service_name or "new", False if service_name else True)
data_server_builder = base64.b64encode(bytes(json.dumps(data_server_builder), "utf-8")).decode("ascii")
@ -1487,7 +1471,8 @@ def global_config():
global_config = app.bw_config.get_config(global_only=True, methods=True)
plugins = app.bw_config.get_plugins()
data_server_builder = global_config_builder(TEMPLATE_PLACEHOLDER, plugins, global_config)
templates = []
data_server_builder = global_config_builder(templates, plugins, global_config)
data_server_builder = base64.b64encode(bytes(json.dumps(data_server_builder), "utf-8")).decode("ascii")
return render_template("global-config.html", data_server_builder=data_server_builder)