From 20994f693ce9fa22f1711f6d546f875dfae4627b Mon Sep 17 00:00:00 2001 From: RaidMax Date: Thu, 22 Feb 2018 00:06:21 -0600 Subject: [PATCH] web front design tweaks and favicon added --- Admin/Application.csproj | 33 ++++++++++++++++ Admin/lib | Bin 0 -> 406 bytes IW4MAdmin.sln | 24 ++++++------ Plugins/SimpleStats/StatsPlugin.csproj | 24 ++++++++++++ Plugins/Welcome/WelcomePlugin.csproj | 24 ++++++++++++ SharedLibrary/Commands/NativeCommands.cs | 2 +- SharedLibrary/Dtos/ServerInfo.cs | 2 +- SharedLibrary/SharedLibrary.csproj | 24 ++++++++++++ WebfrontCore/Controllers/HomeController.cs | 1 + WebfrontCore/Controllers/ServerController.cs | 3 +- WebfrontCore/Program.cs | 6 ++- .../PublishProfiles/FolderProfile1.pubxml | 21 ++++++++++ .../ViewComponents/ServerListViewComponent.cs | 2 +- WebfrontCore/Views/Client/Find/Index.cshtml | 2 +- .../Views/Client/Privileged/Index.cshtml | 4 +- .../Views/Client/Profile/Index.cshtml | 14 +++---- .../Views/Server/_ClientActivity.cshtml | 18 ++++++--- WebfrontCore/Views/Shared/_Layout.cshtml | 11 +++++- WebfrontCore/WebfrontCore.csproj | 1 + WebfrontCore/wwwroot/css/profile.css | 37 +++++------------- WebfrontCore/wwwroot/favicon.ico | Bin 32038 -> 32038 bytes WebfrontCore/wwwroot/js/profile.js | 9 ++++- WebfrontCore/wwwroot/js/server.js | 5 ++- 23 files changed, 204 insertions(+), 63 deletions(-) create mode 100644 Admin/lib create mode 100644 WebfrontCore/Properties/PublishProfiles/FolderProfile1.pubxml diff --git a/Admin/Application.csproj b/Admin/Application.csproj index fd6715330..17914b731 100644 --- a/Admin/Application.csproj +++ b/Admin/Application.csproj @@ -159,6 +159,39 @@ MinimumRecommendedRules.ruleset true + + bin\Release\ + TRACE + true + true + 3 + pdbonly + x86 + On + prompt + false + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + true + x86 + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + true + 3 + pdbonly + x64 + On + prompt + false + MinimumRecommendedRules.ruleset + true + diff --git a/Admin/lib b/Admin/lib new file mode 100644 index 0000000000000000000000000000000000000000..fc38b3684fbe06e056c123e9ff6f576f842c8b69 GIT binary patch literal 406 zcma)&K?=e!6hvn&c!wT9ih?%~T)7dwK#Z*hVp`guw^wI=tHqt0<|l9dpZR?~kGP^j zff@mkRnI!2frmrp{mgqn;x|(njMwCmq(aAc$FC+NzGj{W?6I>`{64BSq&Kuwds9t* zCA9_Sm|;teCd#*?T3HQlnOqreI$l7`C9(|izJDrmx~ESXlT7=Tmf;N($w#&T literal 0 HcmV?d00001 diff --git a/IW4MAdmin.sln b/IW4MAdmin.sln index d8666ad47..28fe4406c 100644 --- a/IW4MAdmin.sln +++ b/IW4MAdmin.sln @@ -80,8 +80,8 @@ Global {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release|Mixed Platforms.Build.0 = Release-Stable|x86 {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release|x64.ActiveCfg = Release-Nightly|x64 {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release|x64.Build.0 = Release-Nightly|x64 - {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release|x86.ActiveCfg = Debug|x86 - {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release|x86.Build.0 = Debug|x86 + {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release|x86.ActiveCfg = Release|x86 + {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release|x86.Build.0 = Release|x86 {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Nightly|Any CPU.ActiveCfg = Release-Nightly|Any CPU {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Nightly|Any CPU.Build.0 = Release-Nightly|Any CPU {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Nightly|Mixed Platforms.ActiveCfg = Release-Nightly|x86 @@ -112,8 +112,8 @@ Global {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release|Mixed Platforms.Build.0 = Release-Stable|x86 {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release|x64.ActiveCfg = Release-Nightly|x64 {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release|x64.Build.0 = Release-Nightly|x64 - {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release|x86.ActiveCfg = Debug|x86 - {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release|x86.Build.0 = Debug|x86 + {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release|x86.ActiveCfg = Release|x86 + {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release|x86.Build.0 = Release|x86 {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Nightly|Any CPU.ActiveCfg = Release-Nightly|Any CPU {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Nightly|Any CPU.Build.0 = Release-Nightly|Any CPU {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Nightly|Mixed Platforms.ActiveCfg = Release-Nightly|x86 @@ -144,8 +144,8 @@ Global {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release|Mixed Platforms.Build.0 = Release-Stable|x86 {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release|x64.ActiveCfg = Release-Nightly|x64 {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release|x64.Build.0 = Release-Nightly|x64 - {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release|x86.ActiveCfg = Debug|x86 - {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release|x86.Build.0 = Debug|x86 + {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release|x86.ActiveCfg = Release|x86 + {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release|x86.Build.0 = Release|x86 {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Nightly|Any CPU.ActiveCfg = Release-Nightly|Any CPU {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Nightly|Any CPU.Build.0 = Release-Nightly|Any CPU {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Nightly|Mixed Platforms.ActiveCfg = Release-Nightly|x86 @@ -176,8 +176,8 @@ Global {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release|Mixed Platforms.Build.0 = Release-Stable|x86 {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release|x64.ActiveCfg = Release-Nightly|x64 {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release|x64.Build.0 = Release-Nightly|x64 - {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release|x86.ActiveCfg = Debug|x86 - {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release|x86.Build.0 = Debug|x86 + {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release|x86.ActiveCfg = Release|x86 + {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release|x86.Build.0 = Release|x86 {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Nightly|Any CPU.ActiveCfg = Release-Nightly|Any CPU {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Nightly|Any CPU.Build.0 = Release-Nightly|Any CPU {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Nightly|Mixed Platforms.ActiveCfg = Release-Nightly|x86 @@ -346,16 +346,16 @@ Global {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Debug|x64.ActiveCfg = Debug|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Debug|x64.Build.0 = Debug|Any CPU - {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Debug|x86.ActiveCfg = Debug|Any CPU - {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Debug|x86.Build.0 = Debug|Any CPU + {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Debug|x86.ActiveCfg = Debug|x86 + {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Debug|x86.Build.0 = Debug|x86 {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|Any CPU.ActiveCfg = Release|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|Any CPU.Build.0 = Release|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|Mixed Platforms.Build.0 = Release|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|x64.ActiveCfg = Release|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|x64.Build.0 = Release|Any CPU - {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|x86.ActiveCfg = Release|Any CPU - {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|x86.Build.0 = Release|Any CPU + {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|x86.ActiveCfg = Release|x86 + {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release|x86.Build.0 = Release|x86 {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release-Nightly|Any CPU.ActiveCfg = Release|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release-Nightly|Any CPU.Build.0 = Release|Any CPU {65340D7D-5831-406C-ACAD-B13BA634BDE2}.Release-Nightly|Mixed Platforms.ActiveCfg = Release|Any CPU diff --git a/Plugins/SimpleStats/StatsPlugin.csproj b/Plugins/SimpleStats/StatsPlugin.csproj index 54a985466..d2448fd11 100644 --- a/Plugins/SimpleStats/StatsPlugin.csproj +++ b/Plugins/SimpleStats/StatsPlugin.csproj @@ -83,6 +83,30 @@ prompt MinimumRecommendedRules.ruleset + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + true + x86 + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + diff --git a/Plugins/Welcome/WelcomePlugin.csproj b/Plugins/Welcome/WelcomePlugin.csproj index e382a0566..e88851754 100644 --- a/Plugins/Welcome/WelcomePlugin.csproj +++ b/Plugins/Welcome/WelcomePlugin.csproj @@ -83,6 +83,30 @@ prompt MinimumRecommendedRules.ruleset + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + true + x86 + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + diff --git a/SharedLibrary/Commands/NativeCommands.cs b/SharedLibrary/Commands/NativeCommands.cs index 7161ae0eb..41ab7326a 100644 --- a/SharedLibrary/Commands/NativeCommands.cs +++ b/SharedLibrary/Commands/NativeCommands.cs @@ -169,7 +169,7 @@ namespace SharedLibrary.Commands public override async Task ExecuteAsync(Event E) { String Message = Utilities.RemoveWords(E.Data, 1).Trim(); - var length = E.Data.Split(' ')[0].ParseTimespan(); + var length = E.Data.Split(' ')[0].ToLower().ParseTimespan(); if (E.Origin.Level > E.Target.Level) { diff --git a/SharedLibrary/Dtos/ServerInfo.cs b/SharedLibrary/Dtos/ServerInfo.cs index d105706ea..ae42657a1 100644 --- a/SharedLibrary/Dtos/ServerInfo.cs +++ b/SharedLibrary/Dtos/ServerInfo.cs @@ -14,7 +14,7 @@ namespace SharedLibrary.Dtos public string GameType { get; set; } public int ClientCount { get; set; } public int MaxClients { get; set; } - public List ChatHistory { get; set; } + public Chat[] ChatHistory { get; set; } public List Players { get; set; } public Helpers.PlayerHistory[] PlayerHistory { get; set; } public int ID { get; set; } diff --git a/SharedLibrary/SharedLibrary.csproj b/SharedLibrary/SharedLibrary.csproj index 0c12cbbe6..caac09cfb 100644 --- a/SharedLibrary/SharedLibrary.csproj +++ b/SharedLibrary/SharedLibrary.csproj @@ -93,6 +93,30 @@ prompt MinimumRecommendedRules.ruleset + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + true + x86 + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll diff --git a/WebfrontCore/Controllers/HomeController.cs b/WebfrontCore/Controllers/HomeController.cs index c1d7dfe70..b0d5d4416 100644 --- a/WebfrontCore/Controllers/HomeController.cs +++ b/WebfrontCore/Controllers/HomeController.cs @@ -12,6 +12,7 @@ namespace WebfrontCore.Controllers { public IActionResult Index() { + ViewBag.Title = "Server Overview"; return View(); } diff --git a/WebfrontCore/Controllers/ServerController.cs b/WebfrontCore/Controllers/ServerController.cs index 9503e7e69..d21674445 100644 --- a/WebfrontCore/Controllers/ServerController.cs +++ b/WebfrontCore/Controllers/ServerController.cs @@ -11,6 +11,7 @@ namespace WebfrontCore.Controllers { [HttpGet] + [ResponseCache(NoStore = true, Duration = 0)] public IActionResult ClientActivity(int id) { @@ -32,7 +33,7 @@ namespace WebfrontCore.Controllers Name = p.Name, ClientId = p.ClientId }).ToList(), - ChatHistory = s.ChatHistory, + ChatHistory = s.ChatHistory.OrderBy(c => c.Time).Take((int)Math.Ceiling(s.ClientNum / 2.0)).ToArray(), PlayerHistory = s.PlayerHistory.ToArray() }; return PartialView("_ClientActivity", serverInfo); diff --git a/WebfrontCore/Program.cs b/WebfrontCore/Program.cs index 59af9f63c..bb6cbbbc9 100644 --- a/WebfrontCore/Program.cs +++ b/WebfrontCore/Program.cs @@ -16,7 +16,11 @@ namespace WebfrontCore .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() - .UseUrls("http://192.168.1.27:5000;http://server.nbsclan.org:8080") +#if !DEBUG + .UseUrls("http://server.nbsclan.org:8080") +#else + .UseUrls("http://192.168.88.254:5000") +#endif .Build(); host.Run(); diff --git a/WebfrontCore/Properties/PublishProfiles/FolderProfile1.pubxml b/WebfrontCore/Properties/PublishProfiles/FolderProfile1.pubxml new file mode 100644 index 000000000..416719679 --- /dev/null +++ b/WebfrontCore/Properties/PublishProfiles/FolderProfile1.pubxml @@ -0,0 +1,21 @@ + + + + + FileSystem + FileSystem + Debug + x86 + + True + False + 65340d7d-5831-406c-acad-b13ba634bde2 + bin\Debug\PublishOutput + True + net452 + win7-x86 + + \ No newline at end of file diff --git a/WebfrontCore/ViewComponents/ServerListViewComponent.cs b/WebfrontCore/ViewComponents/ServerListViewComponent.cs index 32a6dc3f1..65e8694ac 100644 --- a/WebfrontCore/ViewComponents/ServerListViewComponent.cs +++ b/WebfrontCore/ViewComponents/ServerListViewComponent.cs @@ -28,7 +28,7 @@ namespace WebfrontCore.ViewComponents Name = p.Name, ClientId = p.ClientId }).ToList(), - ChatHistory = s.ChatHistory + ChatHistory = s.ChatHistory.ToArray() }).ToList(); return View("_List", serverInfo); } diff --git a/WebfrontCore/Views/Client/Find/Index.cshtml b/WebfrontCore/Views/Client/Find/Index.cshtml index 38602e7b0..549fd27f8 100644 --- a/WebfrontCore/Views/Client/Find/Index.cshtml +++ b/WebfrontCore/Views/Client/Find/Index.cshtml @@ -1,7 +1,7 @@ @model List
-

@ViewBag.Title

+

@ViewBag.Title

Name
Level
diff --git a/WebfrontCore/Views/Client/Privileged/Index.cshtml b/WebfrontCore/Views/Client/Privileged/Index.cshtml index 234040969..14348652e 100644 --- a/WebfrontCore/Views/Client/Privileged/Index.cshtml +++ b/WebfrontCore/Views/Client/Privileged/Index.cshtml @@ -1,5 +1,5 @@ @model Dictionary> -

@ViewBag.Title

+

@ViewBag.Title

@{ @@ -12,7 +12,7 @@
@foreach (var client in Model[key]) { - @Html.ActionLink(client.Name, "profileasync", "client", new { id = client.ClientId }, new { @class = "text-light" })
+ @Html.ActionLink(client.Name, "profileasync", "client", new { id = client.ClientId }, new { @class = "" })
}
} diff --git a/WebfrontCore/Views/Client/Profile/Index.cshtml b/WebfrontCore/Views/Client/Profile/Index.cshtml index 893aeb23b..54ff7e517 100644 --- a/WebfrontCore/Views/Client/Profile/Index.cshtml +++ b/WebfrontCore/Views/Client/Profile/Index.cshtml @@ -1,14 +1,14 @@ @model SharedLibrary.Dtos.PlayerInfo -
+
@Model.Name[0].ToString().ToUpper()
-
+
- @Model.Name +

@Model.Name

@{ foreach (string alias in Model.Aliases) @@ -18,8 +18,8 @@ }
-
- @Model.Level +
+
@Model.Level
Played @Model.TimePlayed hours @@ -31,11 +31,11 @@ Last seen @Model.LastSeen ago
-
+
-
+
@{ if (Model.Meta.Count == 0) diff --git a/WebfrontCore/Views/Server/_ClientActivity.cshtml b/WebfrontCore/Views/Server/_ClientActivity.cshtml index 349cfa079..b7f4f2b42 100644 --- a/WebfrontCore/Views/Server/_ClientActivity.cshtml +++ b/WebfrontCore/Views/Server/_ClientActivity.cshtml @@ -6,14 +6,22 @@ }
@{ - for (int i = 0; i < half && i < Model.ChatHistory.Count; i++) + for (int i = 0; i < Model.ChatHistory.Length; i++) { string message = "– " + @Model.ChatHistory[i].Message; if (Model.ChatHistory[i].Message == "CONNECTED") - message = ""; - else if (Model.ChatHistory[i].Message == "DISCONNECTED") - message = ""; - @Html.ActionLink(Model.Players[i].Name, "ProfileAsync", "Client", new { id = Model.Players[i].ClientId }, new { @class = "text-muted" }) @Html.Raw(@message)
+ { + @Model.ChatHistory[i].Name
+ } + if (Model.ChatHistory[i].Message == "DISCONNECTED") + { + + @Model.ChatHistory[i].Name
+ } + if (Model.ChatHistory[i].Message != "CONNECTED" && Model.ChatHistory[i].Message != "DISCONNECTED") + { + @Model.ChatHistory[i].Name @Html.Raw(@message)
+ } } }
diff --git a/WebfrontCore/Views/Shared/_Layout.cshtml b/WebfrontCore/Views/Shared/_Layout.cshtml index 36870ab2c..ba72e3f1c 100644 --- a/WebfrontCore/Views/Shared/_Layout.cshtml +++ b/WebfrontCore/Views/Shared/_Layout.cshtml @@ -9,6 +9,10 @@ + + + +
@@ -24,7 +28,7 @@
- +
@@ -39,6 +43,11 @@ + + + + + @RenderSection("scripts", required: false) diff --git a/WebfrontCore/WebfrontCore.csproj b/WebfrontCore/WebfrontCore.csproj index da3612c7b..789efc3f5 100644 --- a/WebfrontCore/WebfrontCore.csproj +++ b/WebfrontCore/WebfrontCore.csproj @@ -6,6 +6,7 @@ WebfrontCore Exe WebfrontCore + AnyCPU;x86 diff --git a/WebfrontCore/wwwroot/css/profile.css b/WebfrontCore/wwwroot/css/profile.css index c6860b319..c468668b5 100644 --- a/WebfrontCore/wwwroot/css/profile.css +++ b/WebfrontCore/wwwroot/css/profile.css @@ -68,7 +68,7 @@ } .profile-meta-entry { - font-size: 1.5em; + } .penalties-color-kick, @@ -113,19 +113,17 @@ #profile_aliases { position: relative; display: none; - top: 0.2em; - font-size: 0.5em; - line-height: 1.2em; + } #profile_avatar { - height: 200px; - width: 200px; + height: 10.5rem; + width: 10.5rem; } .profile-shortcode { - font-size: 150pt; - line-height: 11rem; + font-size: 10.5rem; + line-height: 10.5rem; color: white; } @@ -142,9 +140,7 @@ #profile_level > span.level { color: rgba(236, 130, 222, 0.69); - font-weight: bold; - font-size: 1.5em; - line-height: 1.4em; + font-weight: bold; } #profile_wrapper { @@ -152,24 +148,9 @@ } #profile_name { - font-size: 4em; - margin-top: -2rem; + } #profile_info > .text-muted { - font-size: 1.5em; - line-height: 2.25rem; + } - -#profile_aliases_btn { - position: absolute; - top: auto; - margin-top: 2.25rem; - font-size: 0.5em; - color: rgb(0,122,204); -} - - #profile_aliases_btn:hover { - color: white; - cursor: pointer; - } diff --git a/WebfrontCore/wwwroot/favicon.ico b/WebfrontCore/wwwroot/favicon.ico index a3a799985c43bc7309d701b2cad129023377dc71..3edaf82e78eddb63bc92829bab97e7199c2b7c02 100644 GIT binary patch literal 32038 zcmeHQ30PF;xt!?&}l~y%rk_w@(>I1DxwM?Z_`T7ogry+g^;ubF+{9d3^{dAg2wRGvg z_oA0ns{ZFyszoS+tbi~Ok3a>mswv|J9?LiW-M)QWJycKE)vM}*rKK8Y;fHM6v?M4l zE+;THwi8cpP;Bf;eEY9YPWF+4)z{aj4vvri3(EB4xsB%ro{qtH`fdx|wCOo97$NcT zD+cpk0i4x|+qaJ)m=Q@y^MF5oFs%*WGx;zw3kp1uehyDR=wHT9zuwcM28=j@fiQ@l zjxx^=rXAs@vESiINplH4Rc##rR(#naLA)mJup6SaBs6oQNA>X!IF%|qEe zWr1p53L<$4G=XjsSQ=Z0k)za?0fU;$<}X!C=9yxH5^Yr{7S zqb%~iiH!f~H;^~ptkX2u(xC3D+P1=z&Fd)aXew7T!IK{}`+I)G=sdC@!%ik(-1Cmg ziKUyL$Wizc$VTJdu929;TcXlBgEH8ocrwh$unm(DVdp`NA!A+ z;gD-nON%BvG4WZn)iBtKGPGNZ%|dt;-<4>KF<}V_uk0@^)w-J=*x09lqnK=kqX+p; z!xp_+aqO6lEmcBOYkRvoG$COPa8jS;5H~juFc9qBn1z-_X=#kuTA?aqHIU zp!FA^H_d)0@r0028Doaj7mwFE5*x}?Cde<4Qa^*&owt|Ad4_w`G%~50xv!up>NdJM3n93l)nYv=3j*Jip6E@+BF(9 zpWwhC8T?2rKQ|t<|CCz}a0LAVZW*C>)Wa$+9O!}7XA#QJ#sOalw;bqsgH3ZLgbqyw zoSQ5xz^#;19{ID`G8Cd6JR(-EVqb))t?TUSBHyx^1M70*`ST9jL10YGE>4--;Ry+X zI&TQ`UBLK{*(pXF#RLBt78csmbz^zC!@dG#QrR*T!sb84$6*Yfbw7NnbMUA7%@K11 z{r{>HCp3W7#(~w|eBpva{>i>@%G`z?t>NM~gwB3&5Vyq-WdgPKX9@&kZlwO^pc zz=b3Bj{1I)iy!68rpii-+>D`fe1ZGCjUTD=h!=tdK0f2Z!FQlgK7L$wVWB5*Hgd~? zrvEa8-w(b$cs{Jfmv3x7nrI_e`2BPE_7nB^3?G-+H`?5<2l3y8{QZg|7e5NVTWt8I zF~H!%gxs@$g_XE%n>WdtOFzDkv|PL>=%cgcxM6Be&S=Q15Hv3{h0j?8+|4X5p^ym} zZP5|f$tQuUnu{Cny%C9tPjlhRc|Q+3ZU~=8x+aO6=wbZ5@__qU;Ii5qmIm0}Kghwy z&tsIq_Z?Yix(ZW284upivUm~FnAfkazTQSR_;`fA4Ph3(o9@8BQ`cf~h9I98p(}qP z{NyLVZ(4a7Hc$w@RGcwBrx{?j}Krc6~U@mS|69vGRYkgBthH22M+jL7o;wk&U8-nR_C z`A+!Ep|P=}t52M8IKKHN>)Z@lBU4fyf={>xbn> zH*DE5>y!fj&D}hvWMz$kFa8Q>E(DEN$;XrNSmvnU6Q;m7ej#_?KG}2a?xY{`egyKQ zF}0mzOSUjq1=#1OLhk~>mcBX$>VbL zmMsrDL!(&U!$zYPwr;x!?R~KM0h#&vqr}RK#c#^U@P@tziom6{)2#HoJeS)7^oG`& zX&ss0UT=YRzp|<-hcXxA0sXQDJOlu?P(Ad*CcPw9R!)5L#fuuqAzy%Yl23k8X6AS~ zaHR4i0tR616~VFHmGvgfSNH<1knDS*pASpXqVcKG7r6wQBOePae-wF|+c{zxgEV&xjK zZV7qS+u@6iZ8$f$rYTldC?0a29S{>^*QS6YT_`_4uCu*KZ3y-KJ`=U*9)6nGH~KWQ z9sO}}ou=|~(e)@XSfcb}9ZakY8{gh?Osx-@{bS4pc4JS|_t1Kh6SB_b!^8L2=-0o^htt`9UTp~WSq`~hx6*Ez*H&L)LVX;LuK<(woY~M$ z-=JYLAD7&3_%|O5!9>5dfeWLj=Q`2;I;%6b^kZ(`f0Se&bO3vGs81BY)sOz`JuWV1 z-m%`d2r%u&E6~$!?A2IEu&#ABtBpZZe*~SmY)3b{uAtK*4um-a1$S5%obSd)64@$={wrJZ=tX&O(8v;mB#y?`S}2nXW#7-X!COUVX$ z`2)b_`fxWe9*9rfnKi)}GGnEv&ako{44IIri}-lpTYAu19^ec4&o_blKlo*w{l*w# z6y#v>p`kY|=$GHwmbcSukaoMZ99pDyI%|boxwHJBAIPoC`@mvH(RLmJeR(2sr#`D2xU745mD0_YqxI6d z)2B6UEhp3#x%&%Upt?h4y4)D6%sus$e@ ze(WhR1>N&9t#3U%PI;RiaDc1j=jjp>kF{+jDe8dLb( zxrU(W%dwX(3c6NHykMWtS!48LQ{=+ATk@3`WqTZndTxO+V8VMx);~AvZlP<04rTid zusvwx?;Df=?bBL{XB{5vJ}pFyoF`MJ&m(qVL~bKGFrot^IxwOG?$CkOOPACoCX@C+ zX{pzj;o;*_v$DL7*VWzi;|`^~?w!vX8Lo1)cN9D?!Q5dY_@uMf?0ll!@N3LR9>hMM)z~{X zVYuja6;BQHnCcp|+ngy=z`s>akY77=;>(mBJEpoy-%ys1Nll#x{oM{;h1Pwn{3w+L zHF?Y%VXQ^<4zuw!YZ$+(O{p}8qjZ@ zcXx&trFkLi2CR2EeNIv-pF-uRt)pEA4maGX>l6PWzE70K@71*C^MCJt;2?HNSlLSiAi(=#{JUv=_J-ecAiC4{A=S z*=)D(h2)8K<;mzfmZ5#efG@Fq#ddZSc^l)>(iHE9;N)Y$PXg(qY8?n!7{YpH(4U~}Uk-$Mn54?DeIS&9asw7tc}p5UpFi(BNq2kT(J zDK?p0TJwdSp9kKA)@AMV0Qf!@qS>8ssLQuR__fl5I%`FL_+5A5rFuo%(aFHug?2F8 zU3mF$upfQ`c%%Dkth@@m_iWg_+3hyjh_e@RWB`BL?p`=PA43Z~Xmj6)06o_>XJt)u1k2fU>>Jdg9op?%=He&c*OhYza%e*TaW8a`drt{h z{+4&x&0oub5BHlE0IB3P7du8q5HJN=(&Y`?{2G$Hry))nKDxNHf-H0dhd`D9vzi|yh9}DxeZ&j z!VwI)>B*UylYvXrH^pAwqcv{UH%GL=_qMtBhc64#S4S}9rlZe)k`JHzjXoz-E-ZKD zOWnEC8#LIRV_@lmzV3AwF4)tbuyBP!@W0w!xa7h)e)6OSw9xrYK^p-3P=WI(Zka#y zi;AN0y&xWnhd->y*Q>3_*XXnVs(5Y>c=wCZ1^zD{b>R#kw;piT{X;Q46pu06c3Qiu8ZZ>)lQAMh3KU?YTpug=*+_>Vr9AUm3hC@7y_s2?(jaimo#YN ztK58Y-gEcw*HRl7qYG(@&IbwM#+gMr?Ez{obEp{ zFEAf8iTdNvjV)aKuDq9+&2-0KlZ320F?Tgd3`Y%+w6x`_m_oClfCb+0{3B{ekJc0 zhR^2KIZ@a+$$1~pQ-d>0HuG;yjj(k=)7MJ#K41fI9`k2H@)L>!Z_h#IqU{m7+Kx5D zu|j2)#^FwxDS#`vj){94f62nHE6db?_s`|=AxzA0O+bH#9UpqAq{5?=4>FoWIwnsux7{49iAD$9M~_VXrMIAReVQ?epll# z@BI+q3!PD-yDM{`BhxAh{;0)SsExAu=E#T%nf{;@jnMlgz;AaJmMagm!y~lzE(J$v zS|ipu!RJOUKD>96-lN{Nm4)lH`jD9sN_eL-*gtP`7LQ9O*14WW`;(gUAph(Z?$P}L zx177*@%t6CL5Jo1HpczOK$qpN>l#C<#t`BYrIdFnhrR51e0php74=TGx0@$-JAV}I zF9-RDr0%(NVZ5^nXC&j;KEKwyO=Ar8iE)K@3;#OLZYK6A>)j``RtBEv{tQt+hm{HH zqz!Zb^SN{m)q55C-!nJ^Oz^AreW69YN4v^9TOQ{c{+-~Wzx@l+&Aw<&DqxX>RQ#CZH6SL#qn+47U1OC$PPI@3&N_s?Q&^=;aJz@`mXSh?pf=;JIt?GUtg!8Xxfy5Sj%FT5i^e++c} zt!=w^Tm6FJ;+w@&vT4~uoSDpL{Ip$Sb>{APW8kD;vH0(nFhA)-Z)2G6i>AN{>o9N4 znEW)i+|4%&5BG9p+%0^I(Q!EaEAOTq!11GK8sO?lhxcOniqua5AQm7VZ76uo326Xg91%zbY8fd zV8C`5Lht>dqw@c3=?Auljy)2w_ys0l>?cJ*_pSbC<8OqYk#mH1gAU+&fRVrd#}fEo D@Z25R literal 32038 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.value} ${meta.key}
`; + $("#profile_meta").append(metaString); + } + }); + $.each(clientInfo.Meta, function (index, meta) { loadMeta(meta); diff --git a/WebfrontCore/wwwroot/js/server.js b/WebfrontCore/wwwroot/js/server.js index 6b6c58671..0ca171c81 100644 --- a/WebfrontCore/wwwroot/js/server.js +++ b/WebfrontCore/wwwroot/js/server.js @@ -71,7 +71,10 @@ function refreshClientActivity() { $('.server-history-row').each(function (index) { let serverId = $(this).data("serverid"); - $.get("/server/clientactivity/" + serverId) + $.get({ + url: "/server/clientactivity/" + serverId, + cache: false + }) .done(function (response) { $('#server_clientactivity_' + serverId).html(response); })