From 414e1911ece4d4c0a9ea812b560f020d35710168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 25 Sep 2017 11:39:29 -0300 Subject: [PATCH] Feat: popup provider added --- src/app/app.module.ts | 220 +++++++++++++++--------------- src/pages/home/home.html | 1 + src/pages/home/home.ts | 12 +- src/providers/popup/popup.spec.ts | 0 src/providers/popup/popup.ts | 69 ++++++++++ 5 files changed, 193 insertions(+), 109 deletions(-) create mode 100644 src/providers/popup/popup.spec.ts create mode 100644 src/providers/popup/popup.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a618fd78f..a41182721 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,159 +1,165 @@ import { BrowserModule } from '@angular/platform-browser'; -import { HttpModule, Http } from '@angular/http'; import { ErrorHandler, NgModule, APP_INITIALIZER } from '@angular/core'; +import { HttpModule, Http } from '@angular/http'; import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; /* Native modules */ +import { Clipboard } from '@ionic-native/clipboard'; +import { QRScanner } from '@ionic-native/qr-scanner'; import { StatusBar } from '@ionic-native/status-bar'; import { SplashScreen } from '@ionic-native/splash-screen'; -import { Toast } from '@ionic-native/toast'; -import { Clipboard } from '@ionic-native/clipboard'; import { SocialSharing } from '@ionic-native/social-sharing'; -import { QRScanner } from '@ionic-native/qr-scanner'; +import { Toast } from '@ionic-native/toast'; /* Modules */ +import { MomentModule } from 'angular2-moment'; import { NgLoggerModule, Logger, Level } from '@nsalaun/ng-logger'; +import { QRCodeModule } from 'angular2-qrcode'; import { TranslateModule, TranslateLoader } from '@ngx-translate/core'; import { TranslatePoHttpLoader } from '@biesbjerg/ngx-translate-po-http-loader'; -import { QRCodeModule } from 'angular2-qrcode'; -import { MomentModule } from 'angular2-moment'; /* Copay App */ import { CopayApp } from './app.component'; /* Pages */ -import { TabsPage } from '../pages/tabs/tabs'; -import { OnboardingPage } from '../pages/onboarding/onboarding'; -import { TourPage } from '../pages/onboarding/tour/tour'; -import { EmailPage } from '../pages/onboarding/email/email'; import { BackupRequestPage } from '../pages/onboarding/backup-request/backup-request'; import { DisclaimerPage } from '../pages/onboarding/disclaimer/disclaimer'; +import { EmailPage } from '../pages/onboarding/email/email'; +import { OnboardingPage } from '../pages/onboarding/onboarding'; +import { TabsPage } from '../pages/tabs/tabs'; +import { TourPage } from '../pages/onboarding/tour/tour'; + /* Tabs */ import { HomePage } from '../pages/home/home'; import { ReceivePage } from '../pages/receive/receive'; import { ScanPage } from '../pages/scan/scan'; import { SendPage } from '../pages/send/send'; import { SettingsPage } from '../pages/settings/settings'; + /* Settings */ import { AboutPage } from '../pages/settings/about/about'; import { AdvancedPage } from '../pages/settings/advanced/advanced'; -import { TermsOfUsePage } from '../pages/settings/about/terms-of-use/terms-of-use'; import { AltCurrencyPage } from '../pages/settings/alt-currency/alt-currency'; +import { TermsOfUsePage } from '../pages/settings/about/terms-of-use/terms-of-use'; /* Send */ import { AmountPage } from '../pages/send/amount/amount'; import { ConfirmPage } from '../pages/send/confirm/confirm'; + /* Receive */ import { CustomAmountPage } from '../pages/receive/custom-amount/custom-amount'; - /* Providers */ -import { WalletProvider } from '../providers/wallet/wallet'; -import { PersistenceProvider, persistenceProviderFactory } from '../providers/persistence/persistence'; import { AppProvider } from '../providers/app/app'; -import { PlatformProvider } from '../providers/platform/platform'; +import { BwcProvider } from '../providers/bwc/bwc'; import { ConfigProvider } from '../providers/config/config'; import { LanguageProvider } from '../providers/language/language'; -import { ScanProvider } from '../providers/scan/scan'; +import { PersistenceProvider, persistenceProviderFactory } from '../providers/persistence/persistence'; +import { PlatformProvider } from '../providers/platform/platform'; +import { PopupProvider } from '../providers/popup/popup'; import { ProfileProvider } from '../providers/profile/profile'; -import { BwcProvider } from '../providers/bwc/bwc'; import { RateProvider } from '../providers/rate/rate'; +import { ScanProvider } from '../providers/scan/scan'; +import { WalletProvider } from '../providers/wallet/wallet'; export function createTranslateLoader(http: Http) { return new TranslatePoHttpLoader(http, 'assets/i18n', '.po'); } +let pages: any = [ + AboutPage, + AdvancedPage, + AltCurrencyPage, + AmountPage, + BackupRequestPage, + ConfirmPage, + CustomAmountPage, + CopayApp, + DisclaimerPage, + EmailPage, + HomePage, + OnboardingPage, + ReceivePage, + SendPage, + ScanPage, + SettingsPage, + TermsOfUsePage, + TourPage, + TabsPage, +]; + +let providers: any = [ + AppProvider, + BwcProvider, + ConfigProvider, + Clipboard, + LanguageProvider, + PlatformProvider, + ProfileProvider, + PopupProvider, + QRScanner, + RateProvider, + StatusBar, + SplashScreen, + ScanProvider, + SocialSharing, + Toast, + WalletProvider, + { + provide: ErrorHandler, + useClass: IonicErrorHandler + }, + { + provide: APP_INITIALIZER, + useFactory: (app: AppProvider) => () => app.load(), + deps: [AppProvider], + multi: true + }, + { + provide: PersistenceProvider, + useFactory: persistenceProviderFactory, + deps: [PlatformProvider, Logger], + multi: false + }, +]; + +let imports: any = [ + BrowserModule, + IonicModule.forRoot(CopayApp), + HttpModule, + NgLoggerModule.forRoot(Level.LOG), + MomentModule, + QRCodeModule, + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useFactory: createTranslateLoader, + deps: [Http] + } + }), +]; + +export function declarationsComponents() { + return pages; +} + +export function entryComponents() { + return pages; +} + +export function providersComponents() { + return providers; +} + +export function importsComponents() { + return imports; +} + @NgModule({ - declarations: [ - CopayApp, - HomePage, - ReceivePage, - SendPage, - ScanPage, - SettingsPage, - AboutPage, - AdvancedPage, - TermsOfUsePage, - OnboardingPage, - TourPage, - EmailPage, - BackupRequestPage, - DisclaimerPage, - TabsPage, - AmountPage, - ConfirmPage, - CustomAmountPage, - AltCurrencyPage - ], - imports: [ - BrowserModule, - HttpModule, - NgLoggerModule.forRoot(Level.LOG), - MomentModule, - QRCodeModule, - TranslateModule.forRoot({ - loader: { - provide: TranslateLoader, - useFactory: createTranslateLoader, - deps: [Http] - } - }), - IonicModule.forRoot(CopayApp) - ], + declarations: declarationsComponents(), + imports: importsComponents(), bootstrap: [IonicApp], - entryComponents: [ - CopayApp, - HomePage, - ReceivePage, - ScanPage, - SendPage, - SettingsPage, - AboutPage, - AdvancedPage, - TermsOfUsePage, - OnboardingPage, - TourPage, - EmailPage, - BackupRequestPage, - DisclaimerPage, - TabsPage, - AmountPage, - ConfirmPage, - CustomAmountPage, - AltCurrencyPage - ], - providers: [ - StatusBar, - SplashScreen, - Clipboard, - Toast, - SocialSharing, - { - provide: ErrorHandler, - useClass: IonicErrorHandler - }, - { - provide: APP_INITIALIZER, - useFactory: (app: AppProvider) => () => app.load(), - deps: [AppProvider], - multi: true - }, - { - provide: PersistenceProvider, - useFactory: persistenceProviderFactory, - deps: [PlatformProvider, Logger], - multi: false - }, - WalletProvider, - AppProvider, - PlatformProvider, - ConfigProvider, - LanguageProvider, - QRScanner, - ScanProvider, - ProfileProvider, - BwcProvider, - RateProvider - ] + entryComponents: entryComponents(), + providers: providersComponents() }) export class AppModule { } diff --git a/src/pages/home/home.html b/src/pages/home/home.html index a31ed6f60..db643a9b4 100644 --- a/src/pages/home/home.html +++ b/src/pages/home/home.html @@ -13,4 +13,5 @@ {{wallet.credentials.coin}} - {{wallet.credentials.walletId}} + diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts index d14554de2..4f0c5c89c 100644 --- a/src/pages/home/home.ts +++ b/src/pages/home/home.ts @@ -1,6 +1,7 @@ import { Component } from '@angular/core'; import { NavController } from 'ionic-angular'; import { ProfileProvider } from '../../providers/profile/profile'; +import { PopupProvider } from '../../providers/popup/popup'; @Component({ selector: 'page-home', @@ -11,13 +12,20 @@ export class HomePage { constructor( public navCtrl: NavController, - private profile: ProfileProvider + private profile: ProfileProvider, + private popup: PopupProvider, ) { } ionViewDidLoad() { console.log('ionViewDidLoad HomePage'); this.wallets = this.profile.bind(); - console.log('[home.ts:20]',this.wallets); //TODO + console.log('[home.ts:20]', this.wallets); //TODO + } + + openPopup() { + //this.popup._ionicAlert('Hola mi nombre es gabriel', 'si, ese es mi nombre', 'Si'); + //this.popup._ionicConfirm('hola aceptas este dinerillo?', 'dinero gratis', 'Si', 'cancel'); + //this.popup._ionicPrompt('Ingrese un valor', 'Ingreselo por favor', 'Si', 'no', null); } } diff --git a/src/providers/popup/popup.spec.ts b/src/providers/popup/popup.spec.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/providers/popup/popup.ts b/src/providers/popup/popup.ts new file mode 100644 index 000000000..3c7afeb32 --- /dev/null +++ b/src/providers/popup/popup.ts @@ -0,0 +1,69 @@ +import { Injectable } from '@angular/core'; +import { Platform } from 'ionic-angular'; +import { AlertController } from 'ionic-angular'; + +@Injectable() +export class PopupProvider { + constructor(private platform: Platform, public alertCtrl: AlertController) { + } + + ionicAlert(title, subTitle, okText): void { + let alert = this.alertCtrl.create({ + title: title, + subTitle: subTitle, + buttons: [okText] + }); + alert.present(); + }; + + ionicConfirm(title, message, okText, cancelText): void { + let confirm = this.alertCtrl.create({ + title: title, + message: message, + buttons: [ + { + text: cancelText, + handler: () => { + console.log('Disagree clicked'); + } + }, + { + text: okText, + handler: () => { + console.log('Agree clicked'); + } + } + ] + }); + confirm.present(); + }; + + ionicPrompt(title, message, okText, cancelText, opts) { + opts = opts || {}; + let prompt = this.alertCtrl.create({ + title: title, + message: message, + inputs: [ + { + name: 'title', + placeholder: 'Title' + }, + ], + buttons: [ + { + text: cancelText, + handler: data => { + console.log('Cancel clicked'); + } + }, + { + text: okText, + handler: data => { + console.log('Saved clicked'); + } + } + ] + }); + prompt.present(); + } +}