diff --git a/src/app/auth/role-guard.service.ts b/src/app/auth/role-guard.service.ts
index da1ca6e..be16047 100644
--- a/src/app/auth/role-guard.service.ts
+++ b/src/app/auth/role-guard.service.ts
@@ -26,6 +26,8 @@ export class RoleGuardService{
new RegExp("/hiba/megjelenites/[\\d]+", "i"),
new RegExp("/beallitasok", "i"),
new RegExp("/karbantartas/(idoszeru|teljes)-lista", "i"),
+ new RegExp("/karbantartas/naptar", "i"),
+ new RegExp("/karbantartas/naptar/[\\d]+", "i"),
],
'projektvezeto': [
new RegExp("/hiba/lista", "i"),
@@ -38,6 +40,8 @@ export class RoleGuardService{
new RegExp("/riportok/szures", "i"),
new RegExp("/riportok/havi-zaras", "i"),
new RegExp("/karbantartas/(idoszeru|teljes)-lista", "i"),
+ new RegExp("/karbantartas/naptar", "i"),
+ new RegExp("/karbantartas/naptar/[\\d]+", "i"),
new RegExp("/karbantartas/szerkesztes", "i"),
],
diff --git a/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.css b/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.html b/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.html
new file mode 100644
index 0000000..5138673
--- /dev/null
+++ b/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.html
@@ -0,0 +1,8 @@
+
diff --git a/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.spec.ts b/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.spec.ts
new file mode 100644
index 0000000..101a579
--- /dev/null
+++ b/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { MaintenanceCalendarComponent } from './maintenance-calendar.component';
+
+describe('MaintenanceCalendarComponent', () => {
+ let component: MaintenanceCalendarComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ MaintenanceCalendarComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(MaintenanceCalendarComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.ts b/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.ts
new file mode 100644
index 0000000..a31bcfe
--- /dev/null
+++ b/src/app/maintenance/maintenance-calendar/maintenance-calendar.component.ts
@@ -0,0 +1,43 @@
+import { Component, OnInit } from '@angular/core';
+import { DeviceGroup } from "../shared/device-group";
+import { MaintenanceManagerService } from "../maintenance-manager.service";
+import { Title } from "@angular/platform-browser";
+import { ActivatedRoute } from "@angular/router";
+
+@Component({
+ selector: 'app-maintenance-calendar',
+ templateUrl: './maintenance-calendar.component.html',
+ styleUrls: ['./maintenance-calendar.component.css']
+})
+export class MaintenanceCalendarComponent implements OnInit {
+
+ public year: number = 2018;
+
+ constructor(private maintenanceManager: MaintenanceManagerService,
+ private titleService: Title,
+ private route: ActivatedRoute) {
+ }
+
+ ngOnInit() {
+ this.titleService.setTitle('Webnapló : Éves karbantartási feladatok');
+ this.route.params.subscribe((params: {
+ year: number
+ }) => {
+ this.year = params.year ? params.year : new Date().getFullYear();
+ });
+ this.route.data.subscribe((data: {
+ maintenances: Array,
+ }) => {
+ this.maintenances = data.maintenances;
+ });
+ }
+
+ get maintenances(): Array {
+ return this.maintenanceManager.maintenances;
+ }
+
+ set maintenances(maintenances: Array) {
+ this.maintenanceManager.maintenances = maintenances;
+ }
+
+}
diff --git a/src/app/maintenance/maintenance-manager.service.ts b/src/app/maintenance/maintenance-manager.service.ts
index daf2d78..1e14b56 100644
--- a/src/app/maintenance/maintenance-manager.service.ts
+++ b/src/app/maintenance/maintenance-manager.service.ts
@@ -1,21 +1,28 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
-import { HttpClient, HttpHeaders, HttpRequest } from "@angular/common/http";
+import { HttpClient } from "@angular/common/http";
import { environment } from "../../environments/environment";
-import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from "@angular/router";
+import { ActivatedRouteSnapshot, RouterStateSnapshot } from "@angular/router";
import { DeviceGroup } from "./shared/device-group";
import { MaintenanceEntity } from "./shared/maintenance-entity";
@Injectable()
export class MaintenanceManagerService {
- private apiEndpoint = environment.apiUrl + '/api/maintenance';
- private apiEndpointUpcoming = environment.apiUrl + '/api/maintenance/upcoming';
+ static apiEndpoint = environment.apiUrl + '/api/maintenance';
+ static apiEndpointUpcoming = environment.apiUrl + '/api/maintenance/upcoming';
+ static apiEndpointCalendar = environment.apiUrl + '/api/maintenance/calendar';
+
+ static endpointMap = {
+ all: MaintenanceManagerService.apiEndpoint,
+ upcoming: MaintenanceManagerService.apiEndpointUpcoming,
+ calendar: MaintenanceManagerService.apiEndpointCalendar,
+ };
+
private cachedMaintenances: Array = [];
- constructor(private httpClient: HttpClient) {
- }
+ constructor(private httpClient: HttpClient) {}
/**
* Resolver for the route
@@ -25,10 +32,9 @@ export class MaintenanceManagerService {
* @returns {Promise>}
*/
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {
- let filter = route.data.filter ? route.data.filter : 'upcoming';
- let url = filter == 'upcoming'
- ? this.apiEndpointUpcoming
- : this.apiEndpoint;
+ let year = route.params.year ? route.params.year : new Date().getFullYear();
+ let filter = route.data.filter ? route.data.filter : 'all';
+ let url = `${MaintenanceManagerService.endpointMap[filter]}/${year}`;
return this.list(url).toPromise();
}
@@ -42,11 +48,11 @@ export class MaintenanceManagerService {
}
public get(hash: string): Observable {
- return this.httpClient.get(`${this.apiEndpoint}/${hash}`);
+ return this.httpClient.get(`${MaintenanceManagerService.apiEndpoint}/${hash}`);
}
public update(maintenance: MaintenanceEntity) {
- return this.httpClient.put(`${this.apiEndpoint}/${maintenance.hash}`, maintenance);
+ return this.httpClient.put(`${MaintenanceManagerService.apiEndpoint}/${maintenance.hash}`, maintenance);
}
get maintenances(): Array {
@@ -59,10 +65,8 @@ export class MaintenanceManagerService {
public setWip(id: string, page: string) {
if(confirm("Biztos benne?")) {
- let url = page == 'upcoming'
- ? this.apiEndpointUpcoming
- : this.apiEndpoint;
- this.httpClient.post(`${this.apiEndpoint}/${id}/wip`,{}).subscribe(()=>{
+ let url = MaintenanceManagerService.endpointMap[page];
+ this.httpClient.post(`${MaintenanceManagerService.apiEndpoint}/${id}/wip`,{}).subscribe(()=>{
this.list(url).subscribe(result => this.cachedMaintenances = result);
});
}
@@ -70,10 +74,8 @@ export class MaintenanceManagerService {
public setFin(id: string, page: string) {
if(confirm("Biztos benne?")) {
- let url = page == 'upcoming'
- ? this.apiEndpointUpcoming
- : this.apiEndpoint;
- this.httpClient.post(`${this.apiEndpoint}/${id}/fin`, {}).subscribe(() => {
+ let url = MaintenanceManagerService.endpointMap[page];
+ this.httpClient.post(`${MaintenanceManagerService.apiEndpoint}/${id}/fin`, {}).subscribe(() => {
this.list(url).subscribe(result => this.cachedMaintenances = result);
});
}
diff --git a/src/app/maintenance/maintenance-routing.module.ts b/src/app/maintenance/maintenance-routing.module.ts
index 42574a7..a8c93aa 100644
--- a/src/app/maintenance/maintenance-routing.module.ts
+++ b/src/app/maintenance/maintenance-routing.module.ts
@@ -8,9 +8,20 @@ import { ListAllMaintenancesComponent } from "./list-all-maintenances/list-all-m
import { ListUpcomingMaintenancesComponent } from "./list-upcoming-maintenances/list-upcoming-maintenances.component";
import { EditMaintenanceComponent } from "./edit-maintenance/edit-maintenance.component";
import { MaintenanceResolverService } from "./maintenance-resolver.service";
+import { MaintenanceCalendarComponent } from "./maintenance-calendar/maintenance-calendar.component";
const routes: Routes = [
{
+ path: 'karbantartas/teljes-lista/:year',
+ component: ListAllMaintenancesComponent,
+ canActivate: [AuthGuardService, RoleGuardService],
+ resolve: {
+ maintenances: MaintenanceManagerService,
+ },
+ data: {
+ filter: 'all',
+ },
+ }, {
path: 'karbantartas/teljes-lista',
component: ListAllMaintenancesComponent,
canActivate: [AuthGuardService, RoleGuardService],
@@ -20,6 +31,16 @@ const routes: Routes = [
data: {
filter: 'all',
},
+ }, {
+ path: 'karbantartas/idoszeru-lista/:year',
+ component: ListUpcomingMaintenancesComponent,
+ canActivate: [AuthGuardService, RoleGuardService],
+ resolve: {
+ maintenances: MaintenanceManagerService,
+ },
+ data: {
+ filter: 'upcoming',
+ },
}, {
path: 'karbantartas/idoszeru-lista',
component: ListUpcomingMaintenancesComponent,
@@ -30,6 +51,26 @@ const routes: Routes = [
data: {
filter: 'upcoming',
},
+ }, {
+ path: 'karbantartas/naptar/:year',
+ component: MaintenanceCalendarComponent,
+ canActivate: [AuthGuardService, RoleGuardService],
+ resolve: {
+ maintenances: MaintenanceManagerService,
+ },
+ data: {
+ filter: 'calendar',
+ },
+ }, {
+ path: 'karbantartas/naptar',
+ component: MaintenanceCalendarComponent,
+ canActivate: [AuthGuardService, RoleGuardService],
+ resolve: {
+ maintenances: MaintenanceManagerService,
+ },
+ data: {
+ filter: 'calendar',
+ },
}, {
path: 'karbantartas/szerkesztes/:id',
component: EditMaintenanceComponent,
diff --git a/src/app/maintenance/maintenance.module.ts b/src/app/maintenance/maintenance.module.ts
index bfcbee5..9a1ca04 100644
--- a/src/app/maintenance/maintenance.module.ts
+++ b/src/app/maintenance/maintenance.module.ts
@@ -9,17 +9,31 @@ import { ListAllMaintenancesComponent } from './list-all-maintenances/list-all-m
import { ListUpcomingMaintenancesComponent } from './list-upcoming-maintenances/list-upcoming-maintenances.component';
import { EditMaintenanceComponent } from './edit-maintenance/edit-maintenance.component';
import { MaintenanceResolverService } from './maintenance-resolver.service';
+import { SharedModule } from "../shared/shared.module";
+import { MaintenanceCalendarComponent } from './maintenance-calendar/maintenance-calendar.component';
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
- MaintenanceRoutingModule
+ SharedModule,
+ MaintenanceRoutingModule,
+ ],
+ declarations: [
+ UpcomingMaintenancesComponent,
+ ListAllMaintenancesComponent,
+ ListUpcomingMaintenancesComponent,
+ EditMaintenanceComponent,
+ MaintenanceCalendarComponent,
+ ],
+ providers: [
+ MaintenanceManagerService,
+ MaintenanceResolverService,
+ ],
+ exports: [
+ UpcomingMaintenancesComponent,
],
- declarations: [UpcomingMaintenancesComponent, ListAllMaintenancesComponent, ListUpcomingMaintenancesComponent, EditMaintenanceComponent],
- providers: [MaintenanceManagerService, MaintenanceResolverService],
- exports: [UpcomingMaintenancesComponent],
})
export class MaintenanceModule {
}
diff --git a/src/app/navigation/navigation/navigation.component.html b/src/app/navigation/navigation/navigation.component.html
index 4d42fd3..37bfb96 100644
--- a/src/app/navigation/navigation/navigation.component.html
+++ b/src/app/navigation/navigation/navigation.component.html
@@ -24,8 +24,9 @@
Karbantartás