Commit accb8acd by amalk

initial push

parents
# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore
*~
*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt
*.sublime-project
*.sublime-workspace
.vscode/
npm-debug.log*
.idea/
.ionic/
.sourcemaps/
.sass-cache/
.tmp/
.versions/
coverage/
www/
dist/
node_modules/
tmp/
temp/
platforms/
plugins/
plugins/android.json
plugins/ios.json
$RECYCLE.BIN/
.DS_Store
Thumbs.db
UserInterfaceState.xcuserstate
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"defaultProject": "app",
"newProjectRoot": "projects",
"projects": {
"app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "www",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"assets": [
{
"glob": "**/*",
"input": "src/assets",
"output": "assets"
},
{
"glob": "**/*.svg",
"input": "node_modules/ionicons/dist/ionicons/svg",
"output": "./svg"
}
],
"styles": [
{
"input": "src/theme/variables.scss"
},
{
"input": "src/global.scss"
}
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
}
]
},
"ci": {
"progress": false
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "app:build"
},
"configurations": {
"production": {
"browserTarget": "app:build:production"
},
"ci": {
"progress": false
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "app:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"styles": [],
"scripts": [],
"assets": [
{
"glob": "favicon.ico",
"input": "src/",
"output": "/"
},
{
"glob": "**/*",
"input": "src/assets",
"output": "/assets"
}
]
},
"configurations": {
"ci": {
"progress": false,
"watch": false
}
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": ["**/node_modules/**"]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "app:serve"
},
"configurations": {
"production": {
"devServerTarget": "app:serve:production"
},
"ci": {
"devServerTarget": "app:serve:ci"
}
}
},
"ionic-cordova-build": {
"builder": "@ionic/angular-toolkit:cordova-build",
"options": {
"browserTarget": "app:build"
},
"configurations": {
"production": {
"browserTarget": "app:build:production"
}
}
},
"ionic-cordova-serve": {
"builder": "@ionic/angular-toolkit:cordova-serve",
"options": {
"cordovaBuildTarget": "app:ionic-cordova-build",
"devServerTarget": "app:serve"
},
"configurations": {
"production": {
"cordovaBuildTarget": "app:ionic-cordova-build:production",
"devServerTarget": "app:serve:production"
}
}
}
}
}
},
"cli": {
"defaultCollection": "@ionic/angular-toolkit"
},
"schematics": {
"@ionic/angular-toolkit:component": {
"styleext": "scss"
},
"@ionic/angular-toolkit:page": {
"styleext": "scss"
}
}
}
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# You can see what browsers were selected by your queries by running:
# npx browserslist
> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
import { AppPage } from './app.po';
describe('new App', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
it('should be blank', () => {
page.navigateTo();
expect(page.getParagraphText()).toContain('The world is your oyster.');
});
});
import { browser, by, element } from 'protractor';
export class AppPage {
navigateTo() {
return browser.get('/');
}
getParagraphText() {
return element(by.deepCss('app-root ion-content')).getText();
}
}
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}
{
"name": "getmirider",
"integrations": {},
"type": "angular"
}
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, '../coverage'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "getmirider",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "https://ionicframework.com/",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@agm/core": "^1.0.0-beta.7",
"@angular/common": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/core": "~8.1.2",
"@angular/forms": "~8.1.2",
"@angular/platform-browser": "~8.1.2",
"@angular/platform-browser-dynamic": "~8.1.2",
"@angular/router": "~8.1.2",
"@ionic-native/core": "^5.0.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^4.7.1",
"agm-direction": "^0.7.8",
"core-js": "^2.5.4",
"rxjs": "~6.5.1",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/architect": "~0.801.2",
"@angular-devkit/build-angular": "~0.801.2",
"@angular-devkit/core": "~8.1.2",
"@angular-devkit/schematics": "~8.1.2",
"@angular/cli": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/compiler-cli": "~8.1.2",
"@angular/language-service": "~8.1.2",
"@ionic/angular-toolkit": "~2.0.0",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "^5.0.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
"description": "An Ionic project"
}
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'home', loadChildren: () => import('./home/home.module').then( m => m.HomePageModule)},
{ path: 'login', loadChildren: './login/login.module#LoginPageModule' },
{ path: 'signup', loadChildren: './signup/signup.module#SignupPageModule' },
{ path: 'verification', loadChildren: './verification/verification.module#VerificationPageModule' },
{ path: 'password', loadChildren: './password/password.module#PasswordPageModule' },
{ path: 'forgotpass', loadChildren: './forgotpass/forgotpass.module#ForgotpassPageModule' },
{ path: 'otp', loadChildren: './otp/otp.module#OtpPageModule' },
{ path: 'ridedetails', loadChildren: './ridedetails/ridedetails.module#RidedetailsPageModule' },
{ path: 'ride', loadChildren: './ride/ride.module#RidePageModule' },
{ path: 'completeride', loadChildren: './completeride/completeride.module#CompleteridePageModule' },
{ path: 'upload', loadChildren: './upload/upload.module#UploadPageModule' },
{ path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' },
{ path: 'general', loadChildren: './general/general.module#GeneralPageModule' },
{ path: 'earning', loadChildren: './earning/earning.module#EarningPageModule' },
{ path: 'chat', loadChildren: './chat/chat.module#ChatPageModule' },
{ path: 'riderlounge', loadChildren: './riderlounge/riderlounge.module#RiderloungePageModule' },
{ path: 'complete', loadChildren: './complete/complete.module#CompletePageModule' },
];
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
],
exports: [RouterModule]
})
export class AppRoutingModule { }
<ion-app>
<ion-router-outlet></ion-router-outlet>
</ion-app>
@import url('https://fonts.googleapis.com/css?family=Abel&display=swap');
@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css);
* {
font-family: 'Abel', sans-serif;
-webkit-font-smoothing: antialiased;
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { TestBed, async } from '@angular/core/testing';
import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
let statusBarSpy, splashScreenSpy, platformReadySpy, platformSpy;
beforeEach(async(() => {
statusBarSpy = jasmine.createSpyObj('StatusBar', ['styleDefault']);
splashScreenSpy = jasmine.createSpyObj('SplashScreen', ['hide']);
platformReadySpy = Promise.resolve();
platformSpy = jasmine.createSpyObj('Platform', { ready: platformReadySpy });
TestBed.configureTestingModule({
declarations: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers: [
{ provide: StatusBar, useValue: statusBarSpy },
{ provide: SplashScreen, useValue: splashScreenSpy },
{ provide: Platform, useValue: platformSpy },
],
}).compileComponents();
}));
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
it('should initialize the app', async () => {
TestBed.createComponent(AppComponent);
expect(platformSpy.ready).toHaveBeenCalled();
await platformReadySpy;
expect(statusBarSpy.styleDefault).toHaveBeenCalled();
expect(splashScreenSpy.hide).toHaveBeenCalled();
});
// TODO: add more tests!
});
import { Component } from '@angular/core';
import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.scss']
})
export class AppComponent {
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar
) {
this.initializeApp();
}
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
this.statusBar.overlaysWebView(false);
});
}
}
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
providers: [
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { ChatPage } from './chat.page';
const routes: Routes = [
{
path: '',
component: ChatPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [ChatPage]
})
export class ChatPageModule {}
<ion-header>
<ion-toolbar>
<ion-title>chat</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ChatPage } from './chat.page';
describe('ChatPage', () => {
let component: ChatPage;
let fixture: ComponentFixture<ChatPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ChatPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ChatPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-chat',
templateUrl: './chat.page.html',
styleUrls: ['./chat.page.scss'],
})
export class ChatPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { CompletePage } from './complete.page';
const routes: Routes = [
{
path: '',
component: CompletePage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [CompletePage]
})
export class CompletePageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn nav_messenger floatRight">
</button>
<div class="clear"></div>
</div>
<div class="banner_section">
<img src="../assets/tick.png">
<h5>YOU HAVE COMPLETED THIS RIDE</h5>
<p>Delivered in 32 Mnts.</p>
<button class="rate_button">RATE CUSTOMER</button>
</div>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">You</div>
<strong class="floatRight">ORID008800</strong>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
06, Tasmania, horse building<br>
<strong>2 Km</strong>
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">Lulu fashion store</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
06, Tasmania, horse building<br>
<strong>1 Km</strong>
</div>
<strong class="floatRight">Men's Shirt<br>
<span>Au$ 88</span></strong>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">John Doe</div>
<div class="clear"></div>
</div>
<div class="point_box borderNone">
<div class="point_head floatLeft">
06, Tasmania, horse building<br>
<strong>1 Km</strong>
</div>
<div class="clear"></div>
</div>
</div>
<hr>
<ion-row>
<ion-col>Total Kilometers</ion-col>
<ion-col class="textRight"><strong>4 Km</strong></ion-col>
</ion-row>
<hr>
<ion-row>
<ion-col>Amount/Km</ion-col>
<ion-col class="textRight"><strong>AUD$ 20</strong></ion-col>
</ion-row>
<ion-row>
<ion-col>Commission Earned</ion-col>
<ion-col class="textRight"><strong>AUD$ 20</strong></ion-col>
</ion-row>
<hr>
<ion-row>
<ion-col>Total Amount Earned</ion-col>
<ion-col class="textRight"><strong>AUD$ 40</strong></ion-col>
</ion-row>
</div>
</ion-content>
<ion-footer>
<button class="nxt_btn">GO TO NEXT TRIP</button>
</ion-footer>
\ No newline at end of file
.nav_header {
box-shadow: none;
background-color: transparent;
}
.banner_section {
width: 100%;
height: 300px;
background-image: url("../../assets/background.png");
background-repeat: no-repeat;
background-position: center;
background-size: cover;
text-align: center;
padding-top: 70px;
img {
width: 50px;
}
h5 {
color: #fff;
text-align: center;
margin: 0px;
padding-top: 15px;
font-weight: 700;
}
p {
color: #fff;
text-align: center;
margin: 0px;
padding-top: 5px;
font-weight: 200;
}
.rate_button {
height: 45px;
background-color: #fff;
color: rgba(41, 40, 91, 1);
border-radius: 10px;
font-size: 18px;
padding-left: 20px;
padding-right: 20px;
margin-top: 30px;
}
}
hr {
width: 85%;
border: 1px solid #d7d5e4;
height: 0px;
border-bottom: none;
margin-top: 25px;
margin-bottom: 25px;
}
.order_acceptance {
width: 90%;
margin: 0 auto;
padding-top: 20px;
padding-bottom: 20px;
.order_acceptance_inner {
padding: 0px;
strong {
color: #3b394d;
font-weight: bold;
padding: 5px;
width: 120px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: right;
span {
font-weight: 200;
}
}
}
.toggle_btn {
width: 30px;
height: 30px;
background-image: url("../../assets/bar.png");
background-position: center;
background-repeat: no-repeat;
background-size: 25px;
}
.point_header {
width: 100%;
.point_image {
width: 40px;
height: 40px;
float: left;
border-radius: 50%;
background-color: #a8a8a8;
img {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
object-position: center;
}
}
.point_detail {
width: calc(100% - 160px);
float: left;
text-align: left;
color: rgba(59, 57, 77, 1);
font-size: 20px;
font-weight: 600;
padding: 5px;
padding-left: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.point_box {
border-left: 2px dashed rgba(215, 213, 228, 1);
padding-top: 5px;
padding-bottom: 5px;
padding-right: 0px;
margin-left: 16px;
margin-top: 5px;
margin-bottom: 5px;
.point_head {
padding: 5px;
font-size: 14px;
padding-left: 15px;
padding-right: 5px;
border-radius: 20px;
strong {
color: rgba(41, 40, 91, 1);
margin-right: 5px;
}
}
}
}
.nxt_btn {
width: 100%;
background-color: rgba(41, 40, 91, 1);
color: #fff;
font-size: 20px;
padding: 15px;
border-top-left-radius: 15px;
border-top-right-radius: 15px;
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CompletePage } from './complete.page';
describe('CompletePage', () => {
let component: CompletePage;
let fixture: ComponentFixture<CompletePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ CompletePage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CompletePage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-complete',
templateUrl: './complete.page.html',
styleUrls: ['./complete.page.scss'],
})
export class CompletePage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { CompleteridePage } from './completeride.page';
const routes: Routes = [
{
path: '',
component: CompleteridePage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [CompleteridePage]
})
export class CompleteridePageModule {}
<ion-header>
<ion-toolbar>
<ion-title>completeride</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CompleteridePage } from './completeride.page';
describe('CompleteridePage', () => {
let component: CompleteridePage;
let fixture: ComponentFixture<CompleteridePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ CompleteridePage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CompleteridePage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-completeride',
templateUrl: './completeride.page.html',
styleUrls: ['./completeride.page.scss'],
})
export class CompleteridePage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { EarningPage } from './earning.page';
const routes: Routes = [
{
path: '',
component: EarningPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [EarningPage]
})
export class EarningPageModule {}
<ion-header>
<ion-toolbar>
<ion-title>earning</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EarningPage } from './earning.page';
describe('EarningPage', () => {
let component: EarningPage;
let fixture: ComponentFixture<EarningPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EarningPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EarningPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-earning',
templateUrl: './earning.page.html',
styleUrls: ['./earning.page.scss'],
})
export class EarningPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { ForgotpassPage } from './forgotpass.page';
const routes: Routes = [
{
path: '',
component: ForgotpassPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [ForgotpassPage]
})
export class ForgotpassPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn nav_back_white floatLeft" (click)="goBack()">
</button>
<div class="nav_title floatLeft">
<h4>FORGOT PASSWORD</h4>
</div>
<div class="clear"></div>
</div>
<div class="login_wrapper">
<div class="login_inner">
<div class="row">
<div class="log_label">Type your Rider ID / Phone Number</div>
<ion-input placeholder="Type here" type="text"></ion-input>
</div>
<div class="row">
<button class="login_btn" (click)="goToPage('verification')">
GET OTP
</button>
</div>
</div>
</div>
</ion-content>
\ No newline at end of file
.login_wrapper {
padding: 15px;
.logo_wrapper {
width: 100%;
text-align: center;
img {
width: 170px;
}
}
.login_inner {
width: 90%;
padding-top: 20px;
margin: 0 auto;
.row {
padding-bottom: 25px;
ion-input {
.native-input {
padding-left: 0px;
}
border: 1px solid rgba(215, 213, 228, 1);
text-align: center;
height: 45px;
border-radius: 8px;
color: rgba(176, 174, 199, 1);
font-size: 16px;
}
.login_btn {
height: 45px;
width: 100%;
border-radius: 8px;
background-color: rgba(41, 40, 91, 1);
color: #fff;
font-size: 16px;
margin-bottom: 10%;
}
h4 {
color: rgba(41, 40, 91, 1);
text-align: center;
}
.log_label {
color: #3b394d;
font-weight: bolder;
margin-bottom: 10px;
}
h6 {
color: rgba(41, 40, 91, 1);
span {
position: relative;
top: 5px;
}
a {
color: rgba(41, 40, 91, 1);
text-decoration: none;
font-weight: 900;
}
.styled-checkbox {
position: absolute; // take it out of document flow
opacity: 0; // hide it
&+label {
position: relative;
cursor: pointer;
padding: 0;
}
// Box.
&+label:before {
content: '';
margin-right: 10px;
display: inline-block;
vertical-align: text-top;
width: 30px;
height: 30px;
border-radius: 10px;
background: white;
border: 1px solid rgba(215, 213, 228, 1);
}
// Box hover
// Box checked
&:checked+label:before {
background: #29285b;
}
// Disabled state label.
&:disabled+label {
color: #b8b8b8;
cursor: auto;
}
// Disabled box.
&:disabled+label:before {
box-shadow: none;
background: #ddd;
}
// Checkmark. Could be replaced with an image
&:checked+label:after {
content: '';
position: absolute;
left: 10px;
top: 15px;
background: white;
width: 2px;
height: 2px;
box-shadow: 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white;
transform: rotate(45deg);
}
}
}
}
}
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ForgotpassPage } from './forgotpass.page';
describe('ForgotpassPage', () => {
let component: ForgotpassPage;
let fixture: ComponentFixture<ForgotpassPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ForgotpassPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ForgotpassPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-forgotpass',
templateUrl: './forgotpass.page.html',
styleUrls: ['./forgotpass.page.scss'],
})
export class ForgotpassPage implements OnInit {
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) { }
ngOnInit() {
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { GeneralPage } from './general.page';
const routes: Routes = [
{
path: '',
component: GeneralPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [GeneralPage]
})
export class GeneralPageModule {}
<ion-header>
<ion-toolbar>
<ion-title>general</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { GeneralPage } from './general.page';
describe('GeneralPage', () => {
let component: GeneralPage;
let fixture: ComponentFixture<GeneralPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ GeneralPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(GeneralPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-general',
templateUrl: './general.page.html',
styleUrls: ['./general.page.scss'],
})
export class GeneralPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IonicModule } from '@ionic/angular';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { AgmCoreModule } from '@agm/core';
import { AgmDirectionModule } from 'agm-direction';
import { HomePage } from './home.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
AgmDirectionModule,
AgmCoreModule.forRoot({
apiKey: 'AIzaSyAK3Av2e2dunqInYEaAVJPmzK5HTi0gubw'
}),
RouterModule.forChild([
{
path: '',
component: HomePage
}
])
],
declarations: [HomePage]
})
export class HomePageModule {}
<ion-content>
<div class="nav_header">
<div class="logo_sec floatLeft">
<img src="../../assets/[email protected]">
</div>
<h3 class="floatLeft"><strong>Hi</strong>JohnDoe</h3>
<button class="rider_status floatRight" (click)="changeStatus()" [hidden]="status == 1">OFFLINE</button>
<button class="rider_status online floatRight" (click)="changeStatus()" [hidden]="status == 0">ONLINE</button>
<div class="clear"></div>
</div>
<div class="home_wrapper">
<agm-map [zoom]="20" [latitude]="lat" [longitude]="lng">
<agm-direction [origin]="origin" [destination]="destination" [renderOptions]="renderOptions" [markerOptions]="markerOptions">
</agm-direction>
</agm-map>
<div class="bottom_bay">
<!-- <button class="upload_btn" (click)="goToPage('upload')">UPLOAD DOCUMENTS</button>
<p>Please upload your documents to join ride</p> -->
<ion-slides pager="false" [options]="slideOpts">
<ion-slide>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<div class="toggle_btn floatRight" (click)="goToPage('ridedetails')"></div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">You</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
<strong>2 Km</strong>06, Tasmania, horse building
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">Lulu fashion store</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
<strong>1 Km</strong>06, Tasmania, horse building
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail" style="width: calc(100% - 120px);">John Doe</div>
<strong class="floatRight">AUD$ 20</strong>
<div class="clear"></div>
</div>
</div>
<div class="bottom_btn_bay">
<button class="accept_btn floatRight" (click)="goToPage('riderlounge')">
Accept
</button>
<button class="reject_btn floatLeft">Reject</button>
<div class="clear"></div>
</div>
</div>
</ion-slide>
<ion-slide>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<div class="toggle_btn floatRight" (click)="goToPage('ridedetails')"></div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">You</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
<strong>2 Km</strong>06, Tasmania, horse building
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">Lulu fashion store</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
<strong>1 Km</strong>06, Tasmania, horse building
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail" style="width: calc(100% - 120px);">John Doe</div>
<strong class="floatRight">AUD$ 20</strong>
<div class="clear"></div>
</div>
</div>
<div class="bottom_btn_bay">
<button class="accept_btn floatRight" (click)="goToPage('riderlounge')">
Accept
</button>
<button class="reject_btn floatLeft">Reject</button>
<div class="clear"></div>
</div>
</div>
</ion-slide>
<ion-slide>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<div class="toggle_btn floatRight" (click)="goToPage('ridedetails')"></div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">You</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
<strong>2 Km</strong>06, Tasmania, horse building
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">Lulu fashion store</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
<strong>1 Km</strong>06, Tasmania, horse building
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail" style="width: calc(100% - 120px);">John Doe</div>
<strong class="floatRight">AUD$ 20</strong>
<div class="clear"></div>
</div>
</div>
<div class="bottom_btn_bay">
<button class="accept_btn floatRight" (click)="goToPage('riderlounge')">
Accept
</button>
<button class="reject_btn floatLeft">Reject</button>
<div class="clear"></div>
</div>
</div>
</ion-slide>
</ion-slides>
</div>
</div>
</ion-content>
\ No newline at end of file
.nav_header {
padding: 10px;
padding-left: 15px;
padding-right: 15px;
.logo_sec {
width: 35px;
}
h3 {
color: #fff;
margin: 0px;
padding: 10px;
padding-left: 15px;
strong {
padding-right: 5px;
}
}
.rider_status {
background-color: rgba(59, 57, 77, 1);
color: #fff;
height: 45px;
padding-left: 20px;
padding-right: 20px;
font-size: 18px;
border-radius: 10px;
font-weight: 600;
letter-spacing: 1px;
cursor: pointer;
}
.online {
background-color: rgba(53, 203, 171, 1);
}
}
.home_wrapper {
width: 100%;
padding: 0px;
height: calc(100vh - 50px);
position: relative;
agm-map {
width: 100%;
height: 100%;
}
.bottom_bay {
padding: 0px;
padding-left: 15px;
padding-bottom: 15px;
position: fixed;
bottom: 0px;
left: 0px;
right: 0px;
.upload_btn {
width: 100%;
height: 45px;
color: #fff;
background-color: rgba(41, 40, 91, 1);
font-size: 16px;
border-radius: 10px;
}
p {
text-align: center;
color: rgba(59, 57, 77, 1);
font-size: 16px;
font-weight: 700;
}
.order_acceptance {
.order_acceptance_inner {
padding: 15px;
}
background-color: #fff;
width: 100%;
min-height: 300px;
border-radius: 15px;
-webkit-box-shadow: 0px 0px 8px -2px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0px 0px 8px -2px rgba(0, 0, 0, 0.5);
box-shadow: 0px 0px 8px -2px rgba(0, 0, 0, 0.5);
.toggle_btn {
width: 30px;
height: 30px;
background-image: url("../../assets/bar.png");
background-position: center;
background-repeat: no-repeat;
background-size: 25px;
}
.point_header {
width: 100%;
strong {
color: rgba(59, 57, 77, 1);
color: #3b394d;
font-weight: bold;
padding: 5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.point_image {
width: 40px;
height: 40px;
float: left;
border-radius: 50%;
background-color: #a8a8a8;
img {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
object-position: center;
}
}
.point_detail {
width: calc(100% - 75px);
float: left;
text-align: left;
color: rgba(59, 57, 77, 1);
font-size: 20px;
font-weight: 600;
padding: 5px;
padding-left: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.point_box {
border-left: 2px dashed rgba(215, 213, 228, 1);
padding-top: 20px;
padding-bottom: 20px;
padding: 15px;
padding-right: 0px;
margin-left: 16px;
margin-top: 7px;
margin-bottom: 7px;
.point_head {
background-color: #fff;
-webkit-box-shadow: 0px 0px 18px 7px rgba(215, 213, 228, 0.8);
-moz-box-shadow: 0px 0px 18px 7px rgba(215, 213, 228, 0.8);
box-shadow: 0px 0px 18px 7px rgba(215, 213, 228, 0.8);
padding: 6px;
padding-left: 25px;
padding-right: 25px;
border-radius: 20px;
strong {
color: rgba(41, 40, 91, 1);
margin-right: 5px;
}
}
}
.bottom_btn_bay {
.accept_btn {
width: 50%;
background-color: rgba(53, 203, 171, 1);
color: #fff;
font-size: 20px;
padding: 15px;
border-bottom-right-radius: 15px;
}
.reject_btn {
width: 50%;
background-color: rgba(255, 71, 87, 1);
color: #fff;
font-size: 20px;
padding: 15px;
border-bottom-left-radius: 15px;
}
}
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { HomePage } from './home.page';
describe('HomePage', () => {
let component: HomePage;
let fixture: ComponentFixture<HomePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ HomePage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(HomePage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component } from '@angular/core';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
status:any;
public lat: number = 51.678418;
public lng: number = 7.809007;
public origin: any;
public destination: any;
public renderOptions:any;
public markerOptions:any;
currentIndex: any;
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) {
this.status = 0;
}
ngOnInit() {
this.getDirection();
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
changeStatus(){
this.status = !this.status;
}
slideOpts={
slidesPerView:1.1,
spaceBetween:20
}
getDirection() {
this.origin = { lat: 51.678418, lng: 7.80 };
this.destination = { lat: 51.678418, lng: 7.82 };
this.renderOptions = { polylineOptions: { strokeColor: 'rgba(69, 67, 152,1)' }, suppressMarkers: true};
this.markerOptions = {
origin: {
icon: './assets/source.png',
},
destination: {
icon: './assets/destination.png',
}
};
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { LoginPage } from './login.page';
const routes: Routes = [
{
path: '',
component: LoginPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [LoginPage]
})
export class LoginPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn floatLeft">
</button>
<div class="nav_title floatLeft">
<h4>RIDER LOGIN</h4>
</div>
<div class="clear"></div>
</div>
<div class="login_wrapper">
<div class="logo_wrapper">
<img src="../../assets/[email protected]">
</div>
<div class="login_inner">
<div class="row">
<ion-input placeholder="Rider ID/Phone Number"></ion-input>
</div>
<div class="row">
<ion-input placeholder="Password" type="password "></ion-input>
</div>
<div class="row">
<button class="login_btn" (click)="goToPage('home')">
LOGIN
</button>
</div>
<div class="row">
<h4 (click)="goToPage('forgotpass')"><strong>FORGOT PASSWORD</strong></h4>
<h4>Don't have an Account ? <strong (click)="goToPage('signup')">SIGN UP</strong></h4>
</div>
</div>
</div>
</ion-content>
\ No newline at end of file
.login_wrapper {
padding: 15px;
.logo_wrapper {
width: 100%;
text-align: center;
padding-top: 15%;
img {
width: 170px;
}
}
.login_inner {
width: 90%;
padding-top: 20px;
margin: 0 auto;
.row {
padding-bottom: 25px;
ion-input {
.native-input {
padding-left: 0px;
}
border: 1px solid rgba(215, 213, 228, 1);
text-align: center;
height: 45px;
border-radius: 8px;
color: rgba(176, 174, 199, 1);
font-size: 16px;
}
.login_btn {
height: 45px;
width: 100%;
border-radius: 8px;
background-color: rgba(41, 40, 91, 1);
color: #fff;
font-size: 16px;
margin-bottom: 10%;
}
h4 {
color: rgba(41, 40, 91, 1);
text-align: center;
}
}
}
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { LoginPage } from './login.page';
describe('LoginPage', () => {
let component: LoginPage;
let fixture: ComponentFixture<LoginPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ LoginPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(LoginPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-login',
templateUrl: './login.page.html',
styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit {
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) { }
ngOnInit() {
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { OtpPage } from './otp.page';
const routes: Routes = [
{
path: '',
component: OtpPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [OtpPage]
})
export class OtpPageModule {}
<ion-header>
<ion-toolbar>
<ion-title>otp</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { OtpPage } from './otp.page';
describe('OtpPage', () => {
let component: OtpPage;
let fixture: ComponentFixture<OtpPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ OtpPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(OtpPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-otp',
templateUrl: './otp.page.html',
styleUrls: ['./otp.page.scss'],
})
export class OtpPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { PasswordPage } from './password.page';
const routes: Routes = [
{
path: '',
component: PasswordPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [PasswordPage]
})
export class PasswordPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn nav_back_white floatLeft" (click)="goBack()">
</button>
<div class="nav_title floatLeft">
<h4>PASSWORD</h4>
</div>
<div class="clear"></div>
</div>
<div class="login_wrapper">
<div class="login_inner">
<div class="row">
<div class="log_label">Create a Password</div>
<ion-input placeholder="Your Password" type="Password"></ion-input>
</div>
<div class="row">
<div class="log_label">Confirm Password</div>
<ion-input placeholder="Your Password" type="Password"></ion-input>
</div>
<div class="row">
<button class="login_btn" (click)="goToPage('login')">
SUBMIT
</button>
</div>
</div>
</div>
</ion-content>
\ No newline at end of file
.login_wrapper {
padding: 15px;
.logo_wrapper {
width: 100%;
text-align: center;
img {
width: 170px;
}
}
.login_inner {
width: 90%;
padding-top: 20px;
margin: 0 auto;
.row {
padding-bottom: 25px;
ion-input {
.native-input {
padding-left: 0px;
}
border: 1px solid rgba(215, 213, 228, 1);
text-align: center;
height: 45px;
border-radius: 8px;
color: rgba(176, 174, 199, 1);
font-size: 16px;
}
.login_btn {
height: 45px;
width: 100%;
border-radius: 8px;
background-color: rgba(41, 40, 91, 1);
color: #fff;
font-size: 16px;
margin-bottom: 10%;
}
h4 {
color: rgba(41, 40, 91, 1);
text-align: center;
}
.log_label {
color: #3b394d;
font-weight: bolder;
margin-bottom: 10px;
}
h6 {
color: rgba(41, 40, 91, 1);
span {
position: relative;
top: 5px;
}
a {
color: rgba(41, 40, 91, 1);
text-decoration: none;
font-weight: 900;
}
.styled-checkbox {
position: absolute; // take it out of document flow
opacity: 0; // hide it
&+label {
position: relative;
cursor: pointer;
padding: 0;
}
// Box.
&+label:before {
content: '';
margin-right: 10px;
display: inline-block;
vertical-align: text-top;
width: 30px;
height: 30px;
border-radius: 10px;
background: white;
border: 1px solid rgba(215, 213, 228, 1);
}
// Box hover
// Box checked
&:checked+label:before {
background: #29285b;
}
// Disabled state label.
&:disabled+label {
color: #b8b8b8;
cursor: auto;
}
// Disabled box.
&:disabled+label:before {
box-shadow: none;
background: #ddd;
}
// Checkmark. Could be replaced with an image
&:checked+label:after {
content: '';
position: absolute;
left: 10px;
top: 15px;
background: white;
width: 2px;
height: 2px;
box-shadow: 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white;
transform: rotate(45deg);
}
}
}
}
}
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { PasswordPage } from './password.page';
describe('PasswordPage', () => {
let component: PasswordPage;
let fixture: ComponentFixture<PasswordPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ PasswordPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PasswordPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-password',
templateUrl: './password.page.html',
styleUrls: ['./password.page.scss'],
})
export class PasswordPage implements OnInit {
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) { }
ngOnInit() {
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { ProfilePage } from './profile.page';
const routes: Routes = [
{
path: '',
component: ProfilePage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [ProfilePage]
})
export class ProfilePageModule {}
<ion-header>
<ion-toolbar>
<ion-title>profile</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ProfilePage } from './profile.page';
describe('ProfilePage', () => {
let component: ProfilePage;
let fixture: ComponentFixture<ProfilePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ProfilePage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ProfilePage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-profile',
templateUrl: './profile.page.html',
styleUrls: ['./profile.page.scss'],
})
export class ProfilePage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { RidePage } from './ride.page';
const routes: Routes = [
{
path: '',
component: RidePage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [RidePage]
})
export class RidePageModule {}
<ion-header>
<ion-toolbar>
<ion-title>ride</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RidePage } from './ride.page';
describe('RidePage', () => {
let component: RidePage;
let fixture: ComponentFixture<RidePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ RidePage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(RidePage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-ride',
templateUrl: './ride.page.html',
styleUrls: ['./ride.page.scss'],
})
export class RidePage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { RidedetailsPage } from './ridedetails.page';
const routes: Routes = [
{
path: '',
component: RidedetailsPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [RidedetailsPage]
})
export class RidedetailsPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn nav_back_white floatLeft" (click)="goBack()">
</button>
<div class="nav_title floatLeft">
<h4>RIDE DETAILS</h4>
</div>
<button class="nav_btn nav_messenger floatRight">
</button>
<div class="clear"></div>
</div>
<div class="ridedetail_wrapper">
<div class="order_acceptance">
<div class="order_acceptance_inner">
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">You</div>
<strong class="floatRight">ORID008800</strong>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
06, Tasmania, horse building<br>
<strong>2 Km</strong>
</div>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">Lulu fashion store</div>
<div class="clear"></div>
</div>
<div class="point_box">
<div class="point_head floatLeft">
06, Tasmania, horse building<br>
<strong>1 Km</strong>
</div>
<strong class="floatRight">Men's Shirt<br>
<span>Au$ 88</span></strong>
<div class="clear"></div>
</div>
<div class="point_header">
<div class="point_image"></div>
<div class="point_detail">John Doe</div>
<div class="clear"></div>
</div>
<div class="point_box borderNone">
<div class="point_head floatLeft">
06, Tasmania, horse building<br>
<strong>1 Km</strong>
</div>
<div class="clear"></div>
</div>
</div>
<hr>
<br>
<ion-row>
<ion-col>Total Kilometers</ion-col>
<ion-col class="textRight"><strong>4 Km</strong></ion-col>
</ion-row>
<ion-row>
<ion-col>Amount/Km</ion-col>
<ion-col class="textRight"><strong>AUD$ 20</strong></ion-col>
</ion-row>
<br>
<hr>
<ion-row>
<ion-col>Excluding Comission and Tips</ion-col>
</ion-row>
</div>
</div>
</ion-content>
<ion-footer>
<div class="bottom_btn_bay">
<button class="accept_btn floatRight" (click)="goToPage('riderlounge')">
Accept
</button>
<button class="reject_btn floatLeft">Reject</button>
<div class="clear"></div>
</div>
</ion-footer>
\ No newline at end of file
.ridedetail_wrapper {
padding-top: 10px;
padding-bottom: 10px;
hr {
width: 85%;
border: 1px solid #d7d5e4;
height: 0px;
border-bottom: none;
}
.order_acceptance {
width: 90%;
margin: 0 auto;
.order_acceptance_inner {
padding: 0px;
strong {
color: #3b394d;
font-weight: bold;
padding: 5px;
width: 120px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: right;
span {
font-weight: 200;
}
}
}
.toggle_btn {
width: 30px;
height: 30px;
background-image: url("../../assets/bar.png");
background-position: center;
background-repeat: no-repeat;
background-size: 25px;
}
.point_header {
width: 100%;
.point_image {
width: 40px;
height: 40px;
float: left;
border-radius: 50%;
background-color: #a8a8a8;
img {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
object-position: center;
}
}
.point_detail {
width: calc(100% - 160px);
float: left;
text-align: left;
color: rgba(59, 57, 77, 1);
font-size: 20px;
font-weight: 600;
padding: 5px;
padding-left: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.point_box {
border-left: 2px dashed rgba(215, 213, 228, 1);
padding-top: 5px;
padding-bottom: 5px;
padding-right: 0px;
margin-left: 16px;
margin-top: 5px;
margin-bottom: 5px;
.point_head {
padding: 5px;
font-size: 14px;
padding-left: 15px;
padding-right: 5px;
border-radius: 20px;
strong {
color: rgba(41, 40, 91, 1);
margin-right: 5px;
}
}
}
.bottom_btn_bay {
padding-top: 20px;
.accept_btn {
width: 50%;
background-color: rgba(53, 203, 171, 1);
color: #fff;
font-size: 20px;
padding: 15px;
border-bottom-right-radius: 15px;
border-top-right-radius: 15px;
}
.reject_btn {
width: 50%;
background-color: rgba(255, 71, 87, 1);
color: #fff;
font-size: 20px;
padding: 15px;
border-bottom-left-radius: 15px;
border-top-left-radius: 15px;
}
}
}
}
.bottom_btn_bay {
padding: 20px;
.accept_btn {
width: 50%;
background-color: rgba(53, 203, 171, 1);
color: #fff;
font-size: 20px;
padding: 15px;
border-bottom-right-radius: 15px;
border-top-right-radius: 15px;
}
.reject_btn {
width: 50%;
background-color: rgba(255, 71, 87, 1);
color: #fff;
font-size: 20px;
padding: 15px;
border-bottom-left-radius: 15px;
border-top-left-radius: 15px;
}
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RidedetailsPage } from './ridedetails.page';
describe('RidedetailsPage', () => {
let component: RidedetailsPage;
let fixture: ComponentFixture<RidedetailsPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ RidedetailsPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(RidedetailsPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-ridedetails',
templateUrl: './ridedetails.page.html',
styleUrls: ['./ridedetails.page.scss'],
})
export class RidedetailsPage implements OnInit {
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) { }
ngOnInit() {
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { AgmCoreModule } from '@agm/core';
import { AgmDirectionModule } from 'agm-direction';
import { RiderloungePage } from './riderlounge.page';
const routes: Routes = [
{
path: '',
component: RiderloungePage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes),
AgmDirectionModule,
AgmCoreModule.forRoot({
apiKey: 'AIzaSyAK3Av2e2dunqInYEaAVJPmzK5HTi0gubw'
}),
],
declarations: [RiderloungePage]
})
export class RiderloungePageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn floatLeft">
<div class="nav_circle">
</div>
</button>
<div class="nav_title floatLeft">
<h4>RIDE DETAILS</h4>
</div>
<button class="nav_btn nav_messenger floatRight">
</button>
<div class="clear"></div>
</div>
<div class="rider_lounge_wrapper">
<agm-map [zoom]="20" [latitude]="lat" [longitude]="lng">
<agm-direction [origin]="origin" [destination]="destination" [renderOptions]="renderOptions" [markerOptions]="markerOptions">
</agm-direction>
</agm-map>
<div class="bottom_bay">
<ion-slides pager="false" [options]="riderlounge" (ionSlideDidChange)="slideChanged()">
<ion-slide>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<h2 class="floatLeft"><strong>2 Km</strong>3 Mnt.</h2>
<div class="toggle_btn floatRight" (click)="goToPage('ridedetails')"></div>
<div class="clear"></div>
<div class="order_place">
<div class="order_place_image"></div>
<div class="order_place_detail">
<h5>LuLu Fashion Store</h5>
<p>06, Tasmania, horse building..</p>
</div>
<div class="clear"></div>
</div>
<div class="time">
<strong>10</strong>Mnt
</div>
<div class="reach_btn" (click)="next()">REACHED AT SHOP</div>
<div class="clear"></div>
</div>
</div>
</ion-slide>
<ion-slide>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<div class="order_place pt0">
<div class="order_place_image"></div>
<div class="order_place_detail" style="width: calc(100% - 90px);">
<h5>LuLu Fashion Store</h5>
<p>06, Tasmania, horse building..</p>
</div>
<div class="toggle_btn floatRight" (click)="goToPage('ridedetails')"></div>
<div class="clear"></div>
</div>
<hr>
<div class="items_div">
<ion-row>
<ion-col class="textLeft">
<input class="styled-checkbox" id="styled-checkbox-1" type="checkbox" value="value1">
<label for="styled-checkbox-1">Men's Shirt</label>
</ion-col>
<ion-col class="textRight">
<p>AU$ 88</p>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="textLeft">
<input class="styled-checkbox" id="styled-checkbox-2" type="checkbox" value="value2">
<label for="styled-checkbox-2">Men's Jeans</label>
</ion-col>
<ion-col class="textRight">
<p>AU$ 72</p>
</ion-col>
</ion-row>
</div>
<div class="time">
<strong>05</strong>Mnt
</div>
<div class="reach_btn" (click)="next()">PRODUCT COLLECTED</div>
<div class="clear"></div>
</div>
</div>
</ion-slide>
<ion-slide>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<h2 class="floatLeft"><strong>2 Km</strong>3 Mnt.</h2>
<div class="toggle_btn floatRight" (click)="goToPage('ridedetails')"></div>
<div class="clear"></div>
<div class="order_place">
<div class="order_place_image"></div>
<div class="order_place_detail" style="width: calc(100% - 140px);">
<h5>LuLu Fashion Store</h5>
<p>06, Tasmania, horse building..</p>
</div>
<button class="call">Call</button>
<div class="clear"></div>
</div>
<div class="time">
<strong>30</strong>Mnt
</div>
<div class="reach_btn" (click)="next()">REACHED AT CUSTOMER</div>
<div class="clear"></div>
</div>
</div>
</ion-slide>
<ion-slide>
<div class="order_acceptance">
<div class="order_acceptance_inner">
<div class="order_place pt0">
<div class="order_place_image"></div>
<div class="order_place_detail" style="width: calc(100% - 90px);">
<h5>LuLu Fashion Store</h5>
<p>06, Tasmania, horse building..</p>
</div>
<div class="toggle_btn floatRight" (click)="goToPage('ridedetails')"></div>
<div class="clear"></div>
</div>
<hr>
<div class="items_div">
<ion-row>
<ion-col class="textLeft">
<h4>Products</h4>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="textLeft">
<label for="styled-checkbox-1">Men's Shirt</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="textLeft">
<label for="styled-checkbox-2">Men's Jeans</label>
</ion-col>
</ion-row>
</div>
<div class="time">
<strong>05</strong>Mnt
</div>
<div class="reach_btn" (click)="goToPage('complete')">PRODUCT DELIVERED</div>
<div class="clear"></div>
</div>
</div>
</ion-slide>
</ion-slides>
</div>
</div>
</ion-content>
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RiderloungePage } from './riderlounge.page';
describe('RiderloungePage', () => {
let component: RiderloungePage;
let fixture: ComponentFixture<RiderloungePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ RiderloungePage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(RiderloungePage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit, ViewChild, } from '@angular/core';
import { IonSlides } from '@ionic/angular';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-riderlounge',
templateUrl: './riderlounge.page.html',
styleUrls: ['./riderlounge.page.scss'],
})
export class RiderloungePage implements OnInit {
@ViewChild(IonSlides, { static: false }) slides: IonSlides;
currentIndex: any;
status: any;
public lat: number = 51.678418;
public lng: number = 7.809007;
public origin: any;
public destination: any;
public renderOptions: any;
public markerOptions: any;
deliveryStatus:any;
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) { }
riderlounge = {
slidesPerView: 1,
spaceBetween: 20,
allowTouchMove: false
}
ngOnInit() {
this.getDirection();
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
changeStatus() {
this.status = !this.status;
}
getDirection() {
this.origin = { lat: 51.678418, lng: 7.80 };
this.destination = { lat: 51.678418, lng: 7.82 };
this.renderOptions = { polylineOptions: { strokeColor: 'rgba(69, 67, 152,1)' }, suppressMarkers: true };
this.markerOptions = {
origin: {
icon: './assets/source.png',
},
destination: {
icon: './assets/destination.png',
}
};
}
next() {
this.slides.slideNext();
}
prev() {
this.slides.slidePrev();
}
slideChanged() {
this.slides.getActiveIndex().then(index => {
this.currentIndex = index;
console.log(this.currentIndex);
});
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { SignupPage } from './signup.page';
const routes: Routes = [
{
path: '',
component: SignupPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [SignupPage]
})
export class SignupPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn nav_back_white floatLeft" (click)="goBack()">
</button>
<div class="nav_title floatLeft">
<h4>RIDER SIGNUP</h4>
</div>
<div class="clear"></div>
</div>
<div class="login_wrapper">
<div class="login_inner">
<div class="row">
<div class="log_label">Name</div>
<ion-input placeholder="Your Full Name"></ion-input>
</div>
<div class="row">
<div class="log_label">Email Address</div>
<ion-input placeholder="Ex: [email protected]" type="mail"></ion-input>
</div>
<div class="row">
<div class="log_label">Phone Number</div>
<ion-input placeholder="+00 0000 0000 000" type="number"></ion-input>
</div>
<div class="row">
<div class="log_label">Country</div>
<ion-input placeholder="Australia" type=""></ion-input>
</div>
<div class="row">
<div class="log_label">State</div>
<ion-input placeholder="Queens Land" type=""></ion-input>
</div>
<div class="row">
<div class="log_label">District</div>
<ion-input placeholder="Type here" type=""></ion-input>
</div>
<div class="row">
<div class="log_label">City</div>
<ion-input placeholder="Type here" type=""></ion-input>
</div>
<div class="row">
<div class="log_label">Area</div>
<ion-input placeholder="Type here" type=""></ion-input>
</div>
<div class="row">
<div class="log_label">Landmark</div>
<ion-input placeholder="Type here" type=""></ion-input>
</div>
<div class="row">
<h6>
<input class="styled-checkbox" id="styled-checkbox-1" type="checkbox" value="value1">
<label for="styled-checkbox-1"><span>I agree with <a>Terms and Conditions</a></span></label></h6>
</div>
<div class="row">
<button class="login_btn" (click)="goToPage('verification')">
SIGN UP
</button>
</div>
</div>
</div>
</ion-content>
\ No newline at end of file
.login_wrapper {
padding: 15px;
.logo_wrapper {
width: 100%;
text-align: center;
img {
width: 170px;
}
}
.login_inner {
width: 90%;
padding-top: 20px;
margin: 0 auto;
.row {
padding-bottom: 25px;
ion-input {
.native-input {
padding-left: 0px;
}
border: 1px solid rgba(215, 213, 228, 1);
text-align: center;
height: 45px;
border-radius: 8px;
color: rgba(176, 174, 199, 1);
font-size: 16px;
}
.login_btn {
height: 45px;
width: 100%;
border-radius: 8px;
background-color: rgba(41, 40, 91, 1);
color: #fff;
font-size: 16px;
margin-bottom: 10%;
}
h4 {
color: rgba(41, 40, 91, 1);
text-align: center;
}
.log_label {
color: #3b394d;
font-weight: bolder;
margin-bottom: 10px;
}
h6 {
color: rgba(41, 40, 91, 1);
span {
position: relative;
top: 5px;
}
a {
color: rgba(41, 40, 91, 1);
text-decoration: none;
font-weight: 900;
}
.styled-checkbox {
position: absolute; // take it out of document flow
opacity: 0; // hide it
&+label {
position: relative;
cursor: pointer;
padding: 0;
}
// Box.
&+label:before {
content: '';
margin-right: 10px;
display: inline-block;
vertical-align: text-top;
width: 30px;
height: 30px;
border-radius: 10px;
background: white;
border: 1px solid rgba(215, 213, 228, 1);
}
// Box hover
// Box checked
&:checked+label:before {
background: #29285b;
}
// Disabled state label.
&:disabled+label {
color: #b8b8b8;
cursor: auto;
}
// Disabled box.
&:disabled+label:before {
box-shadow: none;
background: #ddd;
}
// Checkmark. Could be replaced with an image
&:checked+label:after {
content: '';
position: absolute;
left: 10px;
top: 15px;
background: white;
width: 2px;
height: 2px;
box-shadow: 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white;
transform: rotate(45deg);
}
}
}
}
}
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { SignupPage } from './signup.page';
describe('SignupPage', () => {
let component: SignupPage;
let fixture: ComponentFixture<SignupPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ SignupPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SignupPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-signup',
templateUrl: './signup.page.html',
styleUrls: ['./signup.page.scss'],
})
export class SignupPage implements OnInit {
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) { }
ngOnInit() {
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { UploadPage } from './upload.page';
const routes: Routes = [
{
path: '',
component: UploadPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [UploadPage]
})
export class UploadPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn nav_back_white floatLeft" (click)="goBack()">
</button>
<div class="nav_title floatLeft">
<h4>DOCUMENTS</h4>
</div>
<div class="clear"></div>
</div>
<div class="document_upload_wrapper">
<div class="row">
<div class="document_upload_box">
<span>License</span>
<input type="file">
<!-- <div id="loadingProgressG" [hidden]="load == 0">
<div id="loadingProgressG_1" class="loadingProgressG"></div>
</div> -->
</div>
</div>
<div class="row">
<div class="document_upload_box">
<span>Vehicle Registration</span>
<input type="file">
<!-- <div id="loadingProgressG" [hidden]="load == 0">
<div id="loadingProgressG_1" class="loadingProgressG"></div>
</div> -->
</div>
</div>
<div class="row">
<div class="document_upload_box">
<span>Police check status</span>
<input type="file">
<!-- <div id="loadingProgressG" [hidden]="load == 0">
<div id="loadingProgressG_1" class="loadingProgressG"></div>
</div> -->
</div>
</div>
<div class="row">
<div class="document_upload_box">
<span>Current Insurance Policy</span>
<input type="file">
<!-- <div id="loadingProgressG" [hidden]="load == 0">
<div id="loadingProgressG_1" class="loadingProgressG"></div>
</div> -->
</div>
</div>
<div class="row">
<div class="document_upload_box">
<span>Certificate of currency</span>
<input type="file">
<!-- <div id="loadingProgressG" [hidden]="load == 0">
<div id="loadingProgressG_1" class="loadingProgressG"></div>
</div> -->
</div>
</div>
<div class="row">
<div class="document_upload_box">
<span>Emergency Contact Details</span>
<input type="file">
<!-- <div id="loadingProgressG" [hidden]="load == 0">
<div id="loadingProgressG_1" class="loadingProgressG"></div>
</div> -->
</div>
</div>
<div class="row">
<button class="upload_btn" (click)="goToPage('home')">UPLOAD SECURELY</button>
<p>You documents are safe with us. We will not share with anyone.</p>
</div>
</div>
</ion-content>
\ No newline at end of file
.document_upload_wrapper {
width: 100%;
padding: 20px;
.row {
padding-bottom: 25px;
.document_upload_box {
width: 100%;
height: 45px;
border: 2px solid rgba(215, 213, 228, 1);
border-radius: 10px;
text-align: center;
position: relative;
padding: 7px;
span {
font-size: 18px;
color: rgba(176, 174, 199, 1);
}
input {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
width: 100%;
border-radius: 10px;
opacity: 0;
}
.loader {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
width: 100%;
border-radius: 10px;
background-color: rgba(53, 203, 171, 1);
border: 2px solid rgba(53, 203, 171, 1);
}
}
.upload_btn {
width: 100%;
height: 45px;
margin-top: 30px;
color: #fff;
background-color: rgba(41, 40, 91, 1);
font-size: 16px;
border-radius: 10px;
}
p {
text-align: center;
color: rgba(176, 174, 199, 1);
font-size: 16px;
font-weight: 700;
}
}
}
#loadingProgressG {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
width: 100%;
overflow: hidden;
background-color: rgba(53, 203, 171, 1);
margin: auto;
border-radius: 10px;
-o-border-radius: 10px;
-ms-border-radius: 10px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
}
.loadingProgressG {
background-color: rgb(255, 255, 255);
margin-top: 0;
margin-left: -250px;
animation-name: bounce_loadingProgressG;
-o-animation-name: bounce_loadingProgressG;
-ms-animation-name: bounce_loadingProgressG;
-webkit-animation-name: bounce_loadingProgressG;
-moz-animation-name: bounce_loadingProgressG;
animation-duration: 3s;
-o-animation-duration: 3s;
-ms-animation-duration: 3s;
-webkit-animation-duration: 3s;
-moz-animation-duration: 3s;
animation-iteration-count: infinite;
-o-animation-iteration-count: infinite;
-ms-animation-iteration-count: infinite;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
animation-timing-function: linear;
-o-animation-timing-function: linear;
-ms-animation-timing-function: linear;
-webkit-animation-timing-function: linear;
-moz-animation-timing-function: linear;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
width: 100%;
}
@keyframes bounce_loadingProgressG {
0% {
margin-left: -100%;
}
100% {
margin-left: 100%;
}
}
@-o-keyframes bounce_loadingProgressG {
0% {
margin-left: -100%;
}
100% {
margin-left: 100%;
}
}
@-ms-keyframes bounce_loadingProgressG {
0% {
margin-left: -100%;
}
100% {
margin-left: 100%;
}
}
@-webkit-keyframes bounce_loadingProgressG {
0% {
margin-left: -100%;
}
100% {
margin-left: 100%;
}
}
@-moz-keyframes bounce_loadingProgressG {
0% {
margin-left: -100%;
}
100% {
margin-left: 100%;
}
}
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { UploadPage } from './upload.page';
describe('UploadPage', () => {
let component: UploadPage;
let fixture: ComponentFixture<UploadPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ UploadPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(UploadPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-upload',
templateUrl: './upload.page.html',
styleUrls: ['./upload.page.scss'],
})
export class UploadPage implements OnInit {
load:any;
constructor(
private router: Router,
private route: ActivatedRoute,
private location: Location
) {
this.load = 0;
}
ngOnInit() {
}
onClickLoad(){
this.load = !this.load;
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { VerificationPage } from './verification.page';
const routes: Routes = [
{
path: '',
component: VerificationPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [VerificationPage]
})
export class VerificationPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn nav_back_white floatLeft" (click)="goBack()">
</button>
<div class="nav_title floatLeft">
<h4>VERIFICATION</h4>
</div>
<div class="clear"></div>
</div>
<div class="login_wrapper">
<div class="login_inner">
<div class="row">
<div class="log_label textCenter">We have send OTP to <strong>+1 1021 5447 983</strong></div>
<ion-input placeholder="Type OTP" type=""></ion-input>
</div>
<div class="row">
<button class="login_btn" (click)="goToPage('password')">
SUBMIT
</button>
</div>
</div>
</div>
</ion-content>
\ No newline at end of file
.login_wrapper {
padding: 15px;
.logo_wrapper {
width: 100%;
text-align: center;
img {
width: 170px;
}
}
.login_inner {
width: 90%;
padding-top: 20px;
margin: 0 auto;
.row {
padding-bottom: 25px;
ion-input {
.native-input {
padding-left: 0px;
}
border: 1px solid rgba(215, 213, 228, 1);
text-align: center;
height: 45px;
border-radius: 8px;
color: rgba(176, 174, 199, 1);
font-size: 16px;
}
.login_btn {
height: 45px;
width: 100%;
border-radius: 8px;
background-color: rgba(41, 40, 91, 1);
color: #fff;
font-size: 16px;
margin-bottom: 10%;
}
h4 {
color: rgba(41, 40, 91, 1);
text-align: center;
}
.log_label {
color: rgba(59, 57, 77, 1);
margin-bottom: 10px;
font-size: 18px;
padding-bottom: 30px;
padding-top: 20px;
strong {
font-weight: bolder;
}
}
h6 {
color: rgba(41, 40, 91, 1);
span {
position: relative;
top: 5px;
}
a {
color: rgba(41, 40, 91, 1);
text-decoration: none;
font-weight: 900;
}
.styled-checkbox {
position: absolute; // take it out of document flow
opacity: 0; // hide it
&+label {
position: relative;
cursor: pointer;
padding: 0;
}
// Box.
&+label:before {
content: '';
margin-right: 10px;
display: inline-block;
vertical-align: text-top;
width: 30px;
height: 30px;
border-radius: 10px;
background: white;
border: 1px solid rgba(215, 213, 228, 1);
}
// Box hover
// Box checked
&:checked+label:before {
background: #29285b;
}
// Disabled state label.
&:disabled+label {
color: #b8b8b8;
cursor: auto;
}
// Disabled box.
&:disabled+label:before {
box-shadow: none;
background: #ddd;
}
// Checkmark. Could be replaced with an image
&:checked+label:after {
content: '';
position: absolute;
left: 10px;
top: 15px;
background: white;
width: 2px;
height: 2px;
box-shadow: 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white;
transform: rotate(45deg);
}
}
}
}
}
}
\ No newline at end of file
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
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