Commit Graph

47 Commits

Author SHA1 Message Date
Ryan Wang
caf5ecd4cb Bump vue and related-deps version (#7949)
* Bump vue and related-deps version

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

* Update @intlify/unplugin-vue-i18n to v11.0.1

---------

Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-11-20 14:42:18 +08:00
Ryan Wang
e446512565 Add route-based quick action support to dashboard (#7939)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.22.x

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

Introduces DashboardWidgetQuickActionRouteItem type to allow quick actions that navigate to routes instead of executing callbacks.

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

```release-note
None
```
2025-11-17 02:02:54 +00:00
Ryan Wang
ac88ee70cb Rename @halo-dev/console-shared to @halo-dev/ui-shared (#7926)
#### What type of PR is this?

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

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

See #7925 

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

Fixes #7925 

#### Special notes for your reviewer:

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

```release-note
将 `@halo-dev/console-shared` 重命名为 `@halo-dev/ui-shared`
```
2025-11-10 16:20:41 +00:00
Ryan Wang
2d50736719 Expose dayjs in utils.date to allow users to call dayjs methods directly (#7906) 2025-11-06 12:24:20 +08:00
Ryan Wang
ad3b5c0680 Refactor UUID generation to shared utils.id.uuid (#7898) 2025-11-05 11:13:35 +08:00
Ryan Wang
fc475f6bf9 Add shared event bus for plugin config updates (#7895) 2025-11-04 22:08:45 +08:00
Ryan Wang
6d577f7c4c Improve structure and JSDoc of shared package (#7881)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.22.x

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

Improve structure and JSDoc of `@halo-dev/console-shared` package

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

```release-note
None
```
2025-10-29 04:00:17 +00:00
Ryan Wang
8075cec7ef Remove deprecated FunctionalPage interface and hooks (#7879)
* Remove deprecated FunctionalPage interface and hooks

* Remove pages state export from shared index

The export for './states/pages' was removed from the shared package index, likely because it is no longer needed or has been deprecated.
2025-10-28 21:48:54 +08:00
Ryan Wang
714cdddf61 Refactor attachment handling to use AttachmentSimple (#7865)
#### What type of PR is this?

/area ui
/kind api-change
/kind cleanup
/milestone 2.22.x

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

Unified attachment data structures by introducing AttachmentSimple and updating AttachmentLike to support it. Refactored utility functions and editor components to use new conversion and extraction methods, simplifying attachment processing and improving type safety. Removed legacy AttachmentAttr and related code, ensuring consistent handling of attachments across image, audio, video, and link features.

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

```release-note
None
```
2025-10-27 13:12:17 +00:00
Ryan Wang
e53bfd4edb Refactor user and global info stores to shared package (#7858)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.22.x

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

This PR moves the `currentUser` and `globalInfo` stores to the `@halo-dev/console-shared` package, making them easily accessible for plugins.

In addition, it’s now possible for plugins to define their own global stores using Pinia.

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

```release-note
- 在 `@halo-dev/console-shared` 包中提供 `stores` 对象,包含 currentUser 和 globalInfo。
- 支持在插件的 UI 中使用 Pinia 定义全局 Store
```
2025-10-23 10:32:14 +00:00
Ryan Wang
cc4ba4a361 Refactor permission checks to use shared utils (#7853)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.22.x

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

This PR introduces a developer-friendly utility for checking UI permissions, which is also exposed for use by plugins.

Usage:

```ts
import { utils } from "@halo-dev/console-shared"

utils.permission.has(['any:permission'])
```

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

```release-note
在 `@halo-dev/console-shared` 包中提供 UI 权限检查工具
```
2025-10-23 09:44:13 +00:00
Ryan Wang
0c2ccc7e00 Add JSDoc comments to attachment and date utils (#7850)
Added detailed JSDoc comments and usage examples to methods in AttachmentUtils and DateUtils. This improves code readability and provides better context and guidance for developers using these utility functions.
2025-10-23 11:26:22 +08:00
Ryan Wang
75ae6215a0 Refactor date and attachment utils to shared package (#7847)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.22.x

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

This PR introduces date and attachment utilities into the `@halo-dev/console-shared` package. This makes it convenient for plugins to share and reuse these common functions.

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

```release-note
在 `@halo-dev/console-shared` 包中提供统一的 date 和 attachment 工具
```
2025-10-22 10:02:14 +00:00
Ryan Wang
1d81a73430 Upgrade Node.js to v22 (#7846)
#### What type of PR is this?

/area ui
/kind cleanup

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

Upgrade Node.js to 22

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

```release-note
None
```
2025-10-22 08:38:13 +00:00
Ryan Wang
1cb0629364 Add eslint-plugin-unicorn and use node: protocol imports (#7845)
#### What type of PR is this?

/area ui
/kind cleanup

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

Integrated [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) into the ESLint config and added related rules. Updated all imports of core Node.js modules to use the 'node:' protocol for improved compatibility and linting.

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

```release-note
None
```
2025-10-22 08:36:14 +00:00
Ryan Wang
b822de2d78 Add ui packages publish workflow (#7743) 2025-09-09 18:13:33 +08:00
Ryan Wang
09cd1f7f74 Comments now support rich text formatting display (#7674)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.21.x

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

Comments now support rich text format display.

Still need to:

1. Test for XSS vulnerabilities
2. Optimize content styling
3. Editor

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

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

#### Special notes for your reviewer:

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

```release-note
评论内容支持以富文本格式显示
```
2025-08-12 06:26:47 +00:00
Ryan Wang
5e28c6db0c chore: update prettier and simplify config (#7589)
#### What type of PR is this?

/area ui
/kind cleanup

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

Upgrade Prettier and related plugins, and simplify Prettier configuration.

Now, formatting for all packages will be managed by Prettier in the project root directory.

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

```release-note
None
```
2025-06-25 09:47:21 +00:00
Ryan Wang
1826c7dcbb chore: migrate eslint 9 (#7588)
#### What type of PR is this?

/area ui
/kind cleanup

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

Migrate to ESLint 9, use flat config file, and simplify ESLint configuration.

Now, linting for all packages will be managed by the configuration in the project root directory.

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

```release-note
None
```
2025-06-25 00:37:20 +00:00
Ryan Wang
7b257917bc chore: use rolldown-vite (#7489)
#### What type of PR is this?

/area ui
/kind improvement

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

Using rolldown-vite to improve the build speed of the UI project, but some features are still not supported and need to wait.

before:

<img width="953" alt="image" src="https://github.com/user-attachments/assets/551b202e-c486-44e9-9737-56de8e2a8ed2" />

after:

<img width="881" alt="image" src="https://github.com/user-attachments/assets/5750d242-27d6-43e6-ab82-0c11644d4b35" />

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

Fixes #

#### Special notes for your reviewer:

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

```release-note
None
```
2025-06-19 16:31:11 +00:00
Ryan Wang
a91d072cdf feat: make field items of singlePage data list extendable (#7553)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-06-15 12:03:07 +08: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
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
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
John Niang
44cae84bc7 Bump versions to 2.21.0-SNAPSHOT (#7448)
#### What type of PR is this?

/kind cleanup
/area core
/milestone 2.21.x

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

This PR bumps versions to 2.21.0-SNAPSHOT, including ui packages and API client.

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

```release-note
None
```
2025-05-19 04:33:40 +00:00
Ryan Wang
04c27db24e chore: bump ui packages version
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-05-15 12:07:19 +08:00
Ryan Wang
d0949c8d7b chore: bump vue-related dependencies (#7210)
#### What type of PR is this?

/area ui
/kind cleanup
/milestone 2.20.x

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

Bump vue related dependencies

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

```release-note
None
```
2025-01-21 03:20:12 +00:00
Ryan Wang
ddaf7b0dce chore: remove unused dependencies and configuration files (#6917)
#### What type of PR is this?

/area core
/kind cleanup

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

Remove unused dependencies and configuration files

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

```release-note
None
```
2024-10-22 06:54:29 +00:00
Ryan Wang
1852784a4c chore: bump vue version to 3.5.11 (#6764)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

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

Bump vue version to [3.5.11](https://github.com/vuejs/core/blob/main/CHANGELOG.md#3511-2024-10-03)

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

```release-note
None
```
2024-10-04 12:22:43 +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
John Niang
7281a48325 Prepare for developing 2.20.0 (#6575)
#### What type of PR is this?

/kind cleanup
/area core

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

This PR bumps all version to 2.20.0 to prepare for next development.

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

```release-note
None
```
2024-09-02 09:41:37 +00:00
Ryan Wang
a938712739 chore: bump vite-related dependencies (#6482)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.19.x

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

Bump vite-related dependencies

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

```release-note
None
```
2024-08-20 03:28:47 +00:00
困困鱼
4a4f8b655d feat: make comment and reply list item operations extendable (#6438)
#### What type of PR is this?

/area console
/kind feature
/milestone 2.18.x

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

评论和回复管理列表项的操作按钮支持被插件扩展。
![image](https://github.com/user-attachments/assets/20174eda-ec46-4ab2-b1d9-c27e4aaa6cba)
![image](https://github.com/user-attachments/assets/ac44c221-71f5-4077-8116-a92245c22697)


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

Fixes #6392 

#### Special notes for your reviewer:

需要评论和回复的关于列表的已有功能是否正常。

如果需要测试扩展点是否有效,可以使用此插件测试:[plugin-starter-1.0.0-SNAPSHOT.jar.zip](https://github.com/user-attachments/files/16482348/plugin-starter-1.0.0-SNAPSHOT.jar.zip)

```
export default definePlugin({
  components: {},
  routes: [],
  extensionPoints: {
    "comment:list-item:operation:create": (comment: Ref<ListedComment>) => {
      return [
        {
          priority: 21,
          component: markRaw(VDropdownItem),
          label: "测试评论菜单",
          visible: true,
          permissions: [],
          action: () => {
            console.log(comment)
          },
        },
      ];
    },
    "reply:list-item:operation:create": (reply: Ref<ListedReply>) => {
      return [
        {
          priority: 11,
          component: markRaw(VDropdownItem),
          label: "测试回复菜单",
          visible: true,
          permissions: [],
          action: () => {
            console.log(reply)
          },
        },
      ];
    },
  },
});
```

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

```release-note
Console 评论和回复管理列表项的操作按钮支持被插件扩展。
```
2024-08-05 06:56:25 +00:00
John Niang
5147d3efff Prepare for developing 2.19.0 (#6429)
#### What type of PR is this?

/kind cleanup
/area core

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

This is a regular updates after a new release.

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

```release-note
None
```
2024-08-02 04:56:14 +00:00
John Niang
284417ae8b Prepare for developing 2.18.0 (#6259)
#### What type of PR is this?

/kind cleanup
/area core

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

This PR bumps Halo version into 2.18.0 for next development iteration.

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

```release-note
None
```
2024-07-04 02:36:31 +00: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
John Niang
1821829f99 Prepare for developing 2.17.0 (#6032)
#### What type of PR is this?

/kind cleanup
/area core

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

This is a regular update after a release.

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

```release-note
None
```
2024-06-03 09:53:44 +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
ce5757ae10 chore: bump up vue-related version (#5965)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.16.x

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

升级 Vue 生态的相关依赖,以及修复编译 packages 时的异常日志问题。

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

```release-note
升级 Vue 生态的相关依赖至最新版本。
```
2024-05-22 12:42:47 +00:00
Ryan Wang
b47015a36d chore: bump vite to 5.x (#5920)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.16.x

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

升级 Vite 至 5.x。

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

```release-note
升级 UI 部分的 Vite 版本至 5.x。
```
2024-05-16 06:18:36 +00:00
John Niang
7ea414dd6d Prepare for developing 2.16.0 (#5856)
#### What type of PR is this?

/kind cleanup
/area core

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

This is a regular action after releasing a minor version.

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

```release-note
None
```
2024-05-05 01:37:33 +00:00
Ryan Wang
fbf2b06432 feat: add extension points for user detail tab (#5763)
#### What type of PR is this?

/area ui
/kind feature
/milestone 2.15.x

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

为 Console 的用户详情页面的选项卡和个人中心的个人资料页面选项卡添加扩展点,支持通过插件扩展选项卡。

todo:

- [x] 完善 docs.halo.run 的开发文档 https://github.com/halo-dev/docs/pull/340

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

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

#### Special notes for your reviewer:

可以使用 [plugin-starter-1.3.2-SNAPSHOT.jar.zip](https://github.com/halo-dev/halo/files/15059291/plugin-starter-1.3.2-SNAPSHOT.jar.zip) 进行测试。

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

```release-note
为 Console 的用户详情页面的选项卡和个人中心的个人资料页面选项卡添加扩展点
```
2024-04-25 00:33:09 +00:00
John Niang
aab367a1f7 Prepare for developing 2.15.0 (#5635)
#### What type of PR is this?

/kind cleanup
/area core

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

Upgrade version to `2.15.0-SNAPSHOT`.

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

```release-note
None
```
2024-04-02 02:20:07 +00:00
John Niang
003d1f3db8 Prepare for developing 2.14 (#5448)
#### What type of PR is this?

/kind cleanup
/area core

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

Bump version to 2.14 to prepare for developing 2.14. This always happens after new version is released.

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

```release-note
None
```
2024-03-06 03:04:07 +00:00
Ryan Wang
9e676712e4 chore: bump vue related packages version (#5384)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.13.x

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

升级 Vue 生态相关依赖至最新版本。

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

```release-note
升级 Vue 生态相关依赖至最新版本。
```
2024-02-22 03:12:07 +00:00
Ryan Wang
8ce6ab6af2 chore: rename console to ui in some files (#5347)
#### What type of PR is this?

/area ui
/kind cleanup

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

Rename console to ui in some files,

Ref https://github.com/halo-dev/halo/pull/5314

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

```release-note
None
```
2024-02-07 14:40:08 +00:00
John Niang
15f7fe2d4f Move folder console to ui 2024-02-02 22:22:51 +08:00