wire slide to accept component to proposal accept screen

This commit is contained in:
Marty Alcala 2016-10-10 18:52:59 -04:00
commit 82ad31724b
4 changed files with 58 additions and 13 deletions

View file

@ -1,6 +1,6 @@
'use strict';
angular.module('copayApp.controllers').controller('txpDetailsController', function($scope, $rootScope, $timeout, $interval, $ionicModal, ongoingProcess, platformInfo, $ionicScrollDelegate, txFormatService, fingerprintService, bwcError, gettextCatalog, lodash, walletService, popupService) {
angular.module('copayApp.controllers').controller('txpDetailsController', function($scope, $rootScope, $timeout, $interval, $ionicModal, ongoingProcess, platformInfo, $ionicScrollDelegate, txFormatService, fingerprintService, bwcError, gettextCatalog, lodash, walletService, popupService, $state, $ionicHistory) {
var self = $scope.self;
var tx = $scope.tx;
var copayers = $scope.copayers;
@ -17,7 +17,7 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi
$scope.canSign = $scope.wallet.canSign() || $scope.wallet.isPrivKeyExternal();
$scope.color = $scope.wallet.color;
$scope.data = {};
$scope.hasClick = platformInfo.hasClick;
initActionList();
checkPaypro();
}
@ -66,17 +66,18 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi
}
var setSendError = function(msg) {
$scope.sendStatus = '';
var error = msg || gettextCatalog.getString('Could not send payment');
popupService.showAlert(gettextCatalog.getString('Error'), error);
}
$scope.sign = function() {
$scope.sign = function(onSendStatusChange) {
$scope.loading = true;
walletService.publishAndSign($scope.wallet, $scope.tx, function(err, txp) {
$scope.$emit('UpdateTx');
if (err) return setSendError(err);
$scope.close();
});
success();
}, onSendStatusChange);
};
function setError(err, prefix) {
@ -213,6 +214,32 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi
});
};
function statusChangeHandler(processName, showName, isOn) {
console.log('in statusChangeHandler', processName, showName, isOn);
console.log('$scope.wallet', $scope.wallet);
if(showName) {
$scope.sendStatus = showName;
}
}
function success() {
$scope.sendStatus = 'success';
$scope.$digest();
}
$scope.statusChangeHandler = statusChangeHandler;
$scope.onConfirm = function() {
$scope.sign(statusChangeHandler);
};
$scope.onSuccessConfirm = function() {
$ionicHistory.nextViewOptions({
disableAnimate: true
});
$scope.close();
};
$scope.close = function() {
$scope.loading = null;
$scope.txpDetailsModal.hide();

View file

@ -8,7 +8,8 @@ angular.module('copayApp.directives')
transclude: true,
scope: {
isShown: '=slideSuccessShow',
onConfirm: '&slideSuccessOnConfirm'
onConfirm: '&slideSuccessOnConfirm',
hideOnConfirm: '=slideSuccessHideOnConfirm'
},
link: function(scope, element, attrs) {
var elm = element[0];
@ -23,8 +24,10 @@ angular.module('copayApp.directives')
});
scope.onConfirmButtonClick = function() {
scope.onConfirm();
scope.fillScreen = false;
elm.style.display = 'none';
if(scope.hideOnConfirm) {
scope.fillScreen = false;
elm.style.display = 'none';
}
};
}
};

View file

@ -81,6 +81,7 @@
<slide-to-accept-success
slide-success-show="sendStatus === 'success'"
slide-success-on-confirm="onSuccessConfirm()"
slide-success-hide-on-confirm="true"
>
<span ng-hide="wallet.m > 1">Payment Sent</span>
<span ng-show="wallet.m > 1">Proposal Created</span>

View file

@ -149,11 +149,13 @@
</div>
</div>
</div>
<button class="button button-block button-positive"
ng-click="sign()"
ng-if="tx.pendingForUs && canSign && !loading && !paymentExpired && !isCordova" translate>
<click-to-accept
ng-click="onConfirm(statusChangeHandler)"
ng-if="tx.pendingForUs && canSign && !paymentExpired && hasClick"
click-send-status="sendStatus">
Click to accept
</button>
</click-to-accept>
<div class="m30t text-center" ng-if="tx.canBeRemoved || (tx.status == 'accepted' && !tx.broadcastedOn)">
<div class="size-12 padding" ng-show="!tx.isGlidera && isShared" translate>
* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created.
@ -164,5 +166,17 @@
</button>
</div>
</ion-content>
<accept class="accept-slide" ng-if="tx.pendingForUs && canSign && !loading && !paymentExpired && isCordova"></accept>
<slide-to-accept
ng-if="tx.pendingForUs && canSign && !paymentExpired && !hasClick"
slide-on-confirm="onConfirm()"
slide-send-status="sendStatus">
Slide to accept
</slide-to-accept>
<slide-to-accept-success
slide-success-show="sendStatus === 'success'"
slide-success-on-confirm="onSuccessConfirm()"
>
Payment Sent
</slide-to-accept-success>
</ion-modal-view>