UX Spec

Sites — Related Pages

Amy TangJul 11 2026
Open Spec Changes
unify-search-filter-tag-ux
site-management-hierarchy-update
site-management-for-portal

Visual basis: vortex-1.0 — verify behavior / copy / structure, not pixel style.

Context

Why we're building this

Before Site Management, the platform's main modules — Devices, Message Center, Archive, Users, and the View / Floor Plan lists — each grew their own list, search, and filter behaviour. Columns, sort order, and search scope all differed depending on where the operator happened to be, which slowed the everyday work of finding a device or reviewing an event.

Once devices are organized by Site, that structure carries through the whole platform. These pages bring one search / filter / tab pattern to the main list modules and make location the default lens, so the operator's mental model stays the same no matter which module they are in.

What value it brings

Location first, one pattern everywhere. Device and event lists default to sort by site, a site filter is available across modules, and the same search / filter / tab behaviour drives Devices, Message Center, Archive, and the User list.

  • Consistent — one search / filter / tab pattern across the main list modules
  • Location first — lists default to sort by site; a site filter is available everywhere
  • Relevant columns — per-type tabs surface the columns that matter; Devices and Archive lists let each user show/hide columns (Message Center event columns are fixed)
Section 01

View - Site Tree View 清單檢視

View 頁面左半部的 Sidemenu 是 Site 的 Tree View(階層清單)。因為裝置改以 Site 組織,這個 Tree View 新增了搜尋,讓操作者在龐大的 site 階層裡快速定位。

sr1-view
View 頁面 — 左側 Sidemenu 為 Site 的 Tree View(含搜尋);右半部本次未修改(key-screen 13)

流程 Happy Path

  1. 進入 View 頁面,左側 Sidemenu 顯示 Site 的 Tree View,頂部有搜尋。
  2. 輸入文字即時過濾,搜尋範圍涵蓋 site 名稱、area 名稱、device 名稱;命中節點的祖先自動展開。

左側清單即 Tree View;其展開/收合、搜尋自動展開匹配路徑、選取等行為以 Design Pattern: Tree View 為準,此處不重述。

本頁右半部的內容以當前 Production 為準,本次專案未修改,因此 UI Key Screen 不做呈現。

狀態與邊界

狀態 觸發 畫面 / 行為
命中 符合的關鍵字 只顯示命中節點及其祖先,祖先自動展開
無命中 無相符 清單為空(空狀態以 Tree View 的 No Matches 為準,見 03)

驗收條件 QA · Given-When-Then

  • Given 進入 View 頁面,Then 左側 Sidemenu 顯示 Site 的 Tree View 與搜尋。
  • Given 在搜尋輸入文字,Then 過濾出 site / area / device 名稱含該文字的節點並自動展開其祖先(行為同 Tree View)。

元件與 Token 決策

  • 左側 Sidemenu = Tree View(見 03);本頁新增的是 Tree View 的搜尋,搜尋範圍 = site / area / device 名稱。
  • 右半部沿用 Production、本次未動。
Section 02

Customized View Edit Mode - Sites Breadcrumbs

Customized View 的編輯模式(挑選要放進自訂 View 的裝置)裡,每個 Camera 以 by-site 路徑 (Sites Breadcrumb) 標示所屬位置,讓操作者在多站環境下辨識來源。

sr2-customview
Customized View 編輯模式 — 每個 Camera 以 by-site Sites Breadcrumb 標示位置(key-screen 14)

流程 Happy Path

  1. 進入 Customized View 編輯模式,顯示可挑選的裝置清單。
  2. 每個 Camera 以 Sites Breadcrumb 顯示其 site 路徑(葉層為當前 site)。
  3. 清單頂部提供搜尋,搜尋範圍涵蓋 site 名稱、area 名稱、device 名稱

Camera 的 site 路徑以麵包屑呈現;其顯示與截斷規則以 Sites Breadcrumbs 為準,此處不重述。

狀態與邊界

狀態 觸發 畫面 / 行為
Breadcrumb 顯示 檢視某 Camera 以 by-site 路徑標示所屬位置(截斷規則見 06)
命中 搜尋符合的關鍵字 只顯示符合的裝置
無命中 無相符 清單為空(空狀態文案以實作為準)

驗收條件 QA · Given-When-Then

  • Given 進入 Customized View 編輯模式,Then 每個 Camera 以 by-site Sites Breadcrumb 標示所屬位置(截斷規則同 06)。
  • Given 在搜尋輸入文字,Then 過濾出 site / area / device 名稱含該文字的裝置。

元件與 Token 決策

  • Camera 位置以 Sites Breadcrumbs(見 06)呈現。
  • 搜尋範圍 = site / area / device 名稱(module-search-bars spec)。

TODO / 未解問題

  • 搜尋列所連元件(Tree View / Filter Combo)以實作為準,本頁不臆測;空狀態文案以實作為準。
Section 03

Floorplans - Site Tree View 清單檢視

Floorplans 頁面左半部的 Sidemenu 是 Site 的 Tree View(階層清單)。它新增了搜尋,讓操作者 快速定位到某個樓層平面圖或其所屬位置。

sr3-floorplans
Floorplans 頁面 — 左側 Sidemenu 為 Site 的 Tree View(含搜尋);右半部本次未修改(key-screen 15)

流程 Happy Path

  1. 進入 Floorplans 頁面,左側 Sidemenu 顯示 Site 的 Tree View,頂部有搜尋。
  2. 輸入文字即時過濾,搜尋範圍涵蓋 site 名稱、area 名稱、floor plan 名稱、device 名稱;命中節點的祖先自動展開。

左側清單即 Tree View;其展開/收合、搜尋自動展開匹配路徑、選取等行為以 Design Pattern: Tree View 為準,此處不重述。

本頁右半部的內容以當前 Production 為準,本次專案未修改,因此 UI Key Screen 不做呈現。

狀態與邊界

狀態 觸發 畫面 / 行為
命中 符合的關鍵字 只顯示命中節點及其祖先,祖先自動展開
無命中 無相符 清單為空(空狀態以 Tree View 的 No Matches 為準,見 03)

驗收條件 QA · Given-When-Then

  • Given 進入 Floorplans 頁面,Then 左側 Sidemenu 顯示 Site 的 Tree View 與搜尋。
  • Given 在搜尋輸入文字,Then 過濾出 site / area / floor plan / device 名稱含該文字的節點並自動展開其祖先(行為同 Tree View)。

元件與 Token 決策

  • 左側 Sidemenu = Tree View(見 03);本頁新增的是 Tree View 的搜尋,搜尋範圍 = site / area / floor plan / device 名稱。
  • 右半部沿用 Production、本次未動。
Section 04

Devices - 裝置類別清單

Device 模組重整為依產品類型分頁的清單,每個分頁有專屬欄位集。清單預設以 site 排序, 並提供跨欄位搜尋與 status/site 篩選。

sr4-devices
Device 模組 — 依產品類型分頁的清單,預設以 site 排序(key-screen 16)

流程 Happy Path

  1. 進入 Device 模組,頂部依產品類型分頁:Camera / NVR / Bridge / Speaker / PoE Switch / VSS / Unknown
  2. 選一個類型分頁,顯示該類型專屬欄位的清單,預設以 site 排序
  3. 用搜尋列可跨所有可見欄位搜尋;用 statussite 兩個篩選器縮小範圍。
  4. 開欄位設定可顯示/隱藏、拖曳重排欄位,偏好依使用者、依清單類型記住。

搜尋 + 篩選 + 類型分頁為 Filter Combo 統一樣式,套用於 Devices / Message Center / Archive / Users;其互動細節以 Design Pattern: Filter Combo 為準,此處不重述。

各類型欄位集 Columns per type

類型分頁 欄位
Camera snapshot、device name、status、site、model、device ID、local IP、firmware、SD card recording
NVR device name、channel、status、site、model、device ID、local IP、firmware
Bridge device name、status、site、model、device ID、local IP、firmware
VSS device name、status、site、model、device ID、local IP、firmware
PoE Switch device name、status、site、device ID、bridge device
Network Speaker device name、status、site、model type、device ID、bridge device、associated cameras
Unknown site、device name、device ID(精簡欄位集)

狀態與邊界

狀態 觸發 畫面 / 行為
記住上次分頁 離開再回到 Device 模組 回到先前選取的類型分頁
預設排序 載入任一類型清單 以 site 排序
欄位排序 點欄位標頭 第一次升冪、再點降冪
欄位設定 顯示/隱藏/重排並儲存 依使用者、依清單類型還原偏好
空搜尋結果 搜尋字串無相符 清單為空(空狀態文案以實作為準)

驗收條件 QA · Given-When-Then

  • Given 進入 Device 模組,Then 顯示 Camera / NVR / Bridge / Speaker / PoE Switch / VSS / Unknown 七個類型分頁。
  • Given 載入任一類型清單,Then 預設以 site 排序。
  • Given 在搜尋列輸入文字,Then 過濾出「任一可見欄位」包含該文字的裝置。
  • Given 選取 status 或 site 篩選值,Then 只顯示符合的裝置。
  • Given 顯示/隱藏或重排欄位並儲存,Then 下次進入時還原該偏好(依使用者、依類型)。
  • Given 檢視 Unknown 分頁,Then 只顯示 site、device name、device ID 三欄。

元件與 Token 決策

  • Pattern:Filter Combo(搜尋列 + status/site 篩選 + 類型分頁)。
  • 每類型獨立欄位集、預設 sort by site、搜尋跨所有可見欄位、篩選維度 status + site。
  • 欄位可設定:顯示/隱藏/重排,偏好依使用者、依清單類型持久化(Devices 是各模組中唯一支援重排的)。

TODO / 未解問題

  • 空搜尋結果、載入中狀態的實際文案,待與實作對齊(OpenSpec 未定義文案)。
Section 05

Message Center - 事件類別清單

Message Center 重整為依事件類型分頁的清單。與 Device 清單不同的是:事件清單的欄位是 固定的——只能排序,使用者不能自行顯示/隱藏欄位

sr5-message-center
Message Center — 依事件類型分頁的清單,欄位固定僅可排序(key-screen 17)

流程 Happy Path

  1. 進入 Message Center,頂部依事件類型分頁:Device / System / Access / Sensor
  2. 選一個事件類型分頁,顯示該類型專屬欄位的清單。
  3. 用搜尋列跨所有可見欄位搜尋;用該分頁的篩選器縮小範圍。
  4. 點欄位標頭可排序;但欄位集固定,不提供顯示/隱藏設定。

搜尋 + 篩選 + 事件分頁沿用 Filter Combo 統一樣式;互動細節以 Design Pattern: Filter Combo 為準,此處不重述。

各事件類型:欄位、預設排序、篩選 Per event type

事件分頁 欄位 預設排序 篩選
Device snapshot、device name、site、event type、rule name、client time、local time、information 依 site site、device、event type、client time
System picture、device name、site、event type、client time 依 site site、device、event type、client time
Access access control point、event type、associated sites、card holder、client time 依 access control point access control point、associated sites、event type、client time
Sensor sensor name、event type、value、threshold、event state、associated sites、client time、local time 依 sensor name smart sensor、associated sites、event type、client time

狀態與邊界

狀態 觸發 畫面 / 行為
記住上次分頁 離開再回到 Message Center 回到先前選取的事件類型分頁
欄位排序 點欄位標頭 依該欄位排序
欄位顯示/隱藏 不提供;事件欄位集固定
空搜尋結果 搜尋字串無相符 清單為空(空狀態文案以實作為準)

驗收條件 QA · Given-When-Then

  • Given 進入 Message Center,Then 顯示 Device / System / Access / Sensor 四個事件類型分頁。
  • Given 載入 Device 或 System 事件清單,Then 預設以 site 排序;Access 依 access control point、Sensor 依 sensor name。
  • Given 在搜尋列輸入文字,Then 過濾出「任一可見欄位」包含該文字的事件。
  • Given 檢視任一事件清單,Then 沒有欄位顯示/隱藏設定(欄位固定,僅可排序)。

元件與 Token 決策

  • Pattern:Filter Combo(搜尋列 + 各分頁篩選 + 事件類型分頁)。
  • 每事件類型獨立欄位集與篩選維度;Device/System 預設 sort by site。
  • 欄位固定、僅可排序,使用者不可顯示/隱藏(對比 Devices 的可設定欄位)。

以 OpenSpec 為準:事件欄位不可顯示/隱藏的規則定義於 unify-search-filter-tag-ux 的 ADAT-544 修正(proposal.md「event list columns cannot be shown or hidden」, PR 未合併),且與 per-capability message-center-event-type-views · spec(事件清單只 定義排序、無顯示/隱藏)一致。main 上舊的通則 bullet(宣稱事件欄位可顯示/隱藏)為 過時敘述,不採用。

TODO / 未解問題

  • 空搜尋結果、載入中狀態的實際文案,待與實作對齊(OpenSpec 未定義文案)。
Section 06

Archive - 封存檔案清單

Archive 導入統一的欄位集、搜尋與篩選;預設以 site 排序。在列表模式檢視下欄位可 顯示/隱藏(Archive 另可切換卡片模式,該模式無欄位可調)。

sr6-archive
Archive — 單一清單、預設以 site 排序;列表模式下欄位可顯示/隱藏(key-screen 18)

流程 Happy Path

  1. 進入 Archive,列表模式顯示單一清單(無類型分頁),欄位:snapshot、file name、camera name、site、date of archived、date of footage、video length、created by。
  2. 清單預設以 site 排序;點欄位標頭可依該欄位升冪/降冪排序。
  3. 用搜尋列跨所有可見欄位搜尋;用 site、device、date of footage 三個篩選器縮小範圍。
  4. 列表模式下開欄位設定可顯示/隱藏欄位(偏好依使用者記住)。

搜尋 + 篩選沿用 Filter Combo 統一樣式;互動細節以 Design Pattern: Filter Combo 為準,此處不重述。

狀態與邊界

狀態 觸發 畫面 / 行為
預設排序 載入清單 以 site 排序
欄位排序 點欄位標頭 第一次升冪、再點降冪
欄位顯示/隱藏 列表模式下開欄位設定並儲存 依使用者還原偏好
卡片模式 切換為卡片檢視 無欄位顯示/隱藏設定
多重篩選 同時套用多個篩選 取交集(AND)
空搜尋結果 搜尋字串無相符 顯示空狀態訊息(文案以實作為準)

驗收條件 QA · Given-When-Then

  • Given 進入 Archive 列表模式,Then 顯示欄位 snapshot、file name、camera name、site、date of archived、date of footage、video length、created by。
  • Given 載入清單,Then 預設以 site 排序;點欄位標頭可升冪/降冪排序。
  • Given 在搜尋列輸入文字,Then 過濾出「任一可見欄位」包含該文字的項目。
  • Given 套用 site / device / date of footage 篩選(可多重),Then 只顯示符合全部條件的項目。
  • Given 列表模式下顯示/隱藏欄位並儲存,Then 下次進入時還原該偏好。

元件與 Token 決策

  • Pattern:Filter Combo(搜尋列 + site/device/date of footage 篩選)。
  • 單一清單(無類型分頁)、預設 sort by site、所有欄位可升冪/降冪排序、搜尋跨所有可見欄位。
  • 列表模式下欄位可顯示/隱藏(依使用者持久化);卡片模式無此設定。

TODO / 未解問題

  • 欄位重排是否支援:OpenSpec 僅定義排序(升/降)與顯示/隱藏,未定義欄位重排;以實作為準。
  • 卡片/列表模式切換的細節(OpenSpec 未於此 spec 定義),以實作為準。
  • 空狀態訊息的實際文案,待與實作對齊。
Section 07

Users - 用戶角色權限清單

User 清單以 搜尋列 + Organization role 篩選 chip 組成一個 Filter Combo,讓管理者依角色 篩選、並在名稱/email 上搜尋。

sr7-users
User 清單 — 搜尋(name/email)+ Organization role 篩選 chip(key-screen 19)

流程 Happy Path

  1. 進入 User 清單,頂部有搜尋列與 Organization role 篩選 chip
  2. 在搜尋列輸入文字即時過濾,搜尋範圍為欄位 name、email
  3. 用 Organization role chip 依角色篩選;搜尋與 role 篩選取交集(AND)。

搜尋列 + role chip 為 Filter Combo;其 chip、cross-filter(AND)等互動以 Design Pattern: Filter Combo 為準,此處不重述。

狀態與邊界

狀態 觸發 畫面 / 行為
搜尋命中 名稱/email 符合 只顯示符合的使用者
Role 篩選 選一或多個 Organization role 只顯示該角色的使用者
搜尋 + 篩選並用 同時有搜尋字串與 role 篩選 取交集(AND)
無命中 無相符 顯示空狀態訊息(文案以實作為準)

驗收條件 QA · Given-When-Then

  • Given 進入 User 清單,Then 頂部顯示搜尋列與 Organization role 篩選 chip。
  • Given 在搜尋列輸入文字,Then 過濾出 name 或 email 含該文字的使用者。
  • Given 選取一個 Organization role,Then 只顯示該角色的使用者。
  • Given 同時有搜尋字串與 role 篩選,Then 只顯示同時符合兩者(AND)的使用者。

元件與 Token 決策

  • Pattern:Filter Combo(搜尋列 + Organization role 篩選 chip,取交集 AND)。
  • 搜尋範圍 = name、email(依 ADAT-544 修正;非舊版的 name/email/role/status)。

TODO / 未解問題

  • 以 OpenSpec 為準:本頁依 ADAT-544(unify-search-filter-tag-ux 之 User list 修正, 搜尋範圍 name/email + 新增 Organization role 篩選)撰寫;該修正的 PR 合併後,補上 role chip 的預設值集與截圖。
  • 空狀態訊息文案以實作為準。
Section 08

Add Device - 無 Site 時導去建立 Site

因為裝置改以 Site 組織,新增裝置前組織必須先有 Site。若沒有任何 Site,系統會擋下新增 並先導去建立 Site。

sr8-create-site
新增裝置時若無 Site — 擋下並導去建立 Site(key-screen 20)

流程 Happy Path

  1. 從 Site 頁面發起「新增裝置」。
  2. 若組織已有 Site:顯示新增裝置流程,並提供 Site 指派選項。
  3. 若組織沒有任何 Site:系統擋下新增,並導去建立 Site 的流程,附上說明「需先建立 Site 才能新增裝置」的訊息(實際文案以實作為準)。

Site 指派規則 Site assignment

裝置類型 Site 指派
NVR、VSS 須選擇 Site;所屬 channels 自動指派到同一 Site
PoE Switch、IP Speaker 自動指派到所連 bridge 裝置的 Site(不需手動選)。若該 bridge 尚未指派 Site,則放進系統產生的組織同名 Site 供人工檢視,並通知使用者該裝置無法自動指派
其他(Camera、RX Bridge) 須選擇 Site

狀態與邊界

狀態 觸發 畫面 / 行為
有 Site 已有 Site 時新增裝置 顯示新增流程 + Site 指派選項
無 Site 沒有任何 Site 時嘗試新增 擋下並導去建立 Site,附說明訊息

驗收條件 QA · Given-When-Then

  • Given 組織已有 Site 且發起新增裝置,Then 顯示新增流程與 Site 指派選項。
  • Given 組織沒有 Site 且嘗試新增裝置,Then 系統擋下並導去建立 Site 流程,顯示需先建立 Site 的說明訊息。
  • Given 新增 NVR 或 VSS,Then 須選擇 Site,且其 channels 自動指派同一 Site。
  • Given 新增 PoE Switch 或 IP Speaker,Then 自動指派到所連 bridge 裝置的 Site,不需手動選。
  • Given 新增 PoE Switch 或 IP Speaker 但其 bridge 尚未指派 Site,Then 放進系統產生的組織同名 Site 供人工檢視,並通知使用者該裝置無法自動指派。

元件與 Token 決策

  • 無 Site 阻擋 + 導去建立 Site 為 Site 管理的前置守門;建立 Site 對話框見 01 Site Management。

TODO / 未解問題

  • 導去建立 Site 的說明訊息實際文案,以實作為準(OpenSpec 定義行為、未定文案)。