golf пре 3 година
родитељ
комит
79cd78c117

+ 87 - 4
package-lock.json

@@ -25,6 +25,7 @@
25 25
         "@fortawesome/free-regular-svg-icons": "^6.2.0",
26 26
         "@fortawesome/free-solid-svg-icons": "^6.2.0",
27 27
         "@ionic/angular": "^6.1.9",
28
+        "@ionic/storage-angular": "^3.0.6",
28 29
         "ionicons": "^6.0.3",
29 30
         "rxjs": "~6.6.0",
30 31
         "swiper": "^8.4.4",
@@ -3004,6 +3005,32 @@
3004 3005
         "tslib": "^2.1.0"
3005 3006
       }
3006 3007
     },
3008
+    "node_modules/@ionic/storage": {
3009
+      "version": "3.0.6",
3010
+      "resolved": "https://registry.npmjs.org/@ionic/storage/-/storage-3.0.6.tgz",
3011
+      "integrity": "sha512-sw+zSJINIpbQCGZR9mEtb9N0WmZLuhcMVqOZJBqLuDACAMdXqG39zmp5nSVqhGI1/9X3nd0K5gVn6icyVfUnUg==",
3012
+      "dependencies": {
3013
+        "localforage": "^1.9.0"
3014
+      }
3015
+    },
3016
+    "node_modules/@ionic/storage-angular": {
3017
+      "version": "3.0.6",
3018
+      "resolved": "https://registry.npmjs.org/@ionic/storage-angular/-/storage-angular-3.0.6.tgz",
3019
+      "integrity": "sha512-ZXlIFWGU27aCxVFgZb0KFJFtWwnn6+HK6v0rMGzjN8f7oV2ewXaQ2dl1gTw/A8YoozTVPOFxwfFHCjhWLFR1Fw==",
3020
+      "dependencies": {
3021
+        "@ionic/storage": "^3.0.4",
3022
+        "tslib": "^1.10.0"
3023
+      },
3024
+      "peerDependencies": {
3025
+        "@angular/core": "*",
3026
+        "rxjs": "*"
3027
+      }
3028
+    },
3029
+    "node_modules/@ionic/storage-angular/node_modules/tslib": {
3030
+      "version": "1.14.1",
3031
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
3032
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
3033
+    },
3007 3034
     "node_modules/@ionic/utils-array": {
3008 3035
       "version": "2.1.5",
3009 3036
       "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz",
@@ -9086,8 +9113,7 @@
9086 9113
     "node_modules/immediate": {
9087 9114
       "version": "3.0.6",
9088 9115
       "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
9089
-      "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
9090
-      "dev": true
9116
+      "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
9091 9117
     },
9092 9118
     "node_modules/immutable": {
9093 9119
       "version": "4.1.0",
@@ -10833,6 +10859,22 @@
10833 10859
         "node": ">= 12.13.0"
10834 10860
       }
10835 10861
     },
10862
+    "node_modules/localforage": {
10863
+      "version": "1.10.0",
10864
+      "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
10865
+      "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
10866
+      "dependencies": {
10867
+        "lie": "3.1.1"
10868
+      }
10869
+    },
10870
+    "node_modules/localforage/node_modules/lie": {
10871
+      "version": "3.1.1",
10872
+      "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
10873
+      "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
10874
+      "dependencies": {
10875
+        "immediate": "~3.0.5"
10876
+      }
10877
+    },
10836 10878
     "node_modules/locate-path": {
10837 10879
       "version": "5.0.0",
10838 10880
       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -18876,6 +18918,30 @@
18876 18918
         "tslib": "^2.1.0"
18877 18919
       }
18878 18920
     },
18921
+    "@ionic/storage": {
18922
+      "version": "3.0.6",
18923
+      "resolved": "https://registry.npmjs.org/@ionic/storage/-/storage-3.0.6.tgz",
18924
+      "integrity": "sha512-sw+zSJINIpbQCGZR9mEtb9N0WmZLuhcMVqOZJBqLuDACAMdXqG39zmp5nSVqhGI1/9X3nd0K5gVn6icyVfUnUg==",
18925
+      "requires": {
18926
+        "localforage": "^1.9.0"
18927
+      }
18928
+    },
18929
+    "@ionic/storage-angular": {
18930
+      "version": "3.0.6",
18931
+      "resolved": "https://registry.npmjs.org/@ionic/storage-angular/-/storage-angular-3.0.6.tgz",
18932
+      "integrity": "sha512-ZXlIFWGU27aCxVFgZb0KFJFtWwnn6+HK6v0rMGzjN8f7oV2ewXaQ2dl1gTw/A8YoozTVPOFxwfFHCjhWLFR1Fw==",
18933
+      "requires": {
18934
+        "@ionic/storage": "^3.0.4",
18935
+        "tslib": "^1.10.0"
18936
+      },
18937
+      "dependencies": {
18938
+        "tslib": {
18939
+          "version": "1.14.1",
18940
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
18941
+          "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
18942
+        }
18943
+      }
18944
+    },
18879 18945
     "@ionic/utils-array": {
18880 18946
       "version": "2.1.5",
18881 18947
       "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz",
@@ -23475,8 +23541,7 @@
23475 23541
     "immediate": {
23476 23542
       "version": "3.0.6",
23477 23543
       "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
23478
-      "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
23479
-      "dev": true
23544
+      "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
23480 23545
     },
23481 23546
     "immutable": {
23482 23547
       "version": "4.1.0",
@@ -24805,6 +24870,24 @@
24805 24870
       "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==",
24806 24871
       "dev": true
24807 24872
     },
24873
+    "localforage": {
24874
+      "version": "1.10.0",
24875
+      "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
24876
+      "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
24877
+      "requires": {
24878
+        "lie": "3.1.1"
24879
+      },
24880
+      "dependencies": {
24881
+        "lie": {
24882
+          "version": "3.1.1",
24883
+          "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
24884
+          "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
24885
+          "requires": {
24886
+            "immediate": "~3.0.5"
24887
+          }
24888
+        }
24889
+      }
24890
+    },
24808 24891
     "locate-path": {
24809 24892
       "version": "5.0.0",
24810 24893
       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",

+ 1 - 0
package.json

@@ -30,6 +30,7 @@
30 30
     "@fortawesome/free-regular-svg-icons": "^6.2.0",
31 31
     "@fortawesome/free-solid-svg-icons": "^6.2.0",
32 32
     "@ionic/angular": "^6.1.9",
33
+    "@ionic/storage-angular": "^3.0.6",
33 34
     "ionicons": "^6.0.3",
34 35
     "rxjs": "~6.6.0",
35 36
     "swiper": "^8.4.4",

+ 1 - 1
src/app/navtabs/navtabs-routing.module.ts

@@ -17,7 +17,7 @@ const routes: Routes = [
17 17
         loadChildren: () => import('../news/news.module').then( m => m.NewsPageModule)
18 18
       },   
19 19
       {
20
-        path: 'news-detail',
20
+        path: 'news-detail/:id',
21 21
         loadChildren: () => import('../news-detail/news-detail.module').then( m => m.NewsDetailPageModule)
22 22
       },
23 23
       {

+ 13 - 5
src/app/news-detail/news-detail.page.html

@@ -1,9 +1,17 @@
1 1
 <ion-header>
2
-  <ion-toolbar>
3
-    <ion-title>news-detail</ion-title>
2
+  <ion-toolbar class="toolbar-bg-color">
3
+    <ion-buttons slot="end">
4
+      <ion-menu-button></ion-menu-button>
5
+    </ion-buttons>
6
+    <img src="../../../assets/icon/logo-fm99.png" class="head-img">
4 7
   </ion-toolbar>
5 8
 </ion-header>
6 9
 
7
-<ion-content>
8
-<div style="background-color:#fff; padding: auto;"><p style="color:#000;">News Deatil</p></div>
9
-</ion-content>
10
+<ion-content>  
11
+  <img src="../../../assets/img-static/banner-320x50.jpeg" alt="">
12
+  <h1 style="color:#fff;">++{{ post?.title.rendered }}</h1>
13
+  <div *ngIf="post">
14
+    <img [src]="post.media_url" [style.width]="'100%'">
15
+    <div [innerHTML]="post.content.rendered" padding></div>
16
+  </div>
17
+</ion-content>

+ 27 - 2
src/app/news-detail/news-detail.page.ts

@@ -1,4 +1,7 @@
1
-import { Component, OnInit } from '@angular/core';
1
+import { Component, OnInit, Input } from '@angular/core';
2
+import { ActivatedRoute, Router } from '@angular/router';
3
+import { WpdataService } from "../services/wpdata.service";
4
+import { ModalController } from '@ionic/angular';
2 5
 
3 6
 @Component({
4 7
   selector: 'app-news-detail',
@@ -7,7 +10,29 @@ import { Component, OnInit } from '@angular/core';
7 10
 })
8 11
 export class NewsDetailPage implements OnInit {
9 12
 
10
-  constructor() { }
13
+  newsdetaildata: any;
14
+  data: any;
15
+
16
+  constructor(private wpdataService: WpdataService, private route: ActivatedRoute, private router: Router, public modalController: ModalController) { }
17
+  @Input() id: string;
18
+  showDiss = false;
19
+
20
+  ionViewWillEnter() {
21
+    if (this.id != undefined) {
22
+      this.showDiss = true;
23
+    }
24
+    console.log("showDiss ", this.showDiss);
25
+    let id = this.route.snapshot.paramMap.get('id') || this.id;
26
+    console.log("fetching ...");
27
+    console.log(id);
28
+    // this.wpdataService.getNewsDetail(id).subscribe((data) => {
29
+    // console.log();
30
+    this.wpdataService.getNewsDetail(id).subscribe(res => {
31
+      this.data = res;
32
+      console.log(this.data);
33
+    });
34
+  }
35
+
11 36
 
12 37
   ngOnInit() {
13 38
   }

+ 22 - 3
src/app/news/news.page.html

@@ -20,7 +20,8 @@
20 20
       <ion-col size="5">
21 21
         <img src="../../assets/img-static/SEI129887404-c4a9.jpg">
22 22
       </ion-col>
23
-      <ion-col class="ion-align-self-center"><a [routerLink]="['../news-detail/']">“น้องเทนนิส” หวังคว้าแชมป์ในศึกชิงแชมป์โลก ต้นเดือนหน้า</a></ion-col>
23
+      <ion-col class="ion-align-self-center"><a [routerLink]="['../news-detail/']">“น้องเทนนิส”
24
+          หวังคว้าแชมป์ในศึกชิงแชมป์โลก ต้นเดือนหน้า</a></ion-col>
24 25
     </ion-row>
25 26
     <ion-row>
26 27
       <ion-col size="5">
@@ -63,9 +64,27 @@
63 64
         <img src="../../assets/img-static/SEI129887404-c4a9.jpg">
64 65
       </ion-col>
65 66
       <ion-col class="ion-align-self-center">บีจี แยกทางกับ “มาโกโตะ เทกุระโมริ” หลังผลงานไม่เป็นตามเป้า</ion-col>
66
-    </ion-row> 
67
+    </ion-row>
68
+  </ion-grid>
69
+  xxxxx
70
+  <ion-grid>
71
+    <ion-card *ngFor="let news of newsdata">
72
+      <img src="{{news.better_featured_image.source_url}}" />
73
+      <ion-card-header>
74
+        <!-- <ion-card-subtitle>Destination</ion-card-subtitle> -->
75
+        <!-- <ion-card-title class="title-txt"><a [routerLink]="['/tabs/news-single']">{{news.title.rendered}}</a></ion-card-title> -->
76
+        <a [routerLink]="['../news-detail' , news.id]">
77
+          <ion-card-title class="title-txt" [innerHTML]="news.title.rendered"></ion-card-title>
78
+        </a>
79
+      </ion-card-header>
80
+      <ion-card-content text-justify [innerHTML]="news.excerpt.rendered" class="content-txt"></ion-card-content>
81
+      <ion-item>
82
+        <ion-icon name="time-outline"></ion-icon>
83
+        <ion-label class="txt-date pl-5">{{news.date | date }}</ion-label>
84
+      </ion-item>
85
+    </ion-card>    
67 86
   </ion-grid>
68 87
   <ion-grid>
69 88
     <img src="../../../assets/img-static/banner-320x100.jpeg" alt="">
70
-  </ion-grid>  
89
+  </ion-grid>
71 90
 </ion-content>

+ 16 - 8
src/app/news/news.page.ts

@@ -10,19 +10,27 @@ import { map } from 'rxjs/operators';
10 10
 })
11 11
 export class NewsPage implements OnInit {
12 12
 
13
-  newsdata: any;
13
+  // newsdata: any;
14 14
   // data: Observable;
15
+  newsdata: any = [];
15 16
 
16 17
   constructor(private wpgetdataService: WpdataService) { }
17 18
 
18 19
   ngOnInit() {
19
-    this.wpgetdataService.getAllNews().subscribe(data => {
20
-      // this.jsonService.getSummaryData().subscribe((data) => {      
21
-      // this.newsdata = data;
22
-      // console.log('load Static Data');
23
-      console.log("get News:");
24
-      console.log(data);
25
-    });
20
+
21
+  }
22
+
23
+
24
+  ionViewWillEnter() {
25
+    // this.wpgetdataService.getAllNews().subscribe((data => {
26
+    //   console.log("get News:");
27
+    //   console.log(data);
28
+    //   this.newsdata = JSON.parse(data.data);
29
+    this.wpgetdataService.getAllNews().subscribe((data) => {
30
+      this.newsdata = data;
31
+      console.log('load Lineup Data');
32
+      console.log(this.newsdata);
33
+      });
26 34
   }
27 35
 
28 36
 }

+ 14 - 2
src/app/services/wpdata.service.ts

@@ -2,17 +2,29 @@ import { Injectable } from '@angular/core';
2 2
 import { Observable } from 'rxjs';
3 3
 import { map } from 'rxjs/operators';
4 4
 import { HttpClient, HttpHeaders } from '@angular/common/http';
5
+import { Storage } from '@ionic/storage-angular';
5 6
 
6 7
 @Injectable({
7 8
   providedIn: 'root'
8 9
 })
9 10
 export class WpdataService {
10 11
 
11
-  constructor(private http: HttpClient) { }
12
+  constructor(private http:HttpClient) { }
12 13
 
14
+  // getAllNews() {
15
+  //   return this.http.get(
16
+  //     "../assets/api/news-api.json"      
17
+  //   );
18
+  // }
13 19
   getAllNews() {
14 20
     return this.http.get(
15
-      "../assets/api/news-api.json"      
21
+      "https://dev-web-fm99.mcot.net/wp-json/wp/v2/news?_embed"
16 22
     );
17 23
   }
24
+
25
+  getNewsDetail(id) {
26
+    let url = 'https://dev-web-fm99.mcot.net/'
27
+    const route = url + 'wp-json/wp/v2/' + 'news/' + id + '?_embed';
28
+    return this.http.get(route);
29
+  }
18 30
 }