#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.13.x
#### What this PR does / why we need it:
升级 Vue 生态相关依赖至最新版本。
#### Does this PR introduce a user-facing change?
```release-note
升级 Vue 生态相关依赖至最新版本。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.13.x
#### What this PR does / why we need it:
升级 Axios 依赖版本至 1.6.x
#### Does this PR introduce a user-facing change?
```release-note
升级 Axios 依赖版本至 1.6.x
```
#### What type of PR is this?
/kind bug
/area editor
/area console
#### What this PR does / why we need it:
在 #5191 中对表格新增了如果可以左右滚动时,则显示阴影的特性。而根据 `prosemirror` 的数据流处理策略,在 `decorations` 中,state 是 new EditorState,但通过 `this.editor.view` 获取到的 view 为 old EditorView,进而导致使用了最新的坐标,并且使用其坐标通过旧版本的 view 中获取 DOM 而产生的错误。
本 PR 使用 `NodeView` 而不是 `decorations` 来重新处理表格阴影。
#### How to test it?
在默认富文本编辑器中新建一个表格。在表格前使用拼音输入文本,查看此文本能否被输入。
同时查看表格阴影是否存在
#### Which issue(s) this PR fixes:
Fixes#5352
#### Does this PR introduce a user-facing change?
```release-note
解决默认富文本编辑器表格前字符无法被编辑的问题。
```
#### What type of PR is this?
/area core
/kind bug
/milestone 2.13.x
#### What this PR does / why we need it:
补全插件已存在错误提示的翻译。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
使用索引功能优化附件列表查询
#### Does this PR introduce a user-facing change?
```release-note
使用索引功能优化附件列表查询
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
In fact, PAT is a JWT, which is very long. However, we put the claim `roles` into PAT, which will cause the length of PAT to increase as the `roles` information increases.
So, the current PR removes the claim `roles` from PAT, which ensures that the length of PAT becomes stable and we can update roles information for PAT at runtime.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5366
#### Does this PR introduce a user-facing change?
```release-note
避免个人令牌长度随着角色信息增长
```
#### What type of PR is this?
/kind bug
/area ui
#### What this PR does / why we need it:
在个人中心的文章功能中,点击设置时并不会重新获取最新的 Post 数据,进而导致点击保存时的 `version` 并非最新版本而报错。
此 PR 将在个人中心的文章页面点击设置时,额外增加一次获取最新的 Post 数据的请求,用于解决此问题。
#### How to test it?
1. 进入个人中心
2. 点击文章菜单
3. 点击右上角创建按钮
4. 在编辑器中随便输入内容
5. 点击保存
6. 修改文章的设置后点击保存。
7. 关闭设置框,再次打开设置框,然后点击保存。
8. 查看是否会出现无法保存的问题。
#### Which issue(s) this PR fixes:
Fixes#5344
#### Does this PR introduce a user-facing change?
```release-note
解决个人中心文章设置时报错的问题
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.13.x
#### What this PR does / why we need it:
修复 Console 中用户头像无法正确获取的问题。
#### Which issue(s) this PR fixes:
Fixes#5368
#### Special notes for your reviewer:
测试方式:
1. 创建若干用户,并为部分用户设置不同的头像。
2. 分别进入不同用户的个人资料页面,观察头像是否符合预期。
#### Does this PR introduce a user-facing change?
```release-note
修复 Console 中用户头像无法正确获取的问题。
```
#### What type of PR is this?
/kind cleanup
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
UsernamePasswordAuthenticator is a normal webfilter instead of authentication webfilter in security filter chain. There does not guarentee expected results due to different in execution order. So this PR changes UsernamePasswordAuthenticator to AuthenticationWebFilter for managing the filter by security filter chain.
By the way, these changes will not affect any plugins.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
The wrong `pre-commit` will prevent us from making a Git commit. The problem was caused by <https://github.com/halo-dev/halo/pull/5314>.
```bash
ui/.husky/pre-commit: line 4: cd: console: No such file or directory
husky - pre-commit hook exited with code 1 (error)
```
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
This PR creates AdditionalWebFilterChainProxy to call all additional filters instead of using SecurityWebFilterChain.
Please note that:
- the AdditionalWebFilterChainProxy should be executed before `org.springframework.security.web.server.WebFilterChainProxy`.
- I don't change `UsernamePasswordAuthenticator` because of <https://github.com/halo-dev/halo/pull/5348>. The authenticator should be in Security scope instead of a standalone webfilter.
See https://github.com/halo-dev/halo/issues/5300#issuecomment-1933436652 for more.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5300
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind documentation
#### What this PR does / why we need it:
Prevent code contributors from being misled by outdated documentation(1.x).
#### Which issue(s) this PR fixes:
Fixes#5358
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
NONE
```
#### What type of PR is this?
/kind improvement
#### What this PR does / why we need it:
Correct some simplified Chinese characters that were not replaced in the yaml file of traditional Chinese.
#### Which issue(s) this PR fixes:
Fixes#3672
#### Special notes for your reviewer:
I have read the CONTRIBUTING file, but I'm not familiar with PR operations. If there's anything I can do to improve it, please let me know.
> By the way, the [contribution guidelines](https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md) provided in the PR template and README still use `master` as the main branch, which may cause some confusion for new contributors.
#### Does this PR introduce a user-facing change?
```release-note
NONE
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Rename console to ui in some files,
Ref https://github.com/halo-dev/halo/pull/5314
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
移除启动时不必要的搜索引擎索引构建步骤
#### Does this PR introduce a user-facing change?
```release-note
移除启动时不必要的搜索引擎索引构建步骤
```
#### What type of PR is this?
/kind bug
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
修复启动时 GcSynchronizer 没有精准过滤出所需数据导致内存占用会出现较高峰值的问题
#### Which issue(s) this PR fixes:
Fixes#5324
#### Does this PR introduce a user-facing change?
```release-note
修复启动时 GcSynchronizer 没有精准过滤出所需数据导致内存占用会出现较高峰值的问题
```
#### What type of PR is this?
/kind bugfix
/milestone 2.12.x
/area core
#### What this PR does / why we need it:
修复事务未提交便触发控制器执行可能导致数据状态不正确的问题
**how to test it?**
1. 测试如 #5315 的问题是否还存在
2. 测试添加重名自定义模型对象会抛出异常且数据被回滚
#### Which issue(s) this PR fixes:
Fixes#5315
#### Does this PR introduce a user-facing change?
```release-note
修复事务未提交便触发控制器执行可能导致数据状态不正确的问题
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
This PR supports building Docker image with major version tag, e.g.: `halohub/halo:2`.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4976
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
This PR bumps version to 2.13.0-SNAPSHOT and corrects links of Halo in README.md.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind feature
/area core
/area console
/milestone 2.12.x
#### What this PR does / why we need it:
为通知类型设置添加 UI 权限判断。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4728
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
为通知类型设置添加 UI 权限判断。
```
#### What type of PR is this?
/kind bug
/area editor
/area console
/milestone 2.12.x
#### What this PR does / why we need it:
在默认富文本编辑器解析文本时,使其保留空白符。
see https://prosemirror.net/docs/ref/#model.ParseOptions.preserveWhitespace
#### How to test it?
1. 输入一串文字,在其开始、结束、内容中分别键入空白字符。
2. 保存内容
3. 刷新页面,查看空白字符是否保留。
#### Which issue(s) this PR fixes:
Fixes#5260
#### Does this PR introduce a user-facing change?
```release-note
解决默认富文本编辑器内容刷新后空白字符丢失的问题
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.12.x
#### What this PR does / why we need it:
修改 `@halo-dev/richtext-editor` 的版本号,为发布 Halo 2.12 做准备。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.12.x
#### What this PR does / why we need it:
重构 Console 仪表盘中小部件的数据获取方式。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area console
/kind bug
/milestone 2.12.x
#### What this PR does / why we need it:
修复创建角色时,勾选某个角色模板导致已选角色模板被清空的问题。
#### Which issue(s) this PR fixes:
Fixes#5275
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.12.x
#### What this PR does / why we need it:
优化启动时用户头像获取不到的错误提示
原因是在启动时用户被执行 reconcile 时使用的 plugin-s3 插件还没有启动所以无法获取到 permalink 需要重试
how to test it?
使用 plugin-s3 插件作为用户头像的存储策略然后上传头像测试此 PR 在启动时的异常提示是否输出为:
```
2024-01-29T11:53:13.674+08:00 WARN 31937 --- [rReconciler-t-1] r.h.a.c.e.reconciler.UserReconciler : Failed to get avatar permalink for user [guqing] with attachment [460be0c4-b09f-4b25-ad93-e45f30331ec7], re-enqueuing...
```
#### Which issue(s) this PR fixes:
Fixes#5268
#### Does this PR introduce a user-facing change?
```release-note
优化启动时用户头像获取不到的错误提示
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.12.x
#### What this PR does / why we need it:
为个人中心的文章适配自动保存功能
#### How to test it?
新建一个空白文章,测试当失去焦点、切换路由,或者在页面等待 20S 后,是否会自动创建文章草稿。
#### Which issue(s) this PR fixes:
Fixes#5036
#### Does this PR introduce a user-facing change?
```release-note
为个人中心的文章适配自动保存功能
```
#### What type of PR is this?
/area console
/kind bug
/milestone 2.12.x
#### What this PR does / why we need it:
修复创建 PAT 之后,点击复制按钮无法复制 token 的问题。
#### Which issue(s) this PR fixes:
Fixes#5273
#### Special notes for your reviewer:
测试步骤:
1. 构建生产环境的 UC。
2. 创建 PAT,点击复制按钮,观察是否能够正常复制。
#### Does this PR introduce a user-facing change?
```release-note
修复创建 PAT 之后,点击复制按钮无法复制 token 的问题。
```
#### What type of PR is this?
/area console
/kind bug
/milestone 2.12.x
#### What this PR does / why we need it:
修复当头像因为后端服务无法正常变更时,前端因为一直处于 refetch 状态导致无法重新上传的问题。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4852
#### Special notes for your reviewer:
1. 使用 https://github.com/AirboZH/plugin-uposs 存储服务创建一个存储策略。
2. 用户设置中的头像存储位置改为此存储策略。
3. 上传头像,观测是否一直处于重新获取的状态。
#### Does this PR introduce a user-facing change?
```release-note
优化头像上传,防止因为后端服务异常导致无法重新上传。
```
#### What type of PR is this?
/area console
/kind bug
/milestone 2.12.x
#### What this PR does / why we need it:
修复当浏览器标签页不活跃时,文章编辑页面的 health 接口没有定时请求的问题。
#### Which issue(s) this PR fixes:
Fixes#5265
#### Special notes for your reviewer:
测试方式:
1. 可以在本地先将 refetchInterval 改为 1000 以方便测试。
2. 进入文章编辑页面。
3. 切换至其他标签页。
4. 返回之后查看浏览器开发者工具的 Network ,观察 health 接口是否有请求。
#### Does this PR introduce a user-facing change?
```release-note
修复当浏览器标签页不活跃时,文章编辑页面的 health 接口没有定时请求的问题。
```