From 8769fc4dc19447f67a42eb941fb43ba7223772eb Mon Sep 17 00:00:00 2001 From: Arne Schauf Date: Sat, 3 Mar 2018 01:06:44 +0100 Subject: upgrade quasar to latest version --- src/App.vue | 14 ++ src/assets/quasar-logo-full.svg | 191 ++++++++++++++++++++++ src/assets/sad.svg | 1 + src/components/.gitkeep | 0 src/components/ApiAuth.vue | 113 +++++++++++++ src/components/UploadVoter.vue | 50 ++++++ src/css/app.styl | 1 + src/css/themes/common.variables.styl | 25 +++ src/css/themes/variables.ios.styl | 7 + src/css/themes/variables.mat.styl | 7 + src/i18n/en/index.js | 7 + src/i18n/index.js | 5 + src/index.template.html | 57 +++++++ src/layouts/default.vue | 69 ++++++++ src/pages/404.vue | 16 ++ src/pages/FetchToken.vue | 68 ++++++++ src/pages/UploadCreate.vue | 264 +++++++++++++++++++++++++++++++ src/pages/UploadDetail.vue | 223 ++++++++++++++++++++++++++ src/pages/UploadList.vue | 119 ++++++++++++++ src/plugins/.gitkeep | 0 src/plugins/axios.js | 7 + src/plugins/i18n.js | 13 ++ src/router/index.js | 24 +++ src/router/routes.js | 37 +++++ src/statics/icons/apple-icon-152x152.png | Bin 0 -> 13156 bytes src/statics/icons/favicon-16x16.png | Bin 0 -> 1355 bytes src/statics/icons/favicon-32x32.ico | Bin 0 -> 1150 bytes src/statics/icons/icon-128x128.png | Bin 0 -> 7197 bytes src/statics/icons/icon-192x192.png | Bin 0 -> 10518 bytes src/statics/icons/icon-256x256.png | Bin 0 -> 15048 bytes src/statics/icons/icon-384x384.png | Bin 0 -> 23241 bytes src/statics/icons/icon-512x512.png | Bin 0 -> 29707 bytes src/statics/icons/ms-icon-144x144.png | Bin 0 -> 12292 bytes src/statics/quasar-logo.png | Bin 0 -> 7197 bytes src/store/index.js | 14 ++ src/store/module-user/actions.js | 4 + src/store/module-user/getters.js | 1 + src/store/module-user/index.js | 12 ++ src/store/module-user/mutations.js | 17 ++ src/store/module-user/state.js | 4 + 40 files changed, 1370 insertions(+) create mode 100644 src/App.vue create mode 100644 src/assets/quasar-logo-full.svg create mode 100644 src/assets/sad.svg create mode 100644 src/components/.gitkeep create mode 100644 src/components/ApiAuth.vue create mode 100644 src/components/UploadVoter.vue create mode 100644 src/css/app.styl create mode 100644 src/css/themes/common.variables.styl create mode 100644 src/css/themes/variables.ios.styl create mode 100644 src/css/themes/variables.mat.styl create mode 100644 src/i18n/en/index.js create mode 100644 src/i18n/index.js create mode 100644 src/index.template.html create mode 100644 src/layouts/default.vue create mode 100644 src/pages/404.vue create mode 100644 src/pages/FetchToken.vue create mode 100644 src/pages/UploadCreate.vue create mode 100644 src/pages/UploadDetail.vue create mode 100644 src/pages/UploadList.vue create mode 100644 src/plugins/.gitkeep create mode 100644 src/plugins/axios.js create mode 100644 src/plugins/i18n.js create mode 100644 src/router/index.js create mode 100644 src/router/routes.js create mode 100644 src/statics/icons/apple-icon-152x152.png create mode 100644 src/statics/icons/favicon-16x16.png create mode 100644 src/statics/icons/favicon-32x32.ico create mode 100644 src/statics/icons/icon-128x128.png create mode 100644 src/statics/icons/icon-192x192.png create mode 100644 src/statics/icons/icon-256x256.png create mode 100644 src/statics/icons/icon-384x384.png create mode 100644 src/statics/icons/icon-512x512.png create mode 100644 src/statics/icons/ms-icon-144x144.png create mode 100644 src/statics/quasar-logo.png create mode 100644 src/store/index.js create mode 100644 src/store/module-user/actions.js create mode 100644 src/store/module-user/getters.js create mode 100644 src/store/module-user/index.js create mode 100644 src/store/module-user/mutations.js create mode 100644 src/store/module-user/state.js (limited to 'src') diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..3fa5037 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/assets/quasar-logo-full.svg b/src/assets/quasar-logo-full.svg new file mode 100644 index 0000000..281d072 --- /dev/null +++ b/src/assets/quasar-logo-full.svg @@ -0,0 +1,191 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/sad.svg b/src/assets/sad.svg new file mode 100644 index 0000000..628136f --- /dev/null +++ b/src/assets/sad.svg @@ -0,0 +1 @@ + diff --git a/src/components/.gitkeep b/src/components/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/components/ApiAuth.vue b/src/components/ApiAuth.vue new file mode 100644 index 0000000..d2771c7 --- /dev/null +++ b/src/components/ApiAuth.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/components/UploadVoter.vue b/src/components/UploadVoter.vue new file mode 100644 index 0000000..91019dd --- /dev/null +++ b/src/components/UploadVoter.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/css/app.styl b/src/css/app.styl new file mode 100644 index 0000000..e3e5a1e --- /dev/null +++ b/src/css/app.styl @@ -0,0 +1 @@ +// app global css diff --git a/src/css/themes/common.variables.styl b/src/css/themes/common.variables.styl new file mode 100644 index 0000000..4d659aa --- /dev/null +++ b/src/css/themes/common.variables.styl @@ -0,0 +1,25 @@ +// App Shared Variables +// -------------------------------------------------- +// To customize the look and feel of this app, you can override +// the Stylus variables found in Quasar's source Stylus files. Setting +// variables before Quasar's Stylus will use these variables rather than +// Quasar's default Stylus variable values. Stylus variables specific +// to the themes belong in either the variables.ios.styl or variables.mat.styl files. + +// Check documentation for full list of Quasar variables + + +// App Shared Color Variables +// -------------------------------------------------- +// It's highly recommended to change the default colors +// to match your app's branding. + +$primary = #027be3 +$secondary = #26A69A +$tertiary = #555 + +$neutral = #E0E1E2 +$positive = #21BA45 +$negative = #DB2828 +$info = #31CCEC +$warning = #F2C037 diff --git a/src/css/themes/variables.ios.styl b/src/css/themes/variables.ios.styl new file mode 100644 index 0000000..953b825 --- /dev/null +++ b/src/css/themes/variables.ios.styl @@ -0,0 +1,7 @@ +// App Shared Variables +// -------------------------------------------------- +// Shared Stylus variables go in the common.variables.styl file +@import 'common.variables' + +// iOS only Quasar variables overwrites +// ----------------------------------------- diff --git a/src/css/themes/variables.mat.styl b/src/css/themes/variables.mat.styl new file mode 100644 index 0000000..8169a52 --- /dev/null +++ b/src/css/themes/variables.mat.styl @@ -0,0 +1,7 @@ +// App Shared Variables +// -------------------------------------------------- +// Shared Stylus variables go in the common.variables.styl file +@import 'common.variables' + +// Material only Quasar variables overwrites +// ----------------------------------------- diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js new file mode 100644 index 0000000..b70b80f --- /dev/null +++ b/src/i18n/en/index.js @@ -0,0 +1,7 @@ +// This is just an example, +// so you can safely delete all default props below + +export default { + failed: 'Action failed', + success: 'Action was successful' +} diff --git a/src/i18n/index.js b/src/i18n/index.js new file mode 100644 index 0000000..1efd82d --- /dev/null +++ b/src/i18n/index.js @@ -0,0 +1,5 @@ +import en from './en' + +export default { + en +} diff --git a/src/index.template.html b/src/index.template.html new file mode 100644 index 0000000..43bee86 --- /dev/null +++ b/src/index.template.html @@ -0,0 +1,57 @@ + + + + + + + + <%= htmlWebpackPlugin.options.productName %> + + + + + + + <% if (htmlWebpackPlugin.options.ctx.mode.pwa) { %> + + + + + + + + + + + + <% } %> + + <%= htmlWebpackPlugin.options.headScripts %> + + + <% if (!['cordova', 'electron'].includes(htmlWebpackPlugin.options.ctx.modeName) && htmlWebpackPlugin.options.ctx.prod) { + for (var chunk of webpack.chunks) { + for (var file of chunk.files) { + if (file.match(/\.(js|css)$/)) { %> + + <% }}}} %> + + + <% if (!htmlWebpackPlugin.options.ctx.mode.electron) { %> + + <% } %> + + +
+ + + <%= htmlWebpackPlugin.options.bodyScripts %> + + + + diff --git a/src/layouts/default.vue b/src/layouts/default.vue new file mode 100644 index 0000000..9276e0b --- /dev/null +++ b/src/layouts/default.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/pages/404.vue b/src/pages/404.vue new file mode 100644 index 0000000..6484cb2 --- /dev/null +++ b/src/pages/404.vue @@ -0,0 +1,16 @@ + diff --git a/src/pages/FetchToken.vue b/src/pages/FetchToken.vue new file mode 100644 index 0000000..6745377 --- /dev/null +++ b/src/pages/FetchToken.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/pages/UploadCreate.vue b/src/pages/UploadCreate.vue new file mode 100644 index 0000000..53a6a36 --- /dev/null +++ b/src/pages/UploadCreate.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/src/pages/UploadDetail.vue b/src/pages/UploadDetail.vue new file mode 100644 index 0000000..d742a4a --- /dev/null +++ b/src/pages/UploadDetail.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/src/pages/UploadList.vue b/src/pages/UploadList.vue new file mode 100644 index 0000000..a8a731c --- /dev/null +++ b/src/pages/UploadList.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/src/plugins/.gitkeep b/src/plugins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/plugins/axios.js b/src/plugins/axios.js new file mode 100644 index 0000000..e2957b2 --- /dev/null +++ b/src/plugins/axios.js @@ -0,0 +1,7 @@ +import axios from 'axios' + +export default ({ Vue }) => { + axios.defaults.headers.common['Accept'] = 'application/json' + axios.defaults.baseURL = process.env.API + Vue.prototype.$http = axios +} diff --git a/src/plugins/i18n.js b/src/plugins/i18n.js new file mode 100644 index 0000000..8ddacc5 --- /dev/null +++ b/src/plugins/i18n.js @@ -0,0 +1,13 @@ +import VueI18n from 'vue-i18n' +import messages from 'src/i18n' + +export default ({ app, Vue }) => { + Vue.use(VueI18n) + + // Set i18n instance on app + app.i18n = new VueI18n({ + locale: 'en', + fallbackLocale: 'en', + messages + }) +} diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..d9fe66a --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,24 @@ +import Vue from 'vue' +import VueRouter from 'vue-router' + +import routes from './routes' + +Vue.use(VueRouter) + +const Router = new VueRouter({ + /* + * NOTE! Change Vue Router mode from quasar.conf.js -> build -> vueRouterMode + * + * If you decide to go with "history" mode, please also set "build.publicPath" + * to something other than an empty string. + * Example: '/' instead of '' + */ + + // Leave as is and change from quasar.conf.js instead! + mode: process.env.VUE_ROUTER_MODE, + base: process.env.VUE_ROUTER_BASE, + scrollBehavior: () => ({ y: 0 }), + routes +}) + +export default Router diff --git a/src/router/routes.js b/src/router/routes.js new file mode 100644 index 0000000..ece2c57 --- /dev/null +++ b/src/router/routes.js @@ -0,0 +1,37 @@ + +export default [ + { + path: '/', + component: () => import('layouts/default'), + redirect: {name: 'upload-list'}, + children: [ + { + path: 'uploads', + name: 'upload-list', + component: () => import('pages/UploadList'), + children: [ + { + path: ':uploadId', + name: 'upload-detail', + component: () => import('pages/UploadDetail'), + }, + ] + }, + { + path: 'upload-create', + name: 'upload-create', + component: () => import('pages/UploadCreate'), + }, + { + path: 'receive-token/:token', + name: 'receive-token', + component: () => import('pages/FetchToken'), + }, + ] + }, + + { // Always leave this as last one + path: '*', + component: () => import('pages/404') + } +] diff --git a/src/statics/icons/apple-icon-152x152.png b/src/statics/icons/apple-icon-152x152.png new file mode 100644 index 0000000..c918acd Binary files /dev/null and b/src/statics/icons/apple-icon-152x152.png differ diff --git a/src/statics/icons/favicon-16x16.png b/src/statics/icons/favicon-16x16.png new file mode 100644 index 0000000..177c86e Binary files /dev/null and b/src/statics/icons/favicon-16x16.png differ diff --git a/src/statics/icons/favicon-32x32.ico b/src/statics/icons/favicon-32x32.ico new file mode 100644 index 0000000..f9a7f2b Binary files /dev/null and b/src/statics/icons/favicon-32x32.ico differ diff --git a/src/statics/icons/icon-128x128.png b/src/statics/icons/icon-128x128.png new file mode 100644 index 0000000..590e8ce Binary files /dev/null and b/src/statics/icons/icon-128x128.png differ diff --git a/src/statics/icons/icon-192x192.png b/src/statics/icons/icon-192x192.png new file mode 100644 index 0000000..2a9b50b Binary files /dev/null and b/src/statics/icons/icon-192x192.png differ diff --git a/src/statics/icons/icon-256x256.png b/src/statics/icons/icon-256x256.png new file mode 100644 index 0000000..8450959 Binary files /dev/null and b/src/statics/icons/icon-256x256.png differ diff --git a/src/statics/icons/icon-384x384.png b/src/statics/icons/icon-384x384.png new file mode 100644 index 0000000..2d6dd7b Binary files /dev/null and b/src/statics/icons/icon-384x384.png differ diff --git a/src/statics/icons/icon-512x512.png b/src/statics/icons/icon-512x512.png new file mode 100644 index 0000000..a57354e Binary files /dev/null and b/src/statics/icons/icon-512x512.png differ diff --git a/src/statics/icons/ms-icon-144x144.png b/src/statics/icons/ms-icon-144x144.png new file mode 100644 index 0000000..b0880e8 Binary files /dev/null and b/src/statics/icons/ms-icon-144x144.png differ diff --git a/src/statics/quasar-logo.png b/src/statics/quasar-logo.png new file mode 100644 index 0000000..590e8ce Binary files /dev/null and b/src/statics/quasar-logo.png differ diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..1bc6b7d --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,14 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import user from './module-user' + +Vue.use(Vuex) + +const store = new Vuex.Store({ + modules: { + user + } +}) + +export default store diff --git a/src/store/module-user/actions.js b/src/store/module-user/actions.js new file mode 100644 index 0000000..5e5d9c6 --- /dev/null +++ b/src/store/module-user/actions.js @@ -0,0 +1,4 @@ +/* +export const someAction = (state) => { +} +*/ diff --git a/src/store/module-user/getters.js b/src/store/module-user/getters.js new file mode 100644 index 0000000..64241d1 --- /dev/null +++ b/src/store/module-user/getters.js @@ -0,0 +1 @@ +export const loggedIn = (state) => Boolean(state.decodedToken.username) diff --git a/src/store/module-user/index.js b/src/store/module-user/index.js new file mode 100644 index 0000000..b41a219 --- /dev/null +++ b/src/store/module-user/index.js @@ -0,0 +1,12 @@ +import state from './state' +import * as getters from './getters' +import * as mutations from './mutations' +import * as actions from './actions' + +export default { + namespaced: true, + state, + getters, + mutations, + actions +} diff --git a/src/store/module-user/mutations.js b/src/store/module-user/mutations.js new file mode 100644 index 0000000..e8f4799 --- /dev/null +++ b/src/store/module-user/mutations.js @@ -0,0 +1,17 @@ +import axios from 'axios' +import jwtDecode from 'jwt-decode' +import { LocalStorage } from 'quasar' + +export const setAuthToken = (state, { authToken }) => { + state.authToken = authToken + state.decodedToken = jwtDecode(authToken) + axios.defaults.headers.common['Authorization'] = `Bearer ${authToken}` + LocalStorage.set('authToken', authToken) +} + +export const logout = (state) => { + state.authToken = null + state.decodedToken = {} + delete axios.defaults.headers.common['Authorization'] + LocalStorage.remove('authToken') +} diff --git a/src/store/module-user/state.js b/src/store/module-user/state.js new file mode 100644 index 0000000..b938620 --- /dev/null +++ b/src/store/module-user/state.js @@ -0,0 +1,4 @@ +export default { + authToken: null, + decodedToken: {}, +} -- cgit v1.2.3-54-g00ecf