bg.key, 'desc');
+ this.standardBackgrounds.splice(0, 0, { key: '', notes: () => this.$t('noBackground') });
if (this.editing) this.modalPage = 2;
},
methods: {
diff --git a/website/client/src/components/shops/market/equipmentSection.vue b/website/client/src/components/shops/market/equipmentSection.vue
index 4bc28229c1..419dd288f5 100644
--- a/website/client/src/components/shops/market/equipmentSection.vue
+++ b/website/client/src/components/shops/market/equipmentSection.vue
@@ -42,7 +42,7 @@
:item-width="94"
:item-margin="24"
:type="'gear'"
- :no-items-label="$t('noGearItemsOfClass')"
+ :no-items-label="noItemsLabel"
>
0) {
+ return `${this.$t('gearItemsCompleted', { klass: this.$t(this.selectedGroupGearByClass) })}
+ ${this.$t('moreArmoireGearAvailable', { armoireCount: this.armoireCount })}`;
+ }
+ return `${this.$t('gearItemsCompleted', { klass: this.$t(this.selectedGroupGearByClass) })}
+ ${this.$t('moreArmoireComing')}`;
+ },
marketGearCategories () {
return shops.getMarketGearCategories(this.user).map(c => {
c.id = c.identifier;
diff --git a/website/client/src/mixins/avatarEditUtilities.js b/website/client/src/mixins/avatarEditUtilities.js
index 19e4606bbd..00539be959 100644
--- a/website/client/src/mixins/avatarEditUtilities.js
+++ b/website/client/src/mixins/avatarEditUtilities.js
@@ -120,6 +120,9 @@ export const avatarEditorUtilities = { // eslint-disable-line import/prefer-defa
async unlock (path) {
const fullSet = path.indexOf(',') !== -1;
const isBackground = path.indexOf('background.') !== -1;
+ if (isBackground && path === 'background.') {
+ return this.set({ 'preferences.background': '' });
+ }
let cost;
diff --git a/website/client/src/store/actions/user.js b/website/client/src/store/actions/user.js
index e26b8109ba..88dc2f03df 100644
--- a/website/client/src/store/actions/user.js
+++ b/website/client/src/store/actions/user.js
@@ -1,3 +1,4 @@
+import getProps from 'lodash/get';
import setProps from 'lodash/set';
import axios from 'axios';
@@ -47,6 +48,9 @@ export async function set (store, changes) {
tagsIndexesToRemove.forEach(i => task.tags.splice(i, 1));
});
});
+ } else if ((key.startsWith('preferences.hair') || key.startsWith('preferences.chair'))
+ && getProps(user, key) === changes[key]) {
+ setProps(user, key, key.startsWith('preferences.chair') ? 'none' : 0);
} else {
setProps(user, key, changes[key]);
}
diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json
index 5bcbe7f09a..8fca1db0d2 100644
--- a/website/common/locales/en/gear.json
+++ b/website/common/locales/en/gear.json
@@ -9,7 +9,9 @@
"mysterySets": "Mystery Sets",
"gearNotOwned": "You do not own this item.",
"noGearItemsOfType": "You don't own any of these.",
- "noGearItemsOfClass": "You already have all your class equipment! More will be released during the Grand Galas, near the solstices and equinoxes.",
+ "gearItemsCompleted": "You own all <%= klass %> gear! New gear is released during the seasonal Galas.",
+ "moreArmoireGearAvailable": "Until then, there's <%= armoireCount %> pieces of gear in the Enchanted Armoire to find!",
+ "moreArmoireGearComing": "The Enchanted Armoire gets new stock every month too!",
"classLockedItem": "This item is only available to a specific class. At level 10 or above, you can change your class under the User icon > Settings > Character Build!",
"tierLockedItem": "This item is only available once you've purchased the previous items in sequence. Keep working your way up!",