0

Ninox 4 – Read-only fields that scripts can still write

TNinox 4 – Read-only fields that scripts can still write

Problem

In an approval workflow, status, request_date, approved_by and approval_date must only be changed by the Submit / Approve / Reject buttons. A manual edit to status makes a request look approved without the Approve script ever running.

Can edit if = false didn't help: in my tests it also blocks script assignments (status := 2 had no effect). Role permissions weren't available on my plan.

Solution

Set the 4 fields to Visibility → Hidden. Scripts still write to them.

Add a Custom component that shows the same values styled like native fields (read-only).

Turn off Inline editing in table view.

let r := this;

let st := number(r.status);

let bg := if st = 1 then "#bfdbfe" else if st = 2 then "#4ade80" else if st = 3 then "#fca5a5" else "#e5e7eb" end end end;

let lbl := "font-size:14px;color:#374151;margin-bottom:8px";

let box := "height:40px;background:#eceef1;border-radius:12px;display:flex;align-items:center;padding:0 12px";

<div style="display:flex;gap:9px;flex-wrap:wrap">

<div style="width:294px"><div style={ lbl }>Status</div>

<div style={ box }><span style={ "padding:3px 12px;border-radius:999px;background:" + bg }>{ if r.status = null then "Draft" else text(r.status) end }</span></div></div>

<div style="width:231px"><div style={ lbl }>Request Date</div><div style={ box }>{ format(r.request_date, "DD/MM/YYYY") }</div></div>

<div style="width:354px"><div style={ lbl }>Approved by</div><div style={ box }>{ text(r.approved_by) }</div></div>

<div style="width:294px"><div style={ lbl }>Approval Date</div><div style={ box }>{ format(r.approval_date, "DD/MM/YYYY") }</div></div>

</div>

 

UI protection only, not real security.

Question: is there a native way in Ninox 4 to make a field read-only for users but writable for scripts?

2 Antworten

null
    • Customer Support Ninox
    • uwe_groegor
    • vor 23 Stunden
    • Gemeldet - anzeigen

    I have reported this as a bug for now, since this configuration works in Ninox 3 and our goal for Ninox 4 is to achieve functional parity with Ninox 3.
    I cannot say at this moment exactly how it will be implemented compared to Ninox 3.
    However, in any case, this functionality should be available for data fields in Ninox 4.
    N4-5717

      • Rafael_Sanchis
      • vor 23 Stunden
      • Gemeldet - anzeigen

       

      Thanks Uwe

Content aside

  • vor 23 StundenZuletzt aktiv
  • 2Antworten
  • 9Ansichten
  • 2 Folge bereits