Preferences

This commit is contained in:
Gustavo Maximiliano Cortez 2015-09-07 11:14:09 -03:00
parent 9379e6e574
commit cb6d086eeb
No known key found for this signature in database
GPG Key ID: 15EDAD8D9F2EB1AF
7 changed files with 336 additions and 118 deletions

View File

@ -8,7 +8,7 @@
<div class="content glidera p20v" ng-controller="glideraController as glidera">
<div class="onGoingProcess" ng-show="glidera.loading">
<div class="onGoingProcess" ng-show="glidera.loading || index.glideraLoading">
<div class="onGoingProcess-content" ng-style="{'background-color':index.backgroundColor}">
<div class="spinner">
<div class="rect1"></div>
@ -17,14 +17,16 @@
<div class="rect4"></div>
<div class="rect5"></div>
</div>
<span translate>Connecting to Glidera...</span>
<span ng-show="glidera.loading" translate>Linking to Glidera...</span>
<span ng-show="index.glideraLoading">{{index.glideraLoading|translate}}</span>
</div>
</div>
<div class="text-center m10b">
<img src="img/glidera-logo.png">
</div>
<div ng-if="!index.glideraToken" class="row">
<div ng-if="!index.glideraToken && !index.glideraLoading" class="row">
<div class="columns" ng-init="showOauthForm = false">
<div class="text-center" ng-show="!showOauthForm">
<p translate>You can buy and sell Bitcoin with a US bank account directly in Copay.</p>

View File

@ -1,4 +1,4 @@
<a ng-click="index.setTab(item)" ng-class="{'active': index.tab == item.link}" id="menu-{{item.link}}">
<a ng-click="index.setTab(item.link)" ng-class="{'active': index.tab == item.link}" id="menu-{{item.link}}">
<i class="size-24 {{item.icon}} db"></i>
<div class="size-10 tu">
{{ item.title|translate }}
@ -6,4 +6,4 @@
{{ index.pendingTxProposalsCountForUs }}
</span>
</div>
</a>
</a>

View File

@ -0,0 +1,15 @@
<div class="m20tp text-center">
<div class="row">
<h1 class="text-center m20b" translate>Revoke Glidera Token</h1>
<div class="large-6 medium-6 small-6 columns">
<button class="button warning expand round" ng-click="ok()">
<i class="fi-trash"></i> <span translate>Yes</span>
</button>
</div>
<div class="large-6 medium-6 small-6 columns">
<button class="button light-gray expand outline round" ng-click="cancel()">
<i class="fi-x"></i> <span class="tu" translate>Cancel</span>
</button>
</div>
</div>
</div>

View File

@ -1,81 +1,266 @@
<div
class="topbar-container"
ng-include="'views/includes/topbar.html'"
ng-init="titleSection='Preferences Glidera'; goBackToState = 'glidera'">
ng-init="titleSection='Preferences'; goBackToState = 'glidera'">
</div>
<div class="content preferences p20v" ng-controller="preferencesGlideraController as glidera">
<div class="content preferences" ng-controller="preferencesGlideraController as glidera">
<div class="row" ng-init="glidera.init(index.glideraToken)">
<div class="large-12 columns">
<ul ng-if="index.glideraToken" class="no-bullet m0 size-14">
<h4 class="title m0" translate>Permissions</h4>
<li class="line-b p20">
<span translate>Email</span>
<span class="right text-gray">
{{index.glideraPermissions.view_email_address}}
</span>
</li>
<li class="line-b p20">
<span translate>Personal Information</span>
<span class="right text-gray">
{{index.glideraPermissions.personal_info}}
</span>
</li>
<li class="line-b p20">
<span translate>Buy/Sell</span>
<span class="right text-gray">
{{index.glideraPermissions.transact}}
</span>
</li>
<li class="line-b p20">
<span translate>Transaction History</span>
<span class="right text-gray">
{{index.glideraPermissions.transaction_history}}
</span>
</li>
</ul>
<div ng-show="index.glideraToken">
<a
class="button warning"
ng-click="glidera.revokeToken()">
Revoke Token
</a>
<ul ng-if="index.glideraPermissions.view_email_address"
ng-init="glidera.getEmail(index.glideraToken)"
class="no-bullet m0 size-14">
<h4 class="title m0" translate>Email</h4>
<li class="line-b p20">
<span translate>Email</span>
<span class="right text-gray">
{{glidera.email.email}}
</span>
</li>
<li class="line-b p20">
<span translate>Active</span>
<span class="right text-gray">
{{glidera.email.userEmailIsSetup}}
</span>
</li>
</ul>
<h2>Permissions</h2>
<ul>
<li>personal_info: {{glidera.permission.personal_info}}
<li>transact: {{glidera.permission.transact}}
<li>transaction_history: {{glidera.permission.transaction_history}}
<li>view_email_address: {{glidera.permission.view_email_address}}
</ul>
<ul ng-if="index.glideraPermissions.personal_info"
ng-init="glidera.getPersonalInfo(index.glideraToken)"
class="no-bullet m0 size-14">
<h4 class="title m0" translate>Personal Information</h4>
<h2>Email</h2>
<ul>
<li>Email: {{glidera.email.email}}
<li>userEmailIsSetup: {{glidera.email.userEmailIsSetup}}
</ul>
<li class="line-b p20">
<span translate>First Name</span>
<span class="right text-gray">
{{glidera.personalInfo.firstName}}
</span>
</li>
<li class="line-b p20">
<span translate>Middle Name</span>
<span class="right text-gray">
{{glidera.personalInfo.middleName}}
</span>
</li>
<li class="line-b p20">
<span translate>Last Name</span>
<span class="right text-gray">
{{glidera.personalInfo.lastName}}
</span>
</li>
<li class="line-b p20">
<span translate>Birth Date</span>
<span class="right text-gray">
{{glidera.personalInfo.birthDate}}
</span>
</li>
<li class="line-b p20">
<span translate>Address 1</span>
<span class="right text-gray">
{{glidera.personalInfo.address1}}
</span>
</li>
<li class="line-b p20">
<span translate>Address 2</span>
<span class="right text-gray">
{{glidera.personalInfo.address2}}
</span>
</li>
<li class="line-b p20">
<span translate>City</span>
<span class="right text-gray">
{{glidera.personalInfo.city}}
</span>
</li>
<li class="line-b p20">
<span translate>State</span>
<span class="right text-gray">
{{glidera.personalInfo.state}}
</span>
</li>
<li class="line-b p20">
<span translate>ZIP Code</span>
<span class="right text-gray">
{{glidera.personalInfo.zipCode}}
</span>
</li>
<li class="line-b p20">
<span translate>Country</span>
<span class="right text-gray">
{{glidera.personalInfo.countryCode}}
</span>
</li>
<li class="line-b p20">
<span translate>Occupation</span>
<span class="right text-gray">
{{glidera.personalInfo.occupation}}
</span>
</li>
<li class="line-b p20">
<span translate>Basic Information State</span>
<span class="right text-gray">
{{glidera.personalInfo.basicInfoState}}
</span>
</li>
</ul>
<h2>Personal Info</h2>
<ul>
<li>first name: {{glidera.personalInfo.firstName}}
<li>middleName: {{glidera.personalInfo.middleName}}
<li>last name: {{glidera.personalInfo.lastName}}
<li>birthDate: {{glidera.personalInfo.birthDate}}
<li>address1: {{glidera.personalInfo.address1}}
<li>address2: {{glidera.personalInfo.address2}}
<li>city: {{glidera.personalInfo.city}}
<li>state: {{glidera.personalInfo.state}}
<li>zipCode: {{glidera.personalInfo.zipCode}}
<li>countryCode: {{glidera.personalInfo.countryCode}}
<li>occupation: {{glidera.personalInfo.occupation}}
<li>basicInfoState: {{glidera.personalInfo.basicInfoState}}
</ul>
<ul ng-if="index.glideraToken" ng-init="glidera.getStatus(index.glideraToken)"
class="no-bullet m0 size-14">
<h4 class="title m0" translate>Status</h4>
<h2>Status</h2>
<ul>
<li>userCanTransact: {{glidera.status.userCanTransact}}
<li>userCanBuy: {{glidera.status.userCanBuy}}
<li>userCanSell: {{glidera.status.userCanSell}}
<li>userEmailIsSetup: {{glidera.status.userEmailIsSetup}}
<li>userPhoneIsSetup: {{glidera.status.userPhoneIsSetup}}
<li>userBankAccountIsSetup: {{glidera.status.userBankAccountIsSetup}}
<li>personalInfoState: {{glidera.status.personalInfoState}}
<li>bankAccountState: {{glidera.status.bankAccountState}}
<li>country: {{glidera.status.country}}
</ul>
<li class="line-b p20">
<span translate>Buy/Sell</span>
<span class="right text-gray">
{{glidera.status.userCanTransact}}
</span>
</li>
<h2>Limits</h2>
<ul>
<li>dailyBuy: {{glidera.limits.dailyBuy}}
<li>dailySell: {{glidera.limits.dailySell}}
<li>monthlyBuy: {{glidera.limits.monthlyBuy}}
<li>monthlySell: {{glidera.limits.monthlySell}}
<li>dailyBuyRemaining: {{glidera.limits.dailyBuyRemaining}}
<li>dailySellRemaining: {{glidera.limits.dailySellRemaining}}
<li>monthlyBuyRemaining: {{glidera.limits.monthlyBuyRemaining}}
<li>monthlySellRemaining: {{glidera.limits.monthlySellRemaining}}
<li>currency: {{glidera.limits.currency}}
<li>transactDisabledPendingFirstTransaction: {{glidera.limits.transactDisabledPendingFirstTransaction}}
</ul>
</div>
<li class="line-b p20">
<span translate>Buy</span>
<span class="right text-gray">
{{glidera.status.userCanBuy}}
</span>
</li>
<li class="line-b p20">
<span translate>Sell</span>
<span class="right text-gray">
{{glidera.status.userCanSell}}
</span>
</li>
<li class="line-b p20">
<span translate>Email Is Setup</span>
<span class="right text-gray">
{{glidera.status.userEmailIsSetup}}
</span>
</li>
<li class="line-b p20">
<span translate>Phone Is Setup</span>
<span class="right text-gray">
{{glidera.status.userPhoneIsSetup}}
</span>
</li>
<li class="line-b p20">
<span translate>Bank Account Is Setup</span>
<span class="right text-gray">
{{glidera.status.userBankAccountIsSetup}}
</span>
</li>
<li class="line-b p20">
<span translate>Personal Information State</span>
<span class="right text-gray">
{{glidera.status.personalInfoState}}
</span>
</li>
<li class="line-b p20">
<span translate>Bank Account State</span>
<span class="right text-gray">
{{glidera.status.bankAccountState}}
</span>
</li>
<li class="line-b p20">
<span translate>Country</span>
<span class="right text-gray">
{{glidera.status.country}}
</span>
</li>
</ul>
</div>
</div>
<ul ng-if="index.glideraToken" ng-init="glidera.getLimits(index.glideraToken)"
class="no-bullet m0 size-14">
<h4 class="title m0" translate>Limits</h4>
<li class="line-b p20">
<span translate>Daily Buy</span>
<span class="right text-gray">
{{glidera.limits.dailyBuy}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Daily Sell</span>
<span class="right text-gray">
{{glidera.limits.dailySell}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Monthly Buy</span>
<span class="right text-gray">
{{glidera.limits.monthlyBuy}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Monthly Sell</span>
<span class="right text-gray">
{{glidera.limits.monthlySell}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Daily Buy Remaining</span>
<span class="right text-gray">
{{glidera.limits.dailyBuyRemaining}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Daily Sell Remaining</span>
<span class="right text-gray">
{{glidera.limits.dailySellRemaining}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Monthly Buy Remaining</span>
<span class="right text-gray">
{{glidera.limits.monthlyBuyRemaining}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Monthly Sell Remaining</span>
<span class="right text-gray">
{{glidera.limits.monthlySellRemaining}} {{glidera.limits.currency}}
</span>
</li>
<li class="line-b p20">
<span translate>Buy/Sell Disabled (pending first transaction)</span>
<span class="right text-gray">
{{glidera.limits.transactDisabledPendingFirstTransaction}}
</span>
</li>
</ul>
<ul ng-if="index.glideraToken"
class="no-bullet m0 size-14">
<h4 class="title m0" translate>Account</h4>
<li class="line-b p20" ng-click="glidera.revokeToken()">
<i class="icon-arrow-right3 size-24 right text-gray"></i>
<span class="text-warning" translate>Revoke Token</span>
</li>
</ul>
</div>
<div class="extra-margin-bottom"></div>

View File

@ -114,6 +114,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
self.setSpendUnconfirmed();
self.glideraToken = null;
self.glideraError = null;
self.glideraPermissions = null;
self.glideraEmail = null;
self.glideraPersonalInfo = null;
@ -152,18 +153,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
self.setTab = function(tab, reset, tries) {
tries = tries || 0;
// check if the whole menu item passed
if (typeof tab == 'object') {
if (tab.open) {
if (tab.link) {
self.tab = tab.link;
}
tab.open();
return;
} else {
return self.setTab(tab.link);
}
}
if (self.tab === tab && !reset)
return;
@ -173,30 +162,27 @@ angular.module('copayApp.controllers').controller('indexController', function($r
}, 300);
}
if (!self.tab || !$state.is('walletHome'))
if (!self.tab)
self.tab = 'walletHome';
go.path('walletHome', function() {
if (document.getElementById(self.tab)) {
document.getElementById(self.tab).className = 'tab-out tab-view ' + self.tab;
var old = document.getElementById('menu-' + self.tab);
if (old) {
old.className = '';
}
if (document.getElementById(self.tab)) {
document.getElementById(self.tab).className = 'tab-out tab-view ' + self.tab;
var old = document.getElementById('menu-' + self.tab);
if (old) {
old.className = '';
}
}
if (document.getElementById(tab)) {
document.getElementById(tab).className = 'tab-in tab-view ' + tab;
var newe = document.getElementById('menu-' + tab);
if (newe) {
newe.className = 'active';
}
if (document.getElementById(tab)) {
document.getElementById(tab).className = 'tab-in tab-view ' + tab;
var newe = document.getElementById('menu-' + tab);
if (newe) {
newe.className = 'active';
}
}
self.tab = tab;
$rootScope.$emit('Local/TabChanged', tab);
});
self.tab = tab;
$rootScope.$emit('Local/TabChanged', tab);
};
@ -864,13 +850,15 @@ angular.module('copayApp.controllers').controller('indexController', function($r
getToken(function(err, accessToken) {
if (err || !accessToken) return;
else {
self.glideraToken = accessToken;
glideraService.getAccessTokenPermissions(self.glideraToken, function(err, p) {
self.glideraLoading = gettext('Connecting to Glidera...');
glideraService.getAccessTokenPermissions(accessToken, function(err, p) {
self.glideraLoading = null;
if (err) {
self.glideraError = err;
$log.error(err);
}
else {
self.glideraToken = accessToken;
self.glideraPermissions = p;
self.updateGlidera(accessToken, p);
}
@ -883,17 +871,23 @@ angular.module('copayApp.controllers').controller('indexController', function($r
if (!accessToken || !permissions) return;
if (permissions.view_email_address) {
self.glideraLoadingEmail = gettext('Getting Glidera Email...');
glideraService.getEmail(accessToken, function(err, data) {
self.glideraLoadingEmail = null;
self.glideraEmail = data.email;
});
}
if (permissions.personal_info) {
self.glideraLoadingPersonalInfo = gettext('Getting Glidera Personal Information...');
glideraService.getPersonalInfo(accessToken, function(err, data) {
self.glideraLoadingPersonalInfo = null;
self.glideraPersonalInfo = data;
});
}
if (permissions.transaction_history) {
self.glideraLoadingHistory = gettext('Getting Glidera transactions...');
glideraService.getTransactions(accessToken, function(err, data) {
self.glideraLoadingHistory = null;
self.glideraTxs = data;
});
}

View File

@ -1,37 +1,60 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesGlideraController',
function($scope, $timeout, profileService, applicationService, glideraService, storageService) {
function($scope, $modal, $timeout, profileService, applicationService, glideraService, storageService) {
this.init = function(token) {
this.getEmail = function(token) {
var self = this;
glideraService.getAccessTokenPermissions(token, function(error, permission) {
self.permission = permission;
});
glideraService.getEmail(token, function(error, email) {
self.email = email;
glideraService.getEmail(token, function(error, data) {
self.email = data;
});
};
this.getPersonalInfo = function(token) {
var self = this;
glideraService.getPersonalInfo(token, function(error, info) {
self.personalInfo = info;
});
};
glideraService.getStatus(token, function(error, status) {
self.status = status;
this.getStatus = function(token) {
var self = this;
glideraService.getStatus(token, function(error, data) {
self.status = data;
});
};
this.getLimits = function(token) {
var self = this;
glideraService.getLimits(token, function(error, limits) {
self.limits = limits;
});
};
};
this.revokeToken = function() {
var fc = profileService.focusedClient;
storageService.removeGlideraToken(fc.credentials.network, function() {
$timeout(function() {
applicationService.restart();
}, 100);
var ModalInstanceCtrl = function($scope, $modalInstance) {
$scope.ok = function() {
$modalInstance.close(true);
};
$scope.cancel = function() {
$modalInstance.dismiss();
};
};
var modalInstance = $modal.open({
templateUrl: 'views/modals/glidera-confirmation.html',
windowClass: 'full',
controller: ModalInstanceCtrl
});
modalInstance.result.then(function(ok) {
if (ok) {
storageService.removeGlideraToken(fc.credentials.network, function() {
$timeout(function() {
applicationService.restart();
}, 100);
});
}
});
};

View File

@ -321,7 +321,6 @@ angular
.state('preferencesGlidera', {
url: '/preferencesGlidera',
templateUrl: 'views/preferencesGlidera.html',
walletShouldBeComplete: true,
needProfile: true,
views: {