Skip to content

Commit 92a4b99

Browse files
authored
Merge pull request #51 from Gid733/master
Refactoring container element
2 parents 96d3f56 + 376cd66 commit 92a4b99

File tree

11 files changed

+156
-118
lines changed

11 files changed

+156
-118
lines changed

eform-client/src/app/components/auth/auth.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ export class AuthComponent implements OnInit {
8787
getSettings() {
8888
this.settingsService.getLoginPageSettings().subscribe((data) => {
8989
if (data && data.success) {
90-
debugger;
9190
this.loginPageSettings = data.model;
9291
if (this.loginPageSettings.imageLink && this.loginPageSettings.imageLinkVisible) {
9392
this.loginImage = 'api/images/login-page-images?fileName=' + this.loginPageSettings.imageLink;

eform-client/src/app/modules/advanced/components/workers/workers.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ export class WorkersComponent implements OnInit {
9292
}
9393

9494
selectSiteForWorker(e: any) {
95-
debugger;
9695
if (e.target.value != 'null') {
9796
let foundSiteDto = this.simpleSites.find(x => x.siteId === +e.target.value);
9897
this.newWorkerModel.siteId = foundSiteDto.siteId;

eform-client/src/app/modules/cases/cases.module.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {CasesComponent} from './components/cases.component';
77
import {CasesTableComponent} from './components/cases-table/cases-table.component';
88
import {CasesEditComponent} from './components/cases-edit/cases-edit.component';
99
import {CaseEditElementComponent} from './components/case-edit-element/case-edit-element.component';
10+
import {CaseEditSwitchComponent} from 'app/modules/cases/components/case-edit-switch/case-edit-switch.component';
1011

1112
import {
1213
ElementCheckboxComponent,
@@ -17,23 +18,27 @@ import {
1718
ElementPictureComponent,
1819
ElementPdfComponent,
1920
ElementSingleselectComponent,
21+
ElementContainerComponent,
2022
ElementTextComponent,
2123
ElementInfoboxComponent,
2224
ElementTimerComponent,
2325
ElementSignatureComponent,
2426
TrumbowygComponent
2527
} from './components/case-elements';
28+
import {CollapseModule} from 'ngx-bootstrap';
2629

2730
@NgModule({
2831
imports: [
2932
CommonModule,
3033
NgxGalleryModule,
3134
FormsModule,
32-
CasesRoutingModule
35+
CasesRoutingModule,
36+
CollapseModule.forRoot()
3337
],
3438
declarations: [CasesComponent,
3539
TrumbowygComponent,
3640
CasesEditComponent,
41+
CaseEditSwitchComponent,
3742
CasesTableComponent,
3843
CaseEditElementComponent,
3944
ElementCommentComponent,
@@ -42,6 +47,7 @@ import {
4247
ElementSingleselectComponent,
4348
ElementNumberComponent,
4449
ElementTextComponent,
50+
ElementContainerComponent,
4551
ElementPictureComponent,
4652
ElementCheckboxComponent,
4753
ElementDateComponent,

eform-client/src/app/modules/cases/components/case-edit-element/case-edit-element.component.html

Lines changed: 1 addition & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -28,73 +28,7 @@
2828
</div>
2929
</td>
3030
</tr>
31-
<ng-container *ngIf="element.dataItemList">
32-
<ng-container *ngFor="let dataItem of element.dataItemList">
33-
34-
<!--<pre>{{dataItem | json}}</pre>-->
35-
<!--<pre>{{dataItem.fieldType | json}}</pre>
36-
-->
37-
38-
<tr [style.backgroundColor]="getStyleColorFromDataItem(dataItem)">
39-
<td>
40-
<strong>{{dataItem.label}}</strong>
41-
<!--<div [innerHTML]="dataItem.description.inderValue"></div>-->
42-
</td>
43-
</tr>
44-
<tr [style.backgroundColor]="getStyleColorFromDataItem(dataItem)">
45-
<td>
46-
47-
<div [ngSwitch]="dataItem.fieldType">
48-
<div *ngSwitchCase="'Picture'">
49-
<element-picture [fieldValues]="dataItem.fieldValues"></element-picture>
50-
</div>
51-
<div *ngSwitchCase="'CheckBox'">
52-
<element-checkbox [(fieldValue)]="dataItem.fieldValues[0]"></element-checkbox>
53-
</div>
54-
<div *ngSwitchCase="'Number'">
55-
<element-number [(fieldValue)]="dataItem.fieldValues[0]"></element-number>
56-
</div>
57-
<div *ngSwitchCase="'Comment'">
58-
<element-comment (ngModelChange)="dsvsdv($event)"
59-
[(fieldValue)]="dataItem.fieldValues[0]"></element-comment>
60-
</div>
61-
<div *ngSwitchCase="'Text'">
62-
<element-text [(fieldValue)]="dataItem.fieldValues[0]"></element-text>
63-
</div>
64-
<ng-container *ngSwitchCase="'Date'">
65-
<element-date [(ngModel)]="dataItem.fieldValues[0].value"
66-
[datepicker]="{format: 'yyyy-mm-dd' }"
67-
[timepicker]="false">
68-
</element-date>
69-
</ng-container>
70-
<div *ngSwitchCase="'SingleSelect'">
71-
<element-singleselect [(fieldValue)]="dataItem.fieldValues[0]"></element-singleselect>
72-
</div>
73-
<div *ngSwitchCase="'MultiSelect'">
74-
<element-multiselect [(fieldValue)]="dataItem.fieldValues[0]"></element-multiselect>
75-
</div>
76-
<div *ngSwitchCase="'ShowPdf'">
77-
<element-pdf [dataItem]="dataItem"></element-pdf>
78-
</div>
79-
<div *ngSwitchCase="'None'">
80-
<element-infobox [(fieldValue)]="dataItem.fieldValues[0]"></element-infobox>
81-
</div>
82-
<div *ngSwitchCase="'Timer'">
83-
<element-timer [(fieldValue)]="dataItem.fieldValues[0]"></element-timer>
84-
</div>
85-
<div *ngSwitchCase="'Signature'">
86-
<element-signature [(fieldValue)]="dataItem.fieldValues[0]"></element-signature>
87-
</div>
88-
<!--<div *ngSwitchCase="'SaveButton'">-->
89-
<!--<pre>{{dataItem | json}}</pre>-->
90-
<!--SaveButton-->
91-
<!--</div>-->
92-
<div *ngSwitchDefault></div>
93-
</div>
94-
</td>
95-
</tr>
96-
</ng-container>
97-
</ng-container>
31+
<tbody case-edit-switch [dataItemList]="element.dataItemList"></tbody>
9832
<ng-container *ngIf="element.extraFieldsEnabled">
9933
<tr>
10034
<td>

eform-client/src/app/modules/cases/components/case-edit-element/case-edit-element.component.ts

Lines changed: 22 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import {
33
CaseEditRequest,
44
CaseEditRequestField,
55
CaseEditRequestFieldValue,
6-
CaseElement
6+
CaseElement,
7+
CaseDataItem
78
} from 'app/models';
89

910
@Component({
@@ -29,62 +30,36 @@ export class CaseEditElementComponent {
2930
this.requestModels = [];
3031
}
3132

33+
extractDataItemList(dataItemList: Array<CaseDataItem> ) {
34+
dataItemList.forEach(item => {
35+
const elem = new CaseEditRequestField();
36+
elem.fieldType = item.fieldType;
37+
if (item.fieldValues && item.fieldValues.length > 0) {
38+
item.fieldValues.forEach(fieldValue => {
39+
const val = new CaseEditRequestFieldValue();
40+
val.fieldId = fieldValue.fieldId;
41+
val.value = fieldValue.value;
42+
elem.fieldValues.push(val);
43+
});
44+
}
45+
if (item.dataItemList && item.dataItemList.length > 0) {
46+
this.extractDataItemList(item.dataItemList);
47+
}
48+
this.requestModel.fields.push(elem);
49+
});
50+
}
51+
3252
extractData() {
3353
this.clearRequestModel();
3454
this.requestModel.status = this.element.status;
3555
this.requestModel.id = this.element.id;
36-
// if it is single element
3756
if (this.element.dataItemList) {
38-
this.element.dataItemList.forEach(item => {
39-
const elem = new CaseEditRequestField();
40-
elem.fieldType = item.fieldType;
41-
if (item.fieldValues && item.fieldValues.length > 0) {
42-
item.fieldValues.forEach(fieldValue => {
43-
const val = new CaseEditRequestFieldValue();
44-
val.fieldId = fieldValue.fieldId;
45-
val.value = fieldValue.value;
46-
elem.fieldValues.push(val);
47-
});
48-
}
49-
if (item.dataItemList && item.dataItemList.length > 0) {
50-
51-
}
52-
this.requestModel.fields.push(elem);
53-
});
57+
this.extractDataItemList(this.element.dataItemList);
5458
}
55-
56-
// else if (this.element.dataItemGroupList ) {
57-
// this.element.dataItemGroupList.forEach(y => {
58-
// const group = new CaseEditRequestGroupField();
59-
// group.id = y.id;
60-
// group.label = y.label;
61-
// y.dataItemList.forEach(item => {
62-
// const elem = new CaseEditRequestField();
63-
// elem.fieldType = item.fieldType;
64-
// item.fieldValues.forEach(fieldValue => {
65-
// const val = new CaseEditRequestFieldValue();
66-
// val.fieldId = fieldValue.fieldId;
67-
// val.value = fieldValue.value;
68-
// elem.fieldValues.push(val);
69-
// });
70-
// group.fields.push(elem);
71-
// });
72-
// this.requestModel.groupFields.push(group);
73-
// });
74-
// }
75-
7659
this.editElements.forEach(x => {
7760
x.extractData();
7861
this.requestModels.push(x.requestModel);
7962
});
8063
this.requestModel.elementList = this.requestModels;
8164
}
82-
83-
getStyleColorFromDataItem(dataItem: any) {
84-
let style = '';
85-
if (dataItem.Color) {
86-
style = '#' + dataItem.Color + '';
87-
}
88-
return style;
89-
}
9065
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<ng-container *ngIf="dataItemList">
2+
<ng-container *ngFor="let dataItem of dataItemList; let i = index">
3+
<tr [style.backgroundColor]="getStyleColorFromDataItem(dataItem)">
4+
<td>
5+
<strong>{{dataItem.label}}</strong>
6+
</td>
7+
</tr>
8+
<tr [style.backgroundColor]="getStyleColorFromDataItem(dataItem)">
9+
<td>
10+
11+
<div [ngSwitch]="dataItem.fieldType">
12+
<div *ngSwitchCase="'Picture'">
13+
<element-picture [fieldValues]="dataItem.fieldValues"></element-picture>
14+
</div>
15+
<div *ngSwitchCase="'CheckBox'">
16+
<element-checkbox [(fieldValue)]="dataItem.fieldValues[0]"></element-checkbox>
17+
</div>
18+
<div *ngSwitchCase="'Number'">
19+
<element-number [(fieldValue)]="dataItem.fieldValues[0]"></element-number>
20+
</div>
21+
<div *ngSwitchCase="'Comment'">
22+
<element-comment [(fieldValue)]="dataItem.fieldValues[0]"></element-comment>
23+
</div>
24+
<div *ngSwitchCase="'Text'">
25+
<element-text [(fieldValue)]="dataItem.fieldValues[0]"></element-text>
26+
</div>
27+
<ng-container *ngSwitchCase="'Date'">
28+
<element-date [(ngModel)]="dataItem.fieldValues[0].value"
29+
[datepicker]="{format: 'yyyy-mm-dd' }"
30+
[timepicker]="false">
31+
</element-date>
32+
</ng-container>
33+
<div *ngSwitchCase="'SingleSelect'">
34+
<element-singleselect [(fieldValue)]="dataItem.fieldValues[0]"></element-singleselect>
35+
</div>
36+
<div *ngSwitchCase="'MultiSelect'">
37+
<element-multiselect [(fieldValue)]="dataItem.fieldValues[0]"></element-multiselect>
38+
</div>
39+
<div *ngSwitchCase="'ShowPdf'">
40+
<element-pdf [dataItem]="dataItem"></element-pdf>
41+
</div>
42+
<div *ngSwitchCase="'None'">
43+
<element-infobox [(fieldValue)]="dataItem.fieldValues[0]"></element-infobox>
44+
</div>
45+
<div *ngSwitchCase="'Timer'">
46+
<element-timer [(fieldValue)]="dataItem.fieldValues[0]"></element-timer>
47+
</div>
48+
<div *ngSwitchCase="'Signature'">
49+
<element-signature [(fieldValue)]="dataItem.fieldValues[0]"></element-signature>
50+
</div>
51+
52+
<div *ngSwitchCase="'Signature'">
53+
<element-signature [(fieldValue)]="dataItem.fieldValues[0]"></element-signature>
54+
</div>
55+
56+
<div *ngSwitchCase="'Signature'">
57+
<element-signature [(fieldValue)]="dataItem.fieldValues[0]"></element-signature>
58+
</div>
59+
<div *ngSwitchDefault></div>
60+
</div>
61+
<div *ngIf="dataItem.label == 'Group open/close'">
62+
<element-container [(fieldValue)]="dataItem.dataItemList" [dataItemLabel]="dataItem.description.inderValue"></element-container>
63+
</div>
64+
</td>
65+
</tr>
66+
</ng-container>
67+
</ng-container>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import {Component, Input} from '@angular/core';
2+
import {CaseDataItem} from 'app/models/cases/response/data-item.model';
3+
4+
@Component({
5+
selector: '[case-edit-switch]',
6+
templateUrl: './case-edit-switch.component.html'
7+
})
8+
9+
export class CaseEditSwitchComponent {
10+
@Input() dataItemList: Array<CaseDataItem> = [];
11+
12+
constructor() {
13+
}
14+
15+
getStyleColorFromDataItem(dataItem: any) {
16+
let style = '';
17+
if (dataItem.Color) {
18+
style = '#' + dataItem.Color + '';
19+
}
20+
return style;
21+
}
22+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<div class="panel panel-default">
2+
<div class="panel-heading" (click)="isCollapsed = !isCollapsed" style="cursor: pointer">
3+
<strong>{{dataItemLabel}}</strong>
4+
<i class="glyphicon glyphicon-plus" *ngIf="isCollapsed"></i>
5+
<i class="glyphicon glyphicon-minus" *ngIf="!isCollapsed"></i>
6+
</div>
7+
<div [collapse]="isCollapsed" class="panel-body" >
8+
<ng-container *ngIf="dataItemList">
9+
<table class="table">
10+
<tbody case-edit-switch [dataItemList]="dataItemList"></tbody>
11+
</table>
12+
</ng-container>
13+
</div>
14+
</div>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import {Component, Input} from '@angular/core';
2+
import {CaseDataItem} from 'app/models/cases/response/data-item.model';
3+
4+
@Component({
5+
selector: 'element-container',
6+
templateUrl: './element-container.component.html'
7+
})
8+
export class ElementContainerComponent {
9+
isCollapsed = true;
10+
dataItemList: Array<CaseDataItem> = [];
11+
@Input() dataItemLabel: string;
12+
@Input()
13+
get fieldValue() {
14+
return this.dataItemList;
15+
}
16+
set fieldValue(val) {
17+
this.dataItemList = val;
18+
}
19+
20+
constructor() {
21+
}
22+
}

eform-client/src/app/modules/cases/components/case-elements/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ export * from './element-pdf/element-text.component'
1111
export * from './element-infobox/element-infobox.component'
1212
export * from './element-timer/element-timer.component'
1313
export * from './element-signature/element-signature.component'
14+
export * from './element-container/element-container.component'

0 commit comments

Comments
 (0)