From 3a4e2a8fbe67c0cdf57ff9124548cebb05db4d2e Mon Sep 17 00:00:00 2001 From: Igor Argentovsky Date: Wed, 24 Feb 2016 17:16:32 +0300 Subject: [PATCH] some code fixes and Merchant URL to support asset payments --- app/images/loading.gif | Bin 0 -> 47790 bytes app/index.html | 3 +- app/partials/merchant-terminal.html | 44 ++++---- .../transaction/controllers/transaction.js | 3 +- .../transaction/transactions/assets.js | 4 +- .../transaction/transactions/payment.js | 2 +- app/scripts/controllers/merchant-terminal.js | 99 +++++++++++++----- bower.json | 3 +- 8 files changed, 99 insertions(+), 59 deletions(-) create mode 100644 app/images/loading.gif diff --git a/app/images/loading.gif b/app/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..97e31f401525972cda8936bdf4f2cc74c5d93599 GIT binary patch literal 47790 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 + @@ -594,4 +595,4 @@ - \ No newline at end of file + diff --git a/app/partials/merchant-terminal.html b/app/partials/merchant-terminal.html index f6da4cd4..a947d8ce 100644 --- a/app/partials/merchant-terminal.html +++ b/app/partials/merchant-terminal.html @@ -27,44 +27,38 @@

Merchant terminal

-

Amount {{amountNXT}} {{symbol}}

-

-

+

+ +
+
+

Amount {{amountNXT}} {{asset.name || symbol}}

- +
-
{{recipientName}}
{{paramRecipient}}
{{paramRecipient}} -
- +
-

-

- -
{{paramDescription}}
+ {{paramDescription}}
-

-

- -
{{paramMessage}}
+ {{paramMessage}}
-

-

- -   Pay - - - -    -

+

+ +   Pay + + + +    +

+
diff --git a/app/plugins/transaction/controllers/transaction.js b/app/plugins/transaction/controllers/transaction.js index 7a208994..553a672a 100644 --- a/app/plugins/transaction/controllers/transaction.js +++ b/app/plugins/transaction/controllers/transaction.js @@ -25,7 +25,6 @@ var module = angular.module('fim.base'); module.controller('TransactionCreateModalController', function(items, $modalInstance, $scope, nxt, modals, $sce, $q, plugins, i18n, $timeout, accountsService, $rootScope, Emoji, AccountAutocompleteProvider, AssetAutocompleteProvider) { - $scope.sendSuccess = false; $scope.show = {}; $scope.show.advanced = false; @@ -392,4 +391,4 @@ module.controller('TransactionCreateModalController', function(items, $modalInst } }); -})(); \ No newline at end of file +})(); diff --git a/app/plugins/transaction/transactions/assets.js b/app/plugins/transaction/transactions/assets.js index c6f59abe..a5c6967f 100644 --- a/app/plugins/transaction/transactions/assets.js +++ b/app/plugins/transaction/transactions/assets.js @@ -255,7 +255,7 @@ module.run(function (plugins, modals, $q, $rootScope, nxt, OrderEntryProvider, U } return plugin.create(angular.extend(args, { title: 'Buy Asset', - message: 'Place buy order for asset', + message: args.description || 'Place buy order for asset', requestType: 'placeBidOrder', createArguments: function (items, fields) { var decimals = fields.asset.asset ? fields.asset.asset.decimals : fields.decimals.value; @@ -630,4 +630,4 @@ module.run(function (plugins, modals, $q, $rootScope, nxt, OrderEntryProvider, U } }); }); -})(); \ No newline at end of file +})(); diff --git a/app/plugins/transaction/transactions/payment.js b/app/plugins/transaction/transactions/payment.js index 8cced732..6f94681b 100644 --- a/app/plugins/transaction/transactions/payment.js +++ b/app/plugins/transaction/transactions/payment.js @@ -113,4 +113,4 @@ module.run(function (plugins, modals, $q, $rootScope, nxt, UserService) { }); -})(); \ No newline at end of file +})(); diff --git a/app/scripts/controllers/merchant-terminal.js b/app/scripts/controllers/merchant-terminal.js index cc9f5096..0b3bf874 100644 --- a/app/scripts/controllers/merchant-terminal.js +++ b/app/scripts/controllers/merchant-terminal.js @@ -25,19 +25,21 @@ var module = angular.module('fim.base'); module.config(function($routeProvider) { - $routeProvider.when('/merchant/:recipient?/:amountNQT?/:deadline?/:description?/:message?', { + $routeProvider.when('/merchant/:recipient?/:amountNQT?/:deadline?/:description?/:message?/:assetId?/', { templateUrl: 'partials/merchant-terminal.html', controller: 'MerchantTerminalController' }); }); -module.controller('MerchantTerminalController', function ($scope, $rootScope, nxt, $routeParams, plugins, $location) { +module.controller('MerchantTerminalController', function ($scope, $rootScope, nxt, $routeParams, plugins) { $scope.paramRecipient = $routeParams.recipient; $scope.paramAmountNQT = $routeParams.amountNQT; $scope.paramDeadline = $routeParams.deadline; $scope.paramDescription = $routeParams.description; $scope.paramMessage = $routeParams.message; + $scope.assetId = $routeParams.assetId; + $scope.amountNXT = nxt.util.convertToNXT($scope.paramAmountNQT); $scope.recipientName = ''; @@ -46,36 +48,79 @@ module.controller('MerchantTerminalController', function ($scope, $rootScope, nx var api = nxt.get($scope.paramRecipient); $scope.symbol = api.engine.symbol; - api.engine.socket().getAccount({account: $scope.paramRecipient}).then( - function (data) { - $scope.$evalAsync(function () { - $scope.recipientName = data.accountName||data.accountEmail; - if ($scope.recipientName == $scope.paramRecipient) { - $scope.recipientName = ''; - } + + $scope.loading = true; + async.parallel([ + function(cb){ + if (!$scope.assetId) return cb() + api.engine.socket().callAPIFunction({requestType:'getAsset', asset: $scope.assetId}).then(function (data) { + $scope.asset = data; + console.log(data) + cb() }); + }, + function(cb){ + api.engine.socket().getAccount({account: $scope.paramRecipient}).then( + function (data) { + $scope.$evalAsync(function () { + $scope.recipientName = data.accountName||data.accountEmail; + if ($scope.recipientName == $scope.paramRecipient) { + $scope.recipientName = ''; + } + cb() + }); + } + ); } - ); + ],function(){ + $scope.loading = false; + }); + $scope.payNow = function () { - var args = { - recipient: $scope.paramRecipient, - amountNXT: nxt.util.convertNQT($scope.paramAmountNQT, 8), - deadline: $scope.paramDeadline - }; - if ($scope.paramMessage) { - args.txnMessage = $scope.paramMessage; - args.txnMessageType = 'to_recipient'; - } - $rootScope.executeTransaction('sendMoney', args).then( - function (items) { - if (items) { - $scope.$evalAsync(function () { - $scope.success = true; - }); + var args = {}; + if ($scope.asset){ + args = { + asset: $scope.asset.asset, + recipient: $scope.paramRecipient, + quantity:nxt.util.convertNQT($scope.paramAmountNQT, 8) + }; + if ($scope.paramMessage) { + args.txnMessage = $scope.paramMessage; + args.txnMessageType = 'to_recipient'; + } + + $rootScope.executeTransaction('transferAsset', args).then( + function (items) { + console.log(items) + if (items) { + $scope.$evalAsync(function () { + $scope.success = true; + }); + } } + ); + }else{ + args = { + recipient: $scope.paramRecipient, + amountNXT: nxt.util.convertNQT($scope.paramAmountNQT, 8), + deadline: $scope.paramDeadline + }; + if ($scope.paramMessage) { + args.txnMessage = $scope.paramMessage; + args.txnMessageType = 'to_recipient'; } - ); + + $rootScope.executeTransaction('sendMoney', args).then( + function (items) { + if (items) { + $scope.$evalAsync(function () { + $scope.success = true; + }); + } + } + ); + } } $scope.signin = function () { @@ -83,4 +128,4 @@ module.controller('MerchantTerminalController', function ($scope, $rootScope, nx } }); -})(); \ No newline at end of file +})(); diff --git a/bower.json b/bower.json index 5a61578b..3b636208 100644 --- a/bower.json +++ b/bower.json @@ -26,7 +26,8 @@ "angular-nvd3": "1.0.0-beta", "zeroclipboard": "2.2.0", "ng-clip": "0.2.6", - "dexie": "1.1.0" + "dexie": "1.1.0", + "async": "latest" }, "devDependencies": { "angular-scenario": "1.4.3"