Skip to content

Commit 45b8364

Browse files
committed
Merge branch 'JuanFase3' into mani
2 parents 4c02fd7 + 02db5a8 commit 45b8364

File tree

88 files changed

+256
-171
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+256
-171
lines changed

backend/gamelink/src/main/resources/application.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ spring.mustache.suffix=.html
1010

1111
spring.datasource.url=jdbc:postgresql://localhost:5432/gamelink
1212
spring.datasource.username=postgres
13-
spring.datasource.password=password
13+
spring.datasource.password=Juanluis-123
1414
spring.jpa.hibernate.ddl-auto=create-drop
1515

1616
logging.level.org.springframework.security=DEBUG

backend/gamelink/target/classes/application.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ spring.mustache.suffix=.html
1010

1111
spring.datasource.url=jdbc:postgresql://localhost:5432/gamelink
1212
spring.datasource.username=postgres
13-
spring.datasource.password=password
13+
spring.datasource.password=Juanluis-123
1414
spring.jpa.hibernate.ddl-auto=create-drop
1515

1616
logging.level.org.springframework.security=DEBUG

frontend/proxy.conf.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"/api/*": {
3-
"target": "https://127.0.0.1:8443/",
4-
"secure": false,
5-
"logLevel": "debug",
6-
"changeOrigin": true
7-
}
8-
}
2+
"/api/*": {
3+
"target": "https://127.0.0.1:8443/",
4+
"secure": false,
5+
"logLevel": "debug",
6+
"changeOrigin": true
7+
}
8+
}

frontend/src/app/app.routing.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@ import { VideogameDetailComponent } from './components/videogame/videogame-detai
33
import { VideogameCatalogComponent } from './components/videogame/videogame-catalog.component';
44

55
import { HomeComponent } from './components/home/home.component';
6+
import { NewsComponent } from './components/news/news.component';
7+
import { ShowNewsComponent } from './components/news/showNews.component';
8+
import { UserProfile } from './components/user/userProfile.component';
69

710
//aquí tenemos que completar todo lo que queremos que se vaya cargando en el router-outlet
811
//ojo, el template no debe llamar al servicio, hay que hacerlo a través del componente
912

1013
const appRoutes = [
1114
{ path: 'home', component: HomeComponent },
15+
{ path: 'news', component: NewsComponent },
16+
{ path: 'showNews/:id', component: ShowNewsComponent},
17+
{ path: 'userProfile', component: UserProfile},
1218
{ path: 'videogamecatalog', component: VideogameCatalogComponent },
1319
{ path: 'videogame/:id', component: VideogameDetailComponent },
1420
{ path: '', redirectTo: 'home', pathMatch: 'full' }

frontend/src/app/components/home/home.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ <h3>Leyendas Pokemon Arceus</h3>
5050
</div>
5151
</ng-template>
5252
</a>
53-
53+
5454
</div>
5555
</div>
5656
</div>
@@ -78,8 +78,8 @@ <h3>Leyendas Pokemon Arceus</h3>
7878
<section class="py-5">
7979
<div class="container px-5 my-5">
8080
<div id="moreImages" class="row gx-5 justify-content-center">
81-
<newsTemplate></newsTemplate>
81+
<newsTemplate class="col-lg-4 mb-5" *ngFor="let ng of news" [news]="ng"></newsTemplate>
8282
</div>
83-
83+
8484
</div>
8585
</section>
Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,31 @@
11
import { Component } from '@angular/core';
2+
import { Router, ActivatedRoute } from '@angular/router';
3+
import { News } from 'src/app/models/news.model';
4+
import { NewsService } from 'src/app/services/news.service';
25

36
@Component({
47
selector: 'home',
58
templateUrl: './home.component.html'
69
})
710

811

12+
13+
914
export class HomeComponent{
10-
images = ["assets/images/ lostark.jpg", "assets/images/archeAge.jpg", "assets/images/pokemonArceus.jpg"]
11-
}
15+
news!: News[];
16+
images = ["assets/images/ lostark.jpg", "assets/images/ archeAge.jpg", "assets/images/ pokemonArceus.jpg"]
17+
18+
19+
constructor( public newsService: NewsService, activatedRoute: ActivatedRoute){
20+
21+
const id = activatedRoute.snapshot.params['id'];
22+
this.newsService.getNews().subscribe(
23+
(news) => this.news = news as News[], //casting in ts, es mejor hacerlo en el servicio (as Observable<News>), pero al dar error, hacemos el cast en el component
24+
(error: any) => console.error(error)
25+
26+
27+
);
28+
29+
}
30+
31+
}

frontend/src/app/components/navBar/navBar.component.html

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@
88
<li class="nav-item dropdown">
99
<a class="nav-link dropdown-toggle" id="navbarDropdownBlog" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Videojuegos</a>
1010
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownBlog">
11-
<li><a class="dropdown-item" href="/videogame">Descubrir</a></li>
12-
<li><a class="dropdown-item" href="/videogameStatistics/0">Top Juegos</a></li>
11+
<li><a class="dropdown-item" [routerLink]="['/videogame']">Descubrir</a></li>
12+
<li><a class="dropdown-item" [routerLink]="['/videogameStatistics/0']">Top Juegos</a></li>
1313
</ul>
1414
</li>
15-
<li class="nav-item"><a class="nav-link" href="/news">Noticias</a></li>
16-
<li class="nav-item"><a class="nav-link" href="/about">About</a></li>
15+
<li class="nav-item"><a class="nav-link" [routerLink]="['/news']">Noticias</a></li>
16+
<li class="nav-item"><a class="nav-link" [routerLink]="['/about']">About</a></li>
17+
1718

1819

1920
<li *ngIf="! loginService.isLogged()" class="nav-item dropdown">
2021
<a class="nav-link dropdown-toggle" id="navbarDropdownBlog" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Sesión</a>
2122
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownBlog">
22-
<li><a class="dropdown-item" href="/login">Iniciar sesión</a></li>
23-
<li><a class="dropdown-item" href="/signin">Registrarse</a></li>
23+
<li><a class="dropdown-item" [routerLink]="['/login']">Iniciar sesión</a></li>
24+
<li><a class="dropdown-item" [routerLink]="['/signin']">Registrarse</a></li>
2425
</ul>
2526
</li>
2627

frontend/src/app/components/news/news.component.html

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ <h1 class="fw-bolder fs-5 mb-4">Noticias destacadas</h1>
1313
</div>
1414
</div>
1515
<div class="col-lg-6 col-xl-7">
16-
<div class="bg-featured-blog" style="background-image: url('Photos/lostark.jpg')">
16+
<div class="bg-featured-blog" style="background-image: url('./assets/images/lostark.jpg')">
1717
</div>
1818
</div>
1919
</div>
@@ -26,20 +26,25 @@ <h1 class="fw-bolder fs-5 mb-4">Noticias destacadas</h1>
2626
<section class="py-5">
2727
<div class="container px-5">
2828
<h2 class="fw-bolder fs-5 mb-4">Noticias que te pueden interesar.</h2>
29-
<div id="moreImages" class="row gx-5">
30-
<newsTemplate></newsTemplate>
29+
<div id="moreImages" class="row gx-5" *ngIf="ready">
30+
<newsTemplate class="col-lg-4 mb-5" *ngFor="let ng of news" [news]="ng"></newsTemplate>
3131
</div>
3232
<div class="text-end mb-5 mb-xl-0">
33-
<a class="text-decoration-none" href="#!">
34-
<!--will show next-->
35-
<!-- puts the variable created in execution ?page and associates it with next page which is getNumber + 1 (that is, we add 1)-->
36-
<!--in request of we put (page, 3) and page will be equal to 1 for what I just explained above, this is how it is done-->
37-
<a id="moreImagesButton" class="btn btn-secondary button">
38-
<i class="fa fa-eye"></i> Más contenido
39-
</a>
40-
<div id="loader"></div>
33+
<a class="text-decoration-none">
34+
<button class="btn btn-secondary button" (click)="nextpage()" >
35+
<i class="fa fa-eye"></i> Pagina siguiente
36+
</button>
37+
<div id="loader"></div>
4138
</a>
42-
</div>
39+
</div>
40+
<div *ngIf="page > 0" class="text-end mb-5 mb-xl-0">
41+
<a class="text-decoration-none">
42+
<button class="btn btn-secondary button" (click)="prevpage()" >
43+
<i class="fa fa-eye"></i> Pagina anterior
44+
</button>
45+
<div id="loader"></div>
46+
</a>
47+
</div>
4348

4449

4550
</div>
@@ -85,7 +90,7 @@ <h3>Nuevas noticias sobre The Witcher 4</h3>
8590

8691
<!-- The slideshow/carousel -->
8792

88-
<news *ngIf="imagesCarousel">
93+
<a *ngIf="imagesCarousel">
8994
<ng-template ngbSlide>
9095
<div class="picsum-img-wrapper">
9196
<img [src]="imagesCarousel[0]" alt="Random first slide">
@@ -113,7 +118,7 @@ <h3>Mario kart 9</h3>
113118
<p>Ya es una realidad, no te lo pierdas</p>
114119
</div>
115120
</ng-template>
116-
</news>
121+
</a>
117122

118123
</div>
119124
</div>

frontend/src/app/components/news/news.component.ts

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,64 @@ export class NewsComponent{
1313

1414
//25: int;
1515
//25: int;
16-
news!: News;
17-
imagesCarousel = ['diabloIV.jgp', 'overwatch2.jpg', 'marioKart9.jgp'].map((n) => `./backend/src/main/resources/static/Photos/${n}`); //esto no se si está bien
16+
page:number = 0;
17+
ready: boolean = false;
18+
news!: News[];
19+
imagesCarousel = ['assets/images/ diabloIV.jgp', 'assets/images/ overwatch2.jpg', 'assets/images/ marioKart9.jgp']
1820

1921
constructor(private router: Router, public newsService: NewsService, activatedRoute: ActivatedRoute){
2022

21-
const id = activatedRoute.snapshot.params['id'];
22-
this.newsService.getNew(id).subscribe(
23-
(news) => this.news = news as News, //casting in ts, es mejor hacerlo en el servicio (as Observable<News>), pero al dar error, hacemos el cast en el component
23+
24+
this.newsService.findNewsPage(this.page).subscribe(
25+
(news) => {var x = news['content'] ;this.news = x as News[];}, //casting in ts, es mejor hacerlo en el servicio (as Observable<News>), pero al dar error, hacemos el cast en el component
2426
(error: any) => console.error(error)
27+
);
2528

29+
}
2630

27-
);
31+
ngOnInit(){
32+
this.ready = true;
33+
}
34+
35+
nextpage(){
36+
this.changepage(1)
37+
this.newsService.findNewsPage(this.page).subscribe(
38+
(news) => {var x = news['content'] ;this.news = x as News[];},
39+
(error: any) => console.error(error)
40+
);
41+
}
2842

43+
prevpage(){
44+
this.changepage(-1)
45+
this.newsService.findNewsPage(this.page).subscribe(
46+
(news) => {var x = news['content'] ;this.news = x as News[];},
47+
(error: any) => console.error(error)
48+
);
2949
}
3050

31-
getNewsImage(){
51+
changepage(num:number){
52+
if (num == -1){
53+
this.page -= 1;
54+
}else{
55+
this.page += 1;
56+
}
57+
}
58+
59+
getNewsImage(news: News){
3260
if(this.news){ //We have to put this always. If exist any new...
33-
return this.news?.image+ '/api/news/' +this.news.id
61+
return news.image? '/api/news/' + news.id + '/image' : '/assets/images/not_foung.png';
3462
} else {
3563
return undefined;
3664
}
3765
}
3866

3967
//esto es una prueba
4068
nextPage(){
41-
if(this.news){
42-
return this.router.navigate(['/news/1'])
43-
} else {
44-
return undefined;
45-
}
69+
if(this.news){
70+
return this.router.navigate(['/news/1'])
71+
} else {
72+
return undefined;
73+
}
4674
}
4775

4876
}
Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
1-
<p *ngIf="news"></p> <!--llamamos a news de tipo News, cargamos el constructor-->
2-
<div class="col-lg-4 mb-5">
3-
<div class="card h-100 shadow border-0">
4-
<p *ngIf="getNewsImage()"></p> <!--la imagen-->
5-
<img class="card-img-top" src="/news/{{news?.id}}/image" alt="..." />
1+
<!--llamamos a news de tipo News, cargamos el constructor-->
62

7-
<p *ngIf="!getNewsImage()"></p> <!--no imagen-->
8-
<img class="card-img-top" src="/Photos/not_foung.png" alt="..." />
9-
10-
<div class="card-body p-4">
11-
<div class="badge bg-primary bg-gradient rounded-pill mb-2">{{news?.badge}}</div>
12-
<a class="text-decoration-none link-dark stretched-link" href="/showNews/{{news?.id}}"><h5 class="card-title mb-3" style="color: black;">{{news?.title}}</h5></a>
13-
<p class="card-text mb-0">{{news?.description}}</p>
14-
</div>
15-
<div class="card-footer p-4 pt-0 bg-transparent border-top-0">
16-
<div class="d-flex align-items-end justify-content-between">
17-
<div class="d-flex align-items-center">
18-
<div class="small">
19-
<div class="text-muted">{{news?.date}} &middot; <p>{{news?.readTime}}</p></div>
20-
</div>
21-
</div>
3+
<div class="card h-100 shadow border-0">
4+
<!--la imagen-->
5+
<img class="card-img-top" [src]="newsImage()" alt="..." />
6+
<div class="card-body p-4">
7+
<div class="badge bg-primary bg-gradient rounded-pill mb-2">{{news?.badge}}</div>
8+
<a class="text-decoration-none link-dark stretched-link" [routerLink]="" (click)="goToNew()">
9+
<h5 class="card-title mb-3" style="color: black;">{{news?.title}}</h5>
10+
</a>
11+
<p class="card-text mb-0">{{news?.description}}</p>
12+
</div>
13+
<div class="card-footer p-4 pt-0 bg-transparent border-top-0">
14+
<div class="d-flex align-items-end justify-content-between">
15+
<div class="d-flex align-items-center">
16+
<div class="small">
17+
<div class="text-muted">{{news?.date}} &middot; <p>{{news?.readTime}}</p>
2218
</div>
19+
</div>
2320
</div>
21+
</div>
2422
</div>
25-
</div>
23+
</div>
24+

0 commit comments

Comments
 (0)