Commit a309cc89 by Alen Jose

Merge branch 'alen' into 'master'

july-27 lang See merge request alen/CMC_revamp!22
parents c6d6c045 031c8443
......@@ -103,5 +103,4 @@
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
<plugin name="mx.ferreyra.callnumber" spec="~0.0.2" />
<engine name="android" spec="7.1.0" />
<plugin name="cordova-plugin-gyroscope" spec="^0.1.4" />
</widget>
......@@ -404,6 +404,16 @@
"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": {
"version": "0.0.30",
"resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.30.tgz",
......@@ -2445,11 +2455,6 @@
"resolved": "https://registry.npmjs.org/cordova-plugin-googleplus/-/cordova-plugin-googleplus-5.3.0.tgz",
"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": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/cordova-plugin-network-information/-/cordova-plugin-network-information-2.0.1.tgz",
......
......@@ -34,6 +34,8 @@
"@ionic-native/status-bar": "3.12.1",
"@ionic-native/toast": "^4.7.0",
"@ionic/storage": "2.0.1",
"@ngx-translate/core": "^9.1.1",
"@ngx-translate/http-loader": "^2.0.1",
"angularfire2": "^5.0.0-rc.10",
"call-number": "^1.0.1",
"cordova": "^8.0.0",
......@@ -43,7 +45,6 @@
"cordova-plugin-facebook4": "^1.9.1",
"cordova-plugin-geolocation": "^4.0.1",
"cordova-plugin-googleplus": "^5.3.0",
"cordova-plugin-gyroscope": "^0.1.4",
"cordova-plugin-network-information": "^2.0.1",
"cordova-plugin-request-location-accuracy": "^2.2.3",
"cordova-plugin-splashscreen": "^4.0.3",
......@@ -87,11 +88,10 @@
"cordova-plugin-datepicker": {},
"cordova-plugin-request-location-accuracy": {},
"cordova-plugin-network-information": {},
"mx.ferreyra.callnumber": {},
"cordova-plugin-gyroscope": {}
"mx.ferreyra.callnumber": {}
},
"platforms": [
"android"
]
}
}
\ No newline at end of file
}
......@@ -8,6 +8,7 @@ import { Myservice } from "../providers/myservice";
import { LocationAccuracy } from '@ionic-native/location-accuracy';
import { Network } from '@ionic-native/network';
import { OneSignal } from '@ionic-native/onesignal';
import { TranslateService } from '@ngx-translate/core';
@Component({
templateUrl: 'app.html'
......@@ -17,8 +18,13 @@ export class MyApp {
rootPage: string ;
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();
}
......@@ -36,6 +42,11 @@ export class MyApp {
this.rootPage = 'LandingPage'
})
this.languageTrans();
this.events.subscribe('user:lang', data => {
this.languageTrans();
})
this.events.subscribe('user:profile', data => {
this.local = data
if (this.local) {
......@@ -46,22 +57,21 @@ export class MyApp {
this.statusBar.styleDefault();
this.splashScreen.hide();
this.enableLoc();
this.initOnesignal()
// this.enableLoc();
this.network.onDisconnect().subscribe(() => {
const alert = this.alertCtrl.create({
title: 'Network Error',
message: 'No Internet Connection',
title: this.title,
message: this.msg,
buttons: [
{
text: 'Quit',
text: this.quit,
handler: data => {
this.platform.exitApp();
}
}, {
text: 'Cancel',
text: this.cancel,
role: 'cancel'
}
]
......@@ -116,4 +126,26 @@ export class MyApp {
else
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 @@
</div>
<div class="cab_sidemenu_list">
<ul>
<li menuClose class="book" (click)="open_page('HomePage')">Book Ride</li>
<li menuClose class="trip" (click)="open_page('MytripsPage')">My Trips</li>
<li menuClose class="book" (click)="open_page('HomePage')">{{'sidemenu.Book Ride'|translate}}</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="logout" (click)="open_page('LandingPage')">Logout</li>
<li menuClose class="logout" (click)="open_page('LandingPage')">{{'sidemenu.Logout'|translate}}</li>
</ul>
</div>
</div>
......
......@@ -23,7 +23,9 @@ import { dataService } from "../providers/common.service";
import { Network } from '@ionic-native/network';
import { CallNumber } from '@ionic-native/call-number';
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 = {
apiKey: "AIzaSyDLrbLd4RCCh86xuTVu7-cfJ28We_cG1sU",
......@@ -34,6 +36,10 @@ export const firebaseConfig = {
messagingSenderId: "151146703576"
};
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
@NgModule({
declarations: [
MyApp
......@@ -44,6 +50,14 @@ export const firebaseConfig = {
HttpModule,
IonicStorageModule.forRoot(),
AngularFireModule.initializeApp(firebaseConfig),
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
],
bootstrap: [IonicApp],
entryComponents: [
......@@ -68,7 +82,6 @@ export const firebaseConfig = {
Network,
CallNumber,
OneSignal,
Gyroscope
]
})
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 @@
</ion-header>
<ion-content padding class="themelogin_background">
<div class="cab_login_wrapper">
<h4>Forgot Password</h4>
<h4>{{'forgot.Forgot Password'|translate}}</h4>
<hr>
<br>
<div class="cab_form">
<form [formGroup]="forgotForm">
<div class="cab_form_row">
<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="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 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>
......@@ -26,7 +26,7 @@
<br>
<br>
<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>
......
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { ForgotPage } from './forgot';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({
declarations: [
......@@ -8,6 +9,7 @@ import { ForgotPage } from './forgot';
],
imports: [
IonicPageModule.forChild(ForgotPage),
TranslateModule
],
})
export class ForgotPageModule {}
......@@ -2,6 +2,8 @@ import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { FormGroup, Validators, FormBuilder } from '@angular/forms'
import { Myservice } from '../../providers/myservice'
import { TranslateService } from '@ngx-translate/core';
import { Storage } from "@ionic/storage";
@IonicPage()
@Component({
......@@ -11,8 +13,9 @@ import { Myservice } from '../../providers/myservice'
export class ForgotPage {
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({
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 {
})
}
ionViewDidEnter(){
this.storage.get('lang').then(lang => {
if (lang != null) {
this.translate.use(lang)
this.lang = lang;
}
else {
this.translate.use('en')
}
})
}
forgot() {
this.myservice.show_loader()
this.myservice.load_post(this.forgotForm.value, 'Forget_password').subscribe(response => {
this.myservice.hide_loader()
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();
}
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 @@
<ion-footer>
<form [formGroup]="locForm">
<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_destination" placeholder="Drop Location" id="drop" formControlName="dropLoc">
<input class="cab_location_input cab_current" placeholder="{{'home.Pickup Location'|translate}}" id="pickUp" formControlName="pickLoc">
<input class="cab_location_input cab_destination" placeholder="{{'home.Drop Location'|translate}}" id="drop" formControlName="dropLoc">
</div>
</form>
<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>
......
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({
declarations: [
......@@ -8,6 +9,7 @@ import { HomePage } from './home';
],
imports: [
IonicPageModule.forChild(HomePage),
TranslateModule
],
})
export class HomePageModule {}
......@@ -9,6 +9,7 @@ import { Validators, FormGroup, FormBuilder } from '@angular/forms'
import { dataService } from "../../providers/common.service";
import { Myservice } from "../../providers/myservice";
import { user } from "../../models/mymodel";
import { TranslateService } from '@ngx-translate/core';
declare var google;
@IonicPage()
......@@ -34,8 +35,9 @@ export class HomePage {
locRef: any
lastPos: any
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({
pickLoc: ['', Validators.required],
......@@ -44,6 +46,15 @@ export class HomePage {
}
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('')
......
......@@ -5,10 +5,10 @@
</div>
<div class="cab_form">
<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 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 class="cab_form_row textCenter">
<p (click)="forgot()">Forgot Password</p>
......@@ -18,7 +18,7 @@
</ion-content>
<ion-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)="signInWithGoogle()"><ion-icon name="logo-google"></ion-icon></li>
<div class="clear"></div>
......
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { LandingPage } from './landing';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({
declarations: [
......@@ -8,6 +9,7 @@ import { LandingPage } from './landing';
],
imports: [
IonicPageModule.forChild(LandingPage),
TranslateModule,
],
})
export class LandingPageModule {}
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 { GooglePlus } from '@ionic-native/google-plus';
import { Myservice } from '../../providers/myservice'
import { Storage } from '@ionic/storage';
import { fireService } from "../../providers/firebase.service";
import { Geolocation } from '@ionic-native/geolocation';
import { TranslateService } from '@ngx-translate/core';
@IonicPage()
@Component({
......@@ -15,12 +16,25 @@ import { Geolocation } from '@ionic-native/geolocation';
export class LandingPage {
fb_data = { email: '', firstname: '', lastname: '', gender: '', image: '', fb_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() {
console.log('ionViewDidLoad LandingPage');
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').subscribe(resp=>{
console.log(resp)
})
}
})
}
open_page(page){
......@@ -100,6 +114,10 @@ export class LandingPage {
this.events.publish('user:profile', data);
}
ionViewWillLeave(){
this.menu.swipeEnable(true);
}
getLoc(){
var promise = new Promise((resolve, reject) => {
......
......@@ -8,7 +8,7 @@
<div class="cab_logo">
<img src="assets/img/cab_logo.png" style="width: 120px;">
</div>
<h4>Login</h4>
<h4>{{'login.Login'|translate}}</h4>
<hr>
<br>
<div class="cab_form">
......@@ -18,19 +18,19 @@
<select class="cab_phone_code floatLeft" formControlName="dial_code">
<option *ngFor="let code of codes" value=+{{code.dialCode}}>+{{code.dialCode}}</option>
</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="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>
<br>
<div class="cab_form_row">
<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)">
Minimum 6 characters
{{'login.Minimum 6 characters'|translate}}
</div>
<div class="clear"></div>
</div>
......@@ -45,11 +45,11 @@
</div> -->
<br>
<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>
<br>
<div class="cab_form_row textCenter">
<p (click)="forgot()">Forgot Password</p>
<p (click)="forgot()">{{'login.Forgot Password'|translate}}</p>
</div>
</div>
</div>
......
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { LoginPage } from './login';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({
declarations: [
......@@ -8,6 +9,7 @@ import { LoginPage } from './login';
],
imports: [
IonicPageModule.forChild(LoginPage),
TranslateModule
],
})
export class LoginPageModule {}
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 { Myservice } from '../../providers/myservice'
import { Storage } from '@ionic/storage';
import { Http } from '@angular/http'
import { OrderbyPipe } from '../../providers/sort-pipe';
import { user } from "../../models/mymodel";
import { TranslateService } from '@ngx-translate/core';
@IonicPage()
@Component({
......@@ -16,8 +17,9 @@ export class LoginPage {
loginForm: FormGroup
codes:any;
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({
mobile: ['', Validators.compose([Validators.required, this.myservice.checkLimit(10000000, 999999999999999)])],
......@@ -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){
this.navCtrl.push(page);
}
......@@ -56,7 +72,9 @@ export class LoginPage {
}
else{
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 {
this.navCtrl.pop();
}
ionViewWillLeave() {
this.menu.swipeEnable(true)
}
}
......@@ -2,16 +2,16 @@
<button ion-button class="nav_btn theme_color floatLeft" (click)="dismiss()">
<ion-icon name="ios-arrow-back"></ion-icon>
</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>
<div class="clear"></div>
<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>
</ion-header>
<ion-content class="themedark_theme">
<div class="cab_search_result_page">
<p>Popular Search</p>
<p>{{'search.Popular Search'|translate}}</p>
<ul>
<li *ngFor="let search of searches | search : searchText" (click)="setDirection(search)">
<h5>{{search.keyword}}</h5>
......
......@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { SearchridePage } from './searchride';
import { SearchPipe } from "../../pipes/search/search";
import { TranslateModule } from "@ngx-translate/core";
@NgModule({
declarations: [
......@@ -10,6 +11,7 @@ import { SearchPipe } from "../../pipes/search/search";
],
imports: [
IonicPageModule.forChild(SearchridePage),
TranslateModule
],
})
export class SearchridePageModule {}
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 { Storage } from "@ionic/storage";
import { user, search } from "../../models/mymodel";
import { TranslateService } from '@ngx-translate/core';
@IonicPage()
@Component({
selector: 'page-searchride',
templateUrl: 'searchride.html',
})
export class SearchridePage {
local:user
searches:Array<search>
searchText:string;
local: user
searches: Array<search>
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() {
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.storage.get('user_data').then(data=>{
if(data){
this.storage.get('user_data').then(data => {
if (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()
if(response.status == 'success'){
if (response.status == 'success') {
this.searches = response.data
}
else
this.myservice.show_alert('',response.message)
else {
this.translate.get(['search.' + response.message]).subscribe(value => {
this.myservice.show_alert('', value['search.' + response.message])
})
}
})
}
})
}
setDirection(data){
setDirection(data) {
this.viewCtrl.dismiss(data);
}
dismiss()
{
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 @@
</ion-header>
<ion-content padding class="themelogin_background">
<div class="cab_login_wrapper">
<h4>Sign Up</h4>
<h4>{{'signup.Sign Up'|translate}}</h4>
<hr>
<br>
<div class="cab_form">
<form [formGroup]="signupForm">
<div class="cab_form_row">
<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)">
Enter a valid Name
{{'signup.Enter a valid Name'|translate}}
</div>
<div class="clear"></div>
</div>
......@@ -25,19 +25,19 @@
<select class="cab_phone_code floatLeft" formControlName="dial_code" >
<option *ngFor="let code of codes" value=+{{code.dialCode}}>+{{code.dialCode}}</option>
</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="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>
<br>
<div class="cab_form_row">
<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)">
Enter a valid Email
{{'signup.Enter a valid Email'|translate}}
</div>
<div class="clear"></div>
</div>
......@@ -45,9 +45,9 @@
<br>
<div class="cab_form_row">
<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)">
Minimum 6 characters
{{'signup.Minimum 6 characters'|translate}}
</div>
<div class="clear"></div>
</div>
......@@ -55,9 +55,9 @@
<br>
<div class="cab_form_row">
<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)">
Password mismatches
{{'signup.Password mismatches'|translate}}
</div>
<div class="clear"></div>
</div>
......@@ -65,17 +65,17 @@
<br>
<div class="cab_form_row textCenter">
<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-item>
<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>
</form>
<br>
<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>
<br>
</div>
......
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { SignupPage } from './signup';
import { TranslateModule } from "@ngx-translate/core";
@NgModule({
declarations: [
......@@ -8,6 +9,7 @@ import { SignupPage } from './signup';
],
imports: [
IonicPageModule.forChild(SignupPage),
TranslateModule
],
})
export class SignupPageModule {}
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 { Myservice } from "../../providers/myservice";
import { Http } from '@angular/http'
......@@ -9,6 +9,7 @@ import { Toast } from '@ionic-native/toast';
import { Storage } from '@ionic/storage';
import { fireService } from "../../providers/firebase.service";
import { Geolocation } from '@ionic-native/geolocation';
import { TranslateService } from '@ngx-translate/core';
@IonicPage()
@Component({
......@@ -19,8 +20,9 @@ export class SignupPage {
signupForm: FormGroup
codes: Array<dialcode>;
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({
User_name: ['', Validators.compose([Validators.required, Validators.minLength(3)])],
......@@ -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) {
this.navCtrl.push(page);
}
......@@ -63,15 +79,21 @@ export class SignupPage {
this.events.publish('user:profile', response.data);
this.navCtrl.setRoot('HomePage')
this.toast.show(response.message, '2000', 'center').subscribe(
toast => {
console.log(toast);
});
this.translate.get(['signup.'+response.message]).subscribe(value => {
this.toast.show(value["signup." + response.message], '2000', 'center').subscribe(toast => {
console.log(toast);
});
})
}
else {
this.myservice.hide_loader()
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)
}
......@@ -81,6 +103,10 @@ export class SignupPage {
});
}
ionViewWillLeave(){
this.menu.swipeEnable(true)
}
MatchPassword(val) {
return new Promise(resolve => {
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