From bfd81957061faf8cf9c55107e581b36edb8ff0fe Mon Sep 17 00:00:00 2001 From: Stefan Werfling Date: Mon, 15 Apr 2024 18:08:38 +0200 Subject: [PATCH] #29 update frontend --- backend/src/Routes/Main/Dashboard.ts | 14 ++++++++ backend/src/Routes/Main/Dashboard/HimHIP.ts | 25 ++++++++++++++ frontend/src/inc/Api/Dashboard.ts | 10 +++++- frontend/src/inc/Pages/Dashboard.ts | 37 ++++++++++++++++++++- 4 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 backend/src/Routes/Main/Dashboard/HimHIP.ts diff --git a/backend/src/Routes/Main/Dashboard.ts b/backend/src/Routes/Main/Dashboard.ts index 0c970ee0..ea0367c0 100644 --- a/backend/src/Routes/Main/Dashboard.ts +++ b/backend/src/Routes/Main/Dashboard.ts @@ -1,6 +1,7 @@ import {Router} from 'express'; import {DefaultRoute} from 'flyingfish_core'; import {DashboardInfoResponse, DefaultReturn, StatusCodes} from 'flyingfish_schemas'; +import {HimHIP} from './Dashboard/HimHIP.js'; import {Info} from './Dashboard/Info.js'; import {PublicIPBlacklistCheck} from './Dashboard/PublicIPBlacklistCheck.js'; import {StreamRequests} from './Dashboard/StreamRequests.js'; @@ -58,6 +59,19 @@ export class Dashboard extends DefaultRoute { } ); + this._get( + '/json/dashboard/refrechhimhip', + async(req, res) => { + if (this.isUserLogin(req, res, false)) { + res.status(200).json(await HimHIP.refrechHimHIP()); + } else { + res.status(200).json({ + statusCode: StatusCodes.UNAUTHORIZED + } as DefaultReturn); + } + } + ); + return super.getExpressRouter(); } diff --git a/backend/src/Routes/Main/Dashboard/HimHIP.ts b/backend/src/Routes/Main/Dashboard/HimHIP.ts new file mode 100644 index 00000000..8b31f38c --- /dev/null +++ b/backend/src/Routes/Main/Dashboard/HimHIP.ts @@ -0,0 +1,25 @@ +import {RedisChannels, RedisClient} from 'flyingfish_core'; +import {DefaultReturn, HimHIPUpdate, StatusCodes} from 'flyingfish_schemas'; + +export class HimHIP { + + /** + * Refrech HimHIP data information + */ + public static async refrechHimHIP(): Promise { + if (RedisClient.hasInstance()) { + const client = RedisClient.getInstance(); + await client.sendChannel( + RedisChannels.HIMHIP_UPDATE_REQ, + JSON.stringify({ + update: true + } as HimHIPUpdate) + ); + } + + return { + statusCode: StatusCodes.OK + }; + } + +} \ No newline at end of file diff --git a/frontend/src/inc/Api/Dashboard.ts b/frontend/src/inc/Api/Dashboard.ts index d3f39678..083dc401 100644 --- a/frontend/src/inc/Api/Dashboard.ts +++ b/frontend/src/inc/Api/Dashboard.ts @@ -1,7 +1,7 @@ import { DashboardInfoResponse, PublicIPBlacklistCheckResponse, - SchemaDashboardInfoResponse, + SchemaDashboardInfoResponse, SchemaDefaultReturn, SchemaPublicIPBlacklistCheckResponse, SchemaStreamRequestsResponse, StreamRequestsResponse @@ -34,4 +34,12 @@ export class Dashboard { return NetFetch.getData('/json/dashboard/streamrequests', SchemaStreamRequestsResponse); } + /** + * Refrech HimHIP data + */ + public static async refrechHimHIP(): Promise { + NetFetch.getData('/json/dashboard/refrechhimhip', SchemaDefaultReturn); + + return true; + } } \ No newline at end of file diff --git a/frontend/src/inc/Pages/Dashboard.ts b/frontend/src/inc/Pages/Dashboard.ts index f7b4e427..ee1177ba 100644 --- a/frontend/src/inc/Pages/Dashboard.ts +++ b/frontend/src/inc/Pages/Dashboard.ts @@ -14,7 +14,9 @@ import { InfoBox, InfoBoxBg, LeftNavbarLink, - SwitchTimer, Tooltip, TooltipInfo + SwitchTimer, + Tooltip, + TooltipInfo } from 'bambooo'; import moment from 'moment/moment'; import {Vts} from 'vts'; @@ -187,6 +189,17 @@ export class Dashboard extends BasePage { }); }, IconFa.copy); + + btnPubIp.addDivider(); + + btnPubIp.addMenuItem('Refrech', async() => { + if (await DashboardApi.refrechHimHIP()) { + this._toast.fire({ + icon: 'success', + title: 'Refrech is success' + }); + } + }, IconFa.sync); } // gateway ip ---------------------------------------------------------------------------------------------- @@ -214,6 +227,17 @@ export class Dashboard extends BasePage { }); }, IconFa.copy); + + btnGateway.addDivider(); + + btnGateway.addMenuItem('Refrech', async() => { + if (await DashboardApi.refrechHimHIP()) { + this._toast.fire({ + icon: 'success', + title: 'Refrech is success' + }); + } + }, IconFa.sync); } // host ip ------------------------------------------------------------------------------------------------- @@ -241,6 +265,17 @@ export class Dashboard extends BasePage { }); }, IconFa.copy); + + btnHostIp.addDivider(); + + btnHostIp.addMenuItem('Refrech', async() => { + if (await DashboardApi.refrechHimHIP()) { + this._toast.fire({ + icon: 'success', + title: 'Refrech is success' + }); + } + }, IconFa.sync); } // ip infos ------------------------------------------------------------------------------------------------