Updated to angular 11

Now compiling with strict mode in typescript
Need to error checking now
This commit is contained in:
2020-11-22 10:13:37 +05:30
parent cabd6f2ea1
commit 6567f560ab
187 changed files with 1709 additions and 1184 deletions

View File

@ -0,0 +1,3 @@
export interface BeerSaleExportHeaderInterface {
[header: string]: string;
}

View File

@ -2,4 +2,11 @@ export class BeerSaleReportItem {
date: string;
name: string;
quantity: number;
public constructor(init?: Partial<BeerSaleReportItem>) {
this.date = '';
this.name = '';
this.quantity = 0;
Object.assign(this, init);
}
}

View File

@ -1,4 +1,4 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { BeerSaleReportComponent } from './beer-sale-report.component';
@ -6,11 +6,13 @@ describe('BeerSaleReportComponent', () => {
let component: BeerSaleReportComponent;
let fixture: ComponentFixture<BeerSaleReportComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [BeerSaleReportComponent],
}).compileComponents();
}));
beforeEach(
waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [BeerSaleReportComponent],
}).compileComponents();
}),
);
beforeEach(() => {
fixture = TestBed.createComponent(BeerSaleReportComponent);

View File

@ -5,6 +5,7 @@ import * as moment from 'moment';
import { ToCsvService } from '../shared/to-csv.service';
import { BeerSaleExportHeaderInterface } from './beer-sale-export-header-interface';
import { BeerSaleReport } from './beer-sale-report';
import { BeerSaleReportDataSource } from './beer-sale-report-datasource';
@ -14,9 +15,9 @@ import { BeerSaleReportDataSource } from './beer-sale-report-datasource';
styleUrls: ['./beer-sale-report.component.css'],
})
export class BeerSaleReportComponent implements OnInit {
dataSource: BeerSaleReportDataSource;
info: BeerSaleReport = new BeerSaleReport();
dataSource: BeerSaleReportDataSource = new BeerSaleReportDataSource(this.info.data);
form: FormGroup;
info: BeerSaleReport;
/** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
displayedColumns: string[] = ['date'];
@ -27,11 +28,16 @@ export class BeerSaleReportComponent implements OnInit {
private fb: FormBuilder,
private toCsv: ToCsvService,
) {
this.createForm();
// Create form
this.form = this.fb.group({
startDate: '',
finishDate: '',
});
}
ngOnInit() {
this.route.data.subscribe((data: { info: BeerSaleReport }) => {
this.route.data.subscribe((value) => {
const data = value as { info: BeerSaleReport };
this.info = data.info;
this.displayedColumns = ['date'].concat(this.info.headers);
this.form.setValue({
@ -52,32 +58,21 @@ export class BeerSaleReportComponent implements OnInit {
});
}
createForm() {
this.form = this.fb.group({
startDate: '',
finishDate: '',
});
}
getInfo(): BeerSaleReport {
const formModel = this.form.value;
return {
return new BeerSaleReport({
startDate: moment(formModel.startDate).format('DD-MMM-YYYY'),
finishDate: moment(formModel.finishDate).format('DD-MMM-YYYY'),
};
});
}
exportCsv() {
const headers = this.info.headers.reduce(
(a, c) => {
a[c] = c;
return a;
},
{
Date: 'date',
},
);
const init: BeerSaleExportHeaderInterface = { Date: 'date' };
const headers = this.info.headers.reduce((a, c) => {
a[c] = c;
return a;
}, init);
const csvData = new Blob([this.toCsv.toCsv(headers, this.info.data)], {
type: 'text/csv;charset=utf-8;',
});

View File

@ -16,7 +16,7 @@ const serviceName = 'BeerSaleReportService';
export class BeerSaleReportService {
constructor(private http: HttpClient, private log: ErrorLoggerService) {}
get(startDate: string, finishDate): Observable<BeerSaleReport> {
get(startDate: string | null, finishDate: string | null): Observable<BeerSaleReport> {
const options = { params: new HttpParams() };
if (startDate !== null) {
options.params = options.params.set('s', startDate);

View File

@ -3,6 +3,14 @@ import { BeerSaleReportItem } from './beer-sale-report-item';
export class BeerSaleReport {
startDate: string;
finishDate: string;
headers?: string[];
data?: BeerSaleReportItem[];
headers: string[];
data: BeerSaleReportItem[];
public constructor(init?: Partial<BeerSaleReport>) {
this.startDate = '';
this.finishDate = '';
this.data = [];
this.headers = [];
Object.assign(this, init);
}
}