Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ module.exports = function(grunt) {
helpAppURL: grunt.option('help-app-url') || 'help.topcoder.com',
forumsAppURL: grunt.option('forums-app-url') || 'forums.topcoder.com',
swiftProgramId: grunt.option('swift-program-id') || 3445,
swiftProgramURL: grunt.option('swift-program-url') || 'http://apple.topcoder.com',

// only used on wp setup
useGz: grunt.option('use-gz') || false,
Expand Down
2 changes: 1 addition & 1 deletion src/conf/build-dev.sh
Original file line number Diff line number Diff line change
@@ -1 +1 @@
grunt --main-url=https://www.topcoder-dev.com --auth-main-url=topcoder-dev.auth0.com --auth-client-id=JFDo7HMkf0q2CkVFHojy3zHWafziprhT --auth-callback-url=https://www.topcoder-dev.com/reg2/callback.action --api-url=https://api.topcoder-dev.com/v2 --lc-url=https://dev-lc1-ext-challenge-service.herokuapp.com --lc-discussion-url=https://dev-lc1-discussion-service.herokuapp.com --lc-user-url=https://dev-lc1-user-service.herokuapp.com --lc-site-url=https://dev-lc1-challenge-app.herokuapp.com --my-filters-url=https://staging-user-settings-service.herokuapp.com --community-url=//community.topcoder-dev.com --photo-link-base=https://www.topcoder-dev.com --review-app-url=software.topcoder-dev.com/review --help-app-url=help.topcoder-dev.com --forums-app-url=forums.topcoder-dev.com --swift-program-id=3445 --blog-rss-feed="https://www.topcoder-dev.com/feed/?post_type=blog" --api3-url=https://api.topcoder-dev.com/v3 --use-cdn=1 --use-min=1
grunt --main-url=https://www.topcoder-dev.com --auth-main-url=topcoder-dev.auth0.com --auth-client-id=JFDo7HMkf0q2CkVFHojy3zHWafziprhT --auth-callback-url=https://www.topcoder-dev.com/reg2/callback.action --api-url=https://api.topcoder-dev.com/v2 --lc-url=https://dev-lc1-ext-challenge-service.herokuapp.com --lc-discussion-url=https://dev-lc1-discussion-service.herokuapp.com --lc-user-url=https://dev-lc1-user-service.herokuapp.com --lc-site-url=https://dev-lc1-challenge-app.herokuapp.com --my-filters-url=https://staging-user-settings-service.herokuapp.com --community-url=//community.topcoder-dev.com --photo-link-base=https://www.topcoder-dev.com --review-app-url=software.topcoder-dev.com/review --help-app-url=help.topcoder-dev.com --forums-app-url=forums.topcoder-dev.com --swift-program-id=3445 --swift-program-url=http://apple.topcoder-dev.com --blog-rss-feed="https://www.topcoder-dev.com/feed/?post_type=blog" --api3-url=https://api.topcoder-dev.com/v3 --use-cdn=1 --use-min=1
2 changes: 1 addition & 1 deletion src/conf/build-qa.sh
Original file line number Diff line number Diff line change
@@ -1 +1 @@
grunt --main-url=https://www.topcoder-qa.com --auth-main-url=topcoder-qa.auth0.com --auth-client-id=EVOgWZlCtIFlbehkq02treuRRoJk12UR --auth-callback-url="https://www.topcoder-qa.com/reg2/callback.action" --api-url=https://api.topcoder-qa.com/v2 --lc-url=https://qa-lc1-ext-challenge-service.herokuapp.com --lc-discussion-url=https://qa-lc1-discussion-service.herokuapp.com --lc-user-url=https://qa-lc1-user-service.herokuapp.com --lc-site-url=https://qa-lc1-challenge-app.herokuapp.com --my-filters-url=https://staging-user-settings-service.herokuapp.com --community-url=//community.topcoder-qa.com --photo-link-base=https://www.topcoder-qa.com --review-app-url=software.topcoder-qa.com/review --help-app-url=help.topcoder-qa.com --forums-app-url=forums.topcoder-qa.com --swift-program-id=3445 --blog-rss-feed="https://www.topcoder-qa.com/feed/?post_type=blog" --api3-url=https://api.topcoder-qa.com/v3 --use-cdn=1 --use-min=1
grunt --main-url=https://www.topcoder-qa.com --auth-main-url=topcoder-qa.auth0.com --auth-client-id=EVOgWZlCtIFlbehkq02treuRRoJk12UR --auth-callback-url="https://www.topcoder-qa.com/reg2/callback.action" --api-url=https://api.topcoder-qa.com/v2 --lc-url=https://qa-lc1-ext-challenge-service.herokuapp.com --lc-discussion-url=https://qa-lc1-discussion-service.herokuapp.com --lc-user-url=https://qa-lc1-user-service.herokuapp.com --lc-site-url=https://qa-lc1-challenge-app.herokuapp.com --my-filters-url=https://staging-user-settings-service.herokuapp.com --community-url=//community.topcoder-qa.com --photo-link-base=https://www.topcoder-qa.com --review-app-url=software.topcoder-qa.com/review --help-app-url=help.topcoder-qa.com --forums-app-url=forums.topcoder-qa.com --swift-program-id=3445 --swift-program-url=http://apple.topcoder-qa.com --blog-rss-feed="https://www.topcoder-qa.com/feed/?post_type=blog" --api3-url=https://api.topcoder-qa.com/v3 --use-cdn=1 --use-min=1
5 changes: 5 additions & 0 deletions src/css/base.css
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,11 @@ sub, sup {
margin-bottom: 5px;
}

.margin-vert-2x {
margin-top: 10px;
margin-bottom: 10px;
}

.margin-top-2x {
margin-top: 10px;
}
Expand Down
51 changes: 30 additions & 21 deletions src/css/my-dashboard.css
Original file line number Diff line number Diff line change
Expand Up @@ -256,50 +256,59 @@
.member-program-content *[rel="badges"] *[rel="badge"] div[rel="image"] {
min-width: 30px;
min-height: 30px;
background-size: cover;
background-image: url('../i/member-program/sprite.png');
background-repeat: no-repeat;
zoom: 0.5;
}

.member-program-content *[rel="badges"] *[rel="badge"].badge1 div[rel="image"] {
background-image: url("../i/member-program/get-ready-48.png");
background-repeat: no-repeat;
.member-program-content *[rel="badges"] *[rel="badge"].participant div[rel="image"] {
background-position: -112px 0px;
width: 76px;
height: 76px;
}

.member-program-content *[rel="badges"] *[rel="badge"].badge2 div[rel="image"] {
background-image: url("../i/member-program/step-one-48.png");
background-repeat: no-repeat;
.member-program-content *[rel="badges"] *[rel="badge"].education div[rel="image"] {
background-position: -112px -78px;
width: 74px;
height: 74px;
}

.member-program-content *[rel="badges"] *[rel="badge"].badge3 div[rel="image"] {
background-image: url("../i/member-program/getting-ready-48.png");
background-repeat: no-repeat;
.member-program-content *[rel="badges"] *[rel="badge"].peer div[rel="image"] {
background-position: 0px -83px;
width: 66px;
height: 90px;
}

.member-program-content *[rel="badges"] *[rel="badge"].badge4 div[rel="image"] {
background-image: url("../i/member-program/on-starting-line-48.png");
background-repeat: no-repeat;
.member-program-content *[rel="badges"] *[rel="badge"].challenge div[rel="image"] {
background-position: -190px -76px;
width: 54px;
height: 74px;
}

.member-program-content *[rel="badges"] *[rel="badge"].badge5 div[rel="image"] {
background-image: url("../i/member-program/break-the-finish-48.png");
background-repeat: no-repeat;
.member-program-content *[rel="badges"] *[rel="badge"].high-performer div[rel="image"] {
background-position: -190px 0px;
width: 63px;
height: 74px;
}

.member-program-content *[rel="badges"] *[rel="badge"].badge6 div[rel="image"] {
background-image: url("../i/member-program/get-certified-48.png");
background-repeat: no-repeat;
.member-program-content *[rel="badges"] *[rel="badge"].custom div[rel="image"] {
background-position: 0px -175px;
width: 64px;
height: 64px;
}

.member-program-content *[rel="badges"] *[rel="badge"] div[rel="name"] {
margin-top: 5px;
margin-left: 5px;
line-height: 37px; /* sync with height of the badge images */
}

.member-program-content *[rel="badges"] *[rel="badge-status"] {
margin-top: 5px;
line-height: 37px; /* sync with height of the badge images */
}
.member-program-content *[rel="badges"] *[rel="badge-status"] *[rel="image"] {
width: 20px;
height: 20px;
margin-top: 8px; /* (height(badge) - height(checkbox)) / 2 = (37 - 20)/2 */
}

.member-program-content *[rel="badges"] *[rel="badge-status"].pending *[rel="image"] {
Expand Down
1 change: 1 addition & 0 deletions src/js/app/my-dashboard/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
.constant("HELP_APP_URL", tcconfig.helpAppURL)
.constant("PHOTO_LINK_LOCATION", tcconfig.photoLinkBaseURL)
.constant('SWIFT_PROGRAM_ID', tcconfig.swiftProgramId)
.constant('SWIFT_PROGRAM_URL', tcconfig.swiftProgramURL)
.factory('Restangular3', Restangular3)
.run(['$rootScope', '$location', '$window', 'AuthService', run]);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,28 @@
* Inject dependencies
* @type {string[]}
*/
MemberProgramCtrl.$inject = ['$scope', 'AuthService', 'MemberCertService', 'SWIFT_PROGRAM_ID'];
MemberProgramCtrl.$inject = ['$scope', '$q', 'AuthService', 'MemberCertService', 'SWIFT_PROGRAM_ID', 'SWIFT_PROGRAM_URL'];

/**
* Controller implementation
*
* @param $scope
* @constructor
*/
function MemberProgramCtrl($scope, AuthService, MemberCertService, SWIFT_PROGRAM_ID) {
function MemberProgramCtrl($scope, $q, AuthService, MemberCertService, SWIFT_PROGRAM_ID, SWIFT_PROGRAM_URL) {
var vm = this;
vm.title = 'iOS Developer Community';
vm.user = null;
vm.loading = true;
vm.loadingMessage = "";
vm.programUrl = SWIFT_PROGRAM_URL;
vm.badges = [
{ id : 'participant', enabled : true, completed: true, name: 'Participant'},
{ id : 'education', enabled : false, completed: false, name: 'Education'},
{ id : 'peer', enabled : true, completed: false, name: 'Peer'},
{ id : 'challenge', enabled : false, completed: false, name: 'Challenge'},
{ id : 'high-performer', enabled : false, completed: false, name: 'High Performer'}
]
vm.program = null;
vm.registration = null;
vm.registerUser = registerUser;
Expand All @@ -56,12 +64,20 @@
vm.loading = true;
vm.loadingMessage = "Checking your program status";
vm.user = user;
var promises = [
MemberCertService.getMemberRegistration(vm.user.uid, SWIFT_PROGRAM_ID),
MemberCertService.peerBadgeCompleted(SWIFT_PROGRAM_ID)
]
// gets member's registration status for the event
return MemberCertService.getMemberRegistration(vm.user.uid, SWIFT_PROGRAM_ID).then(function(data) {
var result = data.result;
var content = result ? result.content : null;
if (content) {
vm.registration = content;
return $q.all(promises).then(function(data) {
var regResult = data.length > 0 ? data[0].result : null;
var reg = regResult ? regResult.content : null;
var peerBadgeResult = data.length > 1 ? data[1].result : null;
if (reg) {
vm.registration = reg;
peerBadgeCompleted = peerBadgeResult ? peerBadgeResult.content : false;
// peer badge is at 2 index in the array
vm.badges[2].completed = peerBadgeCompleted;
} else {
vm.registration = null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
vm.getCurrentPageClass = getCurrentPageClass;
vm.sort = sort;

// activate controller
// getChallenges controller
if (AuthService.isLoggedIn === true) {
getChallenges();
} else {
Expand Down Expand Up @@ -150,7 +150,7 @@
vm.sortOrder = 'desc';
}
vm.sortColumn = column;
activate();
getChallenges();
}

/**
Expand Down
9 changes: 9 additions & 0 deletions src/js/app/my-dashboard/js/services/member-cert-services.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@
return service.one("memberCert/registrations", userId).one("programs", programId).get();
}

/**
* peerBadgeCompleted Retrieves the status of the logged in member for the peer badge
* @param programId string id of the program
* @returns promise
*/
service.peerBadgeCompleted = function(programId) {
return service.all("badges").one("isCompleted").get({filter: 'eventId=' + programId});
}

/**
* registerMember Registers the given member for the given program.
* @param userId string id of the member to be registered
Expand Down
57 changes: 8 additions & 49 deletions src/js/app/my-dashboard/partials/member-program.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,66 +29,25 @@
<div class="description margin-top-3x">
<!-- TODO make badge list dynamic -->
<ul rel="badges" class="margin-top-3x">
<li class="margin-vert-1x">
<div rel="badge" class="pull-left badge1">
<li class="margin-vert-2x" ng-repeat="badge in vm.badges">
<div rel="badge" class="pull-left {{badge.id}}">
<div rel="image" class="pull-left"></div>
<div rel="name" class="pull-left">Participant Badge</div>
<div rel="name" class="pull-left" ng-bind="badge.name"></div>
</div>
<div rel="badge-status" class="pull-right completed">
<div rel="badge-status" ng-show="badge.enabled" class="pull-right" ng-class="{pending: !badge.completed, completed: badge.completed}">
<div rel="image" class="pull-right margin-left-1x"></div>
<div rel="text" class="pull-right">Completed</div>
<div rel="text" class="pull-right" ng-bind="badge.completed ? 'Completed' : 'Pending'"></div>
</div>
<div class="clearfix"></div>
</li>
<li class="margin-vert-1x">
<div rel="badge" class="pull-left badge2">
<div rel="image" class="pull-left"></div>
<div rel="name" class="pull-left">Education Badge</div>
</div>
<div rel="badge-status" class="pull-right pending">
<div rel="image" class="pull-right margin-left-1x"></div>
<div rel="text" class="pull-right">Pending</div>
</div>
<div class="clearfix"></div>
</li>
<li class="margin-vert-1x">
<div rel="badge" class="pull-left badge3">
<div rel="image" class="pull-left"></div>
<div rel="name" class="pull-left">Peer Badge</div>
</div>
<div rel="badge-status" class="pull-right pending">
<div rel="image" class="pull-right margin-left-1x"></div>
<div rel="text" class="pull-right">Pending</div>
</div>
<div class="clearfix"></div>
</li>
<li class="margin-vert-1x">
<div rel="badge" class="pull-left badge4">
<div rel="image" class="pull-left"></div>
<div rel="name" class="pull-left">Challenge Badge</div>
</div>
<div rel="badge-status" class="pull-right pending">
<div rel="image" class="pull-right margin-left-1x"></div>
<div rel="text" class="pull-right">Pending</div>
</div>
<div class="clearfix"></div>
</li>
<li class="margin-vert-1x">
<div rel="badge" class="pull-left badge5">
<div rel="image" class="pull-left"></div>
<div rel="name" class="pull-left">High Performer Badge</div>
</div>
<div rel="badge-status" class="pull-right pending">
<div rel="image" class="pull-right margin-left-1x"></div>
<div rel="text" class="pull-right">Pending</div>
<div rel="badge-status" ng-show="!badge.enabled" class="pull-right">
<span>Coming Soon</span>
</div>
<div class="clearfix"></div>
</li>
</ul>
</div>
<div class="clearfix nextstep">
<!-- used style as workaround to override display property -->
<a href="http://apple.topcoder.com/challenges" class="btn btn-primary center-block block-display" style="display:block;">Participate</a>
<a href="{{vm.programUrl}}/#/challenges/type/peer" class="btn btn-primary center-block block-display" style="display:block;">Participate</a>
</div>
</div>
</div>
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.