Commit Graph

171 Commits (5ec975e75b3ad94e34e37cf9e777f56f85dc82c4)

Author SHA1 Message Date
Ryan Wang f59e3a2909
refactor: remove unused width prop for post title field (#7545)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Remove unused width prop for post title field

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

```release-note
None
```
2025-06-13 06:50:42 +00:00
Ryan Wang d39a571e46
refactor: adapt page header styles for responsive design (#7544)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Adapt page header styles for responsive design

before:

<img width="415" alt="image" src="https://github.com/user-attachments/assets/feee6f09-9a77-4bbf-94c2-77725c9ce76b" />

after:

<img width="416" alt="image" src="https://github.com/user-attachments/assets/60bb07a3-5d34-4cf6-b103-5d1f2206d62d" />

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

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

#### Special notes for your reviewer:

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

```release-note
优化移动端下文章编辑页面的样式
```
2025-06-13 06:06:42 +00:00
Ryan Wang bfbca99f1b
refactor: update attachment policy form using new configMap API (#7531)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Update attachment policy form using new configMap API

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

```release-note
None
```
2025-06-10 09:58:35 +00:00
Ryan Wang 2332e09ead
feat: add iframe widget for dashboard (#7516)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.21.x

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

Add iframe widget for dashboard

<img width="1212" alt="image" src="https://github.com/user-attachments/assets/e31bb9f2-5120-4565-ad2d-cf878b4c9d53" />

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

```release-note
为仪表盘添加网页嵌入小部件
```
2025-06-09 16:46:34 +00:00
Ryan Wang c50099e491
refactor: update extension points settings using new configMap API (#7529)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Update extension points settings using new configMap API

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

```release-note
None
```
2025-06-09 16:34:34 +00:00
Ryan Wang 8dfae708ff
feat: add empty state for some widgets (#7522)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Add empty state for some dashboard widgets

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

```release-note
None
```
2025-06-09 16:24:35 +00:00
Ryan Wang 392d851353
feat: improve permission control for comment management (#7521)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Improve permission control for comment management.

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

```release-note
None
```
2025-06-09 16:22:34 +00:00
Ryan Wang 4093435b0e
feat: refine i18n for dashboard widgets config form (#7511)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Refine i18n for dashboard widgets config form.

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

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

#### Special notes for your reviewer:

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

```release-note
None
```
2025-06-09 16:20:33 +00:00
Ryan Wang c604952914
feat: add success notification for dashboard layout save (#7510)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-06-10 00:08:38 +08:00
Ryan Wang 9a52de0f4e
refactor: update external URL using new configMap API (#7528)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.21.x

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

Update external URL using new configMap API.

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

```release-note
None 
```
2025-06-09 15:44:33 +00:00
Ryan Wang 204113bd87
refactor: improve button component styles (#7517)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

1. Add ghost variant
2. Improve icon style
3. Refactoring css using scss functions

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

```release-note
None
```
2025-06-09 15:38:34 +00:00
Ryan Wang 63d40d4d40
refactor: enable dashboard widgets query cache (#7520)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.21.x

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

Enable query cache for dashboard widgets.

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

```release-note
None 
```
2025-06-09 15:36:34 +00:00
Ryan Wang 65d4751509
feat: add cover for post list (#7519)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.21.x

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

<img width="508" alt="image" src="https://github.com/user-attachments/assets/3d7a9ac0-1e0a-4a4f-a658-03af7ff89904" />

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

Fixes #7437 

#### Special notes for your reviewer:

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

```release-note
文章管理列表支持显示封面图
```
2025-06-09 15:34:34 +00:00
Ryan Wang 315073406f
feat: add stack widget for dashboard (#7525)
#### What type of PR is this?

/area ui
/kind feautre
/milestone 2.21.x

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

This PR adds a core Dashboard Widget called Stack Widget, which is used to stack a batch of components in the same location and supports manual or automatic switching.

<img width="737" alt="image" src="https://github.com/user-attachments/assets/de448cd8-cf62-4608-8523-88395298e734" />
<img width="827" alt="image" src="https://github.com/user-attachments/assets/fecaf637-9cb8-444a-888b-0ee2a9700bc7" />

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

Fixes #

#### Special notes for your reviewer:

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

```release-note
为仪表盘添加堆叠小部件
```
2025-06-09 15:08:34 +00:00
Ryan Wang 3fa6532d9b
refactor: convert post publish dates to human-readable format (#7526)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

<img width="1202" alt="image" src="https://github.com/user-attachments/assets/cac050d2-b984-4b48-afe0-e18db220ec19" />

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

```release-note
将 Console 端文章列表的发布时间改为语义化时间
```
2025-06-09 15:02:34 +00:00
Ryan Wang 224d78079d
refactor: migrate system settings to new configmap API (#7524)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

Migrate system settings to new configmap API

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

Fixes #7515 

#### Special notes for your reviewer:

Need to test whether the system setting is working properly

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

```release-note
None
```
2025-06-09 15:00:33 +00:00
Ryan Wang 677caca403
chore: bump vue-related dependencies (#7523)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-06-09 15:34:14 +08:00
Ryan Wang 28a4a13e0e
refactor: redesign ui of comment management page (#7481)
* refactor: redesign ui of comment management page

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Add comment detail modal

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Add reply detail modal

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Improve ui

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Add pending comments widget

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Improve ui

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Improve ui

Signed-off-by: Ryan Wang <i@ryanc.cc>

---------

Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-06-06 22:59:43 +08:00
Ryan Wang 47e517d9bf
fix: correct package import paths (#7506)
#### What type of PR is this?

/kind cleanup
/area ui

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

Fix correct package import paths

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

```release-note
None
```
2025-06-06 09:06:56 +00:00
Ryan Wang 6d3c2494f6
feat: full-features of dashboard widgets (#7496)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.21.x

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

Previously, although the Console dashboard was designed from the beginning to support extensions and persistent configuration, this had not yet been implemented. This PR implements a more powerful dashboard configuration, including features:

1. Support for persisting configuration data to the currently logged-in user.
2. Support for configuring different dashboards for different device sizes (responsive support).
3. Support for extending dashboard widgets through plugins.
4. More UX/UI optimizations

docs: https://github.com/halo-dev/docs/pull/500

Test plugin: [plugin-widgets-test-1.0.11.jar.zip](https://github.com/user-attachments/files/20623916/plugin-widgets-test-1.0.11.jar.zip)

<img width="1663" alt="image" src="https://github.com/user-attachments/assets/cc4d78f2-25ab-4772-b43f-b16a813bcdc0" />
<img width="1662" alt="image" src="https://github.com/user-attachments/assets/e8ba8ca8-2ae9-4736-800f-6c0f062434a3" />



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

Fixes https://github.com/halo-dev/halo/issues/6358
Fixes https://github.com/halo-dev/halo/issues/6666
Fixes https://github.com/halo-dev/halo/issues/2883

#### Special notes for your reviewer:

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

```release-note
重构 Console 端仪表盘,支持响应式布局、持久化配置,支持通过插件扩展小部件。
```
2025-06-06 08:30:56 +00:00
Ryan Wang ebbe6a91e9
refactor: remove time field from plugin list (#7494)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

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

As per the title, the time shown in the plugin list is the installation time of the plugin. For usage purposes, this time seems to have no meaning or reference value.

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

Fixes #7493 

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

```release-note
移除插件列表的时间字段,并在插件详情中显示安装时间。
```
2025-06-02 16:18:38 +00:00
Ryan Wang 7162b8da92
fix: correct attachment selection state after new upload (#7487)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.21.x

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

Fix correct attachment selection state after new upload.

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

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

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

```release-note
修复当有已选择附件时,上传新附件导致所选附件状态异常的问题。
```
2025-05-30 10:10:28 +00:00
Ryan Wang 9d16388379
fix: external URL prompt in overview page always displays with priority (#7484)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.21.x

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

See https://github.com/halo-dev/halo/issues/7480

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

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

#### Special notes for your reviewer:

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

```release-note
None
```
2025-05-30 10:00:28 +00:00
Ryan Wang f36531119a Update ui
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-05-26 22:09:34 +08:00
Ryan Wang a1c48b4943
fix: resolve text wrapping issue in StatusDot component (#7466)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.21.x


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

before:

<img width="273" alt="image" src="https://github.com/user-attachments/assets/e1e21e33-6ead-4d47-b3f6-1b19fb0a8a96" />

after:

<img width="323" alt="image" src="https://github.com/user-attachments/assets/950023f8-6e71-4db4-97c4-9a3b2be6dffb" />


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

```release-note
None
```
2025-05-23 08:14:12 +00:00
Ryan Wang 42c374dba5 Add external URL editing capability to overview page
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-05-22 14:56:57 +08:00
Ryan Wang b309bc532b
refactor: improve entity component layout for better device responsiveness (#7383)
* refactor: improve entity component layout for better device responsiveness

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Resolve CSS style conflicts

Signed-off-by: Ryan Wang <i@ryanc.cc>

* Update missing translaions

Signed-off-by: Ryan Wang <i@ryanc.cc>

---------

Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-05-21 11:29:41 +08:00
Ryan Wang 24d3324488 Refine UI
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-05-15 11:06:06 +08:00
Ryan Wang 6cc7cf6d22
refactor: improve drag-and-drop sorting feature for categories (#7424)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-05-14 15:20:21 +08:00
Ryan Wang 18105cbe44
refactor: improve drag-and-drop sorting feature for menu items (#7423)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-05-14 10:16:21 +08:00
困困鱼 5c8f86e917
feat:support sorting tags by post count (#7414)
#### What type of PR is this?

/kind feature

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

标签支持根据文章量排序

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

```release-note
标签支持根据文章量排序
```
2025-05-09 03:11:47 +00:00
guqing 0676551c77
feat: support configuring default locale in system setting (#7365)
#### What type of PR is this?
/kind feature
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
系统设置新增首选语言设置

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

Fixes #7047
Fixes https://github.com/halo-dev/halo/issues/7172
Fixes https://github.com/halo-dev/halo/issues/4086
Fixes https://github.com/halo-dev/halo/issues/7336

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

```release-note
系统设置新增首选语言设置
```
2025-04-27 04:04:50 +00:00
Ryan Wang 4235fd1eda
feat: add support for multiple roles during user creation (#7381)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.20.x

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

Add support for multiple roles during user creation

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

Fixes #7325 

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

```release-note
新建用户时支持设置多个角色
```
2025-04-23 14:19:12 +00:00
Ryan Wang 7a315302a8
refactor: add chunked execution mechanism for post batch operations (#7378)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

Use `Promise.all` to execute part of the batch operation logic of the post in chunks to optimize the execution performance.

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

Fixes #

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

```release-note
优化文章部分批量操作的执行性能
```
2025-04-23 14:17:13 +00:00
Ryan Wang 4ad97cd58e
feat: add support for disabling/enabling user accounts (#7273)
#### What type of PR is this?

/kind feature
/area ui
/milestone 2.20.x

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

Add support for disabling/enabling user accounts

<img width="1207" alt="image" src="https://github.com/user-attachments/assets/a298e6f7-21a1-4b1c-86c3-1064a136e28c" />

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

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

#### Special notes for your reviewer:

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

```release-note
支持在管理控制台禁用指定用户
```
2025-03-10 15:15:02 +00:00
Ryan Wang 5a6551a770
fix: prevent extension-point list from being obscured at bottom (#7218)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

See https://github.com/halo-dev/halo/issues/7214

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

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

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

```release-note
修复插件扩展配置列表底部可能被遮挡的问题。
```
2025-01-24 06:32:07 +00:00
Ryan Wang 156a30496c
fix: prevent data clearing on FormKit component unmount (#7122)
#### What type of PR is this?

/kind bug
/area ui
/milestone 2.20.x

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

Prevent data clearing on FormKit component unmount

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

Fixes #7121 

#### Special notes for your reviewer:

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

```release-note
修复 FormKit 组件卸载时,对应数据值也被清除的问题
```
2024-12-17 07:06:08 +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 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
Nancy d44fa5f6d8
feat: add support for creating a new group when uploading attachments (#6951)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.20.x

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

支持在附件上传界面创建新分组。

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

Fixes #6942 

#### Special notes for your reviewer:

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

```release-note
支持在附件上传界面创建新分组。
```
2024-10-27 09:52:01 +00:00
Ryan Wang 9ecc8f1d95
fix: post slug generation not following selected strategy (#6914)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

修复文章自动生成别名不按照别名生成策略生成的问题。

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

Fixes #6913 

#### Special notes for your reviewer:

需要测试:

1. 分类、标签创建和更新时的别名生成
2. 文章新建时,别名是否按照生成策略生成。

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

```release-note
修复文章自动生成别名不按照别名生成策略生成的问题。
```
2024-10-22 06:52:28 +00:00
Ryan Wang 500f702e02
fix: can not return to post list after publishing when re-logged in (#6902)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

修复通过登录跳转到文章编辑页面时,发布文章会跳转到个人中心的问题。

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

Fixes #6901 

#### Special notes for your reviewer:

测试步骤:

1. 新建文章,编写内容,但是不发布
2. 在新的浏览器选项卡中退出登录
3. 回到文章编辑页面,跳转到登录页面重新登录之后,发布文章
4. 观察是否会返回到 Console 的文章管理页面。

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

```release-note
修复通过登录跳转到文章编辑页面时,发布文章会跳转到个人中心的问题。
```
2024-10-19 15:58:44 +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 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 9cbd9b23d0
fix: username length validation in user creation form is not working (#6806)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

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

修复创建用户表单的用户名长度校验不生效的问题。

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

```release-note
修复创建用户表单的用户名长度校验不生效的问题。
```
2024-10-10 03:05:00 +00:00
Ryan Wang d7aba83485 Refine password validation 2024-10-10 10:43:20 +08:00