mirror of
https://github.com/netbirdio/dashboard.git
synced 2026-09-23 00:30:43 -07:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5da13a8226 |
No files matched your search
Generated
+1
-19
@@ -168,7 +168,6 @@
|
||||
"integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.29.0",
|
||||
"@babel/generator": "^7.29.0",
|
||||
@@ -3031,7 +3030,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.10.tgz",
|
||||
"integrity": "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"csstype": "^3.2.2"
|
||||
}
|
||||
@@ -3041,7 +3039,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
|
||||
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@types/react": "^19.2.0"
|
||||
}
|
||||
@@ -3100,7 +3097,6 @@
|
||||
"integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.54.0",
|
||||
"@typescript-eslint/types": "8.54.0",
|
||||
@@ -3607,8 +3603,7 @@
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz",
|
||||
"integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@xyflow/react": {
|
||||
"version": "12.10.0",
|
||||
@@ -3647,7 +3642,6 @@
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
|
||||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -4065,7 +4059,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"baseline-browser-mapping": "^2.9.0",
|
||||
"caniuse-lite": "^1.0.30001759",
|
||||
@@ -4694,7 +4687,6 @@
|
||||
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
|
||||
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@@ -5223,7 +5215,6 @@
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz",
|
||||
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.8.0",
|
||||
"@eslint-community/regexpp": "^4.12.1",
|
||||
@@ -5421,7 +5412,6 @@
|
||||
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@rtsao/scc": "^1.1.0",
|
||||
"array-includes": "^3.1.9",
|
||||
@@ -6715,7 +6705,6 @@
|
||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
|
||||
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"jiti": "bin/jiti.js"
|
||||
}
|
||||
@@ -7470,7 +7459,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.11",
|
||||
"picocolors": "^1.1.1",
|
||||
@@ -7678,7 +7666,6 @@
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
|
||||
"integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@@ -7719,7 +7706,6 @@
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
|
||||
"integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"scheduler": "^0.27.0"
|
||||
},
|
||||
@@ -8614,7 +8600,6 @@
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz",
|
||||
"integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@alloc/quick-lru": "^5.2.0",
|
||||
"arg": "^5.0.2",
|
||||
@@ -8781,7 +8766,6 @@
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@@ -8947,7 +8931,6 @@
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -9275,7 +9258,6 @@
|
||||
"integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/colinhacks"
|
||||
}
|
||||
|
||||
@@ -97,6 +97,10 @@ const PeersTableColumns: ColumnDef<Peer>[] = [
|
||||
accessorKey: "ip",
|
||||
sortingFn: "text",
|
||||
},
|
||||
{
|
||||
id: "has_user",
|
||||
accessorFn: (peer) => !!peer.user_id,
|
||||
},
|
||||
{
|
||||
id: "user_name",
|
||||
accessorFn: (peer) => (peer.user ? peer.user?.name : "Unknown"),
|
||||
@@ -314,6 +318,7 @@ export default function PeersTable({
|
||||
group_name_strings: false,
|
||||
group_names: false,
|
||||
ip: false,
|
||||
has_user: false,
|
||||
serial: false,
|
||||
user_name: false,
|
||||
user_email: false,
|
||||
@@ -336,6 +341,9 @@ export default function PeersTable({
|
||||
let groupFilters = table
|
||||
.getColumn("group_names")
|
||||
?.getFilterValue();
|
||||
let hasUserFilter = table
|
||||
.getColumn("has_user")
|
||||
?.getFilterValue();
|
||||
table.setColumnFilters([
|
||||
{
|
||||
id: "connected",
|
||||
@@ -350,8 +358,8 @@ export default function PeersTable({
|
||||
value: groupFilters ?? [],
|
||||
},
|
||||
{
|
||||
id: "group_names",
|
||||
value: groupFilters ?? [],
|
||||
id: "has_user",
|
||||
value: hasUserFilter,
|
||||
},
|
||||
]);
|
||||
resetSelectedRows();
|
||||
@@ -370,6 +378,9 @@ export default function PeersTable({
|
||||
let groupFilters = table
|
||||
.getColumn("group_names")
|
||||
?.getFilterValue();
|
||||
let hasUserFilter = table
|
||||
.getColumn("has_user")
|
||||
?.getFilterValue();
|
||||
table.setColumnFilters([
|
||||
{
|
||||
id: "connected",
|
||||
@@ -384,8 +395,8 @@ export default function PeersTable({
|
||||
value: groupFilters ?? [],
|
||||
},
|
||||
{
|
||||
id: "group_names",
|
||||
value: groupFilters ?? [],
|
||||
id: "has_user",
|
||||
value: hasUserFilter,
|
||||
},
|
||||
]);
|
||||
resetSelectedRows();
|
||||
@@ -405,6 +416,9 @@ export default function PeersTable({
|
||||
let groupFilters = table
|
||||
.getColumn("group_names")
|
||||
?.getFilterValue();
|
||||
let hasUserFilter = table
|
||||
.getColumn("has_user")
|
||||
?.getFilterValue();
|
||||
table.setColumnFilters([
|
||||
{
|
||||
id: "connected",
|
||||
@@ -418,6 +432,10 @@ export default function PeersTable({
|
||||
id: "group_names",
|
||||
value: groupFilters ?? [],
|
||||
},
|
||||
{
|
||||
id: "has_user",
|
||||
value: hasUserFilter,
|
||||
},
|
||||
]);
|
||||
resetSelectedRows();
|
||||
}}
|
||||
@@ -442,6 +460,9 @@ export default function PeersTable({
|
||||
undefined
|
||||
? true
|
||||
: undefined;
|
||||
let hasUserFilter = table
|
||||
.getColumn("has_user")
|
||||
?.getFilterValue();
|
||||
|
||||
table.setColumnFilters([
|
||||
{
|
||||
@@ -452,6 +473,10 @@ export default function PeersTable({
|
||||
id: "approval_required",
|
||||
value: current,
|
||||
},
|
||||
{
|
||||
id: "has_user",
|
||||
value: hasUserFilter,
|
||||
},
|
||||
]);
|
||||
|
||||
resetSelectedRows();
|
||||
@@ -468,6 +493,53 @@ export default function PeersTable({
|
||||
</Button>
|
||||
)}
|
||||
|
||||
{!isUser && (
|
||||
<ButtonGroup disabled={peers?.length == 0}>
|
||||
<ButtonGroup.Button
|
||||
disabled={peers?.length == 0}
|
||||
onClick={() => {
|
||||
table.setPageIndex(0);
|
||||
const current =
|
||||
table.getColumn("has_user")?.getFilterValue();
|
||||
table
|
||||
.getColumn("has_user")
|
||||
?.setFilterValue(
|
||||
current === true ? undefined : true,
|
||||
);
|
||||
resetSelectedRows();
|
||||
}}
|
||||
variant={
|
||||
table.getColumn("has_user")?.getFilterValue() === true
|
||||
? "tertiary"
|
||||
: "secondary"
|
||||
}
|
||||
>
|
||||
With Users
|
||||
</ButtonGroup.Button>
|
||||
<ButtonGroup.Button
|
||||
disabled={peers?.length == 0}
|
||||
onClick={() => {
|
||||
table.setPageIndex(0);
|
||||
const current =
|
||||
table.getColumn("has_user")?.getFilterValue();
|
||||
table
|
||||
.getColumn("has_user")
|
||||
?.setFilterValue(
|
||||
current === false ? undefined : false,
|
||||
);
|
||||
resetSelectedRows();
|
||||
}}
|
||||
variant={
|
||||
table.getColumn("has_user")?.getFilterValue() === false
|
||||
? "tertiary"
|
||||
: "secondary"
|
||||
}
|
||||
>
|
||||
No Users
|
||||
</ButtonGroup.Button>
|
||||
</ButtonGroup>
|
||||
)}
|
||||
|
||||
<DataTableRowsPerPage table={table} disabled={peers?.length == 0} />
|
||||
|
||||
{!isUser && (
|
||||
|
||||
Reference in new issue
Block a user