InlineEditView
Źródło:
views/InlineEditView.js
InlineEditView
Sekcja „podgląd ↔ edycja”: lista pól, przełącznik ✎ / ✓, anulowanie i zapis przez API.
Zastępuje ręczne składanie tego wzorca z setVar + renderIf + dwóch wariantów nagłówka
- ukrytych kontrolek. Widok trzyma roboczą kopię danych (
FormDraft), więc anulowanie przywraca stan wyjściowy bez pobierania danych, a zapis wysyła tylko to, co trzeba.
Schema
type: inlineedit
id: customerSection
title: Dane klienta
icon: user
source: orderDetail.customer # ścieżka do obiektu ze stanu
fields:
- key: name
label: Nazwa
required: true
- key: email
label: E-mail
type: text
pattern: '.+@.+'
message: Podaj poprawny adres e-mail
- key: vip
label: Klient VIP
type: switch
save:
module: core/orders
method: customer.update
params:
orderId: { valueFrom: $page.orderId }
onlyChanged: true # wyślij wyłącznie zmienione pola
refresh: [orderDetail] # odśwież widoki po zapisie
successMessage: Zapisano dane klienta
Parametry
type- Typ widoku:"inlineedit"id- Identyfikator widokutitle- Tytuł sekcji (opcjonalne)icon- Ikona Tabler przy tytule (opcjonalne)source- Ścieżka do obiektu z danymi (orderDetail.customer,$page.customer); można też podaćsource: { varPath: ... }fields- Lista pól (patrzformFields.js):key,label,type,from,as,required,min,max,minLength,maxLength,pattern,message,options/optionsSourcesave- Konfiguracja zapisu:module,method,params,withData,onlyChanged,refresh,successMessage,onSuccess,onErrorcard-falserenderuje sekcję bez obudowy karty (domyślnietrue)labelWidth- Szerokość kolumny etykiet w podglądzie (domyślniecol-4)editLabel/saveLabel/cancelLabel- Podpowiedzi przyciskówreadOnly- Ukrywa przycisk edycji (opcjonalne)
Zachowanie
- Edycję otwiera przycisk ✎, zamyka ✓ (zapis) albo ✕ (anulowanie).
Escapeanuluje edycję,Ctrl+Enterzapisuje.- Walidacja pól wykonuje się przed wysłaniem; błędne pola dostają komunikat.
- Wartości pól trafiają do API dosłownie — nie są interpretowane jako templatki.
- Zmiana danych źródłowych odświeża podgląd; podczas edycji jest ignorowana, żeby nie skasować tego, co użytkownik właśnie wpisał.
Emitowane zdarzenia
inlineedit:edit:${id}- po wejściu w tryb edycjiinlineedit:cancel:${id}- po anulowaniuinlineedit:saved:${id}- po udanym zapisie ({ values })
