Commit Graph

72 Commits (6789d4c90f94b3816c5b2ecefe67dbfcf99f52dd)

Author SHA1 Message Date
Ryan Wang 403702021c
perf: improve the style of the scrollbar (#3587)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.x

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

优化页面滚动条的样式,引入 [OverlayScrollbars](https://github.com/KingSora/OverlayScrollbars) 实现类似于 macOS 下的仅滚动时显示滚动条的特性,并保证在各个浏览器的表现一致。

![2023-03-26 13 44 04](https://user-images.githubusercontent.com/21301288/227757677-ca2709be-03bc-4bdd-a74c-2e42a452417a.gif)

#### Special notes for your reviewer:

测试方式:使用不同的浏览器测试滚动条是否可以自动隐藏以及样式是否一致即可。

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

```release-note
优化 Console 端页面滚动条的样式。
```
2023-03-27 09:20:22 +00:00
Ryan Wang 8ce0913c0e
perf: hide disabled auth providers in user profile (#3561)
#### What type of PR is this?

/kind improvement
/area console

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

隐藏个人资料中未启用的认证方式。

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

Fixes #3556 

#### Special notes for your reviewer:

测试方式:

1. 安装 OAuth 2 插件:https://github.com/halo-sigs/plugin-oauth2/pull/3
2. 再不做任何配置的情况下,访问已登录用户的个人资料页面,检查是否列出了认证方式。
3. 配置某个认证方式并开启,再检查是否列出了已启用的认证方式。

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

```release-note
None
```
2023-03-27 08:32:12 +00:00
Ryan Wang 9a00a74f06
feat: add dropdown component to refactor the action buttons (#3576)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.x

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

在 `@halo-dev/components` 添加 Dropdown 组件用于统一 Console 端所有下拉框的样式和表现,同时方便插件使用。

<img width="1408" alt="image" src="https://user-images.githubusercontent.com/21301288/227758168-ed6f40ef-8627-4d5a-8a4a-476badf5196d.png">
<img width="992" alt="image" src="https://user-images.githubusercontent.com/21301288/227758184-01bf61a0-f778-4ba8-aaea-f6b99715b577.png">

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

Fixes #2987 

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

```release-note
Console 端添加 Dropdown 组件以统一所有下拉框的样式和表现。
```
2023-03-27 08:06:13 +00:00
Ryan Wang fbe8e627e8
perf: hide the switch of local identity authentication (#3562)
#### What type of PR is this?

/kind improvement
/area console 

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

在身份认证的列表中隐藏本地身份认证的启用/禁用开关。

<img width="1402" alt="image" src="https://user-images.githubusercontent.com/21301288/226804384-e12ea447-d7ad-4429-82bc-2621fcca84dc.png">

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

Fixes #3557 

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

```release-note
None 
```
2023-03-27 08:02:20 +00:00
Ryan Wang 5b3b473cb3
refactor: use tanstack query to refactor theme-related fetching (#3588)
#### 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-27 07:56:17 +00:00
Ryan Wang bd9f590c1e
perf: improve styles of bottom menu in mobile devices (#3577)
#### What type of PR is this?

/kind improvement
/area console
/milestone 2.4.x

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

优化移动端底部菜单栏的布局和样式。

before:

<img width="349" alt="image" src="https://user-images.githubusercontent.com/21301288/227410375-87e7b6bb-1528-425e-ac58-fdba809c2bf3.png">

after:

<img width="394" alt="image" src="https://user-images.githubusercontent.com/21301288/227410199-9fb04304-0ff3-4a8f-9a9f-38a5031b0c05.png">

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

Fixes #3575 

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

```release-note
优化 Console 在移动端下底部菜单栏的布局和样式。
```
2023-03-27 07:50:15 +00:00
Ryan Wang 1c89638f7e
fix: unable to login again after using oauth providers login (#3571)
#### What type of PR is this?

/kind bug
/area console

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

修复使用非本地认证登录之后,无法重新登录的问题。此问题来源是三方登录方式登录之后没有在 localStorage 存入 `logged_in` 的 flag。并且在引入匿名用户之后,本身也不再需要这个 flag。

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

Fixes #3569 

#### Special notes for your reviewer:

测试方式:

1. 使用 https://github.com/halo-sigs/plugin-oauth2/pull/3 插件配置 OAuth 2 的登录方式。
2. 在个人资料中绑定配置的登录方式。
3. 测试登录之后退出,再进行登录。

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

```release-note
None
```
2023-03-23 14:52:34 +00:00
Ryan Wang 066e5e9462
perf: improve layout of comment list item (#3563)
#### What type of PR is this?

/kind improvement
/area console

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

优化评论管理列表项的布局,将被评论页面放置在评论内容上方,看起来更加直观。

before:

<img width="1399" alt="image" src="https://user-images.githubusercontent.com/21301288/226825923-6d2fec5b-c2d9-4d32-8502-255afac7d0ca.png">

after:

<img width="1396" alt="image" src="https://user-images.githubusercontent.com/21301288/226825785-db6e8696-4e99-43c2-b7a9-3e8b1edb09d9.png">

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

Fixes <https://github.com/halo-dev/halo/issues/3377>

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

```release-note
优化 Console 端评论管理列表项的布局
```
2023-03-23 14:04:34 +00:00
Ryan Wang 194850bc80
fix: the issue of local cache not being cleared after saving a new post (#3551)
#### What type of PR is this?

/kind bug
/area console

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

修复新建文章或页面保存后,本地内容缓存可能不会及时清空的问题。

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

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

#### Special notes for your reviewer:

测试方式:

1. 连续创建多篇新的文章,然后反复进入新建页面,观察是否有恢复缓存的提示。

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

```release-note
修复新建文章或页面保存后,本地内容缓存可能不会及时清空的问题。
```
2023-03-23 13:52:36 +00:00
Ryan Wang 4ce5d0c2cf
refactor: use tanstack query to refactor user-related fetching (#3548)
#### 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-23 13:44:34 +00:00
Ryan Wang 0503c5ff2e
perf: disable browser's autocomplete feature for password input field (#3550)
#### What type of PR is this?

/kind improvement
/area console

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

默认禁用 password 输入框的浏览器自动填充,实现方式为默认给 type 为 password 的 input 添加 `autocomplete="new-passwrod"` 属性。如果需要自动填充,手动为组件添加 `autocomplete` 属性即可。

此改动主要是针对非登录表单场景的密码输入框来做优化,在这些场景下,浏览器如果自动填充用户保存的用户名密码,会带来一定的干扰。

<img width="1103" alt="image" src="https://user-images.githubusercontent.com/21301288/226558568-bf617be7-0cd8-44db-a123-f230a2b88181.png">

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

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

#### Special notes for your reviewer:

1. 登录 Console,并将用户名和密码保存在浏览器的密码管理器。
2. 然后进入任意使用了密码输入框的页面,检查是否自动填充了密码。推荐使用 https://github.com/halo-sigs/plugin-s3 测试。

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

```release-note
禁用非登录场景下,密码输入框的浏览器自动填充
```
2023-03-23 13:42:35 +00:00
Ryan Wang b63d2b882c
feat: add i18n supports for console (#3506)
#### What type of PR is this?

/kind feature

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

为 Console 端添加多语言的支持,并默认提供简体中文和英文的语言包。

todolist:

- [x] 完善 Console 的文字语言包翻译。
- [ ] ~~为后端提供的部分数据支持翻译,比如系统设置的表单定义。(实现方式待讨论,这个 PR 先不支持)~~
- [x] 提供语言设置。

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

Fixes #3346 

#### Special notes for your reviewer:

测试方式:

1. 检查各个页面的文字显示是否正常。
2. 测试中英文环境中是否使用了对应的语言包。

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

```release-note
Console 端支持多语言界面
```
2023-03-23 08:54:33 +00:00
guqing 7ca5270238
feat: support the expansion of other authentication methods (#3520)
#### What type of PR is this?
/kind feature
/milestone 2.4.0
/area core

#### What this PR does / why we need it:
支持扩展其他登录方式:
1. 增加 AdditionalWebFilter 扩展点,插件只需要实现此扩展点完成 Filter 逻辑
2. 增加 DynamicMatcherSecurityWebFilterChain 用于将 `apiFilterChain` 的 `SecurityWebFilterChain` 委托给此类,需要认证的请求都会 DynamicMatcherSecurityWebFilterChain 的过滤器进行处理,所以 `AdditionalWebFilter` 可以通过 order 将扩展的过滤器放到这条链上的任何位置。
3. 将表单登录改为实现扩展点的实现
4. 增加 ExtensionPointDefinition 和 ExtensionDefinition 自定义模型用于对扩展点和扩展进行描述
5. 提供 AuthProvider 自定义模型用于记录支持的登录方式提供商
6. 提供 UserConnection 自定义模型用于将第三方登录账号信息与当前系统账户进行绑定

how to test it?
1. 测试表单登录功能是否正常
2. 测试插件的 plugin-oauth-github 的 PR https://github.com/halo-sigs/plugin-oauth-github/pull/3 功能是否正常

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

Fixes #3423

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

```release-note
支持扩展其他的认证方式
```
2023-03-21 03:54:28 +00:00
Ryan Wang e6d2607516
fix: search issue of post tag selection component (#3540)
#### What type of PR is this?

/kind bug
/area console

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

修复 FormKit 的文章标签搜索组件无法使用搜索功能的问题。

<img width="720" alt="image" src="https://user-images.githubusercontent.com/21301288/226311996-8f31bc6c-784e-4bf0-93da-cdc6db935822.png">

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

Fixed https://github.com/halo-dev/halo/issues/3536

#### Special notes for your reviewer:

测试方式:

1. 在文章设置中,测试标签选择输入框的搜索功能是否正常即可。

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

```release-note
修复文章设置中的标签选择组件无法正常搜索的问题。
```
2023-03-20 11:46:26 +00:00
Ryan Wang 2c3f9ef7dc
chore: remove unused vars and imports to fix eslint warning (#3526)
#### What type of PR is this?

/kind improvement
/area console

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

移除 Console 未使用的变量和导入,解决 ESLint 的警告。

<img width="854" alt="image" src="https://user-images.githubusercontent.com/21301288/225866000-f9448643-064a-4d2b-b023-387f81f0ca8e.png">
<img width="877" alt="image" src="https://user-images.githubusercontent.com/21301288/225866074-ead93a6c-f37f-4711-941c-4bdbbfe0fbe7.png">

```release-note
None
```
2023-03-18 04:34:31 +00:00
yang b7702efbed
fix: the rawType of Content was not updated when switching editors (#3516)
#### What type of PR is this?

/kind bug


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

修复在新建文章时,首次切换编辑器后没有设置内容 rawType 资源为对应编辑器类型的问题。

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

Fixes #3512 

#### Special notes for your reviewer:

测试方式:

1. 安装任意一个编辑器插件,比如:https://github.com/halo-sigs/plugin-stackedit
1. 新建文章,选择安装的编辑器。
1. 发布文章。
1. 卸载或者停止编辑器。
1. 重新编辑刚刚创建的文章,如果提示 `未找到符合 markdown 格式的编辑器,请检查是否已安装编辑器插件` 则代表正常。

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

```release-note
修复在新建文章时,首次切换编辑器后没有设置内容 rawType 资源为对应编辑器类型的问题。
```
2023-03-15 03:12:26 +00:00
Ryan Wang 684961023b
perf: add supports for force updating of post and single page settings (#3498)
#### What type of PR is this?

/kind improvement

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

支持强制保存文章和单页面的设置,绕开后端 version 锁的机制,因为目前发现在后端 Reconcile 处理文章较慢时会影响文章的保存。

需要注意的是,这是一个不太合理的处理方式,但目前别无选择。

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

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

#### Special notes for your reviewer:

测试方式:

1. 同时打开多个同文章的编辑页面的窗口。
2. 编辑任意一个窗口的文章设置。
3. 然后再去其他窗口保存,观察是否有异常。

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

```release-note
支持强制保存文章和页面的设置,避免因为 Version 锁的机制导致保存失败。
```
2023-03-12 10:42:15 +00:00
longjuan 0384ed7df5
Make login page use custom favicon (#3484)
<!--  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
/area console
/area core
<!--
添加其中一个类别:
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:
console 端登陆页使用自定义favicon
#### 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/3285

#### Special notes for your reviewer:
在`/actuator/globalinfo`暴露favicon信息,异步获取favicon信息,未获取到数据时浏览器短暂使用默认的`/console/favicon.ico`。
#### 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 端登陆页使用自定义favicon
```
2023-03-09 08:18:12 +00:00
John Niang d192b8c956
Support logging in with encrypted password (#3480)
#### What type of PR is this?

/kind feature
/kind api-change
/area core
/area console
#### What this PR does / why we need it:

This PR creates AuthenticationWebFilter by ourselves instead of using FormLoginSpec directly. Because we have no chance to customize `org.springframework.security.web.server.authentication.ServerAuthenticationConverter` currently.

Meanwhile, we provide CryptoService(RSA) to generate key pair, get public key and decrypt message encrypted by public key.

There is a new endpoint to get public key which is used by console:

```bash
❯ curl localhost:8090/login/public-key -s | jq .
{
  "base64Format": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouDtdDS751U8NcWfAAQ53ijEtkLnIHh1Thqkq5QHGslq2hBmWnNsIZFnc/bwVp00ImKLV2NtLgOuv5RRNS5iO+oqRvfOGdXLdW2nzqU2towtaMkYTEMJrsNMZp5BUNCGI7Z2xpPBZzvys0d1BvcpNFobX/LkOtcTyfB1DRp9ZAhxRYOZkTkCzaKo+6X11lnMexTsB3exzaXk9rRZ8XoJ+dWT5G0URs/PF2cDkgxuMdOFJzqDsb9HQYGI/etajdCcKs7mZsjmDgse9Cw9/3mgoTNnEGx9Wl89S0P+FJ7T5DALGt3/nSAlzmKdXJNBLf6Q44ogFpTWdq27JpJD3SKicQIDAQAB"
}
```

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

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

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

```release-note
支持登录时密码加密传输
```
2023-03-08 09:52:12 +00:00
Ryan Wang 4ba3cfb64d
feat: add support for refreshing search engine indexes (#3475)
#### What type of PR is this?

/kind feature

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

在 Console 端仪表盘的快捷访问中添加刷新搜索引擎索引的入口。

![2023-03-07 13 48 52](https://user-images.githubusercontent.com/21301288/223332020-6d4e143e-e024-46ce-a84c-96ea3813cec0.gif)

#### Special notes for your reviewer:

1. 测试仪表盘快捷访问中的刷新搜索引擎操作是否可以正常调用接口即可。
2. 分配一个不包含文章管理权限的角色给某个用户,检查是否可以看到这个刷新的入口。

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

```release-note
Console 端仪表盘的快捷访问中添加刷新搜索引擎索引的入口。
```
2023-03-08 09:32:11 +00:00
wzrove 6ace36289b
fix: the issue of blank content when opening a saved post in StackEdit editor plugin for editing (#3468)
#### What type of PR is this?
/kind bug

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

在编辑器初始化前赋值,可以保证缓存的历史数据附在StackEdit的url上。

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

Fixes (https://github.com/halo-dev/halo/issues/3105)

#### Screenshots:
![test](https://user-images.githubusercontent.com/88016243/222957520-b7980ff9-aeeb-4e98-9dde-50eb307f02eb.gif)

#### Special notes for your reviewer:

+ 新建文章,切换为 StackEdit 编辑器
+ 输入一些内容保存/发布文章
+ 回到文章列表,重新点进刚才的文章
+ 重复步骤3,输入的内容还在

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


```release-note
修复 Console 端在使用三方编辑器插件编辑文章时可能出现无法加载内容的问题。
```
2023-03-08 02:50:11 +00:00
johnniang 64919f9a1b Move root to console
Signed-off-by: johnniang <johnniang@fastmail.com>
2023-03-02 15:49:22 +08:00