From 21a746a51d7c5a32d61314f17f6a8b8529ff751b Mon Sep 17 00:00:00 2001 From: JDonadio Date: Tue, 10 Oct 2017 15:21:50 -0300 Subject: [PATCH] merge single and shared wallet --- src/app/app.module.ts | 4 +- src/pages/add/add.html | 4 +- src/pages/add/add.ts | 10 ++--- .../single-wallet.html => create-wallet.html} | 23 ++++++++++- .../single-wallet.scss => create-wallet.scss} | 0 .../single-wallet.ts => create-wallet.ts} | 41 ++++++++++++++++--- 6 files changed, 65 insertions(+), 17 deletions(-) rename src/pages/add/create-wallet/{single-wallet/single-wallet.html => create-wallet.html} (76%) rename src/pages/add/create-wallet/{single-wallet/single-wallet.scss => create-wallet.scss} (100%) rename src/pages/add/create-wallet/{single-wallet/single-wallet.ts => create-wallet.ts} (77%) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 1de28ee3b..044130e51 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -25,7 +25,7 @@ import { CopayApp } from './app.component'; /* Pages */ import { AddPage } from '../pages/add/add'; -import { SingleWalletPage } from '../pages/add/create-wallet/single-wallet/single-wallet'; +import { CreateWalletPage } from '../pages/add/create-wallet/create-wallet'; import { BackupRequestPage } from '../pages/onboarding/backup-request/backup-request'; import { DisclaimerPage } from '../pages/onboarding/disclaimer/disclaimer'; import { EmailPage } from '../pages/onboarding/email/email'; @@ -76,7 +76,7 @@ export function createTranslateLoader(http: Http) { let pages: any = [ AddPage, - SingleWalletPage, + CreateWalletPage, AboutPage, AdvancedPage, AltCurrencyPage, diff --git a/src/pages/add/add.html b/src/pages/add/add.html index 45f37142b..8557911cf 100644 --- a/src/pages/add/add.html +++ b/src/pages/add/add.html @@ -6,13 +6,13 @@ - + New personal wallet - + Create shared wallet diff --git a/src/pages/add/add.ts b/src/pages/add/add.ts index 8f3344444..021d332bc 100644 --- a/src/pages/add/add.ts +++ b/src/pages/add/add.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; import { NavController } from 'ionic-angular'; -import { SingleWalletPage } from "./create-wallet/single-wallet/single-wallet"; +import { CreateWalletPage } from "./create-wallet/create-wallet"; @Component({ selector: 'page-add', @@ -13,12 +13,8 @@ export class AddPage { console.log('ionViewDidLoad AddPage'); } - goToSingleWallet() { - this.navCtrl.push(SingleWalletPage); - } - - goToSharedeWallet() { - // this.navCtrl.push(); + goToCreateWallet(isShared: boolean) { + this.navCtrl.push(CreateWalletPage, {isShared: isShared}); } goToJoinWallet() { diff --git a/src/pages/add/create-wallet/single-wallet/single-wallet.html b/src/pages/add/create-wallet/create-wallet.html similarity index 76% rename from src/pages/add/create-wallet/single-wallet/single-wallet.html rename to src/pages/add/create-wallet/create-wallet.html index 97f6fe560..4bd8adfde 100644 --- a/src/pages/add/create-wallet/single-wallet/single-wallet.html +++ b/src/pages/add/create-wallet/create-wallet.html @@ -1,6 +1,6 @@ - Create personal wallet + {{title}} @@ -11,6 +11,27 @@ +
+ + Your name + + + + + Total number of copayers + + {{copayer}} + + + + + Required number of signatures + + {{signature}} + + +
+ diff --git a/src/pages/add/create-wallet/single-wallet/single-wallet.scss b/src/pages/add/create-wallet/create-wallet.scss similarity index 100% rename from src/pages/add/create-wallet/single-wallet/single-wallet.scss rename to src/pages/add/create-wallet/create-wallet.scss diff --git a/src/pages/add/create-wallet/single-wallet/single-wallet.ts b/src/pages/add/create-wallet/create-wallet.ts similarity index 77% rename from src/pages/add/create-wallet/single-wallet/single-wallet.ts rename to src/pages/add/create-wallet/create-wallet.ts index 90f706eb8..b84450cd0 100644 --- a/src/pages/add/create-wallet/single-wallet/single-wallet.ts +++ b/src/pages/add/create-wallet/create-wallet.ts @@ -1,17 +1,23 @@ import { Component, OnInit } from '@angular/core'; -import { NavController } from 'ionic-angular'; +import { NavController, NavParams } from 'ionic-angular'; import { Validators, FormBuilder, FormGroup } from '@angular/forms'; -import { AppProvider } from '../../../../providers/app/app'; +import { AppProvider } from '../../../providers/app/app'; +import * as _ from 'lodash'; @Component({ - selector: 'page-single-wallet', - templateUrl: 'single-wallet.html' + selector: 'page-create-wallet', + templateUrl: 'create-wallet.html' }) -export class SingleWalletPage implements OnInit{ +export class CreateWalletPage implements OnInit{ public formData: any; public showAdvOpts: boolean; + public COPAYER_PAIR_LIMITS: Array; + public copayers: any; + public signatures: any; public seedOptions: any; + public isShared: boolean; + public title: string; private appName: string; private derivationPathByDefault: string; @@ -20,14 +26,23 @@ export class SingleWalletPage implements OnInit{ constructor( public navCtrl: NavController, + public navParams: NavParams, private app: AppProvider, private fb: FormBuilder ) { + this.isShared = navParams.get('isShared'); + this.title = this.isShared ? 'Create shared wallet' : 'Create personal wallet'; this.derivationPathByDefault = "m/44'/0'/0'"; this.derivationPathForTestnet = "m/44'/1'/0'"; this.showAdvOpts = false; + this.COPAYER_PAIR_LIMITS = [2, 3, 4, 5, 6]; + this.copayers = _.clone(this.COPAYER_PAIR_LIMITS); + this.signatures = _.clone(this.COPAYER_PAIR_LIMITS); this.formData = { walletName: null, + copayerName: null, + copayerSelected: this.copayers[0], + signatureSelected: this.copayers[0], bwsURL: 'https://bws.bitpay.com/bws/api', recoveryPhrase: null, addPassword: false, @@ -45,6 +60,9 @@ export class SingleWalletPage implements OnInit{ ngOnInit() { this.createForm = this.fb.group({ walletName: ['', Validators.required], + copayerName: [''], + copayerSelected: [''], + signatureSelected: [''], bwsURL: [''], selectedSeed: [''], recoveryPhrase: [''], @@ -57,6 +75,10 @@ export class SingleWalletPage implements OnInit{ singleAddress: [''], }); + if (this.isShared) { + this.createForm.get('copayerName').setValidators([Validators.required]); + } + this.createForm.get('addPassword').valueChanges.subscribe((addPassword: boolean) => { if (addPassword) { this.createForm.get('password').setValidators([Validators.required]); @@ -131,6 +153,15 @@ export class SingleWalletPage implements OnInit{ this.resetFormFields(); } + copayersChange(copayer: any) { + console.log(copayer); + } + + signaturesChange(signature: any) { + // TODO modify based on copayers + console.log(signature); + } + resetFormFields() { this.formData.password = null; this.formData.confirmPassword = null;