| @@ -5,7 +5,7 @@ | |||||
| </section> | </section> | ||||
| </section> | </section> | ||||
| <input type="text" *ngIf="token" [(ngModel)]="token.token"> | |||||
| <!-- <input type="text" *ngIf="token" [(ngModel)]="token.token"> --> | |||||
| <section class="social-login" [ngClass]="{'active' : showLogout && user }"> | <section class="social-login" [ngClass]="{'active' : showLogout && user }"> | ||||
| @@ -86,7 +86,9 @@ export class FacebookLoginComponent implements OnInit { | |||||
| localStorage.setItem('FBToken', JSON.stringify(this.token)); | localStorage.setItem('FBToken', JSON.stringify(this.token)); | ||||
| this.userService.getUserProfile().then((data) => alert(JSON.stringify(data)), err => alert(JSON.stringify(err))); | |||||
| this.userService.getUserProfile().then((data) => { | |||||
| localStorage.setItem('ServerUserData', JSON.stringify(data)); | |||||
| }, err => alert(JSON.stringify(err))); | |||||
| } else { | } else { | ||||
| // Not logged in. | // Not logged in. | ||||
| @@ -112,6 +114,7 @@ export class FacebookLoginComponent implements OnInit { | |||||
| this.token = null; | this.token = null; | ||||
| localStorage.removeItem('FBUser'); | localStorage.removeItem('FBUser'); | ||||
| localStorage.removeItem('FBToken'); | localStorage.removeItem('FBToken'); | ||||
| localStorage.removeItem('ServerUserData'); | |||||
| App.exitApp(); | App.exitApp(); | ||||
| } | } | ||||
| @@ -40,6 +40,16 @@ | |||||
| <button (click)="share(news.short_title, image_url + news.image_path + news.image_file_name)"> | <button (click)="share(news.short_title, image_url + news.image_path + news.image_file_name)"> | ||||
| <ion-icon name="share-social-outline"></ion-icon> | <ion-icon name="share-social-outline"></ion-icon> | ||||
| </button> | </button> | ||||
| <button (click)="toggleBookmark(news.title_alias)" [ngClass]="{'marked' : isPostBookmarked(news.title_alias)}"> | |||||
| <ion-icon name="bookmark-outline"></ion-icon> | |||||
| <ion-icon name="bookmark"></ion-icon> | |||||
| </button> | |||||
| <button (click)="toggleLike(news.title_alias)" [ngClass]="{'liked' : isArticleLiked(news.title_alias)}"> | |||||
| <ion-icon name="heart-outline"></ion-icon> | |||||
| <ion-icon name="heart"></ion-icon> | |||||
| </button> | |||||
| </section> | </section> | ||||
| <button class="read-more" (click)="showNewsDetails(news.title_alias);"> | <button class="read-more" (click)="showNewsDetails(news.title_alias);"> | ||||
| @@ -74,6 +84,16 @@ | |||||
| <button (click)="share(news.short_title ? news.short_title : news.asset_title, image_url + news.image_path + news.image_file_name)"> | <button (click)="share(news.short_title ? news.short_title : news.asset_title, image_url + news.image_path + news.image_file_name)"> | ||||
| <ion-icon name="share-social-outline"></ion-icon> | <ion-icon name="share-social-outline"></ion-icon> | ||||
| </button> | </button> | ||||
| <button (click)="toggleBookmark(news.title_alias)" [ngClass]="{'marked' : isPostBookmarked(news.title_alias)}"> | |||||
| <ion-icon name="bookmark-outline"></ion-icon> | |||||
| <ion-icon name="bookmark"></ion-icon> | |||||
| </button> | |||||
| <button (click)="toggleLike(news.title_alias)" [ngClass]="{'liked' : isArticleLiked(news.title_alias)}"> | |||||
| <ion-icon name="heart-outline"></ion-icon> | |||||
| <ion-icon name="heart"></ion-icon> | |||||
| </button> | |||||
| </section> | </section> | ||||
| <button class="read-more" (click)="showNewsDetails(news.title_alias);"> | <button class="read-more" (click)="showNewsDetails(news.title_alias);"> | ||||
| @@ -105,7 +125,17 @@ | |||||
| <button (click)="share(news.short_title ? news.short_title : news.asset_title, image_url + news.image_path + news.image_file_name)"> | <button (click)="share(news.short_title ? news.short_title : news.asset_title, image_url + news.image_path + news.image_file_name)"> | ||||
| <ion-icon name="share-social-outline"></ion-icon> | <ion-icon name="share-social-outline"></ion-icon> | ||||
| </button> | </button> | ||||
| </section> | |||||
| <button (click)="toggleBookmark(news.title_alias)" [ngClass]="{'marked' : isPostBookmarked(news.title_alias)}"> | |||||
| <ion-icon name="bookmark-outline"></ion-icon> | |||||
| <ion-icon name="bookmark"></ion-icon> | |||||
| </button> | |||||
| <button (click)="toggleLike(news.title_alias)" [ngClass]="{'liked' : isArticleLiked(news.title_alias)}"> | |||||
| <ion-icon name="heart-outline"></ion-icon> | |||||
| <ion-icon name="heart"></ion-icon> | |||||
| </button> | |||||
| </section> | |||||
| <button class="read-more" (click)="showNewsDetails(news.title_alias);"> | <button class="read-more" (click)="showNewsDetails(news.title_alias);"> | ||||
| <span> More </span> | <span> More </span> | ||||
| @@ -184,6 +184,60 @@ ion-slides { | |||||
| color: $green; | color: $green; | ||||
| font-size: 1.2rem; | font-size: 1.2rem; | ||||
| } | } | ||||
| &:nth-child(2) { | |||||
| background-color: transparent; | |||||
| border: 1px solid $blue-grey; | |||||
| ion-icon { | |||||
| color: $blue-grey; | |||||
| &:nth-child(2) { | |||||
| display: none; | |||||
| color: $brand-blue; | |||||
| } | |||||
| } | |||||
| &.marked { | |||||
| border-color: $brand-blue; | |||||
| ion-icon { | |||||
| &:nth-child(1) { | |||||
| display: none; | |||||
| } | |||||
| &:nth-child(2) { | |||||
| display: block; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| &:nth-child(3) { | |||||
| background-color: transparent; | |||||
| border: 1px solid $blue-grey; | |||||
| ion-icon { | |||||
| color: $blue-grey; | |||||
| &:nth-child(2) { | |||||
| display: none; | |||||
| color: $brand-red; | |||||
| } | |||||
| } | |||||
| &.liked { | |||||
| border-color: $brand-red; | |||||
| ion-icon { | |||||
| &:nth-child(1) { | |||||
| display: none; | |||||
| } | |||||
| &:nth-child(2) { | |||||
| display: block; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -37,6 +37,9 @@ export class HomePage implements OnInit { | |||||
| image_url = IMAGE_BASE_URL; | image_url = IMAGE_BASE_URL; | ||||
| myuptime: string; | myuptime: string; | ||||
| liked_articles: Array<string> = []; | |||||
| bookmarked_articles: Array<string> = []; | |||||
| constructor( | constructor( | ||||
| private router: Router, | private router: Router, | ||||
| private newsService: NewsService, | private newsService: NewsService, | ||||
| @@ -55,6 +58,34 @@ export class HomePage implements OnInit { | |||||
| this.socialSharing.share(message, '', image ? image : '', url? url : ''); | this.socialSharing.share(message, '', image ? image : '', url? url : ''); | ||||
| } | } | ||||
| toggleLike(alias: string) { | |||||
| if(this.liked_articles.includes(alias)) { | |||||
| this.liked_articles.splice(this.liked_articles.indexOf(alias), 1); | |||||
| this.userService.dislikePost(alias); | |||||
| } else { | |||||
| this.liked_articles.push(alias); | |||||
| this.userService.likePost(alias); | |||||
| } | |||||
| } | |||||
| toggleBookmark(alias: string) { | |||||
| if(this.bookmarked_articles.includes(alias)) { | |||||
| this.bookmarked_articles.splice(this.bookmarked_articles.indexOf(alias), 1); | |||||
| this.userService.UnBookmarkPost(alias); | |||||
| } else { | |||||
| this.bookmarked_articles.push(alias); | |||||
| this.userService.BookmarkPost(alias); | |||||
| } | |||||
| } | |||||
| isArticleLiked(alias: string) { | |||||
| return this.liked_articles.includes(alias); | |||||
| } | |||||
| isPostBookmarked(alias: string) { | |||||
| return this.bookmarked_articles.includes(alias); | |||||
| } | |||||
| ngOnInit() { | ngOnInit() { | ||||
| this.newsService.getArticles().then((data: any) => { | this.newsService.getArticles().then((data: any) => { | ||||
| // alert(JSON.stringify()); | // alert(JSON.stringify()); | ||||
| @@ -94,6 +125,14 @@ export class HomePage implements OnInit { | |||||
| console.log(err); | console.log(err); | ||||
| this.toastService.presentToastWithOptions("Failed to get Gallery data", "danger"); | this.toastService.presentToastWithOptions("Failed to get Gallery data", "danger"); | ||||
| }); | }); | ||||
| this.userService.getUserProfile().then((data: any) => { | |||||
| this.liked_articles = data.liked_articles; | |||||
| this.bookmarked_articles = data.bookmarked_articles; | |||||
| }, () => { | |||||
| this.liked_articles = []; | |||||
| this.bookmarked_articles = []; | |||||
| }); | |||||
| } | } | ||||
| ionViewDidEnter() { | ionViewDidEnter() { | ||||
| @@ -26,6 +26,42 @@ export class UserService { | |||||
| return this.http.get(this.BASE_URL + '/like-article/' + postId, httpOptions).toPromise(); | return this.http.get(this.BASE_URL + '/like-article/' + postId, httpOptions).toPromise(); | ||||
| } | } | ||||
| dislikePost(postId: string) { | |||||
| const httpOptions = { | |||||
| headers: new HttpHeaders({ | |||||
| 'Access-Control-Allow-Origin': '*', | |||||
| 'Content-Type': 'application/json', | |||||
| 'Authorization': 'Bearer ' + JSON.parse(localStorage.getItem('FBToken')).token | |||||
| }) | |||||
| }; | |||||
| return this.http.get(this.BASE_URL + '/unlike-article/' + postId, httpOptions).toPromise(); | |||||
| } | |||||
| BookmarkPost(postId: string) { | |||||
| const httpOptions = { | |||||
| headers: new HttpHeaders({ | |||||
| 'Access-Control-Allow-Origin': '*', | |||||
| 'Content-Type': 'application/json', | |||||
| 'Authorization': 'Bearer ' + JSON.parse(localStorage.getItem('FBToken')).token | |||||
| }) | |||||
| }; | |||||
| return this.http.get(this.BASE_URL + '/bookmark-article/' + postId, httpOptions).toPromise(); | |||||
| } | |||||
| UnBookmarkPost(postId: string) { | |||||
| const httpOptions = { | |||||
| headers: new HttpHeaders({ | |||||
| 'Access-Control-Allow-Origin': '*', | |||||
| 'Content-Type': 'application/json', | |||||
| 'Authorization': 'Bearer ' + JSON.parse(localStorage.getItem('FBToken')).token | |||||
| }) | |||||
| }; | |||||
| return this.http.get(this.BASE_URL + '/unbookmark-article/' + postId, httpOptions).toPromise(); | |||||
| } | |||||
| getUserProfile() { | getUserProfile() { | ||||
| const httpOptions = { | const httpOptions = { | ||||
| headers: new HttpHeaders({ | headers: new HttpHeaders({ | ||||