Adding contracts and provisions templates

This commit is contained in:
2023-01-31 23:56:48 +01:00
parent c360878b5a
commit 35c37749f3
12 changed files with 302 additions and 54 deletions

View File

@@ -30,6 +30,11 @@ const routes: Routes = [
loadChildren: () =>
import('./views/entities/entities.module').then((m) => m.EntitiesModule)
},
{
path: 'templates',
loadChildren: () =>
import('./views/templates/templates.module').then((m) => m.TemplatesModule)
},
{
path: 'theme',
loadChildren: () =>

View File

@@ -10,6 +10,55 @@ export const navItems: INavData[] = [
text: 'NEW'
}
},
{
name: 'Entities',
url: '/entities',
iconComponent: { name: 'cil-cursor' },
children: [
{
name: 'List',
url: '/entities/list'
},
{
name: 'New',
url: '/entities/new'
},
]
},
{
name: 'Templates',
title: true
},
{
name: 'Contract Templates',
url: '/templates/contracts',
iconComponent: { name: 'cil-cursor' },
children: [
{
name: 'List',
url: '/templates/contracts/list'
},
{
name: 'New',
url: '/templates/contracts/new'
},
]
},
{
name: 'Provision Templates',
url: '/templates/provisions',
iconComponent: { name: 'cil-cursor' },
children: [
{
name: 'List',
url: '/templates/provisions/list'
},
{
name: 'New',
url: '/templates/provisions/new'
},
]
},
{
title: true,
name: 'Theme'
@@ -29,21 +78,6 @@ export const navItems: INavData[] = [
name: 'Components',
title: true
},
{
name: 'Entities',
url: '/entities',
iconComponent: { name: 'cil-cursor' },
children: [
{
name: 'List',
url: '/entities'
},
{
name: 'New',
url: '/entities/new'
},
]
},
{
name: 'Base',
url: '/base',

View File

@@ -0,0 +1,44 @@
import { Component, OnInit, } from '@angular/core';
import { ActivatedRoute, ParamMap } from '@angular/router';
import { FieldCustomizer } from '@common/crud/card/card.component'
export class Customizer extends FieldCustomizer {
override customizers = {
"provisions": { props: { width: "col-sm-12" }},
}
}
export class BaseContractTemplateComponent {
protected resource: string = "template/contract";
protected schema: string = "ContractTemplate";
protected field_customizer: FieldCustomizer = new Customizer();
}
@Component({
template: '<crud-list [resource]="this.resource" [schema]="this.schema"></crud-list>'
})
export class ContractTemplateListComponent extends BaseContractTemplateComponent {
}
@Component({
template: '<crud-card [resource]="this.resource" [schema]="this.schema" [field_customizer]="this.field_customizer"></crud-card>'
})
export class ContractTemplateNewComponent extends BaseContractTemplateComponent {
}
@Component({
template: '<crud-card [resource]="this.resource" [resource_id]="this.resource_id" [schema]="this.schema" [field_customizer]="this.field_customizer"></crud-card>'
})
export class ContractTemplateCardComponent extends BaseContractTemplateComponent implements OnInit {
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

@@ -0,0 +1,38 @@
import { Component, OnInit, } from '@angular/core';
import { ActivatedRoute, ParamMap } from '@angular/router';
export class BaseProvisionTemplateComponent {
protected resource: string = "template/provision";
protected schema: string = "ProvisionTemplate";
}
@Component({
template: '<crud-list [resource]="this.resource" [schema]="this.schema"></crud-list>'
})
export class ProvisionTemplateListComponent extends BaseProvisionTemplateComponent{
}
@Component({
template: '<crud-card [resource]="this.resource" [schema]="this.schema"></crud-card>'
})
export class ProvisionTemplateNewComponent extends BaseProvisionTemplateComponent {
}
@Component({
template: '<crud-card [resource]="this.resource" [resource_id]="this.resource_id" [schema]="this.schema"></crud-card>'
})
export class ProvisionTemplateCardComponent extends BaseProvisionTemplateComponent implements OnInit {
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

@@ -0,0 +1,81 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ContractTemplateCardComponent, ContractTemplateListComponent, ContractTemplateNewComponent} from "./contract-templates.component";
import { ProvisionTemplateCardComponent, ProvisionTemplateListComponent, ProvisionTemplateNewComponent} from "./provision-templates.component";
const routes: Routes = [
{
path: '',
data: {
title: 'Templates',
},
children: [{
path: 'contracts',
data: {
title: 'Contracts',
},
children: [
{ path: '', redirectTo: 'list', pathMatch: 'full' },
{
path: 'list',
component: ContractTemplateListComponent,
data: {
title: 'List',
},
},
{
path: 'new',
component: ContractTemplateNewComponent,
data: {
title: 'New',
},
},
{
path: ':id',
component: ContractTemplateCardComponent,
data: {
title: 'Card',
},
},
],
},
{
path: 'provisions',
data: {
title: 'Provisions',
},
children: [
{ path: '', redirectTo: 'list', pathMatch: 'full' },
{
path: 'list',
component: ProvisionTemplateListComponent,
data: {
title: 'List',
},
},
{
path: 'new',
component: ProvisionTemplateNewComponent,
data: {
title: 'New',
},
},
{
path: ':id',
component: ProvisionTemplateCardComponent,
data: {
title: 'Card',
},
},
],
},
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class TemplatesRoutingModule {}

View File

@@ -0,0 +1,27 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { TemplatesRoutingModule } from './templates-routing.module';
import { CrudModule } from '@common/crud/crud.module'
import { ContractTemplateCardComponent, ContractTemplateListComponent, ContractTemplateNewComponent} from "./contract-templates.component";
import { ProvisionTemplateCardComponent, ProvisionTemplateListComponent, ProvisionTemplateNewComponent} from "./provision-templates.component";
@NgModule({
imports: [
CommonModule,
CrudModule,
TemplatesRoutingModule
],
declarations: [
ContractTemplateCardComponent,
ContractTemplateListComponent,
ContractTemplateNewComponent,
ProvisionTemplateCardComponent,
ProvisionTemplateListComponent,
ProvisionTemplateNewComponent,
]
})
export class TemplatesModule {
}