Skip to content

Commit 5525e51

Browse files
committed
Release 0.101.55
2 parents 9261399 + 716b274 commit 5525e51

25 files changed

Lines changed: 297 additions & 84 deletions

.github/workflows/build-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515

1616
- uses: actions/setup-node@v4
1717
with:
18-
node-version: "20.18.0"
18+
node-version: "20.19.1"
1919

2020
- run: touch env-config.js
2121

.github/workflows/frontend-linting.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
- uses: actions/setup-node@v4
1515
with:
16-
node-version: "20.18.0"
16+
node-version: "20.19.1"
1717
- run: npm install
1818

1919
- name: Run Prettier formatting

package-lock.json

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

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "web",
3-
"version": "0.101.54",
3+
"version": "0.101.55",
44
"private": true,
55
"productName": "Tactical RMM",
66
"scripts": {
@@ -14,8 +14,11 @@
1414
"@vueuse/core": "11.2.0",
1515
"@vueuse/integrations": "11.2.0",
1616
"@vueuse/shared": "11.2.0",
17+
"@xterm/addon-fit": "0.10.0",
18+
"@xterm/xterm": "5.5.0",
1719
"apexcharts": "3.54.1",
1820
"axios": "1.8.4",
21+
"dompurify": "3.2.5",
1922
"dotenv": "16.4.5",
2023
"monaco-editor": "0.50.0",
2124
"pinia": "2.2.6",
@@ -26,8 +29,6 @@
2629
"vue3-apexcharts": "1.7.0",
2730
"vuedraggable": "4.1.0",
2831
"vuex": "4.1.0",
29-
"@xterm/xterm": "5.5.0",
30-
"@xterm/addon-fit": "0.10.0",
3132
"yaml": "2.6.0"
3233
},
3334
"devDependencies": {

src/components/agents/AgentActionMenu.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,8 @@ import SendCommand from "@/components/modals/agents/SendCommand.vue";
275275
import RunScript from "@/components/modals/agents/RunScript.vue";
276276
import IntegrationsContextMenu from "@/components/ui/IntegrationsContextMenu.vue";
277277
278+
import DOMPurify from "dompurify";
279+
278280
export default {
279281
name: "AgentActionMenu",
280282
components: {
@@ -482,8 +484,9 @@ export default {
482484
}
483485
484486
function shutdown(agent) {
487+
const clean = DOMPurify.sanitize(agent.hostname);
485488
$q.dialog({
486-
title: `Please type <code style="color:red">yes</code> in the box below to confirm shutdown of <span style="color:red">${agent.hostname}</span>.`,
489+
title: `Please type <code style="color:red">yes</code> in the box below to confirm shutdown of <span style="color:red">${clean}</span>.`,
487490
prompt: {
488491
model: "",
489492
type: "text",
@@ -556,8 +559,9 @@ export default {
556559
}
557560
558561
function deleteAgent(agent) {
562+
const clean = DOMPurify.sanitize(agent.hostname);
559563
$q.dialog({
560-
title: `Please type <code style="color:red">yes</code> in the box below to confirm deletion of <span style="color:red">${agent.hostname}</span>.`,
564+
title: `Please type <code style="color:red">yes</code> in the box below to confirm deletion of <span style="color:red">${clean}</span>.`,
561565
prompt: {
562566
model: "",
563567
type: "text",

src/components/agents/AutomatedTasksTab.vue

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -498,17 +498,24 @@ export default {
498498
return;
499499
}
500500
501-
loading.value = true;
502-
try {
503-
const result = await runTask(
504-
task.id,
505-
task.policy ? { agent_id: selectedAgent.value } : {},
506-
);
507-
notifySuccess(result);
508-
} catch (e) {
509-
console.error(e);
510-
}
511-
loading.value = false;
501+
$q.dialog({
502+
title: "Are you sure?",
503+
message: `Run ${task.name} task`,
504+
cancel: true,
505+
persistent: true,
506+
}).onOk(async () => {
507+
loading.value = true;
508+
try {
509+
const result = await runTask(
510+
task.id,
511+
task.policy ? { agent_id: selectedAgent.value } : {},
512+
);
513+
notifySuccess(result);
514+
} catch (e) {
515+
console.error(e);
516+
}
517+
loading.value = false;
518+
});
512519
}
513520
514521
function showAddTask() {

src/components/agents/ChecksTab.vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ import ScriptCheck from "@/components/checks/ScriptCheck.vue";
451451
import ScriptOutput from "@/components/checks/ScriptOutput.vue";
452452
import EventLogCheckOutput from "@/components/checks/EventLogCheckOutput.vue";
453453
import CheckGraph from "@/components/graphs/CheckGraph.vue";
454+
import PreDialog from "@/components/ui/PreDialog.vue";
454455
455456
// static data
456457
const columns = [
@@ -682,10 +683,12 @@ export default {
682683
683684
function showPingInfo(check) {
684685
$q.dialog({
685-
title: check.readable_desc,
686-
style: "width: 50vw; max-width: 60vw",
687-
message: `<pre>${check.check_result.more_info}</pre>`,
688-
html: true,
686+
component: PreDialog,
687+
componentProps: {
688+
title: check.readable_desc,
689+
dialogStyle: "width: 50vw; max-width: 60vw",
690+
message: check.check_result.more_info,
691+
},
689692
});
690693
}
691694

src/components/agents/HistoryTab.vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ import { fetchAgentHistory } from "@/api/agents";
7474
// ui imports
7575
import ScriptOutput from "@/components/checks/ScriptOutput.vue";
7676
import ExportTableBtn from "@/components/ui/ExportTableBtn.vue";
77+
import PreDialog from "@/components/ui/PreDialog.vue";
7778
7879
// static data
7980
const columns = [
@@ -173,10 +174,12 @@ export default {
173174
174175
function showCommandOutput(title, output) {
175176
$q.dialog({
176-
title: title,
177-
style: "width: 70vw; max-width: 80vw",
178-
message: `<pre>${output}</pre>`,
179-
html: true,
177+
component: PreDialog,
178+
componentProps: {
179+
title: title,
180+
dialogStyle: "width: 70vw; max-width: 80vw",
181+
message: output,
182+
},
180183
});
181184
}
182185

src/components/agents/WinUpdateTab.vue

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ import { truncateText } from "@/utils/format";
202202
203203
// ui imports
204204
import ExportTableBtn from "@/components/ui/ExportTableBtn.vue";
205+
import WinUpdateDialog from "@/components/ui/WinUpdateDialog.vue";
205206
206207
// static data
207208
const columns = [
@@ -317,21 +318,15 @@ export default {
317318
}
318319
319320
function showUpdateDetails(update) {
320-
const color = $q.dark.isActive ? "white" : "";
321-
let support_urls = "";
322-
update.more_info_urls.forEach((u) => {
323-
support_urls += `<a style='color: ${color}' href='${u}' target='_blank'>${u}</a><br/>`;
324-
});
325-
let cats = update.categories.join(", ");
326321
$q.dialog({
327-
title: update.title,
328-
message:
329-
`<b>Categories:</b> ${cats}<br/><br/>` +
330-
"<b>Description</b><br/>" +
331-
update.description.split(". ").join(".<br />") +
332-
`<br/><br/><b>Support Urls</b><br/>${support_urls}`,
333-
html: true,
334-
fullWidth: true,
322+
component: WinUpdateDialog,
323+
componentProps: {
324+
title: update.title,
325+
dialogStyle: { width: "80vw", maxWidth: "85vw" },
326+
categories: update.categories,
327+
description: update.description,
328+
supportUrls: update.more_info_urls,
329+
},
335330
});
336331
}
337332

src/components/agents/remotebg/EventLogManager.vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ import { truncateText } from "@/utils/format";
105105
106106
// ui imports
107107
import ExportTableBtn from "@/components/ui/ExportTableBtn.vue";
108+
import PreDialog from "@/components/ui/PreDialog.vue";
108109
109110
// static data
110111
const columns = [
@@ -170,16 +171,18 @@ export default {
170171
events.value = await fetchAgentEventLog(
171172
props.agent_id,
172173
logType.value,
173-
days.value
174+
days.value,
174175
);
175176
loading.value = false;
176177
}
177178
178179
function showEventMessage(message) {
179180
$q.dialog({
180-
message: `<pre>${message}</pre>`,
181-
html: true,
182-
fullWidth: true,
181+
component: PreDialog,
182+
componentProps: {
183+
dialogStyle: "width: 85vw; max-width: 90vw",
184+
message: message,
185+
},
183186
});
184187
}
185188

0 commit comments

Comments
 (0)