Plakietki

Ninext wzbogaca interfejs Ninox, dodając plakietki do niektórych zakładek, aby uwypuklić ważne informacje.

  • W zakładce „Files” niebieska plakietka pokazuje liczbę załączników dodanych do rekordu.
  • W zakładce „Comments” czerwona plakietka sygnalizuje nowe wiadomości, a szara — starsze komentarze.
  • W zakładkach własnych można zmienić wygląd (kolor, tytuł) i dodać plakietkę, aby zwrócić uwagę na kluczową informację.

Dzięki tym plakietkom szybko dostrzegą Państwo nowe informacje bez otwierania każdej zakładki.

Plakietki w zakładkach „Files” i „Comments”

Zakładka „Files”

  • Niebieska plakietka (#4970ff): pojawia się, gdy istnieją pliki niepowiązane z żadnym polem typu „File”, czyli takie, które znajdują się w zakładce załączników. Wyświetlana liczba odpowiada tym samodzielnym załącznikom.
  • Brak plakietki: nie wykryto żadnych samodzielnych załączników.

Zakładka „Comments”

  • Czerwona plakietka (#ff0000): oznacza nowe komentarze (na przykład dodane mniej niż 24 godziny temu).
  • Szara plakietka (#999999): sygnalizuje obecność starszych komentarzy lub całkowitą liczbę komentarzy, jeśli żaden nie jest nowy.
  • Brak plakietki: rekord nie ma żadnych komentarzy.

obraz.png

Plakietki informują o istniejących wpisach pod odpowiednimi ikonami:

W tym przypadku niebieska 1 oznacza, że do rekordu zapisano jeden załącznik, a szara 1 — że rekord ma jeden komentarz.

Plakietki własne

W polu „display only, if” każdej zakładki można utworzyć funkcję zawierającą JSON, który definiuje różne właściwości własnej plakietki — w tym jej treść:

function onUpdate(event : any) do
 debug(formatJSON(event));
 {
  caption: Caption,
  color: Color,
  backgroundColor: BackgroundColor,
  tooltip: Tooltip,
  badge: {
   caption: 'badge.caption',
   color: 'badge.color',
   backgroundColor: 'badge.backgroundColor'
  }
 }
end;
true

Dostosowywanie zakładek za pomocą Ninext

obraz.png

Dzięki Ninext można zmienić wygląd zakładek zdefiniowanych przez użytkownika w Ninox, definiując funkcję o nazwie onUpdate w wyzwalaczu „Display only if” danej zakładki. Funkcja ta zwraca obiekt, który mówi Ninext, które elementy wizualne zmienić. Można:

  • Dostosować tytuł zakładki (caption) i podpowiedź.
  • Zmienić kolory tekstu i tła (w stanie normalnym lub wybranym).
  • Ustawić kolor tła powiązanego formularza.
  • Wyświetlić na zakładce plakietkę uwypuklającą ważną informację.

Krótki przegląd właściwości JSON

WłaściwośćOpisPrzykład / zastosowanie
captionTytuł wyświetlany na zakładce."To Invoice" / "View Invoice"
tooltipTekst pokazywany po najechaniu na zakładkę."Click to view details"
colorKolor tekstu, gdy zakładka nie jest wybrana."#333333"
backgroundColorKolor tła, gdy zakładka nie jest wybrana."#ededed"
formBackgroundColorKolor tła formularza (edytora), gdy zakładka jest aktywna."#fafafa"
selected.colorKolor tekstu, gdy zakładka jest wybrana."#ffffff"
selected.backgroundColorKolor tła, gdy zakładka jest wybrana."#4970ff"
badge.captionTekst, liczba lub symbol pokazywany w plakietce."3" (dla 3 nowych klientów) lub "!" (alert)
badge.colorKolor tekstu plakietki."#ffffff"
badge.backgroundColorKolor tła plakietki."#4970ff"

Ogólny przebieg pracy

  • Zdefiniuj funkcję onUpdate
    W kodzie wyzwalacza „Display only if” danej zakładki utwórz funkcję o nazwie onUpdate. Funkcja ta musi zwrócić obiekt (w postaci zbliżonej do JSON) opisujący, które elementy wyglądu zmienić.
  • Zwróć wartość logiczną odpowiadającą za widoczność
    Wyzwalacz „Display only if” musi kończyć się zwróceniem true lub false, co określa, czy zakładka ma być wyświetlana.
  • Ninext stosuje zmiany
    Za każdym razem, gdy użytkownik otwiera lub odświeża rekord, Ninext uruchamia funkcję onUpdate, odczytuje zwrócony obiekt i dynamicznie stosuje zmiany wyglądu zakładki.

Przykłady zastosowania

Pełny przykład (wiele właściwości)

"Declaration of the onUpdate function";
function onUpdate(tabValues) do
    let nb := this.NumberTest;
    return {
        caption: if nb > 0 then "To Invoice" else "View Invoice" end,
        tooltip: "Click to view details",
        color: "#333333",
        backgroundColor: "#ededed",
        formBackgroundColor: "#fafafa",
        selected: {
            color: "#ffffff",
            backgroundColor: "#4970ff"
        },
        badge: {
            caption: if nb = 3 then "3" else if nb = -1 then "!" else "" end,
            color: "#ffffff",
            backgroundColor: if nb = 3 then "#4970ff" else if nb = -1 then "#ff0000" else "#cccccc" end
        }
    }
end;

"Determine whether the tab is displayed: shown if NumberTest > 0";
if this.NumberTest > 0 then
    true
else
    false
end

Komentarze:

  • caption zmienia tytuł zakładki w zależności od NumberTest.
  • tooltip wyświetla komunikat tekstowy po najechaniu kursorem.
  • color i backgroundColor definiują kolory w stanie niewybranym.
  • selected zawiera kolory dla stanu aktywnej zakładki.
  • badge dodaje wskaźnik (liczbę lub wykrzyknik) dla podkreślenia.

Przykład minimalny (sama plakietka)

"Declaration of the onUpdate function";
function onUpdate(tabValues : any) do
 let newClients := this.NewClients;
 {
  badge: {
   caption: if newClients > 0 then text(newClients) else "" end,
   color: "#ffffff",
   backgroundColor: "#4970ff"
  }
 }
end;
"The tab is always displayed";
true

Komentarze:

  • Zwracana jest wyłącznie właściwość badge.
  • Jeśli NewClients jest większe od 0, wyświetlana jest jego wartość; w przeciwnym razie plakietka pozostaje pusta.
  • Plakietka ma biały tekst na niebieskim tle.

Ważne uwagi

  • Końcowa wartość logiczna
    Bez zwrócenia na końcu true lub false zakładka nie będzie widoczna.