Add version revisions component.

This commit is contained in:
2019-02-11 21:40:32 +01:00
parent 53ce301bcd
commit f30da71a44
5 changed files with 111 additions and 2 deletions

View File

@@ -20,6 +20,7 @@ import { UnauthorizedInterceptor } from './core/interceptors/unauthorized.interc
// Components
import { AppComponent } from './app.component';
import { HeaderComponent } from './header/header.component';
import { FooterComponent } from './footer/footer.component';
import { LoginComponent } from './login/login.component';
import { DisconnectionComponent } from './disconnection/disconnection.component';
import { HomeComponent } from './home/home.component';
@@ -31,6 +32,7 @@ import { PostComponent } from './posts/post.component';
import { NotFoundComponent } from './not-found/not-found.component';
import { ByCategoryComponent } from './posts/byCategory/by-category.component';
import { CreateUpdatePostComponent } from './posts/create-update/create-update-post.component';
import { VersionRevisionComponent } from './version-revisions/version-revisions.component';
// Reusable components
import { PostCardComponent } from './core/post-card/post-card.component';
@@ -47,7 +49,7 @@ import { ProfilEditionService } from './account-settings/profil-edition/profil-e
import { PostService } from './posts/post.service';
import { ByCategoryService } from './posts/byCategory/by-category.service';
import { CreateUpdatePostService } from './posts/create-update/create-update-post.service';
import { FooterComponent } from './footer/footer.component';
import { VersionRevisionService } from './version-revisions/version-revisions.service';
@NgModule({
declarations: [
@@ -66,7 +68,8 @@ import { FooterComponent } from './footer/footer.component';
PostComponent,
NotFoundComponent,
ByCategoryComponent,
CreateUpdatePostComponent
CreateUpdatePostComponent,
VersionRevisionComponent
],
imports: [
BrowserModule,
@@ -92,6 +95,7 @@ import { FooterComponent } from './footer/footer.component';
PostService,
ByCategoryService,
CreateUpdatePostService,
VersionRevisionService,
{ provide: HTTP_INTERCEPTORS, useClass: UnauthorizedInterceptor, multi: true }
],
bootstrap: [AppComponent]

View File

@@ -12,6 +12,7 @@ import { ProfilEditionComponent } from './account-settings/profil-edition/profil
import { PostComponent } from './posts/post.component';
import { ByCategoryComponent } from './posts/byCategory/by-category.component';
import { CreateUpdatePostComponent } from './posts/create-update/create-update-post.component';
import { VersionRevisionComponent } from './version-revisions/version-revisions.component';
export const appRoutes: Routes = [
{ path: '', redirectTo: '/home', pathMatch: 'full' },
@@ -26,5 +27,7 @@ export const appRoutes: Routes = [
{ path: 'posts/:postKey', component: PostComponent },
{ path: 'posts/byCategory/:categoryId', component: ByCategoryComponent},
{ path: 'posts/update/:postKey', component: CreateUpdatePostComponent, canActivate: [AuthGuard] },
{ path: 'versionrevisions', component: VersionRevisionComponent },
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: '**', redirectTo: '/home' }
];

View File

@@ -0,0 +1,34 @@
<div class="row">
<div class="col-md-3 col-lg-2">
<h1>Versions</h1>
<ul class="list-group">
<a *ngFor="let version of versionsList">
<li [className]="version.active ? 'list-group-item active' : 'list-group-item'"
(click)="showVersionRevision(version)">
{{version.number}}
</li>
</a>
</ul>
</div>
<div id="versionRevisionsArea" class="col-md-9 col-lg-10">
<div *ngIf="versionRevisionsList.length">
<h3>Ajouts de fonctionnalités</h3>
<ul>
<li *ngFor="let versionRevision of versionRevisionsList">
{{versionRevision.text}}
</li>
</ul>
</div>
<h4 *ngIf="!versionRevisionsList.length">Aucune nouvelle fonctionnalité pour cette version.</h4>
<div *ngIf="versionRevisionsBugfixList.length">
<h3>Correction d'anomalies</h3>
<ul>
<li *ngFor="let versionRevision of versionRevisionsBugfixList">
{{versionRevision.text}}
</li>
</ul>
</div>
<h4 *ngIf="!versionRevisionsBugfixList.length">Aucune correction d'anomalie pour cette version.</h4>
</div>
</div>

View File

@@ -0,0 +1,49 @@
import { Component, OnInit } from '@angular/core';
import { VersionRevisionService } from './version-revisions.service';
import { VersionRevision, Version } from '../core/entities';
@Component({
selector: 'app-version-revisions',
templateUrl: 'version-revisions.component.html',
styles: [`
#versionRevisionsArea {
padding-top: 70px;
}
@media screen and (max-width: 767px) {
#versionRevisionsArea {
padding-top: 20px;
}
}
`]
})
export class VersionRevisionComponent implements OnInit {
versionsList: Array<Version>;
versionRevisionsList: Array<VersionRevision>;
versionRevisionsBugfixList: Array<VersionRevision>;
constructor(
private versionRevisionService: VersionRevisionService
) {
this.versionsList = [];
this.versionRevisionsList = [];
this.versionRevisionsBugfixList = [];
}
ngOnInit(): void {
this.versionRevisionService.getVersions().subscribe(versionsList => {
this.versionsList = versionsList;
this.showVersionRevision(this.versionsList[0]);
});
}
showVersionRevision(version: Version): void {
this.versionsList.forEach(versionTmp => versionTmp.active = false);
version.active = true;
this.versionRevisionService.findByVersionNumber(version.number).subscribe(versionRevisionsList => {
this.versionRevisionsList = versionRevisionsList.filter(vr => !vr.bugfix);
this.versionRevisionsBugfixList = versionRevisionsList.filter(vr => vr.bugfix);
});
}
}

View File

@@ -0,0 +1,19 @@
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Version, VersionRevision } from '../core/entities';
@Injectable()
export class VersionRevisionService {
constructor(
private http: HttpClient
) {}
getVersions(): Observable<Array<Version>> {
return this.http.get<Array<Version>>(`/api/versionrevisions/versions`);
}
findByVersionNumber(versionNumber: string): Observable<Array<VersionRevision>> {
return this.http.get<Array<VersionRevision>>(`/api/versionrevisions/${versionNumber}`);
}
}