feat: RDG 302/303 display path labels and RDS session break (0.3.1)

Show RDS access via RDG-Comp or Haproxy-RDG-Comp, enable qwinsta/logoff on any RDG event with internal_ip.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
PTah
2026-06-22 19:52:22 +10:00
parent 4eb41608ea
commit 24ca87a47a
19 changed files with 468 additions and 32 deletions
+6 -3
View File
@@ -282,6 +282,7 @@
<td :class="'sev-' + e.severity">{{ e.severity }}</td>
<td>
<RdgAccessBadge v-if="e.rdg_access_path" :event="e" />
<RdgFlapBadge v-if="hasRdgFlapUi(e)" :event="e" />
{{ e.title }}
</td>
@@ -289,13 +290,14 @@
<td class="dash-actions">
<button
v-if="rdgFlapQwinstaEventId(e)"
v-if="rdgQwinstaEventId(e)"
type="button"
class="secondary dash-qwinsta-btn"
:disabled="qwinstaLoadingId === e.id"
title="qwinsta и завершение сеанса на рабочем ПК"
@click="runQwinsta(e)"
>
qwinsta
Обрыв RDS
</button>
<button
v-if="eventSupportsSessionTerminate(e)"
@@ -346,12 +348,13 @@ import {
type DashboardSummary,
type EventSummary,
} from "../api";
import RdgAccessBadge from "../components/RdgAccessBadge.vue";
import RdgFlapBadge from "../components/RdgFlapBadge.vue";
import RdgQwinstaModal from "../components/RdgQwinstaModal.vue";
import { useRdgQwinsta } from "../composables/useRdgQwinsta";
import { useSacVersion } from "../composables/useSacVersion";
import { formatServerName } from "../utils/hostDisplay";
import { hasRdgFlapUi, rdgFlapQwinstaEventId } from "../utils/rdgFlap";
import { hasRdgFlapUi, rdgQwinstaEventId } from "../utils/rdgFlap";
import { eventSupportsSessionTerminate } from "../utils/sessionActions";
const { appName, appVersion } = useSacVersion();