Commit Graph

4333 Commits (f622b1787c3264fe1aefc2c312b312d7f0023430)

Author SHA1 Message Date
Ryan Wang e954af88ec
perf: change the default sort order of articles (#2480)
#### What type of PR is this?

/kind improvement
/milestone 2.0
/area core

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

修改文章列表的默认排序规则,之前是按照创建时间(createTime)升序,现在改为降序。即最新创建的文章在前面。

#### Special notes for your reviewer:

测试方式:

连续创建多篇文章,检查前后台的文章排序是否是最新的在最前面。

/cc @halo-dev/sig-halo 

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

```release-note
None
```
2022-09-28 06:52:16 +00:00
Ryan Wang bd09cb3815 feat: add global search support (halo-dev/console#623)
#### What type of PR is this?

/kind feature
/milestone 2.0

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

添加全局搜索框支持。

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

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

#### Screenshots:

<img width="1920" alt="image" src="https://user-images.githubusercontent.com/21301288/192448624-fbef4e58-7c0e-4c24-b29e-4dd6eba9fa4f.png">
<img width="1920" alt="image" src="https://user-images.githubusercontent.com/21301288/192448660-369e19a4-747d-45ad-9056-162f5c8e01be.png">
<img width="1920" alt="image" src="https://user-images.githubusercontent.com/21301288/192449009-6b856d82-e7a6-4e93-b2fa-d0d0c7a58ebf.png">


#### Special notes for your reviewer:

/cc @halo-dev/sig-halo-console 

测试方式:

1. 本地 Console 切换到当前 PR 的分支,需要 `pnpm install && pnpm build:packages`
2. 使用 Ctrl + K(Windows/Linux) 或者 Command + K(macOS)调起搜索框
3. 可以使用键盘上/下键(或者 Ctrl + J / Ctrl + K)选择搜索条目,回车键确认选择。

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

```release-note
后台添加全局搜索的支持
```
2022-09-28 06:50:16 +00:00
Ryan Wang 91793a7e03
perf: refine the extension definition for system setting (#2477)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.0

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

完善系统设置表单的资源定义。

- 副标题的验证改为取消必填
- 优化主题路由规则显示名称
- 移除暂未实现的用户注册相关设置
- 代码注入设置的文案

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

Fixes #

#### Special notes for your reviewer:

/cc @halo-dev/sig-halo 

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

```release-note
完善系统设置表单的资源定义
```
2022-09-28 03:34:16 +00:00
Ryan Wang d68f1481db fix: post editor generates toc causing cursor movement error
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-28 11:12:55 +08:00
Ryan Wang 19bb0ec1df chore: bump packages version
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-27 22:01:44 +08:00
Ryan Wang 29a5557f69 perf: disable transition of dashboard widgets
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-27 21:58:33 +08:00
John Niang 11d91712f6
Fix empty listing of single page (#2474)
#### What type of PR is this?

/kind bug
/area core
/milestone 2.0

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

Fix empty listing of single page while using PostgreSQL.

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

```release-note
None
```
2022-09-27 09:46:15 +00:00
Ryan Wang fb501a064c feat: change favicon to halo logo
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-27 17:30:14 +08:00
Ryan Wang 0e2f0599fd refactor: grant permissions to user
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-27 17:13:20 +08:00
Ryan Wang a77fc3b2a5 perf: refine user detail page
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-27 16:47:13 +08:00
Ryan Wang f73f3e9ebf refactor: hide some features
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-27 16:23:45 +08:00
Ryan Wang 9c77b77023 feat: add deleting theme setting and configMap support (halo-dev/console#621)
#### What type of PR is this?

/kind feature
/milestone 2.0

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

支持删除主题的时候删除对应的 Setting 和 ConfigMap 资源。

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

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

#### Screenshots:

<img width="1004" alt="image" src="https://user-images.githubusercontent.com/21301288/191994812-0ad32b23-e461-4286-9bd7-ce12b413f580.png">

#### Special notes for your reviewer:

测试方式:

1. 安装一个带有设置项的主题并做一定的配置。
2. 选择**卸载并删除配置**的选项。
3. 重新安装主题,检查设置项是否已经恢复为默认。

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

```release-note
支持卸载主题时,删除对应的 Setting 和 ConfigMap 资源。
```
2022-09-27 07:46:15 +00:00
Ryan Wang d55cbe8656 feat: add reload theme setting support (halo-dev/console#620)
#### What type of PR is this?

/kind feature
/milestone 2.0

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

支持重载主题设置,以便开发主题的时候重载配置。适配 https://github.com/halo-dev/halo/pull/2456

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

Fixes halo-dev/halo#2426

#### Screenshots:

<img width="1664" alt="image" src="https://user-images.githubusercontent.com/21301288/191891908-64e25ec9-968f-4b56-95f8-d1479db0f31b.png">

#### Special notes for your reviewer:

/cc @halo-dev/sig-halo-admin 

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

```release-note
None
```
2022-09-27 07:44:17 +00:00
John Niang 1fc37673f7
Support running Halo with PostgreSQL (#2472)
#### What type of PR is this?

/kind feature
/area core
/milestone 2.0

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

Add PostgreSQL script to support running Halo with PostgreSQL database. BTW, there was a weird issue (emty posts even if there are some posts created) while listing Post, and I fixed it in this PR.

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

Partial Fixes https://github.com/halo-dev/halo/issues/2464

#### Special notes for reviewers

Steps to test:

1. Start up PostgreSQL. e.g.:

    ```yaml
    version: '3.1'
    
    services:
    
      db:
        image: postgres
        restart: always
        environment:
          POSTGRES_PASSWORD: openpostgresql
        ports:
          - 5432:5432
    
      adminer:
        image: adminer
        restart: always
        ports:
          - 8080:8080
    ```
    
    ```bash
    docker-compose -f postgresql.yaml up
    ```

2. Start Halo with `postgresql` profile. e.g.:

    ```bash
    ./gradlew bootRun --args="--spring.profiles.active=postgresql"
    ```

3. Validate the functionality of Halo

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

```release-note
None
```
2022-09-27 02:24:15 +00:00
guqing 264a4330c3
feat: add error log when permalink exists (#2460)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0

#### What this PR does / why we need it:
注册 permalink 到 Permalinker 时校验 permalink 是否已经存在,如果存在则记录错误日志且不向 PermalinkIndexer 添加记录

TODO:
- [ ] 后续增加事件功能后检查到 permalink 重复则发送记录事件的 event 来代替日志记录
#### Which issue(s) this PR fixes:

A part of #2454

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-27 02:16:15 +00:00
guqing 721cddff5d
fix: post excerptare generated using only published content that is in use (#2457)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0

#### What this PR does / why we need it:
文章自动摘要只从正在使用的已发布版本的内容中取得
#### Which issue(s) this PR fixes:

Fixes #2452

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-26 08:28:19 +00:00
guqing ed8dddbafa
feat: add comment list APIs for theme-side (#2433)
#### What type of PR is this?
/kind feature
/milestone 2.0
/area core
/kind api-change

#### What this PR does / why we need it:
- 新增主题端评论列表功能
- 新增 `<halo:comment />` html tag 用于扩展评论组件
- 插件可以实现 `CommentWidget` 扩展点来渲染评论组件 html 块,以替换 `<halo:comment />` 标签
#### Which issue(s) this PR fixes:

Fixes #2432

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
新增主题端评论列表功能
```
2022-09-26 08:26:13 +00:00
Ryan Wang 38f9762955 feat: add name attribute for formkit component
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-26 16:20:17 +08:00
Ryan Wang 597317c36d feat: add submit button component to support shortcut keys for form submission
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-26 15:48:55 +08:00
Ryan Wang 94f9dc5f69 perf: refine theme detail page
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-26 14:50:00 +08:00
Ryan Wang 7f8072419a feat: add support for deleting an attachment
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-26 13:24:56 +08:00
Ryan Wang e458385968 Merge remote-tracking branch 'origin/next' into next 2022-09-26 13:17:52 +08:00
Ryan Wang 9050aa0176 refactor: external static libraries
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-26 13:16:40 +08:00
Ryan Wang 9cf0313456 fix: unable to load attachment images in production environment (halo-dev/console#622)
#### What type of PR is this?

/kind bug
/milestone 2.0

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

修复在生产模式下,附件列表的图片无法及时加载的问题。

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

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

#### Special notes for your reviewer:

/cc @halo-dev/sig-halo-console 

测试方式:

1. 本地 console 仓库切换到此 PR 的分支。
2. 构建生产资源:`pnpm build`
3. 参考 https://github.com/halo-dev/halo/pull/2453 配置本地 Halo 代理 Console
4. 访问 <http://localhost:8090/console>,切换到附件页面。
5. 测试上传图片之后是否可以正常加载。

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

```release-note
None
```
2022-09-26 02:46:14 +00:00
John Niang 73c66289e0
Bump version of dependencies (#2466)
#### What type of PR is this?

/kind cleanup
/area core
/milestone 2.0

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

This PR mainly upgrades version of dependencies and removes unused dependencies.

See the following references for more:

- https://github.com/spring-projects/spring-boot/releases/tag/v3.0.0-M5
- https://github.com/jhy/jsoup/releases/tag/jsoup-1.15.3
- https://github.com/spring-projects/spring-security/issues/6613

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

```release-note
None
```
2022-09-25 11:22:14 +00:00
Ryan Wang c3452a1cd0 perf: turn off preview mode when closing attachment detail modal
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-25 17:05:44 +08:00
Ryan Wang 9c418f8532 perf: improve the table of content in the post editor
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-24 22:51:33 +08:00
John Niang 1da89f04e2
Fix the problem of generating permalink due to special filename (#2462)
#### What type of PR is this?

/kind bug
/area core
/milestone 2.0

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

Encode path of attachment permalink instead of using URI#resolve methods directly.

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

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

#### Special notes for reviewers

Steps to test:

1. Create a file with special name, e.g.: `hello world.txt`
2. Upload the file and see the permalink

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

```release-note
None
```
2022-09-24 04:50:15 +00:00
Ryan Wang 556b452648 perf: refine dashboard widgets
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-23 22:50:06 +08:00
Ryan Wang 3015587c81 perf: optimize the UI of the global scrollbar
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-23 22:29:50 +08:00
Ryan Wang 7e63538403 perf: hide the display of theme dependency plugins
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-23 22:23:48 +08:00
Ryan Wang c81c535884 perf: refine plugin detail page
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-23 22:14:40 +08:00
Ryan Wang 5d7d8e2756 chore: bump dependencies
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-23 18:08:21 +08:00
Ryan Wang 0380b2d6e4 perf: add name attribute for formkit form component
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-23 18:03:55 +08:00
guqing 02cc2fa7be
feat: add theme setting reload API (#2456)
#### What type of PR is this?
/kind feature
/milestone 2.0
/area core
/kind api-change

#### What this PR does / why we need it:
新增主题设置重载 API,调用此 API 会从主题文件中重新加载 settings.yaml 复盖原有记录,便于主题开发和测试
插件不需要此功能,配置了 `fixedPluginPath` 后每次重启都会加载新的配置项
#### Which issue(s) this PR fixes:

Fixes #2426

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-23 09:38:13 +00:00
Ryan Wang 5a4aaaf9aa feat: refine post filtering (halo-dev/console#615)
#### What type of PR is this?

/kind feature
/milestone 2.0

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

完善文章的筛选,支持关键词搜索,以及排序。适配 https://github.com/halo-dev/halo/pull/2436

todo list:

- [x] 更新 `@halo-dev/api-client`

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

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

#### Special notes for your reviewer:

/hold 

等待 https://github.com/halo-dev/halo/pull/2436 合并,以及 https://github.com/halo-dev/halo/issues/2439 被解决。

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

```release-note
完善后台的文章筛选功能
```
2022-09-23 03:18:12 +00:00
guqing f0892b2f4d
feat: add theme link expression dialect (#2438)
#### What type of PR is this?
/kind feature
/milestone 2.0
/area core

#### What this PR does / why we need it:
允许主题模板在 HTML 或 JavaScript 片段中使用表达式对象获得链接:
- `${#theme.assets('/js/main.js'))}`
- `${#theme.route('/categories')}`

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

Fixes #2435

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-23 03:12:13 +00:00
John Niang d40626b07b
Support configuring console location to access console (#2453)
#### What type of PR is this?

/kind feature
/area core
/milestone 2.0

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

Support configuring console location to access console. By default, `classpath:/console/` location will be used. If anyone want to debug locally, you can configure the console properties as following:

```yaml
halo:
  console:
    location: file:/home/xxx/path/to/halo-admin/dist/ # The trailing slash is required or it will be treated with a file instead of a folder.
```

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

```release-note
None
```
2022-09-22 14:22:13 +00:00
Ryan Wang 6a20897675 feat: adding random suffix to static resources at build time (halo-dev/console#618)
#### What type of PR is this?

/kind feature
/milstone 2.0

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

在构建时,为静态资源添加随机字符串后缀。防止升级版本之后缓存不会及时更新。

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

#### Special notes for your reviewer:

/cc @halo-dev/sig-halo-admin 

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

```release-note
None
```
2022-09-22 13:56:12 +00:00
Ryan Wang 3b5b41eb1d refactor: improve login-related logic (halo-dev/console#617)
#### What type of PR is this?

/kind improvement
/milestone 2.0

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

适配 https://github.com/halo-dev/halo/pull/2453

1. 将生产构建的 base url 更改为 console
2. 优化登录之后跳转的逻辑。

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

#### Special notes for your reviewer:

/cc @halo-dev/sig-halo-admin

测试方式:

1. 在本地根据此 PR 构建生产版本(pnpm build)
2. 根据 https://github.com/halo-dev/halo/pull/2453#issue-1381947867 中的描述修改配置文件。
3. 访问 http://localhost:8090/console

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

```release-note
None
```
2022-09-22 12:46:12 +00:00
Ryan Wang 9e38c43b84 refactor: move api-client to core
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-22 16:46:32 +08:00
guqing 95b7a273f8
feat: create a configmap based on the setting definition when installing a theme (#2440)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0
#### What this PR does / why we need it:
- 安装主题后通过读取主题 Setting 模型中的默认值初始化一个 ConfigMap
- 修改了 Setting 模型的 spec  结构(多了一层 forms 嵌套),配置示例如下:
```yaml
apiVersion: v1alpha1
kind: Setting
metadata:
  name: theme-anatole-setting
spec:
  forms:
    - group: basic
      label: 基本设置
      formSchema:
        - $formkit: select
          name: sidebar_width
          label: 侧边栏宽度
          options:
            "20%": 20%
            "30%": 30%
            "40%": 40%
            "50%": 50%
          value: "40%"
```

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

Fixes #2414

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-22 08:26:13 +00:00
Ryan Wang 934850cbbc refactor: structure of the setting extension (halo-dev/console#616)
#### What type of PR is this?

/kind improvement
/milestone 2.0
/kind api-change

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

重构 Setting 模型的结构,适配 https://github.com/halo-dev/halo/pull/2440

todo list:

- [x] 更新 `@halo-dev/api-client`

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

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

#### Special notes for your reviewer:

测试方式:

1. 本地 admin 仓库切换到当前 PR 的分支,halo 仓库切换到 https://github.com/halo-dev/halo/pull/2440 PR 的分支。
2. 测试后台各个表单功能是否正常。
3. 主题设置表单可使用 https://github.com/halo-sigs/theme-anatole/pull/2 PR 的分支进行测试。

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

```release-note
None
```
2022-09-22 08:26:13 +00:00
guqing cda6402780
feat: any user who accesses the system has the anonymous role (#2443)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0

#### What this PR does / why we need it:
- 未认证用户在系统中被定义为匿名用户(username=anonymousUser),它在授权系统中具有 principle=anonymousUser 且 role=anonymous,key=[secure randomly generated key]
- 未认证用户和已认证用户都将被赋予一个匿名用户角色

参考:
- [Spring security#ServerHttpSecurity.AnonymousSpec](70460ca009/config/src/main/java/org/springframework/security/config/web/server/ServerHttpSecurity.java (L4387))
- [Spring security reactive AnonymousAuthenticationWebFilter](70460ca009/web/src/main/java/org/springframework/security/web/server/authentication/AnonymousAuthenticationWebFilter.java (L46))


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

Fixes #

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?
```release-note
None
```
2022-09-22 06:58:12 +00:00
guqing bfbc4ec70a
feat: add more query predicates for post list (#2436)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0

#### What this PR does / why we need it:
文章列表新增更过的查询条件
- publishPhase 状态
- visible 可见性
- keyword 关键词
新增排序(sort)(可逆序 sortOrder)
- 创建时间(默认创建时间逆序)
- 发布时间

关键词过滤暂不管文章内容,否则需要查询所有文章内容判断是否包含字符串
排序暂无法支持评论数量和阅读量,这两个属性属于文章统计需要 #2430 的支撑
#### Which issue(s) this PR fixes:

Fixes #2424

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-22 06:14:12 +00:00
Ryan Wang 9e273e14aa feat: update page title when route change
Close https://github.com/halo-dev/halo/issues/2431
2022-09-22 12:16:11 +08:00
guqing eee81e78f1
fix: category and tag query parameters in post query (#2441)
#### What type of PR is this?
/kind api-change
/kind improvement
/area core
/milestone 2.0
#### What this PR does / why we need it:
修复文章列表的分类、标签查询参数方法名和取值不一致导致无效问题
#### Which issue(s) this PR fixes:

Fixes #2439

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-21 13:58:12 +00:00
guqing ac8dd74211
feat: the ConfigMap named system to store user-defined configurations (#2415)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0

#### What this PR does / why we need it:
将原来系统默认的系统配置 system 改名为 system-default, 并使用名为 system 的 ConfigMap 来存储用户自定义的系统配置。系统最终配置为用户自定义系统配置 Merge Patch 系统默认配置的结果。
see also #2304
#### Which issue(s) this PR fixes:

Fixes #2304

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-21 04:06:10 +00:00
Ryan Wang eedf682974 feat: support for deleting user
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-20 17:56:15 +08:00
John Niang 1714f8edb2
Refactor CustomEndpoint for customizing GroupVersion (#2429)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.0.0

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

Refactor CustomEndpoint for customizing GroupVersion.

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

```release-note
None
```
2022-09-20 06:38:09 +00:00