diff --git a/app/account/account.module.js b/app/account/account.module.js
index c45ce1ea5..5f75f472c 100644
--- a/app/account/account.module.js
+++ b/app/account/account.module.js
@@ -12,10 +12,4 @@ import angular from 'angular'
]
angular.module('tc.account', dependencies)
- .config(['$provide',function ($provide) {
- $provide.decorator('$log', ['$delegate', 'LogEnhancer', function ($delegate, LogEnhancer) {
- LogEnhancer.enhanceLogger($delegate)
- return $delegate
- }])
- }])
})()
diff --git a/app/account/account.routes.js b/app/account/account.routes.js
index f9f650f4b..ea42cce75 100644
--- a/app/account/account.routes.js
+++ b/app/account/account.routes.js
@@ -15,11 +15,11 @@ import angular from 'angular'
data: {
authRequired: false
},
- onEnter: ['$state', '$stateParams', 'TcAuthService', '$log', function($state, $stateParams, TcAuthService, $log) {
+ onEnter: ['$state', '$stateParams', 'TcAuthService', 'logger', function($state, $stateParams, TcAuthService, logger) {
if (TcAuthService.isAuthenticated()) {
// redirect to next if exists else dashboard
if ($stateParams.next) {
- $log.debug('Redirecting: ' + $stateParams.next)
+ logger.debug('Redirecting: ' + $stateParams.next)
window.location.href = decodeURIComponent($stateParams.next)
} else {
$state.go('dashboard')
diff --git a/app/account/login/login.controller.js b/app/account/login/login.controller.js
index 8db372b9b..6d0c6bf5e 100644
--- a/app/account/login/login.controller.js
+++ b/app/account/login/login.controller.js
@@ -5,11 +5,10 @@ import angular from 'angular'
angular.module('tc.account').controller('LoginController', LoginController)
- LoginController.$inject = ['$log', '$state', '$stateParams', '$location', '$scope', 'TcAuthService', 'UserService', 'Helpers', 'CONSTANTS']
+ LoginController.$inject = ['logger', '$state', '$stateParams', '$location', '$scope', 'TcAuthService', 'UserService', 'Helpers', 'CONSTANTS']
- function LoginController($log, $state, $stateParams, $location, $scope, TcAuthService, UserService, Helpers, CONSTANTS) {
+ function LoginController(logger, $state, $stateParams, $location, $scope, TcAuthService, UserService, Helpers, CONSTANTS) {
var vm = this
- $log = $log.getInstance('LoginController')
vm.$stateParams = $stateParams
vm.passwordReset = false
vm.loginErrors = {
@@ -76,27 +75,28 @@ import angular from 'angular'
}
function _doLogin(usernameOrEmail, password) {
- return TcAuthService.login(usernameOrEmail, password).then(function(data) {
- // success
- $log.debug('logged in')
+ return TcAuthService.login(usernameOrEmail, password)
+ .then(function(data) {
+ // setup login event for analytics tracking
+ Helpers.setupLoginEventMetrics(usernameOrEmail)
+ return Helpers.redirectPostLogin($stateParams.next)
- // setup login event for analytics tracking
- Helpers.setupLoginEventMetrics(usernameOrEmail)
- return Helpers.redirectPostLogin($stateParams.next)
-
- }).catch(function(resp) {
- $log.warn(resp)
- switch (resp.status) {
- case 'ACCOUNT_INACTIVE':
- $state.go('registeredSuccessfully')
- // user should already be redirected
- break
- case 'UNKNOWN_ERROR':
- default:
- vm.loginErrors.WRONG_PASSWORD = true
- vm.password = ''
- }
- })
+ })
+ .catch(function(err) {
+ logger.warning(err)
+
+ switch (err.status) {
+ case 'ACCOUNT_INACTIVE':
+ $state.go('registeredSuccessfully')
+ // user should already be redirected
+ break
+ case 'UNKNOWN_ERROR':
+ default:
+ vm.loginErrors.WRONG_PASSWORD = true
+ vm.password = ''
+ logger.error('Error logging in: ', err)
+ }
+ })
}
function socialLogin(platform) {
@@ -111,19 +111,19 @@ import angular from 'angular'
TcAuthService.socialLogin(platform, callbackUrl)
.then(function() {
- $log.debug('logged in')
+ logger.debug('logged in')
return Helpers.redirectPostLogin($stateParams.next)
})
- .catch(function(resp) {
+ .catch(function(err) {
/*eslint no-fallthrough:0*/
- switch (resp.status) {
+ switch (err.status) {
case 'ACCOUNT_INACTIVE':
window.location.href = 'https://www.' + CONSTANTS.domain + '/account-inactive/'
case 'USER_NOT_REGISTERED':
default:
vm.socialLoginError = 401
vm.loginErrors.SOCIAL_LOGIN_ERROR = true
- break
+ logger.error('Error logging in with social account', err)
}
})
}
diff --git a/app/account/logout/logout.controller.js b/app/account/logout/logout.controller.js
index 4275cc9be..4be96b3c9 100644
--- a/app/account/logout/logout.controller.js
+++ b/app/account/logout/logout.controller.js
@@ -5,17 +5,16 @@ import angular from 'angular'
angular.module('tc.account').controller('LogoutController', LogoutController)
- LogoutController.$inject = ['$log', 'TcAuthService', '$window', 'CONSTANTS']
+ LogoutController.$inject = ['logger', 'TcAuthService', '$window', 'CONSTANTS']
- function LogoutController($log, TcAuthService, $window, CONSTANTS) {
- $log = $log.getInstance('LogoutController')
+ function LogoutController(logger, TcAuthService, $window, CONSTANTS) {
TcAuthService.logout()
.then(function() {
- $log.debug('successfully logged out.')
- // redirect to home
+ logger.debug('Successfully logged out.')
+
+ // Redirect to home
$window.location.href = CONSTANTS.MAIN_URL
})
-
}
})()
diff --git a/app/account/register/register.controller.js b/app/account/register/register.controller.js
index 290cd1418..a08b1d86d 100644
--- a/app/account/register/register.controller.js
+++ b/app/account/register/register.controller.js
@@ -6,11 +6,9 @@ import _ from 'lodash'
angular.module('tc.account').controller('RegisterController', RegisterController)
- RegisterController.$inject = ['$log', 'CONSTANTS', '$state', '$stateParams', 'TcAuthService', 'UserService', 'ISO3166', 'Helpers']
+ RegisterController.$inject = ['logger', 'CONSTANTS', '$state', '$stateParams', 'TcAuthService', 'UserService', 'ISO3166', 'Helpers']
- function RegisterController($log, CONSTANTS, $state, $stateParams, TcAuthService, UserService, ISO3166, Helpers) {
- $log = $log.getInstance('RegisterController')
- $log.debug('-init')
+ function RegisterController(logger, CONSTANTS, $state, $stateParams, TcAuthService, UserService, ISO3166, Helpers) {
var vm = this
vm.registering = false
// prepares utm params, if available
@@ -20,18 +18,10 @@ import _ from 'lodash'
campaign : $stateParams && $stateParams.utm_campaign ? $stateParams.utm_campaign : ''
}
-
// Set default for toggle password directive
vm.defaultPlaceholder = 'Create Password'
vm.busyMessage = CONSTANTS.BUSY_PROGRESS_MESSAGE
- // FIXME - This needs to be setup with https
- // lookup users country
- // Helpers.getCountyObjFromIP()
- // .then(function(obj) {
- // vm.countryObj = obj
- // })
-
vm.countries = ISO3166.getAllCountryObjects()
vm.updateCountry = function (angucompleteCountryObj) {
@@ -85,18 +75,18 @@ import _ from 'lodash'
}
}
- $log.debug('attempting to register user')
TcAuthService.register(body)
.then(function(data) {
vm.registering = false
- $log.debug('registered successfully')
+ logger.debug('Registered successfully')
// In the future, go to dashboard
$state.go('registeredSuccessfully')
})
.catch(function(err) {
vm.registering = false
- $log.error('Error in registering new user: ', err)
+
+ logger.error('Error in registering new user', err)
})
}
@@ -130,17 +120,22 @@ import _ from 'lodash'
vm.isSocialRegistration = false
}
})
- .catch(function(result) {
- switch (result.status) {
- case 'SOCIAL_PROFILE_ALREADY_EXISTS':
- vm.errMsg = 'An account with that profile already exists. Please login to access your account.'
- break
- default:
- vm.errMsg = 'Whoops! Something went wrong. Please try again later.'
- break
- }
- vm.isSocialRegistration = false
- })
+ .catch(function(err) {
+ switch (err.status) {
+ case 'SOCIAL_PROFILE_ALREADY_EXISTS':
+ vm.errMsg = 'An account with that profile already exists. Please login to access your account.'
+
+ logger.error('Error registering user with social account', err)
+
+ break
+
+ default:
+ vm.errMsg = 'Whoops! Something went wrong. Please try again later.'
+
+ logger.error('Error registering user with social account', err)
+ }
+ vm.isSocialRegistration = false
+ })
}
vm.$stateParams = $stateParams
diff --git a/app/blocks/logger/logger.js b/app/blocks/logger/logger.js
index ec098a2c1..4b651a72b 100644
--- a/app/blocks/logger/logger.js
+++ b/app/blocks/logger/logger.js
@@ -12,10 +12,11 @@ import angular from 'angular'
var service = {
showToasts: false,
- error: error,
- info: info,
+ error : error,
+ info : info,
success: success,
warning: warning,
+ debug : debug,
// straight to console bypass toastr
log: $log.log
@@ -25,19 +26,33 @@ import angular from 'angular'
/////////////////////
function error(message, data, title) {
- $log.error('Error: ' + message, data)
+ if (data) {
+ message = `${message} ${JSON.stringify(data)}`
+ }
+
+ $log.error(message)
+
+ if (window.NREUM) {
+ var err = new Error(message)
+
+ window.NREUM.noticeError(err)
+ }
}
function info(message, data, title) {
- $log.info('Info: ' + message, data)
+ $log.info('Info: ' + message, data ? data : '')
}
function success(message, data, title) {
- $log.info('Success: ' + message, data)
+ $log.info('Success: ' + message, data ? data : '')
+ }
+
+ function debug(message, data, title) {
+ $log.debug('Debug: ' + message, data ? data : '')
}
function warning(message, data, title) {
- $log.warn('Warning: ' + message, data)
+ $log.warn('Warning: ' + message, data ? data : '')
}
}
}())
diff --git a/app/directives/account/validate-register.directive.js b/app/directives/account/validate-register.directive.js
index 5c765e014..d20920abe 100644
--- a/app/directives/account/validate-register.directive.js
+++ b/app/directives/account/validate-register.directive.js
@@ -52,14 +52,14 @@ import angular from 'angular'
}
}
- usernameIsFree.$inject = ['UserService', '$log', '$q']
+ usernameIsFree.$inject = ['UserService', 'logger', '$q']
- function usernameIsFree(UserService, $log, $q) {
+ function usernameIsFree(UserService, logger, $q) {
return {
require: 'ngModel',
link: function(scope, element, attrs, ctrl) {
ctrl.$asyncValidators.usernameIsFree = function(modelValue, viewValue) {
- $log.info('Validating username: ' + modelValue)
+ logger.info('Validating username: ' + modelValue)
var defer = $q.defer()
@@ -97,14 +97,14 @@ import angular from 'angular'
}
}
- emailIsAvailable.$inject = ['UserService', '$log', '$q']
+ emailIsAvailable.$inject = ['UserService', 'logger', '$q']
- function emailIsAvailable(UserService, $log, $q) {
+ function emailIsAvailable(UserService, logger, $q) {
return {
require: 'ngModel',
link: function(scope, element, attrs, ctrl) {
ctrl.$asyncValidators.emailIsAvailable = function(modelValue, viewValue) {
- $log.info('Validating email: ' + modelValue)
+ logger.info('Validating email: ' + modelValue)
var defer = $q.defer()
diff --git a/app/directives/external-account/external-account.directive.js b/app/directives/external-account/external-account.directive.js
index 26b2b4c2d..ae9c3a35e 100644
--- a/app/directives/external-account/external-account.directive.js
+++ b/app/directives/external-account/external-account.directive.js
@@ -24,20 +24,21 @@ import _ from 'lodash'
linkedAccounts: '=',
readOnly: '='
},
- controller: ['$log', '$scope', 'ExternalAccountService', 'toaster',
- function($log, $scope, ExternalAccountService, toaster) {
-
- $log = $log.getInstance('ExtAccountDirectiveCtrl')
-
+ controller: ['logger', '$scope', 'ExternalAccountService', 'toaster',
+ function(logger, $scope, ExternalAccountService, toaster) {
var _accountList = _.clone(_supportedAccounts, true)
+
_.remove(_accountList, function(al) { return al.order < 0})
+
$scope.$watchCollection('linkedAccounts', function(newValue, oldValue) {
if (newValue) {
angular.forEach(_accountList, function(account) {
var _linkedAccount = _.find(newValue, function(p) {
return p.provider === account.provider
})
+
var accountStatus = _.get(_linkedAccount, 'data.status', null)
+
if (!_linkedAccount) {
account.status = 'unlinked'
} else if(accountStatus && accountStatus.toLowerCase() === 'pending') {
@@ -46,9 +47,11 @@ import _ from 'lodash'
account.status = 'linked'
}
})
+
$scope.accountList = _accountList
+
} else {
- // reset the status for all accounts
+ // Reset the status for all accounts
angular.forEach(_accountList, function(account) {
delete account.status
})
@@ -59,11 +62,15 @@ import _ from 'lodash'
provider = _.find(_supportedAccounts, function(s) {
return s.provider === provider
})
+
if (status === 'linked') {
- $log.debug(String.supplant('UnLinking to ' + provider.displayName))
+ logger.debug(String.supplant('UnLinking to ' + provider.displayName))
+
_unlink(provider)
+
} else if (status === 'unlinked') {
- $log.debug(String.supplant('Linking to ' + provider.displayName))
+ logger.debug(String.supplant('Linking to ' + provider.displayName))
+
_link(provider)
}
}
@@ -71,8 +78,10 @@ import _ from 'lodash'
function _link(provider) {
ExternalAccountService.linkExternalAccount(provider.provider, null)
.then(function(resp) {
- $log.debug('Social account linked: ' + JSON.stringify(resp))
+ logger.debug('Social account linked: ' + JSON.stringify(resp))
+
$scope.linkedAccounts.push(resp.linkedAccount)
+
toaster.pop('success', 'Success',
String.supplant(
'Your {provider} account has been linked. Data from your linked account will be visible on your profile shortly.',
@@ -80,9 +89,10 @@ import _ from 'lodash'
)
)
})
- .catch(function(resp) {
- if (resp.status === 'SOCIAL_PROFILE_ALREADY_EXISTS') {
- $log.info('Social profile already linked to another account')
+ .catch(function(err) {
+ if (err.status === 'SOCIAL_PROFILE_ALREADY_EXISTS') {
+ logger.info('Social profile already linked to another account')
+
toaster.pop('error', 'Whoops!',
String.supplant(
'This {provider} account is linked to another account. \
@@ -91,7 +101,8 @@ import _ from 'lodash'
)
)
} else {
- $log.error('Fatal Error: _link: ' + resp.msg)
+ logger.error('Fatal Error: _link: ', err.msg)
+
toaster.pop('error', 'Whoops!', 'Sorry, we are unable to add your account right now. Please try again later. If the problem persists, please contact support@topcoder.com.')
}
})
@@ -100,10 +111,12 @@ import _ from 'lodash'
function _unlink(provider) {
return ExternalAccountService.unlinkExternalAccount(provider.provider)
.then(function(resp) {
- $log.debug('Social account unlinked: ' + JSON.stringify(resp))
+ logger.debug('Social account unlinked: ' + JSON.stringify(resp))
+
var toRemove = _.findIndex($scope.linkedAccounts, function(la) {
return la.provider === provider.provider
})
+
if (toRemove > -1) {
// remove from the linkedAccounts array
$scope.linkedAccounts.splice(toRemove, 1)
@@ -115,13 +128,16 @@ import _ from 'lodash'
)
)
})
- .catch(function(resp) {
- var msg = resp.msg
- if (resp.status === 'SOCIAL_PROFILE_NOT_EXIST') {
- $log.info('Social profile not linked to account')
+ .catch(function(err) {
+ var msg = err.msg
+
+ if (err.status === 'SOCIAL_PROFILE_NOT_EXIST') {
+ logger.info('Social profile not linked to account')
+
msg = '{provider} account is not linked to your account. If you think this is an error please contact support@topcoder.com.'
} else {
- $log.error('Fatal error: _unlink: ' + msg)
+ logger.error('Fatal error: _unlink', msg)
+
msg = 'Sorry! We are unable to unlink your {provider} account. If problem persists, please contact support@topcoder.com'
}
toaster.pop('error', 'Whoops!', String.supplant(msg, {provider: provider.displayName }))
diff --git a/app/directives/external-account/external-link-deletion.controller.js b/app/directives/external-account/external-link-deletion.controller.js
index bde43efc3..5e2b1fbeb 100644
--- a/app/directives/external-account/external-link-deletion.controller.js
+++ b/app/directives/external-account/external-link-deletion.controller.js
@@ -2,51 +2,55 @@ import angular from 'angular'
import _ from 'lodash'
(function () {
-
angular.module('tcUIComponents')
.controller('ExternalLinkDeletionController', ExternalLinkDeletionController)
- ExternalLinkDeletionController.$inject = ['ExternalWebLinksService', '$q', '$log', 'toaster', 'ngDialog', 'userHandle', 'account', 'linkedAccountsData']
+ ExternalLinkDeletionController.$inject = ['ExternalWebLinksService', '$q', 'logger', 'toaster', 'ngDialog', 'userHandle', 'account', 'linkedAccountsData']
- function ExternalLinkDeletionController(ExternalWebLinksService, $q, $log, toaster, ngDialog, userHandle, account, linkedAccountsData) {
+ function ExternalLinkDeletionController(ExternalWebLinksService, $q, logger, toaster, ngDialog, userHandle, account, linkedAccountsData) {
var vm = this
vm.account = account
- $log = $log.getInstance('ExternalLinkDeletionController')
vm.deleteAccount = function() {
- $log.debug('Deleting Account...')
+ logger.debug('Deleting Account...')
+
if (account && account.deletingAccount) {
- $log.debug('Another deletion is already in progress.')
+ logger.debug('Another deletion is already in progress.')
return
}
+
if (account && account.provider === 'weblink') {
account.deletingAccount = true
- $log.debug('Deleting weblink...')
- return ExternalWebLinksService.removeLink(userHandle, account.key).then(function(data) {
- account.deletingAccount = false
- $log.debug('Web link removed: ' + JSON.stringify(data))
- var toRemove = _.findIndex(linkedAccountsData, function(la) {
- return la.provider === 'weblink' && la.key === account.key
+ logger.debug('Deleting weblink...')
+
+ return ExternalWebLinksService.removeLink(userHandle, account.key)
+ .then(function(data) {
+ account.deletingAccount = false
+ logger.debug('Web link removed: ' + JSON.stringify(data))
+ var toRemove = _.findIndex(linkedAccountsData, function(la) {
+ return la.provider === 'weblink' && la.key === account.key
+ })
+ if (toRemove > -1) {
+ // remove from the linkedAccountsData array
+ linkedAccountsData.splice(toRemove, 1)
+ }
+ toaster.pop('success', 'Success', 'Your link has been removed.')
+ })
+ .catch(function(err) {
+ var msg = err.msg
+ if (err.status === 'WEBLINK_NOT_EXIST') {
+ logger.info('Weblink does not exist')
+
+ msg = 'Weblink is not linked to your account. If you think this is an error please contact support@topcoder.com.'
+ } else {
+ logger.error('Fatal error: _unlink', msg)
+
+ msg = 'Sorry! We are unable to remove your weblink. If problem persists, please contact support@topcoder.com'
+ }
+
+ account.deletingAccount = false
+ toaster.pop('error', 'Whoops!', msg)
})
- if (toRemove > -1) {
- // remove from the linkedAccountsData array
- linkedAccountsData.splice(toRemove, 1)
- }
- toaster.pop('success', 'Success', 'Your link has been removed.')
- })
- .catch(function(resp) {
- var msg = resp.msg
- if (resp.status === 'WEBLINK_NOT_EXIST') {
- $log.info('Weblink does not exist')
- msg = 'Weblink is not linked to your account. If you think this is an error please contact support@topcoder.com.'
- } else {
- $log.error('Fatal error: _unlink: ' + msg)
- msg = 'Sorry! We are unable to remove your weblink. If problem persists, please contact support@topcoder.com'
- }
-
- account.deletingAccount = false
- toaster.pop('error', 'Whoops!', msg)
- })
}
}
}
diff --git a/app/directives/external-account/external-links-data.directive.js b/app/directives/external-account/external-links-data.directive.js
index a2840f86f..96fe1d3b7 100644
--- a/app/directives/external-account/external-links-data.directive.js
+++ b/app/directives/external-account/external-links-data.directive.js
@@ -16,9 +16,8 @@ import angular from 'angular'
editable: '=',
userHandle: '@'
},
- controller: ['$log', '$scope', '$window', '$filter', 'ExternalWebLinksService', 'toaster', 'ngDialog',
- function($log, $scope, $window, $filter, ExternalWebLinksService, toaster, ngDialog) {
- $log = $log.getInstance('ExternalLinksDataCtrl')
+ controller: ['logger', '$scope', '$window', '$filter', 'ExternalWebLinksService', 'toaster', 'ngDialog',
+ function(logger, $scope, $window, $filter, ExternalWebLinksService, toaster, ngDialog) {
$scope.deletionDialog = null
$scope.openLink = function(account) {
@@ -63,7 +62,7 @@ import angular from 'angular'
}
}
}).closePromise.then(function (data) {
- $log.debug('Closing deletion confirmation dialog.')
+ logger.debug('Closing deletion confirmation dialog.')
})
}
}
diff --git a/app/directives/external-account/external-web-links.directive.js b/app/directives/external-account/external-web-links.directive.js
index 58eea3169..9f5f5e5d4 100644
--- a/app/directives/external-account/external-web-links.directive.js
+++ b/app/directives/external-account/external-web-links.directive.js
@@ -7,9 +7,9 @@ import angular from 'angular'
// @example
angular.module('tcUIComponents').directive('externalWebLink', ExternalWebLink)
- ExternalWebLink.$inject = ['$log', 'ExternalWebLinksService', 'toaster']
+ ExternalWebLink.$inject = ['logger', 'ExternalWebLinksService', 'toaster']
- function ExternalWebLink($log, ExternalWebLinksService, toaster) {
+ function ExternalWebLink(logger, ExternalWebLinksService, toaster) {
var directive = {
restrict: 'E',
template: require('./external-web-link')(),
@@ -17,24 +17,24 @@ import angular from 'angular'
linkedAccounts: '=',
userHandle: '@'
},
- controller: ['$scope', '$log', ExternalWebLinkCtrl]
+ controller: ['$scope', 'logger', ExternalWebLinkCtrl]
}
- function ExternalWebLinkCtrl($scope, $log) {
- $log = $log.getInstance('ExternalWebLinkCtrl')
+ function ExternalWebLinkCtrl($scope, logger) {
$scope.addingWebLink = false
$scope.errorMessage = null
$scope.urlRegEx = /^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,15})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/
$scope.addWebLink = function() {
- $log.debug('URL: ' + $scope.url)
+ logger.debug('URL: ' + $scope.url)
$scope.addingWebLink = true
$scope.errorMessage = null
+
ExternalWebLinksService.addLink($scope.userHandle, $scope.url)
.then(function(data) {
$scope.addingWebLink = false
- $log.debug('Web link added: ' + JSON.stringify(data))
+ logger.debug('Web link added: ' + JSON.stringify(data))
data.data.provider = data.provider
$scope.linkedAccounts.push(data.data)
// reset the form when it is successfully added
@@ -42,17 +42,19 @@ import angular from 'angular'
$scope.url = null
toaster.pop('success', 'Success', 'Your link has been added. Data from your link will be visible on your profile shortly.')
})
- .catch(function(resp) {
+ .catch(function(err) {
$scope.addingWebLink = false
- if (resp.status === 'WEBLINK_ALREADY_EXISTS') {
- $log.info('Social profile already linked to another account')
+ if (err.status === 'WEBLINK_ALREADY_EXISTS') {
+ logger.info('Social profile already linked to another account')
+
toaster.pop('error', 'Whoops!',
'This weblink is already added to your account. \
If you think this is an error please contact support@topcoder.com.'
)
} else {
- $log.error('Fatal Error: addWebLink: ' + resp.msg)
+ logger.error('Fatal Error: addWebLink', err.msg)
+
toaster.pop('error', 'Sorry, we are unable add web link. If problem persist please contact support@topcoder.com.')
}
})
diff --git a/app/directives/page-state-header/page-state-header.directive.js b/app/directives/page-state-header/page-state-header.directive.js
index c5f11a4af..23030ba96 100644
--- a/app/directives/page-state-header/page-state-header.directive.js
+++ b/app/directives/page-state-header/page-state-header.directive.js
@@ -16,12 +16,12 @@ import _ from 'lodash'
hideMoney: '=',
defaultState: '@'
},
- controller: ['CONSTANTS', '$rootScope', '$scope', 'ProfileService', '$log', '$state', pageStateHeader],
+ controller: ['CONSTANTS', '$rootScope', '$scope', 'ProfileService', 'logger', '$state', pageStateHeader],
controllerAs: 'vm'
}
})
- function pageStateHeader(CONSTANTS, $rootScope, $scope, ProfileService, $log, $state) {
+ function pageStateHeader(CONSTANTS, $rootScope, $scope, ProfileService, logger, $state) {
var vm = this
vm.backHandler = backHandler
@@ -106,6 +106,8 @@ import _ from 'lodash'
.catch(function(err) {
$scope.hideMoney = true
vm.loading = false
+
+ logger.error('Could not get user financial information', err)
})
}
}
diff --git a/app/directives/responsive-carousel/responsive-carousel.directive.js b/app/directives/responsive-carousel/responsive-carousel.directive.js
index cf226ed78..32869d152 100644
--- a/app/directives/responsive-carousel/responsive-carousel.directive.js
+++ b/app/directives/responsive-carousel/responsive-carousel.directive.js
@@ -13,8 +13,8 @@ import angular from 'angular'
data: '=',
handle: '@'
},
- controller: ['$log', '$scope', '$element', '$window',
- function($log, $scope, $element, $window) {
+ controller: ['$scope', '$element', '$window',
+ function($scope, $element, $window) {
$scope.slideCounts = {}
activate()
diff --git a/app/directives/tc-paginator/tc-paginator.directive.js b/app/directives/tc-paginator/tc-paginator.directive.js
index c46c4c6dd..822040974 100644
--- a/app/directives/tc-paginator/tc-paginator.directive.js
+++ b/app/directives/tc-paginator/tc-paginator.directive.js
@@ -13,7 +13,7 @@ import angular from 'angular'
pageParams: '=',
data: '='
},
- controller: ['$log', '$scope', '$element', function($log, $scope, $element) {
+ controller: ['logger', '$scope', '$element', function(logger, $scope, $element) {
$element.addClass('tc-paginator')
var vm = this
@@ -35,7 +35,7 @@ import angular from 'angular'
function activate() {
// attaches watcher to watch data changes
$scope.$watch('data', function(updatedValue) {
- $log.debug('data updated for paginator ', updatedValue)
+ logger.debug('data updated for paginator ', updatedValue)
init(updatedValue)
})
}
diff --git a/app/directives/tc-section/tc-section.directive.js b/app/directives/tc-section/tc-section.directive.js
index bb9633053..ce64027ae 100644
--- a/app/directives/tc-section/tc-section.directive.js
+++ b/app/directives/tc-section/tc-section.directive.js
@@ -12,8 +12,8 @@ import angular from 'angular'
scope: {
state: '=state'
},
- controller: ['$log', '$scope', '$element', function($log, $scope, $element) {
- $log.debug('state ', $scope.state)
+ controller: ['logger', '$scope', '$element', function(logger, $scope, $element) {
+ logger.debug('state ', $scope.state)
$element.addClass('tc-section')
$scope.errMsg = 'Whoops! Something went wrong. Please try again later.'
}]
diff --git a/app/directives/tc-tabs/tc-tabs.directive.js b/app/directives/tc-tabs/tc-tabs.directive.js
index 7007027e0..f788de803 100644
--- a/app/directives/tc-tabs/tc-tabs.directive.js
+++ b/app/directives/tc-tabs/tc-tabs.directive.js
@@ -11,8 +11,7 @@ import angular from 'angular'
bindToController: true,
template: require('./tc-tabs')(),
scope: {},
- controller: ['$log', '$location', '$scope', function($log, $location, $scope, $element) {
- $log = $log.getInstance('TcTabSetController')
+ controller: ['$location', '$scope', function($location, $scope, $element) {
this.tabs = []
this.addTab = function addTab(tab) {
diff --git a/app/directives/tcui-components.module.js b/app/directives/tcui-components.module.js
index 6330f4da6..30abf2e5a 100644
--- a/app/directives/tcui-components.module.js
+++ b/app/directives/tcui-components.module.js
@@ -4,10 +4,4 @@ import angular from 'angular'
'use strict'
angular.module('tcUIComponents', ['dcbImgFallback', 'blocks.logger', 'toaster'])
- .config(['$provide',function ($provide) {
- $provide.decorator('$log', ['$delegate', 'LogEnhancer', function ($delegate, LogEnhancer) {
- LogEnhancer.enhanceLogger($delegate)
- return $delegate
- }])
- }])
})()
diff --git a/app/layout/header/header.controller.js b/app/layout/header/header.controller.js
index 1b2af8d8f..e8ae71961 100644
--- a/app/layout/header/header.controller.js
+++ b/app/layout/header/header.controller.js
@@ -6,9 +6,9 @@ import _ from 'lodash'
angular.module('tc.layout').controller('HeaderController', HeaderController)
- HeaderController.$inject = ['$state', 'TcAuthService', 'CONSTANTS', '$log', '$rootScope', 'UserService', 'ProfileService', 'NavService']
+ HeaderController.$inject = ['$state', 'TcAuthService', 'CONSTANTS', 'logger', '$rootScope', 'UserService', 'ProfileService', 'NavService']
- function HeaderController($state, TcAuthService, CONSTANTS, $log, $rootScope, UserService, ProfileService, NavService) {
+ function HeaderController($state, TcAuthService, CONSTANTS, logger, $rootScope, UserService, ProfileService, NavService) {
var vm = this
vm.constants = CONSTANTS
@@ -47,8 +47,10 @@ import _ from 'lodash'
}
function initHeaderProps(event) {
- $log.debug(event + ' triggered header update.')
+ logger.debug(event + ' triggered header update.')
+
vm.isAuth = TcAuthService.isAuthenticated()
+
if (vm.isAuth) {
vm.userHandle = UserService.getUserIdentity().handle
@@ -65,8 +67,7 @@ import _ from 'lodash'
vm.userHandleColor = ProfileService.getUserHandleColor(vm.profile)
})
.catch(function(err) {
- $log.error('Unable to get user data')
- // todo handle error
+ logger.error('Unable to get user profile data', err)
})
}
}
diff --git a/app/my-challenges/my-challenges.controller.js b/app/my-challenges/my-challenges.controller.js
index 46b226332..b30fe3731 100644
--- a/app/my-challenges/my-challenges.controller.js
+++ b/app/my-challenges/my-challenges.controller.js
@@ -6,10 +6,9 @@ import _ from 'lodash'
angular.module('tc.myChallenges').controller('MyChallengesController', MyChallengesController)
- MyChallengesController.$inject = ['ChallengeService', 'UserService', '$q', '$log', '$state', 'CONSTANTS', 'Helpers', '$scope', 'userIdentity', '$stateParams']
+ MyChallengesController.$inject = ['ChallengeService', 'UserService', '$q', 'logger', '$state', 'CONSTANTS', 'Helpers', '$scope', 'userIdentity', '$stateParams']
- function MyChallengesController(ChallengeService, UserService, $q, $log, $state, CONSTANTS, Helpers, $scope, userIdentity, $stateParams) {
- $log = $log.getInstance('MyChallengesController')
+ function MyChallengesController(ChallengeService, UserService, $q, logger, $state, CONSTANTS, Helpers, $scope, userIdentity, $stateParams) {
var vm = this
vm.domain = CONSTANTS.domain
vm.neverParticipated = false
@@ -28,7 +27,7 @@ import _ from 'lodash'
}
vm.statusFilter = _.get($stateParams, 'status','active')
if (vm.statusFilter !== 'active' && vm.statusFilter !== 'completed') {
- $log.error('invalid filter, defaulting to active')
+ logger.info('invalid filter, defaulting to active')
vm.statusFilter = 'active'
}
vm.orderBy
@@ -91,8 +90,9 @@ import _ from 'lodash'
vm.loading = CONSTANTS.STATE_READY
}
})
- .catch(function(resp) {
- $log.error(resp)
+ .catch(function(err) {
+ logger.error('Error getting all challenges', err)
+
vm.loading = CONSTANTS.STATE_ERROR
})
}
diff --git a/app/my-dashboard/community-updates/community-updates.controller.js b/app/my-dashboard/community-updates/community-updates.controller.js
index 6b9a9aefd..18880209f 100644
--- a/app/my-dashboard/community-updates/community-updates.controller.js
+++ b/app/my-dashboard/community-updates/community-updates.controller.js
@@ -5,10 +5,10 @@ import angular from 'angular'
angular.module('tc.myDashboard').controller('CommunityUpdatesController', CommunityUpdatesController)
- CommunityUpdatesController.$inject = ['BlogService', '$log']
+ CommunityUpdatesController.$inject = ['BlogService', 'logger']
// Access and parses the blog RSS feed
- function CommunityUpdatesController(BlogService, $log) {
+ function CommunityUpdatesController(BlogService, logger) {
var vm = this
vm.loading = true
@@ -22,9 +22,9 @@ import angular from 'angular'
})
.catch(function(err) {
vm.loading = false
- $log.debug(err)
+
+ logger.error('Could not fetch blog feed', err)
})
}
}
-
})()
diff --git a/app/my-dashboard/header-dashboard/header-dashboard.controller.js b/app/my-dashboard/header-dashboard/header-dashboard.controller.js
index eff686328..168767a99 100644
--- a/app/my-dashboard/header-dashboard/header-dashboard.controller.js
+++ b/app/my-dashboard/header-dashboard/header-dashboard.controller.js
@@ -5,9 +5,9 @@ import angular from 'angular'
angular.module('tc.myDashboard').controller('HeaderDashboardController', HeaderDashboardController)
- HeaderDashboardController.$inject = ['$stateParams', 'profile', '$log']
+ HeaderDashboardController.$inject = ['$stateParams', 'profile']
- function HeaderDashboardController($stateParams, profile, $log) {
+ function HeaderDashboardController($stateParams, profile) {
var vm = this
vm.profile = profile
diff --git a/app/my-dashboard/my-challenges/my-challenges.controller.js b/app/my-dashboard/my-challenges/my-challenges.controller.js
index 8b9466353..f848083d3 100644
--- a/app/my-dashboard/my-challenges/my-challenges.controller.js
+++ b/app/my-dashboard/my-challenges/my-challenges.controller.js
@@ -6,9 +6,9 @@ import _ from 'lodash'
angular.module('tc.myDashboard').controller('MyChallengesWidgetController', MyChallengesWidgetController)
- MyChallengesWidgetController.$inject = ['ChallengeService', 'UserService', '$log', 'CONSTANTS', 'userIdentity', '$q']
+ MyChallengesWidgetController.$inject = ['ChallengeService', 'UserService', 'logger', 'CONSTANTS', 'userIdentity', '$q']
- function MyChallengesWidgetController(ChallengeService, UserService, $log, CONSTANTS, userIdentity, $q) {
+ function MyChallengesWidgetController(ChallengeService, UserService, logger, CONSTANTS, userIdentity, $q) {
var vm = this
vm.domain = CONSTANTS.domain
vm.neverParticipated = false
@@ -65,7 +65,8 @@ import _ from 'lodash'
}
})
.catch(function(err) {
- $log.error(err)
+ logger.error('Error getting challenges and marathon matches', err)
+
vm.userHasChallenges = true
vm.loading = false
})
diff --git a/app/my-dashboard/my-dashboard.controller.js b/app/my-dashboard/my-dashboard.controller.js
index df7603ded..0e0fcfc1b 100644
--- a/app/my-dashboard/my-dashboard.controller.js
+++ b/app/my-dashboard/my-dashboard.controller.js
@@ -6,9 +6,9 @@ import _ from 'lodash'
angular.module('tc.myDashboard').controller('MyDashboardController', MyDashboardController)
- MyDashboardController.$inject = ['userIdentity', 'ProfileService', '$log']
+ MyDashboardController.$inject = ['userIdentity', 'ProfileService', 'logger']
- function MyDashboardController(userIdentity, ProfileService, $log) {
+ function MyDashboardController(userIdentity, ProfileService, logger) {
var vm = this
activate()
@@ -33,7 +33,8 @@ import _ from 'lodash'
})
.catch(function(err) {
vm.showSRMs = false
- $log.error(err)
+
+ logger.error('Could not get user profile data', err)
})
}
}
diff --git a/app/my-dashboard/programs/programs.controller.js b/app/my-dashboard/programs/programs.controller.js
index 25bfdc6de..723b62ed9 100644
--- a/app/my-dashboard/programs/programs.controller.js
+++ b/app/my-dashboard/programs/programs.controller.js
@@ -9,13 +9,13 @@ import angular from 'angular'
'UserService',
'MemberCertService',
'CONSTANTS',
- '$log',
+ 'logger',
'ChallengeService',
'$q',
'$rootScope'
]
- function ProgramsController (UserService, MemberCertService, CONSTANTS, $log, ChallengeService, $q, $rootScope) {
+ function ProgramsController (UserService, MemberCertService, CONSTANTS, logger, ChallengeService, $q, $rootScope) {
var vm = this
vm.domain = CONSTANTS.domain
vm.registered = false
@@ -44,7 +44,8 @@ import angular from 'angular'
.catch(function(err) {
vm.registered = false
vm.loading = false
- $log.debug(err)
+
+ logger.error('Could not get member cert registration data', err)
})
}
@@ -78,7 +79,8 @@ import angular from 'angular'
})
.catch(function(err) {
vm.loading = false
- $log.debug(err)
+
+ logger.error('Could not get peer review (iOS and Swift) challenges', err)
})
}
}
diff --git a/app/my-dashboard/srms/srms.controller.js b/app/my-dashboard/srms/srms.controller.js
index b2d4aac5f..2a40968b4 100644
--- a/app/my-dashboard/srms/srms.controller.js
+++ b/app/my-dashboard/srms/srms.controller.js
@@ -5,9 +5,9 @@ import angular from 'angular'
angular.module('tc.myDashboard').controller('SRMWidgetController', SRMWidgetController)
- SRMWidgetController.$inject = ['CONSTANTS', 'UserService','SRMService', '$q', '$log']
+ SRMWidgetController.$inject = ['CONSTANTS', 'UserService','SRMService', '$q', 'logger']
- function SRMWidgetController(CONSTANTS, UserService, SRMService, $q, $log) {
+ function SRMWidgetController(CONSTANTS, UserService, SRMService, $q, logger) {
var vm = this
vm.srms = []
vm.state = CONSTANTS.STATE_LOADING
@@ -51,8 +51,9 @@ import angular from 'angular'
vm.srms = srms
vm.state = CONSTANTS.STATE_READY
- }).catch(function(error) {
- $log.error()
+ }).catch(function(err) {
+ logger.error('Could not get list of SRMs or user SRMs', err)
+
vm.state = CONSTANTS.STATE_ERROR
})
}
diff --git a/app/my-dashboard/subtrack-stats/subtrack-stats.controller.js b/app/my-dashboard/subtrack-stats/subtrack-stats.controller.js
index 6c3953cf0..ddd2829bb 100644
--- a/app/my-dashboard/subtrack-stats/subtrack-stats.controller.js
+++ b/app/my-dashboard/subtrack-stats/subtrack-stats.controller.js
@@ -5,9 +5,9 @@ import angular from 'angular'
angular.module('tc.myDashboard').controller('SubtrackStatsController', SubtrackStatsController)
- SubtrackStatsController.$inject = ['$filter', 'ProfileService', 'UserStatsService', 'userIdentity']
+ SubtrackStatsController.$inject = ['$filter', 'ProfileService', 'UserStatsService', 'userIdentity', 'logger']
- function SubtrackStatsController($filter, ProfileService, UserStatsService, userIdentity) {
+ function SubtrackStatsController($filter, ProfileService, UserStatsService, userIdentity, logger) {
var vm = this
vm.loading = true
@@ -36,6 +36,8 @@ import angular from 'angular'
.catch(function(err) {
vm.hasRanks = false
vm.loading = false
+
+ logger.error('Could not get user stats', err)
})
}
}
diff --git a/app/my-srms/my-srms.controller.js b/app/my-srms/my-srms.controller.js
index 40557e074..a9702784e 100644
--- a/app/my-srms/my-srms.controller.js
+++ b/app/my-srms/my-srms.controller.js
@@ -6,10 +6,9 @@ import _ from 'lodash'
angular.module('tc.myDashboard').controller('MySRMsController', MySRMsController)
- MySRMsController.$inject = ['UserService','SRMService', '$log', '$state', '$stateParams', 'CONSTANTS', '$scope']
+ MySRMsController.$inject = ['UserService','SRMService', 'logger', '$state', '$stateParams', 'CONSTANTS', '$scope']
- function MySRMsController(UserService, SRMService, $log, $state, $stateParams, CONSTANTS, $scope) {
- $log = $log.getInstance('MySRMsController')
+ function MySRMsController(UserService, SRMService, logger, $state, $stateParams, CONSTANTS, $scope) {
var vm = this
vm.srms = []
vm.statusFilter = _.get($stateParams, 'status','past')
@@ -93,8 +92,8 @@ import _ from 'lodash'
vm.loading = CONSTANTS.STATE_READY
}
- function handleSRMsFailure(resp) {
- $log.error(resp)
+ function handleSRMsFailure(err) {
+ logger.error('Could not get user SRMs', err)
vm.loading = CONSTANTS.STATE_ERROR
}
}
diff --git a/app/peer-review/edit-review/edit-review.controller.js b/app/peer-review/edit-review/edit-review.controller.js
index ed80b462d..3358d50a2 100644
--- a/app/peer-review/edit-review/edit-review.controller.js
+++ b/app/peer-review/edit-review/edit-review.controller.js
@@ -7,9 +7,9 @@ import angular from 'angular'
// answers saved but not submitted.
angular.module('tc.peer-review').controller('EditReviewController', EditReviewController)
- EditReviewController.$inject = ['$state', '$stateParams', 'ReviewService', 'ScorecardService', 'UserService', 'ChallengeService', 'Helpers', '$q', 'CONSTANTS']
+ EditReviewController.$inject = ['$state', '$stateParams', 'ReviewService', 'ScorecardService', 'UserService', 'ChallengeService', 'Helpers', '$q', 'CONSTANTS', 'logger']
- function EditReviewController($state, $stateParams, ReviewService, ScorecardService, UserService, ChallengeService, Helpers, $q, CONSTANTS) {
+ function EditReviewController($state, $stateParams, ReviewService, ScorecardService, UserService, ChallengeService, Helpers, $q, CONSTANTS, logger) {
var vm = this
vm.domain = CONSTANTS.domain
vm.challengeId = $stateParams.challengeId
@@ -34,8 +34,10 @@ import angular from 'angular'
challengeId: vm.challengeId
})
})
- .catch(function(error) {
- var message = 'An error occurred while trying to submit answers.\n' + error.status + ': ' + error.statusText
+ .catch(function(err) {
+ logger.error('Could not submit review data', err)
+
+ var message = 'An error occurred while trying to submit answers.\n' + err.status + ': ' + err.statusText
alert(message)
@@ -52,8 +54,10 @@ import angular from 'angular'
challengeId: vm.challengeId
})
})
- .catch(function(error) {
- var message = 'An error occurred while trying to update answers.\n' + error.status + ': ' + error.statusText
+ .catch(function(err) {
+ logger.error('Could not save review data for later', err)
+
+ var message = 'An error occurred while trying to update answers.\n' + err.status + ': ' + err.statusText
alert(message)
diff --git a/app/peer-review/review-status/review-status.controller.js b/app/peer-review/review-status/review-status.controller.js
index 5db5dacbf..c480ce39c 100644
--- a/app/peer-review/review-status/review-status.controller.js
+++ b/app/peer-review/review-status/review-status.controller.js
@@ -5,9 +5,9 @@ import angular from 'angular'
angular.module('tc.peer-review').controller('ReviewStatusController', ReviewStatusController)
- ReviewStatusController.$inject = ['$state', '$stateParams', 'ReviewService', 'ChallengeService', 'Helpers', 'CONSTANTS']
+ ReviewStatusController.$inject = ['$state', '$stateParams', 'ReviewService', 'ChallengeService', 'Helpers', 'CONSTANTS', 'logger']
- function ReviewStatusController($state, $stateParams, ReviewService, ChallengeService, Helpers, CONSTANTS) {
+ function ReviewStatusController($state, $stateParams, ReviewService, ChallengeService, Helpers, CONSTANTS, logger) {
var vm = this
vm.domain = CONSTANTS.domain
vm.loaded = false
@@ -28,8 +28,9 @@ import angular from 'angular'
reviewId: newReviewId
})
})
- .catch(function(error) {
- // An error occurred while trying to get the next review
+ .catch(function(err) {
+ logger.error('Could not get next review', err)
+
$state.reload()
})
}
diff --git a/app/profile/about/about.controller.js b/app/profile/about/about.controller.js
index a3ed7359b..0c20d0af0 100644
--- a/app/profile/about/about.controller.js
+++ b/app/profile/about/about.controller.js
@@ -5,11 +5,10 @@ import angular from 'angular'
angular.module('tc.profile').controller('ProfileAboutController', ProfileAboutController)
- ProfileAboutController.$inject = ['$log', '$scope', '$q', 'ExternalAccountService', 'ExternalWebLinksService', 'UserService', 'CONSTANTS']
+ ProfileAboutController.$inject = ['logger', '$scope', '$q', 'ExternalAccountService', 'ExternalWebLinksService', 'UserService', 'CONSTANTS']
- function ProfileAboutController($log, $scope, $q, ExternalAccountService, ExternalWebLinksService, UserService, CONSTANTS) {
+ function ProfileAboutController(logger, $scope, $q, ExternalAccountService, ExternalWebLinksService, UserService, CONSTANTS) {
var vm = this
- $log = $log.getInstance('ProfileAboutController')
var profileVm = $scope.$parent.profileVm
vm.categoryIndex = 0
vm.skillIndex = 0
@@ -34,7 +33,9 @@ import angular from 'angular'
vm.displaySection.externalLinks = profileVm.showEditProfileLink || !!vm.linkedExternalAccounts.length
profileVm.status.externalLinks = CONSTANTS.STATE_READY
- }).catch(function(resp) {
+ }).catch(function(err) {
+ logger.error('Could retrive web links and external accounts', err)
+
profileVm.status.externalLinks = CONSTANTS.STATE_ERROR
})
diff --git a/app/profile/profile.controller.js b/app/profile/profile.controller.js
index 54fdfac4a..1ead6b9cc 100644
--- a/app/profile/profile.controller.js
+++ b/app/profile/profile.controller.js
@@ -6,12 +6,12 @@ import moment from 'moment'
angular.module('tc.profile').controller('ProfileCtrl', ProfileCtrl)
- ProfileCtrl.$inject = ['CONSTANTS', '$log', '$q',
+ ProfileCtrl.$inject = ['CONSTANTS', 'logger', '$q',
'TcAuthService', 'UserService', 'UserStatsService', 'ProfileService', 'ChallengeService', 'ExternalAccountService',
'userHandle', 'profile', 'ngDialog', '$anchorScroll'
]
- function ProfileCtrl(CONSTANTS, $log, $q, TcAuthService, UserService, UserStatsService, ProfileService, ChallengeService, ExternalAccountService, userHandle, profile, ngDialog, $anchorScroll) {
+ function ProfileCtrl(CONSTANTS, logger, $q, TcAuthService, UserService, UserStatsService, ProfileService, ChallengeService, ExternalAccountService, userHandle, profile, ngDialog, $anchorScroll) {
var vm = this
// set profile to the object that was resolved
vm.profile = profile
@@ -28,7 +28,7 @@ import moment from 'moment'
'COPILOT': 'copilot'
}
- $log.debug()
+ logger.debug()
vm.status = {
'badges': CONSTANTS.STATE_LOADING,
'stats': CONSTANTS.STATE_LOADING,
@@ -39,65 +39,72 @@ import moment from 'moment'
activate()
// adding stats promise on scope so child states can use this.
- vm.statsPromise = ProfileService.getUserStats(vm.userHandle).then(function(stats) {
- if (stats) {
- vm.stats = stats
- vm.profile.tracks = vm.profile.tracks || []
- vm.tracks = ProfileService.getTracks(stats) || vm.profile.tracks
- if (stats.COPILOT && stats.COPILOT.contests && vm.profile.tracks.indexOf('COPILOT') == -1) {
- vm.profile.tracks.push('COPILOT')
- }
- // flag to indicate if the member has acitivity on topcoder to be shown
- // it is set to true, if we get at least one track with showTrack == true
- vm.showTCActivity = false
- vm.numWins = vm.stats.wins
- vm.categories = ProfileService.getRanks(vm.stats)
- for(var trackName in vm.categories) {
- // trackStats is an array of subtrack rankings along with track stats properties (e.g showTrack)
- var trackStats = vm.categories[trackName]
- // flag to indicate if the member has activity for this track
- // it is set to true, if we get at least one subtrack which can be shown for topcoder activity
- trackStats.showTrack = false
- // if track has subtracks with stats
- if (trackStats && trackStats.length > 0) {
- // iterate over each subtrack stat and determine if we need to show as stat
- trackStats.forEach(function(subTrackRank) {
- // process subtack stat
- UserStatsService.processStatRank(subTrackRank)
- // if any of the subtrack has stat to show, enable the showTrack flag for the track
- if (subTrackRank.showStats) {
- trackStats.showTrack = true
- }
- })
+ vm.statsPromise = ProfileService.getUserStats(vm.userHandle)
+ .then(function(stats) {
+ if (stats) {
+ vm.stats = stats
+ vm.profile.tracks = vm.profile.tracks || []
+ vm.tracks = ProfileService.getTracks(stats) || vm.profile.tracks
+ if (stats.COPILOT && stats.COPILOT.contests && vm.profile.tracks.indexOf('COPILOT') == -1) {
+ vm.profile.tracks.push('COPILOT')
}
- // if any of the track has stat to show, enable the showTCActivity flag to true
- if (trackStats.showTrack) {
- vm.showTCActivity = true
+ // flag to indicate if the member has acitivity on topcoder to be shown
+ // it is set to true, if we get at least one track with showTrack == true
+ vm.showTCActivity = false
+ vm.numWins = vm.stats.wins
+ vm.categories = ProfileService.getRanks(vm.stats)
+ for(var trackName in vm.categories) {
+ // trackStats is an array of subtrack rankings along with track stats properties (e.g showTrack)
+ var trackStats = vm.categories[trackName]
+ // flag to indicate if the member has activity for this track
+ // it is set to true, if we get at least one subtrack which can be shown for topcoder activity
+ trackStats.showTrack = false
+ // if track has subtracks with stats
+ if (trackStats && trackStats.length > 0) {
+ // iterate over each subtrack stat and determine if we need to show as stat
+ trackStats.forEach(function(subTrackRank) {
+ // process subtack stat
+ UserStatsService.processStatRank(subTrackRank)
+ // if any of the subtrack has stat to show, enable the showTrack flag for the track
+ if (subTrackRank.showStats) {
+ trackStats.showTrack = true
+ }
+ })
+ }
+ // if any of the track has stat to show, enable the showTCActivity flag to true
+ if (trackStats.showTrack) {
+ vm.showTCActivity = true
+ }
}
+ } else {
+ vm.stats = false
+ // vm.profile.tracks = []
+ vm.showTCActivity = 0
+ vm.numWins = 0
+ vm.categories = {}
}
- } else {
- vm.stats = false
- // vm.profile.tracks = []
- vm.showTCActivity = 0
- vm.numWins = 0
- vm.categories = {}
- }
- vm.status.stats = CONSTANTS.STATE_READY
- return vm.stats
- }).catch(function(err) {
- $log.error(err)
- vm.status.stats = CONSTANTS.STATE_ERROR
- })
-
- vm.skillsPromise = ProfileService.getUserSkills(vm.userHandle).then(function(skills) {
- vm.skills = skills.skills
- vm.status.skills = CONSTANTS.STATE_READY
- }).catch(function(err) {
- vm.status.skills = CONSTANTS.STATE_ERROR
- })
+ vm.status.stats = CONSTANTS.STATE_READY
+ return vm.stats
+ })
+ .catch(function(err) {
+ logger.error('Could not get user stats', err)
+
+ vm.status.stats = CONSTANTS.STATE_ERROR
+ })
+
+ vm.skillsPromise = ProfileService.getUserSkills(vm.userHandle)
+ .then(function(skills) {
+ vm.skills = skills.skills
+ vm.status.skills = CONSTANTS.STATE_READY
+ })
+ .catch(function(err) {
+ logger.error('Could not get user skills', err)
+
+ vm.status.skills = CONSTANTS.STATE_ERROR
+ })
function activate() {
- $log.debug('Calling ProfileController activate()')
+ logger.debug('Calling ProfileController activate()')
// show edit profile link if user is authenticated and is viewing their own profile
vm.showEditProfileLink = TcAuthService.isAuthenticated() && UserService.getUserIdentity().handle.toLowerCase() === vm.userHandle.toLowerCase()
vm.isUser = vm.showEditProfileLink
diff --git a/app/profile/subtrack/subtrack.controller.js b/app/profile/subtrack/subtrack.controller.js
index 62418c5bd..8e4b5b131 100644
--- a/app/profile/subtrack/subtrack.controller.js
+++ b/app/profile/subtrack/subtrack.controller.js
@@ -6,9 +6,9 @@ import _ from 'lodash'
angular.module('tc.profile').controller('ProfileSubtrackController', ProfileSubtrackController)
- ProfileSubtrackController.$inject = ['$scope', 'ProfileService', '$q', '$stateParams', 'ChallengeService', 'SRMService', 'CONSTANTS', '$state', '$window', 'ngDialog', 'UserStatsService']
+ ProfileSubtrackController.$inject = ['$scope', 'ProfileService', '$q', '$stateParams', 'ChallengeService', 'SRMService', 'CONSTANTS', '$state', '$window', 'ngDialog', 'UserStatsService', 'logger']
- function ProfileSubtrackController($scope, ProfileService, $q, $stateParams, ChallengeService, SRMService, CONSTANTS, $state, $window, ngDialog, UserStatsService) {
+ function ProfileSubtrackController($scope, ProfileService, $q, $stateParams, ChallengeService, SRMService, CONSTANTS, $state, $window, ngDialog, UserStatsService, logger) {
var vm = this
vm.ASSET_PREFIX = CONSTANTS.ASSET_PREFIX
vm.graphState = { show: 'history' }
@@ -195,7 +195,9 @@ import _ from 'lodash'
})
vm.status.challenges = CONSTANTS.STATE_READY
})
- .catch(function(resp) {
+ .catch(function(err) {
+ logger.error('Could not get user SRMs', err)
+
vm.status.challenges = CONSTANTS.STATE_ERROR
})
} else {
@@ -208,7 +210,9 @@ import _ from 'lodash'
vm.challenges = vm.challenges.concat(data)
vm.status.challenges = CONSTANTS.STATE_READY
})
- .catch(function(resp) {
+ .catch(function(err) {
+ logger.error('Could not get user marathon matches', err)
+
vm.status.challenges = CONSTANTS.STATE_ERROR
})
}
@@ -223,7 +227,10 @@ import _ from 'lodash'
vm.pageParams.currentCount = vm.challenges.length
vm.status.challenges = CONSTANTS.STATE_READY
return data
- }).catch(function(err) {
+ })
+ .catch(function(err) {
+ logger.error('Could not get user challenges', err)
+
vm.status.challenges = CONSTANTS.STATE_ERROR
})
}
diff --git a/app/services/api.service.js b/app/services/api.service.js
index 0cd195e8e..8881f4d4d 100644
--- a/app/services/api.service.js
+++ b/app/services/api.service.js
@@ -6,9 +6,9 @@ import _ from 'lodash'
angular.module('tc.services').factory('ApiService', ApiService)
- ApiService.$inject = ['$http', '$log', 'AuthTokenService', 'Restangular', 'CONSTANTS']
+ ApiService.$inject = ['$http', 'logger', 'AuthTokenService', 'Restangular', 'CONSTANTS']
- function ApiService($http, $log, AuthTokenService, Restangular, CONSTANTS) {
+ function ApiService($http, logger, AuthTokenService, Restangular, CONSTANTS) {
var service = {
requestHandler: requestHandler,
restangularV2: _getRestangularV2(),
@@ -60,7 +60,7 @@ import _ from 'lodash'
case 500: // SERVER ERROR
case 503: // HTTP_503_SERVICE_UNAVAILABLE
default:
- $log.error('Restangular Error Interceptor' + JSON.stringify(response))
+ logger.error('Restangular Error Interceptor', response)
return true // error not handled
}
})
@@ -142,7 +142,7 @@ import _ from 'lodash'
case 500: // SERVER ERROR
case 503: // HTTP_503_SERVICE_UNAVAILABLE
default:
- $log.error('Restangular Error Interceptor ', response)
+ logger.error('Restangular Error Interceptor ', response)
return true // error not handled
}
})
diff --git a/app/services/authtoken.service.js b/app/services/authtoken.service.js
index c087e3832..8b016e4b3 100644
--- a/app/services/authtoken.service.js
+++ b/app/services/authtoken.service.js
@@ -5,9 +5,9 @@ import angular from 'angular'
angular.module('tc.services').factory('AuthTokenService', AuthTokenService)
- AuthTokenService.$inject = ['CONSTANTS', '$cookies', '$location', 'store', '$http', '$log', 'jwtHelper', '$q']
+ AuthTokenService.$inject = ['CONSTANTS', '$cookies', '$location', 'store', '$http', 'logger', 'jwtHelper', '$q']
- function AuthTokenService(CONSTANTS, $cookies, $location, store, $http, $log, jwtHelper, $q) {
+ function AuthTokenService(CONSTANTS, $cookies, $location, store, $http, logger, jwtHelper, $q) {
var v2TokenKey = 'tcjwt'
var v2TCSSOTokenKey = 'tcsso'
var v3TokenKey = 'appiriojwt'
@@ -66,12 +66,17 @@ import angular from 'angular'
'Authorization': 'Bearer ' + token
},
data: {}
- }).then(function(res) {
+ })
+ .then(function(res) {
var appiriojwt = res.data.result.content.token
+
setV3Token(appiriojwt)
+
return appiriojwt
- }).catch(function(resp) {
- $log.error(resp)
+ })
+ .catch(function(err) {
+ logger.error('Could not refresh v3 token', err)
+
removeTokens()
})
}
@@ -98,8 +103,10 @@ import angular from 'angular'
resolve(appiriojwt)
},
function(err) {
- $log.error(err)
+ logger.error('Could not exchange token', err)
+
removeTokens()
+
reject(err)
}
)
@@ -119,10 +126,10 @@ import angular from 'angular'
}
return $http(req).then(
function(resp) {
- $log.debug(resp)
+ logger.debug(resp)
},
function(err) {
- $log.error(err)
+ logger.error('Could not get token from Auth0 code', err)
}
)
}
diff --git a/app/services/challenge.service.js b/app/services/challenge.service.js
index b10086a62..c71b4978e 100644
--- a/app/services/challenge.service.js
+++ b/app/services/challenge.service.js
@@ -7,9 +7,9 @@ import moment from 'moment'
angular.module('tc.services').factory('ChallengeService', ChallengeService)
- ChallengeService.$inject = ['CONSTANTS', 'ApiService', '$q', '$log']
+ ChallengeService.$inject = ['CONSTANTS', 'ApiService', '$q', 'logger']
- function ChallengeService(CONSTANTS, ApiService, $q, $log) {
+ function ChallengeService(CONSTANTS, ApiService, $q, logger) {
var api = ApiService.restangularV3
var apiV2 = ApiService.restangularV2
var service = {
@@ -46,7 +46,7 @@ import moment from 'moment'
return _.find(phases, function(p) { return p.phaseType.toUpperCase() === phaseType})
},
function(err) {
- $log.error(err)
+ logger.error('Could not get challenge phases', err)
}
)
}
diff --git a/app/services/externalAccounts.service.js b/app/services/externalAccounts.service.js
index 415a2d1a2..9df83d0c5 100644
--- a/app/services/externalAccounts.service.js
+++ b/app/services/externalAccounts.service.js
@@ -6,11 +6,10 @@ import _ from 'lodash'
angular.module('tc.services').factory('ExternalAccountService', ExternalAccountService)
- ExternalAccountService.$inject = ['$q', '$log', 'CONSTANTS', 'auth', 'ApiService', 'UserService', 'Helpers']
+ ExternalAccountService.$inject = ['$q', 'logger', 'CONSTANTS', 'auth', 'ApiService', 'UserService', 'Helpers']
- function ExternalAccountService($q, $log, CONSTANTS, auth, ApiService, UserService, Helpers) {
+ function ExternalAccountService($q, logger, CONSTANTS, auth, ApiService, UserService, Helpers) {
var auth0 = auth
- $log = $log.getInstance('ExternalAccountService')
var memberApi = ApiService.getApiServiceProvider('MEMBER')
var userApi = ApiService.getApiServiceProvider('USER')
@@ -56,16 +55,17 @@ import _ from 'lodash'
return $q(function($resolve, $reject) {
UserService.removeSocialProfile(user.userId, account)
.then(function(resp) {
- $log.debug('Succesfully unlinked account: ' + JSON.stringify(resp))
+ logger.debug('Succesfully unlinked account: ' + JSON.stringify(resp))
$resolve({
status: 'SUCCESS'
})
})
- .catch(function(resp) {
- $log.error('Error unlinking account: ' + resp.data.result.content)
+ .catch(function(err) {
+ logger.error('Error unlinking account', err)
+
var status = 'FATAL_ERROR'
- var msg = resp.data.result.content
- if (resp.status === 404) {
+ var msg = err.data.result.content
+ if (err.status === 404) {
status = 'SOCIAL_PROFILE_NOT_EXIST'
}
$reject({
@@ -99,7 +99,7 @@ import _ from 'lodash'
_cards.push({provider: provider, data: {handle: link.name, status: 'PENDING'}})
}
})
- $log.debug('Processed Accounts Cards: ' + JSON.stringify(_cards))
+ logger.debug('Processed Accounts Cards: ' + JSON.stringify(_cards))
return _cards
}
@@ -110,14 +110,17 @@ import _ from 'lodash'
if (includePending)
_promises.push(getLinkedAccounts(userId))
- $q.all(_promises).then(function(data) {
+ $q.all(_promises)
+ .then(function(data) {
var links = includePending ? data[1]: []
var _cards = _convertAccountsIntoCards(links, data[0].plain(), includePending)
// TODO add weblinks
resolve(_cards)
- }).catch(function(resp) {
- $log.error(resp)
- reject(resp)
+ })
+ .catch(function(err) {
+ logger.error('Could not get all external links accounts', err)
+
+ reject(err)
})
})
}
@@ -135,7 +138,7 @@ import _ from 'lodash'
state: callbackUrl
},
function(profile, idToken, accessToken, state, refreshToken) {
- $log.debug('onSocialLoginSuccess')
+ logger.debug('onSocialLoginSuccess')
var socialData = Helpers.getSocialUserData(profile, accessToken)
var user = UserService.getUserIdentity()
var postData = {
@@ -152,10 +155,10 @@ import _ from 'lodash'
if (socialData.accessTokenSecret) {
postData.context.accessTokenSecret = socialData.accessTokenSecret
}
- $log.debug('link API postdata: ' + JSON.stringify(postData))
+ logger.debug('link API postdata: ' + JSON.stringify(postData))
userApi.one('users', user.userId).customPOST(postData, 'profiles', {}, {})
.then(function(resp) {
- $log.debug('Succesfully linked account: ' + JSON.stringify(resp))
+ logger.debug('Succesfully linked account: ' + JSON.stringify(resp))
// construct 'card' object and resolve it
var _data = {
status: 'SUCCESS',
@@ -167,25 +170,29 @@ import _ from 'lodash'
_data.linkedAccount.data.status = 'PENDING'
resolve(_data)
})
- .catch(function(resp) {
+ .catch(function(err) {
+ logger.error('Error linking account', err)
+
var errorStatus = 'FATAL_ERROR'
- $log.error('Error linking account: ' + resp.data.result.content)
- if (resp.data.result && resp.data.result.status === 400) {
+
+ if (err.data.result && err.data.result.status === 400) {
errorStatus = 'SOCIAL_PROFILE_ALREADY_EXISTS'
}
reject({
status: errorStatus,
- msg: resp.data.result.content
+ msg: err.data.result.content
})
})
},
- function(error) {
- $log.warn('onSocialLoginFailure ' + JSON.stringify(error))
- reject(error)
+ function(err) {
+ logger.error('Error signing in - onSocialLoginFailure', err)
+
+ reject(err)
}
)
} else {
- $log.error('Unsupported social login backend: ' + provider)
+ logger.error('Unsupported social login backend', provider)
+
$q.reject({
status: 'failed',
'error': 'Unsupported social login backend \'' + provider + '\''
diff --git a/app/services/externalLinks.service.js b/app/services/externalLinks.service.js
index 4191ca9ce..5d2b67d0f 100644
--- a/app/services/externalLinks.service.js
+++ b/app/services/externalLinks.service.js
@@ -6,11 +6,9 @@ import _ from 'lodash'
angular.module('tc.services').factory('ExternalWebLinksService', ExternalWebLinksService)
- ExternalWebLinksService.$inject = ['$log', 'CONSTANTS', 'ApiService', '$q']
-
- function ExternalWebLinksService($log, CONSTANTS, ApiService, $q) {
- $log = $log.getInstance('ExternalWebLinksService')
+ ExternalWebLinksService.$inject = ['logger', 'CONSTANTS', 'ApiService', '$q']
+ function ExternalWebLinksService(logger, CONSTANTS, ApiService, $q) {
var memberApi = ApiService.getApiServiceProvider('MEMBER')
var service = {
@@ -55,15 +53,17 @@ import _ from 'lodash'
_newLink.data.status = 'PENDING'
resolve(_newLink)
})
- .catch(function(resp) {
+ .catch(function(err) {
+ logger.error('Error adding weblink', err)
+
var errorStatus = 'FATAL_ERROR'
- $log.error('Error adding weblink: ' + resp.data.result.content)
- if (resp.data.result && resp.data.result.status === 400) {
+
+ if (err.data.result && err.data.result.status === 400) {
errorStatus = 'WEBLINK_ALREADY_EXISTS'
}
reject({
status: errorStatus,
- msg: resp.data.result.content
+ msg: err.data.result.content
})
})
})
@@ -75,15 +75,17 @@ import _ from 'lodash'
.then(function(resp) {
$resolve(resp)
})
- .catch(function(resp) {
+ .catch(function(err) {
+ logger.error('Error removing weblink', err)
+
var errorStatus = 'FATAL_ERROR'
- $log.error('Error removing weblink: ' + resp.data.result.content)
- if (resp.data.result && resp.data.result.status === 400) {
+
+ if (err.data.result && err.data.result.status === 400) {
errorStatus = 'WEBLINK_NOT_EXIST'
}
$reject({
status: errorStatus,
- msg: resp.data.result.content
+ msg: err.data.result.content
})
})
})
diff --git a/app/services/image.service.js b/app/services/image.service.js
index 6f84b2de0..299aca96f 100644
--- a/app/services/image.service.js
+++ b/app/services/image.service.js
@@ -5,9 +5,9 @@ import angular from 'angular'
angular.module('tc.services').factory('ImageService', ImageService)
- ImageService.$inject = ['CONSTANTS', 'ApiService', '$q', '$log', '$rootScope', 'toaster']
+ ImageService.$inject = ['CONSTANTS', 'ApiService', '$q', 'logger', '$rootScope', 'toaster']
- function ImageService(CONSTANTS, ApiService, $q, $log, $rootScope, toaster) {
+ function ImageService(CONSTANTS, ApiService, $q, logger, $rootScope, toaster) {
var api = ApiService.restangularV3
var service = {
@@ -21,13 +21,13 @@ import angular from 'angular'
return api.one('members', S3Response.userHandle).customPUT(S3Response.body, 'photo')
.then(function(newPhotoURL) {
$rootScope.$broadcast(CONSTANTS.EVENT_PROFILE_UPDATED)
- $log.info('Successfully made file record')
+ logger.info('Successfully made file record')
toaster.pop('success', 'Success!', 'Your profile image has been updated.')
return newPhotoURL
})
.catch(function(err) {
- $log.info('Error in creating file record')
- $log.error(err)
+ logger.error('Error in creating file record for image', err)
+
toaster.pop('error', 'Whoops!', 'There was an error uploading your profile image. Please try again later.')
})
}
@@ -45,8 +45,10 @@ import angular from 'angular'
})
})
.catch(function(err) {
- $log.info('Error getting presigned url')
+ logger.error('Error getting presigned url for image', err)
+
toaster.pop('error', 'Whoops!', 'There was an error uploading your profile image. Please try again later.')
+
deferred.reject(err)
})
@@ -60,11 +62,11 @@ import angular from 'angular'
xhr.open('PUT', response.preSignedURL, true)
xhr.setRequestHeader('Content-Type', response.file.type)
- // xhr version of the success callback
xhr.onreadystatechange = function() {
var status = xhr.status
if (((status >= 200 && status < 300) || status === 304) && xhr.readyState === 4) {
- $log.info('Successfully uploaded file')
+ logger.info('Successfully uploaded file')
+
deferred.resolve({
userHandle: response.userHandle,
body: {
@@ -73,15 +75,19 @@ import angular from 'angular'
}
})
} else if (status >= 400) {
- $log.error('Error uploading to S3 with status: ' + status)
+ logger.error('Could not upload image to S3', status)
+
toaster.pop('error', 'Whoops!', 'There was an error uploading your profile image. Please try again later.')
+
deferred.reject({})
}
}
xhr.onerror = function(err) {
- $log.info('Error uploading to s3')
+ logger.error('Could not upload image to S3', err)
+
toaster.pop('error', 'Whoops!', 'There was an error uploading your profile image. Please try again later.')
+
deferred.reject(err)
}
diff --git a/app/services/jwtInterceptor.service.js b/app/services/jwtInterceptor.service.js
index 9b999a73f..5c5667911 100644
--- a/app/services/jwtInterceptor.service.js
+++ b/app/services/jwtInterceptor.service.js
@@ -5,10 +5,9 @@ import angular from 'angular'
angular.module('tc.services').factory('JwtInterceptorService', JwtInterceptorService)
- JwtInterceptorService.$inject = ['$log', 'jwtHelper', 'AuthTokenService', 'TcAuthService', '$state']
+ JwtInterceptorService.$inject = ['logger', 'jwtHelper', 'AuthTokenService', 'TcAuthService', '$state']
- function JwtInterceptorService($log, jwtHelper, AuthTokenService, TcAuthService, $state) {
- $log = $log.getInstance('JwtInterceptorService')
+ function JwtInterceptorService(logger, jwtHelper, AuthTokenService, TcAuthService, $state) {
var service = {
getToken: getToken
}
@@ -43,18 +42,22 @@ import angular from 'angular'
}
// var token = config.url.indexOf('v2/') > -1 ? AuthTokenService.getV2Token() : AuthTokenService.getV3Token()
if (jwtHelper.isTokenExpired(token)) {
- $log.debug(String.supplant('Token has expired, attempting to refreshToken() for "{url}"', config))
- return AuthTokenService.refreshV3Token(token).then(function(idToken) {
- $log.debug('Successfully refreshed V3 token.')
+ logger.debug(String.supplant('Token has expired, attempting to refreshToken() for "{url}"', config))
+
+ return AuthTokenService.refreshV3Token(token)
+ .then(function(idToken) {
+ logger.debug('Successfully refreshed V3 token.')
// v2 token doesn't expire
AuthTokenService.setV3Token(idToken)
return idToken
})
- .catch(function(resp) {
+ .catch(function(err) {
// Server will not or cannot refresh token
- $log.debug('Unable to refresh V3 token, redirecting to login')
- $log.debug(resp)
+ logger.debug('Unable to refresh V3 token, redirecting to login')
+ logger.debug(err)
+
$state.go('login')
+
return null
})
} else {
@@ -62,7 +65,7 @@ import angular from 'angular'
}
}
// else
- $log.debug(String.supplant('Skipping authToken for "{url}, UnAuthenticated user"', config))
+ logger.debug(String.supplant('Skipping authToken for "{url}, UnAuthenticated user"', config))
return null
}
}
@@ -76,18 +79,21 @@ import angular from 'angular'
}
// Note only v3tokens expire
if (jwtHelper.isTokenExpired(idToken)) {
- $log.debug(String.supplant('Token has expired, attempting to refreshToken() for "{url}"', config))
- return AuthTokenService.refreshV3Token(idToken).then(function(idToken) {
+ logger.debug(String.supplant('Token has expired, attempting to refreshToken() for "{url}"', config))
+ return AuthTokenService.refreshV3Token(idToken)
+ .then(function(idToken) {
// v2 token doesn't expire
- $log.debug('Successfully refreshed V3 token.')
+ logger.debug('Successfully refreshed V3 token.')
AuthTokenService.setV3Token(idToken)
return idToken
})
- .catch(function(resp) {
+ .catch(function(err) {
// Server will not or cannot refresh token
- $log.debug('Unable to refresh V3 token, redirecting to login')
- $log.debug(resp)
+ logger.debug('Unable to refresh V3 token, redirecting to login')
+ logger.debug(err)
+
$state.go('login')
+
return null
})
} else {
diff --git a/app/services/services.module.js b/app/services/services.module.js
index 4e3fd7710..59c51dc2a 100644
--- a/app/services/services.module.js
+++ b/app/services/services.module.js
@@ -16,12 +16,7 @@ import Auth0 from 'auth0-js'
]
angular.module('tc.services', dependencies)
- .config(['$provide', 'authProvider', 'CONSTANTS', function($provide, authProvider, CONSTANTS) {
- $provide.decorator('$log', ['$delegate', 'LogEnhancer', function($delegate, LogEnhancer) {
- LogEnhancer.enhanceLogger($delegate)
- return $delegate
- }])
-
+ .config(['authProvider', 'CONSTANTS', function(authProvider, CONSTANTS) {
authProvider.init({
domain: CONSTANTS.auth0Domain,
clientID: CONSTANTS.clientId,
@@ -32,5 +27,4 @@ import Auth0 from 'auth0-js'
.factory('UserPrefStore', ['store', function(store) {
return store.getNamespacedStore('userSettings')
}])
-
})()
diff --git a/app/services/submissions.service.js b/app/services/submissions.service.js
index 776e29ea3..d30c4256e 100644
--- a/app/services/submissions.service.js
+++ b/app/services/submissions.service.js
@@ -5,9 +5,9 @@ import angular from 'angular'
angular.module('tc.services').factory('SubmissionsService', SubmissionsService)
- SubmissionsService.$inject = ['CONSTANTS', 'ApiService', '$q', '$log', 'toaster']
+ SubmissionsService.$inject = ['CONSTANTS', 'ApiService', '$q', 'logger', 'toaster']
- function SubmissionsService(CONSTANTS, ApiService, $q, $log, toaster) {
+ function SubmissionsService(CONSTANTS, ApiService, $q, logger, toaster) {
var api = ApiService.getApiServiceProvider('SUBMISSIONS')
var service = {
@@ -20,20 +20,17 @@ import angular from 'angular'
return service
function getPresignedURL(body, files, progressCallback) {
- $log.info('Body of request for presigned url: ')
- $log.info(body)
-
return api.all('submissions').customPOST(body)
.then(function(response) {
- $log.info('POST/Presigned URL Response: ')
- $log.info(response.plain())
progressCallback.call(progressCallback, 'PREPARE', 100)
+
uploadSubmissionFileToS3(response, response.data.files, files, progressCallback)
})
.catch(function(err) {
- $log.info(err)
- $log.info('Error getting presigned url')
+ logger.error('Could not get presigned url', err)
+
progressCallback.call(progressCallback, 'ERROR', err)
+
toaster.pop('error', 'Whoops!', 'There was an error uploading your submissions. Please try again later.')
})
}
@@ -48,41 +45,40 @@ import angular from 'angular'
xhr.setRequestHeader('Content-Type', fileWithPresignedURL.mediaType)
xhr.upload.addEventListener('progress', function(oEvent) {
+ // Compute progress information only if the total size is known
if (oEvent.lengthComputable) {
var percentComplete = oEvent.loaded / oEvent.total
- // console.log("Completed " + percentComplete)
+
if (progressCallback && typeof progressCallback === 'function') {
progressCallback.call(progressCallback, 'UPLOAD', {
file: fileWithPresignedURL.preSignedUploadUrl,
progress: percentComplete*100
})
}
- // ...
- } else {
- // Unable to compute progress information since the total size is unknown
}
})
- // xhr version of the success callback
xhr.onreadystatechange = function() {
var status = xhr.status
if (((status >= 200 && status < 300) || status === 304) && xhr.readyState === 4) {
- $log.info('Successfully uploaded file')
- $log.info('xhr response: ', xhr.responseText)
+ logger.info('Successfully uploaded file')
- // updateSubmissionStatus and then resolve?
deferred.resolve()
} else if (status >= 400) {
- $log.error('Error uploading to S3 with status: ' + status)
+ logger.error('Error uploading to S3 with status', status)
+
toaster.pop('error', 'Whoops!', 'There was an error uploading your files. Please try again later.')
+
deferred.reject({})
}
}
xhr.onerror = function(err) {
- $log.info('Error uploading to s3')
+ logger.error('Error uploading to s3', err)
+
toaster.pop('error', 'Whoops!', 'There was an error uploading your files. Please try again later.')
+
deferred.reject(err)
}
@@ -93,19 +89,16 @@ import angular from 'angular'
return $q.all(promises)
.then(function(response) {
- $log.info('response from S3: ')
- $log.info(response)
- $log.info('response to use .save restnagular with: ')
- $log.info(presignedURLResponse)
progressCallback.call(progressCallback, 'UPLOAD', 100)
+
// Update and start processing
updateSubmissionStatus(presignedURLResponse.plain(), progressCallback)
})
.catch(function(err) {
progressCallback.call(progressCallback, 'ERROR', err)
- $log.info('error uploading to S3: ')
- $log.info(err)
+
+ logger.error('Could not upload to S3', err)
})
}
@@ -117,12 +110,13 @@ import angular from 'angular'
return api.one('submissions', body.id).customPUT(body)
.then(function(response) {
- $log.info('Successfully updated file statuses')
+ logger.info('Successfully updated file statuses')
+
recordCompletedSubmission(response.plain(), progressCallback)
})
.catch(function(err) {
- $log.info('Error updating file statuses')
- $log.error(err)
+ logger.error('Could not update file statuses', err)
+
progressCallback.call(progressCallback, 'ERROR', err)
})
}
@@ -131,14 +125,13 @@ import angular from 'angular'
// Once all uploaded, make record and begin processing
return api.one('submissions', body.id).customPOST(body, 'process')
.then(function(response) {
- $log.info('Successfully made file record. Beginning processing')
- $log.info('response from process call: ')
- $log.info(response)
+ logger.info('Successfully made file record. Beginning processing')
+
progressCallback.call(progressCallback, 'FINISH', 100)
})
.catch(function(err) {
- $log.info('Error in starting processing')
- $log.error(err)
+ logger.error('Could not start processing', err)
+
progressCallback.call(progressCallback, 'ERROR', err)
})
}
diff --git a/app/services/tcAuth.service.js b/app/services/tcAuth.service.js
index b7edff902..646cba015 100644
--- a/app/services/tcAuth.service.js
+++ b/app/services/tcAuth.service.js
@@ -5,10 +5,9 @@ import angular from 'angular'
angular.module('tc.services').factory('TcAuthService', TcAuthService)
- TcAuthService.$inject = ['CONSTANTS', 'auth', 'AuthTokenService', '$rootScope', '$q', '$log', '$timeout', 'UserService', 'Helpers', 'ApiService', 'store', '$http']
+ TcAuthService.$inject = ['CONSTANTS', 'auth', 'AuthTokenService', '$rootScope', '$q', 'logger', '$timeout', 'UserService', 'Helpers', 'ApiService', 'store', '$http']
- function TcAuthService(CONSTANTS, auth, AuthTokenService, $rootScope, $q, $log, $timeout, UserService, Helpers, ApiService, store, $http) {
- $log = $log.getInstance('TcAuthServicetcAuth')
+ function TcAuthService(CONSTANTS, auth, AuthTokenService, $rootScope, $q, logger, $timeout, UserService, Helpers, ApiService, store, $http) {
var auth0 = auth
var service = {
login: login,
@@ -74,7 +73,7 @@ import angular from 'angular'
}, 200)
},
function(resp) {
- $log.debug(JSON.stringify(resp))
+ logger.debug(JSON.stringify(resp))
// 401 status here implies user is not registered
if (resp.status === 401) {
reject({
@@ -94,7 +93,7 @@ import angular from 'angular'
)
},
function(error) {
- $log.warn(JSON.stringify(error))
+ logger.warning(JSON.stringify(error))
reject(error)
}
)
@@ -117,18 +116,18 @@ import angular from 'angular'
UserService.validateSocialProfile(socialData.socialUserId, socialData.socialProvider)
.then(function(resp) {
- $log.debug(JSON.stringify(resp))
+ logger.debug(JSON.stringify(resp))
if (resp.valid) {
// success
var result = {
status: 'SUCCESS',
data: socialData
}
- $log.debug('socialRegister Result: ' + JSON.stringify(result))
+ logger.debug('socialRegister Result: ' + JSON.stringify(result))
resolve(result)
} else {
if (resp.reasonCode === 'ALREADY_IN_USE') {
- $log.error('Social handle exist')
+ logger.error('Social handle exist')
reject({
status: 'SOCIAL_PROFILE_ALREADY_EXISTS'
})
@@ -136,17 +135,18 @@ import angular from 'angular'
}
})
- .catch(function(resp) {
- $log.debug(JSON.stringify(resp))
+ .catch(function(err) {
+ logger.debug(JSON.stringify(err))
})
},
function(error) {
- $log.warn('onSocialLoginFailure ' + JSON.stringify(error))
+ logger.warning('onSocialLoginFailure ' + JSON.stringify(error))
reject(error)
}
)
} else {
- $log.error('Unsupported social login provider: ' + provider)
+ logger.error('Unsupported social login provider', provider)
+
reject({
status: 'FAILED',
'error': 'Unsupported social login provider \'' + provider + '\''
diff --git a/app/settings/account-info/account-info.controller.js b/app/settings/account-info/account-info.controller.js
index f0133d4db..b1eddb707 100644
--- a/app/settings/account-info/account-info.controller.js
+++ b/app/settings/account-info/account-info.controller.js
@@ -6,9 +6,9 @@ import _ from 'lodash'
angular.module('tc.settings').controller('AccountInfoController', AccountInfoController)
- AccountInfoController.$inject = ['userData', 'UserService', 'ProfileService', '$log', 'ISO3166', 'toaster', '$scope', '$timeout', '$state']
+ AccountInfoController.$inject = ['userData', 'UserService', 'ProfileService', 'logger', 'ISO3166', 'toaster', '$scope', '$timeout', '$state']
- function AccountInfoController(userData, UserService, ProfileService, $log, ISO3166, toaster, $scope, $timeout, $state) {
+ function AccountInfoController(userData, UserService, ProfileService, logger, ISO3166, toaster, $scope, $timeout, $state) {
var vm = this
vm.saveAccountInfo = saveAccountInfo
vm.updateCountry = updateCountry
@@ -35,8 +35,11 @@ import _ from 'lodash'
vm.loading = false
})
.catch(function(err) {
- $log.error('Error fetching user profile. Redirecting to edit profile.')
+ logger.info('Error fetching user profile. Redirecting to edit profile.')
+ logger.error('Could not fetch user profile data', err)
+
$state.go('settings.profile')
+
vm.loading = false
})
@@ -88,8 +91,11 @@ import _ from 'lodash'
for (var k in vm.userData) userData[k] = vm.userData[k]
vm.accountInfoForm.$setPristine()
})
- .catch(function() {
+ .catch(function(err) {
+ logger.error('Could not update user profile', err)
+
vm.formProcessing.accountInfoForm = false
+
toaster.pop('error', 'Whoops!', 'Something went wrong. Please try again later.')
})
}
@@ -100,6 +106,7 @@ import _ from 'lodash'
function submitNewPassword() {
vm.formProcessing.newPasswordForm = true
+
UserService.updatePassword(vm.password, vm.currentPassword)
.then(function(res) {
vm.formProcessing.newPasswordForm = false
@@ -109,12 +116,13 @@ import _ from 'lodash'
vm.newPasswordForm.$setPristine()
vm.currentPasswordFocus = false
- $log.info('Your password has been updated.')
+ logger.info('Your password has been updated.')
})
.catch(function(err) {
+ logger.error('Could not update password', err)
+
vm.formProcessing.newPasswordForm = false
vm.newPasswordForm.currentPassword.$setValidity('incorrect', false)
- $log.error(err)
})
}
}
diff --git a/app/settings/edit-profile/edit-profile.controller.js b/app/settings/edit-profile/edit-profile.controller.js
index 50498c657..5465b48a8 100644
--- a/app/settings/edit-profile/edit-profile.controller.js
+++ b/app/settings/edit-profile/edit-profile.controller.js
@@ -6,10 +6,9 @@ import _ from 'lodash'
angular.module('tc.settings').controller('EditProfileController', EditProfileController)
- EditProfileController.$inject = ['$rootScope', 'userData', 'userHandle', 'ProfileService', 'ExternalAccountService', 'ExternalWebLinksService', '$log', 'ISO3166', 'ImageService', 'CONSTANTS', 'TagsService', 'toaster', '$q', '$scope']
+ EditProfileController.$inject = ['$rootScope', 'userData', 'userHandle', 'ProfileService', 'ExternalAccountService', 'ExternalWebLinksService', 'logger', 'ISO3166', 'ImageService', 'CONSTANTS', 'TagsService', 'toaster', '$q', '$scope']
- function EditProfileController($rootScope, userData, userHandle, ProfileService, ExternalAccountService, ExternalWebLinksService, $log, ISO3166, ImageService, CONSTANTS, TagsService, toaster, $q, $scope) {
- $log = $log.getInstance('EditProfileCtrl')
+ function EditProfileController($rootScope, userData, userHandle, ProfileService, ExternalAccountService, ExternalWebLinksService, logger, ISO3166, ImageService, CONSTANTS, TagsService, toaster, $q, $scope) {
var vm = this
vm.toggleTrack = toggleTrack
vm.updateCountry = updateCountry
@@ -27,7 +26,7 @@ import _ from 'lodash'
vm.originalUserData = userData
vm.linkedExternalAccounts = []
vm.linkedExternalAccountsData = {}
- vm.skills = false
+ vm.skills = []
vm.tags = []
vm.profileFormProcessing = false
vm.tracks = {}
@@ -57,7 +56,7 @@ import _ from 'lodash'
vm.tags = tags
})
.catch(function(err) {
- $log.error(JSON.stringify(err))
+ logger.error('Could not get approved skill tags', err)
})
ProfileService.getUserSkills(vm.userData.handle)
@@ -67,7 +66,7 @@ import _ from 'lodash'
})
})
.catch(function(err) {
- $log.error(JSON.stringify(err))
+ logger.error('Could not get user skills', err)
})
}
@@ -102,7 +101,7 @@ import _ from 'lodash'
vm.countryObj = null
return
}
-
+
vm.editProfile.$setDirty()
var countryCode = _.get(countryObj, 'alpha3', undefined)
vm.userData.competitionCountryCode = countryCode
@@ -138,13 +137,15 @@ import _ from 'lodash'
.then(function() {
vm.profileFormProcessing = false
vm.editProfile.$setPristine()
- $log.info('Saved successfully')
+ logger.info('Saved successfully')
toaster.pop('success', 'Success!', 'Your account information was updated.')
for (var k in vm.userData) userData[k] = vm.userData[k]
})
.catch(function(err) {
+ logger.error('Could not update user profile', err)
+
vm.profileFormProcessing = false
- $log.error(err)
+
toaster.pop('error', 'Whoops!', 'Something went wrong. Please try again later.')
})
}
@@ -169,12 +170,16 @@ import _ from 'lodash'
ProfileService.updateUserProfile(userData)
.then(function() {
vm.userData.photoURL = ''
- $log.info('Saved successfully')
+
+ logger.info('Saved successfully')
+
toaster.pop('success', 'Success!', 'Your account information was updated.')
})
.catch(function(err) {
+ logger.error('Could not update user profile and delete image', err)
+
vm.profileFormProcessing = false
- $log.error(err)
+
vm.userData.photoURL = oldPhotoURL
vm.originalUserData.photoURL = oldPhotoURL
toaster.pop('error', 'Whoops!', 'Something went wrong. Please try again later.')
diff --git a/app/skill-picker/skill-picker.controller.js b/app/skill-picker/skill-picker.controller.js
index 2065c1cd0..75b0668d0 100644
--- a/app/skill-picker/skill-picker.controller.js
+++ b/app/skill-picker/skill-picker.controller.js
@@ -6,11 +6,10 @@ import _ from 'lodash'
angular.module('tc.skill-picker').controller('SkillPickerController', SkillPickerController)
- SkillPickerController.$inject = ['$scope', 'CONSTANTS', 'ProfileService', '$state', 'userProfile', 'featuredSkills', '$log', 'toaster', 'MemberCertService', '$q']
+ SkillPickerController.$inject = ['$scope', 'CONSTANTS', 'ProfileService', '$state', 'userProfile', 'featuredSkills', 'logger', 'toaster', 'MemberCertService', '$q']
- function SkillPickerController($scope, CONSTANTS, ProfileService, $state, userProfile, featuredSkills, $log, toaster, MemberCertService, $q) {
+ function SkillPickerController($scope, CONSTANTS, ProfileService, $state, userProfile, featuredSkills, logger, toaster, MemberCertService, $q) {
var vm = this
- $log = $log.getInstance('SkillPickerController')
vm.ASSET_PREFIX = CONSTANTS.ASSET_PREFIX
vm.IOS_PROGRAM_ID = CONSTANTS.SWIFT_PROGRAM_ID
vm.submitSkills = submitSkills
@@ -33,7 +32,6 @@ import _ from 'lodash'
* Activates the controller.
*/
function activate() {
- $log.debug('init')
initCommunities()
checkCommunityStatus()
}
@@ -93,7 +91,9 @@ import _ from 'lodash'
promises.push(MemberCertService.getMemberRegistration(vm.userId, community.programId))
}
vm.loadingCommunities = true
- $q.all(promises).then(function(responses) {
+
+ $q.all(promises)
+ .then(function(responses) {
vm.loadingCommunities = false
responses.forEach(function(program) {
if (program) {
@@ -116,7 +116,9 @@ import _ from 'lodash'
vm.showCommunity = true
}
})
- .catch(function(error) {
+ .catch(function(err) {
+ logger.error('Could not load communities with member cert registration data', err)
+
vm.loadingCommunities = false
})
}
@@ -163,7 +165,7 @@ import _ from 'lodash'
}
promises.push(ProfileService.updateUserSkills(vm.username, data))
}
- $log.debug('isCommunitiesDirty: ' + isCommunitiesDirty())
+ logger.debug('isCommunitiesDirty: ' + isCommunitiesDirty())
if (isCommunitiesDirty()) {
for(var communityName in vm.communities) {
var community = vm.communities[communityName]
@@ -175,14 +177,18 @@ import _ from 'lodash'
}
}
- $q.all(promises).then(function(responses) {
+ $q.all(promises)
+ .then(function(responses) {
vm.saving = false
toaster.pop('success', 'Success!', 'Your skills have been updated.')
vm.disableDoneButton = true
$state.go('dashboard')
})
- .catch(function(resp) {
+ .catch(function(err) {
+ logger.error('Could not update update user skills or register members for community', err)
+
vm.saving = false
+
toaster.pop('error', 'Whoops!', 'Something went wrong. Please try again later.')
})
}
diff --git a/app/submissions/submissions.routes.js b/app/submissions/submissions.routes.js
index e9a35c5a4..a5bfe1514 100644
--- a/app/submissions/submissions.routes.js
+++ b/app/submissions/submissions.routes.js
@@ -23,7 +23,7 @@ import _ from 'lodash'
title: 'Challenge Submission'
},
resolve: {
- challengeToSubmitTo: ['ChallengeService', '$stateParams', 'UserService', ChallengeToSubmitTo]
+ challengeToSubmitTo: ['ChallengeService', '$stateParams', 'UserService', 'logger', ChallengeToSubmitTo]
}
},
'submissions.file-design': {
@@ -40,7 +40,7 @@ import _ from 'lodash'
}
}
- function ChallengeToSubmitTo(ChallengeService, $stateParams, UserService) {
+ function ChallengeToSubmitTo(ChallengeService, $stateParams, UserService, logger) {
// This page is only available to users that are registered to the challenge (submitter role) and the challenge is in the Checkpoint Submission or Submission phase.
var params = {
filter: 'id=' + $stateParams.challengeId
@@ -102,6 +102,8 @@ import _ from 'lodash'
}
})
.catch(function(err) {
+ logger.error('Could not get user challenges', err)
+
setErrorMessage('challenge', 'There was an error getting information for this challenge.')
return {
diff --git a/app/submissions/submit-design-files/submit-design-files.controller.js b/app/submissions/submit-design-files/submit-design-files.controller.js
index 12160b7fc..9825f3250 100644
--- a/app/submissions/submit-design-files/submit-design-files.controller.js
+++ b/app/submissions/submit-design-files/submit-design-files.controller.js
@@ -6,13 +6,12 @@ import _ from 'lodash'
angular.module('tc.submissions').controller('SubmitDesignFilesController', SubmitDesignFilesController)
- SubmitDesignFilesController.$inject = ['$scope','$window', '$stateParams', '$log', 'UserService', 'SubmissionsService', 'challengeToSubmitTo']
+ SubmitDesignFilesController.$inject = ['$scope','$window', '$stateParams', 'logger', 'UserService', 'SubmissionsService', 'challengeToSubmitTo']
- function SubmitDesignFilesController($scope, $window, $stateParams, $log, UserService, SubmissionsService, challengeToSubmitTo) {
+ function SubmitDesignFilesController($scope, $window, $stateParams, logger, UserService, SubmissionsService, challengeToSubmitTo) {
if (!challengeToSubmitTo.challenge) { return }
var vm = this
- $log = $log.getInstance('SubmitDesignFilesController')
var files = {}
var fileUploadProgress = {}
vm.urlRegEx = new RegExp(/^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/)
@@ -176,7 +175,7 @@ import _ from 'lodash'
if (args === 100) {
vm.preparing = false
vm.uploading = true
- $log.debug('Prepared for upload.')
+ logger.debug('Prepared for upload.')
}
} else if (phase === 'UPLOAD') {
// if args is object, this update is about XHRRequest's upload progress
@@ -202,18 +201,18 @@ import _ from 'lodash'
// start next phase when UPLOAD is done
if (vm.uploadProgress == 100) {
- $log.debug('Uploaded files.')
+ logger.debug('Uploaded files.')
vm.uploading = false
vm.finishing = true
}
} else if (phase === 'FINISH') {
// we are concerned only for completion of the phase
if (args === 100) {
- $log.debug('Finished upload.')
+ logger.debug('Finished upload.')
}
} else {
// assume it to be error condition
- $log.debug('Error Condition: ' + phase)
+ logger.debug('Error Condition: ' + phase)
vm.errorInUpload = true
}
}
diff --git a/app/submissions/submit-develop-files/submit-develop-files.controller.js b/app/submissions/submit-develop-files/submit-develop-files.controller.js
index 6889ca397..c8a22f4e3 100644
--- a/app/submissions/submit-develop-files/submit-develop-files.controller.js
+++ b/app/submissions/submit-develop-files/submit-develop-files.controller.js
@@ -5,13 +5,12 @@ import angular from 'angular'
angular.module('tc.submissions').controller('SubmitDevelopFilesController', SubmitDevelopFilesController)
- SubmitDevelopFilesController.$inject = ['$scope','$window', '$stateParams', '$log', 'UserService', 'SubmissionsService', 'challengeToSubmitTo']
+ SubmitDevelopFilesController.$inject = ['$scope','$window', '$stateParams', 'logger', 'UserService', 'SubmissionsService', 'challengeToSubmitTo']
- function SubmitDevelopFilesController($scope, $window, $stateParams, $log, UserService, SubmissionsService, challengeToSubmitTo) {
+ function SubmitDevelopFilesController($scope, $window, $stateParams, logger, UserService, SubmissionsService, challengeToSubmitTo) {
if (!challengeToSubmitTo.challenge) { return }
var vm = this
- $log = $log.getInstance('SubmitDevelopFilesController')
var files = {}
var fileUploadProgress = {}
vm.comments = ''
@@ -109,7 +108,7 @@ import angular from 'angular'
vm.finishing = false
vm.submissionsBody.data.submitterComments = vm.comments
- $log.debug('Body for request: ', vm.submissionsBody)
+ logger.debug('Body for request: ', vm.submissionsBody)
SubmissionsService.getPresignedURL(vm.submissionsBody, files, updateProgress)
}
@@ -122,7 +121,7 @@ import angular from 'angular'
if (args === 100) {
vm.preparing = false
vm.uploading = true
- $log.debug('Prepared for upload.')
+ logger.debug('Prepared for upload.')
}
} else if (phase === 'UPLOAD') {
// if args is object, this update is about XHRRequest's upload progress
@@ -148,18 +147,18 @@ import angular from 'angular'
// start next phase when UPLOAD is done
if (vm.uploadProgress == 100) {
- $log.debug('Uploaded files.')
+ logger.debug('Uploaded files.')
vm.uploading = false
vm.finishing = true
}
} else if (phase === 'FINISH') {
// we are concerned only for completion of the phase
if (args === 100) {
- $log.debug('Finished upload.')
+ logger.debug('Finished upload.')
}
} else {
// assume it to be error condition
- $log.debug('Error Condition: ' + phase)
+ logger.debug('Error Condition: ' + phase)
vm.errorInUpload = true
}
}
diff --git a/app/topcoder.module.js b/app/topcoder.module.js
index d3a6f5c8b..290b107d8 100644
--- a/app/topcoder.module.js
+++ b/app/topcoder.module.js
@@ -38,9 +38,9 @@ import angular from 'angular'
angular.module('topcoder', dependencies).run(appRun)
- appRun.$inject = ['$rootScope', '$state', 'TcAuthService', '$cookies', 'Helpers', '$log']
+ appRun.$inject = ['$rootScope', '$state', 'TcAuthService', '$cookies', 'Helpers', 'logger']
- function appRun($rootScope, $state, TcAuthService, $cookies, Helpers, $log) {
+ function appRun($rootScope, $state, TcAuthService, $cookies, Helpers, logger) {
// Attaching $state to the $rootScope allows us to access the
// current state in index.html (see the body tag)
$rootScope.$state = $state
@@ -48,7 +48,7 @@ import angular from 'angular'
// check AuthNAuth on change state start
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
if (toState.data.authRequired && !TcAuthService.isAuthenticated()) {
- $log.debug('State requires authentication, and user is not logged in, redirecting')
+ logger.debug('State requires authentication, and user is not logged in, redirecting')
// setup redirect for post login
event.preventDefault()
var next = $state.href(toState.name, toParams, {absolute: false})