Înainte: Cum se creează un eveniment?
Importarea unui șablon predefinit într-un eveniment (event) se face astfel: din modalul bibliotecă Adăugați șabloane — deschis cu butonul "Adăugați mai multe" de pe pagina Templates (Șabloane) — utilizatorul selectează unul sau mai multe șabloane predefinite și apasă "Adăugați". În cod, acesta este SINGURUL mod de import expus utilizatorului (adăugarea din biblioteca predefinită). Deși în baza de cod există metode de import dintr-un fișier (.aktemplate) (TemplateFileService.ImportFromFileAsync/ExportToFileAsync) și un încărcător de șabloane împachetate (LoadBundledTemplateJsonAsync), NICIO interfață nu le apelează — cu alte cuvinte, funcția de import din fișier LIPSEȘTE în prezent din interfață.
- Utilizatorul trebuie să fie autentificat și să aibă un eveniment (event) selectat — dacă currentEventInfo este null, AddTemplateToCurrentEvent eșuează în tăcere (RepositoryResponse.Success=false).
- În bibliotecă (AllLocalPhotoTemplates / AllLocalVideoGifTemplates) trebuie să existe șabloane predefinite; această listă este populată din server/CloudSync și din șabloanele implicite, iar dacă este goală, în modal se afișează Încă nu există șabloane.
Pas cu pas
Pasul 1 · Deschideți pagina Șabloane
Settings → Templates (/templates)
Din Setări, accesați pagina Șabloane (Templates). Pagina se deschide la ruta /templates, iar în partea de sus apar două file (Foto, Video & GIF) și secțiunea Șabloane active.
🔎 Elemente de pe ecran: File: Foto, Video & GIF; titlu Șabloane active + insignă contor

Pasul 2 · Selectați fila corectă
Templates (/templates) → bara de file
Selectați fila în funcție de tipul șablonului pe care îl importați: Foto pentru rezultat foto, Video & GIF pentru rezultat video/GIF. Fila selectată determină lista din bibliotecă (foto vs video) afișată în modal.
🔎 Elemente de pe ecran: fila Foto, fila Video & GIF
Pasul 3 · Apăsați butonul Adăugați mai multe
Templates (/templates) → acțiunile din titlul secțiunii
Faceți clic pe butonul Adăugați mai multe din dreapta titlului secțiunii. Acesta apelează OpenBrowseModal() în VM-ul editorului și deschide modalul de bibliotecă 'Adăugați șabloane' (biblioteca foto din fila foto, biblioteca video din fila video).
🔎 Elemente de pe ecran: butonul Adăugați mai multe (btn-outline); alături butonul Creați nou (mov)
Pasul 4 · Explorați modalul de bibliotecă Adăugați șabloane
BrowseLibraryModal — modalul Adăugați șabloane
În modalul Adăugați șabloane care se deschide, examinați cardurile șabloanelor predefinite. Cardurile apar într-un aranjament masonry; pe măsură ce derulați în jos, se încarcă mai multe în pagini de câte 30 (infinite scroll). Șabloanele deja adăugate la eveniment sunt marcate cu insigna Adăugat și nu pot fi selectate.
🔎 Elemente de pe ecran: titlul modalului Adăugați șabloane, subtitlul Selectați șabloanele de adăugat; pe carduri o casetă de bifare și insigna Adăugat; pe fiecare card nume + format (OutputSize.DisplayName)

Pasul 5 · Selectați unul sau mai multe șabloane
BrowseLibraryModal — grila de carduri
Faceți clic pe cardul (cardurile) șabloanelor pe care doriți să le adăugați. Fiecare clic comută selecția cardului (caseta de bifare se umple cu mov). Cardurile marcate Adăugat nu pot fi selectate (sunt sărite în OnCardClick). Numărul de pe butonul Adăugați de jos arată doar cardurile selectate care nu au fost încă adăugate.
🔎 Elemente de pe ecran: caseta de bifare mov de pe card (browse-selected), în footer butonul 'Adăugați (N)'

Pasul 6 · Importați în eveniment cu butonul Adăugați
BrowseLibraryModal — footer
Apăsați butonul 'Adăugați (N)' din footer. Pentru fiecare șablon selectat se apelează AddTemplateToCurrentEvent(templateLocalId); acesta creează o joncțiune (TemplateEventJunction) între șablon și evenimentul curent și leagă șablonul de eveniment. Selecția se golește și modalul se închide.
🔎 Elemente de pe ecran: butonul 'Adăugați (N)' (btn-update-now); butonul Anulați; în stânga butonul roșu 'Ștergeți (N)'
Pasul 7 · (Pas intermediar) Fereastra pop-up de sugerare a activării modului
Dialog de confirmare (BlazorUserDialogService)
Dacă modul de rezultat al șablonului adăugat (Foto/GIF/Video) este dezactivat în eveniment, după închiderea modalului apare o fereastră de confirmare 'activăm modul?' (TemplateModeSuggestionService.CheckAndOfferAsync). Dacă răspundeți 'Da', se activează setarea corespunzătoare (de ex. PhotoOutputFormatActive / GifOutputFormatActive / VideoOutputFormatActive); dacă răspundeți Nu, nimic nu se schimbă. Un șablon foto cu mai multe cadre (2+) poate sugera suplimentar modul GIF.
🔎 Elemente de pe ecran: titlul dialogului informativ (de ex. 'EnableGifModeTitle'), butoanele Da / Nu

Pasul 8 · Șablonul adăugat apare în grila Șabloane active
Templates (/templates) → grila Șabloane active
Modalul se închide, iar șablonul (șabloanele) selectat(e) ajung în grila Șabloane active a filei. Dacă pull-ul/sincronizarea este în curs, în titlu apar indicatorul 'Se importă...' și contorul X/Y; când este gata, cardul devine complet vizibil.
🔎 Elemente de pe ecran: în titlu insigna contor (X/Y) + eticheta Se importă...; în grilă noul card de șablon

Pasul 9 · Editați șablonul (opțional)
Grila Templates → acțiunile GalleryItemCard / TemplateEditor (/templateeditor)
În grila Șabloane active, treceți cu mouse-ul peste un card și faceți clic pe pictograma Editare (creion) sau direct pe card → se apelează LoadTemplateForEditing și se trece la /templateeditor. Dacă șablonul este 'pristine' (implicit/generat de asistent, nemodificat niciodată), are insigna 'Blocat', iar editarea creează de fapt o copie (tooltip Clonează și editează); la șabloanele modificate este direct Editare. În plus, pe card există și acțiunile Duplicați și Elimină.
🔎 Elemente de pe ecran: acțiuni pe card: Clonează și editează / Editare, Duplicați, Elimină, mutare (glisare); insigna Blocat

Pasul 10 · (Nu este un import alternativ) Creare de la zero
Templates (/templates) → asistentul CreateNewTemplateModal
În loc de importul din biblioteca predefinită, butonul Creați nou deschide un asistent (CreateNewTemplateModal: tip → format → aranjament → stil) și generează șablonul de la zero. Acesta NU este un import, ci fluxul de creare a unui șablon nou; este diferit de importul din biblioteca predefinită.
🔎 Elemente de pe ecran: butonul Creați nou; pașii asistentului (Tip/Format/Aranjament/Stil)
Modalul permite selecția multiplă: puteți bifa mai multe carduri și le puteți importa în bloc cu un singur Adăugați.
Numărul de pe butonul 'Adăugați (N)' numără doar cardurile selectate care nu au fost încă adăugate (fără insigna Adăugat); un card deja adăugat nu poate fi selectat.
Din același modal, cu butonul roșu 'Ștergeți (N)' din stânga jos, puteți șterge complet din bibliotecă șabloanele selectate (joncțiunea cu evenimentul + înregistrarea din bibliotecă) — aceasta solicită un dialog de confirmare.
Editarea unui șablon predefinit pristine (Blocat) nu afectează originalul; se creează automat o copie care este apoi editată (Clonează și editează).
Dacă, după adăugarea șablonului, modul de rezultat este dezactivat, a răspunde Da la sugestia 'activăm modul?' activează imediat comutatorul corespunzător din ecranul de întâmpinare al chioșcului și din pagina de setări Mode.
Să vă așteptați la un import dintr-un fișier (.aktemplate): codul (TemplateFileService.ImportFromFileAsync/ExportToFileAsync și încărcătorul de pachete wwwroot/templates) există, dar nu este legat de niciun buton din interfață — pentru utilizator NU există import din fișier; singura cale este adăugarea din biblioteca predefinită.
Să încercați să adăugați fără a avea un eveniment selectat: când currentEventInfo este null, AddTemplateToCurrentEvent returnează în tăcere Success=false, iar șablonul nu este adăugat.
Să adăugați din fila greșită: modalul din fila Foto afișează biblioteca foto, iar modalul din fila Video & GIF afișează biblioteca video; șablonul căutat poate fi în cealaltă filă.
Să confundați Creați nou cu importul: acesta generează un șablon de la zero cu ajutorul asistentului, nu importă un șablon predefinit.
Cum se creează un șablon foto? · Cum se editează un șablon existent?