Commit Graph

208 Commits (copilot/fix-b3acabcb-6bd9-4ef0-ba34-6a865280bd64)

Author SHA1 Message Date
Ryan Wang 41ea81cddd
feat: support display HTML format in API error responses (#7127)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.20.x

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

Add supports for display HTML format in API error responses

See #7115 

Examples:

<img width="917" alt="image" src="https://github.com/user-attachments/assets/1ab4531c-3238-4e7d-ba24-d2425184a757">

<img width="942" alt="image" src="https://github.com/user-attachments/assets/54621b31-0629-4772-95fd-8587a7704ca3">


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

Fixes #7115 

#### Special notes for your reviewer:

Nginx mock example:

```nginx
server {
    listen 80;
    server_name localhost;

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location / {
      proxy_pass http://localhost:8090;
      proxy_set_header HOST $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location ^~ /apis/content.halo.run/v1alpha1/posts/ {
        return 403;
    }
}
```

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

```release-note
支持显示来自反向代理或者 WAF 的请求错误信息
```
2024-12-16 02:46:08 +00:00
Ryan Wang 0e9466d29c
chore: inject Object.hasOwn polyfill for Console and UC (#7128)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

Inject Object.hasOwn polyfill into the front-end projects of Console and UC to solve the problem that some features cannot be used normally in lower version browsers

See https://github.com/halo-dev/halo/issues?q=is%3Aissue%20state%3Aclosed%20hasOwn
See https://caniuse.com/?search=hasOwn

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

```release-note
修复在较低版本浏览器中无法使用默认编辑器和附件上传功能的问题。
```
2024-12-15 16:10:06 +00:00
Ryan Wang d06b40cb0c
chore: remove vue devtools (#7108)
#### What type of PR is this?

/area ui
/kind cleanup

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

移除 UI 项目内置的 Vue Devtools,后续建议使用浏览器插件代替:https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd

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

```release-note
None
```
2024-12-04 03:17:09 +00:00
Ryan Wang 2ed3bb6838
feat: add empty state for restore by backups (#7078)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

为通过备份文件恢复的界面添加空状态提示。

<img width="1192" alt="image" src="https://github.com/user-attachments/assets/2267e61d-9886-408a-a13f-e986f2172203">

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

```release-note
为通过备份文件恢复的界面添加空状态提示。
```
2024-11-25 09:30:25 +00:00
Ryan Wang e5be856a06
fix: post annotations form layout issues in Chrome browser (#7076) 2024-11-25 10:45:36 +08:00
Ryan Wang ecec5eeb7c
feat: improve role template i18n (#7075) 2024-11-25 10:45:22 +08:00
Ryan Wang 391aac62d3
feat: add multi-role assignment support for users (#7037)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.20.x

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

支持为用户分配多个角色。

<img width="634" alt="image" src="https://github.com/user-attachments/assets/caa40327-518a-4bef-afc3-75a020018d3d">
<img width="764" alt="image" src="https://github.com/user-attachments/assets/8b4b807e-6c72-45d9-9368-75e70bb12dcc">

TODO:

- [x] Console / UC 侧边栏显示多个角色
- [x] 支持在管理端查看用户聚合的角色模板列表,或者在分配时显示所选角色其下的角色模板列表,能够让管理员清楚的知道用户具体权限。

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

Fixes #

#### Special notes for your reviewer:

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

```release-note
支持为用户分配多个角色。
```
2024-11-24 15:48:21 +00:00
Nancy 2c4e85f40b
feat: add grant permission and user deletion features to user detail page (#6963)
What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

What this PR does / why we need it:

期望支持在用户详情页面支持变更用户角色及删除用户 。

Which issue(s) this PR fixes:

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

Special notes for your reviewer:

Does this PR introduce a user-facing change?
```release-note
支持在用户详情页面支持变更用户角色及删除用户 。
```
2024-10-30 04:50:39 +00:00
Nancy 77548ec5a7
feat: add name existence check before creating attachment group and storage policy (#6959)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

在创建附件分组或者存储策略时,支持检查是否有已存在的名称。

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

Fixes #6946

#### Special notes for your reviewer:

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

```release-note
在创建附件分组或者存储策略时,支持检查是否有已存在的名称。
```
2024-10-30 03:30:38 +00:00
Ryan Wang fdc90aff5c
fix: prevent undefined key name when creating Secret (#6964)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

修复使用 Secret 输入框创建 Secret 时,stringData 的 key 可能为 undefined 的问题。

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

See https://github.com/halo-sigs/plugin-alist/issues/23#issuecomment-2443499980 for more

#### Special notes for your reviewer:

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

```release-note
修复使用 Secret 输入框创建 Secret 时,stringData 的 key 可能为 undefined 的问题。
```
2024-10-29 15:50:13 +00:00
LuijpCN 65808c8c6f
feat: add supports for displaying jpeg icon in attachments list (#6956)
#### What type of PR is this?

/kind improvement


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

在附件,列表模式中,为 jpeg 后缀文件添加图标。

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

Fixes #

#### Special notes for your reviewer:

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


```release-note
为 jpeg 后缀文件添加图标
```
2024-10-27 08:26:01 +00:00
guqing 82498dcedf
refactor: auth provider sorting logic for better maintainability and clarity (#6846)
* refactor: auth provider sorting logic for better maintainability and clarity

* Refine UI

* chore: remove other auth type

* Remove other auth providers

---------

Co-authored-by: Ryan Wang <i@ryanc.cc>
2024-10-14 10:53:24 +08:00
Ryan Wang 149cb5d136
refactor: remove underline in h2 warning alert (#6849)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

before:

<img width="804" alt="image" src="https://github.com/user-attachments/assets/3d55d7d2-1dfa-4988-afbd-dd502e54fdb2">

after:

<img width="806" alt="image" src="https://github.com/user-attachments/assets/6194d995-b6f1-404a-820d-b667ccfab9f1">

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

```release-note
None
```
2024-10-13 14:49:14 +00:00
Ryan Wang f40770ad64
chore: add prettier-plugin-organize-imports plugin to organize imports (#6836)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

使用 https://github.com/simonhaenisch/prettier-plugin-organize-imports 优化 UI 项目的模块导入,之前我们是通过[配置 VSCode](9468e8741f/ui/.vscode/settings.json (L34-L36)) 来实现导入优化,但这种方式局限于 VSCode 编辑器,在其他编辑器无法得到统一的支持。

并且我们为 UI 添加了 git pre commit hook,在提交代码前会对已修改的文件执行 prettier,这样能够更好的保证一致性。

<img width="1475" alt="image" src="https://github.com/user-attachments/assets/755e2aba-be07-4fba-8007-6210ef44a8ef">

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

```release-note
None
```
2024-10-12 07:05:09 +00:00
Ryan Wang 53b3124288
feat: improve built-in auth providers' i18n in detail page (#6816)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

完善内置的认证提供商详情页面的 i18n,在 https://github.com/halo-dev/halo/pull/6814 中遗漏了详情页面。

<img width="653" alt="image" src="https://github.com/user-attachments/assets/7d4b4789-91d0-45e5-b5e7-98324ddc0899">

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

```release-note
None
```
2024-10-10 09:31:01 +00:00
Ryan Wang d0f3933095
feat: improve built-in auth providers' i18n (#6814)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

完善内置的认证提供商的 i18n。

<img width="859" alt="image" src="https://github.com/user-attachments/assets/a145fc98-05f0-4d62-805a-f3b4f4380a04">

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

```release-note
None
```
2024-10-10 08:25:01 +00:00
Ryan Wang d7aba83485 Refine password validation 2024-10-10 10:43:20 +08:00
Ryan Wang 845893944c
Merge pull request #6739 from guqing/refactor/6722
refactor: system initialization process to adapt to the new login method
2024-10-09 14:58:14 +08:00
Ryan Wang 82fb91fc7b
refactor: improve password input toggle button state display (#6800)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

优化密码输入框的明文切换图标的状态显示。

before:

<img width="508" alt="image" src="https://github.com/user-attachments/assets/5ae12beb-ce23-40a2-ad08-8e47c2eb6813">

after:

<img width="519" alt="image" src="https://github.com/user-attachments/assets/712e1735-a7ad-40f4-8900-a8c92eda7e54">


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

```release-note
优化密码输入框的明文切换图标的状态显示。
```
2024-10-09 06:52:56 +00:00
Ryan Wang 5df755d4a8 Refine setup page 2024-10-09 12:20:54 +08:00
guqing 2585636c48
feat: allow users to manage their attachments in uc (#6731)
#### What type of PR is this?
/kind feature
/milestone 2.20.x
/area core

#### What this PR does / why we need it:
支持用户在个人中心管理自己的附件(需要具有对应权限)

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

#### Does this PR introduce a user-facing change?
```release-note
支持用户在个人中心管理自己的附件(需要具有对应权限)
```
2024-10-08 14:56:55 +00:00
Ryan Wang 672b2d86c7
fix: style issue of the fullscreen button in Code input (#6785)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

为 Code Input 设置默认高度,修复全屏按钮被遮挡的问题。

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

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

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

```release-note
为 Code Input 设置默认高度,修复全屏按钮被遮挡的问题。
```
2024-10-08 14:50:56 +00:00
Takagi f632322dba
pref: remove anonymous and ghost users from the userSelect (#6781)
#### What type of PR is this?

/kind improvement
/area ui
/milsetone 2.20.x

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

在 userSelect 查询用户列表时,移除匿名与已删除用户这两个保留用户。

#### How to test it?

在文章设置,用户列表中不存在匿名与已删除用户即可。

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

Fixes #6665 

#### Does this PR introduce a user-facing change?
```release-note
在 user select 中不再显示匿名与已删除用户。
```
2024-10-08 07:28:54 +00:00
John Niang dfbab283ef
Merge pull request #6729 from guqing/feature/5851
feat: support deleting posts in user center
2024-10-07 17:48:26 +08:00
guqing 04e195f034
fix: unique index conflict issue after backup restoration preventing startup (#6701)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x
/sig docs

#### What this PR does / why we need it:
修复恢复备份后可能会因为与之前的数据冲突导致无法启动的问题

如果恢复时发生不可预知的错误,需要重启之后重新初始化再进行恢复

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

#### Does this PR introduce a user-facing change?
```release-note
修复恢复备份后可能会因为与恢复之前存在的数据冲突导致无法启动的问题
```
2024-10-07 09:20:50 +00:00
Ryan Wang ea491f2386
chore: bump tiptap version to 2.8.x (#6777)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

Bump tiptap verison to [2.8.x](https://github.com/ueberdosis/tiptap/releases/tag/v2.8.0)

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

```release-note
升级编辑器依赖 Tiptap 的版本至 [2.8.x](https://github.com/ueberdosis/tiptap/releases/tag/v2.8.0)。
```
2024-10-07 04:28:51 +00:00
Ryan Wang d6489283b8
refactor: remove redirect-on-login setting option from role editing form (#6776)
#### What type of PR is this?

/area ui
/kind api-change
/milestone 2.20.x

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

See #6774 

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

Fixes #6774 

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

```release-note
移除角色的 **登录之后默认跳转位置** 设置选项。
```
2024-10-07 04:26:50 +00:00
Ryan Wang b0ad0406b9
fix: resolve issue with logout functionality in Console not working (#6766)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

修复 Console 中退出登录功能失效的问题。

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

Fixes #6756 

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

```release-note
None
```
2024-10-05 06:38:44 +00:00
Ryan Wang 8896e16615
feat: disallow deletion of system-protected attachment policies (#6735)
#### What type of PR is this?

/area core
/kind improvement
/milestone 2.20.x

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

为系统默认的存储策略添加保护措施,不允许删除。

<img width="893" alt="image" src="https://github.com/user-attachments/assets/990f834f-3d97-4ee8-9c24-01cc188b7be6">


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

```release-note
为系统默认的存储策略添加保护措施,不允许删除。
```
2024-10-04 14:10:44 +00:00
Ryan Wang c22fab2b34
fix: correct formatting issues in DefaultEditor component (#6752)
#### What type of PR is this?

/area ui
/kind cleanup

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

修复 DefaultEditor 组件中的格式问题。

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

```release-note
None
```
2024-10-04 06:20:42 +00:00
Yttrium 545a5a63cc
fix: prevent hidden English characters in post title input (#6749)
#### What type of PR is this?

/area ui
/kind improvement

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


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

#6748 

Fixes #6748 
#### Special notes for your reviewer:

使英文标题中字母不被截断 

![image](https://github.com/user-attachments/assets/10b677c1-a30a-4261-85fc-d2cf328b003e)

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

```release-note
修复文章编辑页面标题输入框中,英文字符可能会被隐藏的问题
```
2024-10-03 10:01:39 +00:00
Ryan Wang e11a494c96
feat: add login expiration notification (#6738)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

添加登录失效的引导。

<img width="1080" alt="image" src="https://github.com/user-attachments/assets/a84c0059-b0ef-4105-b8e9-ae6b3d39d89d">


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

```release-note
None 
```
2024-09-30 11:01:52 +00:00
Ryan Wang 5b2bdfdf17 Refine i18n
Signed-off-by: Ryan Wang <i@ryanc.cc>
2024-09-29 17:57:49 +08:00
Ryan Wang 944d0a5cb4 feat: add supports for delete own posts in uc
Signed-off-by: Ryan Wang <i@ryanc.cc>
2024-09-29 17:42:10 +08:00
Ryan Wang 3fe1afb952
fix: resolve issue with underline not displaying in input field (#6694)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

修复部分设备或者浏览器下,输入框中的下划线可能无法正常显示的问题。

before:

<img width="678" alt="image" src="https://github.com/user-attachments/assets/11a34729-3bed-4898-b222-0027ac71830d">

after:

<img width="681" alt="image" src="https://github.com/user-attachments/assets/8065c36a-6c94-4ac9-b859-8369dcb7d1e3">


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

Fixes #5651 

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

```release-note
修复部分设备或者浏览器下,输入框中的下划线可能无法正常显示的问题。
```
2024-09-28 10:39:42 +00:00
Ryan Wang 774678fd65
fix: resolve issue with editor not detecting image paste in Firefox (#6693)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

修复在 FireFox 浏览器下的编辑器中无法通过粘贴文件上传的问题。

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

Fixes #6684 

#### Special notes for your reviewer:

在 FireFox 浏览器中,复制一张本地的图片,尝试在编辑器中粘贴,观察是否上传成功。

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

```release-note
修复在 FireFox 浏览器下的编辑器中无法通过粘贴文件上传的问题。
```
2024-09-28 10:37:41 +00:00
Ryan Wang d5233963fb
refactor: remove login-related pages from UI project (#6712)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

移除 UI 项目中和登录、注册相关的页面和代码,后续将由后端统一提供:https://github.com/halo-dev/halo/pull/6488

相关 issue:https://github.com/halo-dev/halo/issues/5214

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

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

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

```release-note
None 
```
2024-09-28 10:19:41 +00:00
Ryan Wang 8547ffe613 Add frontend support for customizing login and logout pages
Signed-off-by: JohnNiang <johnniang@foxmail.com>
2024-09-28 17:38:32 +08:00
Ryan Wang 56cb22ac31
refactor: remove async loading logic for editor (#6707)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

取消异步加载默认编辑器,在之前的版本中,由于编辑器体积较大,所以做了异步加载的处理,但近期的版本中,为了让插件可以使用编辑器或者扩展编辑器,已经将编辑器依赖作为全局加载,如果这个时候还是异步加载编辑器组件的话,进入编辑页面的时候出现短暂的灰屏闪烁。

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

```release-note
优化默认编辑器的加载方式,防止出现灰屏闪烁的问题。
```
2024-09-27 05:03:35 +00:00
Ryan Wang a860cb5ad8
refactor: simplify page title of deleted page (#6708)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.20.x

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

简化页面回收站的页面标题。

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

```release-note
简化页面回收站的页面标题。
```
2024-09-26 08:49:33 +00:00
Ryan Wang fd40770ebc
chore: bump vue version to 3.5 (#6696)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

升级 UI 项目的 Vue 版本至 3.5.x。

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

```release-note
升级 UI 项目的 Vue 版本至 3.5.x。
```
2024-09-26 08:11:31 +00:00
Takagi 25eec1ec4f
pref: improve hover and pre-selection state for formkit select (#6607)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.20.x

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

优化了 Formkit 中的 selec 组件,使得其使用快捷键与鼠标选中的预选状态始终只有一个。且在多选状态下按回车时,不再预选跳转至第一个选项。

#### How to test it?

在多选状态下测试使用键盘进行预选及使用鼠标 hover 进行预选的状态是否符合预期。

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

Fixes #6600

#### Does this PR introduce a user-facing change?
```release-note
优化 Formkit select 组件在多选状态下的待选中状态。
```
2024-09-13 02:22:26 +00:00
Ryan Wang 697963d628
feat: add menu select form item (#6642)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.20.x

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

为 FormKit 添加菜单选择输入类型

<img width="549" alt="image" src="https://github.com/user-attachments/assets/b5e40c1d-908f-4cdc-89d5-76f9b67ae298">

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

```release-note
为 FormKit 添加菜单选择输入类型
```
2024-09-12 05:28:20 +00:00
Takagi b02ab8d809
fix: resolve incorrect display of options in formkit selector with async data (#6629)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.20.x

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

为 formkit select 组件优化逻辑,目前将可以监听到 options 的变化,用于在变化时设置值。用于解决当 options 是异步获取,而 value 是初始设置时,无法显示正常的 label。

#### How to test it?

测试 options 比设置 value 晚时,数据能否正常显示 label。

#### Does this PR introduce a user-facing change?
```release-note
解决当 formkit select 组件中的 options 延迟设置时无法正常回显的问题。
```
2024-09-10 08:16:10 +00:00
Takagi 3c785cb7c8
fix: correct boolean value display issue in formkit selector component (#6624)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.20.x

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

解决 Formkit Selector 在值为布尔或者数字类型时,回显时内容不正常的问题。

#### How to test it?

测试当 FormKit Select 组件的值为布尔或者数字时,回显的内容是否正常。 

#### Does this PR introduce a user-facing change?
```release-note
修复 FormKit Select 组件中布尔值的显示问题。
```
2024-09-10 07:56:10 +00:00
Takagi cf2837d744
fix: formkit select component not emitting event or updating selection on value change (#6602)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.20.x

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

重新修改 formkit select 初始化值的监听方式,用于当 value 发生变化时,使选项值可以发生变化。

另外在更新数据时,如果数据发生变化,则发出 `onChange` 事件。

> 需要注意的是,通过 v-modal 传入默认值,再将此值改为 `undefined` 时无法触发 `watch` 及 formkit 的 `input` 事件,原因暂时未知,将此值设置为 `""` 即可正常触发。

#### How to test it?

由于此 PR 改动了初始化的方式,因此需要全量测试所有使用 `Select` 组件的位置。包括多选与单选,本地源与远程源。确保功能符合预期。

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

Fixes #6594 

#### Does this PR introduce a user-facing change?
```release-note
解决 Formkit Select 组件在值变更时不会发出事件及修改选项值的问题。
```
2024-09-06 09:45:51 +00:00
Takagi 6cdd2a7588
fix: resolve issue with disabled property in options not working (#6595)
#### What type of PR is this?

/kind bug
/area ui

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

解决 formkit select 组件中,option 使用 `attrs: { disabled: true }` 无效的问题。

#### How to test it?

测试在 formkit select 组件中,option 设置 disabled 属性是否有效。

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

Fixed #6592 

#### Does this PR introduce a user-facing change?
```release-note
解决 formkit select 组件的 Option 设置 disabled 无效的问题
```
2024-09-06 09:25:52 +00:00
Takagi 51609abc57
pref: add parameter to formkit select component for remote search by specific field (#6591)
#### What type of PR is this?

/kind improvment
/area ui
/milestone 2.20.x

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

为 Formkit Select 组件增加 `fieldSelectorKey` 字段,用于在使用 `fieldSelector` 字段远程查询时,指定查询所使用的 Key。

例如指定 `fieldSelectorKey` 为 `metadata.name` 则接口调用时的参数为 `fieldSelector: metadata.name=(admin)`。

#### How to test it?

测试在远程搜索时,`fieldSelector` 的查询 key 是否为设置的内容。

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

Fixes #6589 

#### Does this PR introduce a user-facing change?
```release-note
为 Formkit Select 组件远程查询增加指定 Key 的字段。
```
2024-09-06 09:23:52 +00:00
Takagi 733679d5ac
fix: resolve error when adding tables in default editor (#6587)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.20.x

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

在过滤默认编辑器重复扩展时,移除将扩展扁平化的操作。并且若扩展没有 name,则不对其进行过滤,用于解决一些潜在的问题。

#### How to test it?

测试在默认编辑器中新增 table ,是否会出现报错。

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

Fixes #6585 

#### Does this PR introduce a user-facing change?
```release-note
解决在默认编辑器中添加表格报错的问题
```
2024-09-04 14:11:44 +00:00
Takagi 3c46358293
fix: formkit selector not listening to data after defaulting to first option (#6571)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.20.x

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

当 formkit 选择器初始没有值的情况下,会默认选择第一项,但这同时会导致监听器取消监听,进而无法监听到后续的 value 值变更。

此 PR 将选择值的逻辑与自动选择第一项分开,用于解决此问题。

#### How to test it?

测试当选择器不存在初始值时,后续通过 v-model 传入的值是否还会使当前选项进行变更。

#### Does this PR introduce a user-facing change?
```release-note
解决 formkit 选择器回显数据异常的问题
```
2024-09-02 08:47:37 +00:00
Ryan Wang f6747327e9
refactor: add warning alert for H2 database on data initialization page (#6564)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.19.0

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

将 H2 数据库使用警告放置在数据初始化页面,之前放在初始化表单页面无法正确判断,因为没有登录,无法调用 /actuator/info 接口获取数据库数据。

<img width="638" alt="image" src="https://github.com/user-attachments/assets/18868104-321a-4146-a893-5babf4573146">

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

#### Special notes for your reviewer:

需要使用此 PR 测试使用 H2 数据库全新安装,观察是否在数据初始化页面有 H2 数据库的使用提示。

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

```release-note
None
```
2024-09-01 14:07:34 +00:00
Takagi 856d61537d
fix: resolve error when deleting images in default editor (#6551)
#### What type of PR is this?

/kind bug
/area editor
/area ui
/milestone 2.19.x

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

在上传的文件中执行 `resetUpload` 方法之前,提前验证是否可以进行更新。

#### How to test it?

测试删除图片或变更图片位置时,默认编辑器是否会进行报错。

#### Does this PR introduce a user-facing change?
```release-note
解决默认编辑器删除图片后报错的问题
```
2024-08-30 09:25:28 +00:00
Takagi 9c9ac1b38f
fix: prevent anonymous extensions from being filtered due to duplicate names (#6548)
#### What type of PR is this?

/kind bug
/area editor
/milestone 2.19.x

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

为匿名的 `Extension` 添加 name 值,解决由于匿名的 `Extension` name 相同而导致被过滤的问题。

#### How to test it?

测试默认编辑器附件库是否可以被打开。

#### Does this PR introduce a user-facing change?
```release-note
解决默认编辑器附件库无法被打开的问题
```
2024-08-29 09:07:25 +00:00
Takagi 19049c1302
feat: add default selection option to formkit select component (#6538)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.19.x

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

为 formkit select 增加属性 `autoSelect`。

这个属性仅会作用于单选,且目的是为了初始化数据所用。当 value 或者 placeholder 存在时,此属性无效。

会查找第一个 option 不为 disabled 的数据。

#### Does this PR introduce a user-facing change?
```release-note
None
```
2024-08-29 04:15:24 +00:00
Takagi 9fbf66d496
fix: resolve incorrect parameters in fomkit select remote request (#6536)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.19.x

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

解决 formkit select 远程请求时的参数错误问题。

#### Does this PR introduce a user-facing change?
```release-note
None
```
2024-08-28 04:35:22 +00:00
Takagi 281567877a
pref: implement business selector using new selector component (#6525)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.19.x

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

使用 #6473 中重构的 Formkit Select 组件来实现用户、文章、页面等各种业务搜索组件。 

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

#### How to test it?

测试各类搜索组件是否正常可用。
测试从旧版本升级后,原有数据是否可以正常显示。

#### Does this PR introduce a user-facing change?
```release-note
使用重构的 Formkit Select 组件来实现业务选择器。
```
2024-08-27 12:39:21 +00:00
Ryan Wang 25893c0386
refactor: optimize user filter component to support remote search (#6529)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.19.0

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

重构用户筛选组件,支持远程搜索,避免在用户量大的时候产生性能问题。

<img width="383" alt="image" src="https://github.com/user-attachments/assets/3f878b0b-3da0-48fe-97ee-add115d23801">

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

```release-note
重构用户筛选组件,支持远程搜索。

```
2024-08-27 09:53:19 +00:00
Ryan Wang ab6c20a204
fix: wrong condition in h2 warning alert (#6526)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.19.0

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

修复 H2 数据库提示判断有误的问题。

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

```release-note
None
```
2024-08-26 15:55:15 +00:00
Takagi 3be91fcb6f
refactor: enhance formkit select component to support additional features (#6473)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.19.x

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

此 PR 使用自定义的 Select 组件替换了原有的 Formkit Select 组件,原 Select 组件类型变为 `nativeSelect`。

新的 Select 组件具有如下功能:
- 增加多选、单选两种模式。
- 支持对内容进行搜索、过滤。
- 可使用接口远程加载,并可自定义数据获取。
- 支持扩展远程加载方式。
- 可创建新选项。
- 支持清空所有已选择项。
- 多选状态下可控制最大选择数量。
- 多选状态下可进行排序。

重构后的 Select 组件将自动兼容旧版组件。

使用方式如下:

```vue
<FormKit
  type="select"
  label="What country makes the best food?"
  name="countries"
  placeholder="Select a country"
  allow-create
  clearable
  sortable
  multiple
  searchable
  :max-count="3"
  :options="[
    { label: 'France', value: 'fr'},
    { label: 'Germany', value: 'de'},
    { label: 'Spain', value: 'es'},
    { label: 'Italy', value: 'ie' },
    { label: 'Greece', value: 'gr'},
  ]"
  help="Don’t worry, you can’t get this one wrong."
/>
```

#### How to test it?

1. 需要测试已使用的 Select 组件功能是否发生了变化。

测试在多选、单选状态下,Select 组件的功能是否可以正常使用。

测试在远程加载时,数据获取是否正常,是否可正常分页,加载状态是否显示。

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

see https://github.com/halo-dev/halo/issues/4931#issuecomment-2060637101
see #6369 

#### Does this PR introduce a user-facing change?
```release-note
重构 FormKit 选择器组件以支持更多功能
```
2024-08-26 09:03:14 +00:00
Ryan Wang 72e7b19697
chore: update Halo official website URL (#6514)
Co-authored-by: John Niang <johnniang@foxmail.com>
2024-08-26 15:53:04 +08:00
Takagi 21db06a507
refactor: editor code block to be extensible by plugins (#6428)
#### What type of PR is this?

/kind improvement
/area editor
/area ui

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

此 PR 重构了默认编辑器中代码块的相关代码,使编辑器能够被插件扩展。这样做的优点是当用户使用例如 [highlightjs](https://github.com/halo-sigs/plugin-highlightjs) 这类的高亮插件时,可以保证在 Console 端选择的语言及主题可以在主题端完美适配。

具体做了以下几处重构:

1. 在默认编辑器的代码块中,不再提供高亮样式,代码块高亮将完全交由插件来适配。(但可以在默认的代码块中自定义输入语言,主题端自行处理)。
2. 为了防止出现重复的插件功能,将会根据插件优先级及加载顺序(后加载优先级高于先加载),对同类型且同名的插件进行过滤,只保留一个。
3. 重构代码块 `Select` 组件,使得选择语言或主题更加方便。
4. 为代码块提供主题的扩展设置项。

建议在此 PR 合并之后,由 Halo 默认提供一个高亮插件作为预设插件,这样可以用于解决原有功能升级之后丢失的问题。

<img width="1067" alt="image" src="https://github.com/user-attachments/assets/f9e2c5eb-a48a-4d2c-9fee-442e9d16ef19">

#### How to test it?

测试是否会改变已有代码块的语言等。
测试使用第三方插件之后,是否具有高亮。
设置高亮语言后,保存并刷新,查看高亮语言是否存在。主题同理。
查看主题端是否能够正常渲染。

#### Does this PR introduce a user-facing change?
```release-note
重构默认编辑器代码块使其能够被插件扩展。
```
2024-08-26 02:55:13 +00:00
Ryan Wang 3767a5a239
feat: add H2 database usage warning to setup page (#6502)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.19.x

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

在初始化页面添加使用 H2 数据库的警告。

<img width="773" alt="image" src="https://github.com/user-attachments/assets/3be83064-2075-4d3d-9511-9c67ffb68076">

#### Special notes for your reviewer:

需要测试在首次安装的时候使用 H2 数据库时,初始化页面是否有警告界面。

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

```release-note
在初始化页面添加使用 H2 数据库的警告。
```
2024-08-26 02:29:12 +00:00
Ryan Wang 6cd8dc8555 Adapt console for restoring from backup root
Signed-off-by: JohnNiang <johnniang@foxmail.com>
2024-08-21 11:46:30 +08:00
Ryan Wang d19c27ba52 feat: add prompt for users to reload page after plugin update 2024-08-15 17:30:01 +08:00
Ryan Wang c2ac19f9d3
feat: add full-screen support to code input (#6453)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.19.x

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

Code 输入框支持全屏编辑。

<img width="530" alt="image" src="https://github.com/user-attachments/assets/c8465388-10fa-4b04-be52-c6a5bda6a2bc">

<img width="1906" alt="image" src="https://github.com/user-attachments/assets/aa6d14da-ef35-49b9-8d63-fde928d1f8e4">


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

Fixes #6308 

#### Special notes for your reviewer:

需要在任意 Code 输入框中测试全屏功能是否正常。

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

```release-note
Code 输入框支持全屏编辑。
```
2024-08-13 03:44:56 +00:00
Takagi 6cfc92b29e
fix: saving settings in theme preview returns to homepage (#6447)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.19.x

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

此 PR 将主题预览及文章预览的 `iframe` 由 srcdoc 改为使用 src 加载。用于解决在主题预览时,如果点击保存设置,会导致主题端页面跳转至首页。

#### How to test it?

1. 打开主题预览界面。
2. 打开非首页的页面。
3. 点击保存配置。查看此时刷新页面后是否不再回到首页。

同时需要测试 #4047 中的场景是否还会再发生。

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

Fixes #6371 

#### Does this PR introduce a user-facing change?
```release-note
解决预览主题时保存设置,页面会跳转至首页的问题。
```
2024-08-08 08:20:38 +00:00
Takagi 457508f1cd
feat: support for previewing avif images in attachments (#6446)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.19.x

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

支持在附件库中预览 `image/avif` 的图片。

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

Fixes #6320 

#### Does this PR introduce a user-facing change?
```release-note
支持在附件库中预览 avif 类型的图片
```
2024-08-07 08:50:35 +00:00
Ryan Wang 684c3b045b
chore: bump typescript version to 5.5.x (#6440)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.19.x

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

更新 typescript 依赖版本至 5.5.x,以尝试解决 VSCode Vue 插件频繁崩溃的问题。

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

```release-note
None
```
2024-08-05 05:46:25 +00:00
Takagi 6791b5e3b8
fix: enter key causing focus loss in default editor title during composition input (#6347)
#### What type of PR is this?

/kind bug
/area editor
/milestone 2.18.x

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

使用组合输入时,按下回车键不再执行编辑器获取焦点的事件。

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

Fixes #6345 

#### Does this PR introduce a user-facing change?
```release-note
解决默认编辑器标题在使用组合输入时,按下回车键会导致其失去焦点的问题。
```
2024-07-22 05:49:33 +00:00
LonelySnowman 66d4986531
feat: add support for video thumbnail preview in the attachment library (#6265)
#### What type of PR is this?

/kind feature

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

附件页面视频文件展示封面

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

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

#### Special notes for your reviewer:

![image](https://github.com/halo-dev/halo/assets/111493458/772aa224-fb56-445d-8da5-be5a67be2fa4)

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


```release-note
附件库支持预览视频封面。
```
2024-07-10 02:13:24 +00:00
LonelySnowman c5bf1924a6
feat: tag and category add save and continue button (#6223)
#### What type of PR is this?

/kind feature

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

文章分类和标签 Modal 添加 ”保存并继续添加” 按钮,便于连续添加。

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

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

#### Special notes for your reviewer:

![image](https://github.com/halo-dev/halo/assets/111493458/4debe13e-4002-48a8-827b-58cb74b4b074)


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

```release-note
文章分类和标签页添加 "保存并继续添加" 按钮。
```
2024-07-01 15:49:18 +00:00
Ryan Wang 0b7b74e826
fix: resolve styling issue for checkbox when disabled (#6240)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.17.x

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

修复 FormKit 中当 checkbox 为 disabled 时的样式问题。

before:

<img width="550" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/65e8e750-6663-4e14-9f7f-5102e8412675">

after:

<img width="540" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/2b55dcb4-b71a-45bf-8eae-17c490168bc6">

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

```release-note
None
```
2024-07-01 09:55:17 +00:00
Ryan Wang d92bb4398e
refactor: refine extension settings page (#6231)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.17.x

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

完善插件扩展设置页面:

1. 完善 i18n。
2. 将入口移动至插件页面右上角的操作按钮区域。

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

```release-note
None 
```
2024-07-01 06:43:17 +00:00
Ryan Wang f3f48e2753
feat: refine 2fa-related i18n (#6228)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.17.x

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

补充 2FA 相关的 i18n 定义。

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

```release-note
None
```
2024-07-01 06:41:16 +00:00
longjuan 2c454ccb28
feat: add disabled state styling to checkboxes (#6220)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/main/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/main/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?

<!--
添加其中一个类别:
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
-->
/area ui
/kind improvement
#### What this PR does / why we need it:
当前多选框disabled与非disabled样式上无区别,不好分辨。
#### 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/5974

#### Special notes for your reviewer:
![image](https://github.com/halo-dev/halo/assets/28662535/f3a3b683-4964-4701-a14e-3b12b0af26c1)

#### 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
增加多选框disabled样式
```
2024-07-01 03:19:17 +00:00
Ryan Wang bae53f59ea
fix: resolve issue with secret input saving additional data (#6196)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.17.x

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

修复 Secret Input 保存之后会多出 Secret Form 中数据的问题。

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

Fixes #6193 

#### Special notes for your reviewer:

测试方式:

1. 在保存 Secret 的表单选项前,打开一次编辑 Secret 的对话框。
2. 保存数据,检查内容是否多出了其他数据。

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

```release-note
None
```
2024-06-29 16:35:21 +00:00
Ryan Wang f0445f4e51
refactor: remove page cache feature (#6108)
#### What type of PR is this?

/area core
/kind api-change
/milestone 2.17.x

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

移除内置的页面静态缓存功能,后续将由 https://github.com/halo-sigs/plugin-page-cache 插件提供。

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

Fixes #5639 

#### Special notes for your reviewer:

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

```release-note
移除内置的页面静态缓存功能,后续由 https://github.com/halo-sigs/plugin-page-cache 插件提供。
```
2024-06-28 10:08:59 +00:00
Ryan Wang bb0a3bc467
feat: add support for setting an owner for posts (#6178)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.17.x

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

支持手动为文章设置作者。

<img width="734" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/b91b1754-4f50-4333-8478-6735d5846847">


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

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

#### Special notes for your reviewer:

需要测试:

1. 打开任意文章的设置,在高级中设置作者并保存,观察是否成功。
2. 选择一批文章,点击批量设置,设置一个作者,观察是否设置成功。

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

```release-note
支持手动为文章设置作者。
```
2024-06-27 10:10:55 +00:00
Ryan Wang 9d478eecf9
feat: add secret select input (#6140)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.17.x

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

为 FormKit 添加 Secret 选择组件。

<img width="749" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/5100d7c0-89c0-48d3-9db5-7de67504686e">

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

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

#### Special notes for your reviewer:

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

```release-note
为 FormKit 添加 Secret 选择组件。
```
2024-06-27 10:08:55 +00:00
Ryan Wang 49c4a917e1
fix: resolve style issues caused by changing the order of CSS imports (#6153)
#### What type of PR is this?

/area ui
/kind bug

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

修复 https://github.com/halo-dev/halo/pull/6152 中因为改动了 css 文件的导入顺序带来的样式问题。

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

```release-note
None
```
2024-06-26 11:36:50 +00:00
Ryan Wang bc1033611e Refine UI for categories hiden 2024-06-26 19:25:10 +08:00
Ryan Wang 2c9d94f034 Refine UI for device managment 2024-06-26 18:53:24 +08:00
Ryan Wang a93479dc34
chore: organize and fix imports (#6152)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.17.x

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

重新组织和固定 UI 部分代码的 imports 导入,防止后续因为 imports 的顺序造成不必要的 diff。

基于:https://github.com/halo-dev/halo/pull/6151

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

```release-note
None
```
2024-06-26 10:42:50 +00:00
Ryan Wang 2ae5d222d9
feat: add batch setting for partial post fields (#6142)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.17.x

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

支持批量为文章设置部分属性。

![image](https://github.com/halo-dev/halo/assets/21301288/cc4aa912-20ba-4b50-869b-705702f56d7d)

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

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

#### Special notes for your reviewer:

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

```release-note
支持批量为文章设置部分属性。
```
2024-06-26 09:58:50 +00:00
Takagi 5d5df7c7a9
feat: add dynamic list input (#6146)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.17.x

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

为 formkit 增加动态列表的 input。

使用方式:

```
- $formkit: list
  name: users
  label: Users
  addLabel: Add User
  min: 1
  max: 3
  itemType: string
  children:
    - $formkit: text
      index: "$index"
      validation: required
```

> [!NOTE]
> `list` 组件有且只有一个子节点,并且必须为子节点传递 `index` 属性。若想提供多个字段,则建议使用 `group` 组件包裹。

#### How to test it?

测试动态数组是否正常可用。保存的结果是否为 `{users: ["", ""]}`

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

Fixes #6098

#### Does this PR introduce a user-facing change?
```release-note
为 Formkit 增加动态列表的 input 组件 list
```
2024-06-26 09:48:49 +00:00
Takagi ba2987b585
feat: range selection feature to default editor (#6117)
#### What type of PR is this?

/kind feature
/area editor
/milestone 2.17.x

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

为默认编辑器添加 `RangeSelection` 选择器。

<img width="989" alt="image" src="https://github.com/halo-dev/halo/assets/31335418/c976cf99-0d6e-4346-9b05-8b9b0dc95183">


它的功能基本与 TextSelection 相反,例如:

1. TextSelection 支持光标展示,RangeSelection 不允许空内容,即它并不支持光标。
2. TextSelection 会抛弃被选择的 Node 节点部分偏移量,而 RangeSelection 会扩展偏移量至 Node 节点结束。
3. TextSelection 支持 Text 而 RangeSelection 支持 Node 节点。

`RangeSelection` 可以用于范围选中块节点并进行操作,可用于全选内容并进行删除操作。

#### How to test it?

测试使用点击,拖拽,释放鼠标的操作,能否选中某些节点。
测试删除选中的节点。

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

Fixes #5194

#### Does this PR introduce a user-facing change?
```release-note
为默认编辑器添加 RangeSelection 选择器
```
2024-06-26 06:14:50 +00:00
Takagi c1ba566e08
fix: autosave content feature not working (#6147)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.17.x

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

解决自动保存失效的问题

#### How to test it?

测试文章、页面输入内容后,点击其他页面是否能够自动保存。

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

Fixes #6129 

#### Does this PR introduce a user-facing change?
```release-note
解决文章自动保存失效的问题
```
2024-06-26 06:10:49 +00:00
Ryan Wang c0d38a99ed
feat: support batch publish/unpublish posts (#6123)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.17.x

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

支持批量发布/取消发布文章。

<img width="475" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/5b79123b-5917-4b5e-9eaa-41c0cf5c8cdb">

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

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

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

```release-note
支持批量发布/取消发布文章。
```
2024-06-26 03:38:48 +00:00
Ryan Wang c74187c066 feat: add requests library as a global shared dependency 2024-06-25 12:31:44 +08:00
Ryan Wang 373229e9de
fix: not remembering the selected editor (#6114)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.17.x

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

修复新建文章时,没有自动选择之前所选编辑器的问题。

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

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

#### Special notes for your reviewer:

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

```release-note
修复新建文章时,没有自动选择之前所选编辑器的问题。
```
2024-06-23 03:46:29 +00:00
guqing 8bdde317e5
feat: add preventParentPostCascadeQuery option to control visibility of child category posts (#6083)
#### What type of PR is this?
/kind feature
/area core
/milestone 2.17.x

#### What this PR does / why we need it:
此次变更为文章分类引入了一个新的 `preventParentPostCascadeQuery` 布尔属性,用于控制分类及其子分类下的文章显示方式。具体变更包括:

- 在分类结构中增加了 `preventParentPostCascadeQuery` 属性。
- 当分类的 `preventParentPostCascadeQuery` 属性设置为 `true` 时,该分类的文章数量不会汇总到父分类中。
- 更新了树结构遍历逻辑,以支持对 `preventParentPostCascadeQuery` 属性的处理。
- 确保独立分类中的文章显示受控,不向上级分类进行聚合。
- 增加了相应的测试用例,以验证在不同树结构中 `preventParentPostCascadeQuery` 属性的功能性。

#### Which issue(s) this PR fixes:
Fixes #5663 
Fixes #4923
Fixes https://github.com/halo-dev/halo/issues/3418

#### Does this PR introduce a user-facing change?
```release-note
新增独立分类选项用于控制关联的子分类下的文章显示以提供更灵活的内容管理方式
```
2024-06-21 04:08:10 +00:00
guqing b5f9010e60
feat: support setting rendering templates for related posts on category (#6106)
#### What type of PR is this?
/kind feature
/area core
/milestone 2.17.x

#### What this PR does / why we need it:
支持在分类上为关联的文章统一设置渲染模板

现在文章的模板生效顺序为:
1. 文章关联的分类上设置的文章模板,如果有多个则选择第一个
2. 文章上设置的自定义模板
3. 文章的默认模板

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

#### Does this PR introduce a user-facing change?
```release-note
支持在分类上为关联的文章统一设置渲染模板
```
2024-06-20 08:12:07 +00:00
Takagi b445b505be
feat: add import and export theme configuration (#6071)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.17.x

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

为主题增加导入及导出配置的功能。

<img width="1666" alt="image" src="https://github.com/halo-dev/halo/assets/31335418/3574b33e-0293-427c-9036-5d82948aa7f2">

#### How to test it?

测试主题导入及导出功能是否正常可用。
测试当前主题下的不同版本导入导出后数据是否正常。
测试在当前主题下使用其他主题导出的配置是否会报错。

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

Fixes #1073 

#### Does this PR introduce a user-facing change?
```release-note
为单个主题配置增加导入与导出的功能。
```
2024-06-19 10:55:00 +00:00
Takagi 3076838f36
fix: default editor focus setting failure (#6062)
#### What type of PR is this?

/kind bug
/area editor
/area ui

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

当前为默认编辑器设置焦点的时机放在 `onMounted` 时,但此时默认编辑器可能还未加载成功且标题也为能成功加载,因此无法保证正确设置标题焦点。

当前 PR 将此时机放置在默认编辑器创建完成之后的 `onCreate` ,此时将能够保证焦点设置成功。

#### How to test it?

测试默认编辑器能否正常设置标题或内容的焦点。

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

Fixes #6060 

#### Does this PR introduce a user-facing change?
```release-note
解决使用默认编辑器时无法正确设置焦点的问题
```
2024-06-14 08:08:39 +00:00
Ryan Wang a26b73e258
chore: remove unnecessary env (#6022)
#### What type of PR is this?

/area ui
/kind cleanup
/milestone 2.16.x

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

移除 UI 项目中不必要的环境变量配置。

1. VITE_API_URL:当前 Console 不会考虑独立部署,并且在开发环境是后端 Proxy 的 Console 请求,所以此变量没有任何意义。
2. VITE_BASE_URL:无意义,当前不考虑修改。

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

```release-note
None
```
2024-05-30 08:31:16 +00:00
Ryan Wang 4c6abdcaa1
feat: enable asynchronous resolving for UI extension points (#6018)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.16.x

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

优化 UI 部分的扩展点获取实现,让部分扩展点支持异步获取,之前的实现与文档不符。

比如:

```ts
import { definePlugin } from "@halo-dev/console-shared";
import axios from "axios";

export default definePlugin({
  components: {},
  routes: [],
  extensionPoints: {
    "attachment:selector:create": async () => {
      const { data } = await axios.get(
        "/apis/v1alpha1/fake.halo.run/attachments/selectors"
      );

      return data;
    },
  },
});
```

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

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

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

```release-note
优化 UI 部分的扩展点获取实现,让部分扩展点支持异步获取。
```
2024-05-30 07:01:15 +00:00
Ryan Wang afabffc546
refactor: typing component template refs for VModal (#5994)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.16.x

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

为 VModal 组件的引用添加类型。

See https://vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs

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

```release-note
None
```
2024-05-27 08:56:57 +00:00
John Niang 5df51bb715
Refactor plugin reconciliation for dependency mechanism (#5900)
#### What type of PR is this?

/kind improvement
/area core
/area plugin

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

This PR wholly refactors plugin reconciliation to implement dependency mechanism.

Currently,
- If we disable plugin which has dependents, the plugin must wait for dependents to be disabled.
- If we enable plugin which has dependencies , the plugin must wait for dependencies to be enabled.
- If we upgrade plugin which has dependents, the plugin must request dependents to be unloaded. After the plugin is unloaded, the plugin must cancel unload request for dependents.

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

Fixes #5872 

#### Special notes for your reviewer:

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

```release-note
优化被依赖的插件的升级,启用和禁用
```
2024-05-27 08:16:56 +00:00
Ryan Wang 769b19c23c
refactor: improve code base of role-related (#5984)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.16.x

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

优化和角色相关的对话框显示逻辑,减少不必要的渲染开销和请求。

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

```release-note
优化和角色相关的对话框显示逻辑,减少不必要的渲染开销和请求。
```
2024-05-24 07:18:51 +00:00
guqing 9ec608be3b
feat: add remember-me mechanism to enhance user login experience (#5929)
#### What type of PR is this?
/kind feature
/area core
/milestone 2.16.x

#### What this PR does / why we need it:
为登录增加记住我机制以优化登录体验

how to test it?
1. 勾选记住密码选项后登录
2. 退出浏览器后打开 console 期望依然可以访问而不需要登录
3. 测试修改密码功能,期望修改密码后所有会话需要重新登录包括当前设备和其他设备

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

#### Does this PR introduce a user-facing change?
```release-note
为登录增加记住我机制以优化登录体验
```
2024-05-24 06:20:50 +00:00