From 49cd19bd1b2f821776a986fd7be11c32eaccffcd Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 2 Sep 2015 16:02:40 -0300 Subject: [PATCH] Better look and feel --- public/img/glidera-logo.png | Bin 0 -> 8727 bytes public/views/glidera.html | 122 +++++++++++++++----- public/views/modals/glidera-tx-details.html | 60 ++++++++++ public/views/preferencesGlidera.html | 15 --- public/views/walletHome.html | 5 +- src/js/controllers/glidera.js | 59 +++++++++- src/js/controllers/index.js | 15 ++- src/js/controllers/preferencesGlidera.js | 18 +-- src/js/services/glideraService.js | 16 ++- 9 files changed, 240 insertions(+), 70 deletions(-) create mode 100644 public/img/glidera-logo.png create mode 100644 public/views/modals/glidera-tx-details.html diff --git a/public/img/glidera-logo.png b/public/img/glidera-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..930cdf4a9ea1e6a0a759a8b16dd8a2cac898545c GIT binary patch literal 8727 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%0A< z=!a7K@PBOYdf#hZmkq^tfG-fASCQj?q^|F6{OT#HT!B7qTD`ip2MaN*0WnHv90A_qo_m^fa#Q4qo6c?8LB*_!z$p=RT|(VN zFmeOoMk15ogr0h-?N^QE_tckMgcF27UefHv%&Bwq5lQPt2Cf9RSfOtiu$u6ykbFfl z@FX39aq|F+cpP9~dFAl_1=V*}ht3cu?T9l53Om{#d!=pg+e!8W)(4K(`bO6oOX@b) zmz)os^I1>^+b+dPzd6KZpIU`iqCnqmH@Zh>Iyn4jUF1BB16~@uzsa3rzdAH_3z@x) z=-y0)wr6tEb03Zid>DE0vjoG#qc8k%r=CjCgcnjd4(#B-!0_j9yWXdko!0!5t%uiW z{v+aDn_TYHs2EIfS{?P5Wy@f%Q(xx247G!zapVclv1E>yy%75R(z`0A|A}%JYO9(Z?&t5KVxPR-B zC*gAe3sf9UjzC=zE{x#guXjA|SI#O4EcYoj*sw~OT`~O)Q`(Je04M@#p9ub2p}Wph?pLm=W9D^76LD zi{@W?;W=2}oi^h)J9@5CLM>!GT*l%XwM7tWLzQSz;kHCN10M6rhy-{>BG5|HvZn8c zeKQd!eud3VJeF_Xxt*%u8I6&9hphX@@#8WsYw=B2{6-P?is2rj!Rbn_3O5^d2KQin zK?(Sj&Mps}Jh%Ki9jVV?lh@mjs5>1c#32{ukE7-vC60bHHo#4Ojf|Dz8ync!IHG@8 z8Syuj|22-oOq`+>6u^xnEjN^1eCW_!c?yRC!5VQ`-uS|SjX~{nzcvGBL6Ul_$@bGi zo)(KlBd?T8mM8I7-$jg=Lh$?re7eUz=M&Un{NQ%^*!r~?a%dio13`4W3ho2-`;Yx{ z^K&m?O;R3Qy0T$&P`)%=CJND=Y<)lZR1t$iA${J0s!g#BMOk1kcYe&ccsmlXPt3x;9 z(0oS8pe!N}6?`$6DYo=Iyr=J<_x3%A z`SF2)?_v55mF^q(SCPkiJub@!Lc;i6bpHFo;o$HHUVMNmNQG`gVq|fk?MPtunaz*y z8+`b%?`}W`wjJ&2YSJsur1$XG`(E56uNwvOi}e<^PGWzynPO{7Car#Iv9 zFph@(6!s5-@+zepW+E9>mXK|H+<;gR@i*rY|Jt~$z9d(EK*wKgf zOkKx-Wq12RboNbH3d&%M48l^Sdonc)ex5|qmel^QhREdyM>m@KcSRA}>gC`3;pG!RPWl@qI!Axg*yJ zeVow1pHc()ru$FH`vkB5;TkvrzW?C>_;XhOzX4S5!bgr^70mzu002ovPDHLkV1n{G B?>+zk literal 0 HcmV?d00001 diff --git a/public/views/glidera.html b/public/views/glidera.html index 4ef91bcb6..7f574b866 100644 --- a/public/views/glidera.html +++ b/public/views/glidera.html @@ -6,43 +6,105 @@ -
-
-
+
- - Connect to Glidera +
+
+
+
+
+
+
+
+
+ Connecting to Glidera... +
+
+ +
+ +
+
+
+ +
+ {{index.glideraEmail}}
+ + Preferences +
-
- Connected to Glidera - Preferences - -
- - -
- -

Transactions

-
    -
  • - transactionUuid: {{tx.transactionUuid}}
    - transactionDate: {{tx.transactionDate}}
    - type: {{tx.type}}
    - price: {{tx.price}}
    - subtotal: {{tx.subtotal}}
    - fees: {{tx.fees}}
    - total: {{tx.total}}
    - currency: {{tx.currency}}
    - estimatedDeliveryDate: {{tx.estimatedDeliveryDate}}
    - transactionHash: {{tx.transactionHash}}
    - status: {{tx.status}}
    -
  • -
- +

Connected

+
    +
  • + Buy + + + +
  • +
  • + Sell + + + +
  • +
+

Activity

+
+
+ Bought + Sold
+
+ + {{tx.subtotal}} {{tx.currency}} + +
+
+
+ +
+
+
+ +
+
+ Completed + Pending + Error +
+
diff --git a/public/views/modals/glidera-tx-details.html b/public/views/modals/glidera-tx-details.html new file mode 100644 index 000000000..02135444a --- /dev/null +++ b/public/views/modals/glidera-tx-details.html @@ -0,0 +1,60 @@ + + + diff --git a/public/views/preferencesGlidera.html b/public/views/preferencesGlidera.html index 58b2dcc58..31b8467a9 100644 --- a/public/views/preferencesGlidera.html +++ b/public/views/preferencesGlidera.html @@ -9,21 +9,6 @@
-
- - Get OAuth Code - - -
- - -
-
-
- - Glidera + + Glidera diff --git a/src/js/controllers/glidera.js b/src/js/controllers/glidera.js index 202f5490e..c55429de5 100644 --- a/src/js/controllers/glidera.js +++ b/src/js/controllers/glidera.js @@ -1,13 +1,68 @@ 'use strict'; angular.module('copayApp.controllers').controller('glideraController', - function(glideraService) { + function($scope, $timeout, $modal, profileService, configService, storageService, glideraService) { + + var config = configService.getSync().wallet.settings; + this.authenticateUrl = glideraService.getOauthCodeUrl(); - this.init = function(token) { + this.update = function(token) { var self = this; glideraService.getTransactions(token, function(error, txs) { self.txs = txs; }); + glideraService.getEmail(token, function(error, data) { + self.email = data.email; + }); + }; + + this.submitOauthCode = function(code) { + var fc = profileService.focusedClient; + var self = this; + this.loading = true; + $timeout(function() { + glideraService.getToken(code, function(error, data) { + if (data && data.access_token) { + storageService.setGlideraToken(fc.credentials.network, data.access_token, function() { + $scope.$emit('Local/GlideraTokenUpdated'); + $timeout(function() { + self.loading = false; + $scope.$apply(); + }, 100); + }); + } + }); + }, 100); + }; + + this.openTxModal = function(token, tx) { + var self = this; + var fc = profileService.focusedClient; + var ModalInstanceCtrl = function($scope, $modalInstance) { + $scope.tx = tx; + $scope.settings = config; + $scope.color = fc.backgroundColor; + + glideraService.getTransaction(token, tx.transactionUuid, function(error, tx) { + $scope.tx = tx; + }); + + $scope.cancel = function() { + $modalInstance.dismiss('cancel'); + }; + + }; + + var modalInstance = $modal.open({ + templateUrl: 'views/modals/glidera-tx-details.html', + windowClass: 'full animated slideInRight', + controller: ModalInstanceCtrl, + }); + + modalInstance.result.finally(function() { + var m = angular.element(document.getElementsByClassName('reveal-modal')); + m.addClass('slideOutRight'); + }); }; }); diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index bde992c7b..fe5b1e86a 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettextCatalog, gettext, amMoment, nodeWebkit, addonManager, feeService, isChromeApp, bwsError, utilService, $state) { +angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettextCatalog, gettext, amMoment, nodeWebkit, addonManager, feeService, isChromeApp, bwsError, utilService, $state, glideraService) { var self = this; self.isCordova = isCordova; self.onGoingProcess = {}; @@ -114,6 +114,8 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.setSpendUnconfirmed(); self.glideraToken = null; + self.glideraTxs = null; + self.glideraEmail = null; $timeout(function() { self.hasProfile = true; @@ -847,9 +849,18 @@ angular.module('copayApp.controllers').controller('indexController', function($r }; self.initGlidera = function() { + if (self.isShared) return; storageService.getGlideraToken(self.network, function(err, val) { if (err) return; - self.glideraToken = val; + else { + self.glideraToken = val; + glideraService.getTransactions(val, function(error, txs) { + self.glideraTxs = txs; + }); + glideraService.getEmail(val, function(error, data) { + self.glideraEmail = data.email; + }); + } }); }; diff --git a/src/js/controllers/preferencesGlidera.js b/src/js/controllers/preferencesGlidera.js index 5234f9b1a..0c2a73e9b 100644 --- a/src/js/controllers/preferencesGlidera.js +++ b/src/js/controllers/preferencesGlidera.js @@ -3,8 +3,6 @@ angular.module('copayApp.controllers').controller('preferencesGlideraController', function($scope, $timeout, profileService, go, glideraService, storageService) { - this.authenticateUrl = glideraService.getOauthCodeUrl(); - this.init = function(token) { var self = this; glideraService.getPermissions(token, function(error, permission) { @@ -26,21 +24,7 @@ angular.module('copayApp.controllers').controller('preferencesGlideraController' glideraService.getLimits(token, function(error, limits) { self.limits = limits; }); - }; - - this.submit = function(code) { - var fc = profileService.focusedClient; - glideraService.getToken(code, function(error, data) { - if (data && data.status == 200) { - storageService.setGlideraToken(fc.credentials.network, data.data.access_token, function() { - $scope.$emit('Local/GlideraTokenUpdated'); - $timeout(function() { - go.walletHome(); - }, 100); - }); - } - }); - }; + }; this.revokeToken = function() { var fc = profileService.focusedClient; diff --git a/src/js/services/glideraService.js b/src/js/services/glideraService.js index d1943ef64..478909423 100644 --- a/src/js/services/glideraService.js +++ b/src/js/services/glideraService.js @@ -34,7 +34,7 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l $http(req).then(function(data) { $log.info('Glidera Authorization Access Token: SUCCESS'); - return cb(null, data); + return cb(null, data.data); }, function(data) { $log.error('Glidera Authorization Access Token: ERROR ' + data.statusText); return cb(data.statusText); @@ -111,8 +111,20 @@ angular.module('copayApp.services').factory('glideraService', function($http, $l root.getTransactions = function(token, cb) { if (!token) return cb('Invalid Token'); $http(_get('/transaction', token)).then(function(data) { - $log.info('Glidera Transaction: SUCCESS'); + $log.info('Glidera Transactions: SUCCESS'); return cb(null, data.data.transactions); + }, function(data) { + $log.error('Glidera Transactions: ERROR ' + data.statusText); + return cb(data.statusText); + }); + }; + + root.getTransaction = function(token, txid, cb) { + if (!token) return cb('Invalid Token'); + if (!txid) return cb('TxId required'); + $http(_get('/transaction/' + txid, token)).then(function(data) { + $log.info('Glidera Transaction: SUCCESS'); + return cb(null, data.data); }, function(data) { $log.error('Glidera Transaction: ERROR ' + data.statusText); return cb(data.statusText);