Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Release/v1.0.4 #338

Merged
merged 37 commits into from
Oct 9, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
82ae450
Add intro js css
Oct 5, 2015
1c08f65
Merge branch 'dev' into feature/intro-js
Oct 6, 2015
8a6697d
Style intro JS components
Oct 6, 2015
4ce22af
Fix environment setting for local
Oct 7, 2015
37f7b63
Show IntroJS, wip with detecting if seen before
Oct 7, 2015
ac60657
Merge branch 'dev' into feature/intro-js
Oct 7, 2015
c564627
Fix layout for marathon matches
tladendo Oct 7, 2015
8beed05
Merge pull request #321 from appirio-tech/feature/tom-fix-mm-error
tladendo Oct 7, 2015
0b06cf8
SUP-1823, User is redirected to 'error 404: Page not Found" while cli…
Oct 7, 2015
b9f3b9a
Detect whether user has seen intro js before
Oct 7, 2015
4d8e044
SUP-1872, [Edit Profile] Support linking Dribble account
Oct 7, 2015
70184e6
Merge pull request #323 from appirio-tech/feature/ext-acc-dribbble-su…
Oct 7, 2015
d08c978
updated badges styling
tladendo Oct 7, 2015
25ae27f
SUP-1874, [Edit Profile] Support unlinking external accounts
Oct 7, 2015
a78c542
added active challenges to copilot
tladendo Oct 7, 2015
1dbe9f4
Merge pull request #326 from appirio-tech/feature/tom-copilot-add-stat
tladendo Oct 7, 2015
ad0d0ee
SUP-1822, There should be a message if user do not have upcoming/past…
Oct 7, 2015
764a896
Merge branch 'feature/1822-no-results-message-my-srms' into dev
Oct 7, 2015
8c446ca
SUP-1818, iOS challenge API is not returning the ones being showed on…
Oct 7, 2015
ca86483
Merge branch 'release/v1.0.3' into dev
Oct 7, 2015
d2a135d
Add padding for long roles and technologies
Oct 8, 2015
cc85798
Merge pull request #329 from appirio-tech/feature/card-text-padding
nlitwin Oct 8, 2015
8fe334d
Show unregistered section so card is proper height
Oct 8, 2015
7d5dd8c
Merge pull request #330 from appirio-tech/srm-unregistered
nlitwin Oct 8, 2015
b53163c
Merge pull request #324 from appirio-tech/feature/tom-style-badge-modal
tladendo Oct 8, 2015
d159056
removed stats tab from design subtrack
tladendo Oct 8, 2015
3ee22df
Merge pull request #331 from appirio-tech/feature/tom-hide-design-stats
tladendo Oct 8, 2015
c80ba68
SUP-1792, [Registration] Apply mobile design
Oct 8, 2015
b430bae
Revert "SUP-1792, [Registration] Apply mobile design"
Oct 8, 2015
2bc0055
SUP-1792, [Registration] Apply mobile design
Oct 8, 2015
2dc7d73
SUP-1908, View all active has wrong status for challenges
Oct 8, 2015
d943474
SUP-1790, [Login] Apply mobile design
Oct 8, 2015
c228159
SUP-1914, Data should be displayed for 'Dribbble' account.
Oct 9, 2015
54329a4
Merge pull request #335 from appirio-tech/feature/dribbble-card-data
Oct 9, 2015
96a2b47
Fix merge conflicts
Oct 9, 2015
ba06b85
Merge pull request #322 from appirio-tech/feature/intro-js
nlitwin Oct 9, 2015
bce8ea9
Merge branch 'dev' into release/v1.0.4
Oct 9, 2015
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
16 changes: 8 additions & 8 deletions app/account/login/login.jade
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,21 @@
p ------------ Or Log in With ------------

.social-icons
.github
.network.github
.ico(ng-click="vm.socialLogin('github')")
p Github
.google-plus
.network.google-plus
.ico(ng-click="vm.socialLogin('google-oauth2')")
p Google
.facebook
.network.facebook
.ico(ng-click="vm.socialLogin('facebook')")
p Facebook
.twitter
.network.twitter
.ico(ng-click="vm.socialLogin('twitter')")
p Twitter

.join-topcoder
span Not a member yet?
p.redirect
a(ui-sref="register(vm.$stateParams)") Join now
.join-topcoder
span Not a member yet?
p.redirect
a(ui-sref="register(vm.$stateParams)") Join now

25 changes: 14 additions & 11 deletions app/account/register/register.jade
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@
)

.form-errors
p.form-error(ng-show="vm.registerForm.country.$error.required") Please choose a country from the list.
p.form-error(ng-show="vm.registerForm.country.$error.required") Please choose a country from the list

.section-break
hr

.validation-bar(ng-class="{ 'error-bar': (vm.registerForm.username.$error.usernameIsFree || vm.registerForm.username.$error.minlength || vm.registerForm.username.$error.maxlength), 'success-bar': (vm.registerForm.username.$valid && !vm.registerForm.username.$error.usernameIsFree) }")
input-sticky-placeholder(sticky-placeholder="Username", ng-model="vm.username")
Expand Down Expand Up @@ -85,26 +88,26 @@

p(ng-class="{ 'has-symbol-or-number': (vm.registerForm.password.$dirty && !vm.registerForm.password.$error.hasSymbolOrNumber) }") At least one number or symbol

button(type="submit", tc-busy-button, tc-busy-when="vm.registering", ng-disabled="vm.registerForm.$invalid", ng-class="{'enabled-button': vm.registerForm.$valid}") Join
section.terms
p By clicking "Join," you agree to Topcoder's #[a(href="http://www.topcoder.com/community/how-it-works/terms/", target="_blank") Terms of Service] and #[a(href="http://www.topcoder.com/community/how-it-works/privacy-policy/", target="_blank") Privacy Policy]

section.terms
p By clicking "Join," you agree to Topcoder's #[a(href="http://www.topcoder.com/community/how-it-works/terms/", target="_blank") Terms of Service] and #[a(href="http://www.topcoder.com/community/how-it-works/privacy-policy/", target="_blank") Privacy Policy]
button(type="submit", tc-busy-button, tc-busy-when="vm.registering", ng-disabled="vm.registerForm.$invalid", ng-class="{'enabled-button': vm.registerForm.$valid}") Join

section.social
p ------------ Or Register With ------------

.social-icons
.github
.network.github
.ico(ng-click="vm.socialRegister('github')")
p Github
.google-plus
.network.google-plus
.ico(ng-click="vm.socialRegister('google-oauth2')")
p Google
.facebook
.network.facebook
.ico(ng-click="vm.socialRegister('facebook')")
p Facebook

.join-topcoder
span Already a member?
p.redirect
a(ui-sref="login(vm.$stateParams)") Log in
.join-topcoder
span Already a member?
p.redirect
a(ui-sref="login(vm.$stateParams)") Log in
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@

div(ng-switch-when="MARATHON_MATCH")
.marathon-score
p.score {{challenge.pointTotal || 0 }
p.score {{challenge.pointTotal || 0 }}

p Total Points

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.ext-tile(ng-repeat="account in accountList | orderBy:'order'", ng-click="!account.disabled && !readOnly && !account.linked && link(account.provider)", ng-class="{'connected': account.linked, 'disabled': account.disabled, 'read-only': readOnly}")
.ext-tile(ng-repeat="account in accountList | orderBy:'order'", ng-click="!account.disabled && !readOnly && handleClick(account.provider, account.linked)", ng-class="{'connected': account.linked, 'disabled': account.disabled, 'read-only': readOnly}")
.external-account-box(ng-class="account.colorClass")
i.fa(ng-if="readOnly || account.linked", ng-class="account.className", style="color: {{account.colorClass | externalLinkColor}}")

Expand Down
58 changes: 47 additions & 11 deletions app/directives/external-account/external-account.directive.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(function() {
'use strict';
var _supportedAccounts = [
{ provider: "dribble", className: "fa-dribbble", displayName: "Dribble", disabled: true, order: 6, colorClass: 'el-dribble'},
{ provider: "dribbble", className: "fa-dribbble", displayName: "Dribbble", disabled: false, order: 6, colorClass: 'el-dribble'},
{ provider: "linkedin", className: "fa-linkedin", displayName: "LinkedIn", disabled: true, order: 5, colorClass: 'el-linkedin'},
{ provider: "stackoverflow", className: "fa-stack-overflow", displayName: "Stack Overflow", disabled: false, order: 3, colorClass: 'el-stackoverflow'},
{ provider: "behance", className: "fa-behance", displayName: "Behance", disabled: true, order: 2, colorClass: 'el-behance'},
Expand All @@ -26,28 +26,36 @@
function($log, $scope, ExternalAccountService, toaster) {
$log = $log.getInstance("ExtAccountDirectiveCtrl")
$scope.accountList = _.clone(_supportedAccounts, true);
$scope.$watch('linkedAccounts', function(newValue, oldValue) {
$scope.$watchCollection('linkedAccounts', function(newValue, oldValue) {
for (var i=0;i<$scope.accountList.length;i++) {
$scope.accountList[i].linked = !!_.find(newValue, function(a) {
return $scope.accountList[i].provider === a.providerType;
});
}
});

$scope.link = function(provider) {
$log.debug(String.supplant('connecting to ' + provider));
// var callbackUrl = $state.href('settings.profile', {}, {absolute: true});
var extAccountProvider = _.result(_.find(_supportedAccounts, function(s) {
$scope.handleClick = function(provider, unlink) {
var provider = _.find(_supportedAccounts, function(s) {
return s.provider === provider;
}), 'displayName');
ExternalAccountService.linkExternalAccount(provider, null)
});
if (unlink) {
$log.debug(String.supplant('UnLinking to ' + provider.displayName));
_unlink(provider);
} else {
$log.debug(String.supplant('Linking to ' + provider.displayName));
_link(provider);
}
};

function _link(provider) {
ExternalAccountService.linkExternalAccount(provider.provider, null)
.then(function(resp) {
$log.debug("Social account linked: " + JSON.stringify(resp));
$scope.linkedAccounts.push(resp.profile);
toaster.pop('success', "Success",
String.supplant(
"Your {provider} account has been linked. Data from your linked account will be visible on your profile shortly.",
{provider: extAccountProvider}
{provider: provider.displayName}
)
);
})
Expand All @@ -58,12 +66,40 @@
String.supplant(
"This {provider} account is linked to another account. \
If you think this is an error please contact <a href=\"mailTo:support@.appirio.com\">support@apprio.com</a>.",
{provider: extAccountProvider }
{provider: provider.displayName }
)
);
}
});
};
}

function _unlink(provider) {
return ExternalAccountService.unlinkExternalAccount(provider.provider)
.then(function(resp) {
$log.debug("Social account unlinked: " + JSON.stringify(resp));
var toRemove = _.findIndex($scope.linkedAccounts, function(la) {
return la.providerType === provider;
});
$scope.linkedAccounts.splice(toRemove, 1);
toaster.pop('success', "Success",
String.supplant(
"Your {provider} account has been unlinked.",
{provider: provider.displayName}
)
);
})
.catch(function(resp) {
var msg = resp.msg;
if (resp.status === 'SOCIAL_PROFILE_NOT_EXIST') {
$log.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 <a href=\"mailTo:support@.appirio.com\">support@apprio.com</a>.";
} else {
$log.info("Fatal error: " + msg);
msg = "Sorry! We are unable to unlink your {provider} account. If problem persists, please contact <a href=\"mailTo:support@.appirio.com\">support@apprio.com</a>";
}
toaster.pop('error', "Whoops!", String.supplant(msg, {provider: provider.displayName }));
});
}
}
]
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
.key likes


div(ng-switch-when="dribble")
div(ng-switch-when="dribbble")
.handle {{account.data.handle}}

.pending(ng-show="account.data.status === 'PENDING'")
Expand Down
5 changes: 3 additions & 2 deletions app/directives/srm-tile/srm-tile.directive.jade
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
.registered(ng-show="vm.registered")
i.fa.fa-check-circle-o
p You are registered!
.unregistered(ng-hide="true")
.unregistered(ng-hide="vm.registered")
button.srm-action Register

.past-srm(ng-show="srm.status === 'PAST'")
.challenge-track

Expand Down Expand Up @@ -52,7 +53,7 @@
.registered(ng-show="vm.registered")
i.fa.fa-check-circle-o
p You are registered!
.unregistered(ng-hide="true")
.unregistered(ng-hide="vm.registered")
button.srm-action Register

.past-srm(ng-show="srm.status === 'PAST'")
Expand Down
2 changes: 2 additions & 0 deletions app/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ html

#header(ui-view="header")

.intro-js-container(ng-intro-options="main.introOptions", ng-intro-method="main.startIntro")

notifications-bar.notifications(closeIcon="fa fa-times-circle")

toaster-container(toaster-options="{{main.globalToasterConfig}}")
Expand Down
7 changes: 2 additions & 5 deletions app/layout/header/header.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

angular.module('tc.layout').controller('HeaderController', HeaderController);

HeaderController.$inject = ['$state', 'TcAuthService', 'CONSTANTS', '$log', '$rootScope', 'UserService', 'ProfileService', 'IntroService'];
HeaderController.$inject = ['$state', 'TcAuthService', 'CONSTANTS', '$log', '$rootScope', 'UserService', 'ProfileService'];

function HeaderController($state, TcAuthService, CONSTANTS, $log, $rootScope, UserService, ProfileService, IntroService) {
function HeaderController($state, TcAuthService, CONSTANTS, $log, $rootScope, UserService, ProfileService) {
var vm = this;

vm.constants = CONSTANTS;
Expand Down Expand Up @@ -89,8 +89,5 @@
$state.go('home');
});
};

// Intro data
vm.introOptions = IntroService.getIntroData($state.$current.name);
}
})();
23 changes: 15 additions & 8 deletions app/layout/header/header.jade
Original file line number Diff line number Diff line change
@@ -1,53 +1,60 @@
// Header container
.header-wrapper(ng-class="{'autocomplete': main.searchTerm.length > 0}")
// Main header element
div(ng-intro-options="vm.introOptions", ng-intro-method="launchIntro")
header.top-header
a.logo-link(href="/")
// Header content visible on small screens
.show-small.mobile-heading
span.tc-text-logo(ng-if="main.menuVisible") [ topcoder ]

button.btn-open-menu(type="button", ng-if="!main.menuVisible", ng-click="main.menuVisible = true") Menu

button.btn-close-menu(type="button", ng-if="main.menuVisible", ng-click="main.menuVisible = false")

// User link (profile or join)
a(ui-sref="profile.about({userHandle: vm.userHandle})", ng-switch="vm.isAuth" class="user-link" data-ng-if="!main.menuVisible")
img(ng-switch-when="true", class="user-avatar", ng-src="{{vm.profile.photoURL}}")

span(ng-switch-when="false" class="btn-link") JOIN

// main menu
ul.main-menu
// search container
li.menu-item.search-wrapper
.menu-item-header.show-large #[button.btn-expand-search.search-icon(type="button")]

.submenu
input(type="text" placeholder="find people" ng-model="vm.searchTerm" ng-keyup="vm.checkSubmit($event)")
// Suggestion list container
// ul.suggestion-list(ng-if="main.searchTerm.length > 0")
// li(ng-repeat="suggestion in main.suggestions | filter:main.searchTerm | limitTo:5")
// li(ng-repeat="suggestion in main.suggestions | filter:main.searchTerm | limitTo:5")
// a(href="javascript:;" class="menu-link") {{suggestion}}

// user menu
li.menu-item.link-group.user-menu(ng-switch="vm.isAuth", ng-class="{'anonymous-menu': !vm.isAuth}")
// links for logged in user
div(ng-switch-when="true")
.menu-item-header
span(ui-sref="profile.about({userHandle: vm.userHandle})")
img(class="user-avatar", ng-src="{{vm.profile.photoURL}}")

span.username {{vm.userHandle}}

a.btn-link.btn-edit-profile.show-small(ui-sref="settings.profile") EDIT

ul.submenu
header-menu-item(ng-repeat="item in vm.userMenu" item="item")

li.submenu-item
a.menu-link(ng-click="vm.logout(); main.menuVisible = vm.isAuth = false")
img.menu-icon(ng-src="/images/nav/logout.svg")
.menu-text LOG OUT

// links for anonymous user
.menu-item-header(ng-switch-when="false")
a.btn-link(ui-sref="register") REGISTER

a.btn-link.secondary-link(ui-sref="login") LOGIN
a(ng-click="launchIntro();", ng-show="!!vm.introOptions") Intro

//- a(ng-click="launchIntro();", ng-show="!!vm.introOptions") Intro

li.menu-item.link-group(ng-repeat="(menu, items) in vm.menuLinks")
.menu-item-header {{menu}}

ul.submenu
header-menu-item(ng-repeat="item in items" item="item")
2 changes: 1 addition & 1 deletion app/layout/layout.module.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(function() {
'use strict';

var dependencies = ['angular-intro'];
var dependencies = [];

angular.module('tc.layout', dependencies);

Expand Down
1 change: 1 addition & 0 deletions app/my-challenges/my-challenges.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@

return ChallengeService.getUserChallenges(handle, params)
.then(function(challenges){
ChallengeService.processActiveDevDesignChallenges(challenges);
if (challenges.length > 0) {
vm.myChallenges = challenges;
vm.userHasChallenges = true;
Expand Down
2 changes: 1 addition & 1 deletion app/my-dashboard/my-challenges/my-challenges.jade
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ section.hasChallenges(ng-if="vm.userHasChallenges && !vm.loading", ng-class="{ '

challenge-tile(ng-repeat="challenge in vm.myChallenges | orderBy:registrationEndDate:true", challenge="challenge", view="vm.challengeView", ng-class="vm.challengeView + '-view'")

.my-challenges-links(ng-if="vm.userHasChallenges && !vm.loading")
.my-challenges-links(id="viewAllChallenges", ng-if="vm.userHasChallenges && !vm.loading")
a(ui-sref="my-challenges({status: 'active'})") View All Active Challenges

a(ui-sref="my-challenges({status: 'completed'})") View All Past Challenges
2 changes: 1 addition & 1 deletion app/my-dashboard/programs/programs.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
orderBy: 'submissionEndDate'
}),
ChallengeService.getChallenges({
filter: "technologies=ios,swift&status=active",
filter: "platforms=ios&technologies=swift&status=active",
limit: 3,
offset: 0,
orderBy: 'submissionEndDate'
Expand Down
2 changes: 1 addition & 1 deletion app/my-dashboard/programs/programs.jade
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ section.ios(ng-hide="vm.loading")
.info-links
a(ng-click="vm.registerUser()") Participate

a(ng-href="ios.{{DOMAIN}}") Learn More
a(ng-href="https://ios.{{DOMAIN}}", target="_blank") Learn More

.registered(ng-show="vm.registered")
.badge-and-challenges
Expand Down
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy