#### What type of PR is this?
/area console
/kind feature
/milestone 2.8.x
#### What this PR does / why we need it:
在文章数据管理列表页面路由中记录查询条件,包括分页信息、筛选信息等。可以保证在刷新页面或者从文章编辑页面返回时保留之前的查询状态。
<img width="1758" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/270948d6-d585-4b36-ad3a-93064cf47548">
TODO:
- [x] 记录筛选条件,因为路由参数只能使用基本类型,但是原来的筛选条件的变量都是完整对象。
#### Which issue(s) this PR fixes:
Fixes#4098
#### Special notes for your reviewer:
需要测试:
1. 文章管理列表的所有筛选项是否可以正常工作。
2. 尝试设置部分筛选,然后刷新页面,观察筛选条件是否正常保留。
#### Does this PR introduce a user-facing change?
```release-note
Console 端的文章管理列表支持在地址栏记录筛选条件。
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.7.x
#### What this PR does / why we need it:
维护 Console 端的开发基础设施。
- 升级 TypeScript 以及 Vue 对于 TS 支持的相关包。
- 优化 packages 下所有包的配置,解决构建时生成 d.ts 文件的异常。
- 解决 TS 异常。
#### Special notes for your reviewer:
尝试执行:
1. pnpm build:packages
2. pnpm typecheck
观察是否正常即可。
#### Does this PR introduce a user-facing change?
```release-note
维护 Console 端的开发基础设施。
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.6.x
#### What this PR does / why we need it:
升级 Uppy 的所有 packages。
#### Special notes for your reviewer:
测试所有上传弹框是否可以正常使用即可。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.6.x
#### What this PR does / why we need it:
升级 ESLint 和 Prettier 相关的包。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.6.x
#### What this PR does / why we need it:
升级 pnpm 的版本为 pnpm 8,更新 pnpm-lock.yaml 文件。
GitHub Actions 的改动将在 https://github.com/halo-sigs/actions
#### Which issue(s) this PR fixes:
Fixes#3934
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.6.x
#### What this PR does / why we need it:
从 `@halo-dev/components` 包中移除 VCodemirror 组件,改为由 Console 内置。因为观察到 VCodemirror 暂时无法支持 Tree Shaking,即代表如果在其他地方引入了 `@halo-dev/components`,就算没有使用 VCodemirror 组件,也会构建到生产产物。
此外,内置到 Console 之后,改为了异步加载此组件,即进入到使用了 VCodemirror 的组件的页面才会加载相应资源。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/3469
#### Special notes for your reviewer:
测试方式:
1. Console 需要 `pnpm build:packages`
2. 测试系统设置中的代码注入部分,观察输入框是否加载正常即可。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.5.x
#### What this PR does / why we need it:
升级 @tanstack/vue-query 的版本至 [v4.29.1](https://github.com/TanStack/query/releases/tag/v4.29.1),并默认将 `refetchOnWindowFocus` 选项设置为 false。此选项的作用是当窗口重新聚焦时,刷新当前页面请求的状态(重新请求接口),目前暂时不需要使用它。
#### Does this PR introduce a user-facing change?
```release-note
升级 Console 端 `@tanstack/vue-query` 依赖的版本至 [v4.29.1](https://github.com/TanStack/query/releases/tag/v4.29.1)
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.5.x
/cherry-pick release-2.4
#### What this PR does / why we need it:
升级 `@halo-dev/richtext-editor` 的版本以解决编辑器翻译不完整的问题。
see https://github.com/halo-sigs/richtext-editor/pull/7
#### Does this PR introduce a user-facing change?
```release-note
升级 `@halo-dev/richtext-editor` 的版本以解决编辑器部分文本翻译不完整的问题。
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.4.x
#### What this PR does / why we need it:
重新在全局注册 FloatingDropdown 组件,因为在 https://github.com/halo-dev/halo/pull/3576 中移除之后,会导致插件无法正常加载 FloatingDropdown 组件,从而带来破坏更新。
#### Which issue(s) this PR fixes:
Fixes#3621
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area console
/milestone 2.4.x
#### What this PR does / why we need it:
升级 Console 依赖的所有 patch 版本,由于升级了 prettier 的版本,可能发生了规则改变,所以同时包含重新格式化后的文件。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind feature
#### What this PR does / why we need it:
为 Console 端添加多语言的支持,并默认提供简体中文和英文的语言包。
todolist:
- [x] 完善 Console 的文字语言包翻译。
- [ ] ~~为后端提供的部分数据支持翻译,比如系统设置的表单定义。(实现方式待讨论,这个 PR 先不支持)~~
- [x] 提供语言设置。
#### Which issue(s) this PR fixes:
Fixes#3346
#### 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 improvement
/area console
#### What this PR does / why we need it:
升级 FormKit 的版本到 0.16.2。
- https://formkit.com/changelog#0160-beta-16
#### Does this PR introduce a user-facing change?
```release-note
升级 Console 端的 FormKit 的版本到 0.16.2。
```
#### What type of PR is this?
/kind feature
/kind api-change
/area core
/area console
#### What this PR does / why we need it:
This PR creates AuthenticationWebFilter by ourselves instead of using FormLoginSpec directly. Because we have no chance to customize `org.springframework.security.web.server.authentication.ServerAuthenticationConverter` currently.
Meanwhile, we provide CryptoService(RSA) to generate key pair, get public key and decrypt message encrypted by public key.
There is a new endpoint to get public key which is used by console:
```bash
❯ curl localhost:8090/login/public-key -s | jq .
{
"base64Format": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouDtdDS751U8NcWfAAQ53ijEtkLnIHh1Thqkq5QHGslq2hBmWnNsIZFnc/bwVp00ImKLV2NtLgOuv5RRNS5iO+oqRvfOGdXLdW2nzqU2towtaMkYTEMJrsNMZp5BUNCGI7Z2xpPBZzvys0d1BvcpNFobX/LkOtcTyfB1DRp9ZAhxRYOZkTkCzaKo+6X11lnMexTsB3exzaXk9rRZ8XoJ+dWT5G0URs/PF2cDkgxuMdOFJzqDsb9HQYGI/etajdCcKs7mZsjmDgse9Cw9/3mgoTNnEGx9Wl89S0P+FJ7T5DALGt3/nSAlzmKdXJNBLf6Q44ogFpTWdq27JpJD3SKicQIDAQAB"
}
```
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/3419
#### Does this PR introduce a user-facing change?
```release-note
支持登录时密码加密传输
```
#### What type of PR is this?
/kind improvement
#### What this PR does / why we need it:
为 springdoc 添加 `writer-with-order-by-keys` 参数以固定 OpenAPI 中接口的参数顺序,防止重新生成 `api-client` 时因为参数顺序不同而造成不必要的 diff。
#### Special notes for your reviewer:
测试方式:
1. 反复执行 `make -C console api-client-gen`
2. 观察是否有产生 diff
#### Does this PR introduce a user-facing change?
```release-note
None
```