Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Vue from 'vue';
- /**
- * Use global tooltips
- */
- import VueTippy from 'vue-tippy'
- Vue.use(VueTippy,{
- flipDuration: 0,
- theme: 'light',
- animation: 'fade',
- animateFill: false,
- duration: 200,
- distance : 5
- });
- import VueClipboard from 'vue-clipboard2'
- Vue.use(VueClipboard);
- console.log(process.env.NODE_ENV);
- /**
- * Use global progressbar
- */
- import VueProgressBar from 'vue-progressbar';
- Vue.use(VueProgressBar, {
- color: 'rgb(120, 163, 0)',
- failedColor: 'rgb(185, 74, 72)',
- height: '2px'
- });
- /**
- * Init global Vuex storage
- */
- import storage from "./storage";
- /**
- * Init global Mixins
- */
- import tokenizer from "./mixins/tokenizer";
- import helper from "./mixins/helper";
- Vue.mixin(tokenizer);
- Vue.mixin(helper);
- /**
- * Init Vue Router
- */
- import VueRouter from 'vue-router';
- import routes from './routes';
- Vue.use(VueRouter);
- const router = new VueRouter({routes});
- /**
- * Init Zendesk Source fake data
- */
- import injector from 'vue-inject';
- Vue.use(injector);
- // injector.constant('identities', [
- // 'jason@crazyeffective.com',
- // 'e.rieznyk@gmail.com',
- // 'sadsdsa',
- // 'sfsdf32423asdasdasxc',
- // '+003 80999 741071sdfsdf',
- // '123-756-78901'
- // ]);
- // injector.constant('author', {
- // email: 'e.rieznyk@gmail.com',
- // name: 'Eugene Rieznyk'
- // });
- /**
- * Use Zendesk ZAFClient
- */
- if(process.env.NODE_ENV == 'production') {
- // init ZD api client
- let client = ZAFClient.init();
- // resize zd app window
- client.invoke('resize', { width: '100%', height: '70vh'});
- // get identities for user
- client.get('user').then(function(data) {
- let identities = [];
- data.user.identities.forEach(element => {
- identities.push(element.value);
- });
- // inject identities into vue app
- injector.constant('identities', identities);
- storage.state.identityHandler.original = identities.slice();
- let identityArr = identities.map((element) => {
- if(validateEmail(element)) {
- return element;
- } else {
- return element.replace(/\D/g,'');
- }
- });
- storage.state.identityHandler.initial = identityArr.slice();
- storage.state.identityHandler.filtered = identityArr.slice();
- }).catch(function(error) {});
- // get identities for user (ticket side)
- client.get('ticket.requester').then(function(data) {
- let identities = [];
- data['ticket.requester'].identities.forEach(element => {
- identities.push(element.value);
- });
- // inject identities into vue app
- injector.constant('identities', identities);
- storage.state.identityHandler.original = identities.slice();
- let identityArr = identities.map((element) => {
- if(validateEmail(element)) {
- return element;
- } else {
- return element.replace(/\D/g,'');
- }
- });
- storage.state.identityHandler.initial = identityArr.slice();
- storage.state.identityHandler.filtered = identityArr.slice();
- }).catch(function(error) {});
- injector.constant('author', {
- email: '',
- name: ''
- });
- client.get('currentUser').then(function(data) {
- injector.constant('author', {
- email: data.currentUser.email,
- name: data.currentUser.name
- });
- });
- } else {
- // save identities keys arr to storage
- let identityArr = [
- 'e.rieznyk@gmail.com',
- 'jason@crazyeffective.com',
- 'jason@creditsuite.com',
- '+380999741071',
- 'jul23test@crazyeffective.com',
- 'rumondat@gmail.com',
- ];
- storage.state.identityHandler.original = identityArr.slice();
- identityArr = identityArr.map((element) => {
- if(validateEmail(element)) {
- return element;
- } else {
- return element.replace(/\D/g,'');
- }
- });
- storage.state.identityHandler.initial = identityArr.slice();
- storage.state.identityHandler.filtered = identityArr.slice();
- //
- injector.constant('identities', [
- 'e.rieznyk@gmail.com',
- 'jason@crazyeffective.com',
- 'jason@creditsuite.com',
- '380999741071',
- '202-555-0143',
- ]);
- injector.constant('author', {
- email: 'reznik.demarket@gmail.com',
- name: 'Yevhen Rieznyk',
- });
- // add zendesk author data to vuex state
- storage.state.identityHandler.author = {email: 'reznik.demarket@gmail.com', name: 'Eugene Smith'};
- // appInit();
- }
- /**
- * Use defined Api Endpoints as dependency with Injector
- */
- import endpoints from './api.js';
- injector.constant('endpoints', endpoints);
- /**
- * Init global Event Bus: events listener
- */
- import eventBus from "./event-bus";
- injector.constant('eventBus', eventBus);
- /**
- * Init Vue Zendesk App
- */
- import app from './components/app';
- const zendeskApp = new Vue({
- el: '#app',
- store: storage,
- router,
- components: { app },
- });
- //
- function validateEmail(email) {
- let re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(String(email).toLowerCase());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement