Move rendering into private templates

Add an explicit template renderer with HTML views and partials for the app, bootstrap, package, and catalog pages. Move shared reporting setup into config/reporting.php and relocate stylesheet assets under css/.
This commit is contained in:
www-data
2026-05-26 12:50:26 +02:00
parent 2f2e8869d6
commit 475765e31f
55 changed files with 2328 additions and 1175 deletions
+175
View File
@@ -0,0 +1,175 @@
<!doctype html>
<html lang="{{language}}">
<head>
<meta charset="utf-8">
<title>{{title}}</title>
<link rel="stylesheet" href="/css/styles.css">
</head>
<body>
<div class="page">
{{{header_html}}}
<main class="page-main dashboard-main">
<section class="panel">
<h2>{{create_user_label}}</h2>
<form method="post" action="/users?lang={{language_url}}" class="admin-form-grid">
<input type="hidden" name="action" value="create_user">
<label>{{full_name_label}}<br><input type="text" name="full_name" required></label>
<label>{{email_label}}<br><input type="email" name="email" required></label>
<label>{{password_label}}<br><input type="password" name="password" autocomplete="new-password" required></label>
<label><input type="checkbox" name="is_admin" value="1"> {{admin_label}}</label>
<label><input type="checkbox" name="is_enabled" value="1" checked> {{enabled_label}}</label>
<button type="submit">{{create_user_label}}</button>
</form>
</section>
<section class="panel">
<h2>{{user_management_label}}</h2>
<table>
<thead>
<tr>
<th>{{full_name_label}}</th>
<th>{{email_label}}</th>
<th>{{admin_label}}</th>
<th>{{enabled_label}}</th>
<th>{{created_label}}</th>
<th>{{last_login_label}}</th>
<th>{{actions_label}}</th>
</tr>
</thead>
<tbody>
{{{user_rows_html}}}
</tbody>
</table>
</section>
</main>
</div>
</body>
</html>
===
{
"translations": {
"app.title": {
"en": "Racket sandbox",
"nl": "Racket sandbox"
},
"app.manage_prompts": {
"en": "Manage prompts",
"nl": "Prompts beheren"
},
"app.user_management": {
"en": "User management",
"nl": "Gebruikersbeheer"
},
"app.logout": {
"en": "Logout",
"nl": "Uitloggen"
},
"app.language": {
"en": "Language",
"nl": "Taal"
},
"app.logged_in_as": {
"en": "Logged in as:",
"nl": "Ingelogd als:"
},
"app.admin": {
"en": "Admin",
"nl": "Admin"
},
"app.enabled": {
"en": "Enabled",
"nl": "Ingeschakeld"
},
"app.full_name": {
"en": "Full name",
"nl": "Volledige naam"
},
"app.email": {
"en": "Email",
"nl": "E-mail"
},
"app.password": {
"en": "Password",
"nl": "Wachtwoord"
},
"app.new_password": {
"en": "New password",
"nl": "Nieuw wachtwoord"
},
"app.created": {
"en": "Created",
"nl": "Gemaakt"
},
"app.last_login": {
"en": "Last login",
"nl": "Laatste login"
},
"app.actions": {
"en": "Actions",
"nl": "Acties"
},
"app.create_user": {
"en": "Create user",
"nl": "Gebruiker aanmaken"
},
"app.update_user": {
"en": "Update user",
"nl": "Gebruiker aanpassen"
},
"app.change_password": {
"en": "Change password",
"nl": "Wachtwoord wijzigen"
},
"app.delete_user": {
"en": "Delete user",
"nl": "Gebruiker verwijderen"
},
"app.delete_user_confirm": {
"en": "Delete user {{email}}?",
"nl": "Gebruiker {{email}} verwijderen?"
},
"app.cannot_delete_self": {
"en": "You cannot delete your own account.",
"nl": "Je kunt je eigen account niet verwijderen."
},
"app.cannot_disable_self": {
"en": "You cannot disable your own account.",
"nl": "Je kunt je eigen account niet uitschakelen."
},
"app.cannot_remove_own_admin": {
"en": "You cannot remove your own admin rights.",
"nl": "Je kunt je eigen adminrechten niet verwijderen."
},
"app.user_created": {
"en": "User created.",
"nl": "Gebruiker aangemaakt."
},
"app.user_updated": {
"en": "User updated.",
"nl": "Gebruiker aangepast."
},
"app.password_changed": {
"en": "Password changed.",
"nl": "Wachtwoord gewijzigd."
},
"app.user_deleted": {
"en": "User deleted.",
"nl": "Gebruiker verwijderd."
},
"app.back_to_sandbox": {
"en": "Back to Racket sandbox",
"nl": "Terug naar Racket sandbox"
},
"app.configuration": {
"en": "Configuration",
"nl": "Configuratie"
}
}
}