diff --git a/packages/vehicle-manufacture-car-builder/.gitignore b/packages/vehicle-manufacture-car-builder/.gitignore index b8e2f43f..d8334732 100644 --- a/packages/vehicle-manufacture-car-builder/.gitignore +++ b/packages/vehicle-manufacture-car-builder/.gitignore @@ -69,3 +69,7 @@ typings/ .env www/ + +# Phone app generated +plugins +platforms \ No newline at end of file diff --git a/packages/vehicle-manufacture-car-builder/config.xml b/packages/vehicle-manufacture-car-builder/config.xml index f59e195a..5ad13712 100644 --- a/packages/vehicle-manufacture-car-builder/config.xml +++ b/packages/vehicle-manufacture-car-builder/config.xml @@ -1,83 +1,71 @@ - - - - Arium - An awesome demo for Vehicle Lifecycle. - Anna Thomas - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + Arium + An awesome demo for Vehicle Lifecycle. + Anna Thomas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/vehicle-manufacture-car-builder/ionic.config.json b/packages/vehicle-manufacture-car-builder/ionic.config.json index 730d674f..8a666020 100644 --- a/packages/vehicle-manufacture-car-builder/ionic.config.json +++ b/packages/vehicle-manufacture-car-builder/ionic.config.json @@ -1,5 +1,8 @@ { "name": "vehicleLifecycle", "app_id": "test", - "type": "ionic-angular" + "type": "ionic-angular", + "integrations": { + "cordova": {} + } } diff --git a/packages/vehicle-manufacture-car-builder/package.json b/packages/vehicle-manufacture-car-builder/package.json index ce150785..1c04a061 100644 --- a/packages/vehicle-manufacture-car-builder/package.json +++ b/packages/vehicle-manufacture-car-builder/package.json @@ -2,7 +2,7 @@ "name": "vehicle-manufacture-car-builder", "private": false, "author": "Hyperledger Composer", - "homepage": "http://ionicframework.com/", + "homepage": "http://github.com/hyperledger/composer-sample-applications", "scripts": { "clean": "ionic-app-scripts clean", "build": "ionic-app-scripts build", @@ -37,8 +37,20 @@ } }, "dependencies": { + "@ionic-native/keyboard": "3.4.2", "config": "^1.26.1", + "cordova-ios": "^4.5.4", + "cordova-plugin-compat": "^1.2.0", + "cordova-plugin-console": "^1.1.0", + "cordova-plugin-device": "^1.1.7", + "cordova-plugin-ionic-keyboard": "^2.1.2", + "cordova-plugin-ionic-webview": "^1.2.1", + "cordova-plugin-splashscreen": "^4.1.0", + "cordova-plugin-statusbar": "^2.4.2", + "cordova-plugin-whitelist": "^1.3.3", "express": "^4.15.2", + "ionic-plugin-keyboard": "^2.2.1", + "shelljs": "^0.8.2", "ws": "^2.3.1" }, "devDependencies": { @@ -68,5 +80,20 @@ }, "version": "0.0.7", "description": "Vehicle Lifecycle - A mobile application for the customers view", - "license": "Apache-2.0" -} + "license": "Apache-2.0", + "cordova": { + "plugins": { + "cordova-plugin-console": {}, + "cordova-plugin-device": {}, + "cordova-plugin-splashscreen": {}, + "cordova-plugin-statusbar": {}, + "cordova-plugin-whitelist": {}, + "ionic-plugin-keyboard": {}, + "cordova-plugin-ionic-webview": {}, + "cordova-plugin-ionic-keyboard": {} + }, + "platforms": [ + "ios" + ] + } +} \ No newline at end of file diff --git a/packages/vehicle-manufacture-car-builder/src/app/app.module.ts b/packages/vehicle-manufacture-car-builder/src/app/app.module.ts index da6a0822..40c84f4c 100644 --- a/packages/vehicle-manufacture-car-builder/src/app/app.module.ts +++ b/packages/vehicle-manufacture-car-builder/src/app/app.module.ts @@ -18,6 +18,7 @@ import { SplashScreen } from '@ionic-native/splash-screen'; import { StatusBar } from '@ionic-native/status-bar'; import { CloudSettings, CloudModule } from '@ionic/cloud-angular'; import { HttpModule } from '@angular/http'; +import { Keyboard } from '@ionic-native/keyboard'; import { MyApp } from './app.component'; import { LoginPage } from '../pages/login/login'; @@ -26,6 +27,8 @@ import { BuilderPage } from '../pages/builder/builder'; import { StatusPage } from '../pages/status/status'; import { CarSlideComponent } from '../components/car-slide/car-slide'; import { HeaderComponent } from '../components/header/header'; +import { SettingsPage } from '../pages/settings/settings'; +import { ConfigProvider } from '../providers/config/config'; // This needs to be changed if interacting with Ionic services - https://docs.ionic.io/setup.html const cloudSettings: CloudSettings = { @@ -38,6 +41,7 @@ const cloudSettings: CloudSettings = { declarations: [ MyApp, LoginPage, + SettingsPage, DesignerPage, BuilderPage, StatusPage, @@ -54,6 +58,7 @@ const cloudSettings: CloudSettings = { entryComponents: [ MyApp, LoginPage, + SettingsPage, DesignerPage, BuilderPage, StatusPage @@ -61,7 +66,9 @@ const cloudSettings: CloudSettings = { providers: [ StatusBar, SplashScreen, - {provide: ErrorHandler, useClass: IonicErrorHandler} + Keyboard, + {provide: ErrorHandler, useClass: IonicErrorHandler}, + ConfigProvider ] }) export class AppModule {} diff --git a/packages/vehicle-manufacture-car-builder/src/assets/arium_nebula.svg b/packages/vehicle-manufacture-car-builder/src/assets/arium_nebula.svg new file mode 100644 index 00000000..5da42781 --- /dev/null +++ b/packages/vehicle-manufacture-car-builder/src/assets/arium_nebula.svg @@ -0,0 +1 @@ +car3 copy \ No newline at end of file diff --git a/packages/vehicle-manufacture-car-builder/src/assets/arium_nova.svg b/packages/vehicle-manufacture-car-builder/src/assets/arium_nova.svg new file mode 100644 index 00000000..858cc1a7 --- /dev/null +++ b/packages/vehicle-manufacture-car-builder/src/assets/arium_nova.svg @@ -0,0 +1 @@ +car1 copy \ No newline at end of file diff --git a/packages/vehicle-manufacture-car-builder/src/assets/arium_thanos.svg b/packages/vehicle-manufacture-car-builder/src/assets/arium_thanos.svg new file mode 100644 index 00000000..49caf432 --- /dev/null +++ b/packages/vehicle-manufacture-car-builder/src/assets/arium_thanos.svg @@ -0,0 +1 @@ +car2 copy \ No newline at end of file diff --git a/packages/vehicle-manufacture-car-builder/src/assets/arrow_left.svg b/packages/vehicle-manufacture-car-builder/src/assets/arrow_left.svg new file mode 100644 index 00000000..5a6e428d --- /dev/null +++ b/packages/vehicle-manufacture-car-builder/src/assets/arrow_left.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/vehicle-manufacture-car-builder/src/assets/bmw_1.jpeg b/packages/vehicle-manufacture-car-builder/src/assets/bmw_1.jpeg deleted file mode 100644 index e081729b..00000000 Binary files a/packages/vehicle-manufacture-car-builder/src/assets/bmw_1.jpeg and /dev/null differ diff --git a/packages/vehicle-manufacture-car-builder/src/assets/bmw_2.png b/packages/vehicle-manufacture-car-builder/src/assets/bmw_2.png deleted file mode 100644 index 31f2aee3..00000000 Binary files a/packages/vehicle-manufacture-car-builder/src/assets/bmw_2.png and /dev/null differ diff --git a/packages/vehicle-manufacture-car-builder/src/assets/bmw_3.jpeg b/packages/vehicle-manufacture-car-builder/src/assets/bmw_3.jpeg deleted file mode 100644 index a43b7e7c..00000000 Binary files a/packages/vehicle-manufacture-car-builder/src/assets/bmw_3.jpeg and /dev/null differ diff --git a/packages/vehicle-manufacture-car-builder/src/assets/cog.svg b/packages/vehicle-manufacture-car-builder/src/assets/cog.svg new file mode 100644 index 00000000..e8376042 --- /dev/null +++ b/packages/vehicle-manufacture-car-builder/src/assets/cog.svg @@ -0,0 +1,15 @@ + + + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.html b/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.html index 3d1afd31..a112741b 100644 --- a/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.html +++ b/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.html @@ -17,7 +17,7 @@

Car

Arium {{car.name}}

-
+
diff --git a/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.module.ts b/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.module.ts deleted file mode 100644 index 68c1a48b..00000000 --- a/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import { NgModule } from '@angular/core'; -import { IonicModule } from 'ionic-angular'; -import { CarSlideComponent } from './car-slide'; - -@NgModule({ - declarations: [ - CarSlideComponent, - ], - imports: [ - IonicModule.forRoot(CarSlideComponent), - ], - exports: [ - CarSlideComponent - ] -}) -export class CarSlideComponentModule {} diff --git a/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.scss b/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.scss index 2c5a0204..c23d725d 100644 --- a/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.scss +++ b/packages/vehicle-manufacture-car-builder/src/components/car-slide/car-slide.scss @@ -16,6 +16,10 @@ car-slide { padding: 0 0 0 25px; } + .image { + background-color: #F3F3F3; + } + .build { img { margin-right: 0!important; diff --git a/packages/vehicle-manufacture-car-builder/src/components/header/header.module.ts b/packages/vehicle-manufacture-car-builder/src/components/header/header.module.ts deleted file mode 100644 index e3d18985..00000000 --- a/packages/vehicle-manufacture-car-builder/src/components/header/header.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import { NgModule } from '@angular/core'; -import { IonicModule } from 'ionic-angular'; -import { HeaderComponent } from './header'; - -@NgModule({ - declarations: [ - HeaderComponent, - ], - imports: [ - IonicModule.forRoot(HeaderComponent), - ], - exports: [ - HeaderComponent - ] -}) -export class HeaderComponentModule {} diff --git a/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.html b/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.html index 40efd21d..1542adbb 100644 --- a/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.html +++ b/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.html @@ -168,6 +168,6 @@

Tinted Windows

- + diff --git a/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.module.ts b/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.module.ts deleted file mode 100644 index ca7f1135..00000000 --- a/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import { NgModule } from '@angular/core'; -import { IonicModule } from 'ionic-angular'; -import { BuilderPage } from './builder'; - -@NgModule({ - declarations: [ - BuilderPage, - ], - imports: [ - IonicModule.forRoot(BuilderPage), - ], - exports: [ - BuilderPage - ] -}) -export class BuilderPageModule {} diff --git a/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.ts b/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.ts index 1b38edb8..a823ac83 100644 --- a/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.ts +++ b/packages/vehicle-manufacture-car-builder/src/pages/builder/builder.ts @@ -12,9 +12,10 @@ See the License for the specific language governing permissions and limitations under the License. */ import { Component } from '@angular/core'; -import { IonicPage, NavController, NavParams } from 'ionic-angular'; +import { NavController, NavParams } from 'ionic-angular'; import { StatusPage } from '../status/status'; -import { Http, Response } from '@angular/http'; +import { Http } from '@angular/http'; +import { ConfigProvider } from '../../providers/config/config'; /** * Generated class for the BuilderPage page. @@ -22,7 +23,6 @@ import { Http, Response } from '@angular/http'; * See http://ionicframework.com/docs/components/#navigation for more info * on Ionic pages and navigation. */ -@IonicPage() @Component({ selector: 'page-builder', templateUrl: 'builder.html' @@ -31,25 +31,20 @@ export class BuilderPage { car: any; states: any; selected: string; - ready: Promise; - config: any; - constructor(private navController: NavController, private navParams: NavParams, private http: Http) { + private config = {}; + private ready = false; + + constructor(private navController: NavController, private navParams: NavParams, private http: Http, private configProvider: ConfigProvider) { this.car = navParams.get('car'); this.states = {}; - this.ready = this.loadConfig() - .then((config) => { - this.config = config; - console.log('Config loaded:',this.config) - }); - } - - loadConfig(): Promise { - // Load the config data. - return this.http.get('/assets/config.json') - .map((res: Response) => res.json()) - .toPromise(); + this.configProvider.ready.subscribe((ready) => { + if (ready) { + this.ready = true; + this.config = this.configProvider.getConfig(); + } + }); } open(option) { @@ -111,31 +106,29 @@ export class BuilderPage { orderId: this.generateID() }; - this.ready.then(() => { - - let parent = this; - - var data = JSON.stringify(order); - - var xhr = new XMLHttpRequest(); - xhr.withCredentials = true; - - xhr.addEventListener("readystatechange", function () { - if (this.readyState === 4 && this.status === 200) { - parent.navController.push(StatusPage, { - car: parent.car, - orderId: order.orderId - }); - } else if (this.readyState === 4) { - document.getElementById('purchase').getElementsByTagName('span')[0].innerHTML = 'An error occurred'; - console.log('RESPONSE TEXT', this.responseText); - } - }); - xhr.open("POST", this.config.restServer.httpURL+"/PlaceOrder"); - xhr.setRequestHeader("Content-Type", "application/json"); - xhr.send(data); - document.getElementById('purchase').getElementsByTagName('span')[0].innerHTML = 'Sending request...'; + + let parent = this; + + var data = JSON.stringify(order); + + var xhr = new XMLHttpRequest(); + xhr.withCredentials = true; + + xhr.addEventListener("readystatechange", function () { + if (this.readyState === 4 && this.status === 200) { + parent.navController.push(StatusPage, { + car: parent.car, + orderId: order.orderId + }); + } else if (this.readyState === 4) { + document.getElementById('purchase').getElementsByTagName('span')[0].innerHTML = 'An error occurred'; + console.log('RESPONSE TEXT', this.responseText); + } }); + xhr.open("POST", this.config['restServer'].httpURL+"/PlaceOrder"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(data); + document.getElementById('purchase').getElementsByTagName('span')[0].innerHTML = 'Sending request...'; } containsExtra(state) { diff --git a/packages/vehicle-manufacture-car-builder/src/pages/designer/designer.ts b/packages/vehicle-manufacture-car-builder/src/pages/designer/designer.ts index 7ca7629d..d4526aae 100644 --- a/packages/vehicle-manufacture-car-builder/src/pages/designer/designer.ts +++ b/packages/vehicle-manufacture-car-builder/src/pages/designer/designer.ts @@ -24,16 +24,22 @@ export class DesignerPage { constructor(public navController: NavController) { this.cars = [{ name: 'Nebula', - image: 'bmw_2.png', - zoom: 'cover' + image: 'arium_nebula.svg', + zoom: 'contain', + repeat: 'no-repeat', + position: 'right' }, { name: 'Nova', - image: 'bmw_1.jpeg', - zoom: 'cover' + image: 'arium_nova.svg', + zoom: 'contain', + repeat: 'no-repeat', + position: 'right' }, { name: 'Thanos', - image: 'bmw_3.jpeg', - zoom: 'cover' + image: 'arium_thanos.svg', + zoom: 'contain', + repeat: 'no-repeat', + position: 'right' }] } diff --git a/packages/vehicle-manufacture-car-builder/src/pages/login/login.html b/packages/vehicle-manufacture-car-builder/src/pages/login/login.html index 377969f8..54762b3d 100644 --- a/packages/vehicle-manufacture-car-builder/src/pages/login/login.html +++ b/packages/vehicle-manufacture-car-builder/src/pages/login/login.html @@ -14,6 +14,7 @@
+ settings