Feat: popup provider added

This commit is contained in:
Gabriel Bazán 2017-09-25 11:39:29 -03:00
parent fbbd8baf8c
commit 414e1911ec
5 changed files with 193 additions and 109 deletions

View File

@ -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 { }

View File

@ -13,4 +13,5 @@
{{wallet.credentials.coin}} - {{wallet.credentials.walletId}}
</ion-card-content>
</ion-card>
<button (click)="openPopup()" ion-button>Default</button>
</ion-content>

View File

@ -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);
}
}

View File

View File

@ -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();
}
}