Merge pull request #2307 from bechi/add-wallet
Mobile and desktop more consistent
This commit is contained in:
commit
c0f59adced
32 changed files with 306 additions and 242 deletions
|
|
@ -173,6 +173,7 @@ if [ $CURRENT_OS == "WP8" ]; then
|
|||
checkOK
|
||||
cp -vf wp/Properties/* $PROJECT/platforms/wp8/Properties/
|
||||
cp -vf wp/Package.appxmanifest $PROJECT/platforms/wp8/
|
||||
cp -vf wp/MainPage.xaml $PROJECT/platforms/wp8/
|
||||
checkOK
|
||||
cp -vf wp/Assets/* $PROJECT/platforms/wp8/Assets/
|
||||
cp -vf wp/SplashScreenImage.jpg $PROJECT/platforms/wp8/
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<preference name="StatusBarBackgroundColor" value="#3C4E60" />
|
||||
<preference name="StatusBarStyle" value="lightcontent" />
|
||||
<preference name="BackupWebStorage" value="none"/>
|
||||
<preference name="windows-target-version" value="8.1"/>
|
||||
<preference name="windows-target-version" value="8.1"/>
|
||||
<feature name="App">
|
||||
<param name="android-package" value="com.bitpay.copay" />
|
||||
</feature>
|
||||
|
|
|
|||
|
|
@ -31,15 +31,16 @@
|
|||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
shell:SystemTray.IsVisible="True" d:DesignHeight="768" d:DesignWidth="480"
|
||||
xmlns:my="clr-namespace:WPCordovaClassLib">
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent" HorizontalAlignment="Stretch">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<my:CordovaView HorizontalAlignment="Stretch"
|
||||
Margin="0,0,0,0"
|
||||
x:Name="CordovaView"
|
||||
VerticalAlignment="Stretch" />
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<my:CordovaView
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="1,0,0,0"
|
||||
x:Name="CordovaView"
|
||||
VerticalAlignment="Stretch" />
|
||||
</Grid>
|
||||
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
|
||||
|
|
|
|||
BIN
cordova/wp/SplashScreenImage-original.jpg
Executable file
BIN
cordova/wp/SplashScreenImage-original.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
cordova/wp/SplashScreenImage.jpg
Normal file → Executable file
BIN
cordova/wp/SplashScreenImage.jpg
Normal file → Executable file
Binary file not shown.
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 20 KiB |
|
|
@ -142,15 +142,11 @@ header .alt-currency {
|
|||
right: 0;
|
||||
}
|
||||
|
||||
.head .title {
|
||||
.head .founds {
|
||||
float: left;
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
.head .title h1 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.head .menu {
|
||||
float: right;
|
||||
position: relative;
|
||||
|
|
@ -267,7 +263,6 @@ input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill, inpu
|
|||
padding: 0.5rem 0.65rem;
|
||||
background-color: #fff;
|
||||
color: #1ABC9C;
|
||||
border-radius: 3px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
}
|
||||
|
|
@ -319,6 +314,27 @@ input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill, inpu
|
|||
line-height: 24px;
|
||||
}
|
||||
|
||||
.buttons-sidebar {
|
||||
color: #A5B2BF;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
padding: 0.5rem 0;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.buttons-sidebar .col1 {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.buttons-sidebar .col1 i {
|
||||
background-color: #2C3E50;
|
||||
color: #A5B2BF;
|
||||
border-radius: 100%;
|
||||
padding: .3rem 0.55rem;
|
||||
margin: 0 7px;
|
||||
}
|
||||
|
||||
.button.small.side-bar {
|
||||
padding: 0rem 0.4rem;
|
||||
}
|
||||
|
|
@ -483,15 +499,43 @@ ul.tx-copayers {
|
|||
color: #2C3E50;
|
||||
}
|
||||
|
||||
a.button-setup.add-wallet {
|
||||
opacity: .5;
|
||||
margin: 1rem auto;
|
||||
width: 125px;
|
||||
font-size: 14px;
|
||||
padding: .3rem 0.7rem;
|
||||
.manage a {
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
color: #1ABC9C;
|
||||
}
|
||||
|
||||
.manage a.join {
|
||||
color: #2980B9;
|
||||
}
|
||||
|
||||
.manage a.import {
|
||||
color: #213140;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.manage a i {
|
||||
background-color: #1ABC9C;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
padding: 0.85rem;
|
||||
border-radius: 100%;
|
||||
display: block;
|
||||
font-size: 30px;
|
||||
margin: 0 auto 20px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.manage a.join i {
|
||||
background-color: #2980B9;
|
||||
}
|
||||
|
||||
.manage a.import i {
|
||||
background-color: #213140;
|
||||
}
|
||||
|
||||
a.button-setup {
|
||||
border-radius: 3px;
|
||||
border: 1px solid #E4E8EC;
|
||||
|
|
@ -622,11 +666,8 @@ a.button-setup {
|
|||
|
||||
.name-wallet {
|
||||
font-size: 14px;
|
||||
width: 72%;
|
||||
float: left;
|
||||
color: #fff;
|
||||
text-transform: lowercase;
|
||||
font-weight: 500;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.name-wallet i {
|
||||
|
|
@ -640,16 +681,14 @@ a.button-setup {
|
|||
}
|
||||
|
||||
.founds {
|
||||
font-weight: 100;
|
||||
color: #B6E9DF;
|
||||
font-size: 20px;
|
||||
color: #7A8C9E;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.locked {
|
||||
font-size: 11px;
|
||||
background-color: #213140;
|
||||
width: 100%;
|
||||
padding: 0.3rem 0.7rem;
|
||||
color: white;
|
||||
color: #7A8C9E;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
|
|
@ -1063,7 +1102,7 @@ ul.wallet-selection.wallets {
|
|||
}
|
||||
|
||||
.side-nav.wallets li {
|
||||
margin: 1.2rem 0;
|
||||
margin: 0.8rem 0;
|
||||
padding: 0.3rem 0.1rem;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@
|
|||
*/
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
body {
|
||||
overflow: hidden;
|
||||
-ms-content-zooming: none;
|
||||
}
|
||||
|
||||
.loading-screen {
|
||||
background-color: #2C3E50;
|
||||
|
|
@ -19,15 +23,48 @@
|
|||
}
|
||||
|
||||
.page, .main {
|
||||
height: auto;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.main {
|
||||
height: 92%;
|
||||
margin-top: 30px;
|
||||
margin-left: 0;
|
||||
margin-bottom: -30px;
|
||||
padding: 20px 0 80px 0;
|
||||
padding: 60px 0 80px 0;
|
||||
}
|
||||
|
||||
/* Fix IE 10 */
|
||||
.extra-margin-bottom {
|
||||
display: block
|
||||
height: 75px
|
||||
overflow: hidden
|
||||
clear: both
|
||||
}
|
||||
|
||||
.main {
|
||||
height: 99%
|
||||
overflow: auto
|
||||
}
|
||||
|
||||
/* Fix IE 11 */
|
||||
_:-ms-fullscreen, :root .extra-margin-bottom {
|
||||
display: block;
|
||||
height: 75px;
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
_:-ms-fullscreen, :root .main {
|
||||
height: 99%;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* Fix Firefox */
|
||||
@-moz-document url-prefix() {
|
||||
.extra-margin-bottom {
|
||||
display: block;
|
||||
height: 75px;
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
.tab-bar {
|
||||
|
|
@ -57,18 +94,20 @@
|
|||
}
|
||||
|
||||
header {
|
||||
height: 45px;
|
||||
background-color: #213140;
|
||||
background-image: -webkit-linear-gradient(#2C3E50 0%, #1D2833 100%);
|
||||
background-image: -o-linear-gradient(#2C3E50 0%, #1D2833 100%);
|
||||
background-image: linear-gradient(#2C3E50 0%, #1D2833 100%);
|
||||
box-shadow: 0px 1px 0px 0px #2C3E50, inset -1px 0px 0px 0px rgba(0,0,0,0.24);
|
||||
height: 120px;
|
||||
width: 100%;
|
||||
line-height: 110%;
|
||||
padding-left: 0.45rem;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
header .photo-container {
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
margin-right: 10px;
|
||||
margin-top: 5px;
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
|
|
@ -78,7 +117,7 @@
|
|||
|
||||
.scroll-section {
|
||||
position: absolute;
|
||||
top: 45px;
|
||||
top: 120px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
|
@ -154,7 +193,6 @@
|
|||
}
|
||||
|
||||
ul.off-canvas-list li a {
|
||||
text-transform: uppercase;
|
||||
font-size: 12px;
|
||||
vertical-align: middle;
|
||||
font-weight: 100;
|
||||
|
|
@ -180,27 +218,15 @@
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
ul.off-canvas-list li .buttons-sidebar {
|
||||
.buttons-sidebar {
|
||||
color: #4B6178;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
|
||||
.buttons-sidebar .col1 {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.buttons-sidebar .col1 i {
|
||||
background-color: #fff;
|
||||
color: #4B6178;
|
||||
border-radius: 100%;
|
||||
padding: .3rem 0.55rem;
|
||||
margin: 0 7px;
|
||||
}
|
||||
|
||||
|
||||
.bottombar-item a {
|
||||
color: #7A8C9E;
|
||||
padding: 0.5rem 0;
|
||||
|
|
|
|||
14
index.html
14
index.html
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<title>Copay - Multisignature Wallet</title>
|
||||
<style type="text/css">
|
||||
|
|
@ -84,13 +84,15 @@
|
|||
<a class="left-off-canvas-toggle menu-icon" ><span></span></a>
|
||||
</section>
|
||||
|
||||
<section class="right-small" ng-show="$root.iden && $root.wallet.isComplete() && !$root.hideWalletNavigation">
|
||||
<a class="p10" ng-click="$root.go('more')"><i class="fi-widget size-24"></i></a>
|
||||
<section class="right-small"
|
||||
ng-show="$root.iden && $root.wallet.isComplete() && !$root.hideWalletNavigation && isCordova">
|
||||
<a class="p10"
|
||||
ng-click="openScanner()"><i class="fi-camera size-24"></i></a>
|
||||
</section>
|
||||
|
||||
<section class="middle tab-bar-section">
|
||||
<h1 class="title ellipsis" ng-show="$root.iden && $root.wallet && !$root.hideWalletNavigation">
|
||||
{{$root.wallet.getName()}}
|
||||
{{$root.wallet.getName()}}
|
||||
</h1>
|
||||
</section>
|
||||
</nav>
|
||||
|
|
@ -119,7 +121,9 @@
|
|||
ng-class="{'dni':$root.hideNavigation || $root.wpInputFocused}"
|
||||
></div>
|
||||
|
||||
<section ng-class="{'main':$root.iden && !$root.starting && !$root.hideNavigation && !$root.wpInputFocused}" ng-view></section>
|
||||
<section
|
||||
ng-class="{'main':$root.iden && !$root.starting && !$root.hideNavigation && !$root.wpInputFocused}"
|
||||
ng-view></section>
|
||||
|
||||
<a class="exit-off-canvas"></a>
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ angular.module('copayApp.controllers').controller('CreateController',
|
|||
});
|
||||
};
|
||||
|
||||
$scope.$on("$destroy", function () {
|
||||
$rootScope.hideWalletNavigation = false;
|
||||
$scope.$on("$destroy", function () {
|
||||
$rootScope.hideWalletNavigation = false;
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('HomeWalletController', function($scope, $rootScope, $timeout, $filter, $modal, rateService, notification, txStatus, identityService) {
|
||||
angular.module('copayApp.controllers').controller('HomeWalletController', function($scope, $rootScope, $timeout, $filter, $modal, rateService, notification, txStatus, identityService, isMobile) {
|
||||
|
||||
$scope.initHome = function() {
|
||||
$rootScope.title = 'Home';
|
||||
};
|
||||
$scope.isMobile = isMobile.any();
|
||||
|
||||
$scope.openTxModal = function(tx) {
|
||||
var ModalInstanceCtrl = function($scope, $modalInstance) {
|
||||
|
|
|
|||
|
|
@ -100,8 +100,8 @@ angular.module('copayApp.controllers').controller('ImportController',
|
|||
};
|
||||
|
||||
|
||||
$scope.$on("$destroy", function () {
|
||||
$rootScope.hideWalletNavigation = false;
|
||||
$scope.$on("$destroy", function () {
|
||||
$rootScope.hideWalletNavigation = false;
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ angular.module('copayApp.controllers').controller('JoinController',
|
|||
}
|
||||
|
||||
|
||||
$scope.$on("$destroy", function () {
|
||||
$rootScope.hideWalletNavigation = false;
|
||||
$scope.$on("$destroy", function () {
|
||||
$rootScope.hideWalletNavigation = false;
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -50,6 +50,17 @@ angular.module('copayApp.controllers').controller('SendController',
|
|||
});
|
||||
};
|
||||
|
||||
if (isCordova) {
|
||||
var openScannerCordova = $rootScope.$on('dataScanned', function(event, data) {
|
||||
$scope.sendForm.address.$setViewValue(data);
|
||||
$scope.sendForm.address.$render();
|
||||
});
|
||||
|
||||
$scope.$on('$destroy', function() {
|
||||
openScannerCordova();
|
||||
});
|
||||
}
|
||||
|
||||
$scope.formFocus = function(what) {
|
||||
if (!$scope.isWindowsPhoneApp) return
|
||||
|
||||
|
|
@ -183,17 +194,17 @@ angular.module('copayApp.controllers').controller('SendController',
|
|||
var comment = form.comment.$modelValue;
|
||||
var merchantData = $scope._merchantData;
|
||||
var address, amount;
|
||||
if (!merchantData) {
|
||||
if (!merchantData) {
|
||||
address = form.address.$modelValue;
|
||||
amount = parseInt((form.amount.$modelValue * unitToSat).toFixed(0));
|
||||
}
|
||||
|
||||
w.spend({
|
||||
w.spend({
|
||||
merchantData: merchantData,
|
||||
toAddress: address,
|
||||
amountSat: amount,
|
||||
comment: comment,
|
||||
}, function (err, txid, status) {
|
||||
comment: comment,
|
||||
}, function (err, txid, status) {
|
||||
$scope.loading = false;
|
||||
$scope.creatingTX = false;
|
||||
if ($scope.isWindowsPhoneApp)
|
||||
|
|
@ -202,8 +213,8 @@ angular.module('copayApp.controllers').controller('SendController',
|
|||
if (err)
|
||||
return $scope.setError(err);
|
||||
txStatus.notify(status);
|
||||
$scope.resetForm();
|
||||
});
|
||||
$scope.resetForm();
|
||||
});
|
||||
}, 1);
|
||||
};
|
||||
|
||||
|
|
@ -299,7 +310,6 @@ angular.module('copayApp.controllers').controller('SendController',
|
|||
};
|
||||
|
||||
$scope.openScanner = function() {
|
||||
if (window.cordova) return $scope.scannerIntent();
|
||||
$scope.showScanner = true;
|
||||
|
||||
// Wait a moment until the canvas shows
|
||||
|
|
@ -324,31 +334,6 @@ angular.module('copayApp.controllers').controller('SendController',
|
|||
}, 500);
|
||||
};
|
||||
|
||||
$scope.scannerIntent = function() {
|
||||
window.ignoreMobilePause = true;
|
||||
cordova.plugins.barcodeScanner.scan(
|
||||
function onSuccess(result) {
|
||||
$timeout(function() {
|
||||
window.ignoreMobilePause = false;
|
||||
}, 100);
|
||||
if (result.cancelled) return;
|
||||
|
||||
$timeout(function() {
|
||||
var data = result.text;
|
||||
$scope.$apply(function() {
|
||||
$scope.sendForm.address.$setViewValue(result.text);
|
||||
$scope.sendForm.address.$render();
|
||||
});
|
||||
}, 1000);
|
||||
},
|
||||
function onError(error) {
|
||||
$timeout(function() {
|
||||
window.ignoreMobilePause = false;
|
||||
}, 100);
|
||||
alert('Scanning error');
|
||||
});
|
||||
}
|
||||
|
||||
$scope.setTopAmount = function() {
|
||||
var w = $rootScope.wallet;
|
||||
var form = $scope.sendForm;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('SidebarController', function($scope, $rootScope, $location, $timeout, identityService, isMobile, go) {
|
||||
angular.module('copayApp.controllers').controller('SidebarController', function($scope, $rootScope, $location, $timeout, identityService, isMobile, isCordova, go) {
|
||||
|
||||
$scope.isMobile = isMobile.any()
|
||||
$scope.isMobile = isMobile.any();
|
||||
$scope.isCordova = isCordova;
|
||||
|
||||
$scope.menu = [{
|
||||
'title': 'Home',
|
||||
|
|
@ -46,6 +47,32 @@ angular.module('copayApp.controllers').controller('SidebarController', function(
|
|||
$scope.setWallets();
|
||||
};
|
||||
|
||||
$scope.openScanner = function() {
|
||||
window.ignoreMobilePause = true;
|
||||
cordova.plugins.barcodeScanner.scan(
|
||||
function onSuccess(result) {
|
||||
$timeout(function() {
|
||||
window.ignoreMobilePause = false;
|
||||
}, 100);
|
||||
if (result.cancelled) return;
|
||||
|
||||
$timeout(function() {
|
||||
var data = result.text;
|
||||
$scope.$apply(function() {
|
||||
$rootScope.$emit('dataScanned', data);
|
||||
});
|
||||
}, 1000);
|
||||
},
|
||||
function onError(error) {
|
||||
$timeout(function() {
|
||||
window.ignoreMobilePause = false;
|
||||
}, 100);
|
||||
alert('Scanning error');
|
||||
}
|
||||
);
|
||||
go.send();
|
||||
};
|
||||
|
||||
$scope.init = function() {
|
||||
// This should be called only once.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,22 @@
|
|||
<div class="small-12 columns add-wallet">
|
||||
<a class="button-setup db oh" title="Create new wallet" ng-click="$root.go('create')">
|
||||
<i class="fi-plus"></i>
|
||||
<span>Create new wallet</span>
|
||||
</a>
|
||||
|
||||
<a class="button-setup db oh" title="Join shared wallet" ng-click="$root.go('join')">
|
||||
<i class="icon-people"></i>
|
||||
<span>Join shared wallet</span>
|
||||
</a>
|
||||
|
||||
<a class="button-setup db oh" title="Import wallet" ng-click="$root.go('import')">
|
||||
<i class="icon-upload"></i>
|
||||
<span>Import wallet</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="row manage text-center">
|
||||
<h1 class="show-for-large-up text-left columns">Add Wallet</h1>
|
||||
<div class="large-4 small-12 columns">
|
||||
<a class="db oh panel" title="Create new wallet" ng-click="$root.go('create')">
|
||||
<i class="fi-plus"></i>
|
||||
<span>Create new wallet</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="large-4 small-12 columns">
|
||||
<a class="db oh panel join" title="Join shared wallet" ng-click="$root.go('join')">
|
||||
<i class="icon-people"></i>
|
||||
<span>Join shared wallet</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="large-4 small-12 columns">
|
||||
<a class="db oh panel import" title="Import wallet" ng-click="$root.go('import')">
|
||||
<i class="icon-upload"></i>
|
||||
<span>Import wallet</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<div ng-controller="CopayersController" ng-init="init()">
|
||||
<div class="row">
|
||||
<div class="large-12 medium-12 small-12 columns">
|
||||
<h1 class="hide-for-large-up size-18">{{$root.title}}</h1>
|
||||
<h1>Share this secret with your copayers</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -50,4 +50,5 @@
|
|||
</div>
|
||||
<!-- end of row -->
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
||||
|
|
|
|||
|
|
@ -87,3 +87,4 @@
|
|||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -241,4 +241,5 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
<h3 translate class="text-center" ng-class="{'text-white': !$root.wallet}">Page not found</h3>
|
||||
<p class="text-center"><a href="#!/">« <span translate>Back</span></a></p>
|
||||
</div>
|
||||
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<div class="transactions" data-ng-controller="HistoryController" data-ng-init="update()">
|
||||
<div class="row">
|
||||
<div class="large-12 medium-12 small-12 columns">
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<h1 class="show-for-large-up">{{$root.title}}</h1>
|
||||
<div ng-if="loading && !blockchain_txs[0].txid" class="m20b">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
<span translate>Loading...</span>
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m50b" ng-show="blockchain_txs[0].txid">
|
||||
<div class="m10b" ng-show="blockchain_txs[0].txid">
|
||||
<div class="row">
|
||||
<div class="large-9 columns">
|
||||
<pagination page="currentPage" total-items="totalItems" items-per-page="itemsPerPage" on-select-page="selectPage(page)" max-size="10" />
|
||||
|
|
@ -67,3 +67,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<div class="large-4 large-centered medium-6 medium-centered columns" ng-show="!$root.starting && !showDisclaimer">
|
||||
|
||||
<div class="logo-setup" ng-show="!$root.iden && !hideForWP">
|
||||
<img src="img/logo-negative-beta.svg" alt="Cop ay" width="100">
|
||||
<img src="img/logo-negative-beta.svg" alt="Copay" width="100">
|
||||
<div ng-include="'views/includes/version.html'"></div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<div class="home-wallet" ng-controller="HomeWalletController" ng-init="initHome()">
|
||||
<div class="row hide-for-large-up">
|
||||
<div class="medium-12 small-12 columns">
|
||||
<div class="home-wallet" ng-controller="HomeWalletController">
|
||||
<div class="row show-for-large-up">
|
||||
<div class="large-12 columns">
|
||||
<h1 translate>Home</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -12,7 +12,9 @@
|
|||
<div class="large-8 medium-6 small-12 columns">
|
||||
<div class="ellipsis oh">
|
||||
<div class="avatar-wallet left">{{$root.wallet.getName() | limitTo: 1}}</div>
|
||||
<h2 class="m10t left">{{$root.wallet.getName()}}</h2>
|
||||
<h2 class="m10t left">
|
||||
{{$root.wallet.getName()}}
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-4 medium-6 small-12 columns">
|
||||
|
|
@ -36,7 +38,7 @@
|
|||
|
||||
<div class="row ">
|
||||
<div class="large-12 columns line-t m10t">
|
||||
<div class="right size-12">
|
||||
<div class="text-right size-12">
|
||||
<span ng-if="!$root.wallet.isShared()">Personal Wallet</span>
|
||||
<span ng-if="$root.wallet.isShared()">
|
||||
Multisignature wallet [{{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}} ]
|
||||
|
|
@ -73,7 +75,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m50b" ng-if="$root.wallet.isShared()">
|
||||
<div class="row" ng-if="$root.wallet.isShared()">
|
||||
<!-- List of copayers -->
|
||||
<div class="large-12 columns">
|
||||
<div class="panel oh">
|
||||
|
|
@ -82,4 +84,11 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="isMobile">
|
||||
<div class="large-12 columns text-right size-12">
|
||||
<a ng-click="$root.go('more')"><i class="fi-widget"></i> Settings</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -97,3 +97,4 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
<div class="title">
|
||||
<h1>
|
||||
{{$root.title}}
|
||||
<div class="founds" ng-if="$root.wallet.isComplete()">
|
||||
<span ng-if="$root.wallet.balanceInfo.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
|
||||
<div ng-if="$root.wallet && !$root.wallet.balanceInfo.updatingBalance" data-options="disable_for_touch:true">
|
||||
<small class="db text-light">Balance:</small>
|
||||
<b class="m5r">{{$root.wallet.balanceInfo.totalBalance || 0}} {{$root.wallet.settings.unitName}}</b>
|
||||
<span ng-if="$root.wallet.balanceInfo.alternativeBalanceAvailable" class="alt-currency gray">{{$root.wallet.balanceInfo.totalBalanceAlternative}} {{$root.wallet.balanceInfo.alternativeIsoCode}}</span>
|
||||
<span ng-if="!$root.wallet.balanceInfo.alternativeBalanceAvailable" class="alt-currency gray">N/A</span>
|
||||
<small ng-if="$root.wallet">
|
||||
<a class="text-gray" ng-click="refresh()" ng-if="$root.wallet.isComplete() && !$root.updatingBalance">
|
||||
<i class="fi-refresh"></i>
|
||||
|
|
@ -9,11 +13,9 @@
|
|||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
</span>
|
||||
</small>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="menu" ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()" ng-init="init()" ng-click="hoverMenu = !hoverMenu">
|
||||
<a class="dropdown ellipsis text-gray pr" ng-class="{'hover': hoverMenu}">
|
||||
<div class="photo-container">
|
||||
|
|
@ -27,13 +29,6 @@
|
|||
</a>
|
||||
<ul ng-show="hoverMenu" class="size-16 text-gray" ng-class="{'hover': hoverMenu}">
|
||||
<li>
|
||||
<a href="#!/create" title="Create new wallet">
|
||||
<i class="fi-plus size-18 m10r"></i> {{'Create new wallet'|translate}}</a></li>
|
||||
<li><a href="#!/join" title="Join shared wallet">
|
||||
<i class="icon-people size-18 m10r"></i> {{'Join shared wallet'|translate}}</a></li>
|
||||
<li><a href="#!/import" title="Import wallet">
|
||||
<i class="icon-download size-18 m10r"></i> {{'Import wallet'|translate}}</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#!/profile" title="Profile">
|
||||
<i class="icon-person size-18 m10r"></i> {{'My Profile'|translate}}<span class="size-10 text-warning" ng-if="!$root.needsEmailConfirmation && $root.iden.backupNeeded"> [ Needs Backup ]</span></a>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -1,14 +1,11 @@
|
|||
<header ng-click="$root.go('profile')">
|
||||
<div class="photo-container left">
|
||||
<img gravatar-src="'{{$root.iden.getName()}}'" gravatar-size="35">
|
||||
<header ng-click="$root.go('profile')" class="text-center">
|
||||
<div class="photo-container">
|
||||
<img gravatar-src="'{{$root.iden.getName()}}'" gravatar-size="45">
|
||||
</div>
|
||||
<div class="col2 m5t">
|
||||
<div class="text-white ellipsis">{{$root.iden.getName()}}</div>
|
||||
<div class="m5t">
|
||||
<div class="text-white text-bold ellipsis size-14">{{$root.iden.getName()}}</div>
|
||||
<div class="text-gray size-10"> {{'View My Profile' | translate }} </div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<i class="icon-arrow-right3 size-16 db m15t text-white"></i>
|
||||
</div>
|
||||
</header>
|
||||
<div class="scroll-section">
|
||||
<ul class="sidebar-mobile-wallets oh off-canvas-list m10b" ng-show="wallets[0]">
|
||||
|
|
@ -21,19 +18,8 @@
|
|||
</div>
|
||||
<div class="col2">
|
||||
<a class="size-12 wallet-item">
|
||||
<div class="oh">
|
||||
<div class="right size-10 text-gray">
|
||||
[ {{item.requiredCopayers}} of {{item.totalCopayers}} ]</div>
|
||||
<div class="ellipsis name-wallet text-black">{{item.name || item.id}}</div>
|
||||
</div>
|
||||
<div class="oh text-bold">
|
||||
<span ng-if="item.isComplete() && item.balanceInfo.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
|
||||
<div ng-if="item.isComplete() && !item.balanceInfo.updatingBalance" data-options="disable_for_touch:true">
|
||||
<b class="m5r size-12">{{item.balanceInfo.totalBalance || 0}} {{item.settings.unitName}}</b>
|
||||
<span class="alt-currency gray size-10">{{item.balanceInfo.totalBalanceAlternative}} {{item.balanceInfo.alternativeIsoCode}}</span>
|
||||
</div>
|
||||
<span ng-if="!item.isComplete()">Waiting for copayers...</span>
|
||||
</div>
|
||||
<div class="ellipsis name-wallet text-black">{{item.name || item.id}}</div>
|
||||
<div class="size-12"> {{item.requiredCopayers}} of {{item.totalCopayers}} </div>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -54,7 +40,7 @@
|
|||
<div class="col1">
|
||||
<i class="fi-power size-21"></i>
|
||||
</div>
|
||||
<div class="col2 m5t">
|
||||
<div class="col2 m5t m15b">
|
||||
<span class="tu text-bold">Close</span> <br>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,21 +5,10 @@
|
|||
</div>
|
||||
<div class="col2" ng-class="{'col2_full':!wallets.length}">
|
||||
<div class="oh m5t m10r">
|
||||
<div class="right size-10">[ {{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}} ]</div>
|
||||
<div class="name-wallet">
|
||||
<div class="ellipsis">{{$root.wallet.getName()}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="founds size-12">
|
||||
<span ng-if="!$root.wallet.isComplete()">Waiting for copayers...</span>
|
||||
<div ng-if="$root.wallet.isComplete()">
|
||||
<span ng-if="$root.wallet.balanceInfo.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
|
||||
<div ng-if="$root.wallet && !$root.wallet.balanceInfo.updatingBalance" data-options="disable_for_touch:true">
|
||||
<b class="m5r">{{$root.wallet.balanceInfo.totalBalance || 0}} {{$root.wallet.settings.unitName}}</b>
|
||||
<span ng-if="$root.wallet.balanceInfo.alternativeBalanceAvailable" class="alt-currency">{{$root.wallet.balanceInfo.totalBalanceAlternative}} {{$root.wallet.balanceInfo.alternativeIsoCode}}</span>
|
||||
<span ng-if="!$root.wallet.balanceInfo.alternativeBalanceAvailable" class="alt-currency">N/A</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="size-12"> {{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}} </div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col3" ng-if="wallets.length > 1">
|
||||
|
|
@ -34,17 +23,6 @@
|
|||
</a>
|
||||
</div>
|
||||
</header>
|
||||
<div class="locked" ng-show="$root.wallet.balanceInfo.lockedBalance && !walletSelection">
|
||||
<span class="text-gray">
|
||||
{{'Locked'|translate}}
|
||||
</span>
|
||||
<span ng-if="$root.wallet.balanceInfo.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
|
||||
<span ng-if="$root.wallet && !$root.wallet.balanceInfo.updatingBalance" class="text-gray">
|
||||
<b>{{$root.wallet.balanceInfo.lockedBalance}} {{$root.wallet.settings.unitName}} </b>
|
||||
- {{$root.wallet.balanceInfo.lockedBalanceAlternative}} {{$root.wallet.balanceInfo.alternativeIsoCode}}
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<ul class="side-nav wallets" ng-class="{'pullDown': walletSelection}" ng-show="wallets[0]">
|
||||
|
|
@ -58,21 +36,22 @@
|
|||
</div>
|
||||
<div class="col2">
|
||||
<a href class="size-12 wallet-item">
|
||||
<div class="oh">
|
||||
<div class="right size-10 type-wallet">[ {{item.requiredCopayers}} of {{item.totalCopayers}} ]</div>
|
||||
<div class="ellipsis name-wallet">{{item.name || item.id}}</div>
|
||||
</div>
|
||||
<div class="oh">
|
||||
<span ng-if="item.isComplete() && item.balanceInfo.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
|
||||
<div ng-if="item.isComplete() && !item.balanceInfo.updatingBalance" data-options="disable_for_touch:true">
|
||||
<b class="m5r size-12">{{item.balanceInfo.totalBalance || 0}} {{item.settings.unitName}}</b>
|
||||
<span class="alt-currency size-10">{{item.balanceInfo.totalBalanceAlternative}} {{item.balanceInfo.alternativeIsoCode}}</span>
|
||||
</div>
|
||||
<span ng-if="!item.isComplete()">Waiting for copayers...</span>
|
||||
</div>
|
||||
<span class="ellipsis name-wallet">{{item.name || item.id}}</span>
|
||||
<span class="size-12 type-wallet"> {{item.requiredCopayers}} of {{item.totalCopayers}} </span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<div class="buttons-sidebar" title="Add wallet" ng-click="$root.go('add')">
|
||||
<div class="col1">
|
||||
<i class="fi-plus size-21"></i>
|
||||
</div>
|
||||
<div class="col2">
|
||||
<span class="tu text-bold">Add wallet</span> <br>
|
||||
<span class="text-light">Create, join or import</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -76,4 +76,5 @@
|
|||
<!-- End !loading -->
|
||||
</div>
|
||||
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<div class="backup" ng-controller="MoreController">
|
||||
<div class="row hide-for-large-up">
|
||||
<div class="row show-for-large-up">
|
||||
<div class="large-12 medium-12 small-12 columns">
|
||||
<h1>{{$root.title}}</h1>
|
||||
</div>
|
||||
|
|
@ -102,3 +102,4 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,4 @@
|
|||
<div class="backup" ng-controller="ProfileController" ng-init="init()">
|
||||
<div class="row hide-for-large-up">
|
||||
<div class="large-12 medium-12 small-12 columns">
|
||||
<h1>{{$root.title}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
|
|
@ -108,7 +103,7 @@
|
|||
|
||||
<div class="line-dashed-h m20b"></div>
|
||||
|
||||
<div class="m50b row oh">
|
||||
<div class="row oh">
|
||||
<div class="large-12 columns">
|
||||
<a class="small left button-setup" ng-click="hideAdv=!hideAdv">
|
||||
<i class="fi-widget m3r"></i>
|
||||
|
|
@ -121,7 +116,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="hideAdv" class="row m50b">
|
||||
<div ng-hide="hideAdv" class="row">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<h2><i class="fi-minus-circle m10r"></i>
|
||||
|
|
@ -147,3 +142,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<div class="addresses" ng-controller="ReceiveController" ng-init="init()">
|
||||
<div class="row">
|
||||
<div class="large-12 medium-12 small-12 columns">
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<h1 class="show-for-large-up">{{$root.title}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m50b">
|
||||
<div class="row">
|
||||
<div class="large-12 columns" ng-if="showAll">
|
||||
<div ng-repeat="addr in addresses" ng-click="openAddressModal(addr)" class="pointer">
|
||||
<div class="panel">
|
||||
|
|
@ -64,3 +64,4 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,8 @@
|
|||
<div class="send" ng-controller="SendController" ng-init="init()">
|
||||
|
||||
<div class="row hide-for-large-up" ng-hide="$root.wpInputFocused" >
|
||||
<div class="large-10 medium-10 small-9 columns">
|
||||
<div class="row show-for-large-up">
|
||||
<div class="large-8 large-centered columns">
|
||||
<h1>{{$root.title}}</h1>
|
||||
</div>
|
||||
<div class="large-2 medium-2 small-3 columns" ng-show="!lockAddress && !_merchantData">
|
||||
<div ng-hide="showScanner || disableScanner">
|
||||
<a class="button right m10b radius tiny black" ng-click="openScanner()"><i class="fi-camera size-18"></i></a>
|
||||
</div>
|
||||
<div ng-show="showScanner">
|
||||
<a translate class="button right radius tiny m10b warning" ng-click="cancelScanner()"><i class="fi-x size-18"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="fetchingURL">
|
||||
|
|
@ -28,25 +19,25 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="creatingTX">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<div class="box-notification">
|
||||
<div class="box-icon secondary">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner size-24"></i>
|
||||
</div>
|
||||
<span class="text-secondary size-14">
|
||||
Creating Transaction...
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="creatingTX">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<div class="box-notification">
|
||||
<div class="box-icon secondary">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner size-24"></i>
|
||||
</div>
|
||||
<span class="text-secondary size-14">
|
||||
Creating Transaction...
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="!fetchingURL && !creatingTX">
|
||||
<div class="large-8 large-centered columns">
|
||||
<div class="large-8 large-centered columns">
|
||||
<form name="sendForm" ng-submit="submitForm(sendForm)" novalidate>
|
||||
<div class="panel">
|
||||
<div class="box-notification" ng-show="error && !hideForWP ">
|
||||
|
|
@ -173,8 +164,20 @@
|
|||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="locked m10b" ng-show="$root.wallet.balanceInfo.lockedBalance && !walletSelection">
|
||||
<i class="fi-lock"></i>
|
||||
<span>
|
||||
{{'Locked'|translate}}
|
||||
</span>
|
||||
<span ng-if="$root.wallet.balanceInfo.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
|
||||
<span ng-if="$root.wallet && !$root.wallet.balanceInfo.updatingBalance">
|
||||
<b>{{$root.wallet.balanceInfo.lockedBalance}} {{$root.wallet.settings.unitName}} </b>
|
||||
- {{$root.wallet.balanceInfo.lockedBalanceAlternative}} {{$root.wallet.balanceInfo.alternativeIsoCode}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end of row -->
|
||||
</div>
|
||||
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<div class="settings" ng-controller="SettingsController">
|
||||
<h1 class="hide-for-small-only">{{$root.title}}</h1>
|
||||
<div class="large-4 large-centered medium-6 medium-centered columns">
|
||||
<div class="logo-setup show-for-large-up" id="top">
|
||||
<img src="img/logo-negative-beta.svg" alt="Copay" width="100">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue