mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-10-04 03:40:10 +00:00
Streams polish
This commit is contained in:
@@ -348,7 +348,7 @@ const internalStream = {
|
|||||||
// Add to audit log
|
// Add to audit log
|
||||||
return internalAuditLog.add(access, {
|
return internalAuditLog.add(access, {
|
||||||
action: "disabled",
|
action: "disabled",
|
||||||
object_type: "stream-host",
|
object_type: "stream",
|
||||||
object_id: row.id,
|
object_id: row.id,
|
||||||
meta: _.omit(row, omissions()),
|
meta: _.omit(row, omissions()),
|
||||||
});
|
});
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { IconBoltOff, IconUser } from "@tabler/icons-react";
|
import { IconBoltOff, IconDisc, IconUser } from "@tabler/icons-react";
|
||||||
import type { AuditLog } from "src/api/backend";
|
import type { AuditLog } from "src/api/backend";
|
||||||
import { DateTimeFormat, intl } from "src/locale";
|
import { DateTimeFormat, intl } from "src/locale";
|
||||||
|
|
||||||
@@ -12,6 +12,8 @@ const getEventValue = (event: AuditLog) => {
|
|||||||
return event.meta?.name;
|
return event.meta?.name;
|
||||||
case "dead-host":
|
case "dead-host":
|
||||||
return event.meta?.domainNames?.join(", ") || "N/A";
|
return event.meta?.domainNames?.join(", ") || "N/A";
|
||||||
|
case "stream":
|
||||||
|
return event.meta?.incomingPort || "N/A";
|
||||||
default:
|
default:
|
||||||
return `UNKNOWN EVENT TYPE: ${event.objectType}`;
|
return `UNKNOWN EVENT TYPE: ${event.objectType}`;
|
||||||
}
|
}
|
||||||
@@ -38,6 +40,9 @@ const getIcon = (row: AuditLog) => {
|
|||||||
case "dead-host":
|
case "dead-host":
|
||||||
ico = <IconBoltOff size={16} className={c} />;
|
ico = <IconBoltOff size={16} className={c} />;
|
||||||
break;
|
break;
|
||||||
|
case "stream":
|
||||||
|
ico = <IconDisc size={16} className={c} />;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ico;
|
return ico;
|
||||||
|
@@ -72,11 +72,15 @@
|
|||||||
"error.passwords-must-match": "Passwords must match",
|
"error.passwords-must-match": "Passwords must match",
|
||||||
"error.required": "This is required",
|
"error.required": "This is required",
|
||||||
"event.created-dead-host": "Created 404 Host",
|
"event.created-dead-host": "Created 404 Host",
|
||||||
|
"event.created-stream": "Created Stream",
|
||||||
"event.created-user": "Created User",
|
"event.created-user": "Created User",
|
||||||
"event.deleted-dead-host": "Deleted 404 Host",
|
"event.deleted-dead-host": "Deleted 404 Host",
|
||||||
|
"event.deleted-stream": "Deleted Stream",
|
||||||
"event.deleted-user": "Deleted User",
|
"event.deleted-user": "Deleted User",
|
||||||
"event.disabled-dead-host": "Disabled 404 Host",
|
"event.disabled-dead-host": "Disabled 404 Host",
|
||||||
|
"event.disabled-stream": "Disabled Stream",
|
||||||
"event.enabled-dead-host": "Enabled 404 Host",
|
"event.enabled-dead-host": "Enabled 404 Host",
|
||||||
|
"event.enabled-stream": "Enabled Stream",
|
||||||
"event.updated-user": "Updated User",
|
"event.updated-user": "Updated User",
|
||||||
"footer.github-fork": "Fork me on Github",
|
"footer.github-fork": "Fork me on Github",
|
||||||
"hosts.title": "Hosts",
|
"hosts.title": "Hosts",
|
||||||
@@ -95,6 +99,9 @@
|
|||||||
"notification.host-deleted": "Host has been deleted",
|
"notification.host-deleted": "Host has been deleted",
|
||||||
"notification.host-disabled": "Host has been disabled",
|
"notification.host-disabled": "Host has been disabled",
|
||||||
"notification.host-enabled": "Host has been enabled",
|
"notification.host-enabled": "Host has been enabled",
|
||||||
|
"notification.stream-deleted": "Stream has been deleted",
|
||||||
|
"notification.stream-disabled": "Stream has been disabled",
|
||||||
|
"notification.stream-enabled": "Stream has been enabled",
|
||||||
"notification.success": "Success",
|
"notification.success": "Success",
|
||||||
"notification.user-deleted": "User has been deleted",
|
"notification.user-deleted": "User has been deleted",
|
||||||
"notification.user-disabled": "User has been disabled",
|
"notification.user-disabled": "User has been disabled",
|
||||||
@@ -130,6 +137,8 @@
|
|||||||
"setup.title": "Welcome!",
|
"setup.title": "Welcome!",
|
||||||
"sign-in": "Sign in",
|
"sign-in": "Sign in",
|
||||||
"ssl-certificate": "SSL Certificate",
|
"ssl-certificate": "SSL Certificate",
|
||||||
|
"stream.delete.content": "Are you sure you want to delete this Stream?",
|
||||||
|
"stream.delete.title": "Delete Stream",
|
||||||
"stream.forward-host": "Forward Host",
|
"stream.forward-host": "Forward Host",
|
||||||
"stream.forward-port": "Forward Port",
|
"stream.forward-port": "Forward Port",
|
||||||
"stream.incoming-port": "Incoming Port",
|
"stream.incoming-port": "Incoming Port",
|
||||||
|
@@ -215,21 +215,33 @@
|
|||||||
"event.created-dead-host": {
|
"event.created-dead-host": {
|
||||||
"defaultMessage": "Created 404 Host"
|
"defaultMessage": "Created 404 Host"
|
||||||
},
|
},
|
||||||
|
"event.created-stream": {
|
||||||
|
"defaultMessage": "Created Stream"
|
||||||
|
},
|
||||||
"event.created-user": {
|
"event.created-user": {
|
||||||
"defaultMessage": "Created User"
|
"defaultMessage": "Created User"
|
||||||
},
|
},
|
||||||
"event.deleted-dead-host": {
|
"event.deleted-dead-host": {
|
||||||
"defaultMessage": "Deleted 404 Host"
|
"defaultMessage": "Deleted 404 Host"
|
||||||
},
|
},
|
||||||
|
"event.deleted-stream": {
|
||||||
|
"defaultMessage": "Deleted Stream"
|
||||||
|
},
|
||||||
"event.deleted-user": {
|
"event.deleted-user": {
|
||||||
"defaultMessage": "Deleted User"
|
"defaultMessage": "Deleted User"
|
||||||
},
|
},
|
||||||
"event.disabled-dead-host": {
|
"event.disabled-dead-host": {
|
||||||
"defaultMessage": "Disabled 404 Host"
|
"defaultMessage": "Disabled 404 Host"
|
||||||
},
|
},
|
||||||
|
"event.disabled-stream": {
|
||||||
|
"defaultMessage": "Disabled Stream"
|
||||||
|
},
|
||||||
"event.enabled-dead-host": {
|
"event.enabled-dead-host": {
|
||||||
"defaultMessage": "Enabled 404 Host"
|
"defaultMessage": "Enabled 404 Host"
|
||||||
},
|
},
|
||||||
|
"event.enabled-stream": {
|
||||||
|
"defaultMessage": "Enabled Stream"
|
||||||
|
},
|
||||||
"event.updated-user": {
|
"event.updated-user": {
|
||||||
"defaultMessage": "Updated User"
|
"defaultMessage": "Updated User"
|
||||||
},
|
},
|
||||||
@@ -281,15 +293,24 @@
|
|||||||
"notification.host-deleted": {
|
"notification.host-deleted": {
|
||||||
"defaultMessage": "Host has been deleted"
|
"defaultMessage": "Host has been deleted"
|
||||||
},
|
},
|
||||||
"notification.user-deleted": {
|
|
||||||
"defaultMessage": "User has been deleted"
|
|
||||||
},
|
|
||||||
"notification.host-disabled": {
|
"notification.host-disabled": {
|
||||||
"defaultMessage": "Host has been disabled"
|
"defaultMessage": "Host has been disabled"
|
||||||
},
|
},
|
||||||
"notification.host-enabled": {
|
"notification.host-enabled": {
|
||||||
"defaultMessage": "Host has been enabled"
|
"defaultMessage": "Host has been enabled"
|
||||||
},
|
},
|
||||||
|
"notification.stream-deleted": {
|
||||||
|
"defaultMessage": "Stream has been deleted"
|
||||||
|
},
|
||||||
|
"notification.stream-disabled": {
|
||||||
|
"defaultMessage": "Stream has been disabled"
|
||||||
|
},
|
||||||
|
"notification.stream-enabled": {
|
||||||
|
"defaultMessage": "Stream has been enabled"
|
||||||
|
},
|
||||||
|
"notification.user-deleted": {
|
||||||
|
"defaultMessage": "User has been deleted"
|
||||||
|
},
|
||||||
"notification.user-disabled": {
|
"notification.user-disabled": {
|
||||||
"defaultMessage": "User has been disabled"
|
"defaultMessage": "User has been disabled"
|
||||||
},
|
},
|
||||||
@@ -392,6 +413,12 @@
|
|||||||
"ssl-certificate": {
|
"ssl-certificate": {
|
||||||
"defaultMessage": "SSL Certificate"
|
"defaultMessage": "SSL Certificate"
|
||||||
},
|
},
|
||||||
|
"stream.delete.content": {
|
||||||
|
"defaultMessage": "Are you sure you want to delete this Stream?"
|
||||||
|
},
|
||||||
|
"stream.delete.title": {
|
||||||
|
"defaultMessage": "Delete Stream"
|
||||||
|
},
|
||||||
"stream.forward-host": {
|
"stream.forward-host": {
|
||||||
"defaultMessage": "Forward Host"
|
"defaultMessage": "Forward Host"
|
||||||
},
|
},
|
||||||
|
@@ -2,6 +2,7 @@ import { IconSearch } from "@tabler/icons-react";
|
|||||||
import { useQueryClient } from "@tanstack/react-query";
|
import { useQueryClient } from "@tanstack/react-query";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import Alert from "react-bootstrap/Alert";
|
import Alert from "react-bootstrap/Alert";
|
||||||
|
import { deleteStream, toggleStream } from "src/api/backend";
|
||||||
import { Button, LoadingPage } from "src/components";
|
import { Button, LoadingPage } from "src/components";
|
||||||
import { useStreams } from "src/hooks";
|
import { useStreams } from "src/hooks";
|
||||||
import { intl } from "src/locale";
|
import { intl } from "src/locale";
|
||||||
@@ -25,22 +26,27 @@ export default function TableWrapper() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleDelete = async () => {
|
const handleDelete = async () => {
|
||||||
// await deleteDeadHost(deleteId);
|
await deleteStream(deleteId);
|
||||||
showSuccess(intl.formatMessage({ id: "notification.host-deleted" }));
|
showSuccess(intl.formatMessage({ id: "notification.stream-deleted" }));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDisableToggle = async (id: number, enabled: boolean) => {
|
const handleDisableToggle = async (id: number, enabled: boolean) => {
|
||||||
// await toggleDeadHost(id, enabled);
|
await toggleStream(id, enabled);
|
||||||
queryClient.invalidateQueries({ queryKey: ["dead-hosts"] });
|
queryClient.invalidateQueries({ queryKey: ["streams"] });
|
||||||
queryClient.invalidateQueries({ queryKey: ["dead-host", id] });
|
queryClient.invalidateQueries({ queryKey: ["stream", id] });
|
||||||
showSuccess(intl.formatMessage({ id: enabled ? "notification.host-enabled" : "notification.host-disabled" }));
|
showSuccess(
|
||||||
|
intl.formatMessage({ id: enabled ? "notification.stream-enabled" : "notification.stream-disabled" }),
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
let filtered = null;
|
let filtered = null;
|
||||||
if (search && data) {
|
if (search && data) {
|
||||||
filtered = data?.filter((_item) => {
|
filtered = data?.filter((item) => {
|
||||||
return true;
|
return (
|
||||||
// return item.domainNames.some((domain: string) => domain.toLowerCase().includes(search));
|
`${item.incomingPort}`.includes(search) ||
|
||||||
|
`${item.forwardingPort}`.includes(search) ||
|
||||||
|
item.forwardingHost.includes(search)
|
||||||
|
);
|
||||||
});
|
});
|
||||||
} else if (search !== "") {
|
} else if (search !== "") {
|
||||||
// this can happen if someone deletes the last item while searching
|
// this can happen if someone deletes the last item while searching
|
||||||
@@ -82,6 +88,7 @@ export default function TableWrapper() {
|
|||||||
<Table
|
<Table
|
||||||
data={filtered ?? data ?? []}
|
data={filtered ?? data ?? []}
|
||||||
isFetching={isFetching}
|
isFetching={isFetching}
|
||||||
|
isFiltered={!!filtered}
|
||||||
onEdit={(id: number) => setEditId(id)}
|
onEdit={(id: number) => setEditId(id)}
|
||||||
onDelete={(id: number) => setDeleteId(id)}
|
onDelete={(id: number) => setDeleteId(id)}
|
||||||
onDisableToggle={handleDisableToggle}
|
onDisableToggle={handleDisableToggle}
|
||||||
|
Reference in New Issue
Block a user