@@ -16,12 +16,12 @@ import _ from 'lodash'
1616 hideMoney : '=' ,
1717 defaultState : '@'
1818 } ,
19- controller : [ 'CONSTANTS' , '$rootScope' , '$scope' , 'ProfileService' , 'logger' , '$state' , pageStateHeader ] ,
19+ controller : [ 'CONSTANTS' , '$rootScope' , '$scope' , 'ProfileService' , 'logger' , '$state' , 'ChallengeService' , '$q' , 'UserService' , 'BadgeService' , pageStateHeader ] ,
2020 controllerAs : 'vm'
2121 }
2222 } )
2323
24- function pageStateHeader ( CONSTANTS , $rootScope , $scope , ProfileService , logger , $state ) {
24+ function pageStateHeader ( CONSTANTS , $rootScope , $scope , ProfileService , logger , $state , ChallengeService , $q , UserService , BadgeService ) {
2525 var vm = this
2626 vm . backHandler = backHandler
2727
@@ -35,13 +35,10 @@ import _ from 'lodash'
3535 function activate ( ) {
3636 vm . handle = $scope . handle
3737 vm . profile = null
38- vm . handleColor = null
3938 $scope . hideMoney = _ . get ( $scope , 'hideMoney' , true )
4039 vm . previousStateName = null
4140 vm . previousStateLabel = null
4241 vm . previousState = null
43- vm . showBackLink = _ . get ( $scope , 'showBackLink' , false )
44- vm . loading = true
4542
4643 // identifies the previous state
4744 if ( $scope . $root . previousState && $scope . $root . previousState . name . length > 0 ) {
@@ -65,14 +62,33 @@ import _ from 'lodash'
6562 // gets member's profile
6663 ProfileService . getUserProfile ( vm . handle ) . then ( function ( profile ) {
6764 vm . profile = profile
68- vm . handleColor = ProfileService . getUserHandleColor ( vm . profile )
6965
70- if ( ! $scope . hideMoney ) {
71- displayMoneyEarned ( vm . handle )
72- } else {
73- vm . loading = false
74- }
66+ // get members dashboard badge
67+ UserService . getV2UserProfile ( vm . handle ) . then ( function ( resp ) {
68+ // Calling the mock to return a badge
69+ // In actuality filtering should be done by whether the achievement contains a field 'forDashboard' or not.
70+ var dashboardAchievement = _filterDashboardAchievement ( resp . Achievements || [ ] ) [ 0 ]
71+
72+ if ( dashboardAchievement ) {
73+ vm . dashboardBadge = BadgeService . getAchievementVm ( dashboardAchievement )
74+ }
75+ } )
76+
77+ } )
78+
79+ // get member's challenges to display number of active challenges
80+ $q . all ( [
81+ ChallengeService . getUserMarathonMatches ( vm . handle , { filter : 'status=active' } ) ,
82+ ChallengeService . getUserChallenges ( vm . handle , { filter : 'status=active' } )
83+ ] ) . then ( function ( challenges ) {
84+ var marathonMatches = challenges [ 0 ]
85+ var devDesignChallenges = challenges [ 1 ]
86+
87+ vm . activeChallenges = marathonMatches . length + devDesignChallenges . length
7588 } )
89+
90+ displayMoneyEarned ( vm . handle )
91+
7692 }
7793
7894 function backHandler ( ) {
@@ -100,15 +116,39 @@ import _ from 'lodash'
100116 if ( ! vm . moneyEarned ) {
101117 $scope . hideMoney = true
102118 }
103-
104- vm . loading = false
105119 } )
106120 . catch ( function ( err ) {
107121 $scope . hideMoney = true
108- vm . loading = false
109122
110123 logger . error ( 'Could not get user financial information' , err )
111124 } )
112125 }
126+
127+ // Temporary function to simulate dashboard achievement
128+ function _filterDashboardAchievement ( achievements ) {
129+ // If forceBadge is true, it displays the achievement in _mock, whether the user has that achievement or not
130+ var _forceBadge = false
131+
132+ // temoprary config object that maps usernames to badge name
133+ var _mock = {
134+ ronakkaria : 'First Win' ,
135+ birdofpreyru : 'Predix Community'
136+ }
137+
138+ var dashboardBadgeName = _mock [ vm . handle ]
139+ if ( ! dashboardBadgeName ) { return [ ] }
140+
141+ if ( _forceBadge ) {
142+ return [ {
143+ date : new Date ( ) ,
144+ description : _mock [ vm . handle ]
145+ } ]
146+ }
147+
148+ return achievements . filter ( function ( achievement ) {
149+ return ( achievement . description === dashboardBadgeName )
150+ } )
151+ }
152+
113153 }
114154} ) ( )
0 commit comments