From 529e0058bf4bbe2280c5f0209e426aeaee05fb4c Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 13:10:32 +0200 Subject: [PATCH 01/10] updated packages --- themes/vuetober/package.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/themes/vuetober/package.json b/themes/vuetober/package.json index 8408b0b2..459a8570 100644 --- a/themes/vuetober/package.json +++ b/themes/vuetober/package.json @@ -10,20 +10,20 @@ "dependencies": { "axios": "^0.19.2", "bootstrap": "^4.5.0", - "bootstrap-vue": "^2.14.0", + "bootstrap-vue": "^2.15.0", "core-js": "^3.6.5", - "moment": "^2.25.3", + "moment": "^2.26.0", "vee-validate": "^3.3.0", "vue": "^2.6.11", - "vue-router": "^3.1.5", + "vue-router": "^3.3.1", "vuex": "^3.4.0" }, "devDependencies": { - "@vue/cli-plugin-babel": "^4.3.1", - "@vue/cli-plugin-eslint": "^4.3.1", - "@vue/cli-plugin-router": "^4.3.1", - "@vue/cli-plugin-vuex": "^4.3.1", - "@vue/cli-service": "^4.3.1", + "@vue/cli-plugin-babel": "^4.4.1", + "@vue/cli-plugin-eslint": "^4.4.1", + "@vue/cli-plugin-router": "^4.4.1", + "@vue/cli-plugin-vuex": "^4.4.1", + "@vue/cli-service": "^4.4.1", "@vue/eslint-config-airbnb": "^5.0.2", "babel-eslint": "^10.0.3", "eslint": "^6.7.2", @@ -31,7 +31,7 @@ "eslint-plugin-vue": "^6.2.2", "sass": "^1.26.5", "sass-loader": "^8.0.2", - "stylelint": "^13.4.0", + "stylelint": "^13.5.0", "stylelint-config-recommended-scss": "^4.2.0", "stylelint-scss": "^3.17.2", "stylelint-webpack-plugin": "^2.0.0", From 51c35658888f4f4b10bc504688c98621f5c413da Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 13:11:49 +0200 Subject: [PATCH 02/10] installed vue-gtag --- themes/vuetober/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/themes/vuetober/package.json b/themes/vuetober/package.json index 459a8570..76eba8d8 100644 --- a/themes/vuetober/package.json +++ b/themes/vuetober/package.json @@ -15,6 +15,7 @@ "moment": "^2.26.0", "vee-validate": "^3.3.0", "vue": "^2.6.11", + "vue-gtag": "^1.6.2", "vue-router": "^3.3.1", "vuex": "^3.4.0" }, From 50e3f497a83d6b3598280924b6d99cc4fbb00abd Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 13:38:54 +0200 Subject: [PATCH 03/10] vue-gtag initial setup --- themes/vuetober/src/custom.js | 102 ++++++++++++++++++++-------------- themes/vuetober/src/main.js | 6 +- 2 files changed, 63 insertions(+), 45 deletions(-) diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index a6d2f0ff..c3248c31 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -1,5 +1,7 @@ import Vue from 'vue'; +import Axios from 'axios'; + import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'; import './custom.scss'; @@ -7,48 +9,64 @@ import { ValidationProvider, extend } from 'vee-validate'; import * as rules from 'vee-validate/dist/rules'; import { messages } from 'vee-validate/dist/locale/sk.json'; -import Axios from 'axios'; +import VueGtag from 'vue-gtag'; + +import router from './router'; +import store from './store'; -export function setup() { - Vue.use(BootstrapVue); - Vue.use(IconsPlugin); - Object.keys(rules).forEach((rule) => { - extend(rule, { - ...rules[rule], // copies rule configuration - message: messages[rule], // assign message +const custom = { + setup() { + Vue.use(BootstrapVue); + Vue.use(IconsPlugin); + + Vue.use(VueGtag, { + config: { + id: 'UA-167852978-1', + }, + router, + }); + + Object.keys(rules).forEach((rule) => { + extend(rule, { + ...rules[rule], // copies rule configuration + message: messages[rule], // assign message + }); }); - }); - - extend('upperCase', { - validate: (value) => value !== value.toLowerCase(), - message: '{_field_} musí obsahovať veľké písmeno', - }); - extend('containsNumber', { - validate: (value) => /\d/.test(value), - message: '{_field_} musí obsahovať číslicu', - }); - - Vue.component('ValidationProvider', ValidationProvider); -} - -export function created(router, store) { - const token = localStorage.getItem('token'); - if (token) { - // eslint-disable-next-line dot-notation - Axios.defaults.headers.common['Authorization'] = `Bearer ${ - token - }`; - } - - Axios.interceptors.response.use( - (response) => response, - (error) => { - if ((error.response.status === 401 && error.response.data.error === 'token_expired') - || (error.response.status === 400 && error.response.data.error === 'token_invalid')) { - store.dispatch('logout').finally(() => router.push('/')); - } - return Promise.reject(error); - }, - ); -} + + extend('upperCase', { + validate: (value) => value !== value.toLowerCase(), + message: '{_field_} musí obsahovať veľké písmeno', + }); + extend('containsNumber', { + validate: (value) => /\d/.test(value), + message: '{_field_} musí obsahovať číslicu', + }); + + Vue.component('ValidationProvider', ValidationProvider); + }, + + created() { + const token = localStorage.getItem('token'); + if (token) { + // eslint-disable-next-line dot-notation + Axios.defaults.headers.common['Authorization'] = `Bearer ${ + token + }`; + } + + Axios.interceptors.response.use( + (response) => response, + (error) => { + if ((error.response.status === 401 && error.response.data.error === 'token_expired') + || (error.response.status === 400 && error.response.data.error === 'token_invalid')) { + store.dispatch('logout').finally(() => router.push('/')); + } + return Promise.reject(error); + }, + ); + }, + +}; + +export default custom; diff --git a/themes/vuetober/src/main.js b/themes/vuetober/src/main.js index 907d63cf..99431b9a 100644 --- a/themes/vuetober/src/main.js +++ b/themes/vuetober/src/main.js @@ -4,9 +4,9 @@ import App from './App.vue'; import router from './router'; import store from './store'; -import { setup, created } from './custom'; +import Custom from './custom'; -setup(); +Custom.setup(); Vue.config.productionTip = false; @@ -15,6 +15,6 @@ new Vue({ store, render: (h) => h(App), created() { - created(router, store); + Custom.created(); }, }).$mount('#app'); From 32ba36c89ec7acc905f6f7c544c5f515a2298c68 Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 14:31:51 +0200 Subject: [PATCH 04/10] fixed gtag router --- themes/vuetober/src/custom.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index c3248c31..23668088 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -24,8 +24,7 @@ const custom = { config: { id: 'UA-167852978-1', }, - router, - }); + }, router); Object.keys(rules).forEach((rule) => { extend(rule, { From a05ef3b3927638768d49255bc582da477a69d3df Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 14:39:19 +0200 Subject: [PATCH 05/10] added screenview --- themes/vuetober/src/custom.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index 23668088..158c90bf 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -21,9 +21,9 @@ const custom = { Vue.use(IconsPlugin); Vue.use(VueGtag, { - config: { - id: 'UA-167852978-1', - }, + config: { id: 'UA-167852978-1' }, + appName: 'TeachPlusPlus', + pageTrackerScreenviewEnabled: true, }, router); Object.keys(rules).forEach((rule) => { From 118fb19026a78620cf79130542a8dbb3dec4f06e Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 16:01:27 +0200 Subject: [PATCH 06/10] changed analytics to new email --- themes/vuetober/src/custom.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index 158c90bf..95cd433c 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -21,7 +21,7 @@ const custom = { Vue.use(IconsPlugin); Vue.use(VueGtag, { - config: { id: 'UA-167852978-1' }, + config: { id: 'UA-167888903-1' }, appName: 'TeachPlusPlus', pageTrackerScreenviewEnabled: true, }, router); From a171a90573ca25bda6922360354502bd1fc80c91 Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 16:18:17 +0200 Subject: [PATCH 07/10] added page tracker template --- themes/vuetober/src/custom.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index 95cd433c..073eab4f 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -23,6 +23,12 @@ const custom = { Vue.use(VueGtag, { config: { id: 'UA-167888903-1' }, appName: 'TeachPlusPlus', + pageTrackerTemplate(to) { + return { + page_title: to.name, + page_path: to.path, + }; + }, pageTrackerScreenviewEnabled: true, }, router); From 002df9e054f879b5b106a3d80584810a4ae13f4c Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 16:25:05 +0200 Subject: [PATCH 08/10] revert --- themes/vuetober/src/custom.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index 073eab4f..95cd433c 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -23,12 +23,6 @@ const custom = { Vue.use(VueGtag, { config: { id: 'UA-167888903-1' }, appName: 'TeachPlusPlus', - pageTrackerTemplate(to) { - return { - page_title: to.name, - page_path: to.path, - }; - }, pageTrackerScreenviewEnabled: true, }, router); From 11ff7dd518170b7c2946cafd2d8736e750133388 Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 16:43:49 +0200 Subject: [PATCH 09/10] hopefully fixed gtag router --- themes/vuetober/src/custom.js | 9 --------- themes/vuetober/src/router/index.js | 6 ++++++ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index 95cd433c..a6115d68 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -9,8 +9,6 @@ import { ValidationProvider, extend } from 'vee-validate'; import * as rules from 'vee-validate/dist/rules'; import { messages } from 'vee-validate/dist/locale/sk.json'; -import VueGtag from 'vue-gtag'; - import router from './router'; import store from './store'; @@ -20,12 +18,6 @@ const custom = { Vue.use(BootstrapVue); Vue.use(IconsPlugin); - Vue.use(VueGtag, { - config: { id: 'UA-167888903-1' }, - appName: 'TeachPlusPlus', - pageTrackerScreenviewEnabled: true, - }, router); - Object.keys(rules).forEach((rule) => { extend(rule, { ...rules[rule], // copies rule configuration @@ -65,7 +57,6 @@ const custom = { }, ); }, - }; export default custom; diff --git a/themes/vuetober/src/router/index.js b/themes/vuetober/src/router/index.js index 707211dc..691f2e0e 100644 --- a/themes/vuetober/src/router/index.js +++ b/themes/vuetober/src/router/index.js @@ -1,7 +1,9 @@ import Vue from 'vue'; import VueRouter from 'vue-router'; +import VueGtag from 'vue-gtag'; import store from '../store/index'; + Vue.use(VueRouter); const routes = [ @@ -53,4 +55,8 @@ const router = new VueRouter({ routes, }); +Vue.use(VueGtag, { + config: { id: 'UA-167888903-1' }, +}, router); + export default router; From 3bbb74f6fe8427cb8b901ec7750cc2e9db9dc76c Mon Sep 17 00:00:00 2001 From: jakubkoje Date: Thu, 28 May 2020 18:19:33 +0200 Subject: [PATCH 10/10] added smartscreen --- themes/vuetober/package.json | 1 + themes/vuetober/src/custom.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/themes/vuetober/package.json b/themes/vuetober/package.json index 76eba8d8..6ba5c7fc 100644 --- a/themes/vuetober/package.json +++ b/themes/vuetober/package.json @@ -13,6 +13,7 @@ "bootstrap-vue": "^2.15.0", "core-js": "^3.6.5", "moment": "^2.26.0", + "smartlook-client": "^4.4.0", "vee-validate": "^3.3.0", "vue": "^2.6.11", "vue-gtag": "^1.6.2", diff --git a/themes/vuetober/src/custom.js b/themes/vuetober/src/custom.js index a6115d68..94afe96b 100644 --- a/themes/vuetober/src/custom.js +++ b/themes/vuetober/src/custom.js @@ -9,6 +9,8 @@ import { ValidationProvider, extend } from 'vee-validate'; import * as rules from 'vee-validate/dist/rules'; import { messages } from 'vee-validate/dist/locale/sk.json'; +import SmartlookClient from 'smartlook-client'; + import router from './router'; import store from './store'; @@ -46,6 +48,8 @@ const custom = { }`; } + SmartlookClient.init('fc12e3b81c44e9f5321d50d48848f14a85ac8786'); + Axios.interceptors.response.use( (response) => response, (error) => {