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, podobnie jak opisane niżej dostosowywanie zakładek, wyłącza się w panelu Ustawienia Ninext, w sekcji „Ulepszenia interfejsu”: Badge na plikach i komentarzach (domyślnie włączone).
Plakietki w zakładkach „Files” i „Comments”
Zakładka „Files”
- Niebieska plakietka: 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: podaje liczbę nowych komentarzy, czyli dodanych mniej niż 24 godziny temu.
- Szara plakietka: gdy żaden komentarz nie jest młodszy niż 24 godziny, podaje całkowitą liczbę komentarzy.
- Brak plakietki: rekord nie ma żadnych komentarzy.

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 formule „Display field only, if” każdej zakładki można zadeklarować funkcję onUpdate, która zwraca obiekt JSON opisujący zakładkę i jej plakietkę. Poniższy przykład pochodzi z tabeli „Badges” bazy demonstracyjnej: Caption, Color, 'badge.caption'… to pola tej tabeli.
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;
trueDostosowywanie zakładek za pomocą Ninext

Dzięki Ninext można zmienić wygląd zakładek zdefiniowanych przez użytkownika w Ninox, definiując funkcję o nazwie onUpdate w formule „Display field 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ść | Opis | Przykład / zastosowanie |
|---|---|---|
| caption | Tytuł wyświetlany na zakładce. | "To Invoice" / "View Invoice" |
| tooltip | Tekst pokazywany po najechaniu na zakładkę. | "Click to view details" |
| color | Kolor tekstu, gdy zakładka nie jest wybrana. | "#333333" |
| backgroundColor | Kolor tła, gdy zakładka nie jest wybrana. | "#ededed" |
| formBackgroundColor | Kolor tła formularza (edytora), gdy zakładka jest aktywna. | "#fafafa" |
| selected.color | Kolor tekstu, gdy zakładka jest wybrana. | "#ffffff" |
| selected.backgroundColor | Kolor tła, gdy zakładka jest wybrana. | "#4970ff" |
| badge.caption | Tekst, liczba lub symbol pokazywany w plakietce. Zawsze jest to tekst: liczbę należy przekształcić za pomocą text(). Pusty tekst ukrywa plakietkę. | "3" (dla 3 nowych klientów) lub "!" (alert) |
| badge.color | Kolor tekstu plakietki (domyślnie biały). | "#ffffff" |
| badge.backgroundColor | Kolor tła plakietki (domyślnie czerwony). | "#4970ff" |
Ogólny przebieg pracy
- Zdefiniuj funkcję onUpdate
W formule „Display field only, if” danej zakładki utwórz funkcję o nazwieonUpdate. Funkcja ta musi zwrócić obiekt (w postaci zbliżonej do JSON) opisujący, które elementy wyglądu zmienić. Jako parametr otrzymuje obiekt, który zwróciła przy poprzednim wywołaniu (za pierwszym razem — pusty obiekt). - Zwróć wartość logiczną odpowiadającą za widoczność
Formuła „Display field only, if” musi kończyć się zwróceniemtruelubfalse, 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 : any) do
let nb := this.NumberTest;
{
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
endKomentarze:
- Funkcja nie zawiera
return: tego słowa nie ma w języku Ninox. Zwraca wartość swojego ostatniego wyrażenia, tutaj obiekt. - 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; w pozostałych przypadkach jego etykieta jest pusta i plakietka się nie pojawia.
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";
trueKomentarze:
- Zwracana jest wyłącznie właściwość badge.
- Jeśli
NewClientsjest większe od 0, wyświetlana jest jego wartość, przekształcona w tekst przeztext(); w przeciwnym razie etykieta jest pusta i plakietka się nie pojawia. - Plakietka ma biały tekst na niebieskim tle.
Ważne uwagi
- Końcowa wartość logiczna
Bez zwrócenia na końcutruelubfalsezakładka nie będzie widoczna. - Etykieta plakietki zawsze jako tekst
Ninext wyświetla plakietkę tylko wtedy, gdybadge.captionjest niepustym tekstem. Liczba (3zamiast"3") pozostawia plakietkę ukrytą: należy użyćtext(). - Funkcja obliczana osobno
Ninext wyodrębnia z formuły samą funkcjęonUpdate, a następnie oblicza ją osobno, w kontekście rekordu. Nie widzi ona więc ani zmiennych, ani innych funkcji zadeklarowanych w innym miejscu „Display field only, if”: wszystko, czego potrzebuje, należy zadeklarować wewnątrzonUpdate. Może odczytywać pola rekordu (this.NumberTest) i wywoływać funkcje globalne bazy.
