返回提交历史
Modified
src/controllers/custom/getGuildController.ts
+1
-1
Modified
static/webui/script.js
+50
-29
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
代码差异
2 个文件
+51
-30
@@ -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
};
@@ -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