From bd3de3c48cf1d87d4482bb6a0170b10aeca4d3bf Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 19 Apr 2019 16:18:32 +0200 Subject: [PATCH 1/3] Spells Performances (#11104) * spells: only select needed fields * fix tests * add comment --- website/server/libs/spells.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/website/server/libs/spells.js b/website/server/libs/spells.js index 2af8f7e8b7..7315b87f08 100644 --- a/website/server/libs/spells.js +++ b/website/server/libs/spells.js @@ -11,7 +11,9 @@ import { } from '../models/group'; import apiError from '../libs/apiError'; -const partyMembersFields = 'profile.name stats achievements items.special'; +const partyMembersFields = 'profile.name stats achievements items.special notifications flags'; +// Excluding notifications and flags from the list of public fields to return. +const partyMembersPublicFields = 'profile.name stats achievements items.special'; // @TODO: After refactoring individual spells, move quantity to the calculations @@ -78,8 +80,7 @@ async function castPartySpell (req, party, partyMembers, user, spell, quantity = 'party._id': party._id, _id: { $ne: user._id }, // add separately }) - // .select(partyMembersFields) Selecting the entire user because otherwise when saving it'll save - // default values for non-selected fields and pre('save') will mess up thinking some values are missing + .select(partyMembersFields) .exec(); partyMembers.unshift(user); @@ -101,8 +102,7 @@ async function castUserSpell (res, req, party, partyMembers, targetId, user, spe if (!party) throw new NotFound(res.t('partyNotFound')); partyMembers = await User .findOne({_id: targetId, 'party._id': party._id}) - // .select(partyMembersFields) Selecting the entire user because otherwise when saving it'll save - // default values for non-selected fields and pre('save') will mess up thinking some values are missing + .select(partyMembersFields) .exec(); } @@ -183,9 +183,9 @@ async function castSpell (req, res, {isV3 = false}) { let partyMembersRes = Array.isArray(partyMembers) ? partyMembers : [partyMembers]; // Only return some fields. - // See comment above on why we can't just select the necessary fields when querying + // We can't just return the selected fields because they're private partyMembersRes = partyMembersRes.map(partyMember => { - return common.pickDeep(partyMember.toJSON(), common.$w(partyMembersFields)); + return common.pickDeep(partyMember.toJSON(), common.$w(partyMembersPublicFields)); }); let userToJson = user; From e4eca4b767ba807611166fa8a86b4480b4c6c173 Mon Sep 17 00:00:00 2001 From: negue Date: Fri, 19 Apr 2019 16:22:37 +0200 Subject: [PATCH 2/3] Challenges: infinite scroll (#11112) * debounced infinite scroll on challenges * add back the normal link color --- website/client/assets/scss/tiers.scss | 20 +++++------ .../components/challenges/findChallenges.vue | 36 +++++++++++++------ .../components/challenges/myChallenges.vue | 35 ++++++++++++------ website/client/components/userLink.vue | 2 +- website/client/mixins/styleHelper.js | 3 +- 5 files changed, 62 insertions(+), 34 deletions(-) diff --git a/website/client/assets/scss/tiers.scss b/website/client/assets/scss/tiers.scss index 35a96ac996..52028395bd 100644 --- a/website/client/assets/scss/tiers.scss +++ b/website/client/assets/scss/tiers.scss @@ -1,41 +1,41 @@ .tier1 { - color: #c42870 !important; + color: #c42870; } .tier2 { - color: #b01515 !important; + color: #b01515; } .tier3 { - color: #d70e14 !important; + color: #d70e14; } .tier4 { - color: #c24d00 !important; + color: #c24d00; } .tier5 { - color: #9e650f !important; + color: #9e650f; } .tier6 { - color: #2b8363 !important; + color: #2b8363; } .tier7 { - color: #167e87 !important; + color: #167e87; } .tier8 { - color: #277eab !important; + color: #277eab; } .tier9 { - color: #6133b4 !important; + color: #6133b4; } .tierNPC, .npc { - color: #77f4c7 !important; + color: #77f4c7; fill: #77f4c7; stroke: #005737; } diff --git a/website/client/components/challenges/findChallenges.vue b/website/client/components/challenges/findChallenges.vue index bbd53e046e..875488e62b 100644 --- a/website/client/components/challenges/findChallenges.vue +++ b/website/client/components/challenges/findChallenges.vue @@ -21,13 +21,13 @@ .row .col-12.col-md-6(v-for='challenge in filteredChallenges') challenge-item(:challenge='challenge') - - .row - h2.col-12.loading(v-if='loading') {{ $t('loading') }} - - .row - .col-12.text-center(v-if='showLoadMore && !loading && filteredChallenges.length > 0') - button.btn.btn-flat.btn-show-more(@click='loadMore()') {{ $t('loadMore') }} + mugen-scroll( + :handler="infiniteScrollTrigger", + :should-handle="!loading && canLoadMore", + :threshold="1", + v-show="loading", + ) + h2.col-12.loading(v-once) {{ $t('loading') }}