XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

chore(webui): don't show loading state when data is already available (#3866)

Closes #3853 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3866 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

148590ce
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

2 个文件 +51 -30
Modified src/controllers/custom/getGuildController.ts +1 -1
@@ -40,5 +40,5 @@ export const getGuildController: RequestHandler = async (req, res) => {
40 40 });
41 41 return;
42 42 }
43 res.status(400).end();
43 res.json(null);
44 44 };
Modified static/webui/script.js +50 -29
@@ -172,6 +172,7 @@ function refreshServerConfig() {
172 172 function doAccountSwitch(to_route) {
173 173 window.authz = undefined;
174 174 inventory_data = undefined;
175 guild_data = undefined;
175 176 single.loadRoute(to_route);
176 177 sendAuth();
177 178 }
@@ -2778,8 +2779,7 @@ function dispatchFundTechProjectsBatch(requests) {
2778 2779
2779 2780 function fundAllTechProjects() {
2780 2781 revalidateAuthz().then(() => {
2781 const req = $.get("/custom/getGuild?guildId=" + window.guildId);
2782 req.done(data => {
2782 getGuildData().done(data => {
2783 2783 const requests = [];
2784 2784 data.TechProjects ??= [];
2785 2785 data.TechProjects.forEach(techProject => {
@@ -2815,8 +2815,7 @@ function dispatchCompleteTechProjectsBatch(requests) {
2815 2815
2816 2816 function completeAllTechProjects() {
2817 2817 revalidateAuthz().then(() => {
2818 const req = $.get("/custom/getGuild?guildId=" + window.guildId);
2819 req.done(data => {
2818 getGuildData().done(data => {
2820 2819 const requests = [];
2821 2820 data.TechProjects ??= [];
2822 2821 data.TechProjects.forEach(techProject => {
@@ -3715,20 +3714,21 @@ function doAddMissingMaxRankMods() {
3715 3714 // DetailedView Route
3716 3715
3717 3716 single.getRoute("#detailedView-route").on("beforeload", async function () {
3718 document.getElementById("detailedView-loading").classList.remove("d-none");
3719 document.getElementById("detailedView-title").textContent = "";
3720 document.querySelector("#detailedView-route .text-body-secondary").textContent = "";
3721 document.getElementById("loadout-card").classList.add("d-none");
3722 document.getElementById("archonShards-card").classList.add("d-none");
3723 document.getElementById("edit-suit-invigorations-card").classList.add("d-none");
3724 document.getElementById("umbraEchoes-card").classList.add("d-none");
3725 document.getElementById("modularParts-card").classList.add("d-none");
3726 document.getElementById("modularParts-form").innerHTML = "";
3727 document.getElementById("valenceBonus-card").classList.add("d-none");
3728 document.getElementById("u5ModEdit-card").classList.add("d-none");
3729 document.getElementById("equipmentFeatures-card").classList.add("d-none");
3730 document.getElementById("equipmentFeaturesButtons-card").innerHTML = "";
3731
3717 if (!inventory_data) {
3718 document.getElementById("detailedView-loading").classList.remove("d-none");
3719 document.getElementById("detailedView-title").textContent = "";
3720 document.querySelector("#detailedView-route .text-body-secondary").textContent = "";
3721 document.getElementById("loadout-card").classList.add("d-none");
3722 document.getElementById("archonShards-card").classList.add("d-none");
3723 document.getElementById("edit-suit-invigorations-card").classList.add("d-none");
3724 document.getElementById("umbraEchoes-card").classList.add("d-none");
3725 document.getElementById("modularParts-card").classList.add("d-none");
3726 document.getElementById("modularParts-form").innerHTML = "";
3727 document.getElementById("valenceBonus-card").classList.add("d-none");
3728 document.getElementById("u5ModEdit-card").classList.add("d-none");
3729 document.getElementById("equipmentFeatures-card").classList.add("d-none");
3730 document.getElementById("equipmentFeaturesButtons-card").innerHTML = "";
3731 }
3732 3732 populateDetailedViewRoute();
3733 3733 });
3734 3734
@@ -4065,10 +4065,22 @@ async function populateDetailedViewRoute() {
4065 4065 }
4066 4066 }
4067 4067
4068 single.getRoute("#guild-route").on("beforeload", function () {
4069 document.getElementById("guildView-loading").classList.remove("d-none");
4070 document.getElementById("guildView-na").classList.add("d-none");
4071 document.getElementById("guildView-naDescription").classList.add("d-none");
4068 let guild_data;
4069 // Assumes that caller revalidates authz
4070 function getGuildData() {
4071 return new Promise(resolve => {
4072 /*if (guild_data) { // TODO: Implement websocket events for guild changes, so we can be certain that cached data is okay to use.
4073 resolve(guild_data);
4074 } else*/ {
4075 $.get("/custom/getGuild?" + window.authz).done(guildData => {
4076 guild_data = guildData;
4077 resolve(guild_data);
4078 });
4079 }
4080 });
4081 }
4082
4083 function guildView_clear() {
4072 4084 document.getElementById("guildView-title").textContent = "";
4073 4085 document.getElementById("guildView-tier").textContent = "";
4074 4086 document.getElementById("guildView-class").textContent = "";
@@ -4092,10 +4104,24 @@ single.getRoute("#guild-route").on("beforeload", function () {
4092 4104 document.getElementById("guildView-alliance").textContent = "";
4093 4105 document.getElementById("Members-list").innerHTML = "";
4094 4106 $("#guild-route > .row").addClass("d-none");
4107 }
4095 4108
4109 single.getRoute("#guild-route").on("beforeload", function () {
4110 if (!guild_data) {
4111 document.getElementById("guildView-loading").classList.remove("d-none");
4112 document.getElementById("guildView-na").classList.add("d-none");
4113 document.getElementById("guildView-naDescription").classList.add("d-none");
4114 guildView_clear();
4115 }
4096 4116 awaitAuthz().then(() => {
4097 const guildReq = $.get("/custom/getGuild?" + window.authz);
4098 guildReq.done(guildData => {
4117 getGuildData().then(guildData => {
4118 if (!guildData) {
4119 document.getElementById("guildView-loading").classList.add("d-none");
4120 document.getElementById("guildView-na").classList.remove("d-none");
4121 document.getElementById("guildView-naDescription").classList.remove("d-none");
4122 guildView_clear();
4123 return;
4124 }
4099 4125 window.guildId = guildData._id;
4100 4126 window.itemListPromise.then(itemMap => {
4101 4127 document.getElementById("TechProjects-bulkAdd").classList.add("d-none");
@@ -4409,11 +4435,6 @@ single.getRoute("#guild-route").on("beforeload", function () {
4409 4435 }
4410 4436 });
4411 4437 });
4412 guildReq.fail(() => {
4413 document.getElementById("guildView-loading").classList.add("d-none");
4414 document.getElementById("guildView-na").classList.remove("d-none");
4415 document.getElementById("guildView-naDescription").classList.remove("d-none");
4416 });
4417 4438 });
4418 4439 });
4419 4440