diff --git a/src/assets/icons/demand.svg b/src/assets/icons/demand.svg
new file mode 100644
index 00000000..e9fc97fa
--- /dev/null
+++ b/src/assets/icons/demand.svg
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/src/store/modules/dashboard.ts b/src/store/modules/dashboard.ts
index 2ed20f17..596ac8b6 100644
--- a/src/store/modules/dashboard.ts
+++ b/src/store/modules/dashboard.ts
@@ -114,7 +114,8 @@ export const dashboardStore = defineStore({
type === "Trace" ||
type === "Profile" ||
type === "Log" ||
- type === "Ebpf"
+ type === "Ebpf" ||
+ type === "DemandLog"
) {
newItem.h = 36;
}
@@ -170,7 +171,13 @@ export const dashboardStore = defineStore({
showDepth: true,
};
}
- if (type === "Trace" || type === "Profile" || type === "Log") {
+ if (
+ type === "Trace" ||
+ type === "Profile" ||
+ type === "Log" ||
+ type === "DemandLog" ||
+ type === "Ebpf"
+ ) {
newItem.h = 32;
}
if (type === "Text") {
diff --git a/src/views/dashboard/controls/DemandLog.vue b/src/views/dashboard/controls/DemandLog.vue
new file mode 100644
index 00000000..d1323ae9
--- /dev/null
+++ b/src/views/dashboard/controls/DemandLog.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+ {{ t("delete") }}
+
+
+
+
+
+
+
diff --git a/src/views/dashboard/controls/Tab.vue b/src/views/dashboard/controls/Tab.vue
index 524e9f7e..c6909ec4 100644
--- a/src/views/dashboard/controls/Tab.vue
+++ b/src/views/dashboard/controls/Tab.vue
@@ -110,6 +110,7 @@ import Log from "./Log.vue";
import Text from "./Text.vue";
import Ebpf from "./Ebpf.vue";
import { dragIgnoreFrom } from "../data";
+import DemandLog from "./DemandLog.vue";
const props = {
data: {
@@ -120,7 +121,7 @@ const props = {
};
export default defineComponent({
name: "Tab",
- components: { Topology, Widget, Trace, Profile, Log, Text, Ebpf },
+ components: { Topology, Widget, Trace, Profile, Log, Text, Ebpf, DemandLog },
props,
setup(props) {
const { t } = useI18n();
diff --git a/src/views/dashboard/controls/index.ts b/src/views/dashboard/controls/index.ts
index 01fc5dc5..858bc5c5 100644
--- a/src/views/dashboard/controls/index.ts
+++ b/src/views/dashboard/controls/index.ts
@@ -22,5 +22,16 @@ import Profile from "./Profile.vue";
import Log from "./Log.vue";
import Text from "./Text.vue";
import Ebpf from "./Ebpf.vue";
+import DemandLog from "./DemandLog.vue";
-export default { Tab, Widget, Trace, Topology, Profile, Log, Text, Ebpf };
+export default {
+ Tab,
+ Widget,
+ Trace,
+ Topology,
+ Profile,
+ Log,
+ Text,
+ Ebpf,
+ DemandLog,
+};
diff --git a/src/views/dashboard/data.ts b/src/views/dashboard/data.ts
index c6e4bc32..50a22538 100644
--- a/src/views/dashboard/data.ts
+++ b/src/views/dashboard/data.ts
@@ -193,6 +193,7 @@ export const InstanceTools = [
{ name: "library_books", content: "Add Text", id: "addText" },
{ name: "merge", content: "Add Trace", id: "addTrace" },
{ name: "assignment", content: "Add Log", id: "addLog" },
+ { name: "demand", content: "Add On Demand Log", id: "addDemandLog" },
];
export const EndpointTools = [
{ name: "playlist_add", content: "Add Widget", id: "addWidget" },
diff --git a/src/views/dashboard/panel/Tool.vue b/src/views/dashboard/panel/Tool.vue
index bc96d8c3..8d8ed374 100644
--- a/src/views/dashboard/panel/Tool.vue
+++ b/src/views/dashboard/panel/Tool.vue
@@ -455,6 +455,9 @@ function setTabControls(id: string) {
case "addText":
dashboardStore.addTabControls("Text");
break;
+ case "addDemandLog":
+ dashboardStore.addTabControls("DemandLog");
+ break;
default:
ElMessage.info("Don't support this control");
break;
@@ -487,6 +490,9 @@ function setControls(id: string) {
case "addText":
dashboardStore.addControl("Text");
break;
+ case "addDemandLog":
+ dashboardStore.addControl("DemandLog");
+ break;
default:
dashboardStore.addControl("Widget");
}