徽章

Ninext 會在某些分頁上加入徽章,藉此凸顯重要資訊,強化 Ninox 的介面。

  • 在「Files」分頁上,藍色徽章顯示該記錄所附加的檔案數量。
  • 在「Comments」分頁上,紅色徽章表示有新訊息,灰色徽章則表示有較舊的評論。
  • 在自訂分頁上,您可以變更外觀(顏色、標題),並加上徽章以吸引注意力,凸顯關鍵資訊。

有了這些徽章,您不必逐一開啟分頁,就能一眼看出哪裡有新資訊。

「Files」與「Comments」分頁上的徽章

Files 分頁

  • 藍色徽章(#4970ff):當存在未連結到任何「File」欄位的檔案時出現,也就是可以在附件分頁下找到的那些檔案。顯示的數字對應這些獨立附件的數量。
  • 無徽章:未偵測到任何獨立附件。

Comments 分頁

  • 紅色徽章(#ff0000):表示有新的評論(例如,張貼未滿 24 小時的評論)。
  • 灰色徽章(#999999):表示存在較舊的評論;若沒有任何近期評論,則顯示評論總數。
  • 無徽章:此記錄沒有任何評論。

image.png

徽章會在相關圖示下方告訴您已有哪些項目:

在此範例中,藍色的 1 表示此記錄存有一個附件,灰色的 1 表示此記錄有一則評論。

自訂徽章

在每個分頁的「display only, if」欄位中,您可以撰寫一個函式,回傳一段 JSON 來定義自訂徽章的各項屬性——包括它的內容:

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

以 Ninext 自訂分頁

image.png

有了 Ninext,您可以在分頁的「Display only if」觸發器中定義一個名為 onUpdate 的函式,藉此變更 Ninox 中使用者自訂分頁的外觀。這個函式會回傳一個物件,告訴 Ninext 要變更哪些視覺元素。您可以:

  • 調整分頁標題(caption)與提示文字(tooltip)。
  • 變更文字與背景顏色(一般狀態或選取狀態)。
  • 設定所屬表單的背景顏色。
  • 在分頁上顯示徽章,以凸顯重要資訊。

JSON 屬性速覽

屬性說明範例/用法
caption分頁上顯示的標題。"To Invoice" / "View Invoice"
tooltip滑鼠停留在分頁上時顯示的文字。"Click to view details"
color分頁被選取時的文字顏色。"#333333"
backgroundColor分頁被選取時的背景顏色。"#ededed"
formBackgroundColor分頁為使用中時,表單(編輯器)的背景顏色。"#fafafa"
selected.color分頁被選取時的文字顏色。"#ffffff"
selected.backgroundColor分頁被選取時的背景顏色。"#4970ff"
badge.caption徽章中顯示的文字、數字或符號。"3"(代表 3 位新客戶)或 "!"(警示)
badge.color徽章的文字顏色。"#ffffff"
badge.backgroundColor徽章的背景顏色。"#4970ff"

一般流程

  • 定義 onUpdate 函式
    在該分頁「Display only if」觸發器的程式碼中,建立一個名為 onUpdate 的函式。這個函式必須回傳一個物件(類似 JSON 的結構),說明要修改哪些顯示元素。
  • 回傳布林值以控制顯示與否
    「Display only if」觸發器必須回傳 truefalse 作結,用以決定該分頁是否顯示。
  • Ninext 套用這些修改
    每當使用者開啟或重新整理記錄時,Ninext 會執行 onUpdate 函式,讀取回傳的物件,並動態地將外觀變更套用到分頁上。

實作範例

完整範例(多項屬性)

"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

說明:

  • caption 會依 NumberTest 的值變更分頁標題。
  • tooltip 在滑鼠停留時顯示一段文字訊息。
  • colorbackgroundColor 定義未選取狀態下的顏色。
  • selected 包含分頁為使用中狀態時的顏色。
  • badge 加上一個指示標記(數字或驚嘆號)以加強提示。

最簡範例(僅徽章)

"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

說明:

  • 只回傳 badge 這一項屬性。
  • NewClients 大於 0,就顯示它的值;否則徽章留白。
  • 徽章為藍底白字。

重點提醒

  • 最後一定要回傳布林值
    若結尾未回傳 truefalse,該分頁將不會顯示。