Commit Graph

279 Commits (52d064381f0664b2da655470558ddca3b0ce16a5)

Author SHA1 Message Date
Ryan Wang e0d79cc2b2
fix: user detail page switching does not take effect (#4321)
#### What type of PR is this?

/area console
/kind bug
/milestone 2.8.x

#### What this PR does / why we need it:

修复用户详情页面切换用户之后,数据不更新的问题。操作路径:

1. 进入任意一个用户的资料页面。
2. 点击左下角当前登录用户的个人资料。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4320

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
修复用户详情页面切换用户之后,数据不更新的问题。
```
2023-07-28 02:57:10 +00:00
Ryan Wang eced9365a2
fix: unable to expand the replies list of the comment (#4305)
#### What type of PR is this?

/area console
/kind bug
/milestone 2.8.x

#### What this PR does / why we need it:

修复评论有新回复时,无法展开回复列表的问题。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4252

#### Special notes for your reviewer:

需要测试:

1. 选中任意一个评论,尝试进行回复。
2. 点击回复按钮打开回复列表,观察是否能够正常打开。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 的评论有新回复时,无法展开回复列表的问题。
```
2023-07-28 02:35:09 +00:00
Ryan Wang 57ec43bedc
feat: add download tips in plugin and theme installation modal (#4314)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

在安装主题和插件的界面中添加下载源的提示。

<img width="631" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/f28d0f24-8c65-4589-a5c0-32fea3a2bd2b">

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4307

#### Does this PR introduce a user-facing change?

```release-note
在安装主题和插件的界面中添加下载源的提示。
```
2023-07-28 02:21:09 +00:00
Ryan Wang f3d7e856ac
feat: add a link back to the site on the login page (#4262)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.8.0

#### What this PR does / why we need it:

在登录页面添加返回到前台的链接。


<img width="506" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/31c6311d-7153-4028-b2dd-78d89e018bf3">



#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4175

#### Does this PR introduce a user-facing change?

```release-note
在 Console 的登录页面添加返回到前台的链接。
```
2023-07-27 04:34:12 +00:00
Takagi 4f1537b68f
pref: internationalize the avatar processing toolbar (#4313)
#### What type of PR is this?

/kind improvement

#### What this PR does / why we need it:

对头像处理组件的 toolbar 进行国际化处理。

#### Which issue(s) this PR fixes:

Fixes #4296 

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?
```release-note
None
```
2023-07-27 04:12:13 +00:00
Ryan Wang cf9a9e8a6d
feat: refine restore completed tips i18n (#4301)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

完善备份恢复界面的 i18n。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-26 08:00:19 +00:00
Ryan Wang a617ea164c
feat: require confirmation before restoring backup (#4300)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

在恢复备份的界面,改为需要先点击开始恢复按钮再显示上传区域。

#### Which issue(s) this PR fixes:

Fixes #4295 

#### Does this PR introduce a user-facing change?

```release-note
None 
```
2023-07-26 06:44:23 +00:00
Ryan Wang 25725e520e
feat: add showCancel prop for dialog component (#4302)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

为 Dialog 组件添加 showCancel 属性用于控制是否显示取消按钮,某些场景下 Dialog 只是用于提示切必须点击确定。

此外,还对以下位置做了对应修改:

1. 进入文章编辑时检查编辑器是否存在的弹框,只允许点击确定并返回。
2. 备份恢复完成之后点击确定关闭 Halo。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的 Dialog 组件添加 showCancel 属性用于控制是否显示取消按钮。
```
2023-07-26 06:42:19 +00:00
Ryan Wang cfe77c5ded
chore: release 2.8.0-rc.1 (#4290)
#### What this PR does / why we need it:

修改版本号,发布 2.8.0-rc.1

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-24 12:48:15 +00:00
Ryan Wang f56de041b4
chore: bump default editor version to 27 (#4288)
#### What type of PR is this?

/area console
/area editor
/milestone 2.8.x
/kind feature

#### What this PR does / why we need it:

升级默认编辑器以支持:

1. 重构 Block 操作区域逻辑,防止误操作。 Fixes https://github.com/halo-dev/halo/issues/4164
2. 支持设置文字背景颜色和字体颜色。
3. iframe block 支持主动刷新页面。 https://github.com/halo-dev/halo/issues/4227
4. 在顶部工具栏的区域添加工具箱。
5. 支持设置字体大小。

#### Does this PR introduce a user-facing change?

```release-note
升级默认编辑器版本,支持设置字体颜色、大小等功能,优化使用体验。
```
2023-07-24 12:46:14 +00:00
John Niang bd912c36b9
Support backup and restore (#4206)
#### What type of PR is this?

/kind feature
/area core

#### What this PR does / why we need it:

See 9921deb076/docs/backup-and-restore.md for more.

<img width="1906" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/41531186-d305-44fd-8bdc-30df9b71af43">
<img width="1909" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/3d7af1b9-37ad-4a40-9b81-f15ed0f1f6e8">


#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4059
Fixes https://github.com/halo-dev/halo/issues/3274

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
支持备份和恢复功能。
```
2023-07-24 08:26:16 +00:00
Takagi 84093d8db0
feat: add support for user avatar upload (#4253)
#### What type of PR is this?

/kind improvement
/area console
/area core

#### What this PR does / why we need it:

此 PR 对用户头像上传的方式进行了重构,移除了原有的头像链接及上传至附件库的方案。允许具有用户管理权限的用户对其他用户的头像进行修改和移除。

Core: 
新增了 `/apis/api.console.halo.run/v1alpha1/users/-/avatar` 的 `POST` 以及 `DELETE` 接口,用来上传用户的头像及删除当前用户的头像。

Console:
新增对用户头像进行裁剪的功能,并调用上传接口保存用户头像。

需等待 #4247 合并

#### Which issue(s) this PR fixes:

Fixes #2688 

See #4251 
See #4247 

#### Special notes for your reviewer:

1. 测试上传、删除头像接口是否能够正常执行。
2. 查看当前用户的头像是否能够设置成功。
3. 查看附件库中,当前用户的头像文件是否为 0 或 1 个。

#### Does this PR introduce a user-facing change?

```release-note
支持裁剪、上传和删除用户头像。
```
2023-07-24 08:08:04 +00:00
John Niang fdfaa53614
Support sort parameter when listing extensions (#4274)
#### What type of PR is this?

/kind feature
/area core

#### What this PR does / why we need it:

Currently, we cannot pass a sort parameter into extensions' list API, so the result of the API is unsortable.

This PR add the support for that API. e.g.:

```bash
curl -X 'GET' \
  'http://localhost:8090/api/v1alpha1/annotationsettings?sort=metadata.name,desc' \
  -H 'accept: */*'
```

#### Does this PR introduce a user-facing change?

```release-note
Extension 查询接口支持排序参数。
```
2023-07-24 07:02:23 +00:00
Ryan Wang 617d05f3bc
refactor: remove username input validation rule in user editing form (#4276)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

移除用户编辑表单中用户名的校验规则,在这个表单中,用户名本身就是不能修改的,所以不需要验证。移除之后还能够解决旧版本 Halo 升级之后无法修改资料的问题。(旧版本没有用户名校验)

#### Which issue(s) this PR fixes:

Fixes #4269 

#### Does this PR introduce a user-facing change?

```release-note
移除 Console 端用户编辑表单中用户名的校验规则,防止旧版本 Halo 升级之后无法修改资料。
```
2023-07-21 09:04:14 +00:00
Ryan Wang 834e37cf13
feat: record the attachment query conditions in the route query parameters (#4210)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.8.x

#### What this PR does / why we need it:

在附件数据管理列表页面路由中记录查询条件,包括分页信息、筛选信息等。可以保证在刷新浏览器窗口或者从编辑页面返回时保留之前的查询状态。

<img width="1714" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/cd3ab1da-ac5c-48c7-a8f2-83f2f86a47bc">

#### Special notes for your reviewer:

需要测试:

1. 附件管理列表的所有筛选项是否可以正常工作。
2. 尝试设置部分筛选,然后刷新页面,观察筛选条件是否正常保留。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的附件管理列表支持在地址栏记录筛选条件。
```
2023-07-21 03:50:14 +00:00
dependabot[bot] dc18d287e7
chore(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 in /console (#4270)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-21 11:22:28 +08:00
Ryan Wang 51848d8563
fix: search input component cannot be rendered normally under a non-secure domain name (#4260)
#### What type of PR is this?

/area console
/kind bug
/milestone 2.8.x

#### What this PR does / why we need it:

修复在非安全域名下,SearchInput 组件无法正常渲染的问题,因为使用了 crypto 接口来随机生成表单的 id。但 crypto 在非安全域名下无法被调用,参考:https://developer.mozilla.org/en-US/docs/Web/API/Crypto

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4250

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-21 02:34:17 +00:00
Ryan Wang 7ee6e050a2
feat: record the comment query conditions in the route query parameters (#4209)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.8.x

#### What this PR does / why we need it:

在评论数据管理列表页面路由中记录查询条件,包括分页信息、筛选信息等。可以保证在刷新浏览器窗口或者从其他页面返回的时候不丢失筛选条件。

<img width="1544" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/39573c8d-f664-40d1-8248-90443179ac73">

#### Special notes for your reviewer:

需要测试:

1. 评论管理列表的所有筛选项是否可以正常工作。
2. 尝试设置部分筛选,然后刷新页面,观察筛选条件是否正常保留。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的评论管理列表支持在地址栏记录筛选条件。
```
2023-07-21 02:28:13 +00:00
Ryan Wang 6b70296956
refactor: code structure of the post data list (#4219)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

重构 Console 端文章管理列表的代码结构,封装列表项为单个组件。

#### Special notes for your reviewer:

需要测试文章管理的功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-20 08:10:18 +00:00
Ryan Wang ea792f511b
refactor: code structure of the single page data list (#4220)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

重构 Console 端页面管理列表的代码结构,封装列表项为单个组件。

#### Special notes for your reviewer:

需要测试页面管理的功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-20 07:40:18 +00:00
Ryan Wang ad1ec3641c
chore: bump @halo-dev/richtext-editor to fix image size was abnormally modified (#4264)
#### What type of PR is this?

/area console
/kind bug
/milestone 2.8.x

#### What this PR does / why we need it:

升级编辑器以修复图片被自动修改尺寸的问题,see https://github.com/halo-sigs/richtext-editor/pull/22

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4215

#### Special notes for your reviewer:

测试方法可以参考:https://github.com/halo-sigs/richtext-editor/pull/22

#### Does this PR introduce a user-facing change?

```release-note
修复编辑文章时,原来的图片尺寸被自动修改的问题。
```
2023-07-20 07:30:18 +00:00
Takagi 5a7e794fea
feat: allow attachment library to filter certain groups and their attachments (#4255)
#### What type of PR is this?

/kind feature
/area core

#### What this PR does / why we need it:

为附件库增加过滤条件,过滤 labels 中包含 `halo.run/hidden` 的分组及其附件。

#### Which issue(s) this PR fixes:

Fixes #4251 

#### Special notes for your reviewer:

保证默认情况下附件能够正常访问即可。
或者为分组增加 `halo.run/hidden` label,之后查看接口中是否不包含具有目标分组及其附件。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-20 07:28:17 +00:00
Ryan Wang d21472dc0f
fix: post status filter item cannot be displayed when the page is refreshed (#4263)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.8.x

#### What this PR does / why we need it:

修复文章状态筛选在刷新页面之后无法回显的问题。

#### Which issue(s) this PR fixes:

see https://github.com/halo-dev/halo/pull/4219#issuecomment-1641310000

#### Special notes for your reviewer:

需要测试:

1. 在文章管理页面选择某个状态筛序项,观察数据是否正常。
2. 刷新页面,观察筛选项是否回显。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-20 07:24:18 +00:00
Ryan Wang ec2ab632fc
feat: refine validation for password field (#4257)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.8.x

#### What this PR does / why we need it:

在 Console 端关于用户密码输入的部分添加基本的验证,目前的规则是:

1. 必填,且不能全为空格符
2. 长度为 5-100
3. 字符串前后不能有空格

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4203

#### Special notes for your reviewer:

按照以上规则测试即可。

#### Does this PR introduce a user-facing change?

```release-note
Console 端关于用户密码输入的部分添加基本的验证
```
2023-07-19 11:48:12 +00:00
Ryan Wang 2ade57184c
feat: record the single page query conditions in the route query parameters (#4208)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.8.x

#### What this PR does / why we need it:

在页面数据管理列表页面路由中记录查询条件,包括分页信息、筛选信息等。可以保证在刷新浏览器窗口或者从编辑页面返回时保留之前的查询状态。

<img width="1597" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/5e14019b-9751-4a3f-b5c4-ec28b8ba4380">

#### Special notes for your reviewer:

需要测试:

1. 页面管理列表的所有筛选项是否可以正常工作。
2. 尝试设置部分筛选,然后刷新页面,观察筛选条件是否正常保留。
3. 尝试设置部分筛选,然后选择任意一个页面进行编辑,观察发布之后是否正常返回到管理列表,并正确设置了查询参数。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的页面管理列表支持在地址栏记录筛选条件。
```
2023-07-19 11:46:17 +00:00
Takagi 01b81f1afc
feat: add attachment policy and group selection component to formkit (#4258)
#### What type of PR is this?

/kind feature
/area console

#### What this PR does / why we need it:

为 formkit 添加一个 `attachmentPolicySelect` 类型的下拉选择框组件,用来供用户选择附件策略。
同时也添加了一个 `attachmentGroupSelect` 类型的下拉选择框组件,用来供用户选择附件分组。

#### Which issue(s) this PR fixes:

Fixes #4247 

#### Special notes for your reviewer:

使用 formkit 组件时将 type 修改为 `attachmentPolicySelect` 或 `attachmentGroupSelect`,查看是否能够展示一个可以选择附件策略或附件分组的组件,

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-19 11:06:13 +00:00
Ryan Wang 022526386a
perf: improve polling interval for api requests (#4246)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

优化 Console 端对异步数据轮询的间隔时间

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4214

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端对异步数据轮询的间隔时间
```
2023-07-19 03:44:12 +00:00
Ryan Wang 53b8ccb7c9
fix: delay issue in the theme settings tab switch (#4240)
#### What type of PR is this?

/area console
/kind bug
/milestone 2.8.x

#### What this PR does / why we need it:

修复主题设置选项卡切换的延迟问题。

#### Which issue(s) this PR fixes:

Fixes #4239 

#### Special notes for your reviewer:

需要测试:

1. 进入主题设置,尝试对设置选项卡进行切换,观察选项卡和实际的设置表单是否一致。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-19 03:26:13 +00:00
Ryan Wang e6f31759a0
feat: allow switching editors while editing a post (#4180)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.8.x

#### What this PR does / why we need it:

支持在编辑文章时切换编辑器,不再限制仅新建时允许切换。但需要注意的是,目前只支持同类型的编辑器切换(rawType)。

#### Which issue(s) this PR fixes:

Fixes #4176 

#### Special notes for your reviewer:

测试方式:

1. 安装多个编辑器插件,可以在 https://github.com/halo-sigs/awesome-halo 中查找。
2. 测试在新建文章时是否能够正常切换编辑器。
3. 测试在修改文章时能够正常切换同类型的编辑器。

#### Does this PR introduce a user-facing change?

```release-note
Console 端编辑文章时允许同类型的编辑器切换。
```
2023-07-18 08:16:02 +00:00
Ryan Wang ad9b0dfb21
fix: system settings and plugin settings panels cannot be displayed (#4222)
#### What type of PR is this?

/area console
/kind bug
/milestone 2.8.x

#### What this PR does / why we need it:

修复系统设置面板和插件设置面板无法正常显示的问题,此问题由 https://github.com/halo-dev/halo/pull/4102 中升级了 `@vueuse/router` 导致。

#### Which issue(s) this PR fixes:

Fixes #4221 

#### Special notes for your reviewer:

需要测试:

1. 测试系统设置能否正常工作。
2. 测试插件的设置能否正常工作。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-07-16 15:34:17 +00:00
Ryan Wang b1a6fe3446
feat: register the AnnotationsForm component globally (#4212)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.8.x

#### What this PR does / why we need it:

全局注册 AnnotationsForm 组件,以暴露给插件使用,让插件可以实现为模型设置 annotations 数据的功能。

#### Which issue(s) this PR fixes:

Fixes #4183 

#### Does this PR introduce a user-facing change?

```release-note
Console 端全局注册 AnnotationsForm 组件,以暴露给插件使用
```
2023-07-14 04:18:10 +00:00
Ryan Wang efcf526f1b
refactor: logic of attachment data filtering (#4194)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

重构附件数据管理的筛选条件逻辑以及 UI。

<img width="1645" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/6b13045e-ab6b-4306-a1bb-f19d97115191">


Ref https://github.com/halo-dev/halo/pull/4182
Ref https://github.com/halo-dev/halo/issues/4181

#### Special notes for your reviewer:

需要测试:

1. 测试附件的筛选条件包括关键词筛选功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
重构 Console 端附件数据列表的筛选项 UI 和逻辑。
```
2023-07-13 03:31:17 +00:00
Ryan Wang 6bba5073fa
refactor: simplify the logic of the system settings tab (#4196)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

简化系统设置页面,选项卡的状态管理逻辑,放弃动态路由的模式,改为使用路由查询参数代替。

原由:https://github.com/halo-dev/halo/pull/4041#issuecomment-1622921084

#### Special notes for your reviewer:

需要测试:

1. 测试系统设置页面能否正常工作即可。

#### Does this PR introduce a user-facing change?

```release-note
重构 Console 端系统设置页面的路由结构
```
2023-07-12 06:19:15 +00:00
Ryan Wang bb0a5f114a
feat: record the post query conditions in the route query parameters (#4102)
#### 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 端的文章管理列表支持在地址栏记录筛选条件。
```
2023-07-12 06:17:20 +00:00
Ryan Wang 197096305b
refactor: logic of comment data filtering (#4195)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

重构评论数据管理的筛选条件逻辑以及 UI。

<img width="1650" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/d89769bb-b8af-427e-a1ec-6ac8674131d3">

Ref https://github.com/halo-dev/halo/pull/4182
Ref https://github.com/halo-dev/halo/issues/4181

#### Special notes for your reviewer:

需要测试:

1. 测试评论的筛选条件包括关键词筛选功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
重构 Console 端评论数据列表的筛选项 UI 和逻辑。
```
2023-07-12 01:53:12 +00:00
Ryan Wang 119f352145
refactor: logic of post and singlepage data filtering (#4193)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

重构文章和页面数据管理的筛选条件逻辑以及 UI。

<img width="1646" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/154c5588-91c0-448d-aa39-d75e90bce6ca">


Ref https://github.com/halo-dev/halo/pull/4182
Ref https://github.com/halo-dev/halo/issues/4181

#### Special notes for your reviewer:

需要测试:

1. 测试文章的筛选条件包括关键词筛选功能是否正常。
2. 测试页面的筛选条件包括关键词筛选功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
重构 Console 端文章数据列表的筛选项 UI 和逻辑。
```
2023-07-11 07:15:10 +00:00
Ryan Wang f622b1787c
refactor: data list filter components (#4182)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.8.x

#### What this PR does / why we need it:

重构 Console 端数据列表的筛选项 UI,并提供全局的筛选列表组件和搜索输入框组件。

> 在此 PR 同时重构了插件列表和用户列表用于验证,其他页面后续提 PR 修改。

<img width="1657" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/ffa42184-46e6-4cb0-b39f-bd7b18869697">

重构之后可以获得:

1. 更好的代码组织。
2. 更好的使用体验。
3. UI 更加容易适配移动端。

#### Which issue(s) this PR fixes:

Fixes #4181 

#### Special notes for your reviewer:

需要测试:

1. 测试插件管理和用户管理的数据列表筛选和关键词搜索功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
重构 Console 端数据列表的筛选项 UI,并提供全局的筛选列表组件和搜索输入框组件。
```
2023-07-07 08:23:06 +00:00
Ryan Wang c0aae3a63c
feat: make plugin tabs extensible (#4041)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.7.x

#### What this PR does / why we need it:

插件自身的详情页面中的 Tabs 选项卡支持拓展,允许开发者自行为插件编写设置界面、一些不常用的操作页面等。

示例:

<img width="1358" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/1e414e4e-688d-47de-907f-5f2a0afa9350">

扩展方式:

参考文档:https://github.com/ruibaby/halo/blob/feat/plugin-tabs-extend/console/docs/extension-points/plugin-self-tabs.md

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3987

#### Special notes for your reviewer:

需要测试:

1. 测试任意插件的详情页面是否能够正常使用。
2. 测试任意插件的设置表单能否正常使用。
3. 可以尝试根据文档为某个插件添加自定义的选项卡,测试是否能够正常工作。

#### Does this PR introduce a user-facing change?

```release-note
Console 端插件详情选项卡支持通过插件扩展。
```
2023-07-07 04:38:11 +00:00
Ryan Wang dcafee7e1f
chore: release 2.7.0 (#4158)
#### What this PR does / why we need it:

修改版本号,准备发布 2.7.0。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-06-30 03:16:12 +00:00
John Niang 4685bf4052
Add role template for managing cache (#4153)
#### What type of PR is this?

/kind feature
/area core
/milestone 2.7.x

#### What this PR does / why we need it:

Add role template for managing cache. Anyone with role `role-template-manage-cache` can see the `Refresh Page Cache` button.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4143

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-06-29 07:48:12 +00:00
John Niang 0d387eddf3
Enable configuration caching with separate names (#4151)
#### What type of PR is this?

/kind feature
/area core
/milestone 2.7.x

#### What this PR does / why we need it:

Refactor configuration properties to configure caching with separate names, so that we can enable / disable cache with name.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4144

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-06-29 07:02:11 +00:00
Ryan Wang baba8b9d24
chore: bump @halo-dev/richtext-editor version to alpha 24 (#4146) 2023-06-29 00:10:58 +08:00
Ryan Wang 8db4cec91e
feat: add support for inserting external media resources to the default editor (#4126)
#### What type of PR is this?

/kind feature
/area console
/area editor
/milestone 2.7.x

#### What this PR does / why we need it:

默认编辑器支持直接插入图片、视频、音频,提供除了附件库的媒体插入入口。

<img width="1011" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/4c9be243-882f-4d21-9fa8-ce3033744746">

通过链接插入图片需要 https://github.com/halo-sigs/richtext-editor/pull/17 的支持。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3882
Fixes https://github.com/halo-dev/halo/issues/3994

#### Special notes for your reviewer:

测试编辑器通过链接插入图片、视频、音频的功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
默认编辑器支持不通过附件库直接插入图片、视频、音频。
```
2023-06-28 09:54:11 +00:00
Ryan Wang 02e7068ee0
refactor: simplify request exception handling (#4129)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.7.x

#### What this PR does / why we need it:

简化请求异常提示的逻辑。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-06-28 06:44:12 +00:00
John Niang d0526ec592
Add support for caching template rendering result (#4091)
#### What type of PR is this?

/kind feature
/area core

#### What this PR does / why we need it:

This PR adds dependency [spring-boot-starter-cache](https://docs.spring.io/spring-boot/docs/current/reference/html/io.html#io.caching) as cache framework and [caffeine](https://github.com/ben-manes/caffeine/wiki) as cache implementation to cache template rendering result.

By default, we disable the cache feature. If you want to enable it, please try to configure properties like this:

```yaml
halo:
  cache:
    disabled: false
```

#### Which issue(s) this PR fixes:

Fixes #2827 

#### Special notes for your reviewer:

1. Start Halo
2. Browse any page twice
3. See the difference in request times

#### Does this PR introduce a user-facing change?

```release-note
支持模板渲染结果缓存
```
2023-06-26 14:38:00 +00:00
guqing 2791d2f0e5
refactor: uinify some properties of plugins and themes (#4061)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.7.x
/kind api-change

#### What this PR does / why we need it:
统一主题和插件描述文件的部分字段
1. 统一网站字段为 homepage,将主题的 website 标记为过时并兼容为 homepage
2. 主题添加 license 字段
3. 插件添加 repo

#### Which issue(s) this PR fixes:
Fixes #4011

#### Does this PR introduce a user-facing change?
```release-note
统一主题和插件描述文件的部分字段
```
2023-06-26 14:33:58 +00:00
Ryan Wang e13beb4cd1
feat: add redirect support for social auth provider (#4063)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.7.x

#### What this PR does / why we need it:

三方登录时支持传入 `login_redirect_uri` 参数,以让三方登录提供方支持适配登录后重定向到具体页面的功能。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4029

#### Special notes for your reviewer:

测试方式:

1. 可以使用 https://github.com/halo-sigs/plugin-oauth2/pull/33 进行测试。
2. 手动在登录页面构造如 https://127.0.0.1:8090/console/login?redirect_uri=/ 的地址,观察使用三方登录之后是否会跳转到指定页面。

#### Does this PR introduce a user-facing change?

```release-note
Console 端三方登录支持重定向参数。
```
2023-06-26 13:35:58 +00:00
Ryan Wang c39691d6fe
feat: make default editor extensible (#4090)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.7.x

#### What this PR does / why we need it:

默认编辑器支持扩展,包括输入类型、工具栏、Slash Command 等。

Ref https://github.com/halo-sigs/richtext-editor/pull/16

## 定义方式

```ts
import ExtensionFoo from "./tiptap/extension-foo.ts"

export default definePlugin({
  extensionPoints: {
    "default:editor:extension:create": () => {
      return [ExtensionFoo];
    },
  },
});
```

其中,`ExtensionFoo` 是一个 Tiptap Extension,可以参考 [Tiptap 文档](https://tiptap.dev/) 和 [https://github.com/halo-sigs/richtext-editor/blob/main/docs/extension.md](https://github.com/halo-sigs/richtext-editor/blob/main/docs/extension.md)。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4028

#### Does this PR introduce a user-facing change?

```release-note
Console 端的默认编辑器支持被扩展
```
2023-06-26 13:33:59 +00:00
Ryan Wang 34d0f9369b
refactor: add legacy option for useClipboard hook to solve compatibility issues (#4114)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.7.x

#### What this PR does / why we need it:

Console 端部分使用了复制功能的页面,所使用的 useClipboard hook 添加 legacy 参数以解决部分浏览器的兼容问题。

#### Which issue(s) this PR fixes:

Fixes #4113 

#### Special notes for your reviewer:

1. 使用路由地址(192.168.x.x)访问 Halo。
2. 测试附件详情弹框的链接复制和概览页面中的复制功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端部分页面复制功能的兼容性问题。
```
2023-06-26 13:28:08 +00:00
Ryan Wang 27ef8d3bab
fix: dropdown options cannot be clicked in some mobile devices (#4116)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.7.x

#### What this PR does / why we need it:

修复在部分移动端浏览器(比如 iOS Safari)中,下拉框组件(VDropdown)的选项点击无效的问题,即没有触发 click 事件。此问题的原因可能是因为我们用的 floating-vue 组件提供的 `v-close-popper` 指令的兼容问题,最小复现:https://stackblitz.com/edit/vitejs-vite-ncpzhj?file=src%2FApp.vue

此 PR 改写了关闭下拉框的方式,不再使用 v-close-popper 指令,而且对其他使用此组件的地方没有破坏性更新。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3689
Ref https://github.com/halo-dev/halo/issues/2699

#### Special notes for your reviewer:

如果有条件可以在移动端测试一下,尤其是 iOS Safari,目前在桌面端 Chrome 的设备模拟中测试正常。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端的下拉框组件选项在移动端无法正常点击的问题。
```
2023-06-26 13:21:57 +00:00
Ryan Wang 8c05a6d30e
feat: make comment subject ref provider extensible (#4039)
#### What type of PR is this?

/area console
/kind feature

#### What this PR does / why we need it:

让评论来源的显示支持通过插件扩展,目前如 [瞬间](https://github.com/halo-sigs/plugin-moments) 这类的插件如果使用了评论模块,那么在评论管理是无法显示具体来源的:

<img width="627" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/0df354dc-ed42-4217-abbd-5bce67329e0d">

此 PR 为 Console 端提供了拓展方法,使用方式如下:

```ts
import { definePlugin } from "@halo-dev/console-shared";
import type { CommentSubjectRefResult } from "@halo-dev/console-shared";
import type { Extension } from "@halo-dev/api-client";
import type { Moment } from "./types";

export default definePlugin({
  components: {},
  extensionPoints: {
    "comment:subject-ref:create": () => {
      return [
        {
          kind: "Moment",
          group: "moment.halo.run",
          resolve: (subject: Extension): CommentSubjectRefResult => {
            const moment = subject as Moment;
            return {
              label: "瞬间",
              title: determineMomentTitle(moment),
              externalUrl: `/moments/${moment.metadata.name}`,
              route: {
                name: "Moments",
              },
            };
          },
        },
      ];
    },
  },
});

```

#### Which issue(s) this PR fixes:

Fixes #3554 

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
Console 端的评论来源显示支持通过插件扩展
```
2023-06-26 04:20:18 +00:00
Ryan Wang ac47942a04
feat: add permission settings to dashboard widgets (#4112)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.7.x

#### What this PR does / why we need it:

为仪表板内置的小组件添加权限设置,解决部分没有权限的用户访问仪表盘提示异常的问题。

#### Which issue(s) this PR fixes:

Fixes #4111 

#### Special notes for your reviewer:

测试方式:

1. 创建一个访客角色的用户。
2. 访问仪表盘,观察是否有异常提示,以及是否出现没有权限的小组件。

#### Does this PR introduce a user-facing change?

```release-note
Console 端仪表盘的内置小组件添加权限设置。
```
2023-06-26 04:12:16 +00:00
Ryan Wang 96225e4040
chore: improve the console project infrastructure (#4105)
#### 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 端的开发基础设施。
```
2023-06-26 03:54:17 +00:00
Ryan Wang f37085f5a6
perf: improve the text length style of the comment subject ref title (#4115)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.7.x

#### What this PR does / why we need it:

Fix style issue of the comment subject ref title.

before:

<img width="1386" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/d6c845d4-039b-42bb-855a-01c9ddf113ee">

after:

<img width="1390" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/0f53f3fb-ab59-4b12-9352-49623b121347">


#### Which issue(s) this PR fixes:

Fixes #4068 

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-06-25 06:34:17 +00:00
Ryan Wang 1b6d081750
feat: add mouse hover style to the default type of button (#4108)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.7.x

#### What this PR does / why we need it:

为默认类型的按钮添加鼠标悬浮的样式。

<img width="333" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/922dd681-a2f1-4875-adef-9d1c5a075467">

#### Which issue(s) this PR fixes:

Fixes #4067 

#### Does this PR introduce a user-facing change?

```release-note
Console 端默认类型的按钮添加鼠标悬浮的样式。
```
2023-06-25 06:28:14 +00:00
Ryan Wang e658097b99
fix: modal height issue in ios devices (#4106)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.7.x

#### What this PR does / why we need it:

优化 VModal 组件在 iOS 设备上底部和顶部被遮挡的问题,解决方案来自于:https://github.com/Faisal-Manzer/postcss-viewport-height-correction

| before                                                       | After                                                        |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| ![IMG_0319](https://github.com/halo-dev/halo/assets/21301288/71d15e51-5cf9-402e-b6ce-fff4e1014f72) | ![IMG_0315](https://github.com/halo-dev/halo/assets/21301288/6c3b4b75-2029-4b32-8dcc-eead3e479ab1) |
| ![IMG_0318](https://github.com/halo-dev/halo/assets/21301288/b4f586b4-34e1-48ea-97ed-7f1f70184346) | ![IMG_0316](https://github.com/halo-dev/halo/assets/21301288/7dee64bb-2328-44ef-a9f6-534ea4c005fe) |

<!--fuck apple, fuck safari-->

#### Which issue(s) this PR fixes:

Ref https://github.com/halo-dev/halo/issues/2699


#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端弹框组件(VModal)在 iOS 设备的高度问题。
```
2023-06-25 02:06:14 +00:00
Ryan Wang f6a6b25dd6
chore: bump formkit version to 0.17.3 (#4103)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.7.x

#### What this PR does / why we need it:

升级 FormKit 的版本至 0.17.3

- https://formkit.com/changelog
- https://github.com/formkit/formkit/releases/tag/0.17.0
- https://github.com/formkit/formkit/releases/tag/0.17.3

#### Which issue(s) this PR fixes:

Fixes #3951 

#### Special notes for your reviewer:

测试 Console 端各个表单功能是否正常即可。

#### Does this PR introduce a user-facing change?

```release-note
升级 Console 端 FormKit 的依赖版本至 0.17.3
```
2023-06-21 08:28:13 +00:00
Ryan Wang 2fd9cbde33
feat: add support for selecting the parent category when creating a new category (#4056)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.7.x

#### What this PR does / why we need it:

支持在创建分类的时候选择上级分类。

<img width="805" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/02912f70-4de4-4b8e-bbbe-f973fbd3e684">

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4040

#### Special notes for your reviewer:

测试方式:

1. 测试新建的时候指定上级分类的功能是否正常。
2. 点击某个分类的操作按钮,选择添加子分类的菜单项,检查在新建分类的表单中上级分类是否选中了此分类。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的文章分类支持在新建时指定上级分类。
```
2023-06-19 02:54:11 +00:00
Ryan Wang 4a1fe8dd1e
perf: disallow repeated clicks when third-party login (#4066)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.7.x

#### What this PR does / why we need it:

在使用某个三方登录的时候,禁用其他三方登录,防止重复点击。

#### Which issue(s) this PR fixes:

Fixes #4064 

#### Special notes for your reviewer:

测试方式:

1. 可安装 https://github.com/halo-sigs/plugin-oauth2 进行测试,可以不用配置各个登录方式,只需开启即可。
2. 在登录页面点击某个三方登录方式,观察所有三方登录方式的按钮是否被禁用。

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端登录页面的三方登录方式按钮,禁用重复点击。
```
2023-06-19 02:36:10 +00:00
longjuan 1b581d5d6f
perf: remove html lang attribute in console (#4085)
#### What type of PR is this?
/kind improvement
/area console

#### What this PR does / why we need it:

去除`index.html`的`lang`属性以避免console端出现翻译提示

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3692

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?


```release-note
避免 Console 端出现翻译提示
```
2023-06-19 01:30:10 +00:00
John Niang 02369fbd3c
Add rate limiter for login endpoint (#4062)
#### What type of PR is this?

/kind feature
/area core

#### What this PR does / why we need it:

This PR introduces https://github.com/resilience4j/resilience4j to archive the feature. The login endpoint has limited login failures at a rate of 3 per minute.

See https://github.com/halo-dev/halo/issues/4044 for more.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/4044

#### Special notes for your reviewer:

1. Start Halo.
2. Try to login with incorrect credential 4 times
3. Check the response.

#### Does this PR introduce a user-facing change?

```release-note
增加登录失败次数限制功能
```
2023-06-16 04:50:12 +00:00
Ryan Wang 65b27eed6c
chore: release 2.6.0 (#4021)
#### What type of PR is this?

/area core

#### What this PR does / why we need it:

修改版本号,准备发布 2.6.0。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-06-01 03:08:12 +00:00
Ryan Wang b37ec04c87
perf: improve the experience of redirection after login (#4014)
#### What type of PR is this?

/area console
/kind improvement
/milestone 2.6.x

#### What this PR does / why we need it:

优化 Console 端登录之后重定向的体验,解决在重定向时会重新显示登录页面的问题。

#### Which issue(s) this PR fixes:

Fixes #4010 

#### Special notes for your reviewer:

测试方式与 https://github.com/halo-dev/halo/pull/3989 相同。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-05-31 06:55:01 +00:00
Ryan Wang ee1ea06171
fix: text content overflowing the container in the dialog component (#4007)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

修复 Console 端 Dialog 对话框组件中的文字内容可能会溢出容器的问题。

before:

<img width="623" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/ca9817c6-66e4-41f0-8112-4308913efcf2">

after:

<img width="666" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/9d64ee23-124c-434a-b8da-669cfd727dd0">


#### Which issue(s) this PR fixes:

Fixes #4006 

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端 Dialog 对话框组件中的文字内容可能会溢出容器的问题。
```
2023-05-29 11:38:56 +00:00
Ryan Wang e95caa2c21
refactor: use createWebHistory instead of createWebHashHistory (#4005)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

将 Console 的 Router 模式从 Hash History 改为 Web History。可以让路由看起来更加简洁,也方便在后端或者页面上构建路由。

文档:https://router.vuejs.org/zh/guide/essentials/history-mode.html

#### Special notes for your reviewer:

测试 Console 的各个页面是否正常访问即可。

#### Does this PR introduce a user-facing change?

```release-note
修改 Console 的路由模式为 HTML5 模式。
```
2023-05-29 08:48:55 +00:00
Ryan Wang 67e13546ae
chore: bump up version to 2.6.0-rc.1 (#3998)
#### What this PR does / why we need it:

修改版本号,准备发布 2.6.0-rc.1。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-05-26 15:06:13 +00:00
guqing 710261b035
feat: add the ability to install plugins remotely via URI (#3963)
#### What type of PR is this?
/kind feature
/area core
/area console
/milestone 2.6.x
/kind api-change

#### What this PR does / why we need it:
支持通过 URI 远程安装和升级插件

how to test it?
1. 测试插件安装
```shell
curl -u admin:admin -X POST http://localhost:8090/apis/api.console.halo.run/v1alpha1/plugins/-/install-from-uri --data '{
  "uri": "https://halo.run/apis/api.store.halo.run/v1alpha1/applications/app-KhIVw/releases/app-release-canxF/download/app-release-canxF-znFre"
}'
```
2. 测试插件升级
```shell
curl -u admin:admin -X POST http://localhost:8090/apis/api.console.halo.run/v1alpha1/plugins/PluginFeed/upgrade-from-uri --data '{
  "uri": "https://halo.run/apis/api.store.halo.run/v1alpha1/applications/app-KhIVw/releases/app-release-canxF/download/app-release-canxF-znFre"
}'
```
#### Which issue(s) this PR fixes:
Fixes #2292

#### Does this PR introduce a user-facing change?
```release-note
支持通过 URI 远程安装和升级插件
```
2023-05-26 14:54:16 +00:00
guqing da5fb1a252
feat: implement a feature for previewing posts and single pages (#3983)
#### What type of PR is this?
/kind feature
/area core
/area console
/milestone 2.6.x

#### What this PR does / why we need it:
新增文章和自定义页面预览功能

提供了以下两个路由用于预览,必须登录且是对应文章或自定义页面的 contributors 才能访问,如果不是 contributor 则先得到没有权限访问异常,如果有权限访问但预览文章不存在则得到 404
- 文章预览 `GET /preview/posts/{name}`
- 自定义页面预览 `GET /preview/singlepages/{name}`

两个路由都可以通过查询参数 snapshotName 来指定需要预览的内容快照,它是可选的,默认为当前正在编辑的内容

#### Which issue(s) this PR fixes:

Fixes #2349

#### Does this PR introduce a user-facing change?

```release-note
新增文章和自定义页面预览功能
```
2023-05-25 14:54:18 +00:00
Ryan Wang 533f0cfa66
feat: prompt to upgrade theme when installing existing theme (#3970)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

支持在安装已存在主题时提示是否升级主题。

<img width="611" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/2e99c781-96b6-4900-9a37-2d472ad65411">
<img width="604" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/a7bfa9d8-1522-417f-91b4-6ea3f75f693e">


#### Which issue(s) this PR fixes:

Fixes #3969 

#### Special notes for your reviewer:

测试方式:

1. 通过本地上传和远程下载的方式重复安装某个主题,观察是否可以正常提示升级以及测试升级是否正常。

#### Does this PR introduce a user-facing change?

```release-note
Console 端支持安装已存在主题时提示升级主题。
```
2023-05-25 14:40:18 +00:00
Ryan Wang 6dd98d2c0c
feat: add min and max props for repeater input (#3965)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.6.x

#### What this PR does / why we need it:

Console 端的 FormKit Repeater 输入框支持 min 和 max 参数用于限制项目数量。

<img width="630" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/541da770-0439-4731-a796-a58277c33e05">

#### Which issue(s) this PR fixes:

Fixes #3449 

#### Special notes for your reviewer:

定义方式:

```yaml
- $formkit: repeater
  name: test_repeater
  label: 测试 Repeater
  min: 2
  max: 3
  children:
    - $formkit: text
      name: test_text
      label: 测试 Text
    - $formkit: select
      name: test_select
      label: 测试 Select
      options:
        - value: prose-gray
          label: prose-gray
        - value: prose-slate
          label: prose-slate
        - value: prose-zinc
          label: prose-zinc
        - value: prose-neutral
          label: prose-neutral
        - value: prose-stone
          label: prose-stone
```

#### Does this PR introduce a user-facing change?

```release-note
Console 端的 FormKit Repeater 输入框支持 min 和 max 参数用于限制项目数量。
```
2023-05-25 14:38:19 +00:00
Ryan Wang 537d511cc0
feat: login page supports redirect_uri parameter (#3989)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.6.x

#### What this PR does / why we need it:

Console 端的登录页面支持登录之后重定向到某个链接(通过 redirect_uri 参数)。

支持一下链接形式:

1. 相对地址,比如 `/console#/plugins`、`/apps/app-links`
2. 绝对地址,仅限于同源地址,不支持非同源地址的重定向。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3982

#### Special notes for your reviewer:

测试方式:

1. 在未登录的情况下访问如 `http://127.0.0.1:8090/console#/theme` 地址,观察登录之后是否会返回到这个页面。
2. 手动在登录页面构造如 `https://127.0.0.1:8090/console#/login?redirect_uri=/` 的地址,观察登录之后是否会跳转。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的登录页面支持登录之后重定向到某个站内链接。
```
2023-05-25 14:30:18 +00:00
Ryan Wang 846138fe8c
chore: bump uppy packages (#3980)
#### 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
```
2023-05-25 13:38:18 +00:00
guqing d5f6dc2207
refactor: sorting parameters to maintain a unified API style (#3956)
#### What type of PR is this?
/kind improvement
/area core
/area console
/kind api-change
/milestone 2.6.x

#### What this PR does / why we need it:
重构排序参数以统一自定义 APIs 的风格
- 文章的排序参数字段名改为 `creationTimestamp`、`publishTime` 查询参数示例为 sort=creationTimestamp,desc
- 自定义页面排序参数字段名同文章
- 评论排序参数字段名为 `creationTimestamp`,`replyCount`,`lastReplyTime` 查询参数示例为 sort=creationTimestamp,desc

需要 Console 适配
#### Which issue(s) this PR fixes:

Fixes #3464

#### Does this PR introduce a user-facing change?

```release-note
重构排序参数以统一自定义 APIs 的风格
```
2023-05-25 12:42:17 +00:00
Ryan Wang a6c923d83d
chore: bump eslint and prettier related packages version (#3981)
#### 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
```
2023-05-22 08:56:05 +00:00
翟佳宇 c22f158fa3
fix: fix plugin detail page protocol name duplication issue (#3977)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind bug
<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:

修复插件详情页面协议名字重复出现的问题

#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes https://github.com/halo-dev/halo/issues/3971

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
NONE
```
2023-05-22 03:01:47 +00:00
翟佳宇 c3d01dd7c4
perf: improve the logic of input selection for category and tag (#3978)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind improvement
<!--
添加其中一个类别:
Add one of the following kinds:
/kind improvement
/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:

改善分类和标签选择性输入框的输入逻辑

![Kapture 2023-05-22 at 01 20 41](https://github.com/halo-dev/halo/assets/106857035/cf2d60f5-9ec5-4e5c-99e2-e3cd7a97d692)


#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #3959

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
NONE
```
2023-05-22 02:46:45 +00:00
b1d95fe06d
fix: add keyword search functionality to AuthProvider list (#3974)
#### What type of PR is this?

/kind bug

#### What this PR does / why we need it:

添加关键字搜索功能到认证方式列表

#### Which issue(s) this PR fixes:

Fixes #3948

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?


```release-note
修复 Console 端认证方式列表无法使用搜索的问题。
```
2023-05-19 16:29:50 +00:00
guqing 170cf4e412
feat: add the ability to install themes remotely via URI (#3939)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.6.x
/kind api-change

#### What this PR does / why we need it:
支持通过 URI 远程安装和升级主题

how to test it?
1. 测试主题安装
```shell
curl -u admin:admin -X POST http://localhost:8090/apis/api.console.halo.run/v1alpha1/themes/-/install-from-uri --data '{
  "uri": "https://halo.run/apis/api.store.halo.run/v1alpha1/applications/app-eiTyL/releases/app-release-QSyjc/download/app-release-QSyjc-JOSOB"
}'
```
2. 测试主题升级
```shell
curl -u admin:admin -X POST http://localhost:8090/apis/api.console.halo.run/v1alpha1/themes/guqing-higan/upgrade-from-uri --data '{
  "uri": "https://halo.run/apis/api.store.halo.run/v1alpha1/applications/app-eiTyL/releases/app-release-QSyjc/download/app-release-QSyjc-JOSOB"
}'
```
#### Which issue(s) this PR fixes:

Fixes #2291

#### Does this PR introduce a user-facing change?
```release-note
支持通过 URI 远程安装和升级主题
```

---------
Co-authored-by: Ryan Wang <i@ryanc.cc>
2023-05-19 02:10:24 +00:00
Ryan Wang 8deea08231
refactor: abnormal status display of plugin management (#3945)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

重构 Console 端插件异常状态的判断和显示,改动如下:

1. 移除插件名称旁边的启用状态。
2. 切换按钮的状态是期望值,意思就是不与插件实际状态一致。
3. 小红点出现的时机为:插件的实际状态与期望状态不一致以及插件本身出了异常。
4. 插件详情页面支持横幅显示插件异常状态。

<img width="1358" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/42408d1f-7975-4aef-9373-d828994501b3">
<img width="1383" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/033efdef-470b-4570-94c1-da64d9ea0db9">

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3940

#### Special notes for your reviewer:

测试方式:

1. 想办法将插件状态变成异常,比如在开发环境将 runtime-mode 改为 deployment。
2. 检查 Console 端插件管理中的 UI 表现是否和上面的描述一致。

#### Does this PR introduce a user-facing change?

```release-note
重构 Console 插件管理的异常状态显示。
```
2023-05-17 03:54:15 +00:00
Ryan Wang 017d5b8d8f
chore: async api client (#3941)
#### What type of PR is this?

/kind improvement
/area console

#### What this PR does / why we need it:

同步 api client。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-05-16 10:18:51 +00:00
Ryan Wang 0ff11db111
refactor: improve the accessibility of action items in some data list (#3919)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

1. 移除 Entity 组件最外层容器的手型样式,避免出现可点击性的误导。
2. 为部分数据列表项操作提供更多的访问选项。
    1. 文章 / 页面列表添加编辑按钮。
    2. 插件列表项添加详情按钮。
    3. 附件列表项添加详情按钮。

#### Which issue(s) this PR fixes:

Fixes #3914 

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端部分数据列表的可访问性
```
2023-05-16 10:16:55 +00:00
Li 136bd4e91f
fix: theme page displays error without management permissions. (#3938)
#### What type of PR is this?
/kind bug
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

#### Which issue(s) this PR fixes:

Fixes #3933 

#### Special notes for your reviewer:

1. 创建一个拥有主题查看而没有主题管理权限的角色,并为某个用户分配这个角色。
2. 使用该用户登录 console,点击主题选项卡查看控制台是否报错。

#### Does this PR introduce a user-facing change?
```release-note
修复没有主题管理权限时,进入主题功能页面报错的问题。
```
2023-05-15 06:43:55 +00:00
Ryan Wang 017bb55521
chore: bump pnpm version to 8 (#3935)
#### 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 
```
2023-05-11 08:50:21 +00:00
Ryan Wang 48863addba
refactor: remove the codemirror of the component package and change it to built-in (#3926)
#### 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
```
2023-05-11 04:12:21 +00:00
Ryan Wang 9a52cebd1d
refactor: make tanstack query's network mode option to always (#3928)
#### What type of PR is this?

/kind improvement
/area core
/milstone 2.6.x

#### What this PR does / why we need it:

将 TanStack Query 的 Network Mode 设置为 always,防止在无网络的情况下,开发环境也无法请求数据。

#### Special notes for your reviewer:

测试方式:断网之后使用开发模式访问 Console,观察请求是否正常发送即可。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-05-11 02:44:20 +00:00
Ryan Wang acceeee59c
fix: the label of some radio is displayed incorrectly (#3878)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

修复部分 FormKit 的 radio 表单项的 label 设置不正确的问题。目前影响范围:

1. 使用了 type 为 `menuCheckbox`  `menuRadio` 并将 validation 设置为了 `required`。

![image](https://user-images.githubusercontent.com/21301288/235104292-5324be1d-af48-4c7f-8f31-30a9b3dc9c02.png)

#### Which issue(s) this PR fixes:

Fixes #3876 

#### Does this PR introduce a user-facing change?

```release-note
修复部分 FormKit 的 radio 表单项的 label 设置不正确的问题。
```
2023-05-04 07:58:39 +00:00
Ryan Wang 3bfecd2b38
fix: failed to initialize the preset plugins (#3894)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

修复初始化时,预设插件安装失败的问题,目前的解决方案是重试安装操作。

#### Which issue(s) this PR fixes:

Fixes #3893 

#### Special notes for your reviewer:

测试方式:

1. 建议参考 https://docs.halo.run/developer-guide/core/build 构建成 Docker 镜像再测试。
2. 测试初始化完成之后,预设插件是否正确安装以及启动即可。

#### Does this PR introduce a user-facing change?

```release-note
修复在初始化时,预设插件可能初始化失败的问题。
```
2023-05-04 07:54:38 +00:00
Ryan Wang 0f039225ab
fix: user avatar link does not support relative paths (#3880)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.6.x

#### What this PR does / why we need it:

修复用户头像不支持相对链接的问题。

#### Which issue(s) this PR fixes:

Fixes #3879 

#### Special notes for your reviewer:

测试方式:

1. 创建或者编辑用户资料。
2. 从附件库选择头像,检查是否可以通过表单验证。

#### Does this PR introduce a user-facing change?

```release-note
修复创建用户或者修改用户资料时,头像链接不支持相对链接的问题。
```
2023-05-04 02:35:08 +00:00
zjy4fun 395794674c
fix: solve logo render error of plugin list (#3888)
解决删除某个插件项导致其他插件项渲染失败的问题

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind bug
<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:

解决插件列表渲染问题

#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/3866
<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->

#### Special notes for your reviewer:


https://user-images.githubusercontent.com/106857035/235871211-ee469964-d7b3-41d3-ac9b-6997872ac507.mp4



#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
NONE
```
2023-05-03 15:56:33 +00:00
Ryan Wang ec5599068c
chore: bump up version to 2.5.1 (#3874)
#### What this PR does / why we need it:

修改版本号,准备发布 2.5.1。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-28 07:56:19 +00:00
Ryan Wang 0794644dbd
chore: bump up version to 2.5.0 (#3870)
#### What this PR does / why we need it:

修改版本号,准备发布 2.5.0。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-28 02:40:17 +00:00
Ryan Wang 795d4f9261
chore: bump up version to 2.5.0-rc.2 (#3864)
#### What this PR does / why we need it:

修改版本号,准备发布 2.5.0-rc.2。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-26 13:56:14 +00:00
Ryan Wang abd0f42dab
fix: loading state is not restored when Dialog's onConfirm method has exception (#3852)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修复在 Dialog 组件中,如果 onConfirm 方法出现异常,按钮加载状态没有复原的问题。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3844

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-26 13:14:15 +00:00
Ryan Wang 7b8613049a
feat: add supports for copying attachment permalink (#3835)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

添加复制附件链接的功能,支持三种格式:URL、HTML 格式、Markdown 格式。

#### Which issue(s) this PR fixes:

Fixes #3801 

#### Special notes for your reviewer:

测试方式:

1. 上传若干不同格式的附件。
2. 打开附件详情,检查列出的格式是否正确。
3. 检查复制链接的内容是否正确。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的附件详情支持复制链接的功能。
```
2023-04-26 07:32:12 +00:00
Ryan Wang 18c0ced64e
chore: bump up version to 2.5.0-rc.1 (#3845)
#### What this PR does / why we need it:

修改版本号,准备发布 2.5.0-rc.1。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-24 12:28:16 +00:00
Ryan Wang 2dcbceea5e
fix: distance between the login form and the top of the page (#3821)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.0

#### What this PR does / why we need it:

修复登录表单与顶部间距异常的问题,并解决在 https://github.com/halo-dev/halo/pull/3756 中提到的在低分辨率屏幕下,语言选择和表单元素重叠的问题。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3806

#### Special notes for your reviewer:

测试方式:

1. 检查登录页面的表单是否和以前的版本一致即可。
2. 可以尝试调整浏览器的缩放大小,检查是否有样式问题。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-24 10:04:05 +00:00
Ryan Wang d0cc9005b0
perf: improve router scrollBehavior configuration (#3834)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修改 Vue Router 的 scrollBehavior 配置,添加是否是不同路由的跳转,如果是才会在跳转之后滚动到页面顶部。可以解决在 https://github.com/halo-dev/halo/issues/3833 中提到的打开附件详情之后,列表滚动到顶部的问题。这是因为在打开附件详情的时候会修改路由的参数。

#### Which issue(s) this PR fixes:

Fixes #3833 

#### Special notes for your reviewer:

测试方式:

1. 上传若干附件,滚动到列表底部。
2. 然后打开某个附件详情,观察列表是否自动滚动到了顶部,如果没有,则修改有效。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-24 10:00:55 +00:00
Ryan Wang 1681be36d6
fix: category select dropdown cannot be fully displayed in repeater component (#3819)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修复文章分类和标签选择组件在 Repeater 组件中,下拉框无法完整显示的问题。

<img width="598" alt="image" src="https://user-images.githubusercontent.com/21301288/233818471-0334b449-e2eb-44aa-a5ce-ed9a4ad54e8b.png">

#### Which issue(s) this PR fixes:

Fixes #3479 

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端的文章分类和标签选择组件在 Repeater 组件中,下拉框无法完整显示的问题。
```
2023-04-24 09:56:13 +00:00
guqing fc77d51c48
refactor: add custom API for create user (#3803)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.5.x
/kind api-change

#### What this PR does / why we need it:
提供自定义 API 用于创建用户账号
简化了创建用户账号需要先创建账号,再分配角色再重置密码的复杂流程。
需要 Console 端适配此 PR

#### Which issue(s) this PR fixes:
Fixes #2852

#### Does this PR introduce a user-facing change?
```release-note
优化用户账号创建流程
```
2023-04-24 08:19:42 +00:00
Ryan Wang d441e4731e
feat: add accepts and min,max props for attachment selector modal component (#3827)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

附件选择组件(AttachmentSelectorModal)支持 accepts、min、max 参数用来限定文件格式和数量。同时也为 FormKit 的 attachment 类型添加同样的参数。

另外,Console 的部分表单也跟着做了修改,包括:文章/页面设置中的封面图、系统设置中的 Favicon 和 Logo、分类/标签编辑表单中的封面图、用户资料的头像。

FormKit 中使用:

1. Component

    ```vue
    <FormKit
      name="cover"
      type="attachment"
      :accepts="['image/*']"
    ></FormKit>
    ```

2. Schema
    
    ```yaml
    - $formkit: attachment
      name: cover
      accepts:
        - 'image/*'
    ```

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3800

#### Special notes for your reviewer:

测试方式:

1. 按照上述 FormKit 中的使用方式,自行在主题或者插件配置文件中测试。
2. 测试 Console 中修改的表单:文章/页面设置中的封面图、系统设置中的 Favicon 和 Logo、分类/标签编辑表单中的封面图、用户资料的头像。(均设置为仅允许选择图片(image/*)和最多选择一个(max=1))。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的附件选择组件支持 accepts、min、max 参数用来限定文件格式和数量。
```
2023-04-24 07:45:44 +00:00
Ryan Wang 66eb0bb622
perf: enable hardware acceleration for attachment images (#3831)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

为附件库的图片渲染添加硬件加速(GPU)的支持,可以改善在附件库包含大量大图时的操作体验,能够缓解卡顿的问题。不过最终还是需要 https://github.com/halo-dev/halo/issues/2387 的支持。

测试(一共 60 张图片,合计 230m):

before:

<img width="766" alt="image" src="https://user-images.githubusercontent.com/21301288/233842635-3181df5d-fd26-44f1-aa30-314a3dba05a6.png">

after:

<img width="858" alt="image" src="https://user-images.githubusercontent.com/21301288/233842542-38a43b82-6452-4728-81ab-45f0cf528465.png">

#### Which issue(s) this PR fixes:

Fixes #3830 

#### Special notes for your reviewer:

测试方式:

1. 上传若干大图,对比修改前对附件库的操作,以及在文章中选择附件。

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端附件库的图片渲染性能。
```
2023-04-24 03:20:19 +00:00
Ryan Wang 5c308993c6
feat: add required indicator for formkit label (#3824)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

为 FormKit 表单中包含了 required 验证的表单元素的 label 添加指示器(*),优化可访问性。

<img width="694" alt="image" src="https://user-images.githubusercontent.com/21301288/233822533-6a30b43e-738a-47f3-92c1-045d34cc1ba3.png">

#### Which issue(s) this PR fixes:

Fixes #3823 

#### Special notes for your reviewer:

测试方式:

1. 检查 Console 端的表单中必填项的 label 是否添加了 * 即可。

#### Does this PR introduce a user-facing change?

```release-note
为 FormKit 表单中包含了 required 验证的表单元素的 label 添加指示器(*),优化可访问性。
```
2023-04-23 06:49:28 +00:00
Ryan Wang 629a620668
chore: set eslint max-warnings option and remove unused imports (#3822)
#### What type of PR is this?

/kind improvement
/area console

#### What this PR does / why we need it:

调整 ESLint 的执行参数,添加 max-warnings 为 0,意味着在提交或者运行 CI 的时候不再允许包含 warning 级别的检测。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-23 04:37:33 +00:00
Ryan Wang 9e0fc8283f
feat: improve layout and styles of group formkit input (#3786)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.5.x

Fixes #3734

#### What this PR does / why we need it:

为 FormKit 的 group 输入组件重构布局和样式。

before:

<img width="591" alt="image" src="https://user-images.githubusercontent.com/21301288/232968801-c15bfdcc-5bbe-493e-8a96-a7ff3442e52d.png">


after:

<img width="580" alt="image" src="https://user-images.githubusercontent.com/21301288/232968757-8892f386-3ff2-4147-b1f7-cbfbcfd5bc6e.png">

可以测试的 FormKit Schema:

```yaml
- $formkit: group
  name: author
  label: 作者
  children:
    - $formkit: text
      name: name
      label: 名称
    - $formkit: text
      name: email
      label: Email
```


#### Does this PR introduce a user-facing change?

```release-note
为 Console 端 FormKit 的 group 输入组件重构布局和样式。
```
2023-04-23 04:27:32 +00:00
Ryan Wang 61f4729d87
chore: bump tanstack query version and disable refetchOnWindowFocus option by default (#3771)
#### 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)
```
2023-04-23 03:37:56 +00:00
Ryan Wang c6f0ac7e71
fix: not reload page after upgrading a plugin (#3781)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修复升级插件之后没有自动刷新页面的问题,一般情况来说,升级插件之后需要重载插件 Console 部分的资源。

#### Special notes for your reviewer:

测试方式:

1. 以 deployment 模式启动 Halo
2. 测试升级插件之后是否有正常刷新页面

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端升级插件之后没有自动刷新页面的问题。
```
2023-04-23 03:37:39 +00:00
Ryan Wang eec1d0758e
feat: add description component (#3792)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.5.0

#### What this PR does / why we need it:

为 Console 端添加 Description 组件。

#### Which issue(s) this PR fixes:

Fixes #3790 

#### Special notes for your reviewer:

测试方式:

1. 检查主题管理、插件详情、认证方式详情页面的样式是否异常即可。

#### Does this PR introduce a user-facing change?


```release-note
为 Console 端添加 Description 组件。
```
2023-04-23 02:49:32 +00:00
Ryan Wang 676df239ea
fix: role templates in the plugin detail page is not loaded. (#3794)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修复插件页面中的角色模板在首次进入页面时,无法加载的问题。

<img width="984" alt="image" src="https://user-images.githubusercontent.com/21301288/233105675-8677b92b-e055-4b62-bfad-2947303ad901.png">


#### Which issue(s) this PR fixes:

Fixes #3793 

#### Special notes for your reviewer:

测试方式:

1. 安装一个带有角色模板的插件,比如:https://github.com/halo-sigs/plugin-links
2. 进入插件详情页面,观察角色模板是否显示正确。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端插件详情页面中角色模板无法正常加载的问题。
```
2023-04-22 03:07:41 +00:00
Ryan Wang 50832a09df
perf: close attachment upload modal after click complete button (#3784)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

支持在附件上传弹框中点击完成按钮关闭弹框。

<img width="647" alt="image" src="https://user-images.githubusercontent.com/21301288/232964793-d4e94e7a-fc81-4d1b-b0fc-b93d8f5bc537.png">

#### Special notes for your reviewer:

测试方式:

1. 测试上传完附件之后,点击完成按钮,观察是否关闭上传弹框即可。

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端上传附件的弹框,支持点击完成按钮以关闭弹框。
```
2023-04-21 12:33:41 +00:00
Ryan Wang 7afb3b8687
feat: import zh_TW locale for uppy component (#3785)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

为上传组件 Uppy 导入中文繁体的语言包。

#### Which issue(s) this PR fixes:

Ref https://github.com/halo-dev/halo/pull/3672

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-19 10:40:24 +00:00
John Niang a94c0c7f85
Add property halo.use-absolute-permalink to control permalink generation (#3772)
#### What type of PR is this?

/kind improvement
/kind api-change
/area core
/milestone 2.5.x

#### What this PR does / why we need it:

Add property `halo.use-absolute-permalink`(default is `false`) to control permalink generation. Leave `halo.external-url` as `null` by default.

Meanwhile, I enhanced `ExternalUrlSupplier#getURL` to get URL from not only properties but only http request.

#### How to use it?

```yaml
halo:
  use-absolute-permalink: false
```

Or:

```yaml
halo:
  external-url: https://halo.run/
  use-absolute-permalink: false
```

Or:

```yaml
halo:
  external-url: https://halo.run/
  use-absolute-permalink: true
```

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3762

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
新增是否生成相对地址的配置
```
2023-04-19 07:54:24 +00:00
Ryan Wang f87295e5c8
perf: reload page after active theme (#3779)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

在主题列表激活主题之后,自动刷新页面。

#### Which issue(s) this PR fixes:

Fixes #3778 

#### Special notes for your reviewer:

测试方式:

1. 打开主题列表,选择任意主题激活,观察是否刷新页面。

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端激活主题的流程,支持激活后自动刷新页面
```
2023-04-19 02:23:00 +00:00
Ryan Wang 0fb3496aed
perf: automatically close the installation modal after installing the theme (#3777)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

优化安装主题和升级主题的流程,支持在升级或者安装之后自动关闭弹框以及刷新数据。

#### Special notes for your reviewer:

测试方式:

1. 测试升级或者安装新主题之后是否关闭弹框以及是否有提示即可。

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端安装和升级主题的流程,支持自动关闭安装弹框和显示反馈提示
```
2023-04-19 02:21:05 +00:00
Li 01f66cb3b6
fix: outline not displayed when first entering the editor. (#3773)
#### What type of PR is this?
/kind bug
/area console

#### What this PR does / why we need it:
为默认编辑器侦听器增加 `immediate` 属性,使其在创建之后立即执行,生成目录。

#### Which issue(s) this PR fixes:
Fixes #3769 

#### Special notes for your reviewer:
打开已经存在并且具有标题的文章/页面,查看大纲是否正常生成。

#### Does this PR introduce a user-facing change?
```release-note
修复文章/页面已有内容重新编辑时,无法立即显示大纲的问题。
```
2023-04-18 06:34:57 +00:00
Li 0c3e5a760a
fix: error occurred when switching tab in dashboard component. (#3770)
#### What type of PR is this?
/kind bug
/area console

#### What this PR does / why we need it:
修复 Console 端仪表盘添加组件时,切换标签页面报错的问题。

#### Which issue(s) this PR fixes:
Fixes #3764 

#### Does this PR introduce a user-facing change?
```release-note
修复 Console 端仪表盘添加组件时的报错问题。
```
2023-04-18 06:30:57 +00:00
John Niang ed14fcb5f4
Support publishing to maven central repository (#3767)
#### What type of PR is this?

/kind feature
/area core

#### What this PR does / why we need it:

Use Gradle plugin `maven-publish` to publish Halo modules(`platform.application`, `platform.plugin` and `api`) to Maven central repository.

```bash
# Try to publish to Maven local repository.
./gradlew publish
# Really publish to Maven central repository.
./gradlew -Prelease publish -PossrhUsername=username -PossrhPassword=password
```

Note that currently we only support manually publishing.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/2730

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-18 14:28:23 +08:00
hughding 8d2f081067
fix: signup form overlaps with locale form. (#3756)
#### What type of PR is this?
/kind improvement
/area console

#### What this PR does / why we need it:
此修改对登录、注册界面原有风格无影响。解决了1920*1080分辨率下,注册界面,“已有账号 立即登录”与“简体中文”文字重叠问题

#### Which issue(s) this PR fixes:
Fixes #3695

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?
```release-note
解决1920*1080分辨率下,注册界面,“已有账号 立即登录”与“简体中文”文字重叠问题
```
2023-04-18 03:57:28 +00:00
Ryan Wang eb141e4966
refactor: use tanstack query to refactor menu related data fetching (#3714)
#### What type of PR is this?

/kind improvement

#### What this PR does / why we need it:

使用 [TanStack Query](https://github.com/TanStack/query) 重构菜单和菜单项的逻辑,修复菜单项和菜单关联可能发现混乱的问题。

#### Which issue(s) this PR fixes:

Ref https://github.com/halo-dev/halo/issues/3360
Fixed https://github.com/halo-dev/halo/issues/3467

#### Special notes for your reviewer:

测试方式:

1. 创建若干菜单和菜单项,检查功能是否正常。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端菜单项和菜单关联可能发现混乱的问题。
```
2023-04-16 15:12:13 +00:00
Li cab3432d03
fix: repeated display of theme tabs. (#3727)
#### What type of PR is this?

/kind bug
/area console

#### What this PR does / why we need it:
获取主题配置时,重复添加了上次已经获取到的主题配置,导致重复显示。并同步修改了 plugin 中可能出现问题的位置。

#### Which issue(s) this PR fixes:

Fixes #3726 

#### Special notes for your reviewer:
1. 打开 Console 端主题页面
2. 点击右上角预览页面
3. 关闭预览页面,选项卡无重复即为正常。


#### Does this PR introduce a user-facing change?
```release-note
修复 Console 端主题设置中,选项卡会重复显示的问题
```
2023-04-10 07:10:22 +00:00
Ryan Wang b99222e176
fix: the setting form of the preview theme page may not be rendered (#3706)
#### What type of PR is this?

/kind bug

#### What this PR does / why we need it:

修复预览主题页面的设置表单可能因为接口请求速度导致无法正常渲染表单的问题。

<img width="1226" alt="image" src="https://user-images.githubusercontent.com/21301288/230562109-0858098f-c67e-4d93-bebd-a85400de9285.png">

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3705

#### Special notes for your reviewer:

测试方式:

1. 在主题管理页面点击预览按钮,检查设置表单是否可以正常渲染即可。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端预览主题页面的设置表单可能出现无法渲染的问题。
```
2023-04-07 09:28:45 +00:00
Ryan Wang 9b8cec426f
fix: lost the activated theme settings when saving the system settings (#3691)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修复保存系统设置之后,启用主题的设置丢失,恢复为了默认主题。原因是因为在 https://github.com/halo-dev/halo/pull/3606 中使用了新的 useSettingFormConvert 方法,但这个方法未考虑到某些 ConfigMap 的分组并未在表单中定义,也就是数据转换方法是以表单的定义为基准,所以丢失了 `theme.active` 设置。

#### Which issue(s) this PR fixes:

Fixes #3673 

#### Special notes for your reviewer:

测试方式:

1. 安装若干主题并启用。
2. 然后去系统设置修改任意数据并保存。
3. 检查主题是否被修改为默认主题。

#### Does this PR introduce a user-facing change?

```release-note
修复保存系统设置之后导致激活主题的设置值丢失,恢复为了默认主题的问题。
```
2023-04-05 15:50:16 +00:00
-Shiken- a466ee73c9
add zhTW locale (#3672)
#### What type of PR is this?

/kind feature
/area core

#### What this PR does / why we need it:

Add zhTW locale.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3346

#### Does this PR introduce a user-facing change?

```release-note
提供繁体中文(TW)翻译
```
2023-04-03 15:58:16 +00:00
Ryan Wang a2516dbef4
chore: bump @halo-dev/richtext-editor version to resolve i18n issue (#3682)
#### 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` 的版本以解决编辑器部分文本翻译不完整的问题。
```
2023-04-03 04:38:12 +00:00
John Niang 36d50e75d3
Configure default external-url as slash (#3655)
#### What type of PR is this?

/kind improvement
/area core

#### What this PR does / why we need it:

Configure default external-url as slash. So that system will generate relative links for all permalinks.

See https://github.com/halo-dev/halo/issues/3654 for more.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3654

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-04-03 03:50:13 +00:00
Ryan Wang ffeeaa231a
fix: radio value type is incorrect in the form defined by formkit schema (#3668)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x
/cherry-pick release-2.4

#### What this PR does / why we need it:

修复使用了 FormKit Schema 生成的表单中,Radio 输入类型如果值的类型定义为 boolean 类型,但得到的结果为 string 类型的问题。

#### Which issue(s) this PR fixes:

Fixes #3666 

#### Special notes for your reviewer:

测试方式:

1. 安装一个主题设置使用了 Radio 输入类型的主题,比如 https://github.com/halo-dev/halo-theme-anatole
2. 测试保存其中包含了 Radio 输入类型的表单。
3. 刷新页面,检查值回显是否正确。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端 FormKit Schema 生成的表单中,Radio 输入类型值类型为 boolean 但结果为 string 的问题。
```
2023-04-03 03:48:13 +00:00
Ryan Wang 03f7e583f6
fix: publish time of the post cannot be displayed back (#3671)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x
/cherry-pick release-2.4

#### What this PR does / why we need it:

修复文章设置中的发布时间无法回显导致重新保存时丢失发布时间的问题。

#### Which issue(s) this PR fixes:

Fixes #3669 

#### Special notes for your reviewer:

测试方式:

1. 新建或者修改已有文章的设置。
2. 检查时间输入框的时间是否显示正确。
3. 检查保存之后时间是否显示正确。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端文章设置中的发布时间无法回显导致重新保存时丢失发布时间的问题。
```
2023-04-03 03:12:14 +00:00
Ryan Wang 0b21758347
fix: route title i18n in global search is not compatible (#3665)
#### What type of PR is this?

/kind bug
/area console
/cherry-pick release-2.4

#### What this PR does / why we need it:

修复后台全局搜索中关于 Console 路由的文字没有适配 i18n 的问题。

#### Which issue(s) this PR fixes:

Fixes #3664 

#### Special notes for your reviewer:

<img width="741" alt="image" src="https://user-images.githubusercontent.com/21301288/229279243-4b727cc7-1790-41b3-a170-4958ce1f65a8.png">

#### Does this PR introduce a user-facing change?

```release-note
修复后台全局搜索中关于 Console 路由的文字没有适配 i18n 的问题。
```
2023-04-03 03:08:14 +00:00
Ryan Wang f8e405c8ed
fix: attachment policy editing modal crashes when opened (#3663)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修复附件存储策略编辑表单无法正常渲染的问题。此问题原因为 Modal 组件使用了 OverlayScrollbars 库来模拟滚动条,但在初始化的时候由于 Body 没有任何子元素,所以导致异常。

#### Which issue(s) this PR fixes:

Fixes #3662 

#### Special notes for your reviewer:

测试是否能够正常打开附件存储策略编辑表单即可。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端附件存储策略编辑表单无法正常渲染的问题
```
2023-04-03 03:02:12 +00:00
Ryan Wang 74c543ec37
chore: bump console version to 2.4.0 (#3650)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.0

#### What this PR does / why we need it:

修改 Console 的版本号为 2.4.0。

修改 `@halo-dev/components` 的版本为 1.3.0

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-31 03:10:19 +00:00
Ryan Wang ff5a62b900
chore: generate api client (#3648)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.4.0

#### What this PR does / why we need it:

重新生成 api client。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-31 03:00:20 +00:00
Ryan Wang 2d56aaeb93
refactor: re-design login-related form (#3608)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

重新设计登录页面的样式和用户体验。

#### Which issue(s) this PR fixes:

Fixes #3572 

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端登录页面样式
```
2023-03-30 16:10:15 +00:00
Ryan Wang ff466f5de6
feat: add setting locale supports in login page (#3642)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

在登录页面添加语言设置的支持。

<img width="743" alt="image" src="https://user-images.githubusercontent.com/21301288/228879897-17d4a0c4-5d1d-4b5a-bd52-aaa1d5a287d1.png">

#### Special notes for your reviewer:

在登录页面测试语言切换是否生效即可。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-30 15:32:14 +00:00
Ryan Wang 34dea0802e
feat: add role select input type for formkit (#3641)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.4.0

#### What this PR does / why we need it:

添加角色选择的 FormKit 输入类型。

#### Which issue(s) this PR fixes:

Fixes #3637 

#### Special notes for your reviewer:

测试方式:

1. 测试为用户分配角色,检查角色下拉框是否正常加载角色列表即可。

#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
Console 端添加角色选择的 FormKit 输入类型。
```
2023-03-30 15:30:14 +00:00
Ryan Wang 54ca1889ef
perf: improve the conditions for fetching role templates on the plugin details page (#3626)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

优化插件详情页面获取角色模板的条件,不查询 label 中带了 `halo.run/hidden` 的角色模板。

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
优化 Console 端在插件详情页面上获取角色模板的条件
```
2023-03-30 15:26:14 +00:00
guqing ddca7731dd
feat: support user registration (#3631)
#### What type of PR is this?
/kind feature
/area core
/area console
/milestone 2.4.0

#### What this PR does / why we need it:
新增用户注册功能

#### Which issue(s) this PR fixes:
Fixes #2813

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?
```release-note
新增用户注册功能
```
2023-03-30 09:44:15 +00:00
Ryan Wang a77756abad
refactor: use tanstack query to refactor system setting form fetching (#3606)
#### What type of PR is this?

/kind improvement

#### What this PR does / why we need it:

使用 [TanStack Query](https://github.com/TanStack/query) 重构系统设置表单的逻辑,移除无意义的重复请求。

#### Which issue(s) this PR fixes:

Ref https://github.com/halo-dev/halo/issues/3360

#### Special notes for your reviewer:

测试方式:

1. 测试系统设置的表单加载是否正常,以及保存之后重载配置是否正常。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-30 08:32:19 +00:00
John Niang 1d9c7343fc
Fix typo: snaphosts -> snapshots (#3618)
#### What type of PR is this?

/kind cleanup
/area core
/area console

#### What this PR does / why we need it:

See https://github.com/halo-dev/halo/issues/3529 for more.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3529

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-30 08:28:16 +00:00
Ryan Wang 841f0293be
feat: support setting language for FormKit and Uppy (#3630)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.4.0

#### What this PR does / why we need it:

FormKit 和 Uppy 上传组件支持同步设置系统语言。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3574

#### Special notes for your reviewer:

在不同语言的浏览器中测试表单的验证和上传组件的语言是否显示正确即可。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-30 08:08:14 +00:00
Ryan Wang 7cf5e3c39b
perf: improve shadow style of side menu (#3638)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.0

#### What this PR does / why we need it:

优化左侧菜单栏边框阴影的样式。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3629

#### Does this PR introduce a user-facing change?

```release-note
优化左侧菜单栏边框阴影的样式。
```
2023-03-30 07:34:14 +00:00
Ryan Wang 04cda52379
chore: add FloatingDropdown to solve compatibility issues (#3622)
#### 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
```
2023-03-30 04:10:13 +00:00
Ryan Wang 0b3343f219
fix: menu scrollbar position cannot be restored after switching routes (#3634)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.4.0

#### What this PR does / why we need it:

修复跳转页面之后无法固定菜单滚动位置的问题。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3633

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-30 03:02:14 +00:00
Ryan Wang af2b946a56
fix: the loading status is not displayed when loading auth providers (#3623)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

修复认证方式管理页面在加载时不显示加载状态的问题。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-29 14:42:18 +00:00
Ryan Wang 8d9be88b94
chore: bump the patch version of all console dependencies (#3617)
#### 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
```
2023-03-29 13:44:14 +00:00
Ryan Wang 4c11ccfcd1
perf: improve the display of user auth providers in user details (#3624)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

优化用户详情页面中认证方式的显示逻辑。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-29 13:30:14 +00:00
Ryan Wang 9814053d0e
refactor: use tanstack query to refactor setting-form-related fetching of theme and plugin (#3604)
#### What type of PR is this?

/kind improvement

#### What this PR does / why we need it:

使用 [TanStack Query](https://github.com/TanStack/query) 重构主题和插件设置表单的逻辑,移除无意义的重复请求。

#### Which issue(s) this PR fixes:

Ref https://github.com/halo-dev/halo/issues/3360

#### Special notes for your reviewer:

测试方式:

1. 安装若干带有设置表单的主题和插件。
2. 测试主题和插件的设置表单是否加载正常,以及保存设置后再重复加载的时候是否正常。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-29 13:26:13 +00:00
Ryan Wang c9a5a01bf1
chore: bump @halo-dev/richtext-editor version to support i18n (#3613)
#### What type of PR is this?

/kind feature
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

升级 `@halo-dev/richtext-editor` 以支持 i18n。 https://github.com/halo-sigs/richtext-editor/pull/6

<img width="1406" alt="image" src="https://user-images.githubusercontent.com/21301288/228414222-e5014957-1d30-4fdc-9db6-0f79e07a73b5.png">
<img width="1432" alt="image" src="https://user-images.githubusercontent.com/21301288/228414283-a2d401cd-a215-4398-9d8d-b33e7373ee49.png">

#### Which issue(s) this PR fixes:

Ref #3574 

#### Special notes for your reviewer:

在不同语言的浏览器中测试编辑器的语言是否显示正确即可。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-29 06:16:12 +00:00
Ryan Wang 1e6992eef1
fix: post publishing api is requested twice (#3619)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

修复从文章列表打开设置之后保存会调用两次发布接口的问题。

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/3615

#### Special notes for your reviewer:

测试从文章列表打开设置后保存是否会调用多次发布接口即可。

#### Does this PR introduce a user-facing change?

```release-note
修复 Console 端发布文章可能调用多次接口的问题。
```
2023-03-29 04:56:13 +00:00
123abcabcabcabcba e16fd7565d
feat: add supports for clicking the visibility icon in the post list to modify visibility (#3581)
#### What type of PR is this?

/kind improvement
/area console

#### What this PR does / why we need it:

通过点击“眼睛”图标,可以比较方便地修改文章或者页面的可视性。
<img width="1150" alt="image" src="https://user-images.githubusercontent.com/114651359/227491296-5f96e605-1137-4f6f-b506-d33b329045fc.png">

#### Which issue(s) this PR fixes:

Ref #3501 

#### Special notes for your reviewer:

1.修改了两个页面,路径为:
(1)console/src/modules/contents/pages/SinglePageList.vue
(2)console/src/modules/contents/posts/PostList.vue
2.原本“眼睛”图标是没有设置点击事件的,现在添加了点击改变选中文章或页面可视性的功能。

#### Does this PR introduce a user-facing change?

```release-note
action required  当用户点击“眼睛”图标时,会提示用户“可视化修改成功”
```
2023-03-29 03:52:13 +00:00
Ryan Wang d194c34848
fix: the issue of failing to unbind third-party login (#3595)
#### What type of PR is this?

/kind bug
/area console
/milestone 2.4.x

#### What this PR does / why we need it:

修复解绑三方登录失败的问题,原因是解绑接口是 put 请求,但请求接口时用了 post 请求。

#### Special notes for your reviewer:

测试方式:

1. 安装 OAuth2 插件:https://github.com/halo-sigs/plugin-oauth2/pull/3
2. 配置某个三方的 OAuth 登录。
3. 测试在个人资料中的绑定和解绑三方登录。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-27 09:36:02 +00:00
Ryan Wang ab4b7c1f0d
chore: bump console and packages version to 2.4.0-rc.1 (#3596)
#### What type of PR is this?

/area console
/milestone 2.4.0

#### What this PR does / why we need it:

修改 Console 以及其下 packages 的版本为 2.4.0-rc.1

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-03-27 09:28:18 +00:00