Moving most common logic to base view module

This commit is contained in:
2023-02-12 14:09:35 +01:00
parent 2b6611c9a0
commit 6ec0e8ab18
17 changed files with 129 additions and 80 deletions

View File

@@ -0,0 +1,26 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { CrudModule } from '@common/crud/crud.module'
import { BaseCrudListComponent } from "./list/list.component";
import { BaseCrudNewComponent } from "./new/new.component";
import { BaseCrudCardComponent } from "./card/card.component";
@NgModule({
imports: [
CommonModule,
CrudModule
],
declarations: [
BaseCrudListComponent,
BaseCrudNewComponent,
BaseCrudCardComponent
],
exports: [
BaseCrudListComponent,
BaseCrudNewComponent,
BaseCrudCardComponent
]
})
export class BaseViewModule {
}

View File

@@ -0,0 +1,5 @@
<crud-card
[resource]="this.resource"
[resource_id]="this.resource_id"
[schema]="this.schema">
</crud-card>

View File

@@ -0,0 +1,22 @@
import {Component, Input} from "@angular/core";
import {ActivatedRoute, ParamMap} from "@angular/router";
@Component({
templateUrl: 'card.component.html',
selector: 'base-card',
})
export class BaseCrudCardComponent {
@Input() resource: string | undefined;
@Input() resource_id: string | null = null;
@Input() schema: string | undefined;
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
if (this.resource_id === null) {
this.route.paramMap.subscribe((params: ParamMap) => {
this.resource_id = params.get('id')
})
}
}
}

View File

@@ -0,0 +1,5 @@
<crud-list
[resource]="this.resource"
[schema]="this.schema"
[columns]="this.columns">
</crud-list>

View File

@@ -0,0 +1,11 @@
import {Component, Input} from "@angular/core";
@Component({
selector: 'base-list',
templateUrl: 'list.component.html'
})
export class BaseCrudListComponent {
@Input() resource: string = "";
@Input() columns: string[] = [];
@Input() schema: string | undefined;
}

View File

@@ -0,0 +1,4 @@
<crud-card
[resource]="this.resource"
[schema]="this.schema">
</crud-card>

View File

@@ -0,0 +1,11 @@
import {Component, Input} from "@angular/core";
@Component({
selector: 'base-new',
templateUrl: 'new.component.html'
})
export class BaseCrudNewComponent {
@Input() resource: string | undefined;
@Input() schema: string | undefined;
@Input() model = {};
}

View File

@@ -0,0 +1,4 @@
<base-card
[resource]="this.resource"
[schema]="this.schema">
</base-card>'

View File

@@ -0,0 +1,5 @@
<base-list
[resource]="this.resource"
[schema]="this.schema"
[columns]="this.columns">
</base-list>

View File

@@ -0,0 +1,4 @@
<base-card
[resource]="this.resource"
[schema]="this.schema">
</base-card>

View File

@@ -1,8 +1,8 @@
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { BaseViewModule } from "../base-view/base-view.module";
import { ContractsRoutingModule } from './contracts-routing.module'; import { ContractsRoutingModule } from './contracts-routing.module';
import { CrudModule } from '@common/crud/crud.module'
import { DraftCardComponent, DraftListComponent, DraftNewComponent } from "./drafts.component"; import { DraftCardComponent, DraftListComponent, DraftNewComponent } from "./drafts.component";
@@ -10,7 +10,7 @@ import { DraftCardComponent, DraftListComponent, DraftNewComponent } from "./dra
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
CrudModule, BaseViewModule,
ContractsRoutingModule ContractsRoutingModule
], ],
declarations: [ declarations: [

View File

@@ -1,5 +1,4 @@
import { Component, OnInit } from '@angular/core'; import { Component } from '@angular/core';
import { ActivatedRoute, ParamMap } from '@angular/router';
export class BaseEntitiesComponent { export class BaseEntitiesComponent {
@@ -8,32 +7,20 @@ export class BaseEntitiesComponent {
} }
@Component({ @Component({
template: '<crud-list [resource]="this.resource" [schema]="this.schema" [columns]="this.columns"></crud-list>' templateUrl: '../base-view/templates/list.template.html'
}) })
export class DraftListComponent extends BaseEntitiesComponent { export class DraftListComponent extends BaseEntitiesComponent {
columns = ['label', 'address', 'entity_data.type'] columns = [];
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/new.template.html'
}) })
export class DraftNewComponent extends BaseEntitiesComponent { export class DraftNewComponent extends BaseEntitiesComponent {
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [resource_id]="this.resource_id" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/card.template.html'
}) })
export class DraftCardComponent extends BaseEntitiesComponent implements OnInit { export class DraftCardComponent extends BaseEntitiesComponent{
resource_id: string | null = null;
constructor(private route: ActivatedRoute,) {
super();
}
ngOnInit(): void {
this.route.paramMap.subscribe((params: ParamMap) => {
this.resource_id = params.get('id')
})
}
} }

View File

@@ -1,39 +1,26 @@
import { Component, OnInit } from '@angular/core'; import { Component } from '@angular/core';
import { ActivatedRoute, ParamMap } from '@angular/router';
export class BaseEntitiesComponent { export class BaseEntitiesComponent {
protected resource: string = "entity"; resource: string = "entity";
protected schema: string = "Entity"; schema: string = "Entity";
} }
@Component({ @Component({
template: '<crud-list [resource]="this.resource" [schema]="this.schema" [columns]="this.columns"></crud-list>' templateUrl: '../base-view/templates/list.template.html'
}) })
export class EntityListComponent extends BaseEntitiesComponent { export class EntityListComponent extends BaseEntitiesComponent {
columns = ['label', 'address', 'entity_data.type'] columns = ['label', 'address', 'entity_data.type']
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/new.template.html'
}) })
export class EntityNewComponent extends BaseEntitiesComponent { export class EntityNewComponent extends BaseEntitiesComponent {
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [resource_id]="this.resource_id" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/card.template.html'
}) })
export class EntityCardComponent extends BaseEntitiesComponent implements OnInit { export class EntityCardComponent extends BaseEntitiesComponent {
resource_id: string | null = null;
constructor(private route: ActivatedRoute,) {
super();
}
ngOnInit(): void {
this.route.paramMap.subscribe((params: ParamMap) => {
this.resource_id = params.get('id')
})
}
} }

View File

@@ -2,15 +2,15 @@ import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { EntitiesRoutingModule } from './entities-routing.module'; import { EntitiesRoutingModule } from './entities-routing.module';
import { CrudModule } from '@common/crud/crud.module'
import { EntityCardComponent, EntityListComponent, EntityNewComponent} from "./entities.component"; import { EntityCardComponent, EntityListComponent, EntityNewComponent} from "./entities.component";
import { BaseViewModule } from "../base-view/base-view.module";
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
CrudModule, BaseViewModule,
EntitiesRoutingModule EntitiesRoutingModule
], ],
declarations: [ declarations: [

View File

@@ -1,5 +1,5 @@
import { Component, OnInit, } from '@angular/core'; import { Component } from '@angular/core';
import { ActivatedRoute, ParamMap } from '@angular/router';
export class BaseContractTemplateComponent { export class BaseContractTemplateComponent {
protected resource: string = "template/contract"; protected resource: string = "template/contract";
@@ -7,30 +7,20 @@ export class BaseContractTemplateComponent {
} }
@Component({ @Component({
template: '<crud-list [resource]="this.resource" [schema]="this.schema"></crud-list>' templateUrl: '../base-view/templates/list.template.html'
}) })
export class ContractTemplateListComponent extends BaseContractTemplateComponent { export class ContractTemplateListComponent extends BaseContractTemplateComponent {
columns = [];
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/new.template.html'
}) })
export class ContractTemplateNewComponent extends BaseContractTemplateComponent { export class ContractTemplateNewComponent extends BaseContractTemplateComponent {
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [resource_id]="this.resource_id" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/card.template.html'
}) })
export class ContractTemplateCardComponent extends BaseContractTemplateComponent implements OnInit { export class ContractTemplateCardComponent extends BaseContractTemplateComponent {
resource_id: string | null = null;
constructor(private route: ActivatedRoute,) {
super();
}
ngOnInit(): void {
this.route.paramMap.subscribe((params: ParamMap) => {
this.resource_id = params.get('id')
})
}
} }

View File

@@ -1,5 +1,4 @@
import { Component, OnInit, } from '@angular/core'; import { Component } from '@angular/core';
import { ActivatedRoute, ParamMap } from '@angular/router';
export class BaseProvisionTemplateComponent { export class BaseProvisionTemplateComponent {
@@ -8,31 +7,20 @@ export class BaseProvisionTemplateComponent {
} }
@Component({ @Component({
template: '<crud-list [resource]="this.resource" [schema]="this.schema"></crud-list>' templateUrl: '../base-view/templates/list.template.html'
}) })
export class ProvisionTemplateListComponent extends BaseProvisionTemplateComponent{ export class ProvisionTemplateListComponent extends BaseProvisionTemplateComponent{
columns = [];
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/new.template.html'
}) })
export class ProvisionTemplateNewComponent extends BaseProvisionTemplateComponent { export class ProvisionTemplateNewComponent extends BaseProvisionTemplateComponent {
} }
@Component({ @Component({
template: '<crud-card [resource]="this.resource" [resource_id]="this.resource_id" [schema]="this.schema"></crud-card>' templateUrl: '../base-view/templates/card.template.html'
}) })
export class ProvisionTemplateCardComponent extends BaseProvisionTemplateComponent implements OnInit { export class ProvisionTemplateCardComponent extends BaseProvisionTemplateComponent {
resource_id: string | null = null;
constructor(private route: ActivatedRoute,) {
super();
}
ngOnInit(): void {
this.route.paramMap.subscribe((params: ParamMap) => {
this.resource_id = params.get('id')
})
}
} }

View File

@@ -1,8 +1,8 @@
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { BaseViewModule } from "../base-view/base-view.module";
import { TemplatesRoutingModule } from './templates-routing.module'; import { TemplatesRoutingModule } from './templates-routing.module';
import { CrudModule } from '@common/crud/crud.module'
import { ContractTemplateCardComponent, ContractTemplateListComponent, ContractTemplateNewComponent} from "./contract-templates.component"; import { ContractTemplateCardComponent, ContractTemplateListComponent, ContractTemplateNewComponent} from "./contract-templates.component";
import { ProvisionTemplateCardComponent, ProvisionTemplateListComponent, ProvisionTemplateNewComponent} from "./provision-templates.component"; import { ProvisionTemplateCardComponent, ProvisionTemplateListComponent, ProvisionTemplateNewComponent} from "./provision-templates.component";
@@ -11,7 +11,7 @@ import { ProvisionTemplateCardComponent, ProvisionTemplateListComponent, Provisi
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
CrudModule, BaseViewModule,
TemplatesRoutingModule TemplatesRoutingModule
], ],
declarations: [ declarations: [