search modal
This commit is contained in:
parent
b9c9d9968f
commit
6dfd124535
3 changed files with 100 additions and 32 deletions
68
public/views/modals/searchTransactions.html
Normal file
68
public/views/modals/searchTransactions.html
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
<ion-modal-view>
|
||||||
|
<ion-header-bar>
|
||||||
|
<h1 class="title" translate>Search Transactions</h1>
|
||||||
|
<a class="m5t" ng-click="modal.hide(); index.cancelSearch()">
|
||||||
|
<span class="text-close">{{'Close'|translate}}</span>
|
||||||
|
</a>
|
||||||
|
</ion-header-bar>
|
||||||
|
|
||||||
|
<ion-content>
|
||||||
|
<div class="row searchBar searchLabel">
|
||||||
|
<i class="fi-magnifying-glass size-14"></i>
|
||||||
|
<form>
|
||||||
|
<input name="search" type="search" ng-model="search" ng-init="search = ''" ng-change="index.updateSearchInput(search)"
|
||||||
|
placeholder="{{'Search transactions' | translate}}">
|
||||||
|
</input>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-repeat="btx in index.txHistorySearchResults track by btx.txid"
|
||||||
|
ng-click="home.openTxModal(btx)"
|
||||||
|
class="row collapse last-transactions-content">
|
||||||
|
<div class="large-6 medium-6 small-6 columns size-14">
|
||||||
|
<div class="m10r left">
|
||||||
|
<img src="img/icon-receive-history.svg" alt="sync" width="40" ng-show="btx.action == 'received'">
|
||||||
|
<img src="img/icon-sent-history.svg" alt="sync" width="40" ng-show="btx.action == 'sent'">
|
||||||
|
<img src="img/icon-moved.svg" alt="sync" width="40" ng-show="btx.action == 'moved'">
|
||||||
|
</div>
|
||||||
|
<div class="m10t">
|
||||||
|
<span ng-show="btx.action == 'received'" translate>Received</span>
|
||||||
|
<span ng-show="btx.action == 'sent'">
|
||||||
|
{{index.addressbook[btx.addressTo]}}
|
||||||
|
<span ng-show="!index.addressbook[btx.addressTo] && btx.message">
|
||||||
|
<span class="ellipsis">{{btx.message}}</span>
|
||||||
|
</span>
|
||||||
|
<span ng-show="!index.addressbook[btx.addressTo] && !btx.message">
|
||||||
|
<span translate> Sent</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span ng-show="btx.action == 'moved'" translate>Moved</span>
|
||||||
|
<span class="label tu warning radius" ng-show="btx.action == 'invalid'" translate>Invalid</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="large-5 medium-5 small-5 columns text-right" >
|
||||||
|
<span class="size-16" ng-class="{'text-bold': btx.recent}">
|
||||||
|
<span ng-if="btx.action == 'received'">+</span>
|
||||||
|
<span ng-if="btx.action == 'sent'">-</span>
|
||||||
|
<span class="size-12" ng-if="btx.action == 'invalid'" translate>
|
||||||
|
(possible double spend)
|
||||||
|
</span>
|
||||||
|
<span ng-if="btx.action != 'invalid'">
|
||||||
|
{{btx.amountStr}}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<div class="size-12 text-gray">
|
||||||
|
<time ng-if="btx.time">{{btx.time * 1000 | amTimeAgo}}</time>
|
||||||
|
<span translate class="text-warning"
|
||||||
|
ng-show="!btx.time && (!btx.confirmations || btx.confirmations == 0)">
|
||||||
|
Unconfirmed
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="large-1 medium-1 small-1 columns text-right m10t">
|
||||||
|
<i class="icon-arrow-right3 size-18"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ion-content>
|
||||||
|
</ion-modal-view>
|
||||||
|
|
@ -178,7 +178,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="oh pr" ng-show="index.txHistory[0] || index.txProgress > 5">
|
<div class="oh pr" ng-show="index.txHistory[0] || index.txProgress > 5">
|
||||||
<h4 class="title" ng-click="index.startSearch(); search=''" ng-show="!index.isSearching">
|
<h4 class="title" ng-click="index.startSearch(); openModal()">
|
||||||
<span translate>Activity</span>
|
<span translate>Activity</span>
|
||||||
<i class="dib m5l size-16 pointer fi-magnifying-glass"></i>
|
<i class="dib m5l size-16 pointer fi-magnifying-glass"></i>
|
||||||
</h4>
|
</h4>
|
||||||
|
|
@ -201,7 +201,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ng-if="index.txHistory[0] && index.updatingTxHistory && index.newTx" class="row collapse last-transactions-content animated fadeInDown">
|
<div ng-if="index.txHistory[0] && index.updatingTxHistory && index.newTx" class="row collapse last-transactions-content animated fadeInDown">
|
||||||
<div class="large-6 medium-6 small-6 columns size-14">
|
<div class="large-6 medium-6 small-6 columns size-14">
|
||||||
<div class="m10r left">
|
<div class="m10r left">
|
||||||
<img src="img/icon-new.svg" width="40">
|
<img src="img/icon-new.svg" width="40">
|
||||||
|
|
@ -215,25 +215,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ng-show="index.isSearching" class="row searchBar">
|
<div class="row"></div>
|
||||||
<div class="small-11 columns">
|
|
||||||
<div class="searchLabel">
|
<div ng-repeat="btx in index.txHistory track by btx.txid"
|
||||||
<i class="fi-magnifying-glass size-14"></i>
|
|
||||||
<form>
|
|
||||||
<input name="search"
|
|
||||||
type="search"
|
|
||||||
ng-change="index.updateSearchInput(search)"
|
|
||||||
placeholder="{{'Search transactions' | translate}}"
|
|
||||||
ng-model="search">
|
|
||||||
</input>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="small-1 columns">
|
|
||||||
<a ng-click="index.cancelSearch()" translate>Cancel</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div ng-repeat="btx in index.txHistorySearchResults track by btx.txid"
|
|
||||||
ng-click="home.openTxModal(btx)"
|
ng-click="home.openTxModal(btx)"
|
||||||
class="row collapse last-transactions-content">
|
class="row collapse last-transactions-content">
|
||||||
<div class="large-6 medium-6 small-6 columns size-14">
|
<div class="large-6 medium-6 small-6 columns size-14">
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('walletHomeController', function($scope, $rootScope, $interval, $timeout, $filter, $modal, $log, notification, txStatus, profileService, lodash, configService, rateService, storageService, bitcore, gettext, gettextCatalog, platformInfo, addressService, ledger, bwsError, confirmDialog, txFormatService, animationService, addressbookService, go, feeService, walletService, fingerprintService, nodeWebkit) {
|
angular.module('copayApp.controllers').controller('walletHomeController', function($scope, $rootScope, $interval, $timeout, $filter, $modal, $log, $ionicModal, notification, txStatus, profileService, lodash, configService, rateService, storageService, bitcore, gettext, gettextCatalog, platformInfo, addressService, ledger, bwsError, confirmDialog, txFormatService, animationService, addressbookService, go, feeService, walletService, fingerprintService, nodeWebkit) {
|
||||||
|
|
||||||
var isCordova = platformInfo.isCordova;
|
var isCordova = platformInfo.isCordova;
|
||||||
var isWP = platformInfo.isWP;
|
var isWP = platformInfo.isWP;
|
||||||
var isAndroid = platformInfo.isAndroid;
|
var isAndroid = platformInfo.isAndroid;
|
||||||
var isChromeApp = platformInfo.isChromeApp;
|
var isChromeApp = platformInfo.isChromeApp;
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
window.ignoreMobilePause = false;
|
window.ignoreMobilePause = false;
|
||||||
|
|
@ -287,7 +287,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
|
|
||||||
$modalInstance.close(addr);
|
$modalInstance.close(addr);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -431,7 +431,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
var client = profileService.focusedClient;
|
var client = profileService.focusedClient;
|
||||||
$scope.error = null;
|
$scope.error = null;
|
||||||
$scope.loading = true;
|
$scope.loading = true;
|
||||||
|
|
||||||
fingerprintService.check(client, function(err) {
|
fingerprintService.check(client, function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
$scope.loading = false;
|
$scope.loading = false;
|
||||||
|
|
@ -451,7 +451,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
if (err) {
|
if (err) {
|
||||||
$scope.loading = false;
|
$scope.loading = false;
|
||||||
$scope.error = err;
|
$scope.error = err;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (signedTxp.status == 'accepted') {
|
if (signedTxp.status == 'accepted') {
|
||||||
|
|
@ -955,7 +955,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
txp.sendMax = true;
|
txp.sendMax = true;
|
||||||
txp.inputs = self.sendMaxInfo.inputs;
|
txp.inputs = self.sendMaxInfo.inputs;
|
||||||
txp.fee = self.sendMaxInfo.fee;
|
txp.fee = self.sendMaxInfo.fee;
|
||||||
}else {
|
} else {
|
||||||
txp.amount = amount;
|
txp.amount = amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -988,7 +988,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
});
|
});
|
||||||
|
|
||||||
}, 100);
|
}, 100);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.confirmTx = function(txp) {
|
this.confirmTx = function(txp) {
|
||||||
var client = profileService.focusedClient;
|
var client = profileService.focusedClient;
|
||||||
|
|
@ -1018,11 +1018,11 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
if (err) {
|
if (err) {
|
||||||
$scope.$emit('Local/TxProposalAction');
|
$scope.$emit('Local/TxProposalAction');
|
||||||
return self.setSendError(
|
return self.setSendError(
|
||||||
err.message ?
|
err.message ?
|
||||||
err.message :
|
err.message :
|
||||||
gettext('The payment was created but could not be completed. Please try again from home screen'));
|
gettext('The payment was created but could not be completed. Please try again from home screen'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (signedTxp.status == 'accepted') {
|
if (signedTxp.status == 'accepted') {
|
||||||
self.setOngoingProcess(gettextCatalog.getString('Broadcasting transaction'));
|
self.setOngoingProcess(gettextCatalog.getString('Broadcasting transaction'));
|
||||||
walletService.broadcastTx(client, signedTxp, function(err, broadcastedTxp) {
|
walletService.broadcastTx(client, signedTxp, function(err, broadcastedTxp) {
|
||||||
|
|
@ -1049,6 +1049,22 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$ionicModal.fromTemplateUrl('views/modals/searchTransactions.html', {
|
||||||
|
scope: $scope,
|
||||||
|
focusFirstInput: true,
|
||||||
|
animation: 'slide-in-up'
|
||||||
|
}).then(function(modal) {
|
||||||
|
$scope.modal = modal;
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.openModal = function() {
|
||||||
|
$scope.modal.show();
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.closeModal = function() {
|
||||||
|
$scope.modal.hide();
|
||||||
|
};
|
||||||
|
|
||||||
this.setForm = function(to, amount, comment) {
|
this.setForm = function(to, amount, comment) {
|
||||||
var form = $scope.sendForm;
|
var form = $scope.sendForm;
|
||||||
if (to) {
|
if (to) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue