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
-
- +
+ + 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){