Files
racket-chatgpt-bootstrap/private/views/index.html
T
www-data 475765e31f 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/.
2026-05-26 12:50:26 +02:00

238 lines
6.1 KiB
HTML

<!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>{{bootstrap_link_label}}</h2>
<fieldset>
<legend>{{generate_bootstrap_link_label}}</legend>
<div class="bootstrap-result-grid {{bootstrap_result_class}}">
<div>
<form method="post" action="/?lang={{language_url}}">
<input type="hidden" name="action" value="issue_bootstrap">
<label>
{{ttl_minutes_label}}<br>
<input type="number"
name="ttl_minutes"
value="{{bootstrap_ttl_minutes}}"
min="{{bootstrap_ttl_min_minutes}}"
max="{{bootstrap_ttl_max_minutes}}">
</label>
<p class="small">{{ttl_range_help}}</p>
<button type="submit">{{generate_bootstrap_link_label}}</button>
</form>
{{{generated_link_html}}}
</div>
{{{prompt_panel_html}}}
</div>
</fieldset>
</section>
</main>
</div>
<script src="/js/clipboard.js" defer></script>
<script src="/js/bootstrap-prompt.js" defer></script>
</body>
</html>
===
{
"translations": {
"app.title": {
"en": "Racket sandbox",
"nl": "Racket sandbox"
},
"app.manage_prompts": {
"en": "Manage prompts",
"nl": "Prompts beheren"
},
"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.bootstrap_link": {
"en": "Bootstrap link",
"nl": "Bootstraplink"
},
"app.generate_bootstrap_link": {
"en": "Generate bootstrap link",
"nl": "Bootstraplink genereren"
},
"app.ttl_minutes": {
"en": "TTL in minutes",
"nl": "TTL in minuten"
},
"app.ttl_range_help": {
"en": "Allowed range: 30 minutes to 8 hours.",
"nl": "Toegestaan bereik: 30 minuten tot 8 uur."
},
"app.generated_link": {
"en": "Generated link",
"nl": "Gegenereerde link"
},
"app.copy": {
"en": "Copy",
"nl": "Kopieer"
},
"app.copied": {
"en": "Copied",
"nl": "Gekopieerd"
},
"app.generated_link_help": {
"en": "Give this link to the AI agent. The agent should start from this link and then only follow links from the generated HTML pages.",
"nl": "Geef deze link aan de AI-agent. De agent moet vanaf deze link starten en daarna alleen links volgen vanuit de gegenereerde HTML-paginas."
},
"app.select_prompt": {
"en": "Select prompt",
"nl": "Prompt selecteren"
},
"app.copy_full_prompt": {
"en": "Copy full prompt",
"nl": "Volledige prompt kopieren"
},
"app.bootstrap_prompt_help": {
"en": "Choose one of your prompts. The placeholder {{bootstrap-racket-link}} is replaced by the generated bootstrap link.",
"nl": "Kies een van je prompts. De placeholder {{bootstrap-racket-link}} wordt vervangen door de gegenereerde bootstraplink."
},
"app.no_bootstrap_prompts": {
"en": "No personal prompts are available for this language. Copy a default prompt first from prompt management.",
"nl": "Er zijn geen persoonlijke prompts beschikbaar voor deze taal. Kopieer eerst een standaardprompt vanuit promptbeheer."
},
"app.user_management": {
"en": "User management",
"nl": "Gebruikersbeheer"
},
"app.configuration": {
"en": "Configuration",
"nl": "Configuratie"
},
"app.user_management_help": {
"en": "Users are registered manually by email address, full name and password. This page only manages existing users.",
"nl": "Gebruikers worden handmatig geregistreerd met e-mailadres, volledige naam en wachtwoord. Deze pagina beheert alleen bestaande gebruikers."
},
"app.id": {
"en": "ID",
"nl": "ID"
},
"app.full_name": {
"en": "Full name",
"nl": "Volledige naam"
},
"app.email": {
"en": "Email",
"nl": "E-mail"
},
"app.enabled": {
"en": "Enabled",
"nl": "Ingeschakeld"
},
"app.created": {
"en": "Created",
"nl": "Gemaakt"
},
"app.last_login": {
"en": "Last login",
"nl": "Laatste login"
},
"app.actions": {
"en": "Actions",
"nl": "Acties"
},
"app.yes": {
"en": "yes",
"nl": "ja"
},
"app.no": {
"en": "no",
"nl": "nee"
},
"app.save_flags": {
"en": "Save flags",
"nl": "Vlaggen opslaan"
},
"app.new_password": {
"en": "New password",
"nl": "Nieuw wachtwoord"
},
"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",
"nl": "Gebruiker verwijderen"
},
"app.cannot_delete_self": {
"en": "You cannot delete your own account.",
"nl": "Je kunt je eigen account niet verwijderen."
},
"app.bootstrap_link_issued": {
"en": "Bootstrap link issued.",
"nl": "Bootstraplink aangemaakt."
},
"app.password_changed_for": {
"en": "Password changed for: {{email}}",
"nl": "Wachtwoord gewijzigd voor: {{email}}"
},
"app.user_flags_updated": {
"en": "User flags updated.",
"nl": "Gebruikersvlaggen bijgewerkt."
},
"app.user_deleted": {
"en": "User deleted.",
"nl": "Gebruiker verwijderd."
},
"app.admin_rights_required": {
"en": "Admin rights required.",
"nl": "Adminrechten vereist."
},
"app.cannot_remove_own_admin": {
"en": "You cannot remove your own admin rights.",
"nl": "Je kunt je eigen adminrechten niet verwijderen."
},
"app.cannot_disable_self": {
"en": "You cannot disable your own account.",
"nl": "Je kunt je eigen account niet uitschakelen."
},
"app.unknown_action": {
"en": "Unknown action: {{action}}",
"nl": "Onbekende actie: {{action}}"
}
}
}