2017-03-18 17:33:08 +00:00
|
|
|
import { loadAsyncResource } from 'client/libs/asyncResource';
|
Client Redesign: Inventory pages, secondary menu, misc css and design items (#8631)
* add colors palette
* add secondary menu component and style it
* add box shadow to secondary menu
* misc css, fixes for secondary menu
* client: add equipment page with grouping, css: add some styles
* add typography
* more equipment
* stable: fix linting
* equipment: add styles (lots of general styles too)
* remove duplicate google fonts loading
* add dropdowns
* design: white search input background, remove gray from items
* start adding drawer and selected indicator
* wip equipment
* fix equipment
* equipment: correctly bind new properties on items.gear.equipped
* equipment: fix vue binding. version 2
* equipment: fix vue binding. version 3
* back to first fix for equip op, fix for sourcemaps, send http request when an item is equipped, load bootstrap-vue components where needed
* checkboxes and radio buttons
* correctly renders selected items in first postion during the first render
* add search
* general changes, constants part of app state, add popovers
* add toggle switch, rename css
* correct offset
* upgrade deps
* upgrade deps
* drawer and lot of other work
* update equipping mechanism
* finish equipment
* fix compilation and upgrade deps
* use v-show in place of v-if to fix ui issues
* v-show -> v-if
* fix linting in test/client
* fix es6 compilation in test/client
* fix babel compilation for tests
* fix groupsUtilities mixin tests
* client: buttons
* client: buttons: fix colors
* client: finish buttons and dropdowns
* upgrade bootstrap-vue, finish buttons and dropdowns
* fix tasks page layout
* misc fixes for buttons
* add textareas
* fix app menu
* add inputs
* fixes for toggleSwitch
* typography
* checkboxes and radio buttons
* add checkbox icon
* fix equip.js
* extract strings to newClient.json
* add Popover above 'Use Costume' / 'Auto Equip' slider - disable item select if costume-mode and 'useCostume' isn't active
* show "you have disabled your costume" error above the drawer items
* check errorMessage for null
* hide star if costume not enabled
* fix errorMessage (!errorMessage seems not to work for string)
* show minimize / expand icon - always centered by css
* drawer test
* drawer: fix centering on large screens
* fix show more button
* add margin when two dropdowns are next to each other
* adjust the page padding based on the drawer, misc fixes
* drawer fixes
2017-05-16 19:09:55 +00:00
|
|
|
import setProps from 'lodash/set';
|
|
|
|
|
import axios from 'axios';
|
2016-12-07 01:11:40 +00:00
|
|
|
|
2017-08-14 17:15:32 +00:00
|
|
|
import { togglePinnedItem as togglePinnedItemOp } from 'common/script/ops/pinnedGearUtils';
|
2017-08-22 22:59:18 +00:00
|
|
|
import changeClassOp from 'common/script/ops/changeClass';
|
|
|
|
|
import disableClassesOp from 'common/script/ops/disableClasses';
|
|
|
|
|
|
2017-08-14 17:15:32 +00:00
|
|
|
|
2017-03-18 17:33:08 +00:00
|
|
|
export function fetch (store, forceLoad = false) { // eslint-disable-line no-shadow
|
|
|
|
|
return loadAsyncResource({
|
|
|
|
|
store,
|
|
|
|
|
path: 'user',
|
|
|
|
|
url: '/api/v3/user',
|
|
|
|
|
deserialize (response) {
|
|
|
|
|
return response.data.data;
|
|
|
|
|
},
|
|
|
|
|
forceLoad,
|
|
|
|
|
});
|
Client Redesign: Inventory pages, secondary menu, misc css and design items (#8631)
* add colors palette
* add secondary menu component and style it
* add box shadow to secondary menu
* misc css, fixes for secondary menu
* client: add equipment page with grouping, css: add some styles
* add typography
* more equipment
* stable: fix linting
* equipment: add styles (lots of general styles too)
* remove duplicate google fonts loading
* add dropdowns
* design: white search input background, remove gray from items
* start adding drawer and selected indicator
* wip equipment
* fix equipment
* equipment: correctly bind new properties on items.gear.equipped
* equipment: fix vue binding. version 2
* equipment: fix vue binding. version 3
* back to first fix for equip op, fix for sourcemaps, send http request when an item is equipped, load bootstrap-vue components where needed
* checkboxes and radio buttons
* correctly renders selected items in first postion during the first render
* add search
* general changes, constants part of app state, add popovers
* add toggle switch, rename css
* correct offset
* upgrade deps
* upgrade deps
* drawer and lot of other work
* update equipping mechanism
* finish equipment
* fix compilation and upgrade deps
* use v-show in place of v-if to fix ui issues
* v-show -> v-if
* fix linting in test/client
* fix es6 compilation in test/client
* fix babel compilation for tests
* fix groupsUtilities mixin tests
* client: buttons
* client: buttons: fix colors
* client: finish buttons and dropdowns
* upgrade bootstrap-vue, finish buttons and dropdowns
* fix tasks page layout
* misc fixes for buttons
* add textareas
* fix app menu
* add inputs
* fixes for toggleSwitch
* typography
* checkboxes and radio buttons
* add checkbox icon
* fix equip.js
* extract strings to newClient.json
* add Popover above 'Use Costume' / 'Auto Equip' slider - disable item select if costume-mode and 'useCostume' isn't active
* show "you have disabled your costume" error above the drawer items
* check errorMessage for null
* hide star if costume not enabled
* fix errorMessage (!errorMessage seems not to work for string)
* show minimize / expand icon - always centered by css
* drawer test
* drawer: fix centering on large screens
* fix show more button
* add margin when two dropdowns are next to each other
* adjust the page padding based on the drawer, misc fixes
* drawer fixes
2017-05-16 19:09:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function set (store, changes) {
|
|
|
|
|
const user = store.state.user.data;
|
|
|
|
|
|
|
|
|
|
for (let key in changes) {
|
2017-08-09 15:13:40 +00:00
|
|
|
if (key === 'tags') {
|
|
|
|
|
// Keep challenge and group tags
|
|
|
|
|
const oldTags = user.tags.filter(t => {
|
|
|
|
|
return t.group || t.challenge;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
user.tags = changes[key].concat(oldTags);
|
|
|
|
|
} else {
|
|
|
|
|
setProps(user, key, changes[key]);
|
|
|
|
|
}
|
Client Redesign: Inventory pages, secondary menu, misc css and design items (#8631)
* add colors palette
* add secondary menu component and style it
* add box shadow to secondary menu
* misc css, fixes for secondary menu
* client: add equipment page with grouping, css: add some styles
* add typography
* more equipment
* stable: fix linting
* equipment: add styles (lots of general styles too)
* remove duplicate google fonts loading
* add dropdowns
* design: white search input background, remove gray from items
* start adding drawer and selected indicator
* wip equipment
* fix equipment
* equipment: correctly bind new properties on items.gear.equipped
* equipment: fix vue binding. version 2
* equipment: fix vue binding. version 3
* back to first fix for equip op, fix for sourcemaps, send http request when an item is equipped, load bootstrap-vue components where needed
* checkboxes and radio buttons
* correctly renders selected items in first postion during the first render
* add search
* general changes, constants part of app state, add popovers
* add toggle switch, rename css
* correct offset
* upgrade deps
* upgrade deps
* drawer and lot of other work
* update equipping mechanism
* finish equipment
* fix compilation and upgrade deps
* use v-show in place of v-if to fix ui issues
* v-show -> v-if
* fix linting in test/client
* fix es6 compilation in test/client
* fix babel compilation for tests
* fix groupsUtilities mixin tests
* client: buttons
* client: buttons: fix colors
* client: finish buttons and dropdowns
* upgrade bootstrap-vue, finish buttons and dropdowns
* fix tasks page layout
* misc fixes for buttons
* add textareas
* fix app menu
* add inputs
* fixes for toggleSwitch
* typography
* checkboxes and radio buttons
* add checkbox icon
* fix equip.js
* extract strings to newClient.json
* add Popover above 'Use Costume' / 'Auto Equip' slider - disable item select if costume-mode and 'useCostume' isn't active
* show "you have disabled your costume" error above the drawer items
* check errorMessage for null
* hide star if costume not enabled
* fix errorMessage (!errorMessage seems not to work for string)
* show minimize / expand icon - always centered by css
* drawer test
* drawer: fix centering on large screens
* fix show more button
* add margin when two dropdowns are next to each other
* adjust the page padding based on the drawer, misc fixes
* drawer fixes
2017-05-16 19:09:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
axios.put('/api/v3/user', changes);
|
|
|
|
|
// TODO
|
|
|
|
|
// .then((res) => console.log('set', res))
|
|
|
|
|
// .catch((err) => console.error('set', err));
|
2017-07-06 15:38:52 +00:00
|
|
|
}
|
|
|
|
|
|
2017-07-29 22:08:36 +00:00
|
|
|
export async function sleep () {
|
|
|
|
|
let response = await axios.post('/api/v3/user/sleep');
|
|
|
|
|
return response.data.data;
|
2017-07-06 15:38:52 +00:00
|
|
|
}
|
2017-07-20 18:01:00 +00:00
|
|
|
|
|
|
|
|
export async function addWebhook (store, payload) {
|
|
|
|
|
let response = await axios.post('/api/v3/user/webhook', payload.webhookInfo);
|
|
|
|
|
return response.data.data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function updateWebhook (store, payload) {
|
|
|
|
|
let response = await axios.put(`/api/v3/user/webhook/${payload.webhook.id}`, payload.webhook);
|
|
|
|
|
return response.data.data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function deleteWebhook (store, payload) {
|
|
|
|
|
let response = await axios.delete(`/api/v3/user/webhook/${payload.webhook.id}`);
|
|
|
|
|
return response.data.data;
|
|
|
|
|
}
|
2017-08-14 17:15:32 +00:00
|
|
|
|
2017-08-22 22:59:18 +00:00
|
|
|
export async function changeClass (store, params) {
|
|
|
|
|
const user = store.state.user.data;
|
|
|
|
|
|
|
|
|
|
changeClassOp(user, params);
|
|
|
|
|
let response = await axios.post(`/api/v3/user/change-class?class=${params.query.class}`);
|
|
|
|
|
return response.data.data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function disableClasses (store) {
|
|
|
|
|
const user = store.state.user.data;
|
|
|
|
|
|
|
|
|
|
disableClassesOp(user);
|
|
|
|
|
let response = await axios.post('/api/v3/user/disable-classes');
|
|
|
|
|
return response.data.data;
|
|
|
|
|
}
|
2017-08-14 17:15:32 +00:00
|
|
|
|
|
|
|
|
export function togglePinnedItem (store, params) {
|
|
|
|
|
const user = store.state.user.data;
|
|
|
|
|
|
|
|
|
|
let addedItem = togglePinnedItemOp(user, params);
|
|
|
|
|
|
|
|
|
|
axios.get(`/api/v3/user/toggle-pinned-item/${params.type}/${params.path}`);
|
|
|
|
|
// TODO
|
|
|
|
|
// .then((res) => console.log('equip', res))
|
|
|
|
|
// .catch((err) => console.error('equip', err));
|
|
|
|
|
|
|
|
|
|
return addedItem;
|
|
|
|
|
}
|
2017-08-20 22:32:32 +00:00
|
|
|
|
|
|
|
|
export function castSpell (store, params) {
|
|
|
|
|
let spellUrl = `/api/v3/user/class/cast/${params.key}`;
|
|
|
|
|
if (params.targetId) spellUrl += `?targetId=${params.targetId}`;
|
|
|
|
|
|
|
|
|
|
return axios.post(spellUrl);
|
|
|
|
|
}
|
2017-08-26 10:18:55 +00:00
|
|
|
|
|
|
|
|
export function openMysteryItem () {
|
|
|
|
|
return axios.post('/api/v3/user/open-mystery-item');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function rebirth () {
|
|
|
|
|
return axios.post('/api/v3/user/rebirth');
|
|
|
|
|
}
|