UNPKG

cobuild-angular-stack

Version:

Base stack angular sass jade gulp

400 lines (348 loc) 15.1 kB
function getMixpanel() { try { return mixpanel; } catch (err) { return { identify: $.noop, people: { set: $.noop, increment: $.noop } } } } Number.prototype.formatMoney = function (c, d, t) { d = d || "."; t = t || ","; try { c = isNaN(c = Math.abs(c)) ? 2 : c; var n = this, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0; return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); } catch (err) { return '0' + d + '00'; } }; (function (arr, i, name) { while (name = arr[i++]) { Math["$" + name] = Function("a", "b", "return Math." + name + "(a*(b=Math.pow(10,b||0)))/b"); } })(["floor", "ceil", "round"], 0); (function () { 'use strict'; angular.module('uniko', [ 'ui.router', 'ngStorage', 'pascalprecht.translate', 'uniko.translate', 'uniko.admin.auth', 'uniko.authSatellizer', 'uniko.customs', 'uniko.models', 'uniko.authLoopback', 'uniko.products', 'uniko.gifts', 'uniko.cashout', 'uniko.import', 'uniko.inspiration', 'uniko.statics', 'uniko.admin.products', 'uniko.admin.stores', 'uniko.admin.categories', 'uniko.admin.coupleAccounts', 'uniko.admin.banners', 'uniko.admin.orders', 'uniko.admin.cashouts', 'uniko.admin.onboarding', 'uniko.admin.settings', 'uniko.admin.settings.accounts', 'uniko.admin.discount', 'uniko.admin.experiences', 'uniko.upload', 'uniko.registry', 'uniko.guest', 'uniko.guest.registry', 'uniko.guest.checkout', 'xeditable', 'restangular', 'ui.bootstrap', 'ngFileUpload', 'slickCarousel', 'ui.bootstrap-slider', 'angular.filter', 'checklist-model', 'uiGmapgoogle-maps', 'uiSwitch', 'ngSanitize', 'ngTagsInput', 'ngImgCrop', 'angular-loading-bar', 'zeroclipboard', 'angulartics', 'angulartics.google.analytics', 'angulartics.hubspot', 'mwl.confirm', '720kb.socialshare', 'rokk3rlabs.onboarding', 'ui.select', 'ng-slide-down', 'ngLodash', 'daterangepicker', 'uniko.instapage' ]); function $configConekta() { Conekta.setPublishableKey("$$UnikoConektaToken$$"); } $configConekta.$inject = []; function $configMercado() { Mercadopago.setPublishableKey("$$UnikoMercadoToken$$"); } $configMercado.$inject = []; function $configClipboard(uiZeroclipConfigProvider) { uiZeroclipConfigProvider.setZcConf({ swfPath: 'swf/ZeroClipboard.swf' }); } $configClipboard.$inject = ['uiZeroclipConfigProvider']; function $configAnalytics($analyticsProvider) { } $configHtml5Mode.$inject = ['$locationProvider']; function $configHtml5Mode($locationProvider) { $locationProvider.html5Mode(true); } $configAnalytics.$inject = ['$analyticsProvider']; function $configMaps(uiGmapGoogleMapApiProvider) { uiGmapGoogleMapApiProvider.configure({ key: 'AIzaSyC-cNfPK1guu4XvoxSpktEIkg_xvf7-gHU', v: '3.22', //defaults to latest 3.X anyhow libraries: 'places' }); } $configMaps.$inject = ['uiGmapGoogleMapApiProvider']; function $toastrConfig(toastrConfig) { angular.extend(toastrConfig, { positionClass: 'toast-bottom-right', timeOut: "10000" }); } $toastrConfig.$inject = ['toastrConfig']; var $configStorage = function ($localStorageProvider) { $localStorageProvider.setKeyPrefix('co.uniko.'); }; $configStorage.$inject = ['$localStorageProvider']; $configLoadingBar.$inject = ['cfpLoadingBarProvider']; function $configLoadingBar(loadingBarProvider) { loadingBarProvider.includeSpinner = true; } $configRestangular.$inject = ['RestangularProvider']; function $configRestangular(RestangularProvider) { RestangularProvider.setBaseUrl('http://uniko.co:3000/api/v2'); } $run.$inject = [ '$rootScope', '$window', '$state', '$localStorage', 'toastr', 'Auth', 'editableOptions', '$translate', 'Restangular', 'LoopBackAuth', 'confirmationPopoverDefaults', 'CoupleAccount', 'Onboarding', '$timeout', '$location', 'Utils', 'lodash' ]; function $run($rootScope, $window, $state, $localStorage, toastr, Auth, editableOptions, $translate, Restangular, LoopBackAuth, confirmationPopoverDefaults, CoupleAccount, Onboarding, $timeout, $location, Utils, lodash) { if (Auth.isTmpAccount()) { Auth.clearAccount(); } $rootScope.$state = $state; var account_prim = {}; CoupleAccount.updateMainAttributes = function (couple, cbSuccess, cbError) { account_prim = couple; var coupleClone = lodash.clone(couple); delete coupleClone.cashOutInformationList; delete coupleClone.orders; delete coupleClone.productsRegistryList; delete coupleClone.giftList; delete coupleClone.rsvpList; CoupleAccount.prototype$updateAttributes({id: couple.id}, coupleClone, cbSuccess, cbError); }; $rootScope.$on('reloadUtils', function () { Utils.list().then(function (response) { var list = response.data; $rootScope.dataUtils = { payPrice: {} }; $rootScope.paymentDiscount = 0; var discount = lodash.find(list,function(data) { return data.type == 'discountPrice'; }); $rootScope.paymentDiscount = discount ? discount.value.value : 0; lodash.forEach(lodash.filter(list, {type: 'payPrice'}), function (payData) { $rootScope.dataUtils.payPrice[payData.name] = payData.value.value; $rootScope.dataUtils.payPrice[payData.name+ "Description"] = payData.value.description; $rootScope.dataUtils.payPrice[payData.name+ "Id"] = payData.id; var discount = (payData.value.value * $rootScope.paymentDiscount) / 100; $rootScope.dataUtils.payPrice[payData.name + "Discount"] = discount > 0 ? (payData.value.value - discount) : 0; }); if (Auth.isAuthenticated()) { $rootScope.isAuthenticated = true; $rootScope.sidebarActive = true; var isAdmin = localStorage.getItem('isAdmin'); var role = localStorage.getItem('role'); var name = localStorage.getItem('username'); $rootScope.isAdmin = isAdmin && isAdmin !== 'undefined' && !!JSON.parse(localStorage.getItem('isAdmin')); $rootScope.role = role && role !== 'undefined' && localStorage.getItem('role'); $rootScope.name = name && name !== 'undefined' && localStorage.getItem('username'); $rootScope.fullAccount = !!$localStorage.fullAccount; if ($rootScope.isAdmin) { confirmationPopoverDefaults.templateUrl = 'partials/mwl-confirm-admin.html'; } else { var user = Auth.getCurrent(); $rootScope.dataUtils.tcs = lodash.find(list, {name: 'tcs'}).value; $rootScope.dataUtils.is2FA = lodash.find(list, {name: 'is2FA'}).value; $rootScope.dataUtils.isExperiences = lodash.find(list, {name: 'isExperiences'}).value; $state.go('registry'); user.$promise.then(function (a) { if (!a.is2FA && $rootScope.dataUtils.is2FA.is2FA){ $state.go('activate'); } }); } } else { $rootScope.sidebarActive = false; $rootScope.showNumber = false; $rootScope.dataUtils.tcs = lodash.find(list, {name: 'tcs'}).value; } }); }); $rootScope.$emit('reloadUtils'); $rootScope.$storage = $localStorage; $rootScope.$on('Account::logout', function () { $localStorage.nowLogout = true; localStorage.removeItem('isAdmin'); $window.location.href = $window.location.origin; }); $rootScope.$on('Account::onboardinglogin', function (event, dataLogin) { if (dataLogin && dataLogin.isAdmin) { localStorage.setItem('isAdmin', JSON.stringify(true)); } $localStorage.nowLogin = true; $localStorage.fullAccount = dataLogin.payInformationData && dataLogin.payInformationData.isPaid; }); $rootScope.$on('Account::login', function (event, dataLogin) { if (dataLogin && dataLogin.isAdmin) { localStorage.setItem('isAdmin', JSON.stringify(true)); localStorage.setItem('role', dataLogin.objAdmin.role ); localStorage.setItem('username', dataLogin.objAdmin.user.username ); } $localStorage.nowLogin = true; $localStorage.fullAccount = dataLogin.payInformationData && dataLogin.payInformationData.isPaid; $window.location.href = $window.location.origin; }); $rootScope.$on('imageProfile', function (event, args) { $rootScope.imageProfile = args; $localStorage.imageProfile = args; }); var defaultDataState = $state.get('home').data; $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams, options) { $rootScope.dataState = toState.data ? lodash.defaults(toState.data, defaultDataState) : defaultDataState; $rootScope.canonicalUrl = angular.element(document).find('base').attr('href') + $location.path().substring(1); $timeout(function () { window.prerenderReady = true; }, 2000); }); $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams, options) { document.body.scrollTop = document.documentElement.scrollTop = 0; $rootScope.current = toState.name; $rootScope.uniko_aside = toState.name == 'registry' || toState.name == 'homeUser' || toState.name == 'products.new'; $rootScope.uniko_aside_profile = toState.name == 'cashout' || toState.name == 'gifts' || toState.name.indexOf('homeUser.') > -1; if ($localStorage.imageProfile) { $rootScope.imageProfile = $localStorage.imageProfile; } if (Auth.isAuthenticated()) { if ($localStorage.newAccount) { delete $localStorage.newAccount; $translate('new-created-account').then(function (translation) { toastr.info(translation); }); } if ($localStorage.nowLogin) { delete $localStorage.nowLogin; $translate('sign-in-success').then(function (translation) { toastr.success(translation); }); } var isAdmin = localStorage.getItem('isAdmin'); $rootScope.isAdmin = isAdmin && isAdmin !== 'undefined' && !!JSON.parse(localStorage.getItem('isAdmin')); if(toState.name === 'home' && $rootScope.isAdmin){ event.preventDefault(); $state.go('admin.coupleAccounts'); }else if (toState.name === 'home' || (toState.data && toState.data.onlyUnathenticated)) { event.preventDefault(); $rootScope.current = 'homeUser'; $state.go('homeUser'); } else if (toState.name === 'homeUser' && $rootScope.isAdmin) { event.preventDefault(); $state.go('admin.coupleAccounts'); } } else { if ($localStorage.nowLogout) { delete $localStorage.nowLogout; $translate('log-out-success').then(function (translation) { toastr.info(translation); }); } if (toState.data && toState.data.requireLogin) { event.preventDefault(); $state.go('login'); } } }); $rootScope.$on('Auth::unauthorized', function () { if ($state.$current.data && $state.$current.data.requireLogin) { $window.location.href = $window.location.origin; } }); $rootScope.$on('$locationChangeSuccess', function () { }); $rootScope.toggleSidebar = function () { $rootScope.sidebarActive = !$rootScope.sidebarActive; }; editableOptions.theme = 'bs3'; $rootScope.slug = function (data) { return lodash.deburr(data).replace(/\W/g, " ").replace(/\s+/g, '_').substr(0, 40); }; Restangular.addFullRequestInterceptor(function (element, operation, route, url, headers, params, httpConfig) { if (LoopBackAuth.accessTokenId) { headers.authorization = LoopBackAuth.accessTokenId; } return { element: element, params: params, headers: headers, httpConfig: httpConfig }; }); $rootScope.goToTable = function (url, couple) { $rootScope.lastCoupleLoaded = couple; $location.path(url); }; } $selectConfig.$inject = ['uiSelectConfig']; function $selectConfig(uiSelectConfig) { uiSelectConfig.theme = 'bootstrap'; uiSelectConfig.resetSearchInput = true; uiSelectConfig.appendToBody = true; } angular .module('uniko') .config($configStorage) .config($configMaps) .config($configAnalytics) .config($configConekta) .config($configMercado) .config($configLoadingBar) .config($configClipboard) .config($toastrConfig) .config($configRestangular) .config($configHtml5Mode) .config($selectConfig) .run($run); })();