diff --git a/src/app/components/decks/decks.component.css b/src/app/components/decks/decks.component.css
index 77671fe..cd0647b 100644
--- a/src/app/components/decks/decks.component.css
+++ b/src/app/components/decks/decks.component.css
@@ -42,6 +42,23 @@
border: solid var(--amarillo);
cursor: pointer;
}
+
+.checked{
+ color: var(--amarillo);
+}
+
+.show{
+ color: var(--amarillo);
+}
+
+mat-icon{
+ cursor: pointer;
+ color: #b3b3b3d3;
+}
+
+.icon{
+ color: #b3b3b377;
+}
@media screen and (max-width: 1025px){
.datos{
font-size: 14pt;
diff --git a/src/app/components/decks/decks.component.html b/src/app/components/decks/decks.component.html
index a19ba2b..7dd6980 100644
--- a/src/app/components/decks/decks.component.html
+++ b/src/app/components/decks/decks.component.html
@@ -5,12 +5,24 @@
Explora
-
-
+
+ index || mazo.previousScore.score > index}">
+ star
+
+
+
+
+
+ star
+
+
{{ mazo.mediaScore}}
-
-
diff --git a/src/app/components/decks/decks.component.ts b/src/app/components/decks/decks.component.ts
index becf818..7485821 100644
--- a/src/app/components/decks/decks.component.ts
+++ b/src/app/components/decks/decks.component.ts
@@ -1,30 +1,86 @@
-import { Component, EventEmitter, Input, Output } from '@angular/core';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Deck } from 'src/app/models/deck';
+import { User } from 'src/app/models/user';
+import { DeckService } from 'src/app/shared/deck.service';
+import { UsersService } from 'src/app/shared/users.service';
@Component({
selector: 'app-decks',
templateUrl: './decks.component.html',
styleUrls: ['./decks.component.css']
})
-export class DecksComponent {
-public explorar: boolean = false
-public score: number;
-public selectedStar: number
+export class DecksComponent implements OnInit {
@Input () typeRating: number;
@Input () mazo: Deck
+@Input() maxrating: number = 5;
@Output() eventoExplorar = new EventEmitter
();
@Output() eventoPuntuacion = new EventEmitter<{id_deck:number, score:number}>()
-public explora(id_deck:number){
- this.explorar = true
- this.eventoExplorar.emit(id_deck)
+public maxRatingArr:number[] = [1,2,3,4,5]
+public explorar: boolean = false
+public score: number;
+public currentUser: User;
+constructor(private deckService:DeckService, private userService:UsersService ){
+
}
-Handle(id_deck:number, score:number){
- this.eventoPuntuacion.emit({id_deck, score})
+async ngOnInit(): Promise {
+ await this.loadCurrentUser();
+ this.deckService.getScore(this.currentUser.id_user, this.mazo.id_deck).subscribe((res:any) => {
+ if (res.data[0]) {
+ console.log(res.data[0].date);
+ this.mazo.previousScore = { date: res.data[0].date, id_user: res.data[0].id_user, score: res.data[0].score };
+ console.log(this.mazo.previousScore);
+ } else {
+ this.mazo.previousScore = { date: '', id_user: 0, score: 0 };
+ }
+ });
- this.selectedStar = score;
- console.log(this.selectedStar);
-
+}
+
+private async loadCurrentUser(): Promise {
+ return new Promise((resolve) => {
+ this.userService.currentUserChanges().subscribe(user => {
+ this.currentUser = user;
+ resolve();
+ });
+ });
+}
+
+HandleMouseEnter(index:number){
+ this.mazo.selectedStar=index+1
+}
+
+HandleMouseLeave(){
+ if(this.mazo.previousScore.score !== 0){
+ this.mazo.selectedStar = this.mazo.previousScore.score
+ }
+ else {
+ this.mazo.selectedStar = 0
+ }
+}
+
+rating(index:number, id_deck){
+ if(this.mazo.previousScore.score == 0 && this.mazo.id_user != this.currentUser.id_user){
+ this.mazo.selectedStar= index + 1;
+ this.mazo.previousScore.score= this.mazo.selectedStar
+ }
+ this.score = this.mazo.selectedStar
+ this.eventoPuntuacion.emit({id_deck, score:this.score});
+}
+
+roundMediaScore(){
+ let resultado;
+ if (this.mazo.mediaScore !== undefined) {
+ resultado = Math.round(this.mazo.mediaScore);
+ } else {
+ resultado = 0
+ }
+ return resultado
+}
+
+public explora(id_deck:number){
+ this.explorar = true
+ this.eventoExplorar.emit(id_deck)
}
}
diff --git a/src/app/components/rating/rating.component.ts b/src/app/components/rating/rating.component.ts
index bd12a0b..9d8befd 100644
--- a/src/app/components/rating/rating.component.ts
+++ b/src/app/components/rating/rating.component.ts
@@ -11,6 +11,7 @@ export class RatingComponent{
@Input() mazo: Deck
@Input() mediaScore: number;
@Input () typeRating: number;
+ @Input () i: number
@Output() onRating = new EventEmitter()
public selectedStar: number
public showStar: number = 0
@@ -24,9 +25,9 @@ export class RatingComponent{
this.selectedStar = index +1
}
HandleMouseLeave(){
- // if(this.previoSelection != 0){
- // this.selectedStar = this.previoSelection
- // }else
+ if(this.previoSelection != 0){
+ this.selectedStar = this.previoSelection
+ }else
this.selectedStar = 0
}
@@ -34,8 +35,7 @@ export class RatingComponent{
this.selectedStar = index + 1;
this.previoSelection = this.selectedStar
- console.log(this.mazo);
-
+ console.log(this.mazo)
console.log(this.previoSelection);
this.onRating.emit(this.selectedStar);
diff --git a/src/app/models/deck.ts b/src/app/models/deck.ts
index 5754ca8..577cd7c 100644
--- a/src/app/models/deck.ts
+++ b/src/app/models/deck.ts
@@ -10,7 +10,8 @@ export class Deck {
public cards?: Card[],
public URLphoto?:string,
public id_user?: number,
- public previousScore?: { date: string, userVotes: number, score:number }[],
+ public previousScore?: { date: string, id_user: number, score:number },
+ public selectedStar?: number,
public typeRating?:number
){}
}
diff --git a/src/app/pages/explora/explora.component.html b/src/app/pages/explora/explora.component.html
index b609982..b4fb501 100644
--- a/src/app/pages/explora/explora.component.html
+++ b/src/app/pages/explora/explora.component.html
@@ -43,7 +43,7 @@ Vota y descubre los mejores mazos
-
+
diff --git a/src/app/pages/explora/explora.component.ts b/src/app/pages/explora/explora.component.ts
index 1f5cc1c..8a10a80 100644
--- a/src/app/pages/explora/explora.component.ts
+++ b/src/app/pages/explora/explora.component.ts
@@ -136,6 +136,7 @@ export class ExploraComponent implements OnInit {
}
public score(event:{id_deck:number, score:number}){
+ this.loadCurrentUser();
this.mazos.find ((deck) => {
if(deck.id_deck == event.id_deck){
this.deckService.putMediaScore(this.currentUser.id_user,event.id_deck, event.score).subscribe((res:any) => {
diff --git a/src/app/shared/deck.service.ts b/src/app/shared/deck.service.ts
index 84d7f2e..b11dd04 100644
--- a/src/app/shared/deck.service.ts
+++ b/src/app/shared/deck.service.ts
@@ -59,6 +59,7 @@ export class DeckService {
public getScore(id_user:number, id_deck:number){
return this.http.get(`${this.urlExplora}/score?id_user=${id_user}&id_deck=${id_deck}`)
+
}
public getDeckById(id_deck:number,filter:string){