Commit Graph

43 Commits (906fdf7c98516fc23015af9acd0909d781ef251d)

Author SHA1 Message Date
Ryan Wang e0ca6186ab
refactor: refactoring the logic for get the setup state of the system (#686)
#### What type of PR is this?

/kind improvement
/milestone 2.0

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

重构获取系统初始化状态的方式,之前会在每个路由切换前获取,在一定程度上会导致路由切换时卡顿。此 PR 改为仅在首次加载页面的时候调用接口获取,并保留状态由 pinia 管理。

#### Special notes for your reviewer:

测试方式:

1. 需要使用未初始化的 Halo。
2. 测试在未初始化前是否会自动切换到初始化页面。
3. 测试初始化之后是否还会跳转到初始化页面。

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

```release-note
None
```
2022-11-09 07:10:12 +00:00
Ryan Wang ff26058fc0
feat: add setup post/singlePage/category custom templates support (#671)
#### 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/2638

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

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

#### Screenshots:

<img width="625" alt="image" src="https://user-images.githubusercontent.com/21301288/198823380-991a702d-aae7-4587-b0f8-81fcb018a1f6.png">

#### Special notes for your reviewer:

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

测试方式:

1. Halo 需要切换到 https://github.com/halo-dev/halo/pull/2638 PR 的分支。
2. 根据 https://github.com/halo-dev/halo/pull/2638 PR 中的描述修改主题配置 `theme.yaml`,添加所需测试的模板配置。
3. 检查 Console 对应的设置项(分类编辑、文章设置、自定义页面)中的自定义模板选择框是否包含配置的模板。
4. 选择配置的模板后保存。检查主题端对应页面是否一致。

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

```release-note
支持为文章/自定义页面/分类设置自定义模板。
```
2022-11-02 06:40:16 +00:00
Ryan Wang 54755c5842
refactor: router and menu generation (#651)
#### What type of PR is this?

/kind api-change
/kind improvement
/milestone 2.0

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

Ref https://github.com/halo-dev/halo/issues/2595

重构路由和侧边菜单生成的逻辑,**注意,此 PR 对插件的 Console 入口文件中的路由和菜单定义包含破坏性更新。**

1. 移除 `definePlugin` 方法的 `menus` 字段,改为在 route 的 meta 中定义。
2. 将 `RoutesMenu` 组件从 `@halo-dev/components` 包中移出。
3. 将 `BasicLayout` 组件从 `@halo-dev/console-shared` 包中移出。

定义路由的方式:

```ts
import { definePlugin } from "@halo-dev/console-shared";
import BasicLayout from "@/layouts/BasicLayout.vue";
import AttachmentList from "./AttachmentList.vue";
import AttachmentSelectorModal from "./components/AttachmentSelectorModal.vue";
import { IconFolder } from "@halo-dev/components";
import { markRaw } from "vue";

export default definePlugin({
  name: "attachmentModule",
  components: [AttachmentSelectorModal],
  routes: [
    {
      path: "/attachments",
      component: BasicLayout,
      children: [
        {
          path: "",
          name: "Attachments",
          component: AttachmentList,
          meta: {
            title: "附件",
            permissions: ["system:attachments:view"],
            menu: {
              name: "附件",
              group: "内容",
              icon: markRaw(IconFolder),
              priority: 4,
              mobile: true,
            },
          },
        },
      ],
    },
  ],
});
```

menu 字段类型:

```ts
interface RouteMeta {
  title?: string;
  searchable?: boolean;
  permissions?: string[];
  menu?: {
    name: string;
    group?: string;
    icon?: Component;
    priority: number;
    mobile?: true;
  };
}
```

插件适配需要做的改动:

1. 移除 `definePlugin` 中的 menus 字段。
2. 在需要添加到菜单的 route 中提供 `meta.menu` 对象,可参考上方的 menu 字段类型。

详细文档可查阅:https://github.com/ruibaby/halo-console/tree/refactor/route-map-setting/docs/routes-generation

todolist:

- [x] 完善预设的菜单分组定义。
- [x] 绑定权限,根据权限决定是否需要将路由添加到菜单。
- [x] 优化菜单排序的定义方式。

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

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

#### Special notes for your reviewer:

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

测试方式:

1. 需要 `pnpm build:packages`
2. 测试后台的菜单及路由是否有异常。
3. 新建角色测试路由和菜单对权限的绑定。
4. 按照 https://github.com/ruibaby/halo-console/tree/refactor/route-map-setting/docs/routes-generation 文档,创建插件,测试插件添加路由和菜单是否正常。

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

```release-note
重构路由和侧边菜单生成的逻辑。
```
2022-10-19 08:54:13 +00:00
Ryan Wang 81791cfeac
feat: add operation exception toasts for loading plugin resources and login (#645)
#### 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/2534

#### Screenshots:

<img width="650" alt="image" src="https://user-images.githubusercontent.com/21301288/196105634-ece58153-d9e0-450d-8068-8cda1bed8bcc.png">

<img width="634" alt="image" src="https://user-images.githubusercontent.com/21301288/196105704-e3a59808-8a33-456d-b668-13e891512353.png">

#### Special notes for your reviewer:

目前还没有处理全局的接口请求异常,需要后端修改异常返回结构。

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

#### 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
为登录操作和加载插件资源添加异常提示。
```
2022-10-18 03:30:10 +00:00
Ryan Wang 170c027bfe
refactor: logic of user login (#636)
#### 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/2528

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

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

#### Special notes for your reviewer:

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

```release-note
优化用户登录的逻辑
```
2022-10-11 09:00:14 +00:00
Ryan Wang e1155c35fa
refactor: rename admin to console (#634)
#### What type of PR is this?

/kind improvement
/milestone 2.0

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

Ref https://github.com/halo-dev/halo/pull/2521 我们已经将 halo-admin 的命名改为了 console,所以相关命名需要同步修改。

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

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

#### Special notes for your reviewer:

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

测试方式:

1. 需要 `pnpm install && pnpm build:packages`
2. 测试后台功能是否正常。

PS:将在此 PR 合并之后发布 `@halo-dev/console-shared` 包到 npm。

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

```release-note
None
```
2022-10-09 06:56:33 +00:00
Ryan Wang 7bc46a5e90
fix: ui permissions (#633) 2022-09-30 19:03:38 +08:00
Ryan Wang 3ae432ac75
feat: refine ui permissions (#628)
#### What type of PR is this?

/kind feature
/kind improvement
/milestone 2.0

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

完善 UI 权限控制。适配 https://github.com/halo-dev/halo/pull/2488

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

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

#### Special notes for your reviewer:

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

测试方式:

1. Halo 需要使用 https://github.com/halo-dev/halo/issues/2342 PR 的分支。
2. 创建新的角色,并勾选需要测试的权限。
3. 创建新的用户并赋予新的角色。
4. 测试操作权限。


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

```release-note
完善 UI 权限控制
```
2022-09-30 09:48:19 +00:00
Ryan Wang 7e08350da5 fix: failed to load side menus
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-30 16:38:13 +08:00
Ryan Wang 539fd8fd14
refactor: improve login-related logic (#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 32356070e4 refactor: move api-client to core
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-09-22 16:46:32 +08:00
Ryan Wang cd33946ca3
refactor: method parameters of api client (#605)
<!--  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
/milestone 2.0

<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind optimization

适当添加其中一个或多个类别(可选):
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:

修改 api-client 的请求参数结构,改为所有参数由一个对象包裹,而不是将各个参数作为方法的参数,防止因为后端参数结构发生改变,或者生成 api-client 时参数顺序发生改变导致请求异常。如:

```diff
await apiClient.extension.storage.group.updatestorageHaloRunV1alpha1Group(
-        formState.value.metadata.name,
-        formState.value
+        {
+          name: formState.value.metadata.name,
+          group: formState.value,
+        }
      );
```

#### 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)`.
-->
None

#### Screenshots:

<!--
如果此 PR 有 UI 的改动,最好截图说明这个 PR 的改动。
If there are UI changes to this PR, it is best to take a screenshot to illustrate the changes to this PR.

eg.

Before:

![screenshot-before](https://user-images.githubusercontent.com/screenshot.png)

After:

![screenshot-after](https://user-images.githubusercontent.com/screenshot.png)
-->

None

#### Special notes for your reviewer:

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

#### 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
None
```
2022-09-06 02:26:11 +00:00
Ryan Wang 7c3692c5ed feat: support for dynamically adding child routes to a route
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-08-09 12:05:40 +08:00
Ryan Wang de119d35ff refactor: remove plugin loading status panel
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-29 11:41:01 +08:00
Ryan Wang 7405b57c6d feat: add plugin uninstall support
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-26 11:45:00 +08:00
Ryan Wang f99deaec83 feat: add plugin loading status panel
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-25 21:14:56 +08:00
Ryan Wang 2a1be5603d feat: handling front-end plugin loading failure exceptions
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-25 20:02:52 +08:00
Ryan Wang 3515108cab chore: update the base url of the plugin resources
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-25 10:41:24 +08:00
Ryan Wang 44f09fd2c1 feat: add set api url support
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 10:56:40 +08:00
Ryan Wang d154fc412e feat: ui permission binding
see https://github.com/halo-dev/halo/pull/2260
2022-07-19 14:07:28 +08:00
Ryan Wang d3d934093d feat: refine roles management
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 11:18:47 +08:00
Ryan Wang e8fd09205d feat: support permission judgment of interface elements and routes 2022-07-15 16:26:27 +08:00
Ryan Wang 74274ef78b refactor: change role annotations name
change `plugin.halo.run/dependencies` to `rbac.authorization.halo.run/dependencies`
2022-07-14 18:39:19 +08:00
Ryan Wang 9569b43dab refactor: response structure of Extension list API
see halo-dev/halo#2244
2022-07-14 16:48:54 +08:00
Ryan Wang 284edbbee1 refactor: removal of plugin batch operation
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-13 17:39:31 +08:00
Ryan Wang 700e12cafd refactor: api client
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-13 15:36:21 +08:00
Ryan Wang 7655134732 refactor: update get current login user api
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-08 14:40:14 +08:00
Ryan Wang ace341efef feat: get the currently logged-in user information
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-04 12:33:00 +08:00
Ryan Wang 32955a4050 feat: add cookie header when requesting the api
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-06-30 16:20:08 +08:00
Ryan Wang efad1d8268 feat: admin shared package support api client
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-06-27 15:31:16 +08:00
Ryan Wang 095c74c40f refactor: move route layouts to @halo-dev/admin-shared
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-06-24 23:05:49 +08:00
Ryan Wang 36e3cd92c3 feat: support load plugin's stylesheet
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-06-23 21:22:24 +08:00
Ryan Wang 72e40542f8
feat: plugin management (#583)
* chore: remove unnecessary files

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

* feat: plugin management

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

* feat: refine plugin detail page

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

* feat: refine plugin detail page

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

* fix: theme plugin router link

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

* Update src/modules/system/plugins/PluginList.vue

Co-authored-by: John Niang <johnniang@fastmail.com>

* feat: plugin detail page support start/stop plugin

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

Co-authored-by: John Niang <johnniang@fastmail.com>
2022-06-23 03:28:23 +00:00
Ryan Wang 690802c52a chore: global loading of base dependencies 2022-06-20 15:08:17 +08:00
Ryan Wang d8c14531e0 feat: bundle core modules 2022-06-20 12:25:36 +08:00
Ryan Wang 515ec78842 feat: use definePlugin function to define a plugin object
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-06-17 15:00:14 +08:00
Ryan Wang 8bc6ff798e
refactor: load admin core as modules (#582)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-06-17 06:12:15 +00:00
Ryan Wang b9f5d4fb6b perf: optimize the code of main.ts
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-06-16 17:01:18 +08:00
Ryan Wang d4b64f203d
chore: use pnpm's workspace feature to manage base components (#579) 2022-06-14 15:56:55 +08:00
Ryan Wang 486b4615e5 perf: improve dashboard page ui
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-05-27 17:28:25 +08:00
Ryan Wang 43945378d5 feat: add filters dropdown ui
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-05-26 17:37:08 +08:00
Ryan Wang 0b1e087c43
chore: configure tailwind css (#504)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-03-11 11:51:40 +08:00
Ryan Wang 020db1422e
chore: next major version base project (#478)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-03-03 18:26:15 +08:00