From cd2b131dc9fc30f7a7b476119725b241ae91abd4 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 22 Aug 2025 11:17:57 +0800 Subject: [PATCH 1/2] :art: Improve av https://github.com/siyuan-note/siyuan/issues/15653 --- kernel/av/value.go | 4 +++- kernel/model/attribute_view.go | 24 +++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/kernel/av/value.go b/kernel/av/value.go index 3dd8c057b..d4ff996ee 100644 --- a/kernel/av/value.go +++ b/kernel/av/value.go @@ -65,6 +65,8 @@ func (value *Value) SetUpdatedAt(mills int64) { } } +const CheckboxCheckedStr = "√" + func (value *Value) String(format bool) string { if nil == value { return "" @@ -153,7 +155,7 @@ func (value *Value) String(format bool) string { return "" } if value.Checkbox.Checked { - return "√" + return CheckboxCheckedStr } return "" case KeyTypeRelation: diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index a8c15ae9c..aee199b98 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -557,11 +557,21 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error } } - if firstInit || changeGroupField { - if groupKey := view.GetGroupKey(attrView); nil != groupKey && (av.KeyTypeSelect == groupKey.Type || av.KeyTypeMSelect == groupKey.Type) { - // 首次设置分组时,如果分组字段是单选或多选类型,则将分组方式改为按选项排序 https://github.com/siyuan-note/siyuan/issues/15534 - view.Group.Order = av.GroupOrderSelectOption - sortGroupsBySelectOption(view, groupKey) + if firstInit || changeGroupField { // 首次设置分组时 + if groupKey := view.GetGroupKey(attrView); nil != groupKey { + if av.KeyTypeSelect == groupKey.Type || av.KeyTypeMSelect == groupKey.Type { + // 如果分组字段是单选或多选,则将分组排序方式改为按选项排序 https://github.com/siyuan-note/siyuan/issues/15534 + view.Group.Order = av.GroupOrderSelectOption + sortGroupsBySelectOption(view, groupKey) + } else if av.KeyTypeCheckbox == groupKey.Type { + // 如果分组字段是复选框,则将分组排序改为手动排序,并且已勾选在前面 + view.Group.Order = av.GroupOrderMan + checked := view.GetGroupByGroupValue(av.CheckboxCheckedStr) + unchecked := view.GetGroupByGroupValue("") + view.Groups = nil + view.Groups = append(view.Groups, checked, unchecked) + } + } for i, g := range view.Groups { @@ -1857,8 +1867,8 @@ func genAttrViewGroups(view *av.View, attrView *av.AttributeView) { if nil == groupItemsMap[""] { groupItemsMap[""] = []av.Item{} } - if nil == groupItemsMap["√"] { - groupItemsMap["√"] = []av.Item{} + if nil == groupItemsMap[av.CheckboxCheckedStr] { + groupItemsMap[av.CheckboxCheckedStr] = []av.Item{} } } From bd7e547ac0ce906af4339b70550a61626deb976e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 22 Aug 2025 11:29:30 +0800 Subject: [PATCH 2/2] :recycle: Upgrade to Electron v37.3.1 https://github.com/siyuan-note/siyuan/issues/15410 --- .github/CONTRIBUTING.md | 8 ++++---- .github/CONTRIBUTING_zh_CN.md | 8 ++++---- app/package.json | 4 ++-- app/pnpm-lock.yaml | 16 ++++++++-------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 2195a9f4d..49b0437ab 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -7,17 +7,17 @@ ## NPM dependencies -Install pnpm: `npm install -g pnpm@10.14.0` +Install pnpm: `npm install -g pnpm@10.15.0`
For China mainland Set the Electron mirror environment variable and install Electron: -* macOS/Linux: `ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ pnpm install electron@37.2.6 -D` +* macOS/Linux: `ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ pnpm install electron@37.3.1 -D` * Windows: * `SET ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/` - * `pnpm install electron@37.2.6 -D` + * `pnpm install electron@37.3.1 -D` NPM mirror: @@ -27,7 +27,7 @@ NPM mirror: Enter the app folder and execute: -* `pnpm install electron@37.2.6 -D` +* `pnpm install electron@37.3.1 -D` * `pnpm run dev` * `pnpm run start` diff --git a/.github/CONTRIBUTING_zh_CN.md b/.github/CONTRIBUTING_zh_CN.md index 0d27e9ac8..cdfeac7fd 100644 --- a/.github/CONTRIBUTING_zh_CN.md +++ b/.github/CONTRIBUTING_zh_CN.md @@ -7,17 +7,17 @@ ## NPM 依赖 -安装 pnpm:`npm install -g pnpm@10.14.0` +安装 pnpm:`npm install -g pnpm@10.15.0`
适用于中国大陆 设置 Electron 镜像环境变量并安装 Electron: -* macOS/Linux:`ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ pnpm install electron@37.2.6 -D` +* macOS/Linux:`ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ pnpm install electron@37.3.1 -D` * Windows: * `SET ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/` - * `pnpm install electron@37.2.6 -D` + * `pnpm install electron@37.3.1 -D` NPM 镜像: @@ -27,7 +27,7 @@ NPM 镜像: 进入 app 文件夹执行: -* `pnpm install electron@37.2.6 -D` +* `pnpm install electron@37.3.1 -D` * `pnpm run dev` * `pnpm run start` diff --git a/app/package.json b/app/package.json index 4c0ea0a8c..6e14d7a42 100644 --- a/app/package.json +++ b/app/package.json @@ -4,7 +4,7 @@ "description": "Refactor your thinking", "homepage": "https://b3log.org/siyuan", "main": "./electron/main.js", - "packageManager": "pnpm@10.14.0", + "packageManager": "pnpm@10.15.0", "scripts": { "lint": "eslint . --fix --cache", "dev": "webpack --mode development", @@ -58,7 +58,7 @@ "clean-webpack-plugin": "^4.0.0", "css-loader": "^7.1.2", "dayjs": "^1.11.5", - "electron": "37.2.6", + "electron": "37.3.1", "electron-builder": "26.0.12", "encoding": "^0.1.13", "esbuild-loader": "^3.0.1", diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index d8aba7602..53bbdf84c 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@electron/remote': specifier: ^2.1.3 - version: 2.1.3(electron@37.2.6) + version: 2.1.3(electron@37.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3.3.1 @@ -40,8 +40,8 @@ importers: specifier: ^1.11.5 version: 1.11.13 electron: - specifier: 37.2.6 - version: 37.2.6 + specifier: 37.3.1 + version: 37.3.1 electron-builder: specifier: 26.0.12 version: 26.0.12(electron-builder-squirrel-windows@26.0.11) @@ -1212,8 +1212,8 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@37.2.6: - resolution: {integrity: sha512-Ns6xyxE+hIK5UlujtRlw7w4e2Ju/ImCWXf1Q/PoOhc0N3/6SN6YW7+ujCarsHbxWnolbW+1RlkHtdklUJpjbPA==} + electron@37.3.1: + resolution: {integrity: sha512-7DhktRLqhe6OJh/Bo75bTI0puUYEmIwSzMinocgO63mx3MVjtIn2tYMzLmAleNIlud2htkjpsMG2zT4PiTCloA==} engines: {node: '>= 12.20.55'} hasBin: true @@ -2886,9 +2886,9 @@ snapshots: - bluebird - supports-color - '@electron/remote@2.1.3(electron@37.2.6)': + '@electron/remote@2.1.3(electron@37.3.1)': dependencies: - electron: 37.2.6 + electron: 37.3.1 '@electron/universal@2.0.1': dependencies: @@ -4065,7 +4065,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron@37.2.6: + electron@37.3.1: dependencies: '@electron/get': 2.0.3 '@types/node': 22.15.3