Commit Graph

4257 Commits (170cf4e4121178a940a22a55683153c8559d8435)

Author SHA1 Message Date
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
Ryan Wang 4fcaa2a5e2 chore: bump dependencies
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-20 11:33:03 +08:00
Ryan Wang 69c309ea11 refactor: rename api group for custom api (halo-dev/console#613)
#### 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/2419

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

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

#### Screenshots:

#### Special notes for your reviewer:

具体变更请查阅:https://github.com/halo-dev/halo/pull/2419

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

```release-note
None
```
2022-09-20 02:44:08 +00:00
guqing a39cf2645e
refactor: rename api group for custom api (#2419)
#### What type of PR is this?
/kind improvement
/kind api-change
/area core
/milestone 2.0

#### What this PR does / why we need it:
- 修改管理后台使用的自定义 API 的 group 为 `api.console.halo.run`
- 面向三方应用的自定义 API 的 group 为 `api.halo.run`
- 插件的自定义 API 的 group 为 `api.plugin.halo.run`

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

Fixes #2418

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

```release-note
None
```
2022-09-19 16:24:35 +00:00
Ryan Wang e2db8005b7 feat: support for deleting post
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-19 20:36:15 +08:00
Ryan Wang dea60b0ebc feat: add comment management support (halo-dev/console#612)
#### 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/2412

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

Fixes halo-dev/halo#2409

#### Screenshots:

#### Special notes for your reviewer:

测试方式:

1. 本地的 halo-admin 仓库需要 checkout 到当前分支。
2. 后端需要 checkout 到 <https://github.com/halo-dev/halo/pull/2412>。
3. 使用最新的主题:<https://github.com/halo-sigs/theme-anatole>。
4. 更新 halo-admin 的依赖和构建 packages:`pnpm install` `pnpm build:packages`
5. 启用主题之后在文章详情页面即可看到评论框。
6. 测试主题端的评论和后台评论的管理。

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

```release-note
None
```
2022-09-19 09:26:50 +00:00
guqing 9fdc9c1bb7
feat: add comment custom endpoint for list view (#2412)
#### 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,支持过滤和排序条件
- 新增评论 Reconciler 以支持:
  -  是否有新回复
  - 最新回复时间
  - 上次查看回复时间
  - 未读回复数量
- 新增评论主体信息获取扩展点 `CommentSubject` 用于获取评论的 subject 信息 ,默认实现 `Post` 模型和 `SinglePage`
#### Which issue(s) this PR fixes:
Fixes #2409

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?
```release-note
新增评论列表自定义 API (包括回复)并支持过滤和排序条件
新增发表评论和回复的自定义 API
支持是否有新回复及未读回复数量
```
2022-09-19 08:38:13 +00:00
guqing 510f155e05
feat: count the number of posts under categories and tags (#2402)
#### What type of PR is this?
/kind feature
/milestone 2.0
/area core

#### What this PR does / why we need it:
统计分类和标签下的文章
#### Which issue(s) this PR fixes:
Fixes #2401

#### Special notes for your reviewer:
how to test it?
1. 创建一个多层级的分类及若干文章,查看分类的 status.posts 是否包含当前及其子分类下的文章
2. 创建标签,并将其分配给若干文章,查看标签的 status.posts 是否正确
3. 在主题端查看分类和标签包含的文章数量是否正确,需要注意的是主题端显示的文章数量只包含已发布且 visiable 为 public 且未删除的

/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-19 02:22:12 +00:00
Ryan Wang 17759ee9a5 feat: editor support to open attachment selector
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-18 15:59:19 +08:00
guqing a0d55c58f6
feat: theme side provides variables for theme and some system settings (#2406)
#### What type of PR is this?
/kind feature
/milestone 2.0
/area core

#### What this PR does / why we need it:
提供当前使用主题(预览或激活)的 configMap 变量和部分系统设置等变量。

提供了以下变量:
- `${theme}` 当前主题的信息,theme.yaml 
- `${theme.config}` 获取当前主题的设置项
- ~`${siteSetting}`~ `${site}` 提供必要系统变量

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

#### Special notes for your reviewer:
how to test it?
再任意主题模板上使用表达式获取例如:`${theme}`,`${theme.config.sns?.email}`

/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

```release-note
None
```
2022-09-15 06:52:13 +00:00
Ryan Wang e5389379c6 refactor: move entity component to @halo-dev/components package
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-14 11:17:15 +08:00
Ryan Wang 69c37e5b4f Merge branch 'next' of github.com:halo-dev/halo-admin into next 2022-09-14 10:32:05 +08:00
Ryan Wang 297dbfb962 feat: add status dot component (halo-dev/console#611)
#### 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:


#### Screenshots:

#### Special notes for your reviewer:

https://halo-admin-ui-git-fork-ruibaby-feat-status-dot-ec0d53-halo-dev.vercel.app/story/src-components-status-statusdot-story-vue?variantId=src-components-status-statusdot-story-vue-1

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

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

```release-note
None
```
2022-09-13 13:30:11 +00:00
Ryan Wang 2788261001 fix: display styles of pagination component
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-13 16:25:45 +08:00
Ryan Wang bcfe7a52ee feat: add the entity component as a list item (halo-dev/console#609)
#### What type of PR is this?

/kind feature
/milestone 2.0

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

添加 Entity 和 EntityField 组件,作为列表项使用。

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

#### Screenshots:

#### Special notes for your reviewer:

测试方式:检查后台各个页面的列表样式和功能是否正常。

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

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

```release-note
None
```
2022-09-13 04:08:12 +00:00
guqing 069ff04c84
refactor: theme route pattern and permalink indexer (#2397)
#### What type of PR is this?
/kind improvement
/milestone 2.0
/area core

#### What this PR does / why we need it:
使用正则细化主题端路由并优化

如何测试:
1. 在 admin 系统设置中修改文章文章详情页访问规则
2. 根据规则访问文章详情页,如规则为:`/{year:\d{4}}/{month:\d{2}}/{slug}` 而存在文章 slug 为 fake-slug 且发布日期为 2022-09-08 则 /2022/09/fake-slug 能访问, /2022/9/fake-slug 则不能访问
使用规则 `/{year:\d{4}}/{month:\d{2}}/{day:\d{2}}/{slug}`时 /2022/09/08/fake-slug 能访问 /2022/09/8/fake-slug ,则不能访问
#### Which issue(s) this PR fixes:
Fixes #2396

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?
```release-note
None
```
2022-09-13 03:58:10 +00:00
Ryan Wang 0a4d31fa33 perf: improve modal component style 2022-09-11 17:10:25 +08:00
Ryan Wang 780cb20def feat: add avatar component 2022-09-11 01:26:26 +08:00
Ryan Wang cccb7d07ae perf: improve functional page ui 2022-09-11 00:18:53 +08:00
Ryan Wang 24a6b9baec feat: display post count under category and tag 2022-09-10 23:35:21 +08:00
Ryan Wang 9668c429f1 perf: improve system settings page 2022-09-10 23:24:58 +08:00
Ryan Wang c278e85d6c perf: improve theme detail and settings page 2022-09-10 23:11:15 +08:00
Ryan Wang 088196e6ae perf: improve plugin detail and settings page 2022-09-10 17:23:51 +08:00
Ryan Wang bcd997231a feat: refine post filtering 2022-09-10 00:32:46 +08:00
Ryan Wang ea10523dd5 perf: auto focus when opening editing forms 2022-09-09 21:48:07 +08:00
Ryan Wang c26741e383 chore: update gitpod config 2022-09-09 19:17:22 +08:00
Ryan Wang 58c4b78067 chore: bump dependencies 2022-09-09 19:04:04 +08:00