2016-09-18 19:51:20 +00:00
|
|
|
import Vue from 'vue';
|
|
|
|
|
import VueRouter from 'vue-router';
|
2017-01-17 18:45:27 +00:00
|
|
|
|
2017-06-09 01:24:40 +00:00
|
|
|
import EmptyView from './components/emptyView';
|
|
|
|
|
|
2017-01-17 18:45:27 +00:00
|
|
|
// TODO Dummy elements used as placeholder until real components are implemented
|
2016-11-18 18:20:25 +00:00
|
|
|
import ParentPage from './components/parentPage';
|
2016-09-20 16:58:02 +00:00
|
|
|
import Page from './components/page';
|
2016-09-18 19:51:20 +00:00
|
|
|
|
2016-12-29 19:24:08 +00:00
|
|
|
|
2017-06-26 21:55:14 +00:00
|
|
|
// All the main level
|
2017-06-08 19:04:19 +00:00
|
|
|
// components are loaded in separate webpack chunks.
|
|
|
|
|
// See https://webpack.js.org/guides/code-splitting-async/
|
|
|
|
|
// for docs
|
|
|
|
|
|
2017-06-26 21:55:14 +00:00
|
|
|
// Tasks
|
|
|
|
|
const UserTasks = () => import(/* webpackChunkName: "userTasks" */'./components/tasks/user');
|
|
|
|
|
|
2017-01-17 18:45:27 +00:00
|
|
|
// Inventory
|
2017-06-08 19:04:19 +00:00
|
|
|
const InventoryContainer = () => import(/* webpackChunkName: "inventory" */'./components/inventory/index');
|
|
|
|
|
const ItemsPage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/items/index');
|
|
|
|
|
const EquipmentPage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/equipment/index');
|
2017-06-23 11:24:10 +00:00
|
|
|
const StablePage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/stable/index');
|
2017-01-17 18:45:27 +00:00
|
|
|
|
|
|
|
|
// Social
|
2017-06-09 01:24:40 +00:00
|
|
|
const InboxPage = () => import(/* webpackChunkName: "inbox" */ './components/social/inbox/index');
|
|
|
|
|
const InboxConversationPage = () => import(/* webpackChunkName: "inbox" */ './components/social/inbox/conversationPage');
|
2017-06-02 20:55:02 +00:00
|
|
|
|
|
|
|
|
// Guilds
|
2017-06-08 19:04:19 +00:00
|
|
|
const GuildIndex = () => import(/* webpackChunkName: "guilds" */ './components/guilds/index');
|
|
|
|
|
const TavernPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/tavern');
|
|
|
|
|
const MyGuilds = () => import(/* webpackChunkName: "guilds" */ './components/guilds/myGuilds');
|
|
|
|
|
const GuildsDiscoveryPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/discovery');
|
|
|
|
|
const GuildPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/guild');
|
2016-12-29 19:24:08 +00:00
|
|
|
|
2016-09-18 19:51:20 +00:00
|
|
|
Vue.use(VueRouter);
|
|
|
|
|
|
|
|
|
|
export default new VueRouter({
|
|
|
|
|
mode: 'history',
|
2016-09-21 11:43:39 +00:00
|
|
|
base: process.env.NODE_ENV === 'production' ? '/new-app' : __dirname, // eslint-disable-line no-process-env
|
2017-01-14 20:12:11 +00:00
|
|
|
linkActiveClass: 'active',
|
2017-03-07 18:34:29 +00:00
|
|
|
// When navigating to another route always scroll to the top
|
|
|
|
|
// To customize the behavior see https://router.vuejs.org/en/advanced/scroll-behavior.html
|
|
|
|
|
scrollBehavior () {
|
|
|
|
|
return { x: 0, y: 0 };
|
|
|
|
|
},
|
2016-09-18 19:51:20 +00:00
|
|
|
routes: [
|
2017-01-17 18:45:27 +00:00
|
|
|
{ name: 'tasks', path: '/', component: UserTasks },
|
2016-11-18 18:20:25 +00:00
|
|
|
{
|
|
|
|
|
path: '/inventory',
|
2017-01-17 18:45:27 +00:00
|
|
|
component: InventoryContainer,
|
2016-11-18 18:20:25 +00:00
|
|
|
children: [
|
2017-05-22 14:30:52 +00:00
|
|
|
{ name: 'items', path: 'items', component: ItemsPage },
|
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
|
|
|
{ name: 'equipment', path: 'equipment', component: EquipmentPage },
|
2017-01-17 18:45:27 +00:00
|
|
|
{ name: 'stable', path: 'stable', component: StablePage },
|
2016-11-18 18:20:25 +00:00
|
|
|
],
|
|
|
|
|
},
|
2017-06-08 19:04:19 +00:00
|
|
|
{ name: 'shops', path: '/shops', component: Page },
|
2017-06-02 20:55:02 +00:00
|
|
|
{
|
|
|
|
|
path: '/guilds',
|
|
|
|
|
component: GuildIndex,
|
|
|
|
|
children: [
|
|
|
|
|
{ name: 'tavern', path: 'tavern', component: TavernPage },
|
|
|
|
|
{
|
|
|
|
|
name: 'myGuilds',
|
|
|
|
|
path: 'myGuilds',
|
|
|
|
|
component: MyGuilds,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'guildsDiscovery',
|
|
|
|
|
path: 'discovery',
|
|
|
|
|
component: GuildsDiscoveryPage,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'guild',
|
|
|
|
|
path: 'guild/:guildId',
|
|
|
|
|
component: GuildPage,
|
|
|
|
|
props: true,
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
2017-06-08 19:04:19 +00:00
|
|
|
{ name: 'challenges', path: 'challenges', component: Page },
|
|
|
|
|
{ name: 'party', path: 'party', component: Page },
|
2016-11-18 18:20:25 +00:00
|
|
|
{
|
|
|
|
|
path: '/user',
|
|
|
|
|
component: ParentPage,
|
|
|
|
|
children: [
|
2017-01-17 18:45:27 +00:00
|
|
|
{ name: 'avatar', path: 'avatar', component: Page },
|
2017-06-09 01:24:40 +00:00
|
|
|
{
|
|
|
|
|
path: 'inbox',
|
|
|
|
|
component: EmptyView,
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
name: 'inbox',
|
|
|
|
|
path: '',
|
|
|
|
|
component: InboxPage,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'conversation',
|
|
|
|
|
path: 'conversation/:id',
|
|
|
|
|
component: InboxConversationPage,
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
2017-01-17 18:45:27 +00:00
|
|
|
{ name: 'stats', path: 'stats', component: Page },
|
|
|
|
|
{ name: 'achievements', path: 'achievements', component: Page },
|
|
|
|
|
{ name: 'settings', path: 'settings', component: Page },
|
2016-11-18 18:20:25 +00:00
|
|
|
],
|
|
|
|
|
},
|
2016-09-18 19:51:20 +00:00
|
|
|
],
|
2016-12-29 19:24:08 +00:00
|
|
|
});
|