diff --git a/src/app/products/manage-tax-groups/manage-tax-groups.component.html b/src/app/products/manage-tax-groups/manage-tax-groups.component.html index f8be2bee2..c507b1ffe 100644 --- a/src/app/products/manage-tax-groups/manage-tax-groups.component.html +++ b/src/app/products/manage-tax-groups/manage-tax-groups.component.html @@ -24,7 +24,7 @@ - + diff --git a/src/app/products/manage-tax-groups/manage-tax-groups.component.scss b/src/app/products/manage-tax-groups/manage-tax-groups.component.scss index 1922e7ffa..24edb63bb 100644 --- a/src/app/products/manage-tax-groups/manage-tax-groups.component.scss +++ b/src/app/products/manage-tax-groups/manage-tax-groups.component.scss @@ -1,3 +1,7 @@ table { width: 100%; + + .select-row:hover { + cursor: pointer; + } } diff --git a/src/app/products/manage-tax-groups/tax-group.resolver.ts b/src/app/products/manage-tax-groups/tax-group.resolver.ts new file mode 100644 index 000000000..8dd4de36c --- /dev/null +++ b/src/app/products/manage-tax-groups/tax-group.resolver.ts @@ -0,0 +1,30 @@ +/** Angular Imports */ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Resolve } from '@angular/router'; + +/** rxjs Imports */ +import { Observable } from 'rxjs'; + +/** Custom Services */ +import { ProductsService } from '../products.service'; + +/** + * tax Group data resolver. + */ +@Injectable() +export class TaxGroupResolver implements Resolve { + + /** + * @param {ProductsService} productsService Products service. + */ + constructor(private productsService: ProductsService) {} + + /** + * Returns the tax Group data. + * @returns {Observable} + */ + resolve(route: ActivatedRouteSnapshot): Observable { + const taxGroupId = route.paramMap.get('id'); + return this.productsService.getTaxGroup(taxGroupId); + } +} diff --git a/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.html b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.html new file mode 100644 index 000000000..b264d0a43 --- /dev/null +++ b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.html @@ -0,0 +1,58 @@ +
+ +
+ +
+ + + + + +
+ +
+ Name +
+ +
+ {{ taxGroupData.name }} +
+ +
+ Tax-Component Name +
+ +
+ Start Date +
+ +
+ End Date +
+ +
+ +
+ +
+ {{ taxcomponent.taxComponent.name }} +
+ +
+ {{ taxcomponent.startDate | date }} +
+ +
+ {{ taxcomponent.endDate | date }} +
+ +
+ +
+ +
+ +
diff --git a/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.scss b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.scss new file mode 100644 index 000000000..3f5fb726f --- /dev/null +++ b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.scss @@ -0,0 +1,10 @@ +.container { + max-width: 37rem; + + .content { + div { + margin: 0.8rem 0; + word-wrap: break-word; + } + } +} diff --git a/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.spec.ts b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.spec.ts new file mode 100644 index 000000000..e6be0f322 --- /dev/null +++ b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ViewTaxGroupComponent } from './view-tax-group.component'; + +describe('ViewTaxGroupComponent', () => { + let component: ViewTaxGroupComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ViewTaxGroupComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ViewTaxGroupComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.ts b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.ts new file mode 100644 index 000000000..f42e1af97 --- /dev/null +++ b/src/app/products/manage-tax-groups/view-tax-group/view-tax-group.component.ts @@ -0,0 +1,28 @@ +/** Angular Imports. */ +import { Component } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +/** + * View Tax Group component. + */ +@Component({ + selector: 'mifosx-view-tax-group', + templateUrl: './view-tax-group.component.html', + styleUrls: ['./view-tax-group.component.scss'] +}) +export class ViewTaxGroupComponent { + + /** tax Group Data. */ + taxGroupData: any; + + /** + * Retrieves the tax Group data from `resolve`. + * @param {ActivatedRoute} route Activated Route. + */ + constructor(private route: ActivatedRoute) { + this.route.data.subscribe((data: { taxGroup: any }) => { + this.taxGroupData = data.taxGroup; + }); + } + +} diff --git a/src/app/products/products-routing.module.ts b/src/app/products/products-routing.module.ts index 954772e38..46852724d 100644 --- a/src/app/products/products-routing.module.ts +++ b/src/app/products/products-routing.module.ts @@ -39,6 +39,7 @@ import { ManageTaxGroupsComponent } from './manage-tax-groups/manage-tax-groups. import { ViewTaxComponentComponent } from './manage-tax-components/view-tax-component/view-tax-component.component'; import { CreateTaxComponentComponent } from './manage-tax-components/create-tax-component/create-tax-component.component'; import { EditTaxComponentComponent } from './manage-tax-components/edit-tax-component/edit-tax-component.component'; +import { ViewTaxGroupComponent } from './manage-tax-groups/view-tax-group/view-tax-group.component'; /** Custom Resolvers */ import { LoanProductsResolver } from './loan-products/loan-products.resolver'; @@ -68,6 +69,7 @@ import { TaxComponentResolver } from './manage-tax-components/tax-component.reso import { TaxComponentTemplateResolver } from './manage-tax-components/tax-component-template.resolver'; import { EditChargeComponent } from './charges/edit-charge/edit-charge.component'; import { ChargesTemplateResolver } from './charges/charges-template.resolver'; +import { TaxGroupResolver } from './manage-tax-groups/tax-group.resolver'; /** Products Routes */ const routes: Routes = [ @@ -258,11 +260,29 @@ const routes: Routes = [ }, { path: 'tax-groups', - component: ManageTaxGroupsComponent, - resolve: { - taxGroups: ManageTaxGroupsResolver - }, data: { title: extract('Manage Tax Groups'), breadcrumb: 'Tax Groups'}, + children: [ + { + path: '', + component: ManageTaxGroupsComponent, + resolve: { + taxGroups: ManageTaxGroupsResolver + } + }, + { + path: ':id', + data: { title: extract('View Tax Group'), routeParamBreadcrumb: 'id' }, + children: [ + { + path: '', + component: ViewTaxGroupComponent, + resolve: { + taxGroup: TaxGroupResolver + } + } + ] + } + ] }, ] }, @@ -431,7 +451,8 @@ const routes: Routes = [ FloatingRateResolver, FloatingRatesResolver, TaxComponentTemplateResolver, - EditTaxComponentComponent + EditTaxComponentComponent, + TaxGroupResolver ] }) export class ProductsRoutingModule { } diff --git a/src/app/products/products.module.ts b/src/app/products/products.module.ts index 879a24a39..e02ffef2b 100644 --- a/src/app/products/products.module.ts +++ b/src/app/products/products.module.ts @@ -73,6 +73,7 @@ import { EditTaxComponentComponent } from './manage-tax-components/edit-tax-comp import { EditChargeComponent } from './charges/edit-charge/edit-charge.component'; import { MatFormFieldModule, MatSelectModule, MatOptionModule } from '@angular/material'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { ViewTaxGroupComponent } from './manage-tax-groups/view-tax-group/view-tax-group.component'; /** * Products Module @@ -149,7 +150,8 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; ViewTaxComponentComponent, CreateTaxComponentComponent, EditTaxComponentComponent, - EditChargeComponent + EditChargeComponent, + ViewTaxGroupComponent ], entryComponents: [ FloatingRatePeriodDialogComponent diff --git a/src/app/products/products.service.ts b/src/app/products/products.service.ts index ea208b1a8..1cac6f0e1 100644 --- a/src/app/products/products.service.ts +++ b/src/app/products/products.service.ts @@ -193,6 +193,14 @@ export class ProductsService { return this.http.get('/taxes/group'); } + /** + * @param {string} taxGroupId Tax Component ID of Tax Component. + * @returns {Observable} Tax Component. + */ + getTaxGroup(taxGroupId: string): Observable { + return this.http.get(`/taxes/group/${taxGroupId}`); + } + /** * @returns {Observable} Product mixes data */