remove feature unhide new geometry by timeline

This commit is contained in:
taDuc
2026-05-24 15:25:37 +07:00
parent 0ebf8e1c65
commit a98e1ac5b0
7 changed files with 6545 additions and 17 deletions
+3 -3
View File
@@ -159,8 +159,8 @@ Khi apply, editor patch trực tiếp `feature.properties` của geometry đang
- Slider + numeric input cùng điều khiển `timelineDraftYear`.
- Có toggle `filterEnabled`.
- Khi bật filter:
- geometry đã có trong baseline chỉ hiện nếu năm hiện tại nằm trong `[time_start, time_end]`
- geometry mới tạo trong session vẫn được giữ visible
- mọi geometry chỉ hiện nếu năm hiện tại nằm trong `[time_start, time_end]`
- geometry mới tạo trong session cũng tuân theo filter này
Timeline hiện là filter phía client, không fetch lại dữ liệu project theo năm.
@@ -178,7 +178,7 @@ Panel phải có `UnifiedSearchBar` với 3 loại search:
- tìm geometry theo tên entity
- nút `Import` sẽ import geometry vào draft hiện tại
- đồng thời thêm entity tương ứng vào `snapshotEntityRows` nếu chưa có
- import sẽ tự tắt timeline filter để geometry mới import không bị ẩn
- import giữ nguyên timeline filter; geometry mới import có thể bị ẩn nếu ngoài năm hiện tại
## 9. Entity và binding
+2 -2
View File
@@ -69,7 +69,7 @@ Một thao tác không cần undo nếu nó chỉ đổi trạng thái xem/đi
| Vẽ line | `add-line` mode | Thêm feature vào `mainDraft` | `create` | Như trên | Mặc định `type: defense_line`, `geometry_preset: line` |
| Vẽ path/route | `add-path` mode | Thêm feature vào `mainDraft` | `create` | Như trên | Mặc định `type: attack_route`, render thêm arrow layer |
| Vẽ circle | `add-circle` mode | Thêm polygon có `circle_center`, `circle_radius` | `create` | Như trên | Mặc định `type: war`, `geometry_preset: circle-area` |
| Import GEO từ search | Search `geo`, nút import | Thêm feature vào `mainDraft`, thêm entity ref nếu thiếu | `group` gồm `snapshot_entities``create` khi cả hai đổi | `geometries[]` và entity ref | Tắt timeline filter để GEO vừa import không bị ẩn |
| Import GEO từ search | Search `geo`, nút import | Thêm feature vào `mainDraft`, thêm entity ref nếu thiếu | `group` gồm `snapshot_entities``create` khi cả hai đổi | `geometries[]` và entity ref | Giữ nguyên timeline filter hiện tại |
| Chọn geometry | Click map/panel | `selectedFeatureIds` | Không | Không | Chỉ là UI state |
| Focus geometry từ panel | `GeometryBindingPanel` row click | Selection, `geometryFocusRequest`, có thể kéo timeline draft year về `time_start` | Không | Không | Không đổi dữ liệu commit |
| Sửa vertex/circle | Map edit engine trong `select` | `feature.geometry` | `update` | `geometries[]` | Không hoạt động trong replay mode |
@@ -129,7 +129,7 @@ Một thao tác không cần undo nếu nó chỉ đổi trạng thái xem/đi
| Thao tác | State đổi | Undo | Commit | Ghi chú |
| --- | --- | --- | --- | --- |
| Đổi timeline year | `timelineDraftYear` | Không | Không | Client-side filter |
| Bật/tắt timeline filter | `timelineFilterEnabled` | Không | Không | New geometry trong session vẫn visible |
| Bật/tắt timeline filter | `timelineFilterEnabled` | Không | Không | Áp dụng cho cả geometry mới trong session |
| Geometry bị timeline lọc | Derived `mapRenderDraft` | Không | Không | Panel hiện `timeline` hoặc `out timeline`; selection/panel metadata vẫn đọc `editor.draft` |
| Geometry mồ côi | Derived từ `normalizeFeatureEntityIds(feature).length === 0` | Không riêng | Commit/submit bị chặn | Map không đổi màu riêng cho orphan; panel hiện `no entity` |
| Thiếu time | Derived từ `time_start/time_end` | Không riêng | Vẫn commit được | Panel hiện `no time` hoặc `partial time` |
+1 -1
View File
@@ -229,7 +229,7 @@ Nó được cập nhật khi:
- nguồn có thể là `mainDraft`, `replayDraft`, hoặc preview draft tùy mode
- đã qua filter timeline nếu `timelineFilterEnabled = true`
- đã qua replay preview hidden ids nếu đang preview
- geometry mới tạo trong session không bị timeline filter ẩn
- geometry mới tạo trong session ng bị timeline filter xử lý như geometry baseline
### `labelContextBaseDraft` và `mapLabelContextDraft`