@@ -5,7 +5,7 @@ | |||
</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 }"> | |||
@@ -86,7 +86,9 @@ export class FacebookLoginComponent implements OnInit { | |||
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 { | |||
// Not logged in. | |||
@@ -112,6 +114,7 @@ export class FacebookLoginComponent implements OnInit { | |||
this.token = null; | |||
localStorage.removeItem('FBUser'); | |||
localStorage.removeItem('FBToken'); | |||
localStorage.removeItem('ServerUserData'); | |||
App.exitApp(); | |||
} | |||
@@ -40,6 +40,16 @@ | |||
<button (click)="share(news.short_title, image_url + news.image_path + news.image_file_name)"> | |||
<ion-icon name="share-social-outline"></ion-icon> | |||
</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> | |||
<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)"> | |||
<ion-icon name="share-social-outline"></ion-icon> | |||
</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> | |||
<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)"> | |||
<ion-icon name="share-social-outline"></ion-icon> | |||
</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);"> | |||
<span> More </span> | |||
@@ -184,6 +184,60 @@ ion-slides { | |||
color: $green; | |||
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; | |||
myuptime: string; | |||
liked_articles: Array<string> = []; | |||
bookmarked_articles: Array<string> = []; | |||
constructor( | |||
private router: Router, | |||
private newsService: NewsService, | |||
@@ -55,6 +58,34 @@ export class HomePage implements OnInit { | |||
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() { | |||
this.newsService.getArticles().then((data: any) => { | |||
// alert(JSON.stringify()); | |||
@@ -94,6 +125,14 @@ export class HomePage implements OnInit { | |||
console.log(err); | |||
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() { | |||
@@ -26,6 +26,42 @@ export class UserService { | |||
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() { | |||
const httpOptions = { | |||
headers: new HttpHeaders({ | |||