Commit 031c8443 by Alen Jose

july-27 lang

parent c6190ae6
...@@ -103,5 +103,4 @@ ...@@ -103,5 +103,4 @@
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" /> <plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
<plugin name="mx.ferreyra.callnumber" spec="~0.0.2" /> <plugin name="mx.ferreyra.callnumber" spec="~0.0.2" />
<engine name="android" spec="7.1.0" /> <engine name="android" spec="7.1.0" />
<plugin name="cordova-plugin-gyroscope" spec="^0.1.4" />
</widget> </widget>
...@@ -404,6 +404,16 @@ ...@@ -404,6 +404,16 @@
"localforage-cordovasqlitedriver": "1.5.0" "localforage-cordovasqlitedriver": "1.5.0"
} }
}, },
"@ngx-translate/core": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-9.1.1.tgz",
"integrity": "sha1-rhA5KINrip4Gn9Li52+iGYzH5ig="
},
"@ngx-translate/http-loader": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-2.0.1.tgz",
"integrity": "sha1-qmd4jmS/qGUmkad7Ais7QDEgkRM="
},
"@types/localforage": { "@types/localforage": {
"version": "0.0.30", "version": "0.0.30",
"resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.30.tgz", "resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.30.tgz",
...@@ -2445,11 +2455,6 @@ ...@@ -2445,11 +2455,6 @@
"resolved": "https://registry.npmjs.org/cordova-plugin-googleplus/-/cordova-plugin-googleplus-5.3.0.tgz", "resolved": "https://registry.npmjs.org/cordova-plugin-googleplus/-/cordova-plugin-googleplus-5.3.0.tgz",
"integrity": "sha1-fvQYIF9pMBii0G0suGXenXy3Ico=" "integrity": "sha1-fvQYIF9pMBii0G0suGXenXy3Ico="
}, },
"cordova-plugin-gyroscope": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/cordova-plugin-gyroscope/-/cordova-plugin-gyroscope-0.1.4.tgz",
"integrity": "sha1-1OQ+fI54qLTZCQRgvme1FhgWglk="
},
"cordova-plugin-network-information": { "cordova-plugin-network-information": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/cordova-plugin-network-information/-/cordova-plugin-network-information-2.0.1.tgz", "resolved": "https://registry.npmjs.org/cordova-plugin-network-information/-/cordova-plugin-network-information-2.0.1.tgz",
......
...@@ -34,6 +34,8 @@ ...@@ -34,6 +34,8 @@
"@ionic-native/status-bar": "3.12.1", "@ionic-native/status-bar": "3.12.1",
"@ionic-native/toast": "^4.7.0", "@ionic-native/toast": "^4.7.0",
"@ionic/storage": "2.0.1", "@ionic/storage": "2.0.1",
"@ngx-translate/core": "^9.1.1",
"@ngx-translate/http-loader": "^2.0.1",
"angularfire2": "^5.0.0-rc.10", "angularfire2": "^5.0.0-rc.10",
"call-number": "^1.0.1", "call-number": "^1.0.1",
"cordova": "^8.0.0", "cordova": "^8.0.0",
...@@ -43,7 +45,6 @@ ...@@ -43,7 +45,6 @@
"cordova-plugin-facebook4": "^1.9.1", "cordova-plugin-facebook4": "^1.9.1",
"cordova-plugin-geolocation": "^4.0.1", "cordova-plugin-geolocation": "^4.0.1",
"cordova-plugin-googleplus": "^5.3.0", "cordova-plugin-googleplus": "^5.3.0",
"cordova-plugin-gyroscope": "^0.1.4",
"cordova-plugin-network-information": "^2.0.1", "cordova-plugin-network-information": "^2.0.1",
"cordova-plugin-request-location-accuracy": "^2.2.3", "cordova-plugin-request-location-accuracy": "^2.2.3",
"cordova-plugin-splashscreen": "^4.0.3", "cordova-plugin-splashscreen": "^4.0.3",
...@@ -87,11 +88,10 @@ ...@@ -87,11 +88,10 @@
"cordova-plugin-datepicker": {}, "cordova-plugin-datepicker": {},
"cordova-plugin-request-location-accuracy": {}, "cordova-plugin-request-location-accuracy": {},
"cordova-plugin-network-information": {}, "cordova-plugin-network-information": {},
"mx.ferreyra.callnumber": {}, "mx.ferreyra.callnumber": {}
"cordova-plugin-gyroscope": {}
}, },
"platforms": [ "platforms": [
"android" "android"
] ]
} }
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ import { Myservice } from "../providers/myservice"; ...@@ -8,6 +8,7 @@ import { Myservice } from "../providers/myservice";
import { LocationAccuracy } from '@ionic-native/location-accuracy'; import { LocationAccuracy } from '@ionic-native/location-accuracy';
import { Network } from '@ionic-native/network'; import { Network } from '@ionic-native/network';
import { OneSignal } from '@ionic-native/onesignal'; import { OneSignal } from '@ionic-native/onesignal';
import { TranslateService } from '@ngx-translate/core';
@Component({ @Component({
templateUrl: 'app.html' templateUrl: 'app.html'
...@@ -17,8 +18,13 @@ export class MyApp { ...@@ -17,8 +18,13 @@ export class MyApp {
rootPage: string ; rootPage: string ;
local:user; local:user;
lang: string = 'en';
title: string
msg: string
quit: string
cancel: string
constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen, public storage: Storage, public events: Events, private myservice: Myservice, private locationAccuracy: LocationAccuracy, private network: Network, public alertCtrl: AlertController, private oneSignal: OneSignal) { constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen, public storage: Storage, public events: Events, private myservice: Myservice, private locationAccuracy: LocationAccuracy, private network: Network, public alertCtrl: AlertController, private oneSignal: OneSignal, private translate: TranslateService) {
this.initializeApp(); this.initializeApp();
} }
...@@ -36,6 +42,11 @@ export class MyApp { ...@@ -36,6 +42,11 @@ export class MyApp {
this.rootPage = 'LandingPage' this.rootPage = 'LandingPage'
}) })
this.languageTrans();
this.events.subscribe('user:lang', data => {
this.languageTrans();
})
this.events.subscribe('user:profile', data => { this.events.subscribe('user:profile', data => {
this.local = data this.local = data
if (this.local) { if (this.local) {
...@@ -46,22 +57,21 @@ export class MyApp { ...@@ -46,22 +57,21 @@ export class MyApp {
this.statusBar.styleDefault(); this.statusBar.styleDefault();
this.splashScreen.hide(); this.splashScreen.hide();
this.enableLoc(); // this.enableLoc();
this.initOnesignal()
this.network.onDisconnect().subscribe(() => { this.network.onDisconnect().subscribe(() => {
const alert = this.alertCtrl.create({ const alert = this.alertCtrl.create({
title: 'Network Error', title: this.title,
message: 'No Internet Connection', message: this.msg,
buttons: [ buttons: [
{ {
text: 'Quit', text: this.quit,
handler: data => { handler: data => {
this.platform.exitApp(); this.platform.exitApp();
} }
}, { }, {
text: 'Cancel', text: this.cancel,
role: 'cancel' role: 'cancel'
} }
] ]
...@@ -116,4 +126,26 @@ export class MyApp { ...@@ -116,4 +126,26 @@ export class MyApp {
else else
this.nav.setRoot(page); this.nav.setRoot(page);
} }
languageTrans() {
this.storage.get('lang').then(data => {
if (data) {
this.translate.use(data);
this.lang = data;
this.lang_trans()
}
else {
this.translate.setDefaultLang('en');
}
})
}
lang_trans() {
this.translate.get(['sidemenu.Network Error', 'sidemenu.No Internet Connection', 'sidemenu.Quit', 'sidemenu.Cancel']).subscribe(value => {
this.title = value["sidemenu.Network Error"]
this.msg = value["sidemenu.No Internet Connection"]
this.quit = value["sidemenu.Quit"]
this.cancel = value["sidemenu.Cancel"]
})
}
} }
\ No newline at end of file
...@@ -10,10 +10,10 @@ ...@@ -10,10 +10,10 @@
</div> </div>
<div class="cab_sidemenu_list"> <div class="cab_sidemenu_list">
<ul> <ul>
<li menuClose class="book" (click)="open_page('HomePage')">Book Ride</li> <li menuClose class="book" (click)="open_page('HomePage')">{{'sidemenu.Book Ride'|translate}}</li>
<li menuClose class="trip" (click)="open_page('MytripsPage')">My Trips</li> <li menuClose class="trip" (click)="open_page('MytripsPage')">{{'sidemenu.My Trips'|translate}}</li>
<!-- <li menuClose class="settings" (click)="open_page('SettingsPage')">Settings</li> --> <!-- <li menuClose class="settings" (click)="open_page('SettingsPage')">Settings</li> -->
<li menuClose class="logout" (click)="open_page('LandingPage')">Logout</li> <li menuClose class="logout" (click)="open_page('LandingPage')">{{'sidemenu.Logout'|translate}}</li>
</ul> </ul>
</div> </div>
</div> </div>
......
...@@ -23,7 +23,9 @@ import { dataService } from "../providers/common.service"; ...@@ -23,7 +23,9 @@ import { dataService } from "../providers/common.service";
import { Network } from '@ionic-native/network'; import { Network } from '@ionic-native/network';
import { CallNumber } from '@ionic-native/call-number'; import { CallNumber } from '@ionic-native/call-number';
import { OneSignal } from '@ionic-native/onesignal'; import { OneSignal } from '@ionic-native/onesignal';
import { Gyroscope } from '@ionic-native/gyroscope'; import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClientModule, HttpClient } from '@angular/common/http';
export const firebaseConfig = { export const firebaseConfig = {
apiKey: "AIzaSyDLrbLd4RCCh86xuTVu7-cfJ28We_cG1sU", apiKey: "AIzaSyDLrbLd4RCCh86xuTVu7-cfJ28We_cG1sU",
...@@ -34,6 +36,10 @@ export const firebaseConfig = { ...@@ -34,6 +36,10 @@ export const firebaseConfig = {
messagingSenderId: "151146703576" messagingSenderId: "151146703576"
}; };
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
@NgModule({ @NgModule({
declarations: [ declarations: [
MyApp MyApp
...@@ -44,6 +50,14 @@ export const firebaseConfig = { ...@@ -44,6 +50,14 @@ export const firebaseConfig = {
HttpModule, HttpModule,
IonicStorageModule.forRoot(), IonicStorageModule.forRoot(),
AngularFireModule.initializeApp(firebaseConfig), AngularFireModule.initializeApp(firebaseConfig),
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
], ],
bootstrap: [IonicApp], bootstrap: [IonicApp],
entryComponents: [ entryComponents: [
...@@ -68,7 +82,6 @@ export const firebaseConfig = { ...@@ -68,7 +82,6 @@ export const firebaseConfig = {
Network, Network,
CallNumber, CallNumber,
OneSignal, OneSignal,
Gyroscope
] ]
}) })
export class AppModule {} export class AppModule {}
{
"landing": {
"New User ? Sign up now!": "New User ? Sign up now!",
"Sign in": "Sign in",
"Or Sign in with": "Or Sign in with"
},
"signup": {
"Sign Up": "Sign Up",
"Name": "Name",
"Enter a valid Name": "Enter a valid Name",
"Mobile Number": "Mobile Number",
"Enter a valid Mobile": "Enter a valid Mobile",
"Email": "Email",
"Enter a valid Email": "Enter a valid Email",
"Password": "Password",
"Minimum 6 characters": "Minimum 6 characters",
"Confirm Password": "Confirm Password",
"Password mismatches": "Password mismatches",
"I accept terms & condition": "I accept terms & condition",
"Please accept terms & conditions": "Please accept terms & conditions",
"Secret key miss match": "Secret key miss match",
"Mail Id already in use": "Mail Id already in use",
"User Name already in use": "User Name already in use",
"Mobile number already in use": "Mobile number already in use",
"Successfully Signed up": "Successfully Signed up"
},
"login": {
"Login": "Login",
"Mobile Number": "Mobile Number",
"Enter a valid Mobile": "Enter a valid Mobile",
"Password": "Password",
"Minimum 6 characters": "Minimum 6 characters",
"Sign In": "Sign In",
"Forgot Password": "Forgot Password",
"Secret key miss match": "Secret key miss match",
"Successfully Logged in": "Successfully Logged in",
"Unknown credential , please try again!": "Unknown credential , please try again!"
},
"home": {
"Pickup Location": "Pickup Location",
"Drop Location": "Drop Location",
"BOOK A RIDE": "BOOK A RIDE"
},
"sidemenu": {
"Book Ride": "Book Ride",
"My Trips": "My Trips",
"Logout": "Logout"
},
"forgot": {
"Forgot Password": "Forgot Password",
"Email": "Email",
"Enter a valid Email": "Enter a valid Email",
"Sent recovery password": "Sent recovery password",
"A temporary password has been sent to the email address you have provided": "A temporary password has been sent to the email address you have provided",
"Email ID doesnot exist": "Email ID doesnot exist",
"Secret key miss match": "Secret key miss match"
},
"search": {
"Search Results": "Search Results",
"Search": "Search",
"Popular Search": "Popular Search",
"Secret key miss match": "Secret key miss match",
"No searches found": "No searches found"
}
}
\ No newline at end of file
...@@ -5,20 +5,20 @@ ...@@ -5,20 +5,20 @@
</ion-header> </ion-header>
<ion-content padding class="themelogin_background"> <ion-content padding class="themelogin_background">
<div class="cab_login_wrapper"> <div class="cab_login_wrapper">
<h4>Forgot Password</h4> <h4>{{'forgot.Forgot Password'|translate}}</h4>
<hr> <hr>
<br> <br>
<div class="cab_form"> <div class="cab_form">
<form [formGroup]="forgotForm"> <form [formGroup]="forgotForm">
<div class="cab_form_row"> <div class="cab_form_row">
<div class="cab_phone_number"> <div class="cab_phone_number">
<input class="cab_phone_input floatRight cab_mail" type="email" placeholder="Email" formControlName="email"> <input class="cab_phone_input floatRight cab_mail" type="email" placeholder="{{'forgot.Email'|translate}}" formControlName="email">
<div class="clear"></div> <div class="clear"></div>
<div class="alert error" *ngIf="forgotForm.get('email').hasError('pattern') && (forgotForm.get('email').dirty || forgotForm.get('email').touched)"> <div class="alert error" *ngIf="forgotForm.get('email').hasError('pattern') && (forgotForm.get('email').dirty || forgotForm.get('email').touched)">
Enter a valid Email {{'forgot.Enter a valid Email'|translate}}
</div> </div>
<div class="alert error" *ngIf="forgotForm.get('email').hasError('required') && (forgotForm.get('email').dirty || forgotForm.get('email').touched)"> <div class="alert error" *ngIf="forgotForm.get('email').hasError('required') && (forgotForm.get('email').dirty || forgotForm.get('email').touched)">
Enter a valid Email {{'forgot.Enter a valid Email'|translate}}
</div> </div>
</div> </div>
</div> </div>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<br> <br>
<br> <br>
<div class="cab_form_row"> <div class="cab_form_row">
<button ion-button class="cab_sign_btn" (click)="forgot()" [disabled]="forgotForm.invalid" >Sent recovery password</button> <button ion-button class="cab_sign_btn" (click)="forgot()" [disabled]="forgotForm.invalid" >{{'forgot.Sent recovery password'|translate}}</button>
</div> </div>
</div> </div>
</div> </div>
......
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; import { IonicPageModule } from 'ionic-angular';
import { ForgotPage } from './forgot'; import { ForgotPage } from './forgot';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -8,6 +9,7 @@ import { ForgotPage } from './forgot'; ...@@ -8,6 +9,7 @@ import { ForgotPage } from './forgot';
], ],
imports: [ imports: [
IonicPageModule.forChild(ForgotPage), IonicPageModule.forChild(ForgotPage),
TranslateModule
], ],
}) })
export class ForgotPageModule {} export class ForgotPageModule {}
...@@ -2,6 +2,8 @@ import { Component } from '@angular/core'; ...@@ -2,6 +2,8 @@ import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular'; import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { FormGroup, Validators, FormBuilder } from '@angular/forms' import { FormGroup, Validators, FormBuilder } from '@angular/forms'
import { Myservice } from '../../providers/myservice' import { Myservice } from '../../providers/myservice'
import { TranslateService } from '@ngx-translate/core';
import { Storage } from "@ionic/storage";
@IonicPage() @IonicPage()
@Component({ @Component({
...@@ -11,8 +13,9 @@ import { Myservice } from '../../providers/myservice' ...@@ -11,8 +13,9 @@ import { Myservice } from '../../providers/myservice'
export class ForgotPage { export class ForgotPage {
forgotForm: FormGroup forgotForm: FormGroup
lang: string = 'en';
constructor(public navCtrl: NavController, public navParams: NavParams, private formbuilder: FormBuilder, private myservice: Myservice) { constructor(public navCtrl: NavController, public navParams: NavParams, private formbuilder: FormBuilder, private myservice: Myservice, private translate: TranslateService, private storage:Storage) {
this.forgotForm = this.formbuilder.group({ this.forgotForm = this.formbuilder.group({
email: ['', Validators.compose([Validators.required, Validators.pattern("[a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}")])], email: ['', Validators.compose([Validators.required, Validators.pattern("[a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}")])],
...@@ -20,16 +23,32 @@ export class ForgotPage { ...@@ -20,16 +23,32 @@ export class ForgotPage {
}) })
} }
ionViewDidEnter(){
this.storage.get('lang').then(lang => {
if (lang != null) {
this.translate.use(lang)
this.lang = lang;
}
else {
this.translate.use('en')
}
})
}
forgot() { forgot() {
this.myservice.show_loader() this.myservice.show_loader()
this.myservice.load_post(this.forgotForm.value, 'Forget_password').subscribe(response => { this.myservice.load_post(this.forgotForm.value, 'Forget_password').subscribe(response => {
this.myservice.hide_loader() this.myservice.hide_loader()
if (response.status == 'success') { if (response.status == 'success') {
this.myservice.show_alert('', response.message) this.translate.get(['forgot.' + response.message]).subscribe(value => {
this.myservice.show_alert('', value['forgot.' + response.message])
})
this.navCtrl.pop(); this.navCtrl.pop();
} }
else { else {
this.myservice.show_alert('', response.message) this.translate.get(['forgot.' + response.message]).subscribe(value => {
this.myservice.show_alert('', value['forgot.' + response.message])
})
} }
}) })
} }
......
...@@ -14,12 +14,12 @@ ...@@ -14,12 +14,12 @@
<ion-footer> <ion-footer>
<form [formGroup]="locForm"> <form [formGroup]="locForm">
<div class="cab_footer_location theme_bgcolor"> <div class="cab_footer_location theme_bgcolor">
<input class="cab_location_input cab_current" placeholder="Pickup Location" id="pickUp" formControlName="pickLoc"> <input class="cab_location_input cab_current" placeholder="{{'home.Pickup Location'|translate}}" id="pickUp" formControlName="pickLoc">
<input class="cab_location_input cab_destination" placeholder="Drop Location" id="drop" formControlName="dropLoc"> <input class="cab_location_input cab_destination" placeholder="{{'home.Drop Location'|translate}}" id="drop" formControlName="dropLoc">
</div> </div>
</form> </form>
<div class="cab_footer_btn_bay"> <div class="cab_footer_btn_bay">
<button ion-button class="cab_footer_btn single_btn" (click)="ridemore()" [disabled]="locForm.invalid">BOOK A RIDE</button> <button ion-button class="cab_footer_btn single_btn" (click)="ridemore()" [disabled]="locForm.invalid">{{'home.BOOK A RIDE'|translate}}</button>
<!-- --> <!-- -->
<div class="clear"></div> <div class="clear"></div>
</div> </div>
......
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home'; import { HomePage } from './home';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -8,6 +9,7 @@ import { HomePage } from './home'; ...@@ -8,6 +9,7 @@ import { HomePage } from './home';
], ],
imports: [ imports: [
IonicPageModule.forChild(HomePage), IonicPageModule.forChild(HomePage),
TranslateModule
], ],
}) })
export class HomePageModule {} export class HomePageModule {}
...@@ -9,6 +9,7 @@ import { Validators, FormGroup, FormBuilder } from '@angular/forms' ...@@ -9,6 +9,7 @@ import { Validators, FormGroup, FormBuilder } from '@angular/forms'
import { dataService } from "../../providers/common.service"; import { dataService } from "../../providers/common.service";
import { Myservice } from "../../providers/myservice"; import { Myservice } from "../../providers/myservice";
import { user } from "../../models/mymodel"; import { user } from "../../models/mymodel";
import { TranslateService } from '@ngx-translate/core';
declare var google; declare var google;
@IonicPage() @IonicPage()
...@@ -34,8 +35,9 @@ export class HomePage { ...@@ -34,8 +35,9 @@ export class HomePage {
locRef: any locRef: any
lastPos: any lastPos: any
temp: number = 0; temp: number = 0;
lang: string = 'en';
constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController, public storage: Storage, private geolocation: Geolocation, private firebase: fireService, private db: AngularFireDatabase, private formBuilder: FormBuilder, private data: dataService, private myservice: Myservice) { constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController, public storage: Storage, private geolocation: Geolocation, private firebase: fireService, private db: AngularFireDatabase, private formBuilder: FormBuilder, private data: dataService, private myservice: Myservice, private translate: TranslateService) {
this.locForm = this.formBuilder.group({ this.locForm = this.formBuilder.group({
pickLoc: ['', Validators.required], pickLoc: ['', Validators.required],
...@@ -44,6 +46,15 @@ export class HomePage { ...@@ -44,6 +46,15 @@ export class HomePage {
} }
ionViewDidEnter() { ionViewDidEnter() {
this.storage.get('lang').then(lang => {
if (lang != null) {
this.translate.use(lang)
this.lang = lang;
}
else {
this.translate.use('en')
}
})
this.data.setbookingData('') this.data.setbookingData('')
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
</div> </div>
<div class="cab_form"> <div class="cab_form">
<div class="cab_form_row"> <div class="cab_form_row">
<button ion-button class="cab_sign_btn" (click)="open_page('SignupPage')">New User ? Sign up now!</button> <button ion-button class="cab_sign_btn" (click)="open_page('SignupPage')">{{'landing.New User ? Sign up now!'|translate}}</button>
</div> </div>
<div class="cab_form_row"> <div class="cab_form_row">
<button ion-button class="cab_sign_btn1" (click)="open_page('LoginPage')">Sign in</button> <button ion-button class="cab_sign_btn1" (click)="open_page('LoginPage')">{{'landing.Sign in'|translate}}</button>
</div> </div>
<!-- <div class="cab_form_row textCenter"> <!-- <div class="cab_form_row textCenter">
<p (click)="forgot()">Forgot Password</p> <p (click)="forgot()">Forgot Password</p>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</ion-content> </ion-content>
<ion-footer> <ion-footer>
<div class="cab_footer"> <div class="cab_footer">
<p>Or Sign in with</p> <p>{{'landing.Or Sign in with'|translate}}</p>
<li (click)="signInWithFB()"><ion-icon name="logo-facebook"></ion-icon></li> <li (click)="signInWithFB()"><ion-icon name="logo-facebook"></ion-icon></li>
<li (click)="signInWithGoogle()"><ion-icon name="logo-google"></ion-icon></li> <li (click)="signInWithGoogle()"><ion-icon name="logo-google"></ion-icon></li>
<div class="clear"></div> <div class="clear"></div>
......
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; import { IonicPageModule } from 'ionic-angular';
import { LandingPage } from './landing'; import { LandingPage } from './landing';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -8,6 +9,7 @@ import { LandingPage } from './landing'; ...@@ -8,6 +9,7 @@ import { LandingPage } from './landing';
], ],
imports: [ imports: [
IonicPageModule.forChild(LandingPage), IonicPageModule.forChild(LandingPage),
TranslateModule,
], ],
}) })
export class LandingPageModule {} export class LandingPageModule {}
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams,Events } from 'ionic-angular'; import { IonicPage, NavController, NavParams, Events, MenuController } from 'ionic-angular';
import { Facebook, FacebookLoginResponse } from '@ionic-native/facebook'; import { Facebook, FacebookLoginResponse } from '@ionic-native/facebook';
import { GooglePlus } from '@ionic-native/google-plus'; import { GooglePlus } from '@ionic-native/google-plus';
import { Myservice } from '../../providers/myservice' import { Myservice } from '../../providers/myservice'
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { fireService } from "../../providers/firebase.service"; import { fireService } from "../../providers/firebase.service";
import { Geolocation } from '@ionic-native/geolocation'; import { Geolocation } from '@ionic-native/geolocation';
import { TranslateService } from '@ngx-translate/core';
@IonicPage() @IonicPage()
@Component({ @Component({
...@@ -15,12 +16,25 @@ import { Geolocation } from '@ionic-native/geolocation'; ...@@ -15,12 +16,25 @@ import { Geolocation } from '@ionic-native/geolocation';
export class LandingPage { export class LandingPage {
fb_data = { email: '', firstname: '', lastname: '', gender: '', image: '', fb_id: '', id: '', name: '' }; fb_data = { email: '', firstname: '', lastname: '', gender: '', image: '', fb_id: '', id: '', name: '' };
gp_data = { email: '', firstname: '', lastname: '', image: '', google_id: '', id: '', name: '' }; gp_data = { email: '', firstname: '', lastname: '', image: '', google_id: '', id: '', name: '' };
lang: string = 'en';
constructor(public navCtrl: NavController, public navParams: NavParams, private fb: Facebook, private googlePlus: GooglePlus, private myservice: Myservice, public storage: Storage, private events: Events, private firebase: fireService, private geolocation: Geolocation) { constructor(public navCtrl: NavController, public navParams: NavParams, private fb: Facebook, private googlePlus: GooglePlus, private myservice: Myservice, public storage: Storage, private events: Events, private firebase: fireService, private geolocation: Geolocation, private translate: TranslateService, private menu: MenuController) {
} }
ionViewDidLoad() { ionViewDidEnter() {
console.log('ionViewDidLoad LandingPage'); this.menu.swipeEnable(false);
this.storage.get('lang').then(lang => {
if (lang != null) {
this.translate.use(lang)
this.lang = lang;
}
else {
this.translate.use('en').subscribe(resp=>{
console.log(resp)
})
}
})
} }
open_page(page){ open_page(page){
...@@ -100,6 +114,10 @@ export class LandingPage { ...@@ -100,6 +114,10 @@ export class LandingPage {
this.events.publish('user:profile', data); this.events.publish('user:profile', data);
} }
ionViewWillLeave(){
this.menu.swipeEnable(true);
}
getLoc(){ getLoc(){
var promise = new Promise((resolve, reject) => { var promise = new Promise((resolve, reject) => {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="cab_logo"> <div class="cab_logo">
<img src="assets/img/cab_logo.png" style="width: 120px;"> <img src="assets/img/cab_logo.png" style="width: 120px;">
</div> </div>
<h4>Login</h4> <h4>{{'login.Login'|translate}}</h4>
<hr> <hr>
<br> <br>
<div class="cab_form"> <div class="cab_form">
...@@ -18,19 +18,19 @@ ...@@ -18,19 +18,19 @@
<select class="cab_phone_code floatLeft" formControlName="dial_code"> <select class="cab_phone_code floatLeft" formControlName="dial_code">
<option *ngFor="let code of codes" value=+{{code.dialCode}}>+{{code.dialCode}}</option> <option *ngFor="let code of codes" value=+{{code.dialCode}}>+{{code.dialCode}}</option>
</select> </select>
<input class="cab_phone_input floatRight cab_call" placeholder="Mobile Number" formControlName="mobile" type="number"> <input class="cab_phone_input floatRight cab_call" placeholder="{{'login.Mobile Number'|translate}}" formControlName="mobile" type="number">
<div class="clear"></div> <div class="clear"></div>
<div class="alert error" *ngIf="loginForm.controls.mobile.invalid && (loginForm.get('mobile').dirty || loginForm.get('mobile').touched)"> <div class="alert error" *ngIf="loginForm.controls.mobile.invalid && (loginForm.get('mobile').dirty || loginForm.get('mobile').touched)">
Enter a valid Mobile {{'login.Enter a valid Mobile'|translate}}
</div> </div>
</div> </div>
</div> </div>
<br> <br>
<div class="cab_form_row"> <div class="cab_form_row">
<div class="cab_phone_number"> <div class="cab_phone_number">
<input class="cab_phone_input cab_pass width100" placeholder="Password" formControlName="password" type="password"> <input class="cab_phone_input cab_pass width100" placeholder="{{'login.Password'|translate}}" formControlName="password" type="password">
<div class="alert error" *ngIf="loginForm.controls.password.invalid && (loginForm.get('password').dirty || loginForm.get('password').touched)"> <div class="alert error" *ngIf="loginForm.controls.password.invalid && (loginForm.get('password').dirty || loginForm.get('password').touched)">
Minimum 6 characters {{'login.Minimum 6 characters'|translate}}
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
...@@ -45,11 +45,11 @@ ...@@ -45,11 +45,11 @@
</div> --> </div> -->
<br> <br>
<div class="cab_form_row"> <div class="cab_form_row">
<button ion-button class="cab_sign_btn" (click)="login()" [disabled]="loginForm.invalid">Sign In</button> <button ion-button class="cab_sign_btn" (click)="login()" [disabled]="loginForm.invalid">{{'login.Sign In'|translate}}</button>
</div> </div>
<br> <br>
<div class="cab_form_row textCenter"> <div class="cab_form_row textCenter">
<p (click)="forgot()">Forgot Password</p> <p (click)="forgot()">{{'login.Forgot Password'|translate}}</p>
</div> </div>
</div> </div>
</div> </div>
......
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; import { IonicPageModule } from 'ionic-angular';
import { LoginPage } from './login'; import { LoginPage } from './login';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -8,6 +9,7 @@ import { LoginPage } from './login'; ...@@ -8,6 +9,7 @@ import { LoginPage } from './login';
], ],
imports: [ imports: [
IonicPageModule.forChild(LoginPage), IonicPageModule.forChild(LoginPage),
TranslateModule
], ],
}) })
export class LoginPageModule {} export class LoginPageModule {}
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, Events } from 'ionic-angular'; import { IonicPage, NavController, NavParams, Events, MenuController } from 'ionic-angular';
import { Validators, FormGroup, FormBuilder } from '@angular/forms' import { Validators, FormGroup, FormBuilder } from '@angular/forms'
import { Myservice } from '../../providers/myservice' import { Myservice } from '../../providers/myservice'
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { Http } from '@angular/http' import { Http } from '@angular/http'
import { OrderbyPipe } from '../../providers/sort-pipe'; import { OrderbyPipe } from '../../providers/sort-pipe';
import { user } from "../../models/mymodel"; import { user } from "../../models/mymodel";
import { TranslateService } from '@ngx-translate/core';
@IonicPage() @IonicPage()
@Component({ @Component({
...@@ -16,8 +17,9 @@ export class LoginPage { ...@@ -16,8 +17,9 @@ export class LoginPage {
loginForm: FormGroup loginForm: FormGroup
codes:any; codes:any;
local:user local:user
lang: string = 'en';
constructor(public navCtrl: NavController, public navParams: NavParams, public events: Events, private formBuilder: FormBuilder, private myservice: Myservice, public storage: Storage, private http: Http, private orderbyPipe: OrderbyPipe) { constructor(public navCtrl: NavController, public navParams: NavParams, public events: Events, private formBuilder: FormBuilder, private myservice: Myservice, public storage: Storage, private http: Http, private orderbyPipe: OrderbyPipe, private translate: TranslateService, private menu: MenuController) {
this.loginForm = this.formBuilder.group({ this.loginForm = this.formBuilder.group({
mobile: ['', Validators.compose([Validators.required, this.myservice.checkLimit(10000000, 999999999999999)])], mobile: ['', Validators.compose([Validators.required, this.myservice.checkLimit(10000000, 999999999999999)])],
...@@ -32,6 +34,20 @@ export class LoginPage { ...@@ -32,6 +34,20 @@ export class LoginPage {
}) })
} }
ionViewDidEnter() {
this.menu.swipeEnable(false)
this.storage.get('lang').then(lang => {
if (lang != null) {
this.translate.use(lang)
this.lang = lang;
}
else {
this.translate.use('en')
}
})
}
open_page(page){ open_page(page){
this.navCtrl.push(page); this.navCtrl.push(page);
} }
...@@ -56,7 +72,9 @@ export class LoginPage { ...@@ -56,7 +72,9 @@ export class LoginPage {
} }
else{ else{
this.myservice.hide_loader(); this.myservice.hide_loader();
this.myservice.show_alert('Failed', response[0].message) this.translate.get(['login.' + response[0].message]).subscribe(value => {
this.myservice.show_alert('', value['login.' + response[0].message])
})
} }
}) })
} }
...@@ -69,4 +87,8 @@ export class LoginPage { ...@@ -69,4 +87,8 @@ export class LoginPage {
this.navCtrl.pop(); this.navCtrl.pop();
} }
ionViewWillLeave() {
this.menu.swipeEnable(true)
}
} }
...@@ -2,16 +2,16 @@ ...@@ -2,16 +2,16 @@
<button ion-button class="nav_btn theme_color floatLeft" (click)="dismiss()"> <button ion-button class="nav_btn theme_color floatLeft" (click)="dismiss()">
<ion-icon name="ios-arrow-back"></ion-icon> <ion-icon name="ios-arrow-back"></ion-icon>
</button> </button>
<div class="nav_header_title floatLeft">Search Results</div> <div class="nav_header_title floatLeft">{{'search.Search Results'|translate}}</div>
<button class="nav_btn floatRight"></button> <button class="nav_btn floatRight"></button>
<div class="clear"></div> <div class="clear"></div>
<div class="cab_footer_location theme_dark_bg"> <div class="cab_footer_location theme_dark_bg">
<input class="cab_location_input cab_search" placeholder="Search" [(ngModel)]="searchText"> <input class="cab_location_input cab_search" placeholder="{{'search.Search'|translate}}" [(ngModel)]="searchText">
</div> </div>
</ion-header> </ion-header>
<ion-content class="themedark_theme"> <ion-content class="themedark_theme">
<div class="cab_search_result_page"> <div class="cab_search_result_page">
<p>Popular Search</p> <p>{{'search.Popular Search'|translate}}</p>
<ul> <ul>
<li *ngFor="let search of searches | search : searchText" (click)="setDirection(search)"> <li *ngFor="let search of searches | search : searchText" (click)="setDirection(search)">
<h5>{{search.keyword}}</h5> <h5>{{search.keyword}}</h5>
......
...@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core'; ...@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; import { IonicPageModule } from 'ionic-angular';
import { SearchridePage } from './searchride'; import { SearchridePage } from './searchride';
import { SearchPipe } from "../../pipes/search/search"; import { SearchPipe } from "../../pipes/search/search";
import { TranslateModule } from "@ngx-translate/core";
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -10,6 +11,7 @@ import { SearchPipe } from "../../pipes/search/search"; ...@@ -10,6 +11,7 @@ import { SearchPipe } from "../../pipes/search/search";
], ],
imports: [ imports: [
IonicPageModule.forChild(SearchridePage), IonicPageModule.forChild(SearchridePage),
TranslateModule
], ],
}) })
export class SearchridePageModule {} export class SearchridePageModule {}
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams,ViewController } from 'ionic-angular'; import { IonicPage, NavController, NavParams, ViewController } from 'ionic-angular';
import { Myservice } from "../../providers/myservice"; import { Myservice } from "../../providers/myservice";
import { Storage } from "@ionic/storage"; import { Storage } from "@ionic/storage";
import { user, search } from "../../models/mymodel"; import { user, search } from "../../models/mymodel";
import { TranslateService } from '@ngx-translate/core';
@IonicPage() @IonicPage()
@Component({ @Component({
selector: 'page-searchride', selector: 'page-searchride',
templateUrl: 'searchride.html', templateUrl: 'searchride.html',
}) })
export class SearchridePage { export class SearchridePage {
local:user local: user
searches:Array<search> searches: Array<search>
searchText:string; searchText: string;
lang: string = 'en';
constructor(public navCtrl: NavController, public navParams: NavParams,public viewCtrl: ViewController, private myservice:Myservice, private storage: Storage) { constructor(public navCtrl: NavController, public navParams: NavParams, public viewCtrl: ViewController, private myservice: Myservice, private storage: Storage, private translate: TranslateService) {
} }
ionViewDidEnter() { ionViewDidEnter() {
this.storage.get('lang').then(lang => {
if (lang != null) {
this.translate.use(lang)
this.lang = lang;
}
else {
this.translate.use('en')
}
})
this.myservice.show_loader() this.myservice.show_loader()
this.storage.get('user_data').then(data=>{ this.storage.get('user_data').then(data => {
if(data){ if (data) {
this.local = data this.local = data
this.myservice.load_post({userid:this.local.id},'getSearches').subscribe(response=>{ this.myservice.load_post({ userid: this.local.id }, 'getSearches').subscribe(response => {
this.myservice.hide_loader() this.myservice.hide_loader()
if(response.status == 'success'){ if (response.status == 'success') {
this.searches = response.data this.searches = response.data
} }
else else {
this.myservice.show_alert('',response.message) this.translate.get(['search.' + response.message]).subscribe(value => {
this.myservice.show_alert('', value['search.' + response.message])
})
}
}) })
} }
}) })
} }
setDirection(data){ setDirection(data) {
this.viewCtrl.dismiss(data); this.viewCtrl.dismiss(data);
} }
dismiss() dismiss() {
{
this.viewCtrl.dismiss(); this.viewCtrl.dismiss();
} }
......
<ion-header class="theme_dark_bg">
<button ion-button class="nav_btn theme_color floatLeft" menuToggle>
<ion-icon name="ios-menu"></ion-icon>
</button>
<div class="nav_header_title floatLeft">Settings</div>
<div class="clear"></div>
</ion-header>
<ion-content padding class="themelogin_background">
</ion-content>
<ion-footer>
<button ion-button class="cab_footer_btn width100 text_white">SAVE</button>
</ion-footer>
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { SettingsPage } from './settings';
@NgModule({
declarations: [
SettingsPage,
],
imports: [
IonicPageModule.forChild(SettingsPage),
],
})
export class SettingsPageModule {}
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
/**
* Generated class for the SettingsPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
@IonicPage()
@Component({
selector: 'page-settings',
templateUrl: 'settings.html',
})
export class SettingsPage {
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
ionViewDidLoad() {
console.log('ionViewDidLoad SettingsPage');
}
}
...@@ -5,16 +5,16 @@ ...@@ -5,16 +5,16 @@
</ion-header> </ion-header>
<ion-content padding class="themelogin_background"> <ion-content padding class="themelogin_background">
<div class="cab_login_wrapper"> <div class="cab_login_wrapper">
<h4>Sign Up</h4> <h4>{{'signup.Sign Up'|translate}}</h4>
<hr> <hr>
<br> <br>
<div class="cab_form"> <div class="cab_form">
<form [formGroup]="signupForm"> <form [formGroup]="signupForm">
<div class="cab_form_row"> <div class="cab_form_row">
<div class="cab_phone_number"> <div class="cab_phone_number">
<input class="cab_phone_input cab_user width100" placeholder="Name" formControlName="User_name"> <input class="cab_phone_input cab_user width100" placeholder="{{'signup.Name'|translate}}" formControlName="User_name">
<div class="alert error" *ngIf="signupForm.controls.User_name.invalid && (signupForm.get('User_name').dirty || signupForm.get('User_name').touched)"> <div class="alert error" *ngIf="signupForm.controls.User_name.invalid && (signupForm.get('User_name').dirty || signupForm.get('User_name').touched)">
Enter a valid Name {{'signup.Enter a valid Name'|translate}}
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
...@@ -25,19 +25,19 @@ ...@@ -25,19 +25,19 @@
<select class="cab_phone_code floatLeft" formControlName="dial_code" > <select class="cab_phone_code floatLeft" formControlName="dial_code" >
<option *ngFor="let code of codes" value=+{{code.dialCode}}>+{{code.dialCode}}</option> <option *ngFor="let code of codes" value=+{{code.dialCode}}>+{{code.dialCode}}</option>
</select> </select>
<input class="cab_phone_input floatRight cab_call" placeholder="Mobile Number" formControlName="Mobile" type="number"> <input class="cab_phone_input floatRight cab_call" placeholder="{{'signup.Mobile Number'|translate}}" formControlName="Mobile" type="number">
<div class="clear"></div> <div class="clear"></div>
<div class="alert error" *ngIf="signupForm.controls.Mobile.invalid && (signupForm.get('Mobile').dirty || signupForm.get('Mobile').touched)"> <div class="alert error" *ngIf="signupForm.controls.Mobile.invalid && (signupForm.get('Mobile').dirty || signupForm.get('Mobile').touched)">
Enter a valid Mobile {{'signup.Enter a valid Mobile'|translate}}
</div> </div>
</div> </div>
</div> </div>
<br> <br>
<div class="cab_form_row"> <div class="cab_form_row">
<div class="cab_phone_number"> <div class="cab_phone_number">
<input class="cab_phone_input cab_mail width100" placeholder="Email" formControlName="Email" type="email"> <input class="cab_phone_input cab_mail width100" placeholder="{{'signup.Email'|translate}}" formControlName="Email" type="email">
<div class="alert error" *ngIf="signupForm.controls.Email.invalid && (signupForm.get('Email').dirty || signupForm.get('Email').touched)"> <div class="alert error" *ngIf="signupForm.controls.Email.invalid && (signupForm.get('Email').dirty || signupForm.get('Email').touched)">
Enter a valid Email {{'signup.Enter a valid Email'|translate}}
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
...@@ -45,9 +45,9 @@ ...@@ -45,9 +45,9 @@
<br> <br>
<div class="cab_form_row"> <div class="cab_form_row">
<div class="cab_phone_number"> <div class="cab_phone_number">
<input class="cab_phone_input cab_pass width100" placeholder="Password" formControlName="Password" type="password"> <input class="cab_phone_input cab_pass width100" placeholder="{{'signup.Password'|translate}}" formControlName="Password" type="password">
<div class="alert error" *ngIf="signupForm.controls.Password.invalid && (signupForm.get('Password').dirty || signupForm.get('Password').touched)"> <div class="alert error" *ngIf="signupForm.controls.Password.invalid && (signupForm.get('Password').dirty || signupForm.get('Password').touched)">
Minimum 6 characters {{'signup.Minimum 6 characters'|translate}}
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
...@@ -55,9 +55,9 @@ ...@@ -55,9 +55,9 @@
<br> <br>
<div class="cab_form_row"> <div class="cab_form_row">
<div class="cab_phone_number"> <div class="cab_phone_number">
<input class="cab_phone_input cab_confirmpass width100" placeholder="Confirm Password" formControlName="confirm" type="password"> <input class="cab_phone_input cab_confirmpass width100" placeholder="{{'signup.Confirm Password'|translate}}" formControlName="confirm" type="password">
<div class="alert error" *ngIf="signupForm.controls.confirm.invalid && (signupForm.get('confirm').dirty || signupForm.get('confirm').touched)"> <div class="alert error" *ngIf="signupForm.controls.confirm.invalid && (signupForm.get('confirm').dirty || signupForm.get('confirm').touched)">
Password mismatches {{'signup.Password mismatches'|translate}}
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
...@@ -65,17 +65,17 @@ ...@@ -65,17 +65,17 @@
<br> <br>
<div class="cab_form_row textCenter"> <div class="cab_form_row textCenter">
<ion-item style="width:100% !important;"> <ion-item style="width:100% !important;">
<ion-label><p>I accept terms & condition</p></ion-label> <ion-label><p>{{'signup.I accept terms & condition'|translate}}</p></ion-label>
<ion-checkbox formControlName="terms"></ion-checkbox> <ion-checkbox formControlName="terms"></ion-checkbox>
</ion-item> </ion-item>
<div class="alert error" *ngIf="signupForm.controls.terms.invalid && (signupForm.get('terms').dirty || signupForm.get('terms').touched)"> <div class="alert error" *ngIf="signupForm.controls.terms.invalid && (signupForm.get('terms').dirty || signupForm.get('terms').touched)">
Please accept terms & conditions {{'signup.Please accept terms & conditions'|translate}}
</div> </div>
</div> </div>
</form> </form>
<br> <br>
<div class="cab_form_row"> <div class="cab_form_row">
<button ion-button class="cab_sign_btn" (click)="register()" [disabled]="signupForm.invalid">Sign Up</button> <button ion-button class="cab_sign_btn" (click)="register()" [disabled]="signupForm.invalid">{{'signup.Sign Up'|translate}}</button>
</div> </div>
<br> <br>
</div> </div>
......
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; import { IonicPageModule } from 'ionic-angular';
import { SignupPage } from './signup'; import { SignupPage } from './signup';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -8,6 +9,7 @@ import { SignupPage } from './signup'; ...@@ -8,6 +9,7 @@ import { SignupPage } from './signup';
], ],
imports: [ imports: [
IonicPageModule.forChild(SignupPage), IonicPageModule.forChild(SignupPage),
TranslateModule
], ],
}) })
export class SignupPageModule {} export class SignupPageModule {}
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, Events } from 'ionic-angular'; import { IonicPage, NavController, NavParams, Events, MenuController } from 'ionic-angular';
import { Validators, FormBuilder, FormGroup } from "@angular/forms"; import { Validators, FormBuilder, FormGroup } from "@angular/forms";
import { Myservice } from "../../providers/myservice"; import { Myservice } from "../../providers/myservice";
import { Http } from '@angular/http' import { Http } from '@angular/http'
...@@ -9,6 +9,7 @@ import { Toast } from '@ionic-native/toast'; ...@@ -9,6 +9,7 @@ import { Toast } from '@ionic-native/toast';
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { fireService } from "../../providers/firebase.service"; import { fireService } from "../../providers/firebase.service";
import { Geolocation } from '@ionic-native/geolocation'; import { Geolocation } from '@ionic-native/geolocation';
import { TranslateService } from '@ngx-translate/core';
@IonicPage() @IonicPage()
@Component({ @Component({
...@@ -19,8 +20,9 @@ export class SignupPage { ...@@ -19,8 +20,9 @@ export class SignupPage {
signupForm: FormGroup signupForm: FormGroup
codes: Array<dialcode>; codes: Array<dialcode>;
errors: string = ''; errors: string = '';
lang: string = 'en';
constructor(public navCtrl: NavController, public navParams: NavParams, public formBuilder: FormBuilder, private myservice: Myservice, private http: Http, private orderbyPipe: OrderbyPipe, private toast: Toast, private events: Events, public storage: Storage, private firebase: fireService, private geolocation: Geolocation) { constructor(public navCtrl: NavController, public navParams: NavParams, public formBuilder: FormBuilder, private myservice: Myservice, private http: Http, private orderbyPipe: OrderbyPipe, private toast: Toast, private events: Events, public storage: Storage, private firebase: fireService, private geolocation: Geolocation, private translate: TranslateService, private menu: MenuController) {
this.signupForm = this.formBuilder.group({ this.signupForm = this.formBuilder.group({
User_name: ['', Validators.compose([Validators.required, Validators.minLength(3)])], User_name: ['', Validators.compose([Validators.required, Validators.minLength(3)])],
...@@ -39,6 +41,20 @@ export class SignupPage { ...@@ -39,6 +41,20 @@ export class SignupPage {
}) })
} }
ionViewDidEnter(){
this.menu.swipeEnable(false)
this.storage.get('lang').then(lang => {
if (lang != null) {
this.translate.use(lang)
this.lang = lang;
}
else {
this.translate.use('en')
}
})
}
open_page(page) { open_page(page) {
this.navCtrl.push(page); this.navCtrl.push(page);
} }
...@@ -63,15 +79,21 @@ export class SignupPage { ...@@ -63,15 +79,21 @@ export class SignupPage {
this.events.publish('user:profile', response.data); this.events.publish('user:profile', response.data);
this.navCtrl.setRoot('HomePage') this.navCtrl.setRoot('HomePage')
this.toast.show(response.message, '2000', 'center').subscribe( this.translate.get(['signup.'+response.message]).subscribe(value => {
toast => { this.toast.show(value["signup." + response.message], '2000', 'center').subscribe(toast => {
console.log(toast); console.log(toast);
}); });
})
} }
else { else {
this.myservice.hide_loader() this.myservice.hide_loader()
for (let index = 0; index < response.error_list.length; index++) { for (let index = 0; index < response.error_list.length; index++) {
this.errors = this.errors + response.error_list[index].message + '.<br/>'
this.translate.get(['signup.' + response.error_list[index].message]).subscribe(value => {
this.errors = this.errors + value['signup.' + response.error_list[index].message] + '.<br/>'
})
} }
this.myservice.show_alert('Failed', this.errors) this.myservice.show_alert('Failed', this.errors)
} }
...@@ -81,6 +103,10 @@ export class SignupPage { ...@@ -81,6 +103,10 @@ export class SignupPage {
}); });
} }
ionViewWillLeave(){
this.menu.swipeEnable(true)
}
MatchPassword(val) { MatchPassword(val) {
return new Promise(resolve => { return new Promise(resolve => {
if (val.value == this.signupForm.value.Password) { if (val.value == this.signupForm.value.Password) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment