From ab5ffc754533694594bd8b95dd85296d71666b1c Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Sun, 27 Feb 2022 14:34:05 +0100 Subject: [PATCH] beginning of rework/redesign of settings Signed-off-by: Michael Kaufmann --- actions/admin/settings/100.panel.php | 93 ++++----- actions/admin/settings/110.accounts.php | 50 ++--- actions/admin/settings/120.system.php | 97 +++++---- actions/admin/settings/122.froxlorvhost.php | 43 ++-- actions/admin/settings/125.cronjob.php | 11 +- actions/admin/settings/130.webserver.php | 80 ++++---- actions/admin/settings/131.ssl.php | 68 +++---- actions/admin/settings/135.fcgid.php | 25 ++- actions/admin/settings/136.phpfpm.php | 28 +-- actions/admin/settings/137.perl.php | 11 +- actions/admin/settings/140.statistics.php | 20 +- actions/admin/settings/150.mail.php | 43 ++-- actions/admin/settings/155.ftpserver.php | 8 +- actions/admin/settings/160.nameserver.php | 40 ++-- actions/admin/settings/170.logger.php | 23 +-- actions/admin/settings/180.dkim.php | 33 ++- actions/admin/settings/185.spf.php | 7 +- actions/admin/settings/210.security.php | 18 +- actions/admin/settings/220.quota.php | 11 +- admin_settings.php | 14 +- lib/Froxlor/PhpHelper.php | 1 - lib/Froxlor/UI/Data.php | 15 +- lib/Froxlor/UI/Fields.php | 15 +- lib/Froxlor/UI/Form.php | 189 ++++++++---------- lib/Froxlor/Validate/Form/Data.php | 39 +++- lng/czech.lng.php | 108 +++------- lng/dutch.lng.php | 6 +- lng/english.lng.php | 54 ++--- lng/german.lng.php | 54 ++--- lng/italian.lng.php | 16 +- templates/Froxlor/form/formfields.html.twig | 41 ++-- .../Froxlor/settings/detailpart.html.twig | 16 ++ templates/Froxlor/settings/index.html.twig | 48 +++++ 33 files changed, 655 insertions(+), 670 deletions(-) create mode 100644 templates/Froxlor/settings/detailpart.html.twig create mode 100644 templates/Froxlor/settings/index.html.twig diff --git a/actions/admin/settings/100.panel.php b/actions/admin/settings/100.panel.php index 7f8cc794..1b580046 100644 --- a/actions/admin/settings/100.panel.php +++ b/actions/admin/settings/100.panel.php @@ -20,6 +20,7 @@ return array( 'groups' => array( 'panel' => array( 'title' => $lng['admin']['panelsettings'], + 'icon' => 'fa-solid fa-chalkboard-user', 'fields' => array( 'panel_standardlanguage' => array( 'label' => array( @@ -28,9 +29,8 @@ return array( ), 'settinggroup' => 'panel', 'varname' => 'standardlanguage', - 'type' => 'option', + 'type' => 'select', 'default' => 'English', - 'option_mode' => 'one', 'option_options_method' => array( '\\Froxlor\\User', 'getLanguages' @@ -44,9 +44,8 @@ return array( ), 'settinggroup' => 'panel', 'varname' => 'default_theme', - 'type' => 'option', - 'default' => 'Sparkle', - 'option_mode' => 'one', + 'type' => 'select', + 'default' => 'Froxlor', 'option_options_method' => array( '\\Froxlor\\UI\\Template', 'getThemes' @@ -57,7 +56,7 @@ return array( 'label' => $lng['serversettings']['panel_allow_theme_change_customer'], 'settinggroup' => 'panel', 'varname' => 'allow_theme_change_customer', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -65,7 +64,7 @@ return array( 'label' => $lng['serversettings']['panel_allow_theme_change_admin'], 'settinggroup' => 'panel', 'varname' => 'allow_theme_change_admin', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -73,7 +72,7 @@ return array( 'label' => $lng['serversettings']['natsorting'], 'settinggroup' => 'panel', 'varname' => 'natsorting', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -81,8 +80,8 @@ return array( 'label' => $lng['serversettings']['paging'], 'settinggroup' => 'panel', 'varname' => 'paging', - 'type' => 'int', - 'int_min' => 0, + 'type' => 'number', + 'min' => 0, 'default' => 0, 'save_method' => 'storeSettingField' ), @@ -90,22 +89,20 @@ return array( 'label' => $lng['serversettings']['pathedit'], 'settinggroup' => 'panel', 'varname' => 'pathedit', - 'type' => 'option', + 'type' => 'select', 'default' => 'Manual', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => [ 'Manual' => $lng['serversettings']['manual'], 'Dropdown' => $lng['serversettings']['dropdown'] - ), + ], 'save_method' => 'storeSettingField' ), 'panel_adminmail' => array( 'label' => $lng['serversettings']['adminmail'], 'settinggroup' => 'panel', 'varname' => 'adminmail', - 'type' => 'string', - 'string_type' => 'mail', - 'string_emptyallowed' => false, + 'type' => 'email', + 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' ), @@ -113,7 +110,7 @@ return array( 'label' => $lng['serversettings']['adminmail_defname'], 'settinggroup' => 'panel', 'varname' => 'adminmail_defname', - 'type' => 'string', + 'type' => 'text', 'default' => 'Froxlor Administrator', 'save_method' => 'storeSettingField' ), @@ -121,8 +118,7 @@ return array( 'label' => $lng['serversettings']['adminmail_return'], 'settinggroup' => 'panel', 'varname' => 'adminmail_return', - 'type' => 'string', - 'string_type' => 'mail', + 'type' => 'email', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -131,9 +127,9 @@ return array( 'label' => $lng['serversettings']['decimal_places'], 'settinggroup' => 'panel', 'varname' => 'decimal_places', - 'type' => 'int', - 'int_min' => 0, - 'int_max' => 15, + 'type' => 'number', + 'min' => 0, + 'max' => 15, 'default' => 4, 'save_method' => 'storeSettingField' ), @@ -141,8 +137,7 @@ return array( 'label' => $lng['serversettings']['phpmyadmin_url'], 'settinggroup' => 'panel', 'varname' => 'phpmyadmin_url', - 'type' => 'string', - 'string_type' => 'url', + 'type' => 'url', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -151,8 +146,7 @@ return array( 'label' => $lng['serversettings']['webmail_url'], 'settinggroup' => 'panel', 'varname' => 'webmail_url', - 'type' => 'string', - 'string_type' => 'url', + 'type' => 'url', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -161,8 +155,7 @@ return array( 'label' => $lng['serversettings']['webftp_url'], 'settinggroup' => 'panel', 'varname' => 'webftp_url', - 'type' => 'string', - 'string_type' => 'url', + 'type' => 'url', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -171,7 +164,7 @@ return array( 'label' => $lng['admin']['show_version_login'], 'settinggroup' => 'admin', 'varname' => 'show_version_login', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -179,7 +172,7 @@ return array( 'label' => $lng['admin']['show_version_footer'], 'settinggroup' => 'admin', 'varname' => 'show_version_footer', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -187,7 +180,7 @@ return array( 'label' => $lng['admin']['show_news_feed'], 'settinggroup' => 'admin', 'varname' => 'show_news_feed', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -195,7 +188,7 @@ return array( 'label' => $lng['admin']['customer_show_news_feed'], 'settinggroup' => 'customer', 'varname' => 'show_news_feed', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -203,8 +196,7 @@ return array( 'label' => $lng['admin']['customer_news_feed_url'], 'settinggroup' => 'customer', 'varname' => 'news_feed_url', - 'type' => 'string', - 'string_type' => 'url', + 'type' => 'url', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -213,7 +205,7 @@ return array( 'label' => $lng['serversettings']['panel_allow_domain_change_admin'], 'settinggroup' => 'panel', 'varname' => 'allow_domain_change_admin', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -221,7 +213,7 @@ return array( 'label' => $lng['serversettings']['panel_allow_domain_change_customer'], 'settinggroup' => 'panel', 'varname' => 'allow_domain_change_customer', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -229,7 +221,7 @@ return array( 'label' => $lng['serversettings']['panel_phpconfigs_hidestdsubdomain'], 'settinggroup' => 'panel', 'varname' => 'phpconfigs_hidestdsubdomain', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -237,11 +229,11 @@ return array( 'label' => $lng['serversettings']['panel_customer_hide_options'], 'settinggroup' => 'panel', 'varname' => 'customer_hide_options', - 'type' => 'option', + 'type' => 'select', 'default' => '', - 'option_mode' => 'multiple', + 'select_mode' => 'multiple', 'option_emptyallowed' => true, - 'option_options' => array( + 'select_var' => [ 'email' => $lng['menue']['email']['email'], 'mysql' => $lng['menue']['mysql']['mysql'], 'domains' => $lng['menue']['domains']['domains'], @@ -255,15 +247,14 @@ return array( 'traffic.http' => $lng['menue']['traffic']['traffic'] . " / HTTP", 'traffic.ftp' => $lng['menue']['traffic']['traffic'] . " / FTP", 'traffic.mail' => $lng['menue']['traffic']['traffic'] . " / Mail" - ), + ], 'save_method' => 'storeSettingField' ), 'panel_imprint_url' => array( 'label' => $lng['serversettings']['imprint_url'], 'settinggroup' => 'panel', 'varname' => 'imprint_url', - 'type' => 'string', - 'string_type' => 'url', + 'type' => 'url', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -272,8 +263,7 @@ return array( 'label' => $lng['serversettings']['terms_url'], 'settinggroup' => 'panel', 'varname' => 'terms_url', - 'type' => 'string', - 'string_type' => 'url', + 'type' => 'url', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -282,8 +272,7 @@ return array( 'label' => $lng['serversettings']['privacy_url'], 'settinggroup' => 'panel', 'varname' => 'privacy_url', - 'type' => 'string', - 'string_type' => 'url', + 'type' => 'url', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -292,7 +281,7 @@ return array( 'label' => $lng['serversettings']['logo_overridetheme'], 'settinggroup' => 'panel', 'varname' => 'logo_overridetheme', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -300,7 +289,7 @@ return array( 'label' => $lng['serversettings']['logo_overridecustom'], 'settinggroup' => 'panel', 'varname' => 'logo_overridecustom', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -321,10 +310,8 @@ return array( 'image_name' => 'logo_login', 'default' => '', 'save_method' => 'storeSettingImage' - ), + ) ) ) ) ); - -?> diff --git a/actions/admin/settings/110.accounts.php b/actions/admin/settings/110.accounts.php index 8eaee480..87df7138 100644 --- a/actions/admin/settings/110.accounts.php +++ b/actions/admin/settings/110.accounts.php @@ -20,12 +20,14 @@ return array( 'groups' => array( 'accounts' => array( 'title' => $lng['admin']['accountsettings'], + 'icon' => 'fa-solid fa-users-gear', 'fields' => array( 'session_sessiontimeout' => array( 'label' => $lng['serversettings']['session_timeout'], 'settinggroup' => 'session', 'varname' => 'sessiontimeout', - 'type' => 'int', + 'type' => 'number', + 'min' => 60, 'default' => 600, 'save_method' => 'storeSettingField' ), @@ -33,7 +35,7 @@ return array( 'label' => $lng['serversettings']['session_allow_multiple_login'], 'settinggroup' => 'session', 'varname' => 'allow_multiple_login', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -41,7 +43,7 @@ return array( 'label' => $lng['serversettings']['login_domain_login'], 'settinggroup' => 'login', 'varname' => 'domain_login', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -49,7 +51,8 @@ return array( 'label' => $lng['serversettings']['maxloginattempts'], 'settinggroup' => 'login', 'varname' => 'maxloginattempts', - 'type' => 'int', + 'type' => 'number', + 'min' => 1, 'default' => 3, 'save_method' => 'storeSettingField' ), @@ -57,7 +60,8 @@ return array( 'label' => $lng['serversettings']['deactivatetime'], 'settinggroup' => 'login', 'varname' => 'deactivatetime', - 'type' => 'int', + 'type' => 'number', + 'min' => 0, 'default' => 900, 'save_method' => 'storeSettingField' ), @@ -65,7 +69,7 @@ return array( 'label' => $lng['2fa']['2fa_enabled'], 'settinggroup' => '2fa', 'varname' => 'enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -73,7 +77,8 @@ return array( 'label' => $lng['serversettings']['panel_password_min_length'], 'settinggroup' => 'panel', 'varname' => 'password_min_length', - 'type' => 'int', + 'type' => 'number', + 'min' => 0, 'default' => 0, 'save_method' => 'storeSettingField' ), @@ -81,7 +86,7 @@ return array( 'label' => $lng['serversettings']['panel_password_alpha_lower'], 'settinggroup' => 'panel', 'varname' => 'password_alpha_lower', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -89,7 +94,7 @@ return array( 'label' => $lng['serversettings']['panel_password_alpha_upper'], 'settinggroup' => 'panel', 'varname' => 'password_alpha_upper', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -97,7 +102,7 @@ return array( 'label' => $lng['serversettings']['panel_password_numeric'], 'settinggroup' => 'panel', 'varname' => 'password_numeric', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -105,7 +110,7 @@ return array( 'label' => $lng['serversettings']['panel_password_special_char_required'], 'settinggroup' => 'panel', 'varname' => 'password_special_char_required', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -113,7 +118,7 @@ return array( 'label' => $lng['serversettings']['panel_password_special_char'], 'settinggroup' => 'panel', 'varname' => 'password_special_char', - 'type' => 'string', + 'type' => 'text', 'default' => '!?<>§$%+#=@', 'save_method' => 'storeSettingField' ), @@ -121,7 +126,7 @@ return array( 'label' => $lng['serversettings']['panel_password_regex'], 'settinggroup' => 'panel', 'varname' => 'password_regex', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -129,7 +134,7 @@ return array( 'label' => $lng['serversettings']['accountprefix'], 'settinggroup' => 'customer', 'varname' => 'accountprefix', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'plausibility_check_method' => array( '\\Froxlor\\Validate\\Check', @@ -141,7 +146,7 @@ return array( 'label' => $lng['serversettings']['mysqlprefix'], 'settinggroup' => 'customer', 'varname' => 'mysqlprefix', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'plausibility_check_method' => array( '\\Froxlor\\Validate\\Check', @@ -153,7 +158,7 @@ return array( 'label' => $lng['serversettings']['ftpprefix'], 'settinggroup' => 'customer', 'varname' => 'ftpprefix', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -161,7 +166,7 @@ return array( 'label' => $lng['serversettings']['ftpdomain'], 'settinggroup' => 'customer', 'varname' => 'ftpatdomain', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -169,7 +174,7 @@ return array( 'label' => $lng['serversettings']['allow_password_reset'], 'settinggroup' => 'panel', 'varname' => 'allow_preset', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'dependency' => array( @@ -185,7 +190,7 @@ return array( 'label' => $lng['serversettings']['allow_password_reset_admin'], 'settinggroup' => 'panel', 'varname' => 'allow_preset_admin', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'dependency' => array( @@ -201,7 +206,7 @@ return array( 'label' => $lng['serversettings']['backupenabled'], 'settinggroup' => 'system', 'varname' => 'backupenabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'cronmodule' => 'froxlor/backup', 'save_method' => 'storeSettingField' @@ -210,10 +215,9 @@ return array( 'label' => $lng['serversettings']['createstdsubdom_default'], 'settinggroup' => 'system', 'varname' => 'createstdsubdom_default', - 'type' => 'option', + 'type' => 'select', 'default' => '1', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( '0' => $lng['panel']['no'], '1' => $lng['panel']['yes'] ), diff --git a/actions/admin/settings/120.system.php b/actions/admin/settings/120.system.php index 5ec88db0..3661ad3e 100644 --- a/actions/admin/settings/120.system.php +++ b/actions/admin/settings/120.system.php @@ -20,12 +20,13 @@ return array( 'groups' => array( 'system' => array( 'title' => $lng['admin']['systemsettings'], + 'icon' => 'fa-solid fa-gears', 'fields' => array( 'system_documentroot_prefix' => array( 'label' => $lng['serversettings']['documentroot_prefix'], 'settinggroup' => 'system', 'varname' => 'documentroot_prefix', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/var/customers/webs/', 'save_method' => 'storeSettingField', @@ -38,7 +39,7 @@ return array( 'label' => $lng['serversettings']['documentroot_use_default_value'], 'settinggroup' => 'system', 'varname' => 'documentroot_use_default_value', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -46,8 +47,7 @@ return array( 'label' => $lng['serversettings']['ipaddress'], 'settinggroup' => 'system', 'varname' => 'ipaddress', - 'type' => 'option', - 'option_mode' => 'one', + 'type' => 'select', 'option_options_method' => array( '\\Froxlor\\Domain\\IpAddr', 'getIpAddresses' @@ -59,8 +59,8 @@ return array( 'label' => $lng['serversettings']['defaultip'], 'settinggroup' => 'system', 'varname' => 'defaultip', - 'type' => 'option', - 'option_mode' => 'multiple', + 'type' => 'select', + 'select_mode' => 'multiple', 'option_options_method' => array( '\\Froxlor\\Domain\\IpAddr', 'getIpPortCombinations' @@ -72,8 +72,8 @@ return array( 'label' => $lng['serversettings']['defaultsslip'], 'settinggroup' => 'system', 'varname' => 'defaultsslip', - 'type' => 'option', - 'option_mode' => 'multiple', + 'type' => 'select', + 'select_mode' => 'multiple', 'option_options_method' => array( '\\Froxlor\\Domain\\IpAddr', 'getSslIpPortCombinations' @@ -85,7 +85,7 @@ return array( 'label' => $lng['serversettings']['hostname'], 'settinggroup' => 'system', 'varname' => 'hostname', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingHostname', 'plausibility_check_method' => array( @@ -97,7 +97,7 @@ return array( 'label' => $lng['serversettings']['enable_api'], 'settinggroup' => 'api', 'varname' => 'enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -105,7 +105,7 @@ return array( 'label' => $lng['serversettings']['validate_domain'], 'settinggroup' => 'system', 'varname' => 'validate_domain', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -113,7 +113,7 @@ return array( 'label' => $lng['serversettings']['stdsubdomainhost'], 'settinggroup' => 'system', 'varname' => 'stdsubdomain', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingHostname' ), @@ -121,7 +121,7 @@ return array( 'label' => $lng['serversettings']['mysql_access_host'], 'settinggroup' => 'system', 'varname' => 'mysql_access_host', - 'type' => 'string', + 'type' => 'text', 'default' => '127.0.0.1,localhost', 'plausibility_check_method' => array( '\\Froxlor\\Validate\\Check', @@ -133,7 +133,7 @@ return array( 'label' => $lng['serversettings']['nssextrausers'], 'settinggroup' => 'system', 'varname' => 'nssextrausers', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -141,7 +141,7 @@ return array( 'label' => $lng['serversettings']['index_file_extension'], 'settinggroup' => 'system', 'varname' => 'index_file_extension', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^[a-zA-Z0-9]{1,6}$/', 'default' => 'html', 'save_method' => 'storeSettingField' @@ -150,7 +150,7 @@ return array( 'label' => $lng['serversettings']['system_store_index_file_subs'], 'settinggroup' => 'system', 'varname' => 'store_index_file_subs', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -170,7 +170,7 @@ return array( 'label' => $lng['serversettings']['report']['report'], 'settinggroup' => 'system', 'varname' => 'report_enable', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'cronmodule' => 'froxlor/reports', 'save_method' => 'storeSettingField' @@ -179,9 +179,9 @@ return array( 'label' => $lng['serversettings']['report']['webmax'], 'settinggroup' => 'system', 'varname' => 'report_webmax', - 'type' => 'int', - 'int_min' => 0, - 'int_max' => 150, + 'type' => 'number', + 'min' => 0, + 'max' => 150, 'default' => 90, 'save_method' => 'storeSettingField' ), @@ -189,9 +189,9 @@ return array( 'label' => $lng['serversettings']['report']['trafficmax'], 'settinggroup' => 'system', 'varname' => 'report_trafficmax', - 'type' => 'int', - 'int_min' => 0, - 'int_max' => 150, + 'type' => 'number', + 'min' => 0, + 'max' => 150, 'default' => 90, 'save_method' => 'storeSettingField' ), @@ -200,7 +200,7 @@ return array( 'label' => $lng['serversettings']['mail_use_smtp'], 'settinggroup' => 'system', 'varname' => 'mail_use_smtp', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -208,7 +208,7 @@ return array( 'label' => $lng['serversettings']['mail_smtp_host'], 'settinggroup' => 'system', 'varname' => 'mail_smtp_host', - 'type' => 'string', + 'type' => 'text', 'default' => 'localhost', 'save_method' => 'storeSettingField' ), @@ -216,9 +216,9 @@ return array( 'label' => $lng['serversettings']['mail_smtp_port'], 'settinggroup' => 'system', 'varname' => 'mail_smtp_port', - 'type' => 'int', - 'int_min' => 1, - 'int_max' => 65535, + 'type' => 'number', + 'min' => 1, + 'max' => 65535, 'default' => 25, 'save_method' => 'storeSettingField' ), @@ -226,7 +226,7 @@ return array( 'label' => $lng['serversettings']['mail_smtp_usetls'], 'settinggroup' => 'system', 'varname' => 'mail_smtp_usetls', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -234,7 +234,7 @@ return array( 'label' => $lng['serversettings']['mail_smtp_auth'], 'settinggroup' => 'system', 'varname' => 'mail_smtp_auth', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -242,7 +242,7 @@ return array( 'label' => $lng['serversettings']['mail_smtp_user'], 'settinggroup' => 'system', 'varname' => 'mail_smtp_user', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -250,7 +250,7 @@ return array( 'label' => $lng['serversettings']['mail_smtp_passwd'], 'settinggroup' => 'system', 'varname' => 'mail_smtp_passwd', - 'type' => 'hiddenString', + 'type' => 'password', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -258,7 +258,7 @@ return array( 'label' => $lng['serversettings']['apply_specialsettings_default'], 'settinggroup' => 'system', 'varname' => 'apply_specialsettings_default', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -266,29 +266,28 @@ return array( 'label' => $lng['serversettings']['apply_phpconfigs_default'], 'settinggroup' => 'system', 'varname' => 'apply_phpconfigs_default', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), - 'system_domaindefaultalias' => array( - 'label' => $lng['admin']['domaindefaultalias'], - 'settinggroup' => 'system', - 'varname' => 'domaindefaultalias', - 'type' => 'option', - 'default' => '0', - 'option_mode' => 'one', - 'option_options' => array( - '0' => $lng['domains']['serveraliasoption_wildcard'], - '1' => $lng['domains']['serveraliasoption_www'], - '2' => $lng['domains']['serveraliasoption_none'] - ), - 'save_method' => 'storeSettingField' - ), + 'system_domaindefaultalias' => array( + 'label' => $lng['admin']['domaindefaultalias'], + 'settinggroup' => 'system', + 'varname' => 'domaindefaultalias', + 'type' => 'select', + 'default' => '0', + 'select_var' => array( + '0' => $lng['domains']['serveraliasoption_wildcard'], + '1' => $lng['domains']['serveraliasoption_www'], + '2' => $lng['domains']['serveraliasoption_none'] + ), + 'save_method' => 'storeSettingField' + ), 'hide_incompatible_settings' => array( 'label' => $lng['serversettings']['hide_incompatible_settings'], 'settinggroup' => 'system', 'varname' => 'hide_incompatible_settings', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), diff --git a/actions/admin/settings/122.froxlorvhost.php b/actions/admin/settings/122.froxlorvhost.php index 41c9136c..8453a918 100644 --- a/actions/admin/settings/122.froxlorvhost.php +++ b/actions/admin/settings/122.froxlorvhost.php @@ -18,6 +18,7 @@ return array( 'groups' => array( 'froxlorvhost' => array( 'title' => $lng['admin']['froxlorvhost'] . (call_user_func(array('\Froxlor\Settings\FroxlorVhostSettings', 'hasVhostContainerEnabled')) == false ? $lng['admin']['novhostcontainer'] : ''), + 'icon' => 'fa-solid fa-wrench', 'fields' => array( /** * Webserver-Vhost @@ -26,7 +27,7 @@ return array( 'label' => $lng['serversettings']['froxlordirectlyviahostname'], 'settinggroup' => 'system', 'varname' => 'froxlordirectlyviahostname', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -34,7 +35,7 @@ return array( 'label' => $lng['serversettings']['froxloraliases'], 'settinggroup' => 'system', 'varname' => 'froxloraliases', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^(([a-z0-9\-\._]+, ?)*[a-z0-9\-\._]+)?$/i', 'string_emptyallowed' => true, 'default' => '', @@ -47,7 +48,7 @@ return array( 'label' => $lng['serversettings']['le_froxlor_enabled'], 'settinggroup' => 'system', 'varname' => 'le_froxlor_enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingClearCertificates', 'visible' => \Froxlor\Settings::Get('system.leenabled') && call_user_func(array( @@ -59,7 +60,7 @@ return array( 'label' => $lng['serversettings']['le_froxlor_redirect'], 'settinggroup' => 'system', 'varname' => 'le_froxlor_redirect', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array( @@ -71,9 +72,9 @@ return array( 'label' => $lng['admin']['domain_hsts_maxage'], 'settinggroup' => 'system', 'varname' => 'hsts_maxage', - 'type' => 'int', - 'int_min' => 0, - 'int_max' => 94608000, // 3-years + 'type' => 'number', + 'min' => 0, + 'max' => 94608000, // 3-years 'default' => 0, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array( @@ -85,7 +86,7 @@ return array( 'label' => $lng['admin']['domain_hsts_incsub'], 'settinggroup' => 'system', 'varname' => 'hsts_incsub', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array( @@ -97,7 +98,7 @@ return array( 'label' => $lng['admin']['domain_hsts_preload'], 'settinggroup' => 'system', 'varname' => 'hsts_preload', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array( @@ -109,7 +110,7 @@ return array( 'label' => $lng['admin']['domain_honorcipherorder'], 'settinggroup' => 'system', 'varname' => 'honorcipherorder', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array( @@ -121,7 +122,7 @@ return array( 'label' => $lng['admin']['domain_sessiontickets'], 'settinggroup' => 'system', 'varname' => 'sessiontickets', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array( @@ -136,7 +137,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid_ownvhost'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_ownvhost', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -151,7 +152,7 @@ return array( 'label' => $lng['admin']['mod_fcgid_user'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_httpuser', - 'type' => 'string', + 'type' => 'text', 'default' => 'froxlorlocal', 'save_method' => 'storeSettingWebserverFcgidFpmUser', 'websrv_avail' => array( @@ -166,7 +167,7 @@ return array( 'label' => $lng['admin']['mod_fcgid_group'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_httpgroup', - 'type' => 'string', + 'type' => 'text', 'default' => 'froxlorlocal', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -181,9 +182,8 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['defaultini_ownvhost'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_defaultini_ownvhost', - 'type' => 'option', + 'type' => 'select', 'default' => '2', - 'option_mode' => 'one', 'option_options_method' => array( '\\Froxlor\\Http\\PhpConfig', 'getPhpConfigs' @@ -204,7 +204,7 @@ return array( 'label' => $lng['phpfpm']['ownvhost'], 'settinggroup' => 'phpfpm', 'varname' => 'enabled_ownvhost', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('phpfpm.enabled') && call_user_func(array( @@ -216,7 +216,7 @@ return array( 'label' => $lng['phpfpm']['vhost_httpuser'], 'settinggroup' => 'phpfpm', 'varname' => 'vhost_httpuser', - 'type' => 'string', + 'type' => 'text', 'default' => 'froxlorlocal', 'save_method' => 'storeSettingWebserverFcgidFpmUser', 'visible' => \Froxlor\Settings::Get('phpfpm.enabled') && call_user_func(array( @@ -228,7 +228,7 @@ return array( 'label' => $lng['phpfpm']['vhost_httpgroup'], 'settinggroup' => 'phpfpm', 'varname' => 'vhost_httpgroup', - 'type' => 'string', + 'type' => 'text', 'default' => 'froxlorlocal', 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('phpfpm.enabled') && call_user_func(array( @@ -240,9 +240,8 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['defaultini_ownvhost'], 'settinggroup' => 'phpfpm', 'varname' => 'vhost_defaultini', - 'type' => 'option', + 'type' => 'select', 'default' => '2', - 'option_mode' => 'one', 'option_options_method' => array( '\\Froxlor\\Http\\PhpConfig', 'getPhpConfigs' @@ -260,7 +259,7 @@ return array( 'label' => $lng['serversettings']['dns_createhostnameentry'], 'settinggroup' => 'system', 'varname' => 'dns_createhostnameentry', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.bind_enable') diff --git a/actions/admin/settings/125.cronjob.php b/actions/admin/settings/125.cronjob.php index 66a72754..8b0b731f 100644 --- a/actions/admin/settings/125.cronjob.php +++ b/actions/admin/settings/125.cronjob.php @@ -18,12 +18,13 @@ return array( 'groups' => array( 'crond' => array( 'title' => $lng['admin']['cronsettings'], + 'icon' => 'fa-solid fa-clock-rotate-left', 'fields' => array( 'system_cronconfig' => array( 'label' => $lng['serversettings']['system_cronconfig'], 'settinggroup' => 'system', 'varname' => 'cronconfig', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'default' => '/etc/cron.d/froxlor', 'save_method' => 'storeSettingField' @@ -32,7 +33,7 @@ return array( 'label' => $lng['serversettings']['system_croncmdline'], 'settinggroup' => 'system', 'varname' => 'croncmdline', - 'type' => 'string', + 'type' => 'text', 'default' => '/usr/bin/nice -n 5 /usr/bin/php -q', 'save_method' => 'storeSettingField' ), @@ -40,7 +41,7 @@ return array( 'label' => $lng['serversettings']['system_crondreload'], 'settinggroup' => 'system', 'varname' => 'crondreload', - 'type' => 'string', + 'type' => 'text', 'default' => '/etc/init.d/cron reload', 'save_method' => 'storeSettingField' ), @@ -48,7 +49,7 @@ return array( 'label' => $lng['serversettings']['system_cron_allowautoupdate'], 'settinggroup' => 'system', 'varname' => 'cron_allowautoupdate', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -56,7 +57,7 @@ return array( 'label' => $lng['serversettings']['cron']['debug'], 'settinggroup' => 'system', 'varname' => 'debug_cron', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ) diff --git a/actions/admin/settings/130.webserver.php b/actions/admin/settings/130.webserver.php index 05257264..e3aadec2 100644 --- a/actions/admin/settings/130.webserver.php +++ b/actions/admin/settings/130.webserver.php @@ -20,15 +20,15 @@ return array( 'groups' => array( 'webserver' => array( 'title' => $lng['admin']['webserversettings'], + 'icon' => 'fa-solid fa-server', 'fields' => array( 'system_webserver' => array( 'label' => $lng['admin']['webserver'], 'settinggroup' => 'system', 'varname' => 'webserver', - 'type' => 'option', + 'type' => 'select', 'default' => 'apache2', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 'apache2' => 'Apache 2', 'lighttpd' => 'ligHTTPd', 'nginx' => 'Nginx' @@ -44,7 +44,7 @@ return array( 'label' => $lng['serversettings']['apache_24'], 'settinggroup' => 'system', 'varname' => 'apache24', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -55,7 +55,7 @@ return array( 'label' => $lng['serversettings']['apache_itksupport'], 'settinggroup' => 'system', 'varname' => 'apacheitksupport', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'visible' => (\Froxlor\Settings::Get('system.mod_fcgid') == 0 && \Froxlor\Settings::Get('phpfpm.enabled') == 0), @@ -67,7 +67,7 @@ return array( 'label' => $lng['serversettings']['http2_support'], 'settinggroup' => 'system', 'varname' => 'http2_support', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -80,7 +80,7 @@ return array( 'label' => $lng['serversettings']['dhparams_file'], 'settinggroup' => 'system', 'varname' => 'dhparams_file', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'string_emptyallowed' => true, 'default' => '', @@ -91,7 +91,7 @@ return array( 'label' => $lng['admin']['webserver_user'], 'settinggroup' => 'system', 'varname' => 'httpuser', - 'type' => 'string', + 'type' => 'text', 'default' => 'www-data', 'save_method' => 'storeSettingWebserverFcgidFpmUser' ), @@ -99,7 +99,7 @@ return array( 'label' => $lng['admin']['webserver_group'], 'settinggroup' => 'system', 'varname' => 'httpgroup', - 'type' => 'string', + 'type' => 'text', 'default' => 'www-data', 'save_method' => 'storeSettingField' ), @@ -107,7 +107,7 @@ return array( 'label' => $lng['serversettings']['apacheconf_vhost'], 'settinggroup' => 'system', 'varname' => 'apacheconf_vhost', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'filedir', 'default' => '/etc/apache2/sites-enabled/', 'save_method' => 'storeSettingField' @@ -116,7 +116,7 @@ return array( 'label' => $lng['serversettings']['apacheconf_diroptions'], 'settinggroup' => 'system', 'varname' => 'apacheconf_diroptions', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'filedir', 'default' => '/etc/apache2/sites-enabled/', 'save_method' => 'storeSettingField' @@ -125,7 +125,7 @@ return array( 'label' => $lng['serversettings']['apacheconf_htpasswddir'], 'settinggroup' => 'system', 'varname' => 'apacheconf_htpasswddir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'confdir', 'default' => '/etc/apache2/htpasswd/', 'save_method' => 'storeSettingField' @@ -134,7 +134,7 @@ return array( 'label' => $lng['serversettings']['logfiles_directory'], 'settinggroup' => 'system', 'varname' => 'logfiles_directory', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/var/customers/logs/', 'save_method' => 'storeSettingField' @@ -143,8 +143,7 @@ return array( 'label' => $lng['serversettings']['logfiles_script'], 'settinggroup' => 'system', 'varname' => 'logfiles_script', - 'type' => 'string', - 'string_type' => '', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -155,7 +154,7 @@ return array( 'label' => $lng['serversettings']['logfiles_piped'], 'settinggroup' => 'system', 'varname' => 'logfiles_piped', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -166,7 +165,7 @@ return array( 'label' => $lng['serversettings']['logfiles_format'], 'settinggroup' => 'system', 'varname' => 'logfiles_format', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'string_emptyallowed' => true, 'save_method' => 'storeSettingField', @@ -180,10 +179,9 @@ return array( 'label' => $lng['serversettings']['logfiles_type'], 'settinggroup' => 'system', 'varname' => 'logfiles_type', - 'type' => 'option', + 'type' => 'select', 'default' => '1', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( '1' => 'combined', '2' => 'vhost_combined' ), @@ -196,10 +194,9 @@ return array( 'label' => $lng['serversettings']['errorlog_level'], 'settinggroup' => 'system', 'varname' => 'errorlog_level', - 'type' => 'option', + 'type' => 'select', 'default' => (\Froxlor\Settings::Get('system.webserver') == 'nginx' ? 'error' : 'warn'), - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 'emerg' => 'emerg', 'alert' => 'alert', 'crit' => 'crit', @@ -219,7 +216,7 @@ return array( 'label' => $lng['serversettings']['customerssl_directory'], 'settinggroup' => 'system', 'varname' => 'customer_ssl_path', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'confdir', 'default' => '/etc/ssl/froxlor-custom/', 'save_method' => 'storeSettingField' @@ -228,7 +225,7 @@ return array( 'label' => $lng['serversettings']['phpappendopenbasedir'], 'settinggroup' => 'system', 'varname' => 'phpappendopenbasedir', - 'type' => 'string', + 'type' => 'text', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -237,7 +234,7 @@ return array( 'label' => $lng['serversettings']['deactivateddocroot'], 'settinggroup' => 'system', 'varname' => 'deactivateddocroot', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'string_emptyallowed' => true, 'default' => '', @@ -247,7 +244,7 @@ return array( 'label' => $lng['serversettings']['default_vhostconf'], 'settinggroup' => 'system', 'varname' => 'default_vhostconf', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -255,7 +252,7 @@ return array( 'label' => $lng['serversettings']['default_sslvhostconf'], 'settinggroup' => 'system', 'varname' => 'default_sslvhostconf', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') == 1 @@ -264,7 +261,7 @@ return array( 'label' => $lng['serversettings']['includedefault_sslvhostconf'], 'settinggroup' => 'system', 'varname' => 'include_default_vhostconf', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -272,7 +269,7 @@ return array( 'label' => $lng['serversettings']['apache_globaldiropt'], 'settinggroup' => 'system', 'varname' => 'apacheglobaldiropt', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField', 'visible' => (\Froxlor\Settings::Get('system.mod_fcgid') == 0 && \Froxlor\Settings::Get('phpfpm.enabled') == 0), @@ -284,7 +281,7 @@ return array( 'label' => $lng['serversettings']['apachereload_command'], 'settinggroup' => 'system', 'varname' => 'apachereload_command', - 'type' => 'string', + 'type' => 'text', 'default' => '/etc/init.d/apache2 reload', 'save_method' => 'storeSettingField' ), @@ -292,7 +289,7 @@ return array( 'label' => $lng['serversettings']['phpreload_command'], 'settinggroup' => 'system', 'varname' => 'phpreload_command', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -303,7 +300,7 @@ return array( 'label' => $lng['serversettings']['nginx_php_backend'], 'settinggroup' => 'system', 'varname' => 'nginx_php_backend', - 'type' => 'string', + 'type' => 'text', 'default' => '127.0.0.1:8888', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -314,7 +311,7 @@ return array( 'label' => $lng['serversettings']['nginx_fastcgiparams'], 'settinggroup' => 'nginx', 'varname' => 'fastcgiparams', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'default' => '/etc/nginx/fastcgi_params', 'save_method' => 'storeSettingField', @@ -326,7 +323,7 @@ return array( 'label' => $lng['serversettings']['defaultwebsrverrhandler_enabled'], 'settinggroup' => 'defaultwebsrverrhandler', 'varname' => 'enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -334,7 +331,7 @@ return array( 'label' => $lng['serversettings']['defaultwebsrverrhandler_err401'], 'settinggroup' => 'defaultwebsrverrhandler', 'varname' => 'err401', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -346,7 +343,7 @@ return array( 'label' => $lng['serversettings']['defaultwebsrverrhandler_err403'], 'settinggroup' => 'defaultwebsrverrhandler', 'varname' => 'err403', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -358,7 +355,7 @@ return array( 'label' => $lng['serversettings']['defaultwebsrverrhandler_err404'], 'settinggroup' => 'defaultwebsrverrhandler', 'varname' => 'err404', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -366,7 +363,7 @@ return array( 'label' => $lng['serversettings']['defaultwebsrverrhandler_err500'], 'settinggroup' => 'defaultwebsrverrhandler', 'varname' => 'err500', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -378,7 +375,7 @@ return array( 'label' => $lng['serversettings']['customredirect_enabled'], 'settinggroup' => 'customredirect', 'varname' => 'enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -386,9 +383,8 @@ return array( 'label' => $lng['serversettings']['customredirect_default'], 'settinggroup' => 'customredirect', 'varname' => 'default', - 'type' => 'option', + 'type' => 'select', 'default' => '1', - 'option_mode' => 'one', 'option_options_method' => array('\\Froxlor\\Domain\\Domain', 'getRedirectCodes'), 'save_method' => 'storeSettingField' ) diff --git a/actions/admin/settings/131.ssl.php b/actions/admin/settings/131.ssl.php index 2d30bf3c..22f3719f 100644 --- a/actions/admin/settings/131.ssl.php +++ b/actions/admin/settings/131.ssl.php @@ -20,12 +20,13 @@ return array( 'groups' => array( 'ssl' => array( 'title' => $lng['admin']['sslsettings'], + 'icon' => 'fa-solid fa-shield', 'fields' => array( 'system_ssl_enabled' => array( 'label' => $lng['serversettings']['ssl']['use_ssl'], 'settinggroup' => 'system', 'varname' => 'use_ssl', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'overview_option' => true @@ -34,10 +35,10 @@ return array( 'label' => $lng['serversettings']['ssl']['ssl_protocols'], 'settinggroup' => 'system', 'varname' => 'ssl_protocols', - 'type' => 'option', + 'type' => 'select', 'default' => 'TLSv1.2', - 'option_mode' => 'multiple', - 'option_options' => array( + 'select_mode' => 'multiple', + 'select_var' => array( 'TLSv1' => 'TLSv1', 'TLSv1.1' => 'TLSv1.1', 'TLSv1.2' => 'TLSv1.2', @@ -49,7 +50,7 @@ return array( 'label' => $lng['serversettings']['ssl']['ssl_cipher_list'], 'settinggroup' => 'system', 'varname' => 'ssl_cipher_list', - 'type' => 'string', + 'type' => 'text', 'string_emptyallowed' => false, 'default' => 'ECDH+AESGCM:ECDH+AES256:!aNULL:!MD5:!DSS:!DH:!AES128', 'save_method' => 'storeSettingField' @@ -58,7 +59,7 @@ return array( 'label' => $lng['serversettings']['ssl']['tlsv13_cipher_list'], 'settinggroup' => 'system', 'varname' => 'tlsv13_cipher_list', - 'type' => 'string', + 'type' => 'text', 'string_emptyallowed' => true, 'default' => '', 'visible' => \Froxlor\Settings::Get('system.webserver') == "apache2" && \Froxlor\Settings::Get('system.apache24') == 1, @@ -68,7 +69,7 @@ return array( 'label' => $lng['serversettings']['ssl']['ssl_cert_file'], 'settinggroup' => 'system', 'varname' => 'ssl_cert_file', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'string_emptyallowed' => true, 'default' => '/etc/apache2/apache2.pem', @@ -78,7 +79,7 @@ return array( 'label' => $lng['serversettings']['ssl']['ssl_key_file'], 'settinggroup' => 'system', 'varname' => 'ssl_key_file', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'string_emptyallowed' => true, 'default' => '/etc/apache2/apache2.key', @@ -88,7 +89,7 @@ return array( 'label' => $lng['admin']['ipsandports']['ssl_cert_chainfile'], 'settinggroup' => 'system', 'varname' => 'ssl_cert_chainfile', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'string_emptyallowed' => true, 'default' => '', @@ -98,7 +99,7 @@ return array( 'label' => $lng['serversettings']['ssl']['ssl_ca_file'], 'settinggroup' => 'system', 'varname' => 'ssl_ca_file', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'string_emptyallowed' => true, 'default' => '', @@ -108,8 +109,7 @@ return array( 'label' => $lng['serversettings']['ssl']['apache24_ocsp_cache_path'], 'settinggroup' => 'system', 'varname' => 'apache24_ocsp_cache_path', - 'type' => 'string', - 'string_type' => 'string', + 'type' => 'text', 'string_emptyallowed' => false, 'default' => 'shmcb:/var/run/apache2/ocsp-stapling.cache(131072)', 'visible' => \Froxlor\Settings::Get('system.webserver') == "apache2" && \Froxlor\Settings::Get('system.apache24') == 1, @@ -119,7 +119,7 @@ return array( 'label' => $lng['admin']['domain_sessionticketsenabled'], 'settinggroup' => 'system', 'varname' => 'sessionticketsenabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.use_ssl') && (\Froxlor\Settings::Get('system.webserver') == "nginx" || (\Froxlor\Settings::Get('system.webserver') == "apache2" && \Froxlor\Settings::Get('system.apache24') == 1)) @@ -128,7 +128,7 @@ return array( 'label' => $lng['serversettings']['leenabled'], 'settinggroup' => 'system', 'varname' => 'leenabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'cronmodule' => 'froxlor/letsencrypt', 'save_method' => 'storeSettingField' @@ -137,7 +137,7 @@ return array( 'label' => $lng['serversettings']['acmeshpath'], 'settinggroup' => 'system', 'varname' => 'acmeshpath', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'default' => '/root/.acme.sh/acme.sh', 'save_method' => 'storeSettingField' @@ -146,40 +146,38 @@ return array( 'label' => $lng['serversettings']['letsencryptacmeconf'], 'settinggroup' => 'system', 'varname' => 'letsencryptacmeconf', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'default' => '/etc/apache2/conf-enabled/acme.conf', 'save_method' => 'storeSettingField' ), - /** - * currently the only option anyway - * + /** + * currently the only option anyway + * 'system_leapiversion' => array( 'label' => $lng['serversettings']['leapiversion'], 'settinggroup' => 'system', 'varname' => 'leapiversion', - 'type' => 'option', + 'type' => 'select', 'default' => '2', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( '2' => 'ACME v2' ), 'save_method' => 'storeSettingField' ), - */ + */ 'system_letsencryptca' => array( 'label' => $lng['serversettings']['letsencryptca'], 'settinggroup' => 'system', 'varname' => 'letsencryptca', - 'type' => 'option', + 'type' => 'select', 'default' => 'letsencrypt', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 'letsencrypt_test' => 'Let\'s Encrypt (Test / Staging)', 'letsencrypt' => 'Let\'s Encrypt (Live)', 'buypass_test' => 'Buypass (Test / Staging)', 'buypass' => 'Buypass (Live)', - 'zerossl' => 'ZeroSSL (Live)' + 'zerossl' => 'ZeroSSL (Live)' ), 'save_method' => 'storeSettingField' ), @@ -187,7 +185,7 @@ return array( 'label' => $lng['serversettings']['letsencryptchallengepath'], 'settinggroup' => 'system', 'varname' => 'letsencryptchallengepath', - 'type' => 'string', + 'type' => 'text', 'string_emptyallowed' => false, 'default' => \Froxlor\Froxlor::getInstallDir(), 'save_method' => 'storeSettingField' @@ -196,10 +194,9 @@ return array( 'label' => $lng['serversettings']['letsencryptkeysize'], 'settinggroup' => 'system', 'varname' => 'letsencryptkeysize', - 'type' => 'option', + 'type' => 'select', 'default' => '2048', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( '2048' => '2048', '3072' => '3072', '4096' => '4096', @@ -211,10 +208,9 @@ return array( 'label' => $lng['serversettings']['letsencryptecc'], 'settinggroup' => 'system', 'varname' => 'leecc', - 'type' => 'option', + 'type' => 'select', 'default' => '0', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( '0' => '-', '256' => 'ec-256', '384' => 'ec-384' @@ -225,7 +221,7 @@ return array( 'label' => $lng['serversettings']['letsencryptreuseold'], 'settinggroup' => 'system', 'varname' => 'letsencryptreuseold', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -233,7 +229,7 @@ return array( 'label' => $lng['serversettings']['le_domain_dnscheck'], 'settinggroup' => 'system', 'varname' => 'le_domain_dnscheck', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ) diff --git a/actions/admin/settings/135.fcgid.php b/actions/admin/settings/135.fcgid.php index e3f289e2..541774bf 100644 --- a/actions/admin/settings/135.fcgid.php +++ b/actions/admin/settings/135.fcgid.php @@ -18,6 +18,7 @@ return array( 'groups' => array( 'fcgid' => array( 'title' => $lng['admin']['fcgid_settings'], + 'icon' => 'fa-brands fa-php', 'websrv_avail' => array( 'apache2', 'lighttpd' @@ -27,7 +28,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'plausibility_check_method' => array( @@ -40,7 +41,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['configdir'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_configdir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'confdir', 'default' => '/var/www/php-fcgi-scripts/', 'plausibility_check_method' => array( @@ -53,7 +54,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['tmpdir'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_tmpdir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/var/customers/tmp/', 'save_method' => 'storeSettingField' @@ -62,7 +63,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['peardir'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_peardir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'string_delimiter' => ':', 'string_emptyallowed' => true, @@ -73,8 +74,8 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['wrapper'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_wrapper', - 'type' => 'option', - 'option_options' => array( + 'type' => 'select', + 'select_var' => array( 0 => 'ScriptAlias', 1 => 'FcgidWrapper' ), @@ -88,7 +89,8 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['starter'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_starter', - 'type' => 'int', + 'type' => 'number', + 'min' => 0, 'default' => 0, 'save_method' => 'storeSettingField' ), @@ -96,7 +98,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['maxrequests'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_maxrequests', - 'type' => 'int', + 'type' => 'number', 'default' => 250, 'save_method' => 'storeSettingField' ), @@ -104,9 +106,8 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['defaultini'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_defaultini', - 'type' => 'option', + 'type' => 'select', 'default' => '1', - 'option_mode' => 'one', 'option_options_method' => array( '\\Froxlor\\Http\\PhpConfig', 'getPhpConfigs'), @@ -116,7 +117,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['idle_timeout'], 'settinggroup' => 'system', 'varname' => 'mod_fcgid_idle_timeout', - 'type' => 'int', + 'type' => 'number', 'default' => 30, 'save_method' => 'storeSettingField' ) @@ -124,5 +125,3 @@ return array( ) ) ); - -?> diff --git a/actions/admin/settings/136.phpfpm.php b/actions/admin/settings/136.phpfpm.php index eca70ba4..903afaf4 100644 --- a/actions/admin/settings/136.phpfpm.php +++ b/actions/admin/settings/136.phpfpm.php @@ -18,12 +18,13 @@ return array( 'groups' => array( 'phpfpm' => array( 'title' => $lng['admin']['phpfpm_settings'], + 'icon' => 'fa-brands fa-php', 'fields' => array( 'system_phpfpm_enabled' => array( 'label' => $lng['serversettings']['phpfpm'], 'settinggroup' => 'phpfpm', 'varname' => 'enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'plausibility_check_method' => array( @@ -36,9 +37,8 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['defaultini'], 'settinggroup' => 'phpfpm', 'varname' => 'defaultini', - 'type' => 'option', + 'type' => 'select', 'default' => '1', - 'option_mode' => 'one', 'option_options_method' => array( '\\Froxlor\\Http\\PhpConfig', 'getPhpConfigs' @@ -49,7 +49,7 @@ return array( 'label' => $lng['serversettings']['phpfpm_settings']['aliasconfigdir'], 'settinggroup' => 'phpfpm', 'varname' => 'aliasconfigdir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'confdir', 'default' => '/var/www/php-fpm/', 'save_method' => 'storeSettingField' @@ -58,7 +58,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['tmpdir'], 'settinggroup' => 'phpfpm', 'varname' => 'tmpdir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/var/customers/tmp/', 'save_method' => 'storeSettingField' @@ -67,7 +67,7 @@ return array( 'label' => $lng['serversettings']['mod_fcgid']['peardir'], 'settinggroup' => 'phpfpm', 'varname' => 'peardir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'string_delimiter' => ':', 'string_emptyallowed' => true, @@ -78,7 +78,7 @@ return array( 'label' => $lng['serversettings']['phpfpm_settings']['envpath'], 'settinggroup' => 'phpfpm', 'varname' => 'envpath', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'string_delimiter' => ':', 'string_emptyallowed' => true, @@ -89,7 +89,7 @@ return array( 'label' => $lng['serversettings']['phpfpm_settings']['ipcdir'], 'settinggroup' => 'phpfpm', 'varname' => 'fastcgi_ipcdir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/var/lib/apache2/fastcgi/', 'save_method' => 'storeSettingField' @@ -98,7 +98,7 @@ return array( 'label' => $lng['phpfpm']['use_mod_proxy'], 'settinggroup' => 'phpfpm', 'varname' => 'use_mod_proxy', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'visible' => \Froxlor\Settings::Get('system.apache24'), 'save_method' => 'storeSettingField' @@ -107,7 +107,7 @@ return array( 'label' => $lng['phpfpm']['ini_flags'], 'settinggroup' => 'phpfpm', 'varname' => 'ini_flags', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -115,7 +115,7 @@ return array( 'label' => $lng['phpfpm']['ini_values'], 'settinggroup' => 'phpfpm', 'varname' => 'ini_values', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -123,7 +123,7 @@ return array( 'label' => $lng['phpfpm']['ini_admin_flags'], 'settinggroup' => 'phpfpm', 'varname' => 'ini_admin_flags', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -131,11 +131,11 @@ return array( 'label' => $lng['phpfpm']['ini_admin_values'], 'settinggroup' => 'phpfpm', 'varname' => 'ini_admin_values', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField' ) ) ) ) -); +); diff --git a/actions/admin/settings/137.perl.php b/actions/admin/settings/137.perl.php index 9244fec2..d8581dfe 100644 --- a/actions/admin/settings/137.perl.php +++ b/actions/admin/settings/137.perl.php @@ -18,12 +18,13 @@ return array( 'groups' => array( 'perl' => array( 'title' => $lng['admin']['perl_settings'], + 'icon' => 'fa-solid fa-code', 'fields' => array( 'perl_path' => array( 'label' => $lng['serversettings']['perl_path'], 'settinggroup' => 'system', 'varname' => 'perl_path', - 'type' => 'string', + 'type' => 'text', 'default' => '/usr/bin/perl', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -34,7 +35,7 @@ return array( 'label' => $lng['serversettings']['perl']['suexecworkaround'], 'settinggroup' => 'perl', 'varname' => 'suexecworkaround', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -45,7 +46,7 @@ return array( 'label' => $lng['serversettings']['perl']['suexeccgipath'], 'settinggroup' => 'perl', 'varname' => 'suexecpath', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/var/www/cgi-bin/', 'save_method' => 'storeSettingField', @@ -57,7 +58,7 @@ return array( 'label' => $lng['serversettings']['perl_server'], 'settinggroup' => 'serversettings', 'varname' => 'perl_server', - 'type' => 'string', + 'type' => 'text', 'default' => 'unix:/var/run/nginx/cgiwrap-dispatch.sock', 'save_method' => 'storeSettingField', 'websrv_avail' => array( @@ -68,5 +69,3 @@ return array( ) ) ); - -?> diff --git a/actions/admin/settings/140.statistics.php b/actions/admin/settings/140.statistics.php index 23b51a63..2a074263 100644 --- a/actions/admin/settings/140.statistics.php +++ b/actions/admin/settings/140.statistics.php @@ -20,15 +20,15 @@ return array( 'groups' => array( 'statistics' => array( 'title' => $lng['admin']['statisticsettings'], + 'icon' => 'fa-solid fa-chart-area', 'fields' => array( 'system_webalizer_quiet' => array( 'label' => $lng['serversettings']['webalizer_quiet'], 'settinggroup' => 'system', 'varname' => 'webalizer_quiet', - 'type' => 'option', + 'type' => 'select', 'default' => 2, - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 0 => $lng['admin']['webalizer']['normal'], 1 => $lng['admin']['webalizer']['quiet'], 2 => $lng['admin']['webalizer']['veryquiet'] @@ -40,7 +40,7 @@ return array( 'label' => $lng['serversettings']['awstats_enabled'], 'settinggroup' => 'system', 'varname' => 'awstats_enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -48,7 +48,7 @@ return array( 'label' => $lng['serversettings']['awstats_path'], 'settinggroup' => 'system', 'varname' => 'awstats_path', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/usr/bin/', 'save_method' => 'storeSettingField', @@ -58,7 +58,7 @@ return array( 'label' => $lng['serversettings']['awstats_awstatspath'], 'settinggroup' => 'system', 'varname' => 'awstats_awstatspath', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/usr/bin/', 'save_method' => 'storeSettingField', @@ -68,7 +68,7 @@ return array( 'label' => $lng['serversettings']['awstats_conf'], 'settinggroup' => 'system', 'varname' => 'awstats_conf', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/etc/awstats/', 'save_method' => 'storeSettingField', @@ -78,7 +78,7 @@ return array( 'label' => $lng['serversettings']['awstats_icons'], 'settinggroup' => 'system', 'varname' => 'awstats_icons', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/usr/share/awstats/icon/', 'save_method' => 'storeSettingField', @@ -88,7 +88,7 @@ return array( 'label' => $lng['serversettings']['awstats']['logformat'], 'settinggroup' => 'system', 'varname' => 'awstats_logformat', - 'type' => 'string', + 'type' => 'text', 'default' => '1', 'save_method' => 'storeSettingField', 'visible' => \Froxlor\Settings::Get('system.awstats_enabled') == 1 @@ -97,5 +97,3 @@ return array( ) ) ); - -?> \ No newline at end of file diff --git a/actions/admin/settings/150.mail.php b/actions/admin/settings/150.mail.php index 260471d2..029eaf64 100644 --- a/actions/admin/settings/150.mail.php +++ b/actions/admin/settings/150.mail.php @@ -20,32 +20,33 @@ return array( 'groups' => array( 'mail' => array( 'title' => $lng['admin']['mailserversettings'], + 'icon' => 'fa-solid fa-envelope', 'fields' => array( 'system_vmail_uid' => array( 'label' => $lng['serversettings']['vmail_uid'], 'settinggroup' => 'system', 'varname' => 'vmail_uid', - 'type' => 'int', + 'type' => 'number', 'default' => 2000, - 'int_min' => 1, - 'int_max' => 65535, + 'min' => 2, + 'max' => 65535, 'save_method' => 'storeSettingField' ), 'system_vmail_gid' => array( 'label' => $lng['serversettings']['vmail_gid'], 'settinggroup' => 'system', 'varname' => 'vmail_gid', - 'type' => 'int', + 'type' => 'number', 'default' => 2000, - 'int_min' => 1, - 'int_max' => 65535, + 'min' => 2, + 'max' => 65535, 'save_method' => 'storeSettingField' ), 'system_vmail_homedir' => array( 'label' => $lng['serversettings']['vmail_homedir'], 'settinggroup' => 'system', 'varname' => 'vmail_homedir', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/var/customers/mail/', 'save_method' => 'storeSettingField' @@ -54,7 +55,7 @@ return array( 'label' => $lng['serversettings']['vmail_maildirname'], 'settinggroup' => 'system', 'varname' => 'vmail_maildirname', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => 'Maildir', 'string_emptyallowed' => true, @@ -64,7 +65,7 @@ return array( 'label' => $lng['serversettings']['sendalternativemail'], 'settinggroup' => 'panel', 'varname' => 'sendalternativemail', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -72,7 +73,7 @@ return array( 'label' => $lng['serversettings']['mail_quota_enabled'], 'settinggroup' => 'system', 'varname' => 'mail_quota_enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -80,7 +81,7 @@ return array( 'label' => $lng['serversettings']['mail_quota'], 'settinggroup' => 'system', 'varname' => 'mail_quota', - 'type' => 'int', + 'type' => 'number', 'default' => 100, 'save_method' => 'storeSettingField' ), @@ -88,7 +89,7 @@ return array( 'label' => $lng['serversettings']['catchall_enabled'], 'settinggroup' => 'catchall', 'varname' => 'catchall_enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingResetCatchall' ), @@ -96,7 +97,7 @@ return array( 'label' => $lng['serversettings']['mailtraffic_enabled'], 'settinggroup' => 'system', 'varname' => 'mailtraffic_enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -104,10 +105,9 @@ return array( 'label' => $lng['serversettings']['mdaserver'], 'settinggroup' => 'system', 'varname' => 'mdaserver', - 'type' => 'option', - 'option_mode' => 'one', + 'type' => 'select', 'default' => 'dovecot', - 'option_options' => array( + 'select_var' => array( 'courier' => 'Courier', 'dovecot' => 'Dovecot' ), @@ -117,7 +117,7 @@ return array( 'label' => $lng['serversettings']['mdalog'], 'settinggroup' => 'system', 'varname' => 'mdalog', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'default' => '/var/log/mail.log', 'string_emptyallowed' => true, @@ -127,10 +127,9 @@ return array( 'label' => $lng['serversettings']['mtaserver'], 'settinggroup' => 'system', 'varname' => 'mtaserver', - 'type' => 'option', - 'option_mode' => 'one', + 'type' => 'select', 'default' => 'postfix', - 'option_options' => array( + 'select_var' => array( 'exim4' => 'Exim4', 'postfix' => 'Postfix' ), @@ -140,7 +139,7 @@ return array( 'label' => $lng['serversettings']['mtalog'], 'settinggroup' => 'system', 'varname' => 'mtalog', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'default' => '/var/log/mail.log', 'string_emptyallowed' => true, @@ -150,5 +149,3 @@ return array( ) ) ); - -?> diff --git a/actions/admin/settings/155.ftpserver.php b/actions/admin/settings/155.ftpserver.php index e6797127..e3d8d492 100644 --- a/actions/admin/settings/155.ftpserver.php +++ b/actions/admin/settings/155.ftpserver.php @@ -20,15 +20,15 @@ return array( 'groups' => array( 'ftpserver' => array( 'title' => $lng['admin']['ftpserversettings'], + 'icon' => 'fa-solid fa-arrow-right-arrow-left', 'fields' => array( 'ftpserver' => array( 'label' => $lng['admin']['ftpserver'], 'settinggroup' => 'system', 'varname' => 'ftpserver', - 'type' => 'option', + 'type' => 'select', 'default' => 'proftpd', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 'proftpd' => 'Proftpd', 'pureftpd' => 'Pureftpd' ), @@ -38,5 +38,3 @@ return array( ) ) ); - -?> diff --git a/actions/admin/settings/160.nameserver.php b/actions/admin/settings/160.nameserver.php index 625089b7..dbbd83f8 100644 --- a/actions/admin/settings/160.nameserver.php +++ b/actions/admin/settings/160.nameserver.php @@ -20,12 +20,13 @@ return array( 'groups' => array( 'nameserver' => array( 'title' => $lng['admin']['nameserversettings'], + 'icon' => 'fa-solid fa-globe', 'fields' => array( 'nameserver_enable' => array( 'label' => $lng['serversettings']['bindenable'], 'settinggroup' => 'system', 'varname' => 'bind_enable', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField', 'overview_option' => true @@ -34,7 +35,7 @@ return array( 'label' => $lng['serversettings']['dnseditorenable'], 'settinggroup' => 'system', 'varname' => 'dnsenabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -42,10 +43,9 @@ return array( 'label' => $lng['serversettings']['dns_server'], 'settinggroup' => 'system', 'varname' => 'dns_server', - 'type' => 'option', + 'type' => 'select', 'default' => 'Bind', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 'Bind' => 'Bind9', 'PowerDNS' => 'PowerDNS' ), @@ -55,7 +55,7 @@ return array( 'label' => $lng['serversettings']['bindconf_directory'], 'settinggroup' => 'system', 'varname' => 'bindconf_directory', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/etc/bind/', 'save_method' => 'storeSettingField' @@ -64,7 +64,7 @@ return array( 'label' => $lng['serversettings']['bindreload_command'], 'settinggroup' => 'system', 'varname' => 'bindreload_command', - 'type' => 'string', + 'type' => 'text', 'default' => '/etc/init.d/bind9 reload', 'save_method' => 'storeSettingField' ), @@ -72,7 +72,7 @@ return array( 'label' => $lng['serversettings']['nameservers'], 'settinggroup' => 'system', 'varname' => 'nameservers', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^(([a-z0-9\-\._]+, ?)*[a-z0-9\-\._]+)?$/i', 'string_emptyallowed' => true, 'default' => '', @@ -82,7 +82,7 @@ return array( 'label' => $lng['serversettings']['mxservers'], 'settinggroup' => 'system', 'varname' => 'mxservers', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^(([0-9]+ [a-z0-9\-\._]+, ?)*[0-9]+ [a-z0-9\-\._]+)?$/i', 'string_emptyallowed' => true, 'default' => '', @@ -92,7 +92,7 @@ return array( 'label' => $lng['serversettings']['axfrservers'], 'settinggroup' => 'system', 'varname' => 'axfrservers', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'validate_ip_incl_private', 'string_delimiter' => ',', 'string_emptyallowed' => true, @@ -103,10 +103,9 @@ return array( 'label' => $lng['serversettings']['powerdns_mode'], 'settinggroup' => 'system', 'varname' => 'powerdns_mode', - 'type' => 'option', + 'type' => 'select', 'default' => 'Native', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 'Native' => 'Native', 'Master' => 'Master' ), @@ -116,7 +115,7 @@ return array( 'label' => $lng['serversettings']['mail_also_with_mxservers'], 'settinggroup' => 'system', 'varname' => 'dns_createmailentry', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -124,7 +123,7 @@ return array( 'label' => $lng['serversettings']['caa_entry'], 'settinggroup' => 'system', 'varname' => 'dns_createcaaentry', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -132,7 +131,7 @@ return array( 'label' => $lng['serversettings']['caa_entry_custom'], 'settinggroup' => 'caa', 'varname' => 'caa_entry', - 'type' => 'text', + 'type' => 'textarea', 'default' => '', 'save_method' => 'storeSettingField' ), @@ -140,18 +139,17 @@ return array( 'label' => $lng['serversettings']['defaultttl'], 'settinggroup' => 'system', 'varname' => 'defaultttl', - 'type' => 'int', + 'type' => 'number', 'default' => 604800, /* 1 week */ - 'int_min' => 3600, /* 1 hour */ - 'int_max' => 2147483647, /* integer max */ + 'min' => 3600, /* 1 hour */ + 'max' => 2147483647, /* integer max */ 'save_method' => 'storeSettingField' ), 'system_soaemail' => array( 'label' => $lng['serversettings']['soaemail'], 'settinggroup' => 'system', 'varname' => 'soaemail', - 'type' => 'string', - 'string_type' => 'mail', + 'type' => 'email', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' diff --git a/actions/admin/settings/170.logger.php b/actions/admin/settings/170.logger.php index 023a5ce3..d38f87aa 100644 --- a/actions/admin/settings/170.logger.php +++ b/actions/admin/settings/170.logger.php @@ -20,12 +20,13 @@ return array( 'groups' => array( 'logging' => array( 'title' => $lng['admin']['loggersettings'], + 'icon' => 'fa-solid fa-file-lines', 'fields' => array( 'logger_enabled' => array( 'label' => $lng['serversettings']['logger']['enable'], 'settinggroup' => 'logger', 'varname' => 'enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'overview_option' => true @@ -34,10 +35,9 @@ return array( 'label' => $lng['serversettings']['logger']['severity'], 'settinggroup' => 'logger', 'varname' => 'severity', - 'type' => 'option', + 'type' => 'select', 'default' => 1, - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 1 => $lng['admin']['logger']['normal'], 2 => $lng['admin']['logger']['paranoid'] ), @@ -47,10 +47,10 @@ return array( 'label' => $lng['serversettings']['logger']['types'], 'settinggroup' => 'logger', 'varname' => 'logtypes', - 'type' => 'option', + 'type' => 'select', 'default' => 'syslog,mysql', - 'option_mode' => 'multiple', - 'option_options' => array( + 'select_mode' => 'multiple', + 'select_var' => array( 'syslog' => 'syslog', 'file' => 'file', 'mysql' => 'mysql' @@ -61,7 +61,7 @@ return array( 'label' => $lng['serversettings']['logger']['logfile'], 'settinggroup' => 'logger', 'varname' => 'logfile', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'file', 'string_emptyallowed' => true, 'default' => '', @@ -71,10 +71,9 @@ return array( 'label' => $lng['serversettings']['logger']['logcron'], 'settinggroup' => 'logger', 'varname' => 'log_cron', - 'type' => 'option', + 'type' => 'select', 'default' => 0, - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( 0 => $lng['serversettings']['logger']['logcronoption']['never'], 1 => $lng['serversettings']['logger']['logcronoption']['once'], 2 => $lng['serversettings']['logger']['logcronoption']['always'] @@ -85,5 +84,3 @@ return array( ) ) ); - -?> diff --git a/actions/admin/settings/180.dkim.php b/actions/admin/settings/180.dkim.php index 76f74ff6..ccb5775b 100644 --- a/actions/admin/settings/180.dkim.php +++ b/actions/admin/settings/180.dkim.php @@ -20,12 +20,13 @@ return array( 'groups' => array( 'dkim' => array( 'title' => $lng['admin']['dkimsettings'], + 'icon' => 'fa-solid fa-fingerprint', 'fields' => array( 'dkim_enabled' => array( 'label' => $lng['dkim']['use_dkim'], 'settinggroup' => 'dkim', 'varname' => 'use_dkim', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingFieldInsertBindTask', 'overview_option' => true @@ -34,7 +35,7 @@ return array( 'label' => $lng['dkim']['dkim_prefix'], 'settinggroup' => 'dkim', 'varname' => 'dkim_prefix', - 'type' => 'string', + 'type' => 'text', 'string_type' => 'dir', 'default' => '/etc/postfix/dkim/', 'save_method' => 'storeSettingField' @@ -43,7 +44,7 @@ return array( 'label' => $lng['dkim']['privkeysuffix'], 'settinggroup' => 'dkim', 'varname' => 'privkeysuffix', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^[a-z0-9\._]+$/i', 'default' => '.priv', 'save_method' => 'storeSettingField' @@ -52,7 +53,7 @@ return array( 'label' => $lng['dkim']['dkim_domains'], 'settinggroup' => 'dkim', 'varname' => 'dkim_domains', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^[a-z0-9\._]+$/i', 'default' => 'domains', 'save_method' => 'storeSettingField' @@ -61,7 +62,7 @@ return array( 'label' => $lng['dkim']['dkim_dkimkeys'], 'settinggroup' => 'dkim', 'varname' => 'dkim_dkimkeys', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^[a-z0-9\._]+$/i', 'default' => 'dkim-keys.conf', 'save_method' => 'storeSettingField' @@ -70,10 +71,10 @@ return array( 'label' => $lng['dkim']['dkim_algorithm'], 'settinggroup' => 'dkim', 'varname' => 'dkim_algorithm', - 'type' => 'option', + 'type' => 'select', 'default' => 'all', - 'option_mode' => 'multiple', - 'option_options' => array( + 'select_mode' => 'multiple', + 'select_var' => array( 'all' => 'All', 'sha1' => 'SHA1', 'sha256' => 'SHA256' @@ -84,10 +85,9 @@ return array( 'label' => $lng['dkim']['dkim_servicetype'], 'settinggroup' => 'dkim', 'varname' => 'dkim_servicetype', - 'type' => 'option', + 'type' => 'select', 'default' => '0', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( '0' => 'All', '1' => 'E-Mail' ), @@ -100,10 +100,9 @@ return array( ), 'settinggroup' => 'dkim', 'varname' => 'dkim_keylength', - 'type' => 'option', + 'type' => 'select', 'default' => '1024', - 'option_mode' => 'one', - 'option_options' => array( + 'select_var' => array( '1024' => '1024 Bit', '2048' => '2048 Bit' ), @@ -113,7 +112,7 @@ return array( 'label' => $lng['dkim']['dkim_notes'], 'settinggroup' => 'dkim', 'varname' => 'dkim_notes', - 'type' => 'string', + 'type' => 'text', 'string_regexp' => '/^[a-z0-9\._]+$/i', 'default' => '', 'save_method' => 'storeSettingFieldInsertBindTask' @@ -122,7 +121,7 @@ return array( 'label' => $lng['dkim']['dkimrestart_command'], 'settinggroup' => 'dkim', 'varname' => 'dkimrestart_command', - 'type' => 'string', + 'type' => 'text', 'default' => '/etc/init.d/dkim-filter restart', 'save_method' => 'storeSettingField' ) @@ -130,5 +129,3 @@ return array( ) ) ); - -?> diff --git a/actions/admin/settings/185.spf.php b/actions/admin/settings/185.spf.php index 9d0fbcee..402d4de1 100644 --- a/actions/admin/settings/185.spf.php +++ b/actions/admin/settings/185.spf.php @@ -18,12 +18,13 @@ return array( 'groups' => array( 'spf' => array( 'title' => $lng['admin']['spfsettings'], + 'icon' => 'fa-solid fa-clipboard-check', 'fields' => array( 'spf_enabled' => array( 'label' => $lng['spf']['use_spf'], 'settinggroup' => 'spf', 'varname' => 'use_spf', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'overview_option' => true @@ -32,7 +33,7 @@ return array( 'label' => $lng['spf']['spf_entry'], 'settinggroup' => 'spf', 'varname' => 'spf_entry', - 'type' => 'string', + 'type' => 'text', 'default' => '"v=spf1 a mx -all"', 'save_method' => 'storeSettingField' ) @@ -40,5 +41,3 @@ return array( ) ) ); - -?> diff --git a/actions/admin/settings/210.security.php b/actions/admin/settings/210.security.php index 1cecb59e..e11f7c89 100644 --- a/actions/admin/settings/210.security.php +++ b/actions/admin/settings/210.security.php @@ -20,12 +20,13 @@ return array( 'groups' => array( 'security' => array( 'title' => $lng['admin']['security_settings'], + 'icon' => 'fa-solid fa-user-lock', 'fields' => array( 'panel_unix_names' => array( 'label' => $lng['serversettings']['unix_names'], 'settinggroup' => 'panel', 'varname' => 'unix_names', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => true, 'save_method' => 'storeSettingField' ), @@ -33,7 +34,7 @@ return array( 'label' => $lng['serversettings']['mailpwcleartext'], 'settinggroup' => 'system', 'varname' => 'mailpwcleartext', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -41,9 +42,8 @@ return array( 'label' => $lng['serversettings']['passwordcryptfunc'], 'settinggroup' => 'system', 'varname' => 'passwordcryptfunc', - 'type' => 'option', + 'type' => 'select', 'default' => 0, - 'option_mode' => 'one', 'option_options_method' => array( '\\Froxlor\\System\\Crypt', 'getAvailablePasswordHashes' @@ -54,7 +54,7 @@ return array( 'label' => $lng['serversettings']['allow_error_report_admin'], 'settinggroup' => 'system', 'varname' => 'allow_error_report_admin', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -62,7 +62,7 @@ return array( 'label' => $lng['serversettings']['allow_error_report_customer'], 'settinggroup' => 'system', 'varname' => 'allow_error_report_customer', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -70,7 +70,7 @@ return array( 'label' => $lng['serversettings']['allow_allow_customer_shell'], 'settinggroup' => 'system', 'varname' => 'allow_customer_shell', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField' ), @@ -78,7 +78,7 @@ return array( 'label' => $lng['serversettings']['available_shells'], 'settinggroup' => 'system', 'varname' => 'available_shells', - 'type' => 'string', + 'type' => 'text', 'string_emptyallowed' => true, 'default' => '', 'save_method' => 'storeSettingField' @@ -87,7 +87,7 @@ return array( 'label' => $lng['serversettings']['froxlorusergroup'], 'settinggroup' => 'system', 'varname' => 'froxlorusergroup', - 'type' => 'string', + 'type' => 'text', 'default' => '', 'save_method' => 'storeSettingField', 'plausibility_check_method' => array( diff --git a/actions/admin/settings/220.quota.php b/actions/admin/settings/220.quota.php index cf79b4e1..949343b3 100644 --- a/actions/admin/settings/220.quota.php +++ b/actions/admin/settings/220.quota.php @@ -17,12 +17,13 @@ return array( 'groups' => array( 'diskquota' => array( 'title' => $lng['diskquota'], + 'icon' => 'fa-solid fa-sliders', 'fields' => array( 'diskquota_enabled' => array( 'label' => $lng['serversettings']['diskquota_enabled'], 'settinggroup' => 'system', 'varname' => 'diskquota_enabled', - 'type' => 'bool', + 'type' => 'checkbox', 'default' => false, 'save_method' => 'storeSettingField', 'overview_option' => true @@ -31,7 +32,7 @@ return array( 'label' => $lng['serversettings']['diskquota_repquota_path']['description'], 'settinggroup' => 'system', 'varname' => 'diskquota_repquota_path', - 'type' => 'string', + 'type' => 'text', 'default' => '/usr/sbin/repquota', 'save_method' => 'storeSettingField' ), @@ -39,7 +40,7 @@ return array( 'label' => $lng['serversettings']['diskquota_quotatool_path']['description'], 'settinggroup' => 'system', 'varname' => 'diskquota_quotatool_path', - 'type' => 'string', + 'type' => 'text', 'default' => '/usr/bin/quotatool', 'save_method' => 'storeSettingField' ), @@ -47,7 +48,7 @@ return array( 'label' => $lng['serversettings']['diskquota_customer_partition']['description'], 'settinggroup' => 'system', 'varname' => 'diskquota_customer_partition', - 'type' => 'string', + 'type' => 'text', 'default' => '/dev/root', 'save_method' => 'storeSettingField' ) @@ -55,5 +56,3 @@ return array( ) ) ); - -?> diff --git a/admin_settings.php b/admin_settings.php index fffebd9e..40552efb 100644 --- a/admin_settings.php +++ b/admin_settings.php @@ -19,6 +19,7 @@ use Froxlor\Database\Database; use Froxlor\Settings; use Froxlor\Api\Commands\Froxlor; +use Froxlor\UI\Panel\UI; const AREA = 'admin'; require __DIR__ . '/lib/init.php'; @@ -85,18 +86,15 @@ if ($page == 'overview' && $userinfo['change_serversettings'] == '1') { $_part = isset($_POST['part']) ? $_POST['part'] : ''; } - $fields = \Froxlor\UI\Form::buildFormEx($settings_data, $_part); + $fields = \Froxlor\UI\Form::buildForm($settings_data, $_part); - $settings_page = ''; - if ($_part == '') { - eval("\$settings_page .= \"" . \Froxlor\UI\Template::getTemplate("settings/settings_overview") . "\";"); + if ($_part == '' || $_part = 'all') { + UI::twigBuffer('settings/index.html.twig', ['fields' => $fields]); } else { - eval("\$settings_page .= \"" . \Froxlor\UI\Template::getTemplate("settings/settings") . "\";"); + UI::twigBuffer('settings/detailpart.html.twig', ['fields' => $fields]); } - eval("echo \"" . \Froxlor\UI\Template::getTemplate("settings/settings_form_begin") . "\";"); - eval("echo \$settings_page;"); - eval("echo \"" . \Froxlor\UI\Template::getTemplate("settings/settings_form_end") . "\";"); + UI::twigOutputBuffer(); } } elseif ($page == 'phpinfo' && $userinfo['change_serversettings'] == '1') { ob_start(); diff --git a/lib/Froxlor/PhpHelper.php b/lib/Froxlor/PhpHelper.php index 8f6bad9b..bb9d01af 100644 --- a/lib/Froxlor/PhpHelper.php +++ b/lib/Froxlor/PhpHelper.php @@ -172,7 +172,6 @@ class PhpHelper public static function loadConfigArrayDir() { - // Workaround until we use gettext global $lng, $theme; // we now use dynamic function parameters diff --git a/lib/Froxlor/UI/Data.php b/lib/Froxlor/UI/Data.php index ee34f012..29bebe07 100644 --- a/lib/Froxlor/UI/Data.php +++ b/lib/Froxlor/UI/Data.php @@ -1,4 +1,5 @@ $groupdetails) { - if (isset($groupdetails['title']) && $groupdetails['title'] != '') { - $fields .= self::getFormGroupOutput($groupname, $groupdetails); - } - - if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) { - // Prefetch form fields - foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - $groupdetails['fields'][$fieldname] = self::arrayMergePrefix($fielddetails, $fielddetails['type'], self::prefetchFormFieldData($fieldname, $fielddetails)); - $form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname]; - } - - // Collect form field output - foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - $fields .= self::getFormFieldOutput($fieldname, $fielddetails); - } - } - } - } - - return $fields; - } - - public static function buildFormEx($form, $part = '') - { - $fields = ''; + $fields = []; if (\Froxlor\Validate\Form::validateFormDefinition($form)) { foreach ($form['groups'] as $groupname => $groupdetails) { // show overview - if ($part == '') { + if ($part == '' || $part == 'all') { if (isset($groupdetails['title']) && $groupdetails['title'] != '') { - $fields .= self::getFormOverviewGroupOutput($groupname, $groupdetails); + $fields[] = self::getFormOverviewGroupOutput($groupname, $groupdetails); } - } elseif ($part != '' && ($groupname == $part || $part == 'all')) { + } elseif ($part != '' && $groupname == $part) { // only show one section /** * this part checks for the 'websrv_avail' entry in the settings-array @@ -56,7 +28,7 @@ class Form $do_show = true; if (isset($groupdetails['websrv_avail']) && is_array($groupdetails['websrv_avail'])) { $websrv = Settings::Get('system.webserver'); - if (! in_array($websrv, $groupdetails['websrv_avail'])) { + if (!in_array($websrv, $groupdetails['websrv_avail'])) { $do_show = false; } } @@ -68,24 +40,18 @@ class Form $do_show = $groupdetails['visible']; } - // if ($do_show) { - if (isset($groupdetails['title']) && $groupdetails['title'] != '') { - $fields .= self::getFormGroupOutput($groupname, $groupdetails); - } + $fields['_group'] = [ + 'title' => $groupdetails['title'] ?? 'unknown group', + 'do_show' => $do_show + ]; if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) { - // Prefetch form fields - foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - $groupdetails['fields'][$fieldname] = self::arrayMergePrefix($fielddetails, $fielddetails['type'], self::prefetchFormFieldData($fieldname, $fielddetails)); - $form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname]; - } - // Collect form field output foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - $fields .= self::getFormFieldOutput($fieldname, $fielddetails); + $fields[$fieldname] = self::getFormFieldOutput($fieldname, $fielddetails); + $fields[$fieldname] = array_merge($fields[$fieldname], self::prefetchFormFieldData($fieldname, $fielddetails)); } } - // } } } } @@ -148,7 +114,7 @@ class Form $question = $plausibility_check[1]; unset($plausibility_check[1]); $targetname = implode(' ', $plausibility_check); - if (! isset($input[$question])) { + if (!isset($input[$question])) { if (is_array($url_params) && isset($url_params['filename'])) { $filename = $url_params['filename']; unset($url_params['filename']); @@ -200,7 +166,7 @@ class Form if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) { // Prefetch form fields foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - if (! $only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { + if (!$only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { $groupdetails['fields'][$fieldname] = self::arrayMergePrefix($fielddetails, $fielddetails['type'], self::prefetchFormFieldData($fieldname, $fielddetails)); $form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname]; } @@ -214,7 +180,7 @@ class Form if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) { // Validate fields foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - if (! $only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { + if (!$only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { $newfieldvalue = self::getFormFieldData($fieldname, $fielddetails, $input); if ($newfieldvalue != $fielddetails['value']) { if (($error = \Froxlor\Validate\Form::validateFormField($fieldname, $fielddetails, $newfieldvalue)) != true) { @@ -236,7 +202,7 @@ class Form if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) { // Check fields for plausibility foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - if (! $only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { + if (!$only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { if (($plausibility_check = self::checkPlausibilityFormField($fieldname, $fielddetails, $submitted_fields[$fieldname], $submitted_fields)) !== false) { if (is_array($plausibility_check) && isset($plausibility_check[0])) { if ($plausibility_check[0] == \Froxlor\Validate\Check::FORMFIELDS_PLAUSIBILITY_CHECK_OK) { @@ -252,7 +218,7 @@ class Form $question = $plausibility_check[1]; unset($plausibility_check[1]); $targetname = implode(' ', $plausibility_check); - if (! isset($input[$question])) { + if (!isset($input[$question])) { if (is_array($url_params) && isset($url_params['filename'])) { $filename = $url_params['filename']; unset($url_params['filename']); @@ -279,7 +245,7 @@ class Form if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) { // Save fields foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { - if (! $only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { + if (!$only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) { if (isset($changed_fields[$fieldname])) { if (($saved_field = self::saveFormField($fieldname, $fielddetails, self::manipulateFormFieldData($fieldname, $fielddetails, $changed_fields[$fieldname]))) !== false) { $saved_fields = array_merge($saved_fields, $saved_field); @@ -306,7 +272,7 @@ class Form '\\Froxlor\\Settings\\Store', $fielddata['save_method'] ), $fielddata, $newfieldvalue); - } elseif (is_array($fielddata) && ! isset($fielddata['save_method'])) { + } elseif (is_array($fielddata) && !isset($fielddata['save_method'])) { $returnvalue = true; } else { $returnvalue = false; @@ -322,7 +288,7 @@ class Form '\\Froxlor\\Settings\\Store', $fielddata['save_method'] ), $fieldname, $fielddata, $newfieldvalue); - } elseif (is_array($fielddata) && ! isset($fielddata['save_method'])) { + } elseif (is_array($fielddata) && !isset($fielddata['save_method'])) { $returnvalue = array(); } else { $returnvalue = false; @@ -330,87 +296,79 @@ class Form return $returnvalue; } - public static function getFormGroupOutput($groupname, $groupdetails) - { - global $lng, $theme; - eval("\$group = \"" . \Froxlor\UI\Template::getTemplate("settings/settings_group") . "\";"); - return $group; - } - public static function getFormOverviewGroupOutput($groupname, $groupdetails) { - global $lng, $filename, $s, $theme; - - $group = ''; - $title = $groupdetails['title']; - $part = $groupname; + global $lng; $activated = true; - $option = ''; + $option = []; if (isset($groupdetails['fields'])) { foreach ($groupdetails['fields'] as $fieldname => $fielddetails) { if (isset($fielddetails['overview_option']) && $fielddetails['overview_option'] == true) { - if ($fielddetails['type'] != 'option' && $fielddetails['type'] != 'bool') { - \Froxlor\UI\Response::standard_error('overviewsettingoptionisnotavalidfield'); + if ($fielddetails['type'] != 'select' && $fielddetails['type'] != 'checkbox' && $fielddetails['type'] != 'option' && $fielddetails['type'] != 'bool') { + // throw exception here as this is most likely an internal issue + // if we messed up the arrays + \Froxlor\UI\Response::standard_error('overviewsettingoptionisnotavalidfield', '', true); } - if ($fielddetails['type'] == 'option') { - $options_array = $fielddetails['option_options']; - $options = ''; + if ($fielddetails['type'] == 'select') { + $options_array = $fielddetails['select_var']; + $options = []; foreach ($options_array as $value => $vtitle) { - $options .= \Froxlor\UI\HTML::makeoption($vtitle, $value, Settings::Get($fielddetails['settinggroup'] . '.' . $fielddetails['varname'])); + $options[] = [ + 'title' => $vtitle, + 'value' => $value, + 'default' => Settings::Get($fielddetails['settinggroup'] . '.' . $fielddetails['varname']) + ]; } - $option .= $fielddetails['label'] . ': '; - $option .= ''; + $option['type'] = 'select'; + $option['label'] = $fielddetails['label']; + $option['fieldname'] = $fieldname; + $option['options'] = $options; $activated = true; } else { - $option .= $lng['admin']['activated'] . ': '; - $option .= \Froxlor\UI\HTML::makeyesno($fieldname, '1', '0', Settings::Get($fielddetails['settinggroup'] . '.' . $fielddetails['varname'])); + $option['type'] = 'bool'; + $option['label'] = $lng['admin']['activated']; + $option['fieldname'] = $fieldname; + $option['value'] = Settings::Get($fielddetails['settinggroup'] . '.' . $fielddetails['varname']); $activated = (int) Settings::Get($fielddetails['settinggroup'] . '.' . $fielddetails['varname']); } } } } + $item = [ + 'title' => $groupdetails['title'], + 'icon' => $groupdetails['icon'] ?? 'fa-solid fa-circle-question', + 'part' => $groupname, + 'activated' => $activated, + 'option' => $option + ]; + /** * this part checks for the 'websrv_avail' entry in the settings * if found, we check if the current webserver is in the array. - * If this - * is not the case, we change the setting type to "hidden", #502 + * If this is not the case, we change the setting type to "hidden", #502 */ - $do_show = true; if (isset($groupdetails['websrv_avail']) && is_array($groupdetails['websrv_avail'])) { $websrv = Settings::Get('system.webserver'); - if (! in_array($websrv, $groupdetails['websrv_avail'])) { - $do_show = false; - $title .= sprintf($lng['serversettings']['option_unavailable_websrv'], implode(", ", $groupdetails['websrv_avail'])); - // hack disabled flag into select-box - $option = str_replace(' + @@ -46,7 +59,7 @@ {% endfor %} {% else %}
- +
{% endif %} {% endmacro %} @@ -87,7 +100,7 @@ {% if field.next_to is defined %}
{% endif %} - + {% if field.type == 'hidden' and field.display is defined %} {% endif %} @@ -125,9 +138,9 @@ {% if field.next_to is defined %}
{% endif %} - {% for val,txt in field.select_var %} - + {% endfor %} {% if field.next_to is defined %} @@ -142,7 +155,7 @@ {% endmacro %} {% macro textarea(id, field) %} - + {% endmacro %} {% macro link(id, field) %} diff --git a/templates/Froxlor/settings/detailpart.html.twig b/templates/Froxlor/settings/detailpart.html.twig new file mode 100644 index 00000000..e8c61fe9 --- /dev/null +++ b/templates/Froxlor/settings/detailpart.html.twig @@ -0,0 +1,16 @@ +{% extends "Froxlor/settings/index.html.twig" %} + +{% block settings %} + + {% import "Froxlor/form/formfields.html.twig" as formfields %} + +
+
+ {% for id,setting in fields %} + {% if id != '_group' %} + {{ formfields.fieldrow(id, setting, false, true) }} + {% endif %} + {% endfor %} +
+
+{% endblock %} diff --git a/templates/Froxlor/settings/index.html.twig b/templates/Froxlor/settings/index.html.twig new file mode 100644 index 00000000..145b8ca5 --- /dev/null +++ b/templates/Froxlor/settings/index.html.twig @@ -0,0 +1,48 @@ +{% extends "Froxlor/userarea.html.twig" %} + +{% block content %} + +
+
+ +
+ + + {% block settings %} +
+ {% for field in fields %} +
+
+
+ {% if field.activated %} + + + + {% else %} + + {% endif %} +

{{ field.title }}{% if field.info is defined and field.info is not empty %}
{{ field.info|raw }}{% endif %}

+
+
+
+ {% endfor %} +
+ {% endblock %} + +
+ +
+ +
+{% endblock %}