snapshot: preserve app state before onboarding pdf layout restore
This commit is contained in:
@@ -11,38 +11,38 @@
|
||||
{% block shell_body %}
|
||||
{% include 'workflows/includes/app_header.html' with header_show_home=1 header_inside_shell=1 %}
|
||||
|
||||
<div class="builder-workspace">
|
||||
<aside class="builder-sidebar">
|
||||
<div class="builder-sidebar-card">
|
||||
<span class="builder-sidebar-eyebrow">{% trans "Arbeitsbereich" %}</span>
|
||||
<div class="builder-workspace app-workspace">
|
||||
<aside class="builder-sidebar app-sidebar">
|
||||
<div class="builder-sidebar-card app-sidebar-card">
|
||||
<span class="builder-sidebar-eyebrow app-sidebar-eyebrow">{% trans "Arbeitsbereich" %}</span>
|
||||
<h2>{% trans "Formularsteuerung" %}</h2>
|
||||
</div>
|
||||
|
||||
<nav class="builder-side-nav" aria-label="{% trans 'Builder Navigation' %}">
|
||||
<a class="builder-side-link{% if active_module == 'structure' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=structure">
|
||||
<span class="builder-side-link-title">{% trans "Struktur & Reihenfolge" %}</span>
|
||||
<span class="builder-side-link-meta">{{ columns|length }} {% trans "Abschnitte" %}</span>
|
||||
<nav class="builder-side-nav app-side-nav" aria-label="{% trans 'Builder Navigation' %}">
|
||||
<a class="builder-side-link app-side-link{% if active_module == 'structure' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=structure">
|
||||
<span class="builder-side-link-title app-side-link-title">{% trans "Struktur & Reihenfolge" %}</span>
|
||||
<span class="builder-side-link-meta app-side-link-meta">{{ columns|length }} {% trans "Abschnitte" %}</span>
|
||||
</a>
|
||||
<a class="builder-side-link{% if active_module == 'section-rules' or active_module == 'field-rules' or active_module == 'conditional-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=field-rules">
|
||||
<span class="builder-side-link-title">{% trans "Sichtbarkeit & Regeln" %}</span>
|
||||
<span class="builder-side-link-meta">{{ builder_summary.hidden_field_count }} {% trans "ausgeblendet" %}</span>
|
||||
<a class="builder-side-link app-side-link{% if active_module == 'section-rules' or active_module == 'field-rules' or active_module == 'conditional-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=field-rules">
|
||||
<span class="builder-side-link-title app-side-link-title">{% trans "Sichtbarkeit & Regeln" %}</span>
|
||||
<span class="builder-side-link-meta app-side-link-meta">{{ builder_summary.hidden_field_count }} {% trans "ausgeblendet" %}</span>
|
||||
</a>
|
||||
<a class="builder-side-link{% if active_module == 'options' or active_module == 'field-texts' or active_module == 'custom-sections' or active_module == 'custom-fields' or active_module == 'preview' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=options">
|
||||
<span class="builder-side-link-title">{% trans "Optionen & Texte" %}</span>
|
||||
<span class="builder-side-link-meta">{{ builder_summary.custom_field_count }} {% trans "eigene Felder" %}</span>
|
||||
<a class="builder-side-link app-side-link{% if active_module == 'options' or active_module == 'field-texts' or active_module == 'custom-sections' or active_module == 'custom-fields' or active_module == 'preview' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=options">
|
||||
<span class="builder-side-link-title app-side-link-title">{% trans "Optionen & Texte" %}</span>
|
||||
<span class="builder-side-link-meta app-side-link-meta">{{ builder_summary.custom_field_count }} {% trans "eigene Felder" %}</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<div class="builder-sidebar-card builder-sidebar-stats">
|
||||
<div class="builder-side-stat">
|
||||
<div class="builder-sidebar-card builder-sidebar-stats app-sidebar-card app-sidebar-stats">
|
||||
<div class="builder-side-stat app-side-stat">
|
||||
<strong>{{ builder_summary.configurable_field_count }}</strong>
|
||||
<span>{% trans "konfigurierbare Felder" %}</span>
|
||||
</div>
|
||||
<div class="builder-side-stat">
|
||||
<div class="builder-side-stat app-side-stat">
|
||||
<strong>{{ builder_summary.custom_section_count }}</strong>
|
||||
<span>{% trans "eigene Abschnitte" %}</span>
|
||||
</div>
|
||||
<div class="builder-side-stat">
|
||||
<div class="builder-side-stat app-side-stat">
|
||||
<strong>{{ builder_summary.custom_field_count }}</strong>
|
||||
<span>{% trans "eigene Felder" %}</span>
|
||||
</div>
|
||||
@@ -152,11 +152,11 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav class="builder-module-nav" aria-label="{% trans 'Regelmodule' %}">
|
||||
<a class="builder-module-link{% if active_module == 'section-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=section-rules">{% trans "Abschnitte" %}</a>
|
||||
<a class="builder-module-link{% if active_module == 'field-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=field-rules">{% trans "Feldregeln" %}</a>
|
||||
<nav class="builder-module-nav app-module-nav" aria-label="{% trans 'Regelmodule' %}">
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'section-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=section-rules">{% trans "Abschnitte" %}</a>
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'field-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=field-rules">{% trans "Feldregeln" %}</a>
|
||||
{% if form_type == 'onboarding' %}
|
||||
<a class="builder-module-link{% if active_module == 'conditional-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=conditional-rules">{% trans "Bedingte Logik" %}</a>
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'conditional-rules' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=conditional-rules">{% trans "Bedingte Logik" %}</a>
|
||||
{% endif %}
|
||||
</nav>
|
||||
|
||||
@@ -441,14 +441,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav class="builder-module-nav" aria-label="{% trans 'Inhaltsmodule' %}">
|
||||
<a class="builder-module-link{% if active_module == 'options' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=options">{% trans "Optionen" %}</a>
|
||||
<a class="builder-module-link{% if active_module == 'field-texts' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=field-texts">{% trans "Feldtexte" %}</a>
|
||||
<nav class="builder-module-nav app-module-nav" aria-label="{% trans 'Inhaltsmodule' %}">
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'options' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=options">{% trans "Optionen" %}</a>
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'field-texts' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=field-texts">{% trans "Feldtexte" %}</a>
|
||||
{% if form_type == 'onboarding' %}
|
||||
<a class="builder-module-link{% if active_module == 'custom-sections' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=custom-sections">{% trans "Eigene Abschnitte" %}</a>
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'custom-sections' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=custom-sections">{% trans "Eigene Abschnitte" %}</a>
|
||||
{% endif %}
|
||||
<a class="builder-module-link{% if active_module == 'custom-fields' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=custom-fields">{% trans "Eigene Felder" %}</a>
|
||||
<a class="builder-module-link{% if active_module == 'preview' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=preview">{% trans "Vorschau" %}</a>
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'custom-fields' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=custom-fields">{% trans "Eigene Felder" %}</a>
|
||||
<a class="builder-module-link app-module-link{% if active_module == 'preview' %} is-active{% endif %}" href="/admin-tools/form-builder/?form_type={{ form_type }}&option_category={{ selected_option_category }}&module=preview">{% trans "Vorschau" %}</a>
|
||||
</nav>
|
||||
|
||||
<div class="builder-stack-layout">
|
||||
|
||||
@@ -37,57 +37,6 @@
|
||||
<main class="main">
|
||||
{% include 'workflows/includes/messages.html' %}
|
||||
|
||||
{% if ops_summary.show %}
|
||||
<section class="ops-overview-card">
|
||||
<div class="ops-overview-head">
|
||||
<div>
|
||||
<h2>{% trans "Operations Overview" %}</h2>
|
||||
<p>{% trans "Letzte Laufzeit- und Backup-Signale auf einen Blick." %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ops-overview-grid">
|
||||
{% if ops_summary.can_view_jobs %}
|
||||
<article class="ops-stat-card">
|
||||
<span class="ops-stat-label">{% trans "Fehlgeschlagene Jobs (24h)" %}</span>
|
||||
<strong class="{% if ops_summary.failed_count_24h %}is-error{% endif %}">{{ ops_summary.failed_count_24h }}</strong>
|
||||
</article>
|
||||
<article class="ops-stat-card">
|
||||
<span class="ops-stat-label">{% trans "Erfolgreiche Jobs (24h)" %}</span>
|
||||
<strong>{{ ops_summary.success_count_24h }}</strong>
|
||||
</article>
|
||||
<article class="ops-stat-card">
|
||||
<span class="ops-stat-label">{% trans "Offene Starts (24h)" %}</span>
|
||||
<strong>{{ ops_summary.started_count_24h }}</strong>
|
||||
</article>
|
||||
{% endif %}
|
||||
{% if ops_summary.can_manage_backups and ops_summary.backup_health %}
|
||||
<article class="ops-stat-card">
|
||||
<span class="ops-stat-label">{% trans "Backup-Status" %}</span>
|
||||
<strong>{{ ops_summary.backup_health.label }}</strong>
|
||||
<span class="mini">{{ ops_summary.backup_health.summary }}</span>
|
||||
</article>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if ops_summary.can_view_jobs and ops_summary.recent_failed_logs %}
|
||||
<div class="ops-failure-list">
|
||||
<div class="ops-failure-head">
|
||||
<h3>{% trans "Letzte Fehler" %}</h3>
|
||||
<a class="btn btn-secondary" href="/admin-tools/jobs/">{% trans "Job Monitor öffnen" %}</a>
|
||||
</div>
|
||||
<div class="ops-failure-items">
|
||||
{% for log in ops_summary.recent_failed_logs %}
|
||||
<article class="ops-failure-item">
|
||||
<strong>{{ log.task_name }}</strong>
|
||||
<span>{{ log.target_label|default:log.target_type }}</span>
|
||||
<code>{{ log.error_message|truncatechars:120 }}</code>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% for section in portal_app_sections %}
|
||||
{% if not forloop.first %}
|
||||
<div class="section-divider" aria-hidden="true"></div>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="switch">
|
||||
<div class="switch app-module-nav">
|
||||
<a class="tab {% if kind == 'nextcloud' %}active{% endif %}" href="/admin-tools/integrations/?kind=nextcloud">{% trans "Setup Nextcloud" %}</a>
|
||||
<a class="tab {% if kind == 'mail' %}active{% endif %}" href="/admin-tools/integrations/?kind=mail">{% trans "Setup Mail" %}</a>
|
||||
<a class="tab {% if kind == 'emails' %}active{% endif %}" href="/admin-tools/integrations/?kind=emails">{% trans "E-Mail Routing & Vorlagen" %}</a>
|
||||
|
||||
@@ -37,6 +37,15 @@
|
||||
<label>{% trans "Offene Starts (24h)" %}</label>
|
||||
<div class="branding-inline-value">{{ job_summary.started_count_24h }}</div>
|
||||
</div>
|
||||
{% if job_summary.can_manage_backups and job_summary.backup_health %}
|
||||
<div class="field">
|
||||
<label>{% trans "Backup-Status" %}</label>
|
||||
<div class="branding-inline-value">
|
||||
<strong>{{ job_summary.backup_health.label }}</strong>
|
||||
<div class="mini">{{ job_summary.backup_health.summary }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if job_summary.recent_failed %}
|
||||
<div class="table-wrap u-mt-12 app-table-shell">
|
||||
|
||||
@@ -20,24 +20,26 @@
|
||||
{% block shell_body %}
|
||||
{% include 'workflows/includes/app_header.html' with header_show_lang=1 header_show_home=1 header_inside_shell=1 %}
|
||||
|
||||
<div class="offboarding-shell-body">
|
||||
<aside class="offboarding-panel">
|
||||
<div class="app-workspace workflow-workspace">
|
||||
<aside class="app-sidebar">
|
||||
<div class="app-sidebar-card workflow-sidebar-card">
|
||||
<h1>{% trans "Offboarding" %}</h1>
|
||||
<p class="offboarding-sub">{% trans "Strukturierte Austrittsanfrage mit denselben klaren Oberflächenmustern wie im Onboarding." %}</p>
|
||||
<ol class="offboarding-step-list">
|
||||
<ol class="app-flow-list">
|
||||
{% for section in offboarding_sections %}
|
||||
<li class="offboarding-step-item">
|
||||
<span class="offboarding-dot">{{ forloop.counter }}</span>
|
||||
<li class="app-flow-item">
|
||||
<span class="app-flow-dot">{{ forloop.counter }}</span>
|
||||
<div>
|
||||
<div class="offboarding-step-title">{{ section.title }}</div>
|
||||
<div class="offboarding-step-sub">{{ section.subtitle }}</div>
|
||||
<div class="app-flow-title">{{ section.title }}</div>
|
||||
<div class="app-flow-sub">{{ section.subtitle }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<main class="offboarding-main">
|
||||
<main class="workflow-form-main offboarding-main">
|
||||
<section class="offboarding-search-card">
|
||||
<div class="offboarding-section-head offboarding-search-head">
|
||||
<div>
|
||||
|
||||
@@ -20,24 +20,26 @@
|
||||
{% block shell_body %}
|
||||
{% include 'workflows/includes/app_header.html' with header_show_lang=1 header_show_home=1 header_inside_shell=1 %}
|
||||
|
||||
<div class="shell-body">
|
||||
<aside class="panel">
|
||||
<div class="app-workspace workflow-workspace">
|
||||
<aside class="app-sidebar">
|
||||
<div class="app-sidebar-card workflow-sidebar-card">
|
||||
<h1>{% trans "Onboarding" %}</h1>
|
||||
<p class="sub">{% trans "Mehrseitiges Formular mit konfigurierbaren Feldern aus dem Admin." %}</p>
|
||||
<ol class="step-list">
|
||||
<ol class="app-flow-list">
|
||||
{% for section in onboarding_sections %}
|
||||
<li class="step-item {% if forloop.first %}active{% endif %}" data-nav-step="{{ forloop.counter }}" role="button" tabindex="0" aria-label="{{ section.title }}">
|
||||
<span class="dot">{{ forloop.counter }}</span>
|
||||
<li class="app-flow-item {% if forloop.first %}is-active{% endif %}" data-nav-step="{{ forloop.counter }}" role="button" tabindex="0" aria-label="{{ section.title }}">
|
||||
<span class="app-flow-dot">{{ forloop.counter }}</span>
|
||||
<div>
|
||||
<div class="step-title">{{ section.title }}</div>
|
||||
<div class="step-sub">{{ section.subtitle }}</div>
|
||||
<div class="app-flow-title">{{ section.title }}</div>
|
||||
<div class="app-flow-sub">{{ section.subtitle }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<main class="main">
|
||||
<main class="workflow-form-main">
|
||||
{% if form.errors %}
|
||||
<div class="error-banner">{% trans "Bitte prüfen Sie die markierten Felder. Ungültige Eingaben wurden erkannt." %}</div>
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user