Skip to content

[P2] approvals: declare attachments on approve/reject and retire the inbox's hardcoded composer #2698

Description

@os-zhuang

Done — shipped in objectui#2710 (aefcf39) + framework#3332 (e412fb6).

The approvals inbox drawer now renders every decision — approve, reject, reassign, send-back, request-info, remind, recall, resubmit — purely through DeclaredActionsBar, with zero hand-wired action UI. Approve/reject collect a comment and file attachments through the generic declared-action dialog (the declared type:'file' param renders the shared upload widget; serializeParamValues maps the value to attachments: string[]). The hand-written composer, doAction, the upload handlers, the quick-phrase chips, and the admin actorOverride escape hatch are gone (~240 lines net removed from the inbox).

Browser-verified end-to-end: no composer, approve/reject render in the bar, the Approve dialog shows a file-upload widget, and staging a file + confirming POSTs {comment, attachments:["<fileId>"]}.


Original plan retained below for reference.

Goal

The approvals inbox drawer renders decisions purely through DeclaredActionsBar — zero hand-written action UI, including approve/reject and their attachments.

Delivered across:

  • objectui#2710FileField surfaces file_id; ActionParamDialog serializes upload params to file_id(s); composer retired.
  • framework#3332 — declared optional multi-file attachments param on approval_approve/approval_reject.

Refs

#2700 / #2704 / #2707 · objectui#2697 · framework#3300 · framework#3268 / #3274 · #2678 (P2-4) · cloud#861

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions