Orbito - Dokumentacja modułówOrbito - Dokumentacja modułów
Wprowadzenie
Pierwsze kroki
API
Komunikacja
Widoki
Wdrożenie
Społeczność
For AI agents
Wprowadzenie
Pierwsze kroki
API
Komunikacja
Widoki
Wdrożenie
Społeczność
For AI agents
  • OrbitoViewEngine

    • Wprowadzenie
    • BaseView – Klasa bazowa
    • Zmienne (VarStore)
    • Listy i notacja .$
    • Szablony Handlebars
    • Akcje (ActionHandler)
    • Tabele danych
    • Edycja danych
    • Kontrolki wartości
    • Warianty stylistyczne
    • Komponenty i sloty
    • Pliki, kamera i schemat z serwera
  • Widoki

    • AvatarView
    • BadgeView
    • ButtonView
    • CameraView
    • CardView
    • CheckboxGroupView
    • CheckboxView
    • ComponentView
    • CssBoxView
    • DataTableView
    • DropdownView
    • DynamicListView
    • DynamicView
    • FilePickerView
    • FilePreviewView
    • FlexView
    • GridView
    • HtmlView
    • InlineEditView
    • InputView
    • ListView
    • ModalView
    • PopoverView
    • RadioGroupView
    • RowView
    • SelectView
    • SliderView
    • SlotView
    • StepperView
    • TabsView
    • TextInputView
    • TextView

Edycja danych

Źródło: FormDraft.js, formFields.js, InlineEditView.js, DataTableView.js

Każda edycja w silniku pracuje na roboczej kopii danych (draft), a nie na oryginale. Dopiero zapis wysyła zmiany do API. Dzięki temu anulowanie przywraca stan wyjściowy bez pobierania danych, wiadomo czy i co się zmieniło, a walidacja dzieje się przed wysłaniem, a nie w reakcji na błąd serwera.

Ten sam model obsługuje sekcję inlineedit i edycję wiersza tabeli — opis pól jest identyczny w obu miejscach.

Opis pola

fields:
  - key: name              # klucz w draftcie (wymagany)
    label: Nazwa
    from: customer.name    # skąd wziąć wartość początkową (domyślnie `key`)
    as: customer.name      # nazwa parametru API (domyślnie `key`)
    type: text
    required: true
    maxLength: 64
PoleZnaczenie
keyKlucz pola w draftcie (wymagany)
labelEtykieta w podglądzie i w formularzu
fromŚcieżka wartości w danych źródłowych (dot-notation)
asNazwa parametru API; kropka buduje strukturę zagnieżdżoną
typetext, number, email, password, date, datetime, time, textarea, checkbox, switch, select, radiogroup, checkboxgroup, slider, stepper
required, min, max, minLength, maxLength, patternReguły walidacji
messageWłasny komunikat błędu pola
options / optionsSourceOpcje dla pól wyboru
decimals, prefix, suffix, emptyTextFormatowanie wartości w podglądzie

Kontrolki są zwykłymi widokami silnika, więc pole formularza dostaje bez dodatkowej pracy cały kontrakt wartości: typowaną wartość, zapis do VarStore i opcje pobierane z API.

Sekcja inlineedit

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
    pattern: '.+@.+'
    message: Podaj poprawny adres e-mail
save:
  module: core/orders
  method: customer.update
  params:
    orderId: { valueFrom: $page.orderId }
  onlyChanged: true
  refresh: [orderDetail]
  successMessage: Zapisano dane klienta
  • Edycję otwiera ✎, zamyka ✓ (zapis) albo ✕ (anulowanie).
  • Escape anuluje, Ctrl+Enter zapisuje.
  • Zmiana danych źródłowych odświeża podgląd, ale podczas edycji jest ignorowana — inaczej skasowałaby to, co użytkownik właśnie wpisał.
  • Błąd zapisu pojawia się nad polami, a sekcja zostaje w trybie edycji.

Wartości pól a templatki

Wartości wpisane przez użytkownika trafiają do API dosłownie — nie są interpretowane jako templatki {{ }}. Tekst Firma {{ $page.orderId }} zostanie wysłany dokładnie w takiej postaci. Statyczne params z konfiguracji zapisu przechodzą normalnie przez templatki i referencje valueFrom.

Zapis

Zapis wykonuje zwykła akcja callMethod, więc działają wszystkie jej mechanizmy: refresh, onSuccess, onError oraz zdarzenia cyklu życia (callMethod:preCall:<id>, callMethod:afterCall:<id>).

onlyChanged: true wysyła wyłącznie pola, które faktycznie się zmieniły — reszta w ogóle nie pojawia się w parametrach.

Edycja wiersza tabeli

Ten sam opis pól wpisuje się w editable tabeli — patrz Tabele danych.

Zdarzenia

ZdarzenieKiedy
inlineedit:edit:<id>po wejściu w tryb edycji
inlineedit:cancel:<id>po anulowaniu
inlineedit:saved:<id>po udanym zapisie
Ostatnio zaktualizowano:: 25.08.2026, 12:56
Contributors: Wiktor Koźmiński
Prev
Tabele danych
Next
Kontrolki wartości