/td>
22249
+      "version": "5.22.0-beta-1",
22250
+      "resolved": "https://registry.npmjs.org/@ionic-native/call-number/-/call-number-5.22.0-beta-1.tgz",
22251
+      "integrity": "sha512-8ff9xYa1Lvm4uW8T+ftfPLVw805UzDOpWQIFk8wFc8tdWuXx+KS940Ws5ZMV/ERb0LI97/N2N5msIQeLZT9HIA==",
22252
+      "requires": {
22253
+        "@types/cordova": "latest"
22254
+      }
22255
+    },
22190
     "@ionic-native/core": {
22256
     "@ionic-native/core": {
22191
       "version": "5.36.0",
22257
       "version": "5.36.0",
22192
       "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.36.0.tgz",
22258
       "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.36.0.tgz",
22196
         "@types/cordova": "latest"
22262
         "@types/cordova": "latest"
22197
       }
22263
       }
22198
     },
22264
     },
22265
+    "@ionic-native/email-composer": {
22266
+      "version": "5.36.0",
22267
+      "resolved": "https://registry.npmjs.org/@ionic-native/email-composer/-/email-composer-5.36.0.tgz",
22268
+      "integrity": "sha512-v732Jz3w4ItQqM7c2IzIxQQH+zT1DtQ7z635Fpbw4OJwpn6mImTms/F1c6hLJ50YmS/FYuI6rLbFRE/7BX1LUA==",
22269
+      "requires": {
22270
+        "@types/cordova": "latest"
22271
+      }
22272
+    },
22199
     "@ionic-native/geolocation": {
22273
     "@ionic-native/geolocation": {
22200
       "version": "5.36.0",
22274
       "version": "5.36.0",
22201
       "resolved": "https://registry.npmjs.org/@ionic-native/geolocation/-/geolocation-5.36.0.tgz",
22275
       "resolved": "https://registry.npmjs.org/@ionic-native/geolocation/-/geolocation-5.36.0.tgz",
23879
         "get-intrinsic": "^1.0.2"
23953
         "get-intrinsic": "^1.0.2"
23880
       }
23954
       }
23881
     },
23955
     },
23956
+    "call-number": {
23957
+      "version": "1.0.1",
23958
+      "resolved": "https://registry.npmjs.org/call-number/-/call-number-1.0.1.tgz",
23959
+      "integrity": "sha1-v52q5If9alVz+JqjZV++ivA2r9I=",
23960
+      "dev": true
23961
+    },
23882
     "callsites": {
23962
     "callsites": {
23883
       "version": "3.1.0",
23963
       "version": "3.1.0",
23884
       "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
23964
       "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
24583
       "integrity": "sha1-/Ajzci5n7ve2xnv8mag99q3Quro=",
24663
       "integrity": "sha1-/Ajzci5n7ve2xnv8mag99q3Quro=",
24584
       "dev": true
24664
       "dev": true
24585
     },
24665
     },
24666
+    "cordova-plugin-email-composer": {
24667
+      "version": "0.9.2",
24668
+      "resolved": "https://registry.npmjs.org/cordova-plugin-email-composer/-/cordova-plugin-email-composer-0.9.2.tgz",
24669
+      "integrity": "sha512-w8eQZ6lbYWut13o/Cprixmacfyq5hds7DAjuTL34eQhyWWd/DA/o6ziiyY3So2ZOozeQ4DxQpyPN4BiqUKcyew==",
24670
+      "dev": true
24671
+    },
24586
     "cordova-plugin-geolocation": {
24672
     "cordova-plugin-geolocation": {
24587
       "version": "4.1.0",
24673
       "version": "4.1.0",
24588
       "resolved": "https://registry.npmjs.org/cordova-plugin-geolocation/-/cordova-plugin-geolocation-4.1.0.tgz",
24674
       "resolved": "https://registry.npmjs.org/cordova-plugin-geolocation/-/cordova-plugin-geolocation-4.1.0.tgz",

+ 7 - 1
package.json

26
     "@fortawesome/free-brands-svg-icons": "^5.15.4",
26
     "@fortawesome/free-brands-svg-icons": "^5.15.4",
27
     "@fortawesome/free-regular-svg-icons": "^5.15.4",
27
     "@fortawesome/free-regular-svg-icons": "^5.15.4",
28
     "@fortawesome/free-solid-svg-icons": "^5.15.4",
28
     "@fortawesome/free-solid-svg-icons": "^5.15.4",
29
+    "@ionic-native/call-number": "^5.22.0-beta-1",
30
+    "@ionic-native/email-composer": "^5.36.0",
29
     "@ionic-native/geolocation": "^5.36.0",
31
     "@ionic-native/geolocation": "^5.36.0",
30
     "@ionic-native/http": "^5.36.0",
32
     "@ionic-native/http": "^5.36.0",
31
     "@ionic-native/native-geocoder": "^5.36.0",
33
     "@ionic-native/native-geocoder": "^5.36.0",
51
     "@types/node": "^12.11.1",
53
     "@types/node": "^12.11.1",
52
     "@typescript-eslint/eslint-plugin": "4.16.1",
54
     "@typescript-eslint/eslint-plugin": "4.16.1",
53
     "@typescript-eslint/parser": "4.16.1",
55
     "@typescript-eslint/parser": "4.16.1",
56
+    "call-number": "^1.0.1",
54
     "cordova-plugin-add-swift-support": "^1.7.2",
57
     "cordova-plugin-add-swift-support": "^1.7.2",
55
     "cordova-plugin-device": "2.0.2",
58
     "cordova-plugin-device": "2.0.2",
59
+    "cordova-plugin-email-composer": "^0.9.2",
56
     "cordova-plugin-geolocation": "^4.1.0",
60
     "cordova-plugin-geolocation": "^4.1.0",
57
     "cordova-plugin-googlemaps": "^2.7.1",
61
     "cordova-plugin-googlemaps": "^2.7.1",
58
     "cordova-plugin-googlemaps-sdk": "github:mapsplugin/cordova-plugin-googlemaps-sdk",
62
     "cordova-plugin-googlemaps-sdk": "github:mapsplugin/cordova-plugin-googlemaps-sdk",
92
       },
96
       },
93
       "cordova-plugin-nativegeocoder": {
97
       "cordova-plugin-nativegeocoder": {
94
         "LOCATION_WHEN_IN_USE_DESCRIPTION": "Use geocoder service"
98
         "LOCATION_WHEN_IN_USE_DESCRIPTION": "Use geocoder service"
95
-      }
99
+      },
100
+      "mx.ferreyra.callnumber": {},
101
+      "cordova-plugin-email-composer": {}
96
     },
102
     },
97
     "platforms": [
103
     "platforms": [
98
       "ios"
104
       "ios"

+ 5 - 0
src/app/app.module.ts

19
 import { Geolocation } from '@ionic-native/geolocation/ngx';
19
 import { Geolocation } from '@ionic-native/geolocation/ngx';
20
 import { NativeGeocoder } from '@ionic-native/native-geocoder/ngx';
20
 import { NativeGeocoder } from '@ionic-native/native-geocoder/ngx';
21
 
21
 
22
+import { CallNumber } from '@ionic-native/call-number/ngx';
23
+import { EmailComposer } from '@ionic-native/email-composer/ngx';
24
+
22
 // library.add(fas,far,fab);
25
 // library.add(fas,far,fab);
23
 
26
 
24
 @NgModule({
27
 @NgModule({
28
   providers: [
31
   providers: [
29
     Geolocation,
32
     Geolocation,
30
     NativeGeocoder,
33
     NativeGeocoder,
34
+    CallNumber,
35
+    EmailComposer,
31
     { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
36
     { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
32
   ],
37
   ],
33
   bootstrap: [AppComponent],
38
   bootstrap: [AppComponent],

+ 25 - 21
src/app/forgot-password/forgot-password.page.html

1
 <ion-header>
1
 <ion-header>
2
-  <ion-toolbar>
2
+  <ion-toolbar class="new-background-color">
3
+    <ion-buttons slot="start" color="light">
4
+      <ion-back-button></ion-back-button>
5
+    </ion-buttons>
3
     <ion-title>Wellness Route</ion-title>
6
     <ion-title>Wellness Route</ion-title>
4
   </ion-toolbar>
7
   </ion-toolbar>
5
 </ion-header>
8
 </ion-header>
6
-
7
 <ion-content>
9
 <ion-content>
8
-  <ion-row>
9
-    <ion-col>
10
-      <div class="ion-text-center">
11
-        <h1>ลืมรหัสผ่าน</h1>
12
-      </div>
13
-    </ion-col>
14
-  </ion-row>
15
-  <form>
10
+  <div><img src="/assets/images/image-006.jpg"></div>
11
+  <ion-grid>
16
     <ion-row>
12
     <ion-row>
17
       <ion-col>
13
       <ion-col>
18
-        <ion-item lines="full">
19
-          <ion-label position="floating">อีเมล์</ion-label>
20
-          <ion-input type="email" name="email" [(ngModel)]="email" inputmode="email"></ion-input>
21
-        </ion-item>
14
+        <div class="ion-text-center">
15
+          <h1>ลืมรหัสผ่าน</h1>
16
+        </div>
22
       </ion-col>
17
       </ion-col>
23
     </ion-row>
18
     </ion-row>
24
-    <ion-row>
25
-      <ion-col>
26
-        <ion-button type="submit" color="danger" expand="block" (click)="resetPassword()">ส่งรหัสผ่าน</ion-button>
27
-
28
-      </ion-col>
29
-    </ion-row>
30
-  </form>
19
+    <form>
20
+      <ion-row>
21
+        <ion-col>
22
+          <ion-item lines="full">
23
+            <ion-label position="floating">อีเมล์</ion-label>
24
+            <ion-input type="email" name="email" [(ngModel)]="email" inputmode="email"></ion-input>
25
+          </ion-item>
26
+        </ion-col>
27
+      </ion-row>
28
+      <ion-row>
29
+        <ion-col>
30
+          <ion-button type="submit" color="danger" expand="block" (click)="resetPassword()">ส่งรหัสผ่าน</ion-button>
31
+        </ion-col>
32
+      </ion-row>
33
+    </form>
34
+  </ion-grid>
31
 </ion-content>
35
 </ion-content>

+ 4 - 4
src/app/home/home.page.html

1
-<ion-header class="ion-no-border">
1
+<ion-header>
2
   <ion-toolbar class="new-background-color">
2
   <ion-toolbar class="new-background-color">
3
     <ion-title>Wellness Route</ion-title>
3
     <ion-title>Wellness Route</ion-title>
4
   </ion-toolbar>
4
   </ion-toolbar>
64
     <ion-row>
64
     <ion-row>
65
       <ion-col>
65
       <ion-col>
66
         <ion-card *ngFor="let pldata of placelasted">
66
         <ion-card *ngFor="let pldata of placelasted">
67
-          <div *ngIf="$any(pldata).better_featured_image != null">
68
-            <img src="{{$any(pldata).better_featured_image.source_url}}" alt="">
67
+          <div *ngIf="pldata.better_featured_image != null">
68
+            <img src="{{pldata.better_featured_image.source_url}}" alt="">
69
           </div>
69
           </div>
70
-          <div *ngIf="$any(pldata).better_featured_image == null">
70
+          <div *ngIf="pldata.better_featured_image == null">
71
             <img src="/assets/images/temp.png" />
71
             <img src="/assets/images/temp.png" />
72
           </div>
72
           </div>
73
           <ion-card-header>            
73
           <ion-card-header>            

+ 1 - 11
src/app/home/home.page.scss

4
   font-size: 20px;
4
   font-size: 20px;
5
 }
5
 }
6
 
6
 
7
-ion-searchbar{
8
-  // --color:#000;
9
-  // --placeholder-color:#000;
10
-  // --background:#000;
11
-}
12
-
13
 .search{
7
 .search{
14
   padding: 0px !important;
8
   padding: 0px !important;
15
   // margin-bottom: 30px;
9
   // margin-bottom: 30px;
16
   margin-top: 10px;
10
   margin-top: 10px;
17
 }
11
 }
18
 
12
 
19
-// .red {
20
-//   color: rgb(255, 0, 0);
21
-// }
22
-
23
 .catshow {
13
 .catshow {
24
-  height: 100px;
14
+  height: 80px;
25
   // background-color: rgb(183, 210, 236);
15
   // background-color: rgb(183, 210, 236);
26
   border: solid 1px;
16
   border: solid 1px;
27
   border-color: cornflowerblue;
17
   border-color: cornflowerblue;

+ 71 - 65
src/app/login/login.page.html

1
 <ion-header>
1
 <ion-header>
2
-  <ion-toolbar>
2
+  <ion-toolbar class="new-background-color">
3
+    <ion-buttons slot="start" color="light">
4
+      <ion-back-button></ion-back-button>
5
+    </ion-buttons>
3
     <ion-title>Wellness Route</ion-title>
6
     <ion-title>Wellness Route</ion-title>
4
   </ion-toolbar>
7
   </ion-toolbar>
5
 </ion-header>
8
 </ion-header>
6
-
7
 <ion-content>
9
 <ion-content>
8
-  <ion-row>
9
-    <ion-col>
10
-      <div class="ion-text-center">
11
-        <h1>เข้าสู่ระบบ</h1>
12
-      </div>
13
-    </ion-col>
14
-  </ion-row>
15
-  <ion-row>
16
-    <ion-col>
17
-      <form>
18
-        <ion-item lines="full">
19
-          <ion-label position="floating">อีเมล์</ion-label>
20
-          <ion-input type="text" required="true" [(ngModel)]='registerForm.email' name='email' type='email'></ion-input>
21
-        </ion-item>
10
+  <div><img src="/assets/images/image-005.jpg"></div>
11
+  <ion-grid>
12
+    <ion-row>
13
+      <ion-col>
14
+        <div class="ion-text-center">
15
+          <h1>เข้าสู่ระบบ</h1>
16
+        </div>
17
+      </ion-col>
18
+    </ion-row>
19
+    <ion-row>
20
+      <ion-col>
21
+        <form>
22
+          <ion-item lines="full">
23
+            <ion-label position="floating">อีเมล์</ion-label>
24
+            <ion-input type="text" required="true" [(ngModel)]='registerForm.email' name='email' type='email'>
25
+            </ion-input>
26
+          </ion-item>
22
 
27
 
23
-        <ion-item lines="full">
24
-          <ion-label position="floating">รหัสผ่าน</ion-label>
25
-          <ion-input type="password" required [(ngModel)]='registerForm.password' name='password'></ion-input>
26
-        </ion-item>
27
-      </form>
28
-    </ion-col>
29
-  </ion-row>
30
-  <ion-row>
28
+          <ion-item lines="full">
29
+            <ion-label position="floating">รหัสผ่าน</ion-label>
30
+            <ion-input type="password" required [(ngModel)]='registerForm.password' name='password'></ion-input>
31
+          </ion-item>
32
+        </form>
33
+      </ion-col>
34
+    </ion-row>
35
+    <ion-row>
36
+      <ion-col>
37
+        <ion-button type="submit" color="success" expand="block" (click)="userLogin()">Login</ion-button>
38
+      </ion-col>
39
+    </ion-row>
40
+    <ion-row>
41
+      <ion-col class='ion-text-center'>
42
+        <a (click)="openForgotPassword()" class="small-text">ลืมรหัส</a>
43
+      </ion-col>
44
+      <ion-col class='ion-text-center'>
45
+        <a (click)="openRegister()" class="small-text">สม้ครใหม่</a>
46
+      </ion-col>
47
+    </ion-row>
48
+    <ion-row>
49
+      <ion-col>
50
+        <span class="divider line one-line">หรือ</span>
51
+      </ion-col>
52
+    </ion-row>
53
+    <ion-row>
54
+      <ion-col>
55
+        <ion-button class="log-fb-in-button" expand="block" (click)="doFbLogin()">
56
+          Log in with Facebook
57
+        </ion-button><br>
58
+        <button (click)="appleSignIn()" block [hidden]="isAndroid">
59
+          <img src="assets/images/appleid_button@2x.png">
60
+        </button>
61
+      </ion-col>
62
+    </ion-row>
31
     <ion-col>
63
     <ion-col>
32
-      <ion-button type="submit" color="success" expand="block" (click)="userLogin()">Login</ion-button>
33
-    </ion-col>
34
-  </ion-row>
35
-  <ion-row>
36
-    <ion-col class='ion-text-center'>
37
-      <a (click)="openForgotPassword()" class="small-text">ลืมรหัส</a>      
64
+      <a [routerLink]="['/tabs/forgot-password']">
65
+        page ลืมรหัส
66
+      </a>
38
     </ion-col>
67
     </ion-col>
39
-    <ion-col class='ion-text-center'>
40
-      <a (click)="openRegister()" class="small-text">สม้ครใหม่</a>
68
+    <ion-col>
69
+      <a [routerLink]="['/tabs/register']">
70
+        page register or signin
71
+      </a>
41
     </ion-col>
72
     </ion-col>
42
-  </ion-row>
43
-  <ion-row>
44
     <ion-col>
73
     <ion-col>
45
-      <span class="divider line one-line">หรือ</span>
74
+      <a [routerLink]="['/tabs/reset-password']">
75
+        page reset password
76
+      </a>
46
     </ion-col>
77
     </ion-col>
47
-  </ion-row>
48
-  <ion-row>
49
     <ion-col>
78
     <ion-col>
50
-      <ion-button class="log-fb-in-button" expand="block" (click)="doFbLogin()">
51
-        Log in with Facebook
52
-      </ion-button><br>
53
-      <button (click)="appleSignIn()" block [hidden]="isAndroid">
54
-        <img src="assets/images/appleid_button@2x.png">
55
-      </button>
79
+      <a [routerLink]="['/tabs/profile']">
80
+        page profile
81
+      </a>
56
     </ion-col>
82
     </ion-col>
57
-  </ion-row>
58
-  <ion-col>      
59
-    <a [routerLink]="['/tabs/forgot-password']">
60
-      page ลืมรหัส
61
-    </a>
62
-  </ion-col>
63
-  <ion-col>      
64
-    <a [routerLink]="['/tabs/register']">
65
-      page register or signin
66
-    </a>
67
-  </ion-col>
68
-  <ion-col>      
69
-    <a [routerLink]="['/tabs/reset-password']">
70
-      page reset password
71
-    </a>
72
-  </ion-col>
73
-  <ion-col>      
74
-    <a [routerLink]="['/tabs/profile']">
75
-      page profile
76
-    </a>
77
-  </ion-col>
78
-</ion-content>
83
+  </ion-grid>
84
+</ion-content>

+ 22 - 23
src/app/login/login.page.scss

1
-
2
 .divider {
1
 .divider {
3
-    display: flex;
4
-  
5
-    &:before,
6
-    &:after {
7
-      content: "";
8
-      flex: 1;
9
-    }
2
+  display: flex;
3
+
4
+  &:before,
5
+  &:after {
6
+    content: "";
7
+    flex: 1;
8
+  }
9
+}
10
+.line {
11
+  align-items: center;
12
+  margin: 1em -1em;
13
+  color: #5f5e5e;
14
+  &:before,
15
+  &:after {
16
+    height: 1px;
17
+    margin: 0 1em;
10
   }
18
   }
11
-  .line {
12
-    align-items: center;
13
-    margin: 1em -1em;
14
-    color: #5f5e5e;
15
-    &:before,
16
-    &:after {
17
-      height: 1px;
18
-      margin: 0 1em;
19
-    }
19
+}
20
+.one-line {
21
+  &:before,
22
+  &:after {
23
+    background: #5f5e5e;
20
   }
24
   }
21
-  .one-line {
22
-    &:before,
23
-    &:after {
24
-      background: #5f5e5e;
25
-    }
26
-  }
25
+}

+ 1 - 5
src/app/nearme/nearme.page.html

8
 </ion-header>
8
 </ion-header>
9
 
9
 
10
 <ion-content>
10
 <ion-content>
11
+  <div #nearmap id="nearmap"></div>
11
   <ion-grid>
12
   <ion-grid>
12
-    <ion-row>
13
-      <ion-col>
14
-        <div #nearmap id="nearmap"></div>
15
-      </ion-col>
16
-    </ion-row>
17
     <ion-row >
13
     <ion-row >
18
       <ion-col>
14
       <ion-col>
19
         <ion-card *ngFor="let nearm of placenear">
15
         <ion-card *ngFor="let nearm of placenear">

+ 7 - 8
src/app/nearme/nearme.page.scss

1
 ion-card-title {
1
 ion-card-title {
2
-    font-family: "IBM Plex Sans Thai", sans-serif !important;
3
-    font-weight: 600;
4
-    font-size: 20px;
5
-  }
6
-  
7
-  #nearmap {
8
-    height: 300px;
9
-}
2
+  font-family: "IBM Plex Sans Thai", sans-serif !important;
3
+  font-weight: 600;
4
+  font-size: 20px;
5
+}
6
+#nearmap {
7
+  height: 300px;
8
+}

+ 1 - 3
src/app/place/place.page.html

8
 </ion-header>
8
 </ion-header>
9
 
9
 
10
 <ion-content>
10
 <ion-content>
11
-  <img src="/assets/images/golf-bg.jpg">
12
-  <div class="holidaycard">
11
+  <img src="/assets/images/image-010.jpg">
13
     <ion-grid>
12
     <ion-grid>
14
       <ion-row>
13
       <ion-row>
15
         <ion-col size="12">
14
         <ion-col size="12">
35
         </ion-card-header>
34
         </ion-card-header>
36
       </ion-card>
35
       </ion-card>
37
     </ion-grid>
36
     </ion-grid>
38
-  </div>
39
 </ion-content>
37
 </ion-content>

+ 12 - 12
src/app/place/place.page.scss

1
-.holidaycard {
2
-    position: absolute;
3
-    left: 0px;
4
-    // bottom: 0px;
5
-    top:200px;
6
-    min-height: 48%;
7
-    width: 100%;
8
-    padding: 5px;
9
-    border-radius: 15px ;
10
-    background: white;
11
-    --background: white;
12
-  }
1
+// .holidaycard {
2
+//     position: absolute;
3
+//     left: 0px;
4
+//     // bottom: 0px;
5
+//     top:200px;
6
+//     min-height: 48%;
7
+//     width: 100%;
8
+//     padding: 5px;
9
+//     border-radius: 15px ;
10
+//     background: white;
11
+//     --background: white;
12
+//   }
13
   
13
   
14
   ion-card-title {
14
   ion-card-title {
15
     font-family: "IBM Plex Sans Thai", sans-serif !important;
15
     font-family: "IBM Plex Sans Thai", sans-serif !important;

+ 43 - 26
src/app/placedetail/placedetail.page.html

16
   </div>
16
   </div>
17
   <!-- <img src="{{placelist?.better_featured_image.source_url}}"> -->
17
   <!-- <img src="{{placelist?.better_featured_image.source_url}}"> -->
18
   <ion-grid>
18
   <ion-grid>
19
-    <ion-row>
19
+    <ion-row color="light">
20
       <ion-col size="12">
20
       <ion-col size="12">
21
         <div class="txt-place-title">{{placelist?.title.rendered}}</div>
21
         <div class="txt-place-title">{{placelist?.title.rendered}}</div>
22
       </ion-col>
22
       </ion-col>
25
         <div>{{ placelist?.acf.openclose }}</div>
25
         <div>{{ placelist?.acf.openclose }}</div>
26
       </ion-col>
26
       </ion-col>
27
       <ion-col size="12">
27
       <ion-col size="12">
28
-        {{ placelist?.acf.gmap.address }}
29
-        {{ placelist?.acf.gmap.lat }}
30
-        {{ placelist?.acf.gmap.lng }}
31
-        <img src="/assets/images/map-temp.jpg" alt="">
28
+        <!-- {{ placelist?.acf.gmap.address }} -->
29
+        <!-- {{ placelist?.acf.gmap.lat }}
30
+        {{ placelist?.acf.gmap.lng }} -->
31
+        <div class="map-wrapper">
32
+          <div id="map_center">
33
+            <img src="/assets/icon/location-marker.png" />
34
+          </div>
35
+          <div #map id="map"></div>
36
+        </div>
32
       </ion-col>
37
       </ion-col>
33
       <ion-col size="12">
38
       <ion-col size="12">
34
         <ion-row>
39
         <ion-row>
35
           <ion-col size="4" class="ion-text-center">
40
           <ion-col size="4" class="ion-text-center">
36
-            <!-- <div [innerHTML]="placelist?.acf.phone"></div>                         -->
37
-            <fa-icon [icon]="['fas', 'phone-square-alt']" size="2x"></fa-icon>
41
+            <div (click)="callNow('{{placelist?.acf.phone}}')">
42
+              <fa-icon [icon]="['fas', 'phone-square-alt']" size="2x"></fa-icon>
43
+            </div>
38
           </ion-col>
44
           </ion-col>
39
           <ion-col size="4" class="ion-text-center">
45
           <ion-col size="4" class="ion-text-center">
40
             <!-- <div [innerHTML]="placelist?.acf.phone"></div>                         -->
46
             <!-- <div [innerHTML]="placelist?.acf.phone"></div>                         -->
42
           </ion-col>
48
           </ion-col>
43
           <ion-col size="4" class="ion-text-center">
49
           <ion-col size="4" class="ion-text-center">
44
             <!-- <div [innerHTML]="placelist?.acf.email"></div>             -->
50
             <!-- <div [innerHTML]="placelist?.acf.email"></div>             -->
45
-            <fa-icon [icon]="['fas', 'envelope']" size="2x"></fa-icon>
51
+            <div (click)="email2Place('{{placelist?.acf.email}}')">
52
+              <fa-icon [icon]="['fas', 'envelope']" size="2x"></fa-icon>
53
+            </div>
46
           </ion-col>
54
           </ion-col>
47
         </ion-row>
55
         </ion-row>
48
       </ion-col>
56
       </ion-col>
57
+
49
       <ion-col size="12">
58
       <ion-col size="12">
50
-        <div class="txt-lead">ที่อยู่</div>
51
-        <div [innerHTML]="placelist?.acf.address"></div>
52
-      </ion-col>
53
-      <ion-col size="12">
54
-        <!-- <div class="txt-lead">รายละเอียด</div>
55
-        <div [innerHTML]="placelist?.content.rendered"></div> -->
56
-        <!-- <div>{{placelist?.content.rendered}}</div> -->
57
-        <!-- <ion-button (click)="loadMap()" shape="round" color="dark">
58
-          <ion-icon slot="start" name="locate"></ion-icon>
59
-          Where I Am
60
-        </ion-button> -->
61
-        <div class="map-wrapper">
62
-          <div id="map_center">
63
-            <img src="assets/icon/location-marker.png" />
64
-          </div>
65
-          <div #map id="map"></div>
66
-        </div>
67
-        
59
+        <ion-segment (ionChange)="segmentChanged($event)" value="list1">
60
+          <ion-segment-button value="list1">
61
+            <ion-label>
62
+              ที่อยู่
63
+            </ion-label>
64
+          </ion-segment-button>
65
+          <ion-segment-button value="list2">
66
+            <ion-label>
67
+              รายละเอียด
68
+            </ion-label>
69
+          </ion-segment-button>
70
+        </ion-segment>
71
+
72
+        <ion-list *ngIf="segment === 'list1'">
73
+          <ion-col size="12">
74
+            <!-- <div class="txt-lead">ที่อยู่</div> -->
75
+            <div [innerHTML]="placelist?.acf.address"></div>
76
+          </ion-col>
77
+        </ion-list>
78
+
79
+        <ion-list *ngIf="segment === 'list2'">
80
+          <ion-col size="12">
81
+            <!-- <div class="txt-lead">ที่อยู่</div> -->
82
+            <div [innerHTML]="placelist?.content.rendered"></div>
83
+          </ion-col>
84
+        </ion-list>
68
       </ion-col>
85
       </ion-col>
69
     </ion-row>
86
     </ion-row>
70
 
87
 

+ 0 - 17
src/app/placedetail/placedetail.page.scss

1
-// ion-toolbar{
2
-//     --background: transparent;
3
-//     --border-color: transparent;
4
-// }
5
-// ion-toolbar{
6
-//     --background: transparent;
7
-//     --border-color: transparent;
8
-// }
9
-// ion-content{
10
-//     --offset-top:0px;
11
-//     position: absolute;
12
-// }
13
-
14
 .bg {
1
 .bg {
15
   position: absolute;
2
   position: absolute;
16
   left: 0px;
3
   left: 0px;
29
     --background: white;
16
     --background: white;
30
   }
17
   }
31
 }
18
 }
32
-
33
-.asd {
34
-}
35
-
36
 .asd .country {
19
 .asd .country {
37
   position: absolute;
20
   position: absolute;
38
   top: 50px;
21
   top: 50px;

+ 19 - 19
src/app/placedetail/placedetail.page.ts

4
 
4
 
5
 import { Geolocation } from '@ionic-native/geolocation/ngx';
5
 import { Geolocation } from '@ionic-native/geolocation/ngx';
6
 import { NativeGeocoder, NativeGeocoderResult, NativeGeocoderOptions } from '@ionic-native/native-geocoder/ngx';
6
 import { NativeGeocoder, NativeGeocoderResult, NativeGeocoderOptions } from '@ionic-native/native-geocoder/ngx';
7
+import { CallNumber } from '@ionic-native/call-number/ngx';
8
+import { EmailComposer } from '@ionic-native/email-composer/ngx';
7
 
9
 
8
 declare var google;
10
 declare var google;
9
 
11
 
17
   data: any;
19
   data: any;
18
   placelist: any;
20
   placelist: any;
19
 
21
 
22
+  public segment: string = "list1";
23
+
20
   @ViewChild('map', { static: false }) mapElement: ElementRef;
24
   @ViewChild('map', { static: false }) mapElement: ElementRef;
21
   map: any;
25
   map: any;
22
   address: string;
26
   address: string;
24
   longitude: number;
28
   longitude: number;
25
   latdynamic: any;
29
   latdynamic: any;
26
   londynamic: any;
30
   londynamic: any;
27
-  
28
 
31
 
29
-  constructor(private wpservice: WpServiceService, private route: ActivatedRoute, private router: Router, private geolocation: Geolocation, private nativeGeocoder: NativeGeocoder) { }
32
+
33
+  constructor(private wpservice: WpServiceService, private route: ActivatedRoute, private router: Router, private geolocation: Geolocation, private nativeGeocoder: NativeGeocoder,private callNumber: CallNumber, private emailComposer: EmailComposer) { }
30
   @Input() id: string;
34
   @Input() id: string;
31
   showDiss = false;
35
   showDiss = false;
32
 
36
 
121
 
125
 
122
   }
126
   }
123
 
127
 
124
-  // getAddressFromCoords2(lattitude, longitude) {
125
-  //   console.log("getAddressFromCoords2 " + lattitude + " " + longitude);
126
-  //   let options: NativeGeocoderOptions = {
127
-  //     useLocale: true,
128
-  //     maxResults: 5
129
-  //   };
130
-  // }
131
-
132
-  // getGeoencoder(latitude, longitude) {
133
-  //   this.nativeGeocoder.reverseGeocode(latitude, longitude, this.geoencoderOptions)
134
-  //     .then((result: NativeGeocoderResult[]) => {
135
-  //       this.address = this.generateAddress(result[0]);
136
-  //     })
137
-  //     .catch((error: any) => {
138
-  //       alert('Error getting location' + JSON.stringify(error));
139
-  //     });
140
-  // }
128
+  segmentChanged(ev: any) {
129
+    this.segment = ev.detail.value;
130
+  }
131
+
132
+  callNow(number) {
133
+    this.callNumber.callNumber(number, true)
134
+      .then(res => console.log('Launched dialer!', res))
135
+      .catch(err => console.log('Error launching dialer', err));
136
+  }
137
+
138
+  email2Place(mail) {
139
+    this.emailComposer.open(mail)
140
+  }
141
 }
141
 }

+ 18 - 11
src/app/profile/profile.page.html

1
 <ion-header>
1
 <ion-header>
2
-  <ion-toolbar>
2
+  <ion-toolbar class="new-background-color">
3
+    <ion-buttons slot="start" color="light">
4
+      <ion-back-button></ion-back-button>
5
+    </ion-buttons>
3
     <ion-title>Wellness Route</ion-title>
6
     <ion-title>Wellness Route</ion-title>
4
   </ion-toolbar>
7
   </ion-toolbar>
5
 </ion-header>
8
 </ion-header>
6
-<ion-content fullscreen="true">
7
-  <!-- <div *ngIf="(user2 | async) as user; else loading"> -->
9
+<ion-content>
10
+  <ion-grid>
11
+    <!-- <div *ngIf="(user2 | async) as user; else loading"> -->
8
     <ion-row>
12
     <ion-row>
9
       <ion-col>
13
       <ion-col>
10
         <div class="ion-text-center">
14
         <div class="ion-text-center">
17
         <div class="card">
21
         <div class="card">
18
           <div class="header">
22
           <div class="header">
19
             <div class="avatar">
23
             <div class="avatar">
20
-              <img [src]="$any(user).picture_large.data.url" *ngIf="user['picture_large'] != undefined" />
21
-              <img src="/assets/images/icon-user.png" *ngIf="user['picture_large'] == undefined" />
24
+              <!-- <img [src]="$any(user).picture_large.data.url" *ngIf="user['picture_large'] != undefined" /> -->
25
+              <!-- <img src="/assets/images/icon-user.png" *ngIf="user['picture_large'] == undefined" /> -->
26
+              <img src="/assets/images/icon-user.png">
22
             </div>
27
             </div>
23
           </div>
28
           </div>
24
         </div>
29
         </div>
25
         <div class="card-body">
30
         <div class="card-body">
26
           <div class="user-meta ion-text-center">
31
           <div class="user-meta ion-text-center">
27
-            <h3 class="playername">{{ $any(user).name }}</h3>
32
+            <!-- <h3 class="playername">{{ $any(user).name }}</h3> -->
28
           </div>
33
           </div>
29
           <form>
34
           <form>
30
             <ion-item lines="full">
35
             <ion-item lines="full">
31
               <ion-label>ชื่อ</ion-label>
36
               <ion-label>ชื่อ</ion-label>
32
-              {{ $any(user).name }}
37
+              <!-- {{ $any(user).name }} -->
33
             </ion-item>
38
             </ion-item>
34
             <ion-item lines="full">
39
             <ion-item lines="full">
35
-              <ion-label>Email</ion-label>{{ $any(user).email }}
40
+              <ion-label>อีเมล์</ion-label>
41
+              <!-- {{ $any(user).email }} -->
36
             </ion-item>
42
             </ion-item>
37
             <div class="ion-padding-vertical">
43
             <div class="ion-padding-vertical">
38
-              <ion-button type="submit" color="danger" expand="block" (click)="logout()">Log Out</ion-button>
44
+              <!-- <ion-button type="submit" color="danger" expand="block" (click)="logout()">Log Out</ion-button> -->
39
             </div>
45
             </div>
40
           </form>
46
           </form>
41
         </div>
47
         </div>
42
       </ion-col>
48
       </ion-col>
43
     </ion-row>
49
     </ion-row>
44
-  <!-- </div> -->
45
-  <!-- <ng-template #loading>
50
+    <!-- </div> -->
51
+    <!-- <ng-template #loading>
46
     Loading stuff...
52
     Loading stuff...
47
   </ng-template> -->
53
   </ng-template> -->
54
+  </ion-grid>
48
 </ion-content>
55
 </ion-content>

+ 1 - 0
src/app/profile/profile.page.ts

8
 export class ProfilePage implements OnInit {
8
 export class ProfilePage implements OnInit {
9
 
9
 
10
   user2: any;
10
   user2: any;
11
+  user: any;
11
   
12
   
12
   constructor() { }
13
   constructor() { }
13
 
14
 

+ 28 - 29
src/app/province/province.page.html

6
     <ion-title>Wellnewss Route</ion-title>
6
     <ion-title>Wellnewss Route</ion-title>
7
   </ion-toolbar>
7
   </ion-toolbar>
8
 </ion-header>
8
 </ion-header>
9
-
10
 <ion-content>
9
 <ion-content>
11
-  <img src="/assets/images/welcome_drone.jpeg" alt="">
12
-  <div class="holidaycard">
13
-    <ion-grid>
14
-      <ion-row>
15
-        <ion-col size="12">
16
-          <div class="txt-place-title">Province Name</div>
17
-        </ion-col>
18
-      </ion-row>
19
-      <ion-row>
20
-        <ion-col>
21
-          <ion-toolbar class="search">
22
-            <ion-searchbar placeholder="ค้นหา"></ion-searchbar>
23
-          </ion-toolbar>
24
-        </ion-col>
25
-      </ion-row>
26
-      <ion-card *ngFor="let provlist of provicelist">
27
-        <div *ngIf="$any(provlist).better_featured_image != null">
28
-          <img src="{{$any(provlist).better_featured_image.source_url}}" alt="">
29
-        </div>
30
-        <div *ngIf="$any(provlist).better_featured_image == null">
31
-          <img src="/assets/images/temp.png" />
32
-        </div>
33
-        <ion-card-header>
34
-          <a [routerLink]="['/tabs/place/', provlist.id]"><ion-card-title [innerHTML]="provlist.title.rendered"></ion-card-title></a>
35
-        </ion-card-header>
36
-      </ion-card>
37
-    </ion-grid>
38
-  </div>
10
+  <img src="/assets/images/image-004.jpg" alt="">
11
+  <ion-grid>
12
+    <ion-row>
13
+      <ion-col size="12">
14
+        <div class="txt-place-title">Province Name</div>
15
+      </ion-col>
16
+    </ion-row>
17
+    <ion-row>
18
+      <ion-col>
19
+        <ion-toolbar class="search">
20
+          <ion-searchbar placeholder="ค้นหา"></ion-searchbar>
21
+        </ion-toolbar>
22
+      </ion-col>
23
+    </ion-row>
24
+    <ion-card *ngFor="let provlist of provicelist">
25
+      <div *ngIf="$any(provlist).better_featured_image != null">
26
+        <img src="{{$any(provlist).better_featured_image.source_url}}" alt="">
27
+      </div>
28
+      <div *ngIf="$any(provlist).better_featured_image == null">
29
+        <img src="/assets/images/temp.png" />
30
+      </div>
31
+      <ion-card-header>
32
+        <a [routerLink]="['/tabs/place/', provlist.id]">
33
+          <ion-card-title [innerHTML]="provlist.title.rendered"></ion-card-title>
34
+        </a>
35
+      </ion-card-header>
36
+    </ion-card>
37
+  </ion-grid>
39
 </ion-content>
38
 </ion-content>

+ 12 - 12
src/app/province/province.page.scss

1
 
1
 
2
-.holidaycard {
3
-  position: absolute;
4
-  left: 0px;
5
-  // bottom: 0px;
6
-  top:200px;
7
-  min-height: 48%;
8
-  width: 100%;
9
-  padding: 5px;
10
-  border-radius: 15px ;
11
-  background: white;
12
-  --background: white;
13
-}
2
+// .holidaycard {
3
+//   position: absolute;
4
+//   left: 0px;
5
+//   // bottom: 0px;
6
+//   top:200px;
7
+//   min-height: 48%;
8
+//   width: 100%;
9
+//   padding: 5px;
10
+//   border-radius: 15px ;
11
+//   background: white;
12
+//   --background: white;
13
+// }
14
 
14
 
15
 ion-card-title {
15
 ion-card-title {
16
   font-family: "IBM Plex Sans Thai", sans-serif !important;
16
   font-family: "IBM Plex Sans Thai", sans-serif !important;

+ 10 - 7
src/app/register-form/register-form.page.html

1
 <ion-header>
1
 <ion-header>
2
-  <ion-toolbar>
2
+  <ion-toolbar class="new-background-color">
3
+    <ion-buttons slot="start" color="light">
4
+      <ion-back-button></ion-back-button>
5
+    </ion-buttons>
3
     <ion-title>Wellness Route</ion-title>
6
     <ion-title>Wellness Route</ion-title>
4
   </ion-toolbar>
7
   </ion-toolbar>
5
 </ion-header>
8
 </ion-header>
6
-
7
 <ion-content>
9
 <ion-content>
10
+  <div><img src="/assets/images/image-001.jpg"></div>
8
   <ion-row>
11
   <ion-row>
9
     <ion-col>
12
     <ion-col>
10
       <div class="ion-text-center">
13
       <div class="ion-text-center">
13
     </ion-col>
16
     </ion-col>
14
   </ion-row>
17
   </ion-row>
15
   <ion-row>
18
   <ion-row>
16
-    <ion-col>      
19
+    <ion-col>
17
       <form>
20
       <form>
18
-        <ion-text *ngIf="errorText" color="primary" style='background-color:#fff'>
21
+        <ion-text *ngIf="errorText" color="primary">
19
           {{ errorText }}
22
           {{ errorText }}
20
         </ion-text>
23
         </ion-text>
21
         <ion-item lines="full">
24
         <ion-item lines="full">
45
         </ion-item>
48
         </ion-item>
46
 
49
 
47
         <div class="ion-padding-vertical">
50
         <div class="ion-padding-vertical">
48
-          <ion-button type="submit" color="success" expand="block" (click)="register()">ลงทะเบียน</ion-button>
51
+          <ion-button type="submit" color="success" expand="block">ลงทะเบียน</ion-button>
49
         </div>
52
         </div>
50
       </form>
53
       </form>
51
     </ion-col>
54
     </ion-col>
52
-  </ion-row>  
53
-</ion-content>
55
+  </ion-row>
56
+</ion-content>

+ 10 - 7
src/app/register/register.page.html

1
 <ion-header>
1
 <ion-header>
2
-  <ion-toolbar>
3
-    <ion-title>ลงทะเบียน</ion-title>
2
+  <ion-toolbar class="new-background-color">
3
+    <ion-buttons slot="start" color="light">
4
+      <ion-back-button></ion-back-button>
5
+    </ion-buttons>
6
+    <ion-title>Wellness Route</ion-title>
4
   </ion-toolbar>
7
   </ion-toolbar>
5
 </ion-header>
8
 </ion-header>
6
-
7
 <ion-content class="auth-form">
9
 <ion-content class="auth-form">
10
+  <div><img src="/assets/images/image-001.jpg"></div>
8
   <ion-grid>
11
   <ion-grid>
9
     <ion-row>
12
     <ion-row>
10
       <ion-col align-self-center>
13
       <ion-col align-self-center>
11
-        <ion-button [routerLink]="['/registration']" expand="block" color="primary">Register</ion-button>
14
+        <ion-button [routerLink]="['/register-form']" expand="block" color="primary">ลงทะเบียนผู้ใช้งาน</ion-button>
12
 
15
 
13
-        <span class="divider line one-line">or</span>
16
+        <span class="divider line one-line">หรือ</span>
14
 
17
 
15
-        <span class="already">Already a user?</span>
18
+        <span class="already">มีชื่อผู้ใช้งานแล้ว</span>
16
 
19
 
17
-        <ion-button [routerLink]="['/login']" expand="block" color="danger">Sign In</ion-button>
20
+        <ion-button [routerLink]="['/login']" expand="block" color="danger">เข้าสู่ระบบ</ion-button>
18
       </ion-col>
21
       </ion-col>
19
     </ion-row>
22
     </ion-row>
20
   </ion-grid>
23
   </ion-grid>

+ 2 - 2
src/app/register/register.page.scss

12
   .line {
12
   .line {
13
     align-items: center;
13
     align-items: center;
14
     margin: 1em -1em;
14
     margin: 1em -1em;
15
-    color: #cccccc;
15
+    color: #5f5e5e;
16
     
16
     
17
     &:before,
17
     &:before,
18
     &:after {
18
     &:after {
24
   .one-line {
24
   .one-line {
25
     &:before,
25
     &:before,
26
     &:after {
26
     &:after {
27
-       background: #cccccc;
27
+       background: #5f5e5e;
28
     }
28
     }
29
   }
29
   }
30
   
30
   

+ 29 - 24
src/app/reset-password/reset-password.page.html

1
 <ion-header>
1
 <ion-header>
2
-  <ion-toolbar>
2
+  <ion-toolbar class="new-background-color">
3
+    <ion-buttons slot="start" color="light">
4
+      <ion-back-button></ion-back-button>
5
+    </ion-buttons>
3
     <ion-title>Wellness Route</ion-title>
6
     <ion-title>Wellness Route</ion-title>
4
   </ion-toolbar>
7
   </ion-toolbar>
5
 </ion-header>
8
 </ion-header>
6
-
7
 <ion-content>
9
 <ion-content>
8
-  <ion-row>
9
-    <ion-col class="ion-text-center">
10
-      <h1>กรุณาใส่รหัสผ่านใหม่</h1>
11
-    </ion-col>
12
-  </ion-row>
13
-  <form>
14
-    <ion-row>
15
-      <ion-col>
16
-        <ion-item lines="full">
17
-          <ion-label position="floating">รหัสผ่าน</ion-label>
18
-          <ion-input type="password" required></ion-input>
19
-        </ion-item>
20
-
21
-        <ion-item lines="full">
22
-          <ion-label position="floating">ยืนยัน รหัสผ่าน</ion-label>
23
-          <ion-input type="password" required></ion-input>
24
-        </ion-item>
25
-      </ion-col>
26
-    </ion-row>
10
+  <div><img src="/assets/images/image-007.jpg"></div>
11
+  <ion-grid>
27
     <ion-row>
12
     <ion-row>
28
-      <ion-col>
29
-        <ion-button type="submit" color="success" expand="block">ส่ง</ion-button>
13
+      <ion-col class="ion-text-center">
14
+        <h1>กรุณาใส่รหัสผ่านใหม่</h1>
30
       </ion-col>
15
       </ion-col>
31
     </ion-row>
16
     </ion-row>
32
-  </form>
17
+    <form>
18
+      <ion-row>
19
+        <ion-col>
20
+          <ion-item lines="full">
21
+            <ion-label position="floating">รหัสผ่าน</ion-label>
22
+            <ion-input type="password" required></ion-input>
23
+          </ion-item>
24
+
25
+          <ion-item lines="full">
26
+            <ion-label position="floating">ยืนยัน รหัสผ่าน</ion-label>
27
+            <ion-input type="password" required></ion-input>
28
+          </ion-item>
29
+        </ion-col>
30
+      </ion-row>
31
+      <ion-row>
32
+        <ion-col>
33
+          <ion-button type="submit" color="success" expand="block">ส่ง</ion-button>
34
+        </ion-col>
35
+      </ion-row>
36
+    </form>
37
+  </ion-grid>
33
 </ion-content>
38
 </ion-content>

+ 2 - 2
src/app/tabs/tabs.page.html

1
 <ion-tabs>
1
 <ion-tabs>
2
-  <ion-fab vertical="bottom" horizontal="center" translucent="true">
2
+  <!-- <ion-fab vertical="bottom" horizontal="center" translucent="true">
3
     <ion-fab-button routerLink="nearme" routerDirection="forward">
3
     <ion-fab-button routerLink="nearme" routerDirection="forward">
4
     <ion-icon name="navigate"></ion-icon>
4
     <ion-icon name="navigate"></ion-icon>
5
     </ion-fab-button>
5
     </ion-fab-button>
6
-  </ion-fab>
6
+  </ion-fab> -->
7
   <ion-tab-bar slot="bottom">
7
   <ion-tab-bar slot="bottom">
8
     <ion-tab-button tab="home">
8
     <ion-tab-button tab="home">
9
       <ion-icon name="home"></ion-icon>
9
       <ion-icon name="home"></ion-icon>

+ 2 - 1
src/app/wp-service.service.ts

31
 
31
 
32
   getPlaceDetail(id) {
32
   getPlaceDetail(id) {
33
     return this.http.get(
33
     return this.http.get(
34
-      "http://tamtime.iamarray.xyz/wp-json/wp/v2/place/"+id+"/?_embed"
34
+      // "http://tamtime.iamarray.xyz/wp-json/wp/v2/place/"+id+"/?_embed"
35
+      "/assets/json/place173.json"
35
     );
36
     );
36
   }
37
   }
37
 
38
 

BIN
src/assets/images/image-001.jpg


BIN
src/assets/images/image-002.jpg


BIN
src/assets/images/image-003.jpg


BIN
src/assets/images/image-004.jpg


BIN
src/assets/images/image-005.jpg


BIN
src/assets/images/image-006.jpg


BIN
src/assets/images/image-007.jpg


BIN
src/assets/images/image-008.jpg


BIN
src/assets/images/image-009.jpg


BIN
src/assets/images/image-010.jpg


BIN
src/assets/images/image-011.jpg


BIN
src/assets/images/image-012.jpg


Разница между файлами не показана из-за своего большого размера
+ 1 - 0
src/assets/json/place173.json


+ 18 - 7
src/global.scss

116
   --color: #ffffff;
116
   --color: #ffffff;
117
 }
117
 }
118
 
118
 
119
+// ion-content {
120
+//   --background: linear-gradient(
121
+//     to bottom,
122
+//     #a7e9ff,
123
+//     #8fd8fd,
124
+//     #7ec7fb,
125
+//     #78b4f6,
126
+//     #7c9fee
127
+//   );
128
+// }
129
+
119
 ion-title {
130
 ion-title {
120
   font-family: "Kanit", sans-serif !important;
131
   font-family: "Kanit", sans-serif !important;
121
   font-weight: 500;
132
   font-weight: 500;
160
 
171
 
161
 a {
172
 a {
162
   text-decoration: none;
173
   text-decoration: none;
163
- }
164
- 
165
-// ion-content {
166
-//   --background: url(/assets/images/wnr-bg.jpg) no-repeat center/cover fixed;
167
-// }
174
+}
175
+
176
+.image-page-cover {
177
+  height: 200px;
178
+}
168
 .ios ion-fab-button {
179
 .ios ion-fab-button {
169
-  position:absolute;
180
+  position: absolute;
170
   bottom: 25px;
181
   bottom: 25px;
171
-}
182
+}

tum/soc - Gogs: Simplico Git Service

Нет описания

clean_database.py 1.0KB

1234567891011121314151617181920212223242526272829303132333435
  1. # IRIS Source Code
  2. # Copyright (C) 2021 - Airbus CyberSecurity (SAS)
  3. # ir@cyberactionlab.net
  4. #
  5. # This program is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU Lesser General Public
  7. # License as published by the Free Software Foundation; either
  8. # version 3 of the License, or (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. # Lesser General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU Lesser General Public License
  16. # along with this program; if not, write to the Free Software Foundation,
  17. # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18. import logging
  19. from app import db
  20. def clean_db():
  21. db.session.commit()
  22. db.drop_all()
  23. db.create_all()
  24. logging.info("CleanUp completed")
  25. if __name__ == "__main__":
  26. clean_db()