Skip to content

Commit 29ebd43

Browse files
authored
feat(ui): 优化通知中心 (#944)
2 parents b9bfe46 + 14123aa commit 29ebd43

File tree

16 files changed

+345
-321
lines changed

16 files changed

+345
-321
lines changed

configure/etc/conf/i18n/messages_en.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -729,4 +729,5 @@ notify.text.dingtalk=DingTalk Notification
729729
notify.text.created=Created
730730
notify.text.updated=Updated
731731
notify.text.deleted=Deleted
732-
notify.text.syncData=Sync Data
732+
notify.text.syncData=Sync Data
733+
plugin.text.requiredJsonConvert=The JsonConvert plugin has not been installed and cannot be converted, please try again after installation

configure/etc/conf/i18n/messages_zh-cn.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -729,4 +729,5 @@ notify.text.dingtalk=\u9489\u9489\u901A\u77E5
729729
notify.text.created=\u521B\u5EFA
730730
notify.text.updated=\u66F4\u65B0
731731
notify.text.deleted=\u5220\u9664
732-
notify.text.syncData=\u540C\u6B65\u6570\u636E
732+
notify.text.syncData=\u540C\u6B65\u6570\u636E
733+
plugin.text.requiredJsonConvert=\u5C1A\u672A\u5B89\u88C5 JsonConvert \u63D2\u4EF6\uFF0C\u65E0\u6CD5\u8FDB\u884C Json \u8F6C\u6362\uFF0C\u8BF7\u5B89\u88C5\u540E\u91CD\u8BD5

core/datacap-plugin/src/main/java/io/edurt/datacap/plugin/PluginMetadata.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class PluginMetadata
2020
private PluginType type;
2121
private String loaderName;
2222
private String key;
23+
private Object configure;
2324

2425
@JsonIgnore
2526
private ClassLoader classLoader;

core/datacap-server/src/main/java/io/edurt/datacap/server/controller/PluginController.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,49 @@
44
import io.edurt.datacap.common.response.CommonResponse;
55
import io.edurt.datacap.plugin.PluginManager;
66
import io.edurt.datacap.plugin.PluginMetadata;
7+
import io.edurt.datacap.plugin.PluginType;
8+
import io.edurt.datacap.service.common.PluginUtils;
79
import lombok.Data;
10+
import org.springframework.core.env.Environment;
811
import org.springframework.web.bind.annotation.DeleteMapping;
912
import org.springframework.web.bind.annotation.GetMapping;
1013
import org.springframework.web.bind.annotation.PathVariable;
1114
import org.springframework.web.bind.annotation.PostMapping;
1215
import org.springframework.web.bind.annotation.RequestBody;
1316
import org.springframework.web.bind.annotation.RequestMapping;
17+
import org.springframework.web.bind.annotation.RequestParam;
1418
import org.springframework.web.bind.annotation.RestController;
1519

1620
import java.nio.file.Path;
1721
import java.util.List;
22+
import java.util.stream.Collectors;
1823

1924
@RestController
2025
@RequestMapping(value = "/api/v1/plugin")
2126
@SuppressFBWarnings(value = {"EI_EXPOSE_REP2"})
2227
public class PluginController
2328
{
2429
private final PluginManager pluginManager;
30+
private final Environment environment;
2531

26-
public PluginController(PluginManager pluginManager)
32+
public PluginController(PluginManager pluginManager, Environment environment)
2733
{
2834
this.pluginManager = pluginManager;
35+
this.environment = environment;
2936
}
3037

3138
@GetMapping
32-
public CommonResponse<List<PluginMetadata>> getPlugins()
39+
public CommonResponse<List<PluginMetadata>> getPlugins(@RequestParam(value = "hasConfigure", required = false) boolean hasConfigure)
3340
{
41+
List<PluginMetadata> plugins = pluginManager.getPluginInfos()
42+
.stream()
43+
.filter(v -> v.getType().equals(PluginType.CONNECTOR))
44+
.collect(Collectors.toList());
45+
46+
if (hasConfigure) {
47+
plugins.forEach(plugin -> plugin.setConfigure(PluginUtils.loadYamlConfigure("JDBC", plugin.getName(), plugin.getName(), environment)));
48+
}
49+
3450
return CommonResponse.success(pluginManager.getPluginInfos());
3551
}
3652

core/datacap-service/src/main/java/io/edurt/datacap/service/common/PluginUtils.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,18 @@ private PluginUtils() {}
2828

2929
public static Optional<PluginService> getPluginByName(Injector injector, String pluginName)
3030
{
31-
Optional<PluginService> pluginOptional = injector.getInstance(Key.get(new TypeLiteral<Set<PluginService>>() {})).stream().filter(plugin -> plugin.name().equalsIgnoreCase(pluginName)).findFirst();
32-
return pluginOptional;
31+
return injector.getInstance(Key.get(new TypeLiteral<Set<PluginService>>() {}))
32+
.stream()
33+
.filter(plugin -> plugin.name().equalsIgnoreCase(pluginName))
34+
.findFirst();
3335
}
3436

3537
public static Optional<PluginService> getPluginByNameAndType(Injector injector, String pluginName, String pluginType)
3638
{
37-
Optional<PluginService> pluginOptional = injector.getInstance(Key.get(new TypeLiteral<Set<PluginService>>() {})).stream().filter(plugin -> plugin.name().equalsIgnoreCase(pluginName) && plugin.type().name().equalsIgnoreCase(pluginType)).findFirst();
38-
return pluginOptional;
39+
return injector.getInstance(Key.get(new TypeLiteral<Set<PluginService>>() {}))
40+
.stream()
41+
.filter(plugin -> plugin.name().equalsIgnoreCase(pluginName) && plugin.type().name().equalsIgnoreCase(pluginType))
42+
.findFirst();
3943
}
4044

4145
@Deprecated

core/datacap-spi/src/main/java/io/edurt/datacap/spi/PluginService.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,14 +176,6 @@ else if (type().equals(PluginType.NATIVE)) {
176176

177177
default Response execute(Configure configure, String content)
178178
{
179-
if (!this.isSupportMeta()) {
180-
return Response.builder()
181-
.isSuccessful(false)
182-
.isConnected(false)
183-
.message("This plugin does not support metadata management")
184-
.build();
185-
}
186-
187179
this.connect(configure);
188180
return this.execute(content);
189181
}

core/datacap-ui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"md-editor-v3": "^4.12.1",
2929
"pinia": "^3.0.1",
3030
"uuid": "^9.0.1",
31-
"view-shadcn-ui": "^2025.1.2",
31+
"view-shadcn-ui": "^2025.1.3",
3232
"vue": "^3.4.21",
3333
"vue-clipboard3": "^2.0.0",
3434
"vue-i18n": "^9.10.1",

core/datacap-ui/pnpm-lock.yaml

Lines changed: 11 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/datacap-ui/src/router/default.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -338,14 +338,6 @@ const createAdminRouter = (router: any) => {
338338
isRoot: false
339339
},
340340
component: () => import('@/views/pages/admin/wofkflow/WorkflowInfo.vue')
341-
},
342-
{
343-
path: 'notify',
344-
meta: {
345-
title: 'common.notify',
346-
isRoot: false
347-
},
348-
component: () => import('@/views/pages/admin/notify/NotifyHome.vue')
349341
}
350342
]
351343
}

core/datacap-ui/src/services/plugin.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ const DEFAULT_PATH = '/api/v1/plugin'
55

66
class PluginService
77
{
8-
getPlugins(): Promise<ResponseModel>
8+
getPlugins(hasConfigure?: boolean): Promise<ResponseModel>
99
{
10-
return new HttpUtils().get(`${ DEFAULT_PATH }`)
10+
return new HttpUtils().get(`${ DEFAULT_PATH }`, { hasConfigure })
1111
}
1212

1313
install(configure: { name: string, url: string }): Promise<ResponseModel>

0 commit comments

Comments
 (0)