Install/upgrade and UI updates: monolithic install, SnappyMail, firewall, to-do docs

- Install: monolithic install script, venvsetup_modules and venvsetup_monolithic,
  install_modules (parse_main, menus, actions, etc.), remove legacy email-configs
  and php-configs from repo, add install/snappymail and Rainloop->SnappyMail
  migration script
- CyberPanel: urls.py, cyberpanel.sh, cyberpanel_upgrade_monolithic.sh tweaks
- Firewall: firewall.js and firewall.html updates
- plogical: mailUtilities.py, upgrade.py; upgrade_modules 10_post_tweak.sh
- pluginHolder: deploy-plugins-template.sh
- to-do: docs (git conflicts, HTTP 500 recovery, phpMyAdmin, plugins, SnappyMail
  rename, install/upgrade OS support, security whitelist, etc.)
- upgrade_modules: 02_checks_part1/part2.txt
This commit is contained in:
master3395
2026-02-16 00:12:03 +01:00
parent 9b57272422
commit a6417b2bda
64 changed files with 9982 additions and 9251 deletions

View File

@@ -31,6 +31,8 @@ app.controller('firewallController', function ($scope, $http, $timeout) {
$scope.couldNotConnect = true;
$scope.rulesDetails = false;
// Initialize rules array - prevents "Cannot read 'length' of undefined" when template evaluates rules.length before API loads
$scope.rules = [];
// Banned IPs variables tab from hash so we stay on /firewall/ (avoids 404 on servers without /firewall/firewall-rules/)
function tabFromHash() {
var h = (window.location.hash || '').replace(/^#/, '');

View File

@@ -1293,7 +1293,7 @@
<!-- Rules Table -->
<div ng-hide="rulesDetails" class="rules-table-section">
<div class="table-responsive">
<table class="rules-table" ng-if="rules.length > 0">
<table class="rules-table" ng-if="rules && rules.length > 0">
<thead>
<tr>
<th>{% trans "ID" %}</th>
@@ -1361,7 +1361,7 @@
</div>
<!-- Empty State -->
<div ng-if="rules.length == 0" class="empty-state">
<div ng-if="!rules || rules.length == 0" class="empty-state">
<i class="fas fa-shield-alt empty-icon"></i>
<h3 class="empty-title">{% trans "No Firewall Rules" %}</h3>
<p class="empty-text">{% trans "Add your first firewall rule to control network access to your server." %}</p>