Skip to content

Commit 188193a

Browse files
committed
Streams polish
1 parent f2b9a66 commit 188193a

File tree

5 files changed

+62
-14
lines changed

5 files changed

+62
-14
lines changed

backend/internal/stream.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ const internalStream = {
348348
// Add to audit log
349349
return internalAuditLog.add(access, {
350350
action: "disabled",
351-
object_type: "stream-host",
351+
object_type: "stream",
352352
object_id: row.id,
353353
meta: _.omit(row, omissions()),
354354
});

frontend/src/components/Table/Formatter/EventFormatter.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IconBoltOff, IconUser } from "@tabler/icons-react";
1+
import { IconBoltOff, IconDisc, IconUser } from "@tabler/icons-react";
22
import type { AuditLog } from "src/api/backend";
33
import { DateTimeFormat, intl } from "src/locale";
44

@@ -12,6 +12,8 @@ const getEventValue = (event: AuditLog) => {
1212
return event.meta?.name;
1313
case "dead-host":
1414
return event.meta?.domainNames?.join(", ") || "N/A";
15+
case "stream":
16+
return event.meta?.incomingPort || "N/A";
1517
default:
1618
return `UNKNOWN EVENT TYPE: ${event.objectType}`;
1719
}
@@ -38,6 +40,9 @@ const getIcon = (row: AuditLog) => {
3840
case "dead-host":
3941
ico = <IconBoltOff size={16} className={c} />;
4042
break;
43+
case "stream":
44+
ico = <IconDisc size={16} className={c} />;
45+
break;
4146
}
4247

4348
return ico;

frontend/src/locale/lang/en.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,15 @@
7272
"error.passwords-must-match": "Passwords must match",
7373
"error.required": "This is required",
7474
"event.created-dead-host": "Created 404 Host",
75+
"event.created-stream": "Created Stream",
7576
"event.created-user": "Created User",
7677
"event.deleted-dead-host": "Deleted 404 Host",
78+
"event.deleted-stream": "Deleted Stream",
7779
"event.deleted-user": "Deleted User",
7880
"event.disabled-dead-host": "Disabled 404 Host",
81+
"event.disabled-stream": "Disabled Stream",
7982
"event.enabled-dead-host": "Enabled 404 Host",
83+
"event.enabled-stream": "Enabled Stream",
8084
"event.updated-user": "Updated User",
8185
"footer.github-fork": "Fork me on Github",
8286
"hosts.title": "Hosts",
@@ -95,6 +99,9 @@
9599
"notification.host-deleted": "Host has been deleted",
96100
"notification.host-disabled": "Host has been disabled",
97101
"notification.host-enabled": "Host has been enabled",
102+
"notification.stream-deleted": "Stream has been deleted",
103+
"notification.stream-disabled": "Stream has been disabled",
104+
"notification.stream-enabled": "Stream has been enabled",
98105
"notification.success": "Success",
99106
"notification.user-deleted": "User has been deleted",
100107
"notification.user-disabled": "User has been disabled",
@@ -130,6 +137,8 @@
130137
"setup.title": "Welcome!",
131138
"sign-in": "Sign in",
132139
"ssl-certificate": "SSL Certificate",
140+
"stream.delete.content": "Are you sure you want to delete this Stream?",
141+
"stream.delete.title": "Delete Stream",
133142
"stream.forward-host": "Forward Host",
134143
"stream.forward-port": "Forward Port",
135144
"stream.incoming-port": "Incoming Port",

frontend/src/locale/src/en.json

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,21 +215,33 @@
215215
"event.created-dead-host": {
216216
"defaultMessage": "Created 404 Host"
217217
},
218+
"event.created-stream": {
219+
"defaultMessage": "Created Stream"
220+
},
218221
"event.created-user": {
219222
"defaultMessage": "Created User"
220223
},
221224
"event.deleted-dead-host": {
222225
"defaultMessage": "Deleted 404 Host"
223226
},
227+
"event.deleted-stream": {
228+
"defaultMessage": "Deleted Stream"
229+
},
224230
"event.deleted-user": {
225231
"defaultMessage": "Deleted User"
226232
},
227233
"event.disabled-dead-host": {
228234
"defaultMessage": "Disabled 404 Host"
229235
},
236+
"event.disabled-stream": {
237+
"defaultMessage": "Disabled Stream"
238+
},
230239
"event.enabled-dead-host": {
231240
"defaultMessage": "Enabled 404 Host"
232241
},
242+
"event.enabled-stream": {
243+
"defaultMessage": "Enabled Stream"
244+
},
233245
"event.updated-user": {
234246
"defaultMessage": "Updated User"
235247
},
@@ -281,15 +293,24 @@
281293
"notification.host-deleted": {
282294
"defaultMessage": "Host has been deleted"
283295
},
284-
"notification.user-deleted": {
285-
"defaultMessage": "User has been deleted"
286-
},
287296
"notification.host-disabled": {
288297
"defaultMessage": "Host has been disabled"
289298
},
290299
"notification.host-enabled": {
291300
"defaultMessage": "Host has been enabled"
292301
},
302+
"notification.stream-deleted": {
303+
"defaultMessage": "Stream has been deleted"
304+
},
305+
"notification.stream-disabled": {
306+
"defaultMessage": "Stream has been disabled"
307+
},
308+
"notification.stream-enabled": {
309+
"defaultMessage": "Stream has been enabled"
310+
},
311+
"notification.user-deleted": {
312+
"defaultMessage": "User has been deleted"
313+
},
293314
"notification.user-disabled": {
294315
"defaultMessage": "User has been disabled"
295316
},
@@ -392,6 +413,12 @@
392413
"ssl-certificate": {
393414
"defaultMessage": "SSL Certificate"
394415
},
416+
"stream.delete.content": {
417+
"defaultMessage": "Are you sure you want to delete this Stream?"
418+
},
419+
"stream.delete.title": {
420+
"defaultMessage": "Delete Stream"
421+
},
395422
"stream.forward-host": {
396423
"defaultMessage": "Forward Host"
397424
},

frontend/src/pages/Nginx/Streams/TableWrapper.tsx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { IconSearch } from "@tabler/icons-react";
22
import { useQueryClient } from "@tanstack/react-query";
33
import { useState } from "react";
44
import Alert from "react-bootstrap/Alert";
5+
import { deleteStream, toggleStream } from "src/api/backend";
56
import { Button, LoadingPage } from "src/components";
67
import { useStreams } from "src/hooks";
78
import { intl } from "src/locale";
@@ -25,22 +26,27 @@ export default function TableWrapper() {
2526
}
2627

2728
const handleDelete = async () => {
28-
// await deleteDeadHost(deleteId);
29-
showSuccess(intl.formatMessage({ id: "notification.host-deleted" }));
29+
await deleteStream(deleteId);
30+
showSuccess(intl.formatMessage({ id: "notification.stream-deleted" }));
3031
};
3132

3233
const handleDisableToggle = async (id: number, enabled: boolean) => {
33-
// await toggleDeadHost(id, enabled);
34-
queryClient.invalidateQueries({ queryKey: ["dead-hosts"] });
35-
queryClient.invalidateQueries({ queryKey: ["dead-host", id] });
36-
showSuccess(intl.formatMessage({ id: enabled ? "notification.host-enabled" : "notification.host-disabled" }));
34+
await toggleStream(id, enabled);
35+
queryClient.invalidateQueries({ queryKey: ["streams"] });
36+
queryClient.invalidateQueries({ queryKey: ["stream", id] });
37+
showSuccess(
38+
intl.formatMessage({ id: enabled ? "notification.stream-enabled" : "notification.stream-disabled" }),
39+
);
3740
};
3841

3942
let filtered = null;
4043
if (search && data) {
41-
filtered = data?.filter((_item) => {
42-
return true;
43-
// return item.domainNames.some((domain: string) => domain.toLowerCase().includes(search));
44+
filtered = data?.filter((item) => {
45+
return (
46+
`${item.incomingPort}`.includes(search) ||
47+
`${item.forwardingPort}`.includes(search) ||
48+
item.forwardingHost.includes(search)
49+
);
4450
});
4551
} else if (search !== "") {
4652
// this can happen if someone deletes the last item while searching
@@ -82,6 +88,7 @@ export default function TableWrapper() {
8288
<Table
8389
data={filtered ?? data ?? []}
8490
isFetching={isFetching}
91+
isFiltered={!!filtered}
8592
onEdit={(id: number) => setEditId(id)}
8693
onDelete={(id: number) => setDeleteId(id)}
8794
onDisableToggle={handleDisableToggle}

0 commit comments

Comments
 (0)