Explorar el Código

added google maps, but getting google not defined error

Eric Foster hace 6 años
padre
commit
88848250f6

+ 1
- 1
.sourcemaps/0.js.map Ver fichero

@@ -1 +1 @@
1
-{"version":3,"sources":["../../src/pages/signup/signup.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAyC;AACO;AACV;AAUtC;IAAA;IAA+B,CAAC;IAAnB,gBAAgB;QAR5B,uEAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,2DAAU;aACX;YACD,OAAO,EAAE;gBACP,sEAAe,CAAC,QAAQ,CAAC,2DAAU,CAAC;aACrC;SACF,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAA;AAAH","file":"0.js","sourcesContent":["import { NgModule } from '@angular/core';\nimport { IonicPageModule } from 'ionic-angular';\nimport { SignupPage } from './signup';\n\n@NgModule({\n  declarations: [\n    SignupPage,\n  ],\n  imports: [\n    IonicPageModule.forChild(SignupPage),\n  ],\n})\nexport class SignupPageModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/signup/signup.module.ts"],"sourceRoot":""}
1
+{"version":3,"sources":["../../src/pages/signup/signup.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAyC;AACO;AACV;AACqC;AAW3E;IAAA;IAA+B,CAAC;IAAnB,gBAAgB;QAT5B,uEAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,2DAAU;aACX;YACD,OAAO,EAAE;gBACP,4FAAa;gBACb,sEAAe,CAAC,QAAQ,CAAC,2DAAU,CAAC;aACrC;SACF,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAA;AAAH","file":"0.js","sourcesContent":["import { NgModule } from '@angular/core';\nimport { IonicPageModule } from 'ionic-angular';\nimport { SignupPage } from './signup';\nimport { SignupService } from '../../services/user-service/signup-service';\n\n@NgModule({\n  declarations: [\n    SignupPage,\n  ],\n  imports: [\n    SignupService,\n    IonicPageModule.forChild(SignupPage),\n  ],\n})\nexport class SignupPageModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/signup/signup.module.ts"],"sourceRoot":""}

+ 1
- 1
.sourcemaps/main.js.map
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 18
- 0
node_modules/@types/google-maps/README.md Ver fichero

@@ -0,0 +1,18 @@
1
+# Installation
2
+> `npm install --save @types/google-maps`
3
+
4
+# Summary
5
+This package contains type definitions for google-maps (https://www.npmjs.com/package/google-maps).
6
+
7
+# Details
8
+Files were exported from https://www.github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0/google-maps
9
+
10
+Additional Details
11
+ * Last updated: Tue, 29 Nov 2016 23:51:27 GMT
12
+ * File structure: UMD
13
+ * Library Dependencies: googlemaps
14
+ * Module Dependencies: none
15
+ * Global values: GoogleMapsLoader
16
+
17
+# Credits
18
+These definitions were written by Deividas Bakanas <https://github.com/DeividasBakanas>, Giedrius Grabauskas <https://github.com/GiedriusGrabauskas>.

+ 34
- 0
node_modules/@types/google-maps/index.d.ts Ver fichero

@@ -0,0 +1,34 @@
1
+// Type definitions for google-maps 3.2.1
2
+// Project: https://www.npmjs.com/package/google-maps
3
+// Definitions by: Deividas Bakanas <https://github.com/DeividasBakanas>, Giedrius Grabauskas <https://github.com/GiedriusGrabauskas>
4
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
+
6
+/// <reference types="googlemaps" />
7
+
8
+declare namespace GoogleMapsLoader {
9
+    type google = { maps: typeof google.maps };
10
+    interface CallBack {
11
+        (google: google): void;
12
+    }
13
+
14
+    export var KEY: string;
15
+    export var URL: string;
16
+    export var LIBRARIES: Array<string>;
17
+    export var CLIENT: string;
18
+    export var CHANNEL: string;
19
+    export var LANGUAGE: string;
20
+    export var REGION: string;
21
+    export var VERSION: string;
22
+    export var WINDOW_CALLBACK_NAME: string;
23
+
24
+    export function release(callBack: Function): void;
25
+    export function onLoad(callBack?: CallBack): void;
26
+    export function load(callBack?: CallBack): void;
27
+    export function isLoaded(): boolean;
28
+    export function createLoader(): void;
29
+    export function createUrl(): string;
30
+    export function makeMock(): void;
31
+}
32
+
33
+export = GoogleMapsLoader;
34
+export as namespace GoogleMapsLoader;

+ 48
- 0
node_modules/@types/google-maps/package.json Ver fichero

@@ -0,0 +1,48 @@
1
+{
2
+  "_from": "@types/google-maps",
3
+  "_id": "@types/google-maps@3.2.0",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-gEo66aySZbTg0VCLW5uJSGeXT4I=",
6
+  "_location": "/@types/google-maps",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "tag",
10
+    "registry": true,
11
+    "raw": "@types/google-maps",
12
+    "name": "@types/google-maps",
13
+    "escapedName": "@types%2fgoogle-maps",
14
+    "scope": "@types",
15
+    "rawSpec": "",
16
+    "saveSpec": null,
17
+    "fetchSpec": "latest"
18
+  },
19
+  "_requiredBy": [
20
+    "#USER",
21
+    "/"
22
+  ],
23
+  "_resolved": "https://registry.npmjs.org/@types/google-maps/-/google-maps-3.2.0.tgz",
24
+  "_shasum": "804a3ae9ac9265b4e0d1508b5b9b894867974f82",
25
+  "_spec": "@types/google-maps",
26
+  "_where": "/Users/ericf/ZCWProjects/SharedTravelMapIonicApp",
27
+  "author": {
28
+    "name": "Deividas Bakanas",
29
+    "email": "https://github.com/DeividasBakanas"
30
+  },
31
+  "bundleDependencies": false,
32
+  "dependencies": {
33
+    "@types/googlemaps": "*"
34
+  },
35
+  "deprecated": false,
36
+  "description": "TypeScript definitions for google-maps",
37
+  "license": "MIT",
38
+  "main": "",
39
+  "name": "@types/google-maps",
40
+  "peerDependencies": {},
41
+  "repository": {
42
+    "type": "git",
43
+    "url": "https://www.github.com/DefinitelyTyped/DefinitelyTyped.git"
44
+  },
45
+  "scripts": {},
46
+  "typesPublisherContentHash": "66e6cc29e3e1646ddb087799e8c8cddcefc7f67c0928281d18e1385fdcab57f7",
47
+  "version": "3.2.0"
48
+}

+ 24
- 0
node_modules/@types/google-maps/types-metadata.json Ver fichero

@@ -0,0 +1,24 @@
1
+{
2
+    "authors": "Deividas Bakanas <https://github.com/DeividasBakanas>, Giedrius Grabauskas <https://github.com/GiedriusGrabauskas>",
3
+    "libraryDependencies": [
4
+        "googlemaps"
5
+    ],
6
+    "moduleDependencies": [],
7
+    "libraryMajorVersion": 3,
8
+    "libraryMinorVersion": 2,
9
+    "libraryName": "google-maps",
10
+    "typingsPackageName": "google-maps",
11
+    "projectName": "https://www.npmjs.com/package/google-maps",
12
+    "sourceRepoURL": "https://www.github.com/DefinitelyTyped/DefinitelyTyped",
13
+    "sourceBranch": "types-2.0",
14
+    "kind": "UMD",
15
+    "globals": [
16
+        "GoogleMapsLoader"
17
+    ],
18
+    "declaredModules": [],
19
+    "files": [
20
+        "index.d.ts"
21
+    ],
22
+    "hasPackageJson": false,
23
+    "contentHash": "66e6cc29e3e1646ddb087799e8c8cddcefc7f67c0928281d18e1385fdcab57f7"
24
+}

+ 21
- 0
node_modules/@types/googlemaps/LICENSE Ver fichero

@@ -0,0 +1,21 @@
1
+    MIT License
2
+
3
+    Copyright (c) Microsoft Corporation. All rights reserved.
4
+
5
+    Permission is hereby granted, free of charge, to any person obtaining a copy
6
+    of this software and associated documentation files (the "Software"), to deal
7
+    in the Software without restriction, including without limitation the rights
8
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+    copies of the Software, and to permit persons to whom the Software is
10
+    furnished to do so, subject to the following conditions:
11
+
12
+    The above copyright notice and this permission notice shall be included in all
13
+    copies or substantial portions of the Software.
14
+
15
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+    SOFTWARE

+ 23
- 0
node_modules/@types/googlemaps/README.md Ver fichero

@@ -0,0 +1,23 @@
1
+# Installation
2
+> `npm install --save @types/googlemaps`
3
+
4
+# Summary
5
+This package contains type definitions for Google Maps JavaScript API (https://developers.google.com/maps/).
6
+
7
+# Details
8
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/googlemaps
9
+
10
+Additional Details
11
+ * Last updated: Fri, 06 Jul 2018 00:07:02 GMT
12
+ * Dependencies: none
13
+ * Global values: google
14
+
15
+# Credits
16
+These definitions were written by  Folia A/S <http://www.folia.dk>, 
17
+//                  Chris Wrench <https://github.com/cgwrench>, 
18
+//                  Kiarash Ghiaseddin <https://github.com/Silver-Connection/DefinitelyTyped>,  
19
+//                  Grant Hutchins <https://github.com/nertzy>, 
20
+//                  Denis Atyasov <https://github.com/xaolas>, 
21
+//                  Michael McMullin <https://github.com/mrmcnerd>, 
22
+//                  Martin Costello <https://github.com/martincostello>, 
23
+//                  Sven Kreiss <https://github.com/svenkreiss>, Umar Bolatov <https://github.com/bolatovumar>.

+ 2908
- 0
node_modules/@types/googlemaps/index.d.ts
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 83
- 0
node_modules/@types/googlemaps/package.json Ver fichero

@@ -0,0 +1,83 @@
1
+{
2
+  "_from": "@types/googlemaps@*",
3
+  "_id": "@types/googlemaps@3.30.11",
4
+  "_inBundle": false,
5
+  "_integrity": "sha512-/KxRVeLEUEoRyPp9bYNSv2FpuQUAEpTjEKAdcbYEbuFughA24j4Riy+ayAmQHKSZHjRrOt1s7wuksvhakIADPA==",
6
+  "_location": "/@types/googlemaps",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "@types/googlemaps@*",
12
+    "name": "@types/googlemaps",
13
+    "escapedName": "@types%2fgooglemaps",
14
+    "scope": "@types",
15
+    "rawSpec": "*",
16
+    "saveSpec": null,
17
+    "fetchSpec": "*"
18
+  },
19
+  "_requiredBy": [
20
+    "/@types/google-maps"
21
+  ],
22
+  "_resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.30.11.tgz",
23
+  "_shasum": "9a1e0d63120136047be2a7fdbfbd2e7061a50ee6",
24
+  "_spec": "@types/googlemaps@*",
25
+  "_where": "/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/node_modules/@types/google-maps",
26
+  "bugs": {
27
+    "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues"
28
+  },
29
+  "bundleDependencies": false,
30
+  "contributors": [
31
+    {
32
+      "name": "Folia A/S",
33
+      "url": "http://www.folia.dk"
34
+    },
35
+    {
36
+      "name": "//                  Chris Wrench",
37
+      "url": "https://github.com/cgwrench"
38
+    },
39
+    {
40
+      "name": "//                  Kiarash Ghiaseddin",
41
+      "url": "https://github.com/Silver-Connection/DefinitelyTyped"
42
+    },
43
+    {
44
+      "name": "//                  Grant Hutchins",
45
+      "url": "https://github.com/nertzy"
46
+    },
47
+    {
48
+      "name": "//                  Denis Atyasov",
49
+      "url": "https://github.com/xaolas"
50
+    },
51
+    {
52
+      "name": "//                  Michael McMullin",
53
+      "url": "https://github.com/mrmcnerd"
54
+    },
55
+    {
56
+      "name": "//                  Martin Costello",
57
+      "url": "https://github.com/martincostello"
58
+    },
59
+    {
60
+      "name": "//                  Sven Kreiss",
61
+      "url": "https://github.com/svenkreiss"
62
+    },
63
+    {
64
+      "name": "Umar Bolatov",
65
+      "url": "https://github.com/bolatovumar"
66
+    }
67
+  ],
68
+  "dependencies": {},
69
+  "deprecated": false,
70
+  "description": "TypeScript definitions for Google Maps JavaScript API",
71
+  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme",
72
+  "license": "MIT",
73
+  "main": "",
74
+  "name": "@types/googlemaps",
75
+  "repository": {
76
+    "type": "git",
77
+    "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git"
78
+  },
79
+  "scripts": {},
80
+  "typeScriptVersion": "2.0",
81
+  "typesPublisherContentHash": "bee5c2722cbd6aaf9f78cda1d9159ba3849242f5697abee90ba9655e361344dc",
82
+  "version": "3.30.11"
83
+}

+ 13
- 0
package-lock.json Ver fichero

@@ -186,6 +186,19 @@
186 186
         "xhr2": "0.1.3"
187 187
       }
188 188
     },
189
+    "@types/google-maps": {
190
+      "version": "3.2.0",
191
+      "resolved": "https://registry.npmjs.org/@types/google-maps/-/google-maps-3.2.0.tgz",
192
+      "integrity": "sha1-gEo66aySZbTg0VCLW5uJSGeXT4I=",
193
+      "requires": {
194
+        "@types/googlemaps": "*"
195
+      }
196
+    },
197
+    "@types/googlemaps": {
198
+      "version": "3.30.11",
199
+      "resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.30.11.tgz",
200
+      "integrity": "sha512-/KxRVeLEUEoRyPp9bYNSv2FpuQUAEpTjEKAdcbYEbuFughA24j4Riy+ayAmQHKSZHjRrOt1s7wuksvhakIADPA=="
201
+    },
189 202
     "@types/localforage": {
190 203
       "version": "0.0.30",
191 204
       "resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.30.tgz",

+ 1
- 0
package.json Ver fichero

@@ -27,6 +27,7 @@
27 27
     "@ionic-native/status-bar": "4.9.1",
28 28
     "@ionic/storage": "2.1.3",
29 29
     "@okta/okta-angular": "^1.0.1",
30
+    "@types/google-maps": "^3.2.0",
30 31
     "ionic-angular": "3.9.2",
31 32
     "ionicons": "3.0.0",
32 33
     "rxjs": "5.5.11",

+ 4
- 0
src/app/app.module.ts Ver fichero

@@ -15,6 +15,8 @@ import { MapPage } from '../pages/map/map';
15 15
 import { DestinationDetailsPage } from '../pages/destination-details/destination-details';
16 16
 import { AddDestinationPage } from '../pages/add-destination/add-destination';
17 17
 import { DestinationService } from '../services/destination-service/destination-service';
18
+import { SignupService } from '../services/user-service/signup-service';
19
+import { HttpClientModule } from '@angular/common/http';
18 20
 
19 21
 const config = {
20 22
   issuer: 'https://dev-270119.oktapreview.com/oauth2/default',
@@ -36,6 +38,7 @@ const config = {
36 38
   imports: [
37 39
     BrowserModule,
38 40
     HttpModule,
41
+    HttpClientModule,
39 42
     IonicModule.forRoot(MyApp)
40 43
   ],
41 44
   bootstrap: [IonicApp],
@@ -53,6 +56,7 @@ const config = {
53 56
     StatusBar,
54 57
     SplashScreen,
55 58
     DestinationService,
59
+    SignupService,
56 60
     {provide: ErrorHandler, useClass: IonicErrorHandler},
57 61
   ]
58 62
 })

+ 3
- 0
src/index.html Ver fichero

@@ -6,6 +6,7 @@
6 6
   <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
7 7
   <meta name="format-detection" content="telephone=no">
8 8
   <meta name="msapplication-tap-highlight" content="no">
9
+  <meta http-equiv="Content-Security-Policy" content="script-src 'self' https://maps.googleapis.com/ https://maps.gstatic.com/ https://mts0.googleapis.com/ 'unsafe-inline' 'unsafe-eval'">
9 10
 
10 11
   <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
11 12
   <link rel="manifest" href="manifest.json">
@@ -35,6 +36,8 @@
35 36
   <!-- Ionic's root component and where the app will load -->
36 37
   <ion-app></ion-app>
37 38
 
39
+  <script type="text/javascript" src="https://maps.googleapis.com/map/api/js?key=AIzaSyDoZ4iE0CqmLVSJjLZnJmFORZuuR6Ei55c&callback=initMap"></script>
40
+
38 41
   <!-- The polyfills js is generated during the build process -->
39 42
   <script src="build/polyfills.js"></script>
40 43
 

+ 0
- 7
src/pages/add-destination/add-destination.ts Ver fichero

@@ -6,13 +6,6 @@ import { Destination } from '../../model/destination-model';
6 6
 import { MapPage } from '../map/map';
7 7
 import { Profile } from '../../model/profile-model';
8 8
 
9
-/**
10
- * Generated class for the AddDestinationPage page.
11
- *
12
- * See https://ionicframework.com/docs/components/#navigation for more info on
13
- * Ionic pages and navigation.
14
- */
15
-
16 9
 @IonicPage()
17 10
 @Component({
18 11
   selector: 'page-add-destination',

+ 5
- 1
src/pages/map/map.html Ver fichero

@@ -1,4 +1,4 @@
1
-<!--
1
+<!-- 
2 2
   Generated template for the MapPage page.
3 3
 
4 4
   See http://ionicframework.com/docs/components/#navigation for more info on
@@ -14,6 +14,9 @@
14 14
 
15 15
 
16 16
 <ion-content padding>
17
+
18
+  <div #map id="map"></div>
19
+
17 20
   <ion-list>
18 21
     <ion-item-sliding *ngFor = "let destination of destinations">
19 22
       <ion-item>
@@ -24,4 +27,5 @@
24 27
     </ion-item-sliding>
25 28
   </ion-list>
26 29
   <button ion-button (click)=goToAddDestination()>Add Destination</button>
30
+
27 31
 </ion-content>

+ 5
- 0
src/pages/map/map.scss Ver fichero

@@ -1,3 +1,8 @@
1 1
 page-map {
2 2
 
3
+    #map {
4
+        height: 100%;
5
+        width: 100%;
6
+    }
7
+
3 8
 }

+ 18
- 1
src/pages/map/map.ts Ver fichero

@@ -1,4 +1,4 @@
1
-import { Component } from '@angular/core';
1
+import { Component, ViewChild } from '@angular/core';
2 2
 import { IonicPage, NavController, NavParams, LoadingController } from 'ionic-angular';
3 3
 import { DestinationDetailsPage } from '../destination-details/destination-details';
4 4
 import { AddDestinationPage } from '../add-destination/add-destination';
@@ -11,6 +11,8 @@ import { DestinationService } from '../../services/destination-service/destinati
11 11
 })
12 12
 export class MapPage {
13 13
 
14
+  @ViewChild('map') mapElement;
15
+  map: any;
14 16
   public destinations: any = [];
15 17
   public destination: any = {};
16 18
 
@@ -31,6 +33,21 @@ export class MapPage {
31 33
       loader.dismiss();
32 34
     });
33 35
 
36
+    this.initMap();
37
+
38
+  }
39
+
40
+  initMap(){
41
+    let latLng = new google.maps.LatLng(-34.9290, 138.6010)
42
+
43
+    let mapOptions = {
44
+      center: latLng,
45
+      zoom: 15,
46
+      mapTypeId: google.maps.MapTypeId.ROADMAP
47
+    }
48
+
49
+    this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
50
+
34 51
   }
35 52
 
36 53
   goToDestinationDetails($event, destination){

+ 6
- 6
src/pages/signup/signup.html Ver fichero

@@ -11,32 +11,32 @@
11 11
   <form [formGroup]="signupForm">
12 12
     <ion-item>
13 13
       <ion-label stacked>Username</ion-label>
14
-      <ion-input formControlName="userName" type="text" placeholder="Username" required #userName></ion-input>
14
+      <ion-input formControlName="userName" type="text"></ion-input>
15 15
     </ion-item>
16 16
   
17 17
     <ion-item>
18 18
       <ion-label stacked>First name</ion-label>
19
-      <ion-input formControlName="firstName" placeholder="First Name" type="text" required #firstName></ion-input>
19
+      <ion-input formControlName="firstName" type="text"></ion-input>
20 20
     </ion-item>
21 21
 
22 22
     <ion-item>
23 23
       <ion-label stacked>Last name</ion-label>
24
-      <ion-input formControlName="lastName" placeholder="Last Name" type="text" required #lastName></ion-input>
24
+      <ion-input formControlName="lastName" type="text"></ion-input>
25 25
     </ion-item>
26 26
 
27 27
     <ion-item>
28 28
       <ion-label stacked>E-mail</ion-label>
29
-      <ion-input formControlName="email" placeholder="Email" type="text" required #email></ion-input>
29
+      <ion-input formControlName="email" type="text"></ion-input>
30 30
     </ion-item>
31 31
 
32 32
     <ion-item>
33 33
       <ion-label stacked>Password</ion-label>
34
-      <ion-input formControlName="password" placeholder="Password" type="text" required #password></ion-input>
34
+      <ion-input formControlName="password" type="text"></ion-input>
35 35
     </ion-item>
36 36
 
37 37
     <ion-item>
38 38
       <ion-label stacked>Re-enter password</ion-label>
39
-      <ion-input formControlName="password" placeholder="Re-enter Password" type="text" required #passwordreentry></ion-input>
39
+      <ion-input formControlName="passwordReEntry" type="text"></ion-input>
40 40
     </ion-item>
41 41
 
42 42
     <button ion-button full color="primary" style="margin-top: 20px;" 

+ 2
- 0
src/pages/signup/signup.module.ts Ver fichero

@@ -1,12 +1,14 @@
1 1
 import { NgModule } from '@angular/core';
2 2
 import { IonicPageModule } from 'ionic-angular';
3 3
 import { SignupPage } from './signup';
4
+import { SignupService } from '../../services/user-service/signup-service';
4 5
 
5 6
 @NgModule({
6 7
   declarations: [
7 8
     SignupPage,
8 9
   ],
9 10
   imports: [
11
+    SignupService,
10 12
     IonicPageModule.forChild(SignupPage),
11 13
   ],
12 14
 })

+ 14
- 11
src/pages/signup/signup.ts Ver fichero

@@ -1,17 +1,10 @@
1 1
 import { Component } from '@angular/core';
2 2
 import { IonicPage, NavController, NavParams } from 'ionic-angular';
3 3
 import { SignupService } from '../../services/user-service/signup-service';
4
-import { FormGroup } from '@angular/forms';
4
+import { FormGroup, Validators, FormBuilder } from '@angular/forms';
5 5
 import { User } from '../../model/user-model';
6 6
 import { MapPage } from '../map/map';
7 7
 
8
-/**
9
- * Generated class for the SignupPage page.
10
- *
11
- * See https://ionicframework.com/docs/components/#navigation for more info on
12
- * Ionic pages and navigation.
13
- */
14
-
15 8
 @IonicPage()
16 9
 @Component({
17 10
   selector: 'page-signup',
@@ -19,10 +12,19 @@ import { MapPage } from '../map/map';
19 12
 })
20 13
 export class SignupPage {
21 14
 
22
-  userForm : FormGroup;
15
+  signupForm : FormGroup;
23 16
   user : User;
24 17
 
25
-  constructor(public navCtrl: NavController, public navParams: NavParams, public signupService: SignupService) {
18
+  constructor(public navCtrl: NavController, public navParams: NavParams, 
19
+    public signupService: SignupService, private formBuilder: FormBuilder) {
20
+    this.signupForm = this.formBuilder.group({
21
+      userName: ['', Validators.required],
22
+      firstName: ['', Validators.required],
23
+      lastName: ['', Validators.required],
24
+      email: ['', Validators.required],
25
+      password: ['', Validators.required],
26
+      passwordReEntry: ['', Validators.required]
27
+    });
26 28
   }
27 29
 
28 30
   ionViewDidLoad() {
@@ -30,7 +32,8 @@ export class SignupPage {
30 32
   }
31 33
 
32 34
   createUser() {
33
-    this.user = this.userForm.value;
35
+    this.user.firstName = this.signupForm.controls.firstName.value;
36
+    this.user.lastName = this.signupForm.controls.lastName.value;
34 37
     this.signupService.createUser(this.user).subscribe(data => this.user = data as User,
35 38
       err => {
36 39
         console.log(err);

+ 0
- 6
src/services/destination-service/destination-service.ts Ver fichero

@@ -6,12 +6,6 @@ import { Destination } from '../../model/destination-model';
6 6
 import 'rxjs/add/operator/map';
7 7
 import 'rxjs/add/operator/catch';
8 8
 
9
-/*
10
-  Generated class for the DestinationsApiProvider provider.
11
-
12
-  See https://angular.io/guide/dependency-injection for more info on providers
13
-  and Angular DI.
14
-*/
15 9
 @Injectable()
16 10
 export class DestinationService {
17 11
   

+ 2
- 2
src/services/user-service/signup-service.ts Ver fichero

@@ -6,7 +6,7 @@ import { Observable } from "rxjs";
6 6
 @Injectable()
7 7
 export class SignupService {
8 8
 
9
-    private destinationUrl = "http://localhost:9090/api/v1/users"
9
+    private userUrl = "http://localhost:9090/api/v1/users"
10 10
 
11 11
     constructor(protected httpClient: HttpClient) {
12 12
     }
@@ -14,7 +14,7 @@ export class SignupService {
14 14
     //CREATE
15 15
     createUser(user: User): Observable<User> {
16 16
       return this.httpClient
17
-        .post<User>(this.destinationUrl, user)
17
+        .post<User>(this.userUrl, user)
18 18
         .catch((err: HttpErrorResponse) => {
19 19
           console.error('An error occurred: ', err.error);
20 20
           return Observable.throw(err.statusText);

+ 5
- 2
www/build/0.js Ver fichero

@@ -1,6 +1,6 @@
1 1
 webpackJsonp([0],{
2 2
 
3
-/***/ 683:
3
+/***/ 686:
4 4
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
5 5
 
6 6
 "use strict";
@@ -8,7 +8,8 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
8 8
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SignupPageModule", function() { return SignupPageModule; });
9 9
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
10 10
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
11
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__signup__ = __webpack_require__(153);
11
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__signup__ = __webpack_require__(155);
12
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_user_service_signup_service__ = __webpack_require__(156);
12 13
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13 14
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14 15
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -18,6 +19,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
18 19
 
19 20
 
20 21
 
22
+
21 23
 var SignupPageModule = /** @class */ (function () {
22 24
     function SignupPageModule() {
23 25
     }
@@ -27,6 +29,7 @@ var SignupPageModule = /** @class */ (function () {
27 29
                 __WEBPACK_IMPORTED_MODULE_2__signup__["a" /* SignupPage */],
28 30
             ],
29 31
             imports: [
32
+                __WEBPACK_IMPORTED_MODULE_3__services_user_service_signup_service__["a" /* SignupService */],
30 33
                 __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["d" /* IonicPageModule */].forChild(__WEBPACK_IMPORTED_MODULE_2__signup__["a" /* SignupPage */]),
31 34
             ],
32 35
         })

+ 1
- 1
www/build/0.js.map Ver fichero

@@ -1 +1 @@
1
-{"version":3,"sources":["../../src/pages/signup/signup.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAyC;AACO;AACV;AAUtC;IAAA;IAA+B,CAAC;IAAnB,gBAAgB;QAR5B,uEAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,2DAAU;aACX;YACD,OAAO,EAAE;gBACP,sEAAe,CAAC,QAAQ,CAAC,2DAAU,CAAC;aACrC;SACF,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAA;AAAH","file":"0.js","sourcesContent":["import { NgModule } from '@angular/core';\nimport { IonicPageModule } from 'ionic-angular';\nimport { SignupPage } from './signup';\n\n@NgModule({\n  declarations: [\n    SignupPage,\n  ],\n  imports: [\n    IonicPageModule.forChild(SignupPage),\n  ],\n})\nexport class SignupPageModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/signup/signup.module.ts"],"sourceRoot":""}
1
+{"version":3,"sources":["../../src/pages/signup/signup.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAyC;AACO;AACV;AACqC;AAW3E;IAAA;IAA+B,CAAC;IAAnB,gBAAgB;QAT5B,uEAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,2DAAU;aACX;YACD,OAAO,EAAE;gBACP,4FAAa;gBACb,sEAAe,CAAC,QAAQ,CAAC,2DAAU,CAAC;aACrC;SACF,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAA;AAAH","file":"0.js","sourcesContent":["import { NgModule } from '@angular/core';\nimport { IonicPageModule } from 'ionic-angular';\nimport { SignupPage } from './signup';\nimport { SignupService } from '../../services/user-service/signup-service';\n\n@NgModule({\n  declarations: [\n    SignupPage,\n  ],\n  imports: [\n    SignupService,\n    IonicPageModule.forChild(SignupPage),\n  ],\n})\nexport class SignupPageModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/signup/signup.module.ts"],"sourceRoot":""}

+ 2
- 2
www/build/1.js Ver fichero

@@ -1,6 +1,6 @@
1 1
 webpackJsonp([1],{
2 2
 
3
-/***/ 684:
3
+/***/ 685:
4 4
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
5 5
 
6 6
 "use strict";
@@ -8,7 +8,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
8 8
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProfilePageModule", function() { return ProfilePageModule; });
9 9
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
10 10
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
11
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__profile__ = __webpack_require__(152);
11
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__profile__ = __webpack_require__(154);
12 12
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13 13
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14 14
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

+ 3
- 3
www/build/2.js Ver fichero

@@ -1,6 +1,6 @@
1 1
 webpackJsonp([2],{
2 2
 
3
-/***/ 682:
3
+/***/ 684:
4 4
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
5 5
 
6 6
 "use strict";
@@ -8,8 +8,8 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
8 8
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MapPageModule", function() { return MapPageModule; });
9 9
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
10 10
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
11
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__map__ = __webpack_require__(86);
12
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_destination_service_destination_service__ = __webpack_require__(85);
11
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__map__ = __webpack_require__(62);
12
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_destination_service_destination_service__ = __webpack_require__(86);
13 13
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14 14
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15 15
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

+ 2
- 2
www/build/3.js Ver fichero

@@ -1,6 +1,6 @@
1 1
 webpackJsonp([3],{
2 2
 
3
-/***/ 681:
3
+/***/ 683:
4 4
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
5 5
 
6 6
 "use strict";
@@ -8,7 +8,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
8 8
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginPageModule", function() { return LoginPageModule; });
9 9
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
10 10
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
11
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__login__ = __webpack_require__(151);
11
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__login__ = __webpack_require__(153);
12 12
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13 13
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14 14
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

+ 2
- 2
www/build/4.js Ver fichero

@@ -1,6 +1,6 @@
1 1
 webpackJsonp([4],{
2 2
 
3
-/***/ 680:
3
+/***/ 682:
4 4
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
5 5
 
6 6
 "use strict";
@@ -8,7 +8,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
8 8
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DestinationDetailsPageModule", function() { return DestinationDetailsPageModule; });
9 9
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
10 10
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
11
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__destination_details__ = __webpack_require__(150);
11
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__destination_details__ = __webpack_require__(152);
12 12
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13 13
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14 14
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

+ 3
- 3
www/build/5.js Ver fichero

@@ -1,6 +1,6 @@
1 1
 webpackJsonp([5],{
2 2
 
3
-/***/ 679:
3
+/***/ 681:
4 4
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
5 5
 
6 6
 "use strict";
@@ -8,8 +8,8 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
8 8
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AddDestinationPageModule", function() { return AddDestinationPageModule; });
9 9
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
10 10
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
11
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__add_destination__ = __webpack_require__(149);
12
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_destination_service_destination_service__ = __webpack_require__(85);
11
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__add_destination__ = __webpack_require__(151);
12
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_destination_service_destination_service__ = __webpack_require__(86);
13 13
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14 14
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15 15
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

+ 5
- 0
www/build/main.css Ver fichero

@@ -25677,3 +25677,8 @@ ion-navbar.toolbar {
25677 25677
   min-height: calc(46px + constant(safe-area-inset-bottom));
25678 25678
   min-height: calc(46px + env(safe-area-inset-bottom));
25679 25679
 }
25680
+
25681
+page-map #map {
25682
+  height: 100%;
25683
+  width: 100%;
25684
+}

+ 215
- 143
www/build/main.js Ver fichero

@@ -1,15 +1,15 @@
1 1
 webpackJsonp([6],{
2 2
 
3
-/***/ 149:
3
+/***/ 151:
4 4
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
5 5
 
6 6
 "use strict";
7 7
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AddDestinationPage; });
8 8
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
9 9
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
10
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_forms__ = __webpack_require__(25);
11
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_destination_service_destination_service__ = __webpack_require__(85);
12
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__map_map__ = __webpack_require__(86);
10
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_forms__ = __webpack_require__(21);
11
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_destination_service_destination_service__ = __webpack_require__(86);
12
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__map_map__ = __webpack_require__(62);
13 13
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14 14
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15 15
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -24,12 +24,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
24 24
 
25 25
 
26 26
 
27
-/**
28
- * Generated class for the AddDestinationPage page.
29
- *
30
- * See https://ionicframework.com/docs/components/#navigation for more info on
31
- * Ionic pages and navigation.
32
- */
33 27
 var AddDestinationPage = /** @class */ (function () {
34 28
     function AddDestinationPage(navCtrl, navParams, formBuilder, destinationService) {
35 29
         this.navCtrl = navCtrl;
@@ -78,7 +72,7 @@ var AddDestinationPage = /** @class */ (function () {
78 72
 
79 73
 /***/ }),
80 74
 
81
-/***/ 150:
75
+/***/ 152:
82 76
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
83 77
 
84 78
 "use strict";
@@ -124,15 +118,15 @@ var DestinationDetailsPage = /** @class */ (function () {
124 118
 
125 119
 /***/ }),
126 120
 
127
-/***/ 151:
121
+/***/ 153:
128 122
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
129 123
 
130 124
 "use strict";
131 125
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LoginPage; });
132 126
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
133 127
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
134
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__profile_profile__ = __webpack_require__(152);
135
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__signup_signup__ = __webpack_require__(153);
128
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__profile_profile__ = __webpack_require__(154);
129
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__signup_signup__ = __webpack_require__(155);
136 130
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
137 131
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
138 132
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -173,14 +167,14 @@ var LoginPage = /** @class */ (function () {
173 167
 
174 168
 /***/ }),
175 169
 
176
-/***/ 152:
170
+/***/ 154:
177 171
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
178 172
 
179 173
 "use strict";
180 174
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ProfilePage; });
181 175
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
182 176
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
183
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__map_map__ = __webpack_require__(86);
177
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__map_map__ = __webpack_require__(62);
184 178
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
185 179
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
186 180
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -223,13 +217,16 @@ var ProfilePage = /** @class */ (function () {
223 217
 
224 218
 /***/ }),
225 219
 
226
-/***/ 153:
220
+/***/ 155:
227 221
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
228 222
 
229 223
 "use strict";
230 224
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SignupPage; });
231 225
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
232 226
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
227
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__services_user_service_signup_service__ = __webpack_require__(156);
228
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_forms__ = __webpack_require__(21);
229
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__map_map__ = __webpack_require__(62);
233 230
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
234 231
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
235 232
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -241,25 +238,42 @@ var __metadata = (this && this.__metadata) || function (k, v) {
241 238
 };
242 239
 
243 240
 
244
-/**
245
- * Generated class for the SignupPage page.
246
- *
247
- * See https://ionicframework.com/docs/components/#navigation for more info on
248
- * Ionic pages and navigation.
249
- */
241
+
242
+
243
+
250 244
 var SignupPage = /** @class */ (function () {
251
-    function SignupPage(navCtrl, navParams) {
245
+    function SignupPage(navCtrl, navParams, signupService, formBuilder) {
252 246
         this.navCtrl = navCtrl;
253 247
         this.navParams = navParams;
248
+        this.signupService = signupService;
249
+        this.formBuilder = formBuilder;
250
+        this.signupForm = this.formBuilder.group({
251
+            userName: ['', __WEBPACK_IMPORTED_MODULE_3__angular_forms__["f" /* Validators */].required],
252
+            firstName: ['', __WEBPACK_IMPORTED_MODULE_3__angular_forms__["f" /* Validators */].required],
253
+            lastName: ['', __WEBPACK_IMPORTED_MODULE_3__angular_forms__["f" /* Validators */].required],
254
+            email: ['', __WEBPACK_IMPORTED_MODULE_3__angular_forms__["f" /* Validators */].required],
255
+            password: ['', __WEBPACK_IMPORTED_MODULE_3__angular_forms__["f" /* Validators */].required],
256
+            passwordReEntry: ['', __WEBPACK_IMPORTED_MODULE_3__angular_forms__["f" /* Validators */].required]
257
+        });
254 258
     }
255 259
     SignupPage.prototype.ionViewDidLoad = function () {
256 260
         console.log('ionViewDidLoad SignupPage');
257 261
     };
262
+    SignupPage.prototype.createUser = function () {
263
+        var _this = this;
264
+        this.user.firstName = this.signupForm.controls.firstName.value;
265
+        this.user.lastName = this.signupForm.controls.lastName.value;
266
+        this.signupService.createUser(this.user).subscribe(function (data) { return _this.user = data; }, function (err) {
267
+            console.log(err);
268
+        });
269
+        this.navCtrl.push(__WEBPACK_IMPORTED_MODULE_4__map_map__["a" /* MapPage */]);
270
+    };
258 271
     SignupPage = __decorate([
259 272
         Object(__WEBPACK_IMPORTED_MODULE_0__angular_core__["m" /* Component */])({
260
-            selector: 'page-signup',template:/*ion-inline-start:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/signup/signup.html"*/'<ion-header>\n\n  <ion-navbar>\n    <ion-title>Sign Up</ion-title>\n  </ion-navbar>\n\n</ion-header>\n\n\n<ion-content padding>\n  <form [formGroup]="signupForm">\n    <ion-item>\n      <ion-label stacked>Username</ion-label>\n      <ion-input formControlName="userName" type="text" placeholder="Username" required #userName></ion-input>\n    </ion-item>\n  \n    <ion-item>\n      <ion-label stacked>First name</ion-label>\n      <ion-input placeholder="First Name" type="text" required #firstName></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>Last name</ion-label>\n      <ion-input placeholder="Last Name" type="text" required #lastName></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>E-mail</ion-label>\n      <ion-input placeholder="Email" type="text" required #email></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>Password</ion-label>\n      <ion-input placeholder="Password" type="text" required #password></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>Re-enter password</ion-label>\n      <ion-input placeholder="Re-enter Password" type="text" required #passwordreentry></ion-input>\n    </ion-item>\n\n    <button ion-button full color="primary" style="margin-top: 20px;" \n    type="submit" [disabled]="!destinationForm.valid" (click)=createDestination()>Add</button>\n  </form>\n</ion-content>'/*ion-inline-end:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/signup/signup.html"*/,
273
+            selector: 'page-signup',template:/*ion-inline-start:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/signup/signup.html"*/'<ion-header>\n\n  <ion-navbar>\n    <ion-title>Sign Up</ion-title>\n  </ion-navbar>\n\n</ion-header>\n\n\n<ion-content padding>\n  <form [formGroup]="signupForm">\n    <ion-item>\n      <ion-label stacked>Username</ion-label>\n      <ion-input formControlName="userName" type="text"></ion-input>\n    </ion-item>\n  \n    <ion-item>\n      <ion-label stacked>First name</ion-label>\n      <ion-input formControlName="firstName" type="text"></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>Last name</ion-label>\n      <ion-input formControlName="lastName" type="text"></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>E-mail</ion-label>\n      <ion-input formControlName="email" type="text"></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>Password</ion-label>\n      <ion-input formControlName="password" type="text"></ion-input>\n    </ion-item>\n\n    <ion-item>\n      <ion-label stacked>Re-enter password</ion-label>\n      <ion-input formControlName="passwordReEntry" type="text"></ion-input>\n    </ion-item>\n\n    <button ion-button full color="primary" style="margin-top: 20px;" \n    type="submit" [disabled]="!signupForm.valid" (click)=createUser()>Add</button>\n  </form>\n</ion-content>'/*ion-inline-end:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/signup/signup.html"*/,
261 274
         }),
262
-        __metadata("design:paramtypes", [__WEBPACK_IMPORTED_MODULE_1_ionic_angular__["f" /* NavController */], __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["g" /* NavParams */]])
275
+        __metadata("design:paramtypes", [__WEBPACK_IMPORTED_MODULE_1_ionic_angular__["f" /* NavController */], __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["g" /* NavParams */],
276
+            __WEBPACK_IMPORTED_MODULE_2__services_user_service_signup_service__["a" /* SignupService */], __WEBPACK_IMPORTED_MODULE_3__angular_forms__["a" /* FormBuilder */]])
263 277
     ], SignupPage);
264 278
     return SignupPage;
265 279
 }());
@@ -268,7 +282,53 @@ var SignupPage = /** @class */ (function () {
268 282
 
269 283
 /***/ }),
270 284
 
271
-/***/ 164:
285
+/***/ 156:
286
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
287
+
288
+"use strict";
289
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SignupService; });
290
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
291
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common_http__ = __webpack_require__(310);
292
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs__ = __webpack_require__(213);
293
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs__);
294
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
295
+    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
296
+    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
297
+    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
298
+    return c > 3 && r && Object.defineProperty(target, key, r), r;
299
+};
300
+var __metadata = (this && this.__metadata) || function (k, v) {
301
+    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
302
+};
303
+
304
+
305
+
306
+var SignupService = /** @class */ (function () {
307
+    function SignupService(httpClient) {
308
+        this.httpClient = httpClient;
309
+        this.userUrl = "http://localhost:9090/api/v1/users";
310
+    }
311
+    //CREATE
312
+    SignupService.prototype.createUser = function (user) {
313
+        return this.httpClient
314
+            .post(this.userUrl, user)
315
+            .catch(function (err) {
316
+            console.error('An error occurred: ', err.error);
317
+            return __WEBPACK_IMPORTED_MODULE_2_rxjs__["Observable"].throw(err.statusText);
318
+        });
319
+    };
320
+    SignupService = __decorate([
321
+        Object(__WEBPACK_IMPORTED_MODULE_0__angular_core__["A" /* Injectable */])(),
322
+        __metadata("design:paramtypes", [__WEBPACK_IMPORTED_MODULE_1__angular_common_http__["a" /* HttpClient */]])
323
+    ], SignupService);
324
+    return SignupService;
325
+}());
326
+
327
+//# sourceMappingURL=signup-service.js.map
328
+
329
+/***/ }),
330
+
331
+/***/ 167:
272 332
 /***/ (function(module, exports) {
273 333
 
274 334
 function webpackEmptyAsyncContext(req) {
@@ -281,36 +341,36 @@ function webpackEmptyAsyncContext(req) {
281 341
 webpackEmptyAsyncContext.keys = function() { return []; };
282 342
 webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
283 343
 module.exports = webpackEmptyAsyncContext;
284
-webpackEmptyAsyncContext.id = 164;
344
+webpackEmptyAsyncContext.id = 167;
285 345
 
286 346
 /***/ }),
287 347
 
288
-/***/ 209:
348
+/***/ 211:
289 349
 /***/ (function(module, exports, __webpack_require__) {
290 350
 
291 351
 var map = {
292 352
 	"../pages/add-destination/add-destination.module": [
293
-		679,
353
+		681,
294 354
 		5
295 355
 	],
296 356
 	"../pages/destination-details/destination-details.module": [
297
-		680,
357
+		682,
298 358
 		4
299 359
 	],
300 360
 	"../pages/login/login.module": [
301
-		681,
361
+		683,
302 362
 		3
303 363
 	],
304 364
 	"../pages/map/map.module": [
305
-		682,
365
+		684,
306 366
 		2
307 367
 	],
308 368
 	"../pages/profile/profile.module": [
309
-		684,
369
+		685,
310 370
 		1
311 371
 	],
312 372
 	"../pages/signup/signup.module": [
313
-		683,
373
+		686,
314 374
 		0
315 375
 	]
316 376
 };
@@ -325,19 +385,19 @@ function webpackAsyncContext(req) {
325 385
 webpackAsyncContext.keys = function webpackAsyncContextKeys() {
326 386
 	return Object.keys(map);
327 387
 };
328
-webpackAsyncContext.id = 209;
388
+webpackAsyncContext.id = 211;
329 389
 module.exports = webpackAsyncContext;
330 390
 
331 391
 /***/ }),
332 392
 
333
-/***/ 349:
393
+/***/ 354:
334 394
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
335 395
 
336 396
 "use strict";
337 397
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HomePage; });
338 398
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
339 399
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
340
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__login_login__ = __webpack_require__(151);
400
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__login_login__ = __webpack_require__(153);
341 401
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
342 402
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
343 403
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -370,13 +430,13 @@ var HomePage = /** @class */ (function () {
370 430
 
371 431
 /***/ }),
372 432
 
373
-/***/ 350:
433
+/***/ 355:
374 434
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
375 435
 
376 436
 "use strict";
377 437
 Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
378
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser_dynamic__ = __webpack_require__(351);
379
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__app_module__ = __webpack_require__(355);
438
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser_dynamic__ = __webpack_require__(356);
439
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__app_module__ = __webpack_require__(360);
380 440
 
381 441
 
382 442
 Object(__WEBPACK_IMPORTED_MODULE_0__angular_platform_browser_dynamic__["a" /* platformBrowserDynamic */])().bootstrapModule(__WEBPACK_IMPORTED_MODULE_1__app_module__["a" /* AppModule */]);
@@ -384,7 +444,7 @@ Object(__WEBPACK_IMPORTED_MODULE_0__angular_platform_browser_dynamic__["a" /* pl
384 444
 
385 445
 /***/ }),
386 446
 
387
-/***/ 355:
447
+/***/ 360:
388 448
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
389 449
 
390 450
 "use strict";
@@ -392,18 +452,20 @@ Object(__WEBPACK_IMPORTED_MODULE_0__angular_platform_browser_dynamic__["a" /* pl
392 452
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser__ = __webpack_require__(40);
393 453
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(1);
394 454
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_ionic_angular__ = __webpack_require__(29);
395
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ionic_native_splash_screen__ = __webpack_require__(345);
396
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ionic_native_status_bar__ = __webpack_require__(348);
397
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__angular_http__ = __webpack_require__(210);
398
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__app_component__ = __webpack_require__(678);
399
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__pages_home_home__ = __webpack_require__(349);
400
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__pages_login_login__ = __webpack_require__(151);
401
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__pages_signup_signup__ = __webpack_require__(153);
402
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__pages_profile_profile__ = __webpack_require__(152);
403
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__pages_map_map__ = __webpack_require__(86);
404
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__pages_destination_details_destination_details__ = __webpack_require__(150);
405
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__pages_add_destination_add_destination__ = __webpack_require__(149);
406
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__services_destination_service_destination_service__ = __webpack_require__(85);
455
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ionic_native_splash_screen__ = __webpack_require__(350);
456
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ionic_native_status_bar__ = __webpack_require__(353);
457
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__angular_http__ = __webpack_require__(212);
458
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__app_component__ = __webpack_require__(680);
459
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__pages_home_home__ = __webpack_require__(354);
460
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__pages_login_login__ = __webpack_require__(153);
461
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__pages_signup_signup__ = __webpack_require__(155);
462
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__pages_profile_profile__ = __webpack_require__(154);
463
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__pages_map_map__ = __webpack_require__(62);
464
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__pages_destination_details_destination_details__ = __webpack_require__(152);
465
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__pages_add_destination_add_destination__ = __webpack_require__(151);
466
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__services_destination_service_destination_service__ = __webpack_require__(86);
467
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__services_user_service_signup_service__ = __webpack_require__(156);
468
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__angular_common_http__ = __webpack_require__(310);
407 469
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
408 470
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
409 471
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -425,6 +487,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
425 487
 
426 488
 
427 489
 
490
+
491
+
428 492
 var config = {
429 493
     issuer: 'https://dev-270119.oktapreview.com/oauth2/default',
430 494
     redirectUri: 'http://localhost:8100/implicit/callback',
@@ -448,14 +512,15 @@ var AppModule = /** @class */ (function () {
448 512
             imports: [
449 513
                 __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser__["a" /* BrowserModule */],
450 514
                 __WEBPACK_IMPORTED_MODULE_5__angular_http__["c" /* HttpModule */],
515
+                __WEBPACK_IMPORTED_MODULE_16__angular_common_http__["b" /* HttpClientModule */],
451 516
                 __WEBPACK_IMPORTED_MODULE_2_ionic_angular__["c" /* IonicModule */].forRoot(__WEBPACK_IMPORTED_MODULE_6__app_component__["a" /* MyApp */], {}, {
452 517
                     links: [
453 518
                         { loadChildren: '../pages/add-destination/add-destination.module#AddDestinationPageModule', name: 'AddDestinationPage', segment: 'add-destination', priority: 'low', defaultHistory: [] },
454 519
                         { loadChildren: '../pages/destination-details/destination-details.module#DestinationDetailsPageModule', name: 'DestinationDetailsPage', segment: 'destination-details', priority: 'low', defaultHistory: [] },
455 520
                         { loadChildren: '../pages/login/login.module#LoginPageModule', name: 'LoginPage', segment: 'login', priority: 'low', defaultHistory: [] },
456 521
                         { loadChildren: '../pages/map/map.module#MapPageModule', name: 'MapPage', segment: 'map', priority: 'low', defaultHistory: [] },
457
-                        { loadChildren: '../pages/signup/signup.module#SignupPageModule', name: 'SignupPage', segment: 'signup', priority: 'low', defaultHistory: [] },
458
-                        { loadChildren: '../pages/profile/profile.module#ProfilePageModule', name: 'ProfilePage', segment: 'profile', priority: 'low', defaultHistory: [] }
522
+                        { loadChildren: '../pages/profile/profile.module#ProfilePageModule', name: 'ProfilePage', segment: 'profile', priority: 'low', defaultHistory: [] },
523
+                        { loadChildren: '../pages/signup/signup.module#SignupPageModule', name: 'SignupPage', segment: 'signup', priority: 'low', defaultHistory: [] }
459 524
                     ]
460 525
                 })
461 526
             ],
@@ -474,6 +539,7 @@ var AppModule = /** @class */ (function () {
474 539
                 __WEBPACK_IMPORTED_MODULE_4__ionic_native_status_bar__["a" /* StatusBar */],
475 540
                 __WEBPACK_IMPORTED_MODULE_3__ionic_native_splash_screen__["a" /* SplashScreen */],
476 541
                 __WEBPACK_IMPORTED_MODULE_14__services_destination_service_destination_service__["a" /* DestinationService */],
542
+                __WEBPACK_IMPORTED_MODULE_15__services_user_service_signup_service__["a" /* SignupService */],
477 543
                 { provide: __WEBPACK_IMPORTED_MODULE_1__angular_core__["u" /* ErrorHandler */], useClass: __WEBPACK_IMPORTED_MODULE_2_ionic_angular__["b" /* IonicErrorHandler */] },
478 544
             ]
479 545
         })
@@ -485,16 +551,99 @@ var AppModule = /** @class */ (function () {
485 551
 
486 552
 /***/ }),
487 553
 
488
-/***/ 678:
554
+/***/ 62:
555
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
556
+
557
+"use strict";
558
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MapPage; });
559
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
560
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
561
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__destination_details_destination_details__ = __webpack_require__(152);
562
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__add_destination_add_destination__ = __webpack_require__(151);
563
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__services_destination_service_destination_service__ = __webpack_require__(86);
564
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
565
+    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
566
+    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
567
+    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
568
+    return c > 3 && r && Object.defineProperty(target, key, r), r;
569
+};
570
+var __metadata = (this && this.__metadata) || function (k, v) {
571
+    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
572
+};
573
+
574
+
575
+
576
+
577
+
578
+var MapPage = /** @class */ (function () {
579
+    function MapPage(navCtrl, navParams, destinationService, loadingController) {
580
+        this.navCtrl = navCtrl;
581
+        this.navParams = navParams;
582
+        this.destinationService = destinationService;
583
+        this.loadingController = loadingController;
584
+        this.destinations = [];
585
+        this.destination = {};
586
+    }
587
+    MapPage.prototype.ionViewDidLoad = function () {
588
+        var _this = this;
589
+        var loader = this.loadingController.create({
590
+            content: 'Getting destinations...'
591
+        });
592
+        loader.present().then(function () {
593
+            _this.getAllDestinations();
594
+            loader.dismiss();
595
+        });
596
+        this.initMap();
597
+    };
598
+    MapPage.prototype.initMap = function () {
599
+        var latLng = new google.maps.LatLng(-34.9290, 138.6010);
600
+        var mapOptions = {
601
+            center: latLng,
602
+            zoom: 15,
603
+            mapTypeId: google.maps.MapTypeId.ROADMAP
604
+        };
605
+        this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
606
+    };
607
+    MapPage.prototype.goToDestinationDetails = function ($event, destination) {
608
+        this.navCtrl.push(__WEBPACK_IMPORTED_MODULE_2__destination_details_destination_details__["a" /* DestinationDetailsPage */], destination);
609
+    };
610
+    MapPage.prototype.getAllDestinations = function () {
611
+        var _this = this;
612
+        this.destinationService.getAllDestinations().subscribe(function (destinations) { return _this.destinations = destinations; }, function (err) {
613
+            console.log(err);
614
+        });
615
+    };
616
+    MapPage.prototype.goToAddDestination = function () {
617
+        this.navCtrl.push(__WEBPACK_IMPORTED_MODULE_3__add_destination_add_destination__["a" /* AddDestinationPage */]);
618
+    };
619
+    __decorate([
620
+        Object(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_8" /* ViewChild */])('map'),
621
+        __metadata("design:type", Object)
622
+    ], MapPage.prototype, "mapElement", void 0);
623
+    MapPage = __decorate([
624
+        Object(__WEBPACK_IMPORTED_MODULE_0__angular_core__["m" /* Component */])({
625
+            selector: 'page-map',template:/*ion-inline-start:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/map/map.html"*/'<!-- \n  Generated template for the MapPage page.\n\n  See http://ionicframework.com/docs/components/#navigation for more info on\n  Ionic pages and navigation.\n-->\n<ion-header>\n\n  <ion-navbar>\n    <ion-title>map</ion-title>\n  </ion-navbar>\n\n</ion-header>\n\n\n<ion-content padding>\n\n  <div #map id="map"></div>\n\n  <ion-list>\n    <ion-item-sliding *ngFor = "let destination of destinations">\n      <ion-item>\n        <div>{{ destination.city }}</div>\n        <div>{{ destination.country }}</div>\n        <button ion-button (click)="goToDestinationDetails($event, destination)">Details</button>\n      </ion-item>\n    </ion-item-sliding>\n  </ion-list>\n  <button ion-button (click)=goToAddDestination()>Add Destination</button>\n\n</ion-content>\n'/*ion-inline-end:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/map/map.html"*/,
626
+        }),
627
+        __metadata("design:paramtypes", [typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["f" /* NavController */] !== "undefined" && __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["f" /* NavController */]) === "function" && _a || Object, typeof (_b = typeof __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["g" /* NavParams */] !== "undefined" && __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["g" /* NavParams */]) === "function" && _b || Object, typeof (_c = typeof __WEBPACK_IMPORTED_MODULE_4__services_destination_service_destination_service__["a" /* DestinationService */] !== "undefined" && __WEBPACK_IMPORTED_MODULE_4__services_destination_service_destination_service__["a" /* DestinationService */]) === "function" && _c || Object, typeof (_d = typeof __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["e" /* LoadingController */] !== "undefined" && __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["e" /* LoadingController */]) === "function" && _d || Object])
628
+    ], MapPage);
629
+    return MapPage;
630
+    var _a, _b, _c, _d;
631
+}());
632
+
633
+//# sourceMappingURL=map.js.map
634
+
635
+/***/ }),
636
+
637
+/***/ 680:
489 638
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
490 639
 
491 640
 "use strict";
492 641
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MyApp; });
493 642
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
494 643
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
495
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ionic_native_status_bar__ = __webpack_require__(348);
496
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ionic_native_splash_screen__ = __webpack_require__(345);
497
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__pages_home_home__ = __webpack_require__(349);
644
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ionic_native_status_bar__ = __webpack_require__(353);
645
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ionic_native_splash_screen__ = __webpack_require__(350);
646
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__pages_home_home__ = __webpack_require__(354);
498 647
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
499 648
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
500 649
     if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -531,18 +680,18 @@ var MyApp = /** @class */ (function () {
531 680
 
532 681
 /***/ }),
533 682
 
534
-/***/ 85:
683
+/***/ 86:
535 684
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
536 685
 
537 686
 "use strict";
538 687
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DestinationService; });
539
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http__ = __webpack_require__(210);
688
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http__ = __webpack_require__(212);
540 689
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(1);
541
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs__ = __webpack_require__(375);
690
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs__ = __webpack_require__(213);
542 691
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs__);
543
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_map__ = __webpack_require__(251);
692
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_map__ = __webpack_require__(255);
544 693
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_map__);
545
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_catch__ = __webpack_require__(224);
694
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_catch__ = __webpack_require__(226);
546 695
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_catch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_catch__);
547 696
 var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
548 697
     var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -558,12 +707,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
558 707
 
559 708
 
560 709
 
561
-/*
562
-  Generated class for the DestinationsApiProvider provider.
563
-
564
-  See https://angular.io/guide/dependency-injection for more info on providers
565
-  and Angular DI.
566
-*/
567 710
 var DestinationService = /** @class */ (function () {
568 711
     function DestinationService(http) {
569 712
         this.http = http;
@@ -610,78 +753,7 @@ var DestinationService = /** @class */ (function () {
610 753
 
611 754
 //# sourceMappingURL=destination-service.js.map
612 755
 
613
-/***/ }),
614
-
615
-/***/ 86:
616
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
617
-
618
-"use strict";
619
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MapPage; });
620
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1);
621
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_ionic_angular__ = __webpack_require__(29);
622
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__destination_details_destination_details__ = __webpack_require__(150);
623
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__add_destination_add_destination__ = __webpack_require__(149);
624
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__services_destination_service_destination_service__ = __webpack_require__(85);
625
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
626
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
627
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
628
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
629
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
630
-};
631
-var __metadata = (this && this.__metadata) || function (k, v) {
632
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
633
-};
634
-
635
-
636
-
637
-
638
-
639
-var MapPage = /** @class */ (function () {
640
-    function MapPage(navCtrl, navParams, destinationService, loadingController) {
641
-        this.navCtrl = navCtrl;
642
-        this.navParams = navParams;
643
-        this.destinationService = destinationService;
644
-        this.loadingController = loadingController;
645
-        this.destinations = [];
646
-        this.destination = {};
647
-    }
648
-    MapPage.prototype.ionViewDidLoad = function () {
649
-        var _this = this;
650
-        var loader = this.loadingController.create({
651
-            content: 'Getting destinations...'
652
-        });
653
-        loader.present().then(function () {
654
-            _this.getAllDestinations();
655
-            loader.dismiss();
656
-        });
657
-    };
658
-    MapPage.prototype.goToDestinationDetails = function ($event, destination) {
659
-        this.navCtrl.push(__WEBPACK_IMPORTED_MODULE_2__destination_details_destination_details__["a" /* DestinationDetailsPage */], destination);
660
-    };
661
-    MapPage.prototype.getAllDestinations = function () {
662
-        var _this = this;
663
-        this.destinationService.getAllDestinations().subscribe(function (destinations) { return _this.destinations = destinations; }, function (err) {
664
-            console.log(err);
665
-        });
666
-    };
667
-    MapPage.prototype.goToAddDestination = function () {
668
-        this.navCtrl.push(__WEBPACK_IMPORTED_MODULE_3__add_destination_add_destination__["a" /* AddDestinationPage */]);
669
-    };
670
-    MapPage = __decorate([
671
-        Object(__WEBPACK_IMPORTED_MODULE_0__angular_core__["m" /* Component */])({
672
-            selector: 'page-map',template:/*ion-inline-start:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/map/map.html"*/'<!--\n  Generated template for the MapPage page.\n\n  See http://ionicframework.com/docs/components/#navigation for more info on\n  Ionic pages and navigation.\n-->\n<ion-header>\n\n  <ion-navbar>\n    <ion-title>map</ion-title>\n  </ion-navbar>\n\n</ion-header>\n\n\n<ion-content padding>\n  <ion-list>\n    <ion-item-sliding *ngFor = "let destination of destinations">\n      <ion-item>\n        <div>{{ destination.city }}</div>\n        <div>{{ destination.country }}</div>\n        <button ion-button (click)="goToDestinationDetails($event, destination)">Details</button>\n      </ion-item>\n    </ion-item-sliding>\n  </ion-list>\n  <button ion-button (click)=goToAddDestination()>Add Destination</button>\n</ion-content>\n'/*ion-inline-end:"/Users/ericf/ZCWProjects/SharedTravelMapIonicApp/src/pages/map/map.html"*/,
673
-        }),
674
-        __metadata("design:paramtypes", [__WEBPACK_IMPORTED_MODULE_1_ionic_angular__["f" /* NavController */],
675
-            __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["g" /* NavParams */],
676
-            __WEBPACK_IMPORTED_MODULE_4__services_destination_service_destination_service__["a" /* DestinationService */],
677
-            __WEBPACK_IMPORTED_MODULE_1_ionic_angular__["e" /* LoadingController */]])
678
-    ], MapPage);
679
-    return MapPage;
680
-}());
681
-
682
-//# sourceMappingURL=map.js.map
683
-
684 756
 /***/ })
685 757
 
686
-},[350]);
758
+},[355]);
687 759
 //# sourceMappingURL=main.js.map

+ 1
- 1
www/build/main.js.map
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 11435
- 8639
www/build/vendor.js
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 1
- 1
www/build/vendor.js.map
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 3
- 3
www/index.html Ver fichero

@@ -1,14 +1,12 @@
1 1
 <!DOCTYPE html>
2 2
 <html lang="en" dir="ltr">
3 3
 <head>
4
-  <script data-ionic="inject">
5
-    (function(w){var i=w.Ionic=w.Ionic||{};i.version='3.9.2';i.angular='5.2.11';i.staticDir='build/';})(window);
6
-  </script>
7 4
   <meta charset="UTF-8">
8 5
   <title>Ionic App</title>
9 6
   <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
10 7
   <meta name="format-detection" content="telephone=no">
11 8
   <meta name="msapplication-tap-highlight" content="no">
9
+  <meta http-equiv="Content-Security-Policy" content="script-src 'self' https://maps.googleapis.com/ https://maps.gstatic.com/ https://mts0.googleapis.com/ 'unsafe-inline' 'unsafe-eval'">
12 10
 
13 11
   <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
14 12
   <link rel="manifest" href="manifest.json">
@@ -38,6 +36,8 @@
38 36
   <!-- Ionic's root component and where the app will load -->
39 37
   <ion-app></ion-app>
40 38
 
39
+  <script type="text/javascript" src="https://maps.googleapis.com/map/api/js?key=AIzaSyDoZ4iE0CqmLVSJjLZnJmFORZuuR6Ei55c&callback=initMap"></script>
40
+
41 41
   <!-- The polyfills js is generated during the build process -->
42 42
   <script src="build/polyfills.js"></script>
43 43