(function() { 'use strict'; angular .module('hyperion') .controller('system.CompanyController', ['$http', '$scope', '$mdDialog', '$timeout', '$location', '$sessionStorage', '$filter', 'modalDialog', 'CONFIG', 'sysClock', 'authService', function($http, $scope, $mdDialog, $timeout, $location, $sessionStorage, $filter, modalDialog, CONFIG, sysClock, authService) { // set #content div margin if($sessionStorage.currentUser !== undefined) { if($sessionStorage.currentUser.smallMenu) { $("#content").css('margin-left', 50); } } /////////////////////////////////////////////////////////////////////////////// // TEMPLATE SETTINGS $scope.accessdenied = false; $scope.isLoading = true; // show ajax loader let company_cache = {}; $scope.self = $sessionStorage.currentUser.user_id; /////////////////////////////////////////////////////////////////////////////// $timeout(function() { if(!$sessionStorage.currentUser.ismanager) { $scope.accessdenied = true; } else { authService.getJWTAuth().then(authHeader => { var request = {'query': 'query { ' + 'dictionary_country { ' + 'id ' + 'name ' + 'full_name ' + 'code_iso_31661 ' + 'calling_code ' + '}' + '}' }; $http({ method: 'POST', url: CONFIG.APP_API, data: request, headers: authHeader }).then( function(response){ // resolve $scope.countries = response.data.data.dictionary_country; },function(error) { // failure console.error(error); } ); }); authService.getJWTAuth().then(authHeader => { var request = {'query': 'query { ' + 'companies(id:"' + $sessionStorage.currentUser.company_id + '") { ' + 'id ' + 'name ' + 'address_street1 ' + 'address_street2 ' + 'address_city ' + 'address_state ' + 'address_zipcode ' + 'address_country_id ' + 'address_country_name ' + 'phone_dialcode ' + 'phone_number ' + 'accounts { ' + 'id ' + 'created ' + 'title { ' + 'name ' + '} ' + 'first_name ' + 'last_name ' + 'isactive ' + 'ismanager ' + 'isverified ' + '} ' + '}' + '}' }; $http({ method: 'POST', url: CONFIG.APP_API, data: request, headers: authHeader }).then( function(response){ // resolve $scope.company = response.data.data.companies[0]; $scope.company.phone_dialcode = '+'+$scope.company.phone_dialcode; $scope.accounts = response.data.data.companies[0].accounts; $scope.accounts.forEach((account, index) => { if(account.id === $scope.self) { account.order = 0; } else { account.order = index+1; } }); angular.copy($scope.company, company_cache); $scope.company.address_country = $filter('filter')($scope.countries, {id: $scope.company.address_country_id})[0]; $scope.isLoading = false; // hide ajax loader },function(error) { // failure console.error(error); } ); }); } }, 100); $scope.selectAddressCountry = function() { $scope.company.address_country_id = $scope.company.address_country.id; $scope.company.phone_dialcode = '+' + $scope.company.address_country.calling_code; }; $scope.saveCompanyChanges = function() { authService.getJWTAuth().then(authHeader => { var request = {'query': 'mutation { ' + 'companyupdate ( ' + 'company_id: "' + $sessionStorage.currentUser.company_id + '", ' + 'name: "' + $scope.company.name + '", ' + 'phone_number: "' + $scope.company.phone_number + '", ' + 'address_street1: "' + $scope.company.address_street1 + '", ' + 'address_street2: "' + $scope.company.address_street2 + '", ' + 'address_city: "' + $scope.company.address_city + '", ' + 'address_state: "' + $scope.company.address_state + '", ' + 'address_zipcode: "' + $scope.company.address_zipcode + '", ' + 'address_country_id: ' + $scope.company.address_country.id + '){ id }' + '}' }; console.log(request); $http({ method: 'POST', url: CONFIG.APP_API, data: request, headers: authHeader }).then( function(response){ // resolve $scope.companyForm.$setPristine(); //$location.path('/system/mycompany'); },function(error) { // failure console.error(error); } ); }); }; $scope.cancelCompanyChanges = function() { angular.copy(company_cache, $scope.company); $scope.company.address_country = $filter('filter')($scope.countries, {id: $scope.company.address_country_id})[0]; $scope.companyForm.$setPristine(); }; $scope.viewUserAccount = function(account_id) { $location.path('/system/account/' + account_id); } $scope.accountChangeStatus = function(account_id) { console.log('accountChangeStatus: ' + account_id); } $scope.addUserAccount = function() { $location.path('/system/newaccount'); }; }]); })();