Some design improvements and added settings page

This commit is contained in:
Pinga 2023-11-08 15:54:37 +02:00
parent bf51671e4e
commit ea754362f8
5 changed files with 464 additions and 33 deletions

View file

@ -0,0 +1,16 @@
<?php
namespace App\Controllers;
use App\Models\Tickets;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Container\ContainerInterface;
class SystemController extends Controller
{
public function settings(Request $request, Response $response)
{
return view($response,'admin/system/settings.twig');
}
}

View file

@ -1,6 +1,6 @@
{% extends "layouts/app.twig" %}
{% block title %}{{ __('Log History') }}{% endblock %}
{% block title %}{{ __('EPP History') }}{% endblock %}
{% block content %}
<div class="page-wrapper">
@ -14,7 +14,7 @@
Overview
</div>
<h2 class="page-title">
{{ __('Log History') }}
{{ __('EPP History') }}
</h2>
</div>
<!-- Page title actions -->

View file

@ -0,0 +1,402 @@
{% extends "layouts/app.twig" %}
{% block title %}{{ __('System Configuration') }}{% endblock %}
{% block content %}
<div class="page-wrapper">
<!-- Page header -->
<div class="page-header d-print-none">
<div class="container-xl">
<div class="row g-2 align-items-center">
<div class="col">
<!-- Page pre-title -->
<div class="page-pretitle">
Overview
</div>
<h2 class="page-title">
{{ __('System Configuration') }}
</h2>
</div>
</div>
</div>
</div>
<!-- Page body -->
<div class="page-body">
<div class="container-xl">
<div class="col-12">
<div class="card">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs nav-fill" data-bs-toggle="tabs">
<li class="nav-item">
<a href="#tabs-general" class="nav-link active" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12l-2 0l9 -9l9 9l-2 0" /><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" /></svg>
General</a>
</li>
<li class="nav-item">
<a href="#tabs-security" class="nav-link" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/user -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" /><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" /></svg>
Security</a>
</li>
<li class="nav-item">
<a href="#tabs-whois" class="nav-link" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/activity -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 12h4l3 8l4 -16l3 8h4" /></svg>
WHOIS</a>
</li>
<li class="nav-item">
<a href="#tabs-epp" class="nav-link" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12l-2 0l9 -9l9 9l-2 0" /><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" /></svg>
EPP</a>
</li>
<li class="nav-item">
<a href="#tabs-rdap" class="nav-link" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/user -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" /><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" /></svg>
RDAP</a>
</li>
<li class="nav-item">
<a href="#tabs-dns" class="nav-link" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/activity -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 12h4l3 8l4 -16l3 8h4" /></svg>
DNS</a>
</li>
<li class="nav-item">
<a href="#tabs-database" class="nav-link" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12l-2 0l9 -9l9 9l-2 0" /><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" /></svg>
Database</a>
</li>
<li class="nav-item">
<a href="#tabs-automation" class="nav-link" data-bs-toggle="tab"><!-- Download SVG icon from http://tabler-icons.io/i/user -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon me-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" /><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" /></svg>
Automation</a>
</li>
</ul>
</div>
<div class="card-body">
<div class="tab-content">
<div class="tab-pane active show" id="tabs-general">
<h5 class="mt-3">General Settings</h5>
<form>
<!-- Registry Operator's Details -->
<div class="mb-3">
<label for="registryOperator" class="form-label">Registry Operator Name</label>
<input type="text" class="form-control" id="registryOperator" placeholder="Enter registry operator's name">
<div class="form-text">The official name of the organization operating the registry.</div>
</div>
<!-- Default Language -->
<div class="mb-3">
<label for="defaultLanguage" class="form-label">Default Language</label>
<select class="form-select" id="defaultLanguage">
<option selected>Choose...</option>
<option value="en">English</option>
<option value="es">Spanish</option>
<!-- Add more languages as options here -->
</select>
<div class="form-text">The primary language used in the registry system interfaces and communications.</div>
</div>
<!-- Contact Information -->
<div class="mb-3">
<label for="contactEmail" class="form-label">Contact Email</label>
<input type="email" class="form-control" id="contactEmail" placeholder="Enter contact email">
<div class="form-text">The email address for general inquiries to the registry.</div>
</div>
<!-- Operational Parameters -->
<h6 class="mt-4 mb-2">Operational Parameters</h6>
<div class="mb-3">
<label for="registrationPeriod" class="form-label">Domain Registration Period (years)</label>
<input type="number" class="form-control" id="registrationPeriod" placeholder="Enter default registration period">
<div class="form-text">The standard length of time for domain registrations.</div>
</div>
<!-- Pricing -->
<div class="mb-3">
<label for="registrationPrice" class="form-label">Domain Registration Price (USD)</label>
<input type="text" class="form-control" id="registrationPrice" placeholder="Enter price">
<div class="form-text">The base cost for registering a domain for the default period.</div>
</div>
<!-- Registry Handle -->
<div class="mb-3">
<label for="registryHandle" class="form-label">Registry Handle</label>
<input type="text" class="form-control" id="registryHandle" placeholder="Enter registry handle">
<div class="form-text">A unique identifier for the registry which will be appended to each object handle.</div>
</div>
<!-- Reserved Names Management Button -->
<div class="mb-3">
<button type="button" class="btn btn-secondary">Manage Reserved Names</button>
<div class="form-text">Access the management interface for reserved domain names.</div>
</div>
<!-- Save Button -->
<button type="submit" class="btn btn-primary">Save Changes</button>
</form>
</div>
<div class="tab-pane" id="tabs-security">
<h5 class="mt-3">Security Settings</h5>
<form>
<!-- Access Control -->
<div class="mb-3">
<label for="accessControl" class="form-label">Access Control Policy</label>
<select class="form-select" id="accessControl">
<option selected>Choose...</option>
<option value="whitelist">Whitelist</option>
<option value="blacklist">Blacklist</option>
</select>
<div class="form-text">Select how you control access to the registry system. 'Whitelist' allows specific entities, while 'Blacklist' blocks them.</div>
</div>
<!-- User Roles -->
<div class="mb-3">
<label for="userRoles" class="form-label">User Role Management</label>
<button type="button" class="btn btn-secondary">Manage User Roles</button>
<div class="form-text">Define and manage user roles and permissions within the registry system.</div>
</div>
<!-- Authentication Mechanisms -->
<div class="mb-3">
<label for="authenticationMechanism" class="form-label">Authentication Mechanism</label>
<select class="form-select" id="authenticationMechanism">
<option selected>Choose...</option>
<option value="password">Password-based</option>
<option value="2fa">Two-factor Authentication</option>
<option value="certificate">Certificate-based</option>
</select>
<div class="form-text">Choose the primary method of authentication for accessing the registry system.</div>
</div>
<!-- Logging Settings -->
<div class="mb-3">
<label for="loggingLevel" class="form-label">Logging Level</label>
<select class="form-select" id="loggingLevel">
<option selected>Choose...</option>
<option value="info">Info</option>
<option value="warning">Warning</option>
<option value="error">Error</option>
<option value="debug">Debug</option>
</select>
<div class="form-text">Determine the level of detail for system logs.</div>
</div>
<!-- Encryption Options -->
<div class="mb-3">
<label for="encryptionOptions" class="form-label">Data Encryption</label>
<select class="form-select" id="encryptionOptions">
<option selected>Choose...</option>
<option value="at-rest">Encryption at Rest</option>
<option value="in-transit">Encryption in Transit</option>
<option value="both">Both</option>
</select>
<div class="form-text">Select whether to encrypt data at rest, in transit, or both.</div>
</div>
<!-- Additional Security Options -->
<h6 class="mt-4 mb-2">Additional Security Options</h6>
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="firewall" id="firewallEnabled">
<label class="form-check-label" for="firewallEnabled">
Enable Firewall
</label>
</div>
<div class="form-text">Toggle to enable or disable the firewall protection.</div>
</div>
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="antiDdos" id="antiDdosEnabled">
<label class="form-check-label" for="antiDdosEnabled">
Enable Anti-DDoS Measures
</label>
</div>
<div class="form-text">Activate measures to protect against Distributed Denial of Service attacks.</div>
</div>
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="rateLimit" id="rateLimitingEnabled">
<label class="form-check-label" for="rateLimitingEnabled">
Enable Rate Limiting
</label>
</div>
<div class="form-text">Implement rate limiting to prevent abuse of the registry system's interfaces.</div>
</div>
<!-- Save Button -->
<button type="submit" class="btn btn-primary">Save Changes</button>
</form>
</div>
<div class="tab-pane" id="tabs-whois">
<h4>WHOIS tab</h4>
<div>Would allow configuration of WHOIS server settings, privacy options, data display preferences, query rate limits, and other WHOIS-specific settings.</div>
</div>
<div class="tab-pane show" id="tabs-epp">
<h4>EPP tab</h4>
<div>For configuring EPP server details, including command settings, extension support, and client management options.</div>
</div>
<div class="tab-pane" id="tabs-rdap">
<h4>RDAP tab</h4>
<div>Could be used to manage RDAP service parameters, output format settings, bootstrap configurations, and search capabilities.</div>
</div>
<div class="tab-pane" id="tabs-dns">
<h5 class="mt-3">DNS Settings</h5>
<form>
<!-- DNS Server Settings -->
<div class="mb-3">
<label for="primaryDns" class="form-label">Primary DNS Server</label>
<input type="text" class="form-control" id="primaryDns" placeholder="Enter primary DNS server address">
<div class="form-text">The address of the primary DNS server for the registry.</div>
</div>
<div class="mb-3">
<label for="secondaryDns" class="form-label">Secondary DNS Server</label>
<input type="text" class="form-control" id="secondaryDns" placeholder="Enter secondary DNS server address">
<div class="form-text">The address of the secondary DNS server for redundancy.</div>
</div>
<!-- Zone File Generation Settings -->
<div class="mb-3">
<label for="zoneFileFrequency" class="form-label">Zone File Generation Frequency</label>
<select class="form-select" id="zoneFileFrequency">
<option selected>Choose...</option>
<option value="hourly">Hourly</option>
<option value="daily">Daily</option>
<option value="weekly">Weekly</option>
</select>
<div class="form-text">How often the DNS zone files should be generated.</div>
</div>
<!-- DNSSEC Configurations -->
<div class="mb-3">
<label for="dnssecStatus" class="form-label">DNSSEC Status</label>
<select class="form-select" id="dnssecStatus">
<option selected>Choose...</option>
<option value="enabled">Enabled</option>
<option value="disabled">Disabled</option>
</select>
<div class="form-text">Enable or disable DNS Security Extensions (DNSSEC) for the registry.</div>
</div>
<!-- Nameserver Requirements -->
<div class="mb-3">
<label for="minNameservers" class="form-label">Minimum Number of Nameservers</label>
<input type="number" class="form-control" id="minNameservers" placeholder="Enter minimum required nameservers">
<div class="form-text">The minimum number of nameservers required for domain registration.</div>
</div>
<!-- Additional DNS Options -->
<h6 class="mt-4 mb-2">Additional DNS Options</h6>
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="ipv6Support" id="ipv6Support">
<label class="form-check-label" for="ipv6Support">
Support IPv6 Addresses
</label>
<div class="form-text">Enable registry systems to support IPv6 addresses for nameservers.</div>
</div>
</div>
<div class="mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="wildcardSupport" id="wildcardSupport">
<label class="form-check-label" for="wildcardSupport">
Allow Wildcard DNS Records
</label>
<div class="form-text">Permit the use of wildcard DNS records within the domain zone files.</div>
</div>
</div>
<div class="mb-3">
<label for="soaEmail" class="form-label">SOA Email</label>
<input type="email" class="form-control" id="soaEmail" placeholder="Enter email address for SOA record">
<div class="form-text">The email address to be used in the SOA (Start of Authority) record for DNS zones.</div>
</div>
<!-- Save Button -->
<button type="submit" class="btn btn-primary">Save Changes</button>
</form>
</div>
<div class="tab-pane" id="tabs-database">
<h5 class="mt-3">Database Settings</h5>
<form>
<!-- Database Connection Details -->
<h6>Connection Details</h6>
<div class="mb-3">
<label for="dbHost" class="form-label">Database Host</label>
<input type="text" class="form-control" id="dbHost" placeholder="Enter database host">
<div class="form-text">Hostname or IP address of the database server.</div>
</div>
<div class="mb-3">
<label for="dbName" class="form-label">Database Name</label>
<input type="text" class="form-control" id="dbName" placeholder="Enter database name">
<div class="form-text">The name of the database used by the registry.</div>
</div>
<div class="mb-3">
<label for="dbUser" class="form-label">Database User</label>
<input type="text" class="form-control" id="dbUser" placeholder="Enter database user">
<div class="form-text">The username for accessing the database.</div>
</div>
<div class="mb-3">
<label for="dbPassword" class="form-label">Database Password</label>
<input type="password" class="form-control" id="dbPassword" placeholder="Enter database password">
<div class="form-text">The password for the database user.</div>
</div>
<!-- Backup Schedules -->
<h6>Backup Schedules</h6>
<div class="mb-3">
<label for="backupFrequency" class="form-label">Backup Frequency</label>
<select class="form-select" id="backupFrequency">
<option selected>Choose...</option>
<option value="daily">Daily</option>
<option value="weekly">Weekly</option>
<option value="monthly">Monthly</option>
</select>
<div class="form-text">How often database backups should occur.</div>
</div>
<!-- Maintenance Options -->
<h6>Maintenance Options</h6>
<div class="mb-3">
<label for="maintenanceWindow" class="form-label">Maintenance Window</label>
<input type="text" class="form-control" id="maintenanceWindow" placeholder="e.g., Sunday 3:00 AM">
<div class="form-text">Scheduled time for routine database maintenance tasks.</div>
</div>
<!-- Performance Tuning -->
<h6>Performance Tuning</h6>
<div class="mb-3">
<label for="connectionLimit" class="form-label">Connection Limit</label>
<input type="number" class="form-control" id="connectionLimit" placeholder="Enter maximum number of connections">
<div class="form-text">The maximum number of concurrent database connections allowed.</div>
</div>
<div class="mb-3">
<label for="queryCacheSize" class="form-label">Query Cache Size (MB)</label>
<input type="number" class="form-control" id="queryCacheSize" placeholder="Enter query cache size">
<div class="form-text">The size of the query cache to improve read performance.</div>
</div>
<!-- Save Button -->
<button type="submit" class="btn btn-primary">Save Changes</button>
</form>
</div>
<div class="tab-pane" id="tabs-automation">
<h4>Automation tab</h4>
<div>Donec ac vitae diam amet vel leo egestas consequat rhoncus in luctus amet, facilisi sit mauris accumsan nibh habitant senectus</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer footer-transparent d-print-none">
<div class="container-xl">
<div class="col-12 col-lg-auto mt-3 mt-lg-0">
<ul class="list-inline list-inline-dots mb-0">
<li class="list-inline-item">
Copyright &copy; 2023
<a href="https://namingo.org" target="_blank" class="link-secondary">Namingo</a>.
</li>
</ul>
</div>
</div>
</div>
</footer>
</div>
{% endblock %}

View file

@ -6,7 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<title>{% block title %}{% endblock %} | Namingo</title>
<!-- CSS files -->
{% if route_is('domains') or route_is('contacts') or route_is('hosts') or route_is('logs') or route_is('registrars') or route_is('transactions') or route_is('overview') or route_is('reports') %}
{% if route_is('domains') or route_is('contacts') or route_is('hosts') or route_is('epphistory') or route_is('registrars') or route_is('transactions') or route_is('overview') or route_is('reports') %}
{% include 'partials/css-tables.twig' %}
{% else %}
{% include 'partials/css.twig' %}
@ -248,6 +248,13 @@
{{ __('Create Registrar') }}
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('registrars')}}">
{{ __('List Users') }}
</a>
<a class="dropdown-item" href="#">
{{ __('Create User') }}
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">
{{ __('Announcements') }}
</a>
@ -292,7 +299,7 @@
</span>
</a>
</li>
<li {{ is_current_url('logs') ? 'class="nav-item dropdown active"' : 'class="nav-item dropdown"' }}>
<li {{ is_current_url('settings') ? 'class="nav-item dropdown active"' : 'class="nav-item dropdown"' }}>
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside" role="button" aria-expanded="false">
<span class="nav-link-icon d-md-none d-lg-inline-block"><svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z"></path> <path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0"></path></svg>
</span>
@ -301,32 +308,35 @@
</span>
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="{{route('hosts')}}">
{{ __('Configuration') }}
<a class="dropdown-item" href="{{route('settings')}}">
{{ __('Settings') }}
</a>
<a class="dropdown-item" href="#">
{{ __('User Management') }}
</a>
<div class="dropdown-divider"></div>
<div class="dropend">
<a class="dropdown-item dropdown-toggle" href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside" role="button" aria-expanded="false" >
{{ __('Logs') }}
</div>
</li>
<li {{ is_current_url('epphistory') ? 'class="nav-item dropdown active"' : 'class="nav-item dropdown"' }}>
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside" role="button" aria-expanded="false">
<span class="nav-link-icon d-md-none d-lg-inline-block"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-activity" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M3 12h4l3 8l4 -16l3 8h4"></path></svg>
</span>
<span class="nav-link-title">
{{ __('Activity') }}
</span>
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="{{route('logs')}}">
{{ __('Error Log') }}
<a class="dropdown-item" href="#">
{{ __('Message Queue') }}
</a>
<a class="dropdown-item" href="{{route('logs')}}">
{{ __('EPP Log') }}
<a class="dropdown-item" href="{{route('epphistory')}}">
{{ __('EPP History') }}
</a>
<a class="dropdown-item" href="{{route('logs')}}">
{{ __('Audit Log') }}
<a class="dropdown-item" href="#">
{{ __('Audit History') }}
</a>
<a class="dropdown-item" href="{{route('logs')}}">
{{ __('Backup Log') }}
<a class="dropdown-item" href="#">
{{ __('Backup History') }}
</a>
<a class="dropdown-item" href="#">
{{ __('System Log') }}
</a>
</div>
</div>
</div>
</li>
<li {{ is_current_url('ticketview') or is_current_url('newticket') or is_current_url('docs') or is_current_url('mediakit') ? 'class="nav-item dropdown active"' : 'class="nav-item dropdown"' }}>
@ -473,7 +483,7 @@
{% include 'partials/js-contacts.twig' %}
{% elseif route_is('hosts') %}
{% include 'partials/js-hosts.twig' %}
{% elseif route_is('logs') %}
{% elseif route_is('epphistory') %}
{% include 'partials/js-logs.twig' %}
{% elseif route_is('registrars') %}
{% include 'partials/js-registrars.twig' %}

View file

@ -10,6 +10,7 @@ use App\Controllers\RegistrarsController;
use App\Controllers\FinancialsController;
use App\Controllers\ReportsController;
use App\Controllers\ProfileController;
use App\Controllers\SystemController;
use App\Controllers\SupportController;
use App\Middleware\AuthMiddleware;
use App\Middleware\GuestMiddleware;
@ -52,7 +53,7 @@ $app->group('', function ($route) {
$route->map(['GET', 'POST'], '/host/create', HostsController::class . ':create')->setName('hostcreate');
$route->get('/registrars', RegistrarsController::class .':view')->setName('registrars');
$route->get('/logs', LogsController::class .':view')->setName('logs');
$route->get('/epphistory', LogsController::class .':view')->setName('epphistory');
$route->get('/reports', ReportsController::class .':view')->setName('reports');
$route->get('/pricing', FinancialsController::class .':pricing')->setName('pricing');
@ -60,6 +61,8 @@ $app->group('', function ($route) {
$route->get('/transactions', FinancialsController::class .':transactions')->setName('transactions');
$route->get('/overview', FinancialsController::class .':overview')->setName('overview');
$route->get('/settings', SystemController::class .':settings')->setName('settings');
$route->get('/support', SupportController::class .':view')->setName('ticketview');
$route->get('/support/new', SupportController::class .':newticket')->setName('newticket');
$route->get('/support/docs', SupportController::class .':docs')->setName('docs');