Skip to content

Commit 2082cbf

Browse files
committed
Added simple mutations to make report work
1 parent d2455eb commit 2082cbf

File tree

16 files changed

+111
-127
lines changed

16 files changed

+111
-127
lines changed

eFormAPI/eFormAPI.Web/Services/EformReportsService.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,16 @@ private static List<EformReportDataItemModel> GetReportDataItemList(BaseDbContex
151151

152152
dbContext.EformReportDataItems.Add(eformReportDataItem);
153153
dbContext.SaveChanges();
154+
155+
eformReportDataItem = dbContext.EformReportDataItems
156+
.Include(x => x.NestedDataItems)
157+
.ThenInclude(x => x.NestedDataItems)
158+
.FirstOrDefault(x => x.Id == eformReportDataItem.Id);
159+
160+
parentItems.Add(eformReportDataItem);
154161
}
155162

156-
parentItems.Add(eformReportDataItem);
163+
157164
}
158165

159166
var result = new List<EformReportDataItemModel>();
@@ -306,6 +313,15 @@ public async Task<OperationDataResult<EformReportFullModel>> GetEformReport(int
306313
};
307314
_dbContext.EformReportElements.Add(reportElement);
308315
await _dbContext.SaveChangesAsync();
316+
317+
reportElement = await _dbContext.EformReportElements
318+
.Include(x => x.DataItems)
319+
.ThenInclude(x => x.NestedDataItems)
320+
.Include(x => x.NestedElements)
321+
.ThenInclude(x => x.DataItems)
322+
.ThenInclude(x => x.NestedDataItems)
323+
.Where(x => x.EformReportId == eformReport.Id && x.ElementId == templateElement.Id)
324+
.FirstOrDefaultAsync();
309325
}
310326

311327

@@ -404,8 +420,8 @@ public async Task<OperationResult> UpdateEformReport(EformReportFullModel reques
404420
if (dataItems.Any())
405421
{
406422
var dataItemsIds = dataItems.Select(x => x.Id).ToArray();
407-
var eformDataItems = _dbContext.EformReportDataItems
408-
.Where(x => dataItemsIds.Contains(x.Id));
423+
var eformDataItems = await _dbContext.EformReportDataItems
424+
.Where(x => dataItemsIds.Contains(x.Id)).ToListAsync();
409425

410426
foreach (var eformDataItem in eformDataItems)
411427
{

eform-client/src/app/common/services/eform/eform-report.service.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import {
1212
import {BaseService} from 'src/app/common/services/base.service';
1313

1414
const TemplateReportMethods = {
15-
Templates: '/api/templates/',
15+
Report: '/api/templates/',
16+
UpdateReport: '/api/templates/report',
1617
};
1718

1819
@Injectable()
@@ -22,10 +23,10 @@ export class EformReportService extends BaseService {
2223
}
2324

2425
getSingle(templateId: number): Observable<OperationDataResult<EformFullReportModel>> {
25-
return this.get(TemplateReportMethods.Templates + templateId + '/report');
26+
return this.get(TemplateReportMethods.Report + templateId + '/report');
2627
}
2728

28-
updateSingle(model: EformReportModel): Observable<OperationResult> {
29-
return this.put(TemplateReportMethods.Templates, model);
29+
updateSingle(model: EformFullReportModel): Observable<OperationResult> {
30+
return this.put(TemplateReportMethods.UpdateReport, model);
3031
}
3132
}

eform-client/src/app/modules/eforms/components/eforms-page/eforms-page.component.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,13 @@
171171
unarchive
172172
</i>
173173
</button>
174-
<!--<button class="btn btn-accent text-black-50 btn-icon mb-2" id="eform-report-button"-->
175-
<!--[routerLink]="['./report', templateDto.id]"-->
176-
<!--mdbTooltip="{{ 'Jasper Report' | translate }}">-->
177-
<!--<i class="material-icons">-->
178-
<!--unarchive-->
179-
<!--</i>-->
180-
<!--</button>-->
174+
<button class="btn btn-accent text-black-50 btn-icon mb-2" id="eform-report-button"
175+
[routerLink]="['./report', templateDto.id]"
176+
mdbTooltip="{{ 'Jasper Report' | translate }}">
177+
<i class="material-icons">
178+
unarchive
179+
</i>
180+
</button>
181181
</div>
182182
</td>
183183
</tr>

eform-client/src/app/modules/eforms/eform-report/components/eform-report-block/eform-report-block.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<div class="card-body">
44
<app-eform-report-switch
55
[dragulaContainerName]="element.id + element.label"
6+
(dataItemListChanged)="onDataItemListChanged($event)"
67
[dataItemList]="element.dataItemList"></app-eform-report-switch>
78
</div>
89
</div>
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
import {Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren} from '@angular/core';
2-
import {CaseEditRequest, ElementDto} from 'src/app/common/models';
2+
import {EformReportDataItem, EformReportElement} from 'src/app/common/models';
33

44
@Component({
55
selector: 'app-eform-report-block',
66
templateUrl: './eform-report-block.component.html',
77
styleUrls: ['./eform-report-block.component.scss']
88
})
99
export class EformReportBlockComponent implements OnInit {
10-
@ViewChildren(EformReportBlockComponent) editElements: QueryList<EformReportBlockComponent>;
11-
@Input() element: ElementDto = new ElementDto();
10+
@Input() element: EformReportElement = new EformReportElement();
1211
@Output() onElementVisibilityChanged: EventEmitter<{id: number, visibility: boolean}> =
1312
new EventEmitter<{id: number, visibility: boolean}>();
13+
@Output() elementChanged: EventEmitter<EformReportElement> = new EventEmitter();
1414
constructor() { }
1515

1616
ngOnInit() {
1717
}
1818

19+
onDataItemListChanged(e: EformReportDataItem[]) {
20+
this.element.dataItemList = e;
21+
this.elementChanged.emit(this.element);
22+
}
1923
}

eform-client/src/app/modules/eforms/eform-report/components/eform-report-elements/element-audio/element-audio.component.html

Lines changed: 0 additions & 12 deletions
This file was deleted.

eform-client/src/app/modules/eforms/eform-report/components/eform-report-elements/element-audio/element-audio.component.scss

Whitespace-only changes.

eform-client/src/app/modules/eforms/eform-report/components/eform-report-elements/element-audio/element-audio.component.ts

Lines changed: 0 additions & 24 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import {Component, Input, OnInit} from '@angular/core';
2-
import {FieldValueDto} from 'src/app/common/models';
2+
import {EformReportDataItemValue, FieldValueDto} from 'src/app/common/models';
33

44
@Component({
55
selector: 'report-element-multiselect',
66
templateUrl: './element-multiselect.component.html',
77
styleUrls: ['./element-multiselect.component.scss']
88
})
99
export class ElementMultiselectComponent implements OnInit {
10-
fieldValueObj: FieldValueDto = new FieldValueDto();
10+
fieldValueObj: EformReportDataItemValue = new EformReportDataItemValue();
1111

1212
@Input()
1313
get fieldValue() {
@@ -16,50 +16,11 @@ export class ElementMultiselectComponent implements OnInit {
1616

1717
set fieldValue(val) {
1818
this.fieldValueObj = val;
19-
this.initCheckBoxes();
2019
}
2120

2221
constructor() {
2322
}
2423

2524
ngOnInit() {
2625
}
27-
28-
updateCheckedOptions(item: any, e: any) {
29-
if (!item || !e.target) {
30-
return;
31-
}
32-
if (e.target.checked) {
33-
item.selected = true;
34-
} else {
35-
item.selected = false;
36-
}
37-
this.refreshValue();
38-
}
39-
40-
initCheckBoxes() {
41-
var str = this.fieldValueObj.value;
42-
var res = str.split('|');
43-
this.fieldValueObj.keyValuePairList.forEach(x => {
44-
if (this.arrayContains(x.key.toString(), res)) {
45-
x.selected = true;
46-
} else {
47-
false;
48-
}
49-
});
50-
}
51-
52-
arrayContains(needle, arrhaystack) {
53-
return (arrhaystack.indexOf(needle) > -1);
54-
}
55-
56-
refreshValue() {
57-
let str = [];
58-
this.fieldValueObj.keyValuePairList.forEach(x => {
59-
if (x.selected) {
60-
str.push(x.key);
61-
}
62-
});
63-
this.fieldValueObj.value = str.join('|');
64-
}
6526
}

eform-client/src/app/modules/eforms/eform-report/components/eform-report-elements/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
export * from './element-audio/element-audio.component';
21
export * from './element-checkbox/element-checkbox.component';
32
export * from './element-comment/element-comment.component';
43
export * from './element-container/element-container.component';

0 commit comments

Comments
 (0)