Files
racket-chatgpt-bootstrap/private/views/prompts.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

463 lines
12 KiB
HTML

<!doctype html>
<html lang="{{language}}">
<head>
<meta charset="utf-8">
<title>{{title}}</title>
<link rel="stylesheet" href="/css/styles.css?v={{style_version}}">
</head>
<body>
<div class="page">
{{{header_html}}}
<main class="page-main prompt-workbench">
<aside class="prompt-sidebar panel">
<div class="prompt-tabs" role="tablist" aria-label="Prompt lists">
<button type="button" class="prompt-tab {{defaults_tab_active_class}}" data-tab="defaults" role="tab" aria-selected="{{defaults_tab_selected}}">
{{available_defaults_label}}
</button>
<button type="button" class="prompt-tab {{personal_tab_active_class}}" data-tab="personal" role="tab" aria-selected="{{personal_tab_selected}}">
{{your_prompts_label}}
</button>
</div>
<section class="prompt-tab-panel {{defaults_tab_active_class}}" id="tab-defaults" role="tabpanel">
{{{default_admin_notice_html}}}
<div class="sidebar-actions">
<form method="post" action="/prompts?lang={{language_url}}&mode=personal">
<input type="hidden" name="action" value="copy_all_defaults">
<input type="hidden" name="language" value="{{language}}">
<button type="submit">{{copy_all_label}}</button>
</form>
</div>
<div class="prompt-list">
{{{default_prompts_html}}}
{{{no_defaults_html}}}
</div>
{{{create_default_html}}}
</section>
<section class="prompt-tab-panel {{personal_tab_active_class}}" id="tab-personal" role="tabpanel">
<div class="prompt-list">
{{{personal_prompts_html}}}
{{{no_personal_html}}}
</div>
<details class="create-drawer">
<summary>{{create_personal_label}}</summary>
<form method="post" action="/prompts?lang={{language_url}}&mode=personal">
<input type="hidden" name="action" value="create_prompt">
<label>{{name_label}}<br><input type="text" name="name"></label>
<label>{{language_label}}<br>
<select name="language">
{{{language_options_html}}}
</select>
</label>
<label>{{prompt_content_label}}<br><textarea name="content" rows="7"></textarea></label>
<button type="submit">{{create_personal_label}}</button>
</form>
</details>
</section>
</aside>
<section id="promptViewer" class="prompt-viewer panel is-empty">
<div class="viewer-empty">
{{select_prompt_label}}
</div>
<div class="viewer-shell">
<div class="viewer-header">
<div>
<div class="viewer-title" id="viewerTitle">{{prompt_label}}</div>
<div class="version-meta" id="viewerMeta"></div>
</div>
<button type="button" id="editPromptButton">{{edit_label}}</button>
</div>
<pre id="viewerContent" class="viewer-content"></pre>
</div>
</section>
</main>
<footer class="page-footer">
<a href="/">{{back_label}}</a>
</footer>
</div>
<div id="promptModalBackdrop" class="modal-backdrop">
<div class="prompt-modal">
<form id="promptModalForm" class="edit-mode" method="post" action="/prompts?lang={{language_url}}&mode={{mode_url}}">
<div class="modal-header">
<div>
<div class="modal-title" id="modalTitle">{{prompt_label}}</div>
<div class="version-meta" id="modalMeta"></div>
</div>
<button type="button" id="cancelEditButton">{{close_label}}</button>
</div>
<div class="modal-toolbar">
<button type="button" id="versionNewerButton">{{newer_previous_label}}</button>
<button type="button" id="versionOlderButton">{{older_previous_label}}</button>
<label>
{{diff_view_label}}
<select id="diffMode">
<option value="plain">{{diff_plain_label}}</option>
<option value="all" selected>{{diff_all_label}}</option>
<option value="same">{{diff_same_label}}</option>
<option value="added">{{diff_added_label}}</option>
<option value="deleted">{{diff_deleted_label}}</option>
<option value="changed">{{diff_changed_label}}</option>
</select>
</label>
<span id="versionIndicator" class="version-meta"></span>
</div>
<div class="modal-body">
<div class="edit-pane">
<div class="modal-form-grid">
<label>
{{name_label}}<br>
<input type="text" id="modalName" name="name">
</label>
<label>
{{language_label}}<br>
<select id="modalLanguage" name="language">
{{{language_options_plain_html}}}
</select>
</label>
</div>
<div id="defaultKeyRow" class="default-key-row">
<label>
{{default_key_label}}<br>
<input type="text" id="modalDefaultKey" name="default_key">
</label>
</div>
<label class="content-label">
<span>{{prompt_content_label}}</span>
<textarea id="modalContent" name="content"></textarea>
</label>
</div>
<div class="version-pane">
<div>
<strong>{{previous_version_label}}</strong>
<div id="selectedVersionMeta" class="version-meta"></div>
</div>
<div class="version-content" id="versionContent"></div>
</div>
</div>
<div class="modal-footer">
<input type="hidden" id="modalAction" name="action" value="">
<input type="hidden" id="modalPromptId" name="prompt_id" value="">
<input type="hidden" id="modalDefaultId" name="default_id" value="">
<label>
<input type="checkbox" name="create_version" value="1" checked>
{{store_version_label}}
</label>
<label>
{{version_note_label}}
<input type="text" name="version_note" value="editor edit">
</label>
<button type="submit">{{save_label}}</button>
<button type="button" id="snapshotButton">{{store_snapshot_label}}</button>
<button type="button" id="restoreVersionButton">{{restore_version_label}}</button>
<button type="button" id="deleteVersionButton">{{delete_version_label}}</button>
</div>
</form>
</div>
</div>
<form id="modalAuxForm" method="post" action="/prompts?lang={{language_url}}&mode={{mode_url}}" class="hidden">
<input type="hidden" id="auxAction" name="action" value="">
<input type="hidden" id="auxPromptId" name="prompt_id" value="">
<input type="hidden" id="auxDefaultId" name="default_id" value="">
<input type="hidden" id="auxVersionNo" name="version_no" value="">
<input type="hidden" id="auxVersionNote" name="version_note" value="">
</form>
<script type="application/json" id="promptDataJson">
{{{prompt_data_json}}}
</script>
<script type="application/json" id="promptTextJson">
{{{prompt_text_json}}}
</script>
<script src="/js/prompt-editor.js?v={{prompt_editor_version}}" defer></script>
</body>
</html>
===
{
"translations": {
"prompts.title": {
"en": "Prompt administration",
"nl": "Promptbeheer"
},
"prompts.back": {
"en": "Back to Racket sandbox",
"nl": "Terug naar Racket sandbox"
},
"prompts.your_prompts": {
"en": "Your prompts",
"nl": "Jouw prompts"
},
"prompts.default_admin": {
"en": "Default prompt administration",
"nl": "Standaardpromptbeheer"
},
"prompts.language": {
"en": "Language",
"nl": "Taal"
},
"prompts.available_defaults": {
"en": "Available default prompts",
"nl": "Beschikbare standaardprompts"
},
"prompts.default_admin_badge": {
"en": "Admin default prompts",
"nl": "Admin standaardprompts"
},
"prompts.default_admin_hint": {
"en": "Defaults are shared with every user and can be copied into personal prompts.",
"nl": "Standaarden worden gedeeld met alle gebruikers en kunnen naar persoonlijke prompts worden gekopieerd."
},
"prompts.copy_all": {
"en": "Copy all",
"nl": "Alles kopieren"
},
"prompts.copy": {
"en": "copy",
"nl": "kopieer"
},
"prompts.delete": {
"en": "delete",
"nl": "verwijder"
},
"prompts.create_default": {
"en": "Create default prompt",
"nl": "Standaardprompt maken"
},
"prompts.create_personal": {
"en": "Create personal prompt",
"nl": "Persoonlijke prompt maken"
},
"prompts.name": {
"en": "Name",
"nl": "Naam"
},
"prompts.default_key": {
"en": "Default key",
"nl": "Standaardsleutel"
},
"prompts.prompt_content": {
"en": "Prompt content",
"nl": "Promptinhoud"
},
"prompts.no_defaults": {
"en": "No default prompts for this language yet.",
"nl": "Nog geen standaardprompts voor deze taal."
},
"prompts.no_personal": {
"en": "No personal prompts yet for this language.",
"nl": "Nog geen persoonlijke prompts voor deze taal."
},
"prompts.select_prompt": {
"en": "Select a prompt on the left to view it.",
"nl": "Selecteer links een prompt om deze te bekijken."
},
"prompts.edit": {
"en": "Edit",
"nl": "Bewerk"
},
"prompts.close": {
"en": "Close",
"nl": "Sluiten"
},
"prompts.newer_previous": {
"en": "newer previous version",
"nl": "nieuwere vorige versie"
},
"prompts.older_previous": {
"en": "older previous version",
"nl": "oudere vorige versie"
},
"prompts.diff_view": {
"en": "Diff view:",
"nl": "Verschilweergave:"
},
"prompts.diff_plain": {
"en": "text, no diff",
"nl": "tekst, geen verschil"
},
"prompts.diff_all": {
"en": "all diff",
"nl": "alle verschillen"
},
"prompts.diff_same": {
"en": "unchanged only",
"nl": "alleen ongewijzigd"
},
"prompts.diff_added": {
"en": "additions only",
"nl": "alleen toevoegingen"
},
"prompts.diff_deleted": {
"en": "deletions only",
"nl": "alleen verwijderingen"
},
"prompts.diff_changed": {
"en": "changes only",
"nl": "alleen wijzigingen"
},
"prompts.previous_version": {
"en": "Previous version",
"nl": "Vorige versie"
},
"prompts.store_version": {
"en": "store this edit as a new version",
"nl": "bewaar deze bewerking als nieuwe versie"
},
"prompts.version_note": {
"en": "Version note:",
"nl": "Versienotitie:"
},
"prompts.save": {
"en": "Save",
"nl": "Opslaan"
},
"prompts.store_snapshot": {
"en": "Store snapshot",
"nl": "Snapshot bewaren"
},
"prompts.restore_version": {
"en": "Restore selected version",
"nl": "Geselecteerde versie herstellen"
},
"prompts.delete_version": {
"en": "Delete selected version",
"nl": "Geselecteerde versie verwijderen"
},
"prompts.prompt": {
"en": "Prompt",
"nl": "Prompt"
},
"prompts.prompt_not_found": {
"en": "Prompt not found",
"nl": "Prompt niet gevonden"
},
"prompts.no_previous_versions": {
"en": "No previous versions stored.",
"nl": "Geen vorige versies opgeslagen."
},
"prompts.no_lines_for_view": {
"en": "No lines for this view.",
"nl": "Geen regels voor deze weergave."
},
"prompts.restore_version_confirm": {
"en": "Restore version",
"nl": "Versie herstellen"
},
"prompts.delete_version_confirm": {
"en": "Delete version",
"nl": "Versie verwijderen"
},
"prompts.delete_default_confirm": {
"en": "Delete default prompt {{name}}?",
"nl": "Standaardprompt {{name}} verwijderen?"
},
"prompts.delete_prompt_confirm": {
"en": "Delete prompt {{name}}?",
"nl": "Prompt {{name}} verwijderen?"
},
"prompts.default_metadata": {
"en": "{{default_key}} · {{updated_at}}",
"nl": "{{default_key}} · {{updated_at}}"
},
"prompts.personal_metadata": {
"en": "{{language}} · {{updated_at}}",
"nl": "{{language}} · {{updated_at}}"
},
"prompts.default_prompt_prefix": {
"en": "Default prompt: ",
"nl": "Standaardprompt: "
},
"prompts.prompt_prefix": {
"en": "Prompt: ",
"nl": "Prompt: "
},
"prompts.created": {
"en": "created",
"nl": "gemaakt"
},
"prompts.updated": {
"en": "updated",
"nl": "bijgewerkt"
},
"prompts.default_prompt": {
"en": "default prompt",
"nl": "standaardprompt"
},
"prompts.version": {
"en": "version",
"nl": "versie"
},
"prompts.showing_version": {
"en": "showing version",
"nl": "toont versie"
},
"prompts.of": {
"en": "of",
"nl": "van"
},
"prompts.old": {
"en": "old",
"nl": "oud"
},
"prompts.new": {
"en": "new",
"nl": "nieuw"
},
"prompts.unknown_action": {
"en": "Unknown action: {{action}}",
"nl": "Onbekende actie: {{action}}"
},
"app.admin": {
"en": "admin",
"nl": "admin"
},
"app.user_management": {
"en": "User management",
"nl": "Gebruikersbeheer"
},
"app.configuration": {
"en": "Configuration",
"nl": "Configuratie"
},
"app.logout": {
"en": "Logout",
"nl": "Uitloggen"
}
}
}