629 Commits

Author SHA1 Message Date
2254297be3 fix: cache-busting for bricks.js/css (?v= in header.tmpl) 2026-08-15 17:16:02 +08:00
ee50245895 fix(Svg): cancel stale fetch in set_url so leaf nodes hide arrow (race condition) 2026-08-15 11:53:27 +08:00
7746595739 fix(tree): change_node_type 死代码导致叶子节点仍显示展开箭头
return 提前返回使 set_url(null) 成为死代码,叶子节点(is_leaf=true)的展开箭头本应隐藏却仍显示。
修复:叶子分支直接 set_url(null) 隐藏箭头,非叶子才 set_state+bind 展开。
2026-08-15 01:42:36 +08:00
p
cbfe532050 fix: resizebox z-index above xterm/Wterm content 2026-08-15 01:42:36 +08:00
p
d1995ff118 fix: PopupWindow resize — remove stale e.target check in resizing() 2026-08-15 01:42:36 +08:00
p
9e23fbccb9 fix: ResourceBrowser strip tools before clone_descriptor (avoid circular ref from buildBind event_widget) 2026-08-15 01:42:36 +08:00
p
71dae6ecfe fix: ResourceBrowser tree_width method collides with option name (rename to get_tree_width) 2026-08-15 01:42:36 +08:00
8b4b9390a8 Revert "feat: AgentIO abort previous request on new input"
This reverts commit 5fb7796df1d0b416ae978ecd95be076a037d30a7.
2026-08-11 14:48:58 +08:00
5fb7796df1 feat: AgentIO abort previous request on new input 2026-08-11 14:00:42 +08:00
f9322531d0 feat: UiCode support multiple select attribute 2026-08-10 16:56:36 +08:00
ded5de54ed cleanup: remove Conform widget handling, revert to conversational confirm 2026-08-09 21:57:59 +08:00
1fd689ca62 fix: AgentIO.sys_post() + global ref — reliable Conform confirm handler 2026-08-09 21:46:06 +08:00
bf6b14f81e fix: Conform confirm creates AgentOutput and processes streaming response 2026-08-09 20:19:44 +08:00
22feb99a13 AgentOut: handle Conform widget confirmed event → POST _system_action 2026-08-09 20:00:01 +08:00
9a6e7e1a75 AgentOut: handle bricks widget descriptor JSON (widgettype) in streamed response 2026-08-09 17:01:34 +08:00
8b4897ea14 AgentIO: use AgentInput instead of TextFiles for model selector support
- Add agent_input.js to bricks build
- AgentIO constructor passes model_dataurl, model_cwidth, placeholder to AgentInput
- Keep dispatch('inputed') event pattern
2026-08-08 23:42:14 +08:00
e2086397fd bugfix 2026-08-08 22:47:14 +08:00
f2766a76dd bugfix 2026-08-08 22:45:24 +08:00
c0cda2931a fix(textfiles): clear_widgets before add_widget to prevent stale file entries 2026-08-03 10:45:34 +08:00
c726b95714 feat(DimensionFilter): dark/light theme via CSS variables and dimension-filter class 2026-07-31 11:55:39 +08:00
1034b53341 fix(DimensionFilter): use native CSS flexbox for proper height fill 2026-07-31 11:38:09 +08:00
57575d90f0 fix(DimensionFilter): proper flex layout - fixed search+horizontal bar, filler content area with VScrollPanel display
- SearchBar + horizontal bar: flexShrink:0 for fixed height
- Content area: flexGrow:1 to fill remaining space
- Vertical sidebar: fixed 160px width, flexShrink:0
- Display: VScrollPanel with id + width:100% height:100%
2026-07-30 18:27:24 +08:00
09a07904fc fix(DimensionFilter): configurable param names + 'all' skip + init refresh_display
- h_param_name/v_param_name/keyword_param_name options for URL param mapping
- 'all' values filtered out of params (treat as no filter)
- refresh_display() called after initial data load
2026-07-30 16:49:08 +08:00
9f4ca625c6 fix: add .dimension-btn-active CSS class for DimensionFilter active state 2026-07-30 15:58:51 +08:00
850d44ddb5 feat: add DimensionFilter widget with h_data_url, v_measure_url, show_data_url support
New Bricks widget that provides:
- Search input bar with configurable placeholder
- Horizontally scrollable dimension buttons with left/right arrows
- Vertically scrollable measure buttons on the left side
- Display area on the right side loading show_data_url with params
- Single-selection for both horizontal and vertical dimensions
- '全部' (All) option default selected for both axes
- filter_changed event on every selection/search change
- Registered via bricks.Factory.register('DimensionFilter', ...)
2026-07-30 15:52:36 +08:00
bc3c4525fd fix(Tree): suppress deselect event dispatch when switching nodes
Previously node_click_handle dispatched node_selected(false) for old node
before dispatching node_selected(true) for new node, causing apps to briefly
show old content. Now only visually deselects old node, dispatches only for
new selection.
2026-07-27 18:35:08 +08:00
33409eb634 feat(Tree): add select_only option — click always selects, never deselects
When opts.select_only=true, clicking the same node keeps it selected
instead of toggling off. Default false (preserves existing behavior).
2026-07-27 18:23:16 +08:00
1775309638 i18n: add Tabular CRUD form translations (Add/Update/Clone/Delete record)
Added 4 missing keys to bricks i18n for zh/en/jp/ko:
- Add record, Update record, Clone record, Delete conform

Also fixed hardcoded 'Delete conform' in dynamicaccordion.js
to use bricks.app.i18n._('Delete conform').
2026-07-27 12:12:49 +08:00
7bc0a7fdcc move html5-qrcode + model-viewer from unpkg CDN to local 3parties/ 2026-07-24 16:23:02 +08:00
a6a4a485a9 droppable docs: add max_size/multiple, file upload example with FormData+fetch 2026-07-23 16:45:14 +08:00
675dd09d05 add docs for FlipCard/Carousel/Draggable/Droppable/Sortable widgets (zh+en) 2026-07-23 16:25:50 +08:00
48c6405bbc add Draggable/Droppable/Sortable bricks widgets — SortableJS-backed, file drop support 2026-07-23 15:58:39 +08:00
6c94ce66a2 add FlipCard and Carousel bricks widgets + CSS 2026-07-23 14:57:14 +08:00
0d42a87052 fix: ChartScatter tooltip显示nameField+隐藏series0 legend 2026-07-23 14:29:28 +08:00
829d099d31 fix: inputdata2dic use getAll for multi-value fields, UserInputView iterate arrays 2026-07-16 12:21:20 +08:00
f732d631e3 fix: multi-file preview in UiFile, multi video/audio in UserInputView, concat assign in LlmOut 2026-07-16 11:40:44 +08:00
1d177f163b fix: 父菜单项(有children无url)不再报configured error 2026-07-14 15:45:22 +08:00
2c1283cd4b chore: remove swap file 2026-07-13 18:30:18 +08:00
848d724c18 i18n: 合并脚本覆盖identity映射; 新增Delete/Search翻译 2026-07-13 18:26:41 +08:00
342608403c feat: merge_bricks_i18n.py 合并bricks翻译到全局i18n 2026-07-13 18:20:18 +08:00
15c8f3a4ef i18n: 创建i18n.json(4语言25条); tip统一包i18n._() 2026-07-13 18:15:50 +08:00
235af19b2e fix: UiFile multiple — resultValue/set_formdata support file arrays; Form required check handles arrays 2026-07-02 15:42:19 +08:00
55a7bce6e4 fix: loadNextPage/loadPreviousPage空数组防-Infinity 2026-07-01 16:45:40 +08:00
dc74074bdd feat: bricks i18n — 硬编码字符串改用 i18n._() + 翻译文件
编译的 dist/ 目录新增 i18n/{zh,en,jp,ko}/ 自动注入到 sage wwwroot/bricks/i18n/

翻译的字符串:
- conform.js: Conform/Discard → i18n._()
- dynamicaccordion.js: add a new record → i18n._()
- form.js: Submit/Reset/Cancel/Requirement → i18n._()
- jsoncall.js: access error → i18n._()
- llm.js: 知识库/召回数量/模版 → i18n._()

build.sh 新增 i18n 目录复制到 dist
2026-06-29 12:03:34 +08:00
aa81a38241 bugfix 2026-06-26 17:18:59 +08:00
21d8c8fd9d bugfix 2026-06-26 17:15:10 +08:00
d2f8f255e5 feat(i18n): DataViewer弹窗title国际化
- show_filter_form: '搜索过滤' -> bricks.app.i18n._('Search Filter')
- delete_record: 'Delete conform' -> bricks.app.i18n._('Delete conform')
- delete_record: message -> bricks.app.i18n._('Are you sure to delete this record?')
- 修正原文typo: 'is record' -> 'this record'
2026-06-26 11:05:28 +08:00
ea4de411c0 i18n: 文件上传控件提示文字支持i18n 2026-06-25 13:53:29 +08:00
Hermes Agent
3d88fb5548 fix: EchartsExt auto-refresh stops when widget leaves DOM (is_in_dom check) 2026-06-24 16:50:58 +08:00
Hermes Agent
8d0848fd9d fix: get_hidefields() use this.opts.data_params instead of this.data_params 2026-06-24 12:59:13 +08:00