feat(web): deep-link-uri pe sub-taburile Setari + Primii pasi deasupra importului

Link-urile catre configurare (Acasa, Integrare, Upload) duc direct pe sub-tabul
relevant (?tab=cont&subtab=rar|api); pe Acasa, ghidajul "Primii pasi" apare
inaintea containerului de import.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-07-07 08:42:47 +00:00
parent 705ad030fe
commit 65b6e4694d
3 changed files with 44 additions and 44 deletions

View File

@@ -13,6 +13,47 @@
</div>
{% endif %}
{# === Primii pasi: DEASUPRA importului, ca ghidajul sa fie primul lucru vizibil === #}
{% set toti_esentiali = are_creds and are_trimiteri %}
{% if not toti_esentiali %}
<div class="card" style="margin-bottom:14px; padding:12px 16px;">
<div style="display:flex; gap:20px; flex-wrap:wrap; align-items:center; font-size:13px;">
<span class="muted" style="font-weight:600;">Primii pasi:</span>
{# Pas 1: Cont RAR (esential) — direct pe sub-tabul Mediu RAR din Setari #}
<span style="display:inline-flex; align-items:center; gap:6px;">
{% if are_creds %}
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">&#10003;</span>
{% else %}
<span class="muted" aria-hidden="true">&#9675;</span>
{% endif %}
<a href="/?tab=cont&subtab=rar">Cont RAR</a>
</span>
{# Pas 2: Cheie API (optional) — direct pe sub-tabul Cheie API din Setari #}
<span style="display:inline-flex; align-items:center; gap:6px;">
{% if are_cheie_folosita %}
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">&#10003;</span>
{% else %}
<span class="muted" aria-hidden="true">&#9675;</span>
{% endif %}
<a href="/?tab=cont&subtab=api">Cheie API</a>
<span class="muted">(optional)</span>
</span>
{# Pas 3: Import (esential) — marcat ca pas curent #}
<span style="display:inline-flex; align-items:center; gap:6px;">
{% if are_trimiteri %}
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">&#10003;</span>
{% else %}
<span class="s-queued" aria-hidden="true" style="font-weight:bold;">&#9679;</span>
{% endif %}
<strong>Import</strong> <span class="muted">(incarca fisierul jos)</span>
</span>
</div>
</div>
{% endif %}
{# === Container colapsabil: stepper + upload intr-un singur element <details>.
Serverul seteaza atributul `open` din are_trimiteri:
are_trimiteri=False (first-run) → open (importul e vizibil imediat, fara JS)
@@ -25,47 +66,6 @@
{% include '_upload.html' %}
</details>
{# === Subordonat: primii pasi pe un singur rand compact === #}
{% set toti_esentiali = are_creds and are_trimiteri %}
{% if not toti_esentiali %}
<div class="card" style="margin-top:14px; padding:12px 16px;">
<div style="display:flex; gap:20px; flex-wrap:wrap; align-items:center; font-size:13px;">
<span class="muted" style="font-weight:600;">Primii pasi:</span>
{# Pas 1: Cont RAR (esential) #}
<span style="display:inline-flex; align-items:center; gap:6px;">
{% if are_creds %}
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">&#10003;</span>
{% else %}
<span class="muted" aria-hidden="true">&#9675;</span>
{% endif %}
<a href="/?tab=cont">Cont RAR</a>
</span>
{# Pas 2: Cheie API (optional) #}
<span style="display:inline-flex; align-items:center; gap:6px;">
{% if are_cheie_folosita %}
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">&#10003;</span>
{% else %}
<span class="muted" aria-hidden="true">&#9675;</span>
{% endif %}
<a href="/?tab=cont">Cheie API</a>
<span class="muted">(optional)</span>
</span>
{# Pas 3: Import (esential) — marcat ca pas curent #}
<span style="display:inline-flex; align-items:center; gap:6px;">
{% if are_trimiteri %}
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">&#10003;</span>
{% else %}
<span class="s-queued" aria-hidden="true" style="font-weight:bold;">&#9679;</span>
{% endif %}
<strong>Import</strong> <span class="muted">(incarca fisierul sus)</span>
</span>
</div>
</div>
{% endif %}
{# Sectiunea Trimiteri, permanenta sub upload.
La first-run (zero trimiteri), randam un placeholder <section> gol/ascuns — necesar
ca OOB swap-ul de la confirma sa gaseasca tinta valida in DOM si sa injecteze

View File

@@ -14,7 +14,7 @@
{% else %}
Lipseste o cheie API activa.
{% endif %}
Mergi la <a href="/?tab=cont">Meniu cont &rsaquo; Setari</a> pentru a le configura.
Mergi la <a href="/?tab=cont&subtab={{ 'rar' if not are_creds else 'api' }}">Meniu cont &rsaquo; Setari</a> pentru a le configura.
</div>
{% endif %}
@@ -28,7 +28,7 @@
</div>
<p class="muted" style="font-size:12px; margin:10px 0 0;">
Cererile trimit doar cheia API + datele prezentarii. Credentialele RAR se configureaza
o data in <a href="/?tab=cont">Setari</a> si sunt folosite automat la trimitere. Optional,
o data in <a href="/?tab=cont&subtab=rar">Setari</a> si sunt folosite automat la trimitere. Optional,
poti include <code>rar_credentials</code> in payload ca sa le suprascrii pe acea cerere.
</p>
</div>

View File

@@ -41,7 +41,7 @@
border:1px solid var(--warn, #e6b34a); font-size:13px;" role="note">
<strong>Niciun mediu RAR activ.</strong>
Activeaza mediul de Productie sau Testare in
<a href="?tab=cont" style="color:var(--accent);">Meniu cont &rsaquo; Setari</a>.
<a href="/?tab=cont&subtab=rar" style="color:var(--accent);">Meniu cont &rsaquo; Setari &rsaquo; Mediu RAR</a>.
</div>
{% elif medii_rar | length == 1 %}
{# Eticheta statica (un singur mediu disponibil) #}