Skip to content

Commit 4c63436

Browse files
committed
createNew -> no funka
1 parent c028d72 commit 4c63436

21 files changed

+245
-256
lines changed

frontend/package-lock.json

Lines changed: 60 additions & 107 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src/app/app.module.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,21 @@ import { NewsTemplateComponent } from './components/news/newsTemplate.component'
1616
import { ShowNewsComponent } from './components/news/showNews.component';
1717
import { HomeComponent } from './components/home/home.component';
1818
import { UserProfile } from './components/user/userProfile.component';
19-
<<<<<<< HEAD
20-
import { AdminComponent } from './components/admin/admin.component';
21-
import { CreateNewComponent } from './components/news/createNew.component';
22-
=======
2319
import { VideogameCardComponent } from './components/videogame/videogame-card.component';
2420
import { VideogameCatalogComponent } from './components/videogame/videogame-catalog.component';
2521
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
2622
import { CarouselComponent } from './components/carousel/carousel.component';
2723
import { AboutComponent } from './components/about/about.component';
28-
>>>>>>> bad7e16839e1088a5b5284b7de9aa0c4cae96619
29-
30-
31-
24+
import { AdminComponent } from './components/admin/admin.component';
25+
import { CreateNewComponent } from './components/admin/createNew.component';
26+
import { CreateNewFormComponent } from './components/admin/createNewForm.component'
3227

3328
@NgModule({
34-
<<<<<<< HEAD
35-
declarations: [AppComponent, LoginComponent, HeadComponent, NewsComponent, NavBarComponent, FooterComponent, NewsTemplateComponent, ShowNewsComponent, HomeComponent, UserProfile, AdminComponent, CreateNewComponent],
36-
imports: [BrowserModule, FormsModule, HttpClientModule, routing, FormsModule],
37-
=======
38-
declarations: [UserProfile,AppComponent, LoginComponent, HeadComponent, NewsComponent, NavBarComponent, FooterComponent, NewsTemplateComponent,VideogameCatalogComponent, ShowNewsComponent, HomeComponent, UserProfile,VideogameCardComponent, CarouselComponent, AboutComponent],
29+
declarations: [UserProfile,AppComponent, LoginComponent, HeadComponent, NewsComponent, NavBarComponent,
30+
FooterComponent, NewsTemplateComponent,VideogameCatalogComponent, ShowNewsComponent,
31+
HomeComponent, UserProfile,VideogameCardComponent, CarouselComponent, AboutComponent,
32+
AdminComponent, CreateNewComponent, CreateNewFormComponent],
3933
imports: [BrowserModule, FormsModule, HttpClientModule, routing, FormsModule,RouterModule, NgbModule],
40-
>>>>>>> bad7e16839e1088a5b5284b7de9aa0c4cae96619
4134
bootstrap: [AppComponent]
4235
})
4336
export class AppModule { }

frontend/src/app/app.routing.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,30 @@ import { Routes, RouterModule } from '@angular/router';
22
import { VideogameDetailComponent } from './components/videogame/videogame-detail.component';
33
import { VideogameCatalogComponent } from './components/videogame/videogame-catalog.component';
44
import { HomeComponent } from './components/home/home.component';
5-
import { CreateNewComponent } from './components/news/createNew.component';
5+
import { CreateNewComponent } from './components/admin/createNew.component';
66
import { NewsComponent } from './components/news/news.component';
77
import { ShowNewsComponent } from './components/news/showNews.component';
88
import { UserProfile } from './components/user/userProfile.component';
99
import { AboutComponent } from './components/about/about.component';
1010
import { LoginComponent } from './components/login/login.component';
1111
import { SignUpComponent } from './components/login/signUp.component';
12+
import { AdminComponent } from './components/admin/admin.component';
1213

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

1617
const appRoutes = [
1718
{ path: 'home', component: HomeComponent },
1819
{ path: 'news', component: NewsComponent },
19-
{ path: 'showNews/:id', component: ShowNewsComponent},
20-
{ path: 'createNew', component: CreateNewComponent},
21-
{ path: 'userProfile', component: UserProfile},
20+
{ path: 'showNews/:id', component: ShowNewsComponent },
21+
{ path: 'userProfile', component: UserProfile },
2222
{ path: 'videogamecatalog', component: VideogameCatalogComponent },
2323
{ path: 'videogame/:id', component: VideogameDetailComponent },
2424
{ path: 'about', component: AboutComponent },
2525
{ path: 'login', component: LoginComponent },
2626
{ path: 'signUp', component: SignUpComponent },
27+
{ path: 'admin', component: AdminComponent },
28+
{ path: 'createNew', component: CreateNewComponent },
2729
{ path: '', redirectTo: 'home', pathMatch: 'full' }
2830

2931
]

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

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<section class="bg-light py-5">
1+
<section>
22
<div class="container px-5 my-5">
33
<div class="row gx-10 justify-content-center" style="margin-bottom: 5%;">
44
<div class="col-md-12 text-center" style="margin-bottom: 5%;">
@@ -28,17 +28,17 @@ <h1 class="fw-bolder text-white">Bienvenido Administrador</h1>
2828
<div class="card-body p-5">
2929
<div class="h2 fw-bolder">Añadir noticias</div>
3030
<ul class="list-unstyled mb-4">
31-
<div class="d-grid"><a class="btn btn-outline-primary" [routerLink]="['/createNew']">Crear
32-
noticia</a>
31+
<div class="d-grid">
32+
<a class="btn btn-outline-primary" [routerLink]="['/createNew']">Crear noticia</a>
33+
<!--<button class="btn btn-outline-primary" (click)="createNew()">Crear noticia</button>-->
3334
</div>
3435
<li class="mb-2">
3536
<strong>Opciones disponibles en noticias</strong>
3637
</li>
3738
<li class="mb-2">
3839
<i class="bi bi-check text-primary"></i>
3940
Modificar cualquier noticia previamente publicada desde la página de noticias
40-
<div class="d-grid"><a class="btn btn-outline-primary" [routerLink]="['/news']">Editar
41-
noticia</a>
41+
<div class="d-grid"><a class="btn btn-outline-primary" [routerLink]="['/news']">Editar noticia</a>
4242
</div>
4343
</li>
4444
<li class="mb-2">
@@ -60,35 +60,24 @@ <h1 class="fw-bolder text-white">Bienvenido Administrador</h1>
6060
<div class="card-body p-5">
6161
<div class="h2 fw-bolder">Añadir videojuegos</div>
6262
<ul class="list-unstyled mb-4">
63-
<div class="d-grid"><a class="btn btn-outline-primary"
64-
[routerLink]="['/createVideogame']">Crear
65-
videojuego</a></div>
63+
<div class="d-grid"><a class="btn btn-outline-primary" [routerLink]="['/createVideogame']">Crear videojuego</a></div>
6664
<li class="mb-2">
6765
<strong>Opciones disponibles en videojuegos</strong>
6866
</li>
6967
<li class="mb-2">
7068
<i class="bi bi-check text-primary"></i>
7169
Modificar cualquier videojuego previamente publicado desde la página del videojuego
72-
<div class="d-grid"><a class="btn btn-outline-primary"
73-
[routerLink]="['/videogame']">Editar
74-
videojuego</a></div>
70+
<div class="d-grid"><a class="btn btn-outline-primary" [routerLink]="['/videogamecatalog']">Editar videojuego</a></div>
7571
</li>
7672
<li class="mb-2">
7773
<i class="bi bi-check text-primary"></i>
7874
Eliminar cualquier videojuego previamente publicado desde la página del videojuego
79-
<div class="d-grid"><a class="btn btn-outline-primary"
80-
[routerLink]="['/videogame']">Eliminar
81-
videojuego</a></div>
75+
<div class="d-grid"><a class="btn btn-outline-primary" [routerLink]="['/videogamecatalog']">Eliminar videojuego</a></div>
8276
</li>
8377
</ul>
8478
</div>
8579
</div>
8680
</div>
8781
</div>
8882
</div>
89-
</section>
90-
91-
<!-- Bootstrap core JS-->
92-
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
93-
<!-- Core theme JS-->
94-
<script src="js/scripts.js"></script>
83+
</section>
Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,27 @@
1-
import { Component } from "@angular/core";
1+
import { Component, Input } from "@angular/core";
2+
import { Router } from "@angular/router";
3+
import { VideogameService } from "src/app/services/videogame.service";
24

3-
@Component ({
5+
@Component({
46
selector: 'admin',
5-
template: './admin.component.html'
7+
templateUrl: './admin.component.html'
68
})
79

810
export class AdminComponent {
9-
11+
12+
vs!: VideogameService;
13+
14+
constructor(public router: Router) {}
15+
16+
/*getGraficaGenres() {
17+
return this.vs.graphicGenres();
18+
}
19+
20+
getGraficaSales() {
21+
return this.vs.graphicSales
22+
}*/
23+
24+
createNew() {
25+
this.router.navigate(['/createNew']);
26+
}
1027
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<main class="flex-shrink-0" *ngIf="news">
2+
<div>
3+
<p>tonto tu tonto tu padre y tonto esto >:(</p>
4+
</div>
5+
<createNewForm></createNewForm><!--[news es el de la clase hija]="news es el de la clase padre"-->
6+
7+
</main>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { Component } from "@angular/core";
2+
import { ActivatedRoute, Router } from "@angular/router";
3+
4+
import { News } from "src/app/models/news.model";
5+
import { NewsService } from "src/app/services/news.service";
6+
7+
8+
@Component({
9+
selector: 'createNew',
10+
templateUrl: './createNew.component.html'
11+
})
12+
13+
export class CreateNewComponent {
14+
15+
news!: News;
16+
17+
constructor(public newsService: NewsService, activatedRoute: ActivatedRoute, private router: Router) {
18+
const id = activatedRoute.snapshot.params['id'];
19+
this.newsService.getNew(id).subscribe(
20+
(news) => this.news = news as News,
21+
(error: any) => console.error(error)
22+
)
23+
}
24+
25+
}

frontend/src/app/components/news/createNew.component.html renamed to frontend/src/app/components/admin/createNewForm.component.html

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<section>
2-
2+
<h1>kkkkkkkkkkkkkkk</h1>
3+
<!--<div *ngIf="news">-->
34
<form action="/createNew" method="post" enctype="multipart/form-data">
45

56
<div class="container" style="background-color:#f5f5f5; margin-top: 2%; padding-bottom: 1%; ">
@@ -14,13 +15,15 @@ <h2 style="text-align: center; padding-top: 2%;">Edit New Form</h2>
1415
<div class="col-md-4 ">
1516
<div>
1617
<label>Title: </label>
17-
<p><textarea name="title" placeholder="title" style="width: 100%;" [(ngModel)]="title"></textarea></p>
18+
<p><textarea name="title" placeholder="title" style="width: 100%;"
19+
[(ngModel)]="title"></textarea></p>
1820
</div>
1921
</div>
2022
<div class="col-md-4 ">
2123
<div>
2224
<label>Date: </label>
23-
<p><textarea name="date" placeholder="date" style="width: 100%;" [(ngModel)]="date"></textarea></p>
25+
<p><textarea name="date" placeholder="date" style="width: 100%;" [(ngModel)]="date"></textarea>
26+
</p>
2427
</div>
2528
</div>
2629
</div>
@@ -29,13 +32,15 @@ <h2 style="text-align: center; padding-top: 2%;">Edit New Form</h2>
2932
<div class="col-md-4 ">
3033
<div>
3134
<label>Read Time: </label>
32-
<p><textarea name="readTime" placeholder="readTime" style="width: 100%;" [(ngModel)]="read_time"></textarea></p>
35+
<p><textarea name="readTime" placeholder="readTime" style="width: 100%;"
36+
[(ngModel)]="read_time"></textarea></p>
3337
</div>
3438
</div>
3539
<div class="col-md-4 ">
3640
<div>
3741
<label>Badge: </label>
38-
<p><textarea name="badge" placeholder="badge" style="width: 100%;" [(ngModel)]="badge"></textarea></p>
42+
<p><textarea name="badge" placeholder="badge" style="width: 100%;"
43+
[(ngModel)]="badge"></textarea></p>
3944
</div>
4045
</div>
4146
</div>
@@ -44,8 +49,8 @@ <h2 style="text-align: center; padding-top: 2%;">Edit New Form</h2>
4449
<div class="col-md-8">
4550
<div>
4651
<label style="text-align: left !important;">New Content: </label>
47-
<p><textarea name="description" placeholder="description" rows="10"
48-
style="width: 100%;" [(ngModel)]="content"></textarea></p>
52+
<p><textarea name="description" placeholder="description" rows="10" style="width: 100%;"
53+
[(ngModel)]="content"></textarea></p>
4954
</div>
5055
</div>
5156
</div>
@@ -63,10 +68,8 @@ <h2 style="text-align: center; padding-top: 2%;">Edit New Form</h2>
6368
<div class="row mt-3 d-flex justify-content-center">
6469
<div class="col-8">
6570
<p>Related Videogames: </p>
66-
<select name="videogames" multiple style="width: 100%;">
67-
{{#videogame}}
68-
<option value="{{ id }}">{{ title }}</option>
69-
{{/videogame}}
71+
<select name="videogames" multiple style="width: 100%;" ngFor>
72+
<option *ngFor="let vg of videogame">{{ vg.title }}</option>
7073
</select>
7174
</div>
7275
</div>
@@ -76,24 +79,22 @@ <h2 style="text-align: center; padding-top: 2%;">Edit New Form</h2>
7679
<div class="col-8 ">
7780
<p>Image: </p>
7881
<p>
79-
<input type='file' name='imageField' accept=".jpg, .jpeg .png .svg" [(ngModel)]="image"/>
80-
<input type="hidden" name="_csrf" value="{{token}}" />
82+
<input type='file' name='imageField' accept=".jpg, .jpeg .png .svg"
83+
(click)="updateNewImage()" />
84+
<!--<input type="hidden" name="_csrf" value="{{token}}" />-->
8185
</p>
8286
</div>
8387
</div>
8488

8589
<p style="text-align: center;">
86-
<input class="btn btn-primary" type="submit" value="Save" (click)="addNew(title, date, read_time, badge, content, header)";/>
90+
<input class="btn btn-primary" type="submit" value="Save"
91+
(click)="addNew(title, date, read_time, badge, content, header, true)" ; />
8792
<!--Boton que ejecutara la función ajax-->
8893
<button class="btn btn-outline-light" style="color: black; border-color: black;"
8994
onclick="location.href='/';">Cancel</button>
9095
<!--Boton para cancelar la acción-->
9196
</p>
9297
</div>
9398
</form>
94-
</section>
95-
96-
<!-- Bootstrap core JS-->
97-
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
98-
<!-- Core theme JS-->
99-
<script src="js/scripts.js"></script>
99+
<!--/div-->
100+
</section>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { Component, Input } from "@angular/core";
2+
import { ActivatedRoute, Router } from "@angular/router";
3+
import { News } from "src/app/models/news.model";
4+
import { Videogame } from "src/app/models/videogame.model";
5+
import { NewsService } from "src/app/services/news.service";
6+
7+
@Component({
8+
selector: 'createNewForm',
9+
templateUrl: './createNewForm.component.html'
10+
})
11+
12+
export class CreateNewFormComponent {
13+
@Input() news!: News;
14+
videogame!: Videogame[];
15+
16+
title!: string;
17+
date!: string;
18+
read_time!: string;
19+
badge!: string;
20+
content!: string;
21+
header!: string;
22+
image!: boolean;
23+
24+
constructor(public router: Router, public newsService: NewsService, activatedRoute: ActivatedRoute){}
25+
26+
addNew(title: string, date: string, readtime: string, bagde: string, content: string, header: string, image: boolean) {
27+
this.news = { title: title, date: date, readTime: readtime, badge: bagde, description: content, argument: header, image: image }
28+
}
29+
30+
updateNewImage() {
31+
32+
}
33+
34+
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ import { NewsService } from 'src/app/services/news.service';
1111

1212

1313

14-
export class HomeComponent{
14+
export class HomeComponent {
1515
news!: News[];
1616

1717

18-
constructor( public newsService: NewsService, activatedRoute: ActivatedRoute){
18+
constructor(public newsService: NewsService, activatedRoute: ActivatedRoute) {
1919

2020
const id = activatedRoute.snapshot.params['id'];
21-
this.newsService.getNews().subscribe(
22-
(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-
(error: any) => console.error(error)
21+
this.newsService.getNews().subscribe(
22+
(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+
(error: any) => console.error(error)
2424

2525

26-
);
26+
);
2727

2828
}
2929

0 commit comments

Comments
 (0)