2017-01-15 19:49:15 +00:00
|
|
|
// TODO verify if it's needed, added because Axios require Promise in the global scope
|
2016-09-20 16:58:02 +00:00
|
|
|
// and babel-runtime doesn't affect external libraries
|
|
|
|
|
require('babel-polyfill');
|
|
|
|
|
|
2016-09-18 19:51:20 +00:00
|
|
|
import Vue from 'vue';
|
2017-01-15 19:49:15 +00:00
|
|
|
import axios from 'axios';
|
2016-09-29 11:32:36 +00:00
|
|
|
import AppComponent from './app';
|
2016-09-18 19:51:20 +00:00
|
|
|
import router from './router';
|
2017-03-18 17:33:08 +00:00
|
|
|
import generateStore from './store';
|
|
|
|
|
import StoreModule from './libs/store';
|
2016-12-07 02:27:49 +00:00
|
|
|
import './filters/registerGlobals';
|
2017-03-18 17:33:08 +00:00
|
|
|
import i18n from './libs/i18n';
|
2017-01-14 20:12:11 +00:00
|
|
|
|
2017-03-11 18:42:50 +00:00
|
|
|
const IS_PRODUCTION = process.env.NODE_ENV === 'production'; // eslint-disable-line no-process-env
|
|
|
|
|
|
|
|
|
|
// Configure Vue global options, see https://vuejs.org/v2/api/#Global-Config
|
|
|
|
|
|
|
|
|
|
// Enable perf timeline measuring for Vue components in Chrome Dev Tools
|
|
|
|
|
// Note: this has been disabled because it caused some perf issues
|
|
|
|
|
// if rendering becomes too slow in dev mode, we should turn it off
|
|
|
|
|
// See https://github.com/vuejs/vue/issues/5174
|
|
|
|
|
Vue.config.performance = !IS_PRODUCTION;
|
|
|
|
|
// Disable annoying reminder abour production build in dev mode
|
|
|
|
|
Vue.config.productionTip = IS_PRODUCTION;
|
|
|
|
|
|
2017-01-14 20:12:11 +00:00
|
|
|
Vue.use(i18n);
|
2017-03-18 17:33:08 +00:00
|
|
|
Vue.use(StoreModule);
|
2016-09-23 20:39:06 +00:00
|
|
|
|
2017-03-18 17:33:08 +00:00
|
|
|
// TODO just until we have proper authentication
|
2016-09-23 20:39:06 +00:00
|
|
|
let authSettings = localStorage.getItem('habit-mobile-settings');
|
|
|
|
|
|
|
|
|
|
if (authSettings) {
|
|
|
|
|
authSettings = JSON.parse(authSettings);
|
2017-01-15 19:49:15 +00:00
|
|
|
axios.defaults.headers.common['x-api-user'] = authSettings.auth.apiId;
|
|
|
|
|
axios.defaults.headers.common['x-api-key'] = authSettings.auth.apiToken;
|
2016-09-23 20:39:06 +00:00
|
|
|
}
|
2016-09-23 17:49:11 +00:00
|
|
|
|
2017-03-18 17:33:08 +00:00
|
|
|
export default new Vue({
|
2016-09-18 19:51:20 +00:00
|
|
|
router,
|
2017-03-18 17:33:08 +00:00
|
|
|
store: generateStore(),
|
2016-09-23 17:49:11 +00:00
|
|
|
render: h => h(AppComponent),
|
2017-03-18 17:33:08 +00:00
|
|
|
beforeCreate () {
|
|
|
|
|
// Setup listener for title
|
|
|
|
|
this.$store.watch(state => state.title, (title) => {
|
|
|
|
|
document.title = title;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Mount the app when user and tasks are loaded
|
|
|
|
|
const userDataWatcher = this.$store.watch(state => [state.user.data, state.tasks.data], ([user, tasks]) => {
|
2017-06-26 21:55:14 +00:00
|
|
|
if (user && user._id && tasks && Array.isArray(tasks.habits)) {
|
2017-03-18 17:33:08 +00:00
|
|
|
userDataWatcher(); // remove the watcher
|
|
|
|
|
this.$mount('#app');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Load the user and the user tasks
|
|
|
|
|
Promise.all([
|
|
|
|
|
this.$store.dispatch('user:fetch'),
|
|
|
|
|
this.$store.dispatch('tasks:fetchUserTasks'),
|
|
|
|
|
]).catch((err) => {
|
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
|
|
|
console.error('Impossible to fetch user. Copy into localStorage a valid habit-mobile-settings object.', err); // eslint-disable-line no-console
|
2017-03-18 17:33:08 +00:00
|
|
|
});
|
|
|
|
|
},
|
2016-09-23 17:49:11 +00:00
|
|
|
mounted () { // Remove the loading screen when the app is mounted
|
|
|
|
|
let loadingScreen = document.getElementById('loading-screen');
|
|
|
|
|
if (loadingScreen) document.body.removeChild(loadingScreen);
|
|
|
|
|
},
|
2017-03-18 17:33:08 +00:00
|
|
|
});
|