Skip to content

Commit 1fe79ad

Browse files
committed
Added tags logic
1 parent 9735277 commit 1fe79ad

File tree

7 files changed

+76
-15
lines changed

7 files changed

+76
-15
lines changed

eform-client/src/app/common/models/eforms/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ export * from './template-tags-update.model';
44
export * from './template-list.model';
55
export * from './template-request.model';
66
export * from './deploy-checkbox.model';
7-
7+
export * from './saved-tag.model';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export class SavedTagModel {
2+
tagId: number;
3+
tagName: string;
4+
}

eform-client/src/app/common/services/eform/e-form-tag.service.ts renamed to eform-client/src/app/common/services/eform/eform-tag.service.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,20 @@ import {Observable} from 'rxjs';
66
import {
77
CommonDictionaryModel,
88
OperationDataResult,
9-
OperationResult,
9+
OperationResult, SavedTagModel,
1010
TemplateTagsUpdateModel
1111
} from 'src/app/common/models';
1212
import {BaseService} from 'src/app/common/services/base.service';
1313

1414
export let TemplateTagMethods = {
1515
Tags: 'api/tags',
1616
DeleteTag: 'api/tags/delete',
17-
TemplateTags: 'api/tags/template'
17+
TemplateTags: 'api/tags/template',
18+
SavedTags: 'api/tags/saved'
1819
};
1920

2021
@Injectable()
21-
export class EFormTagService extends BaseService {
22+
export class EformTagService extends BaseService {
2223
constructor(private _http: HttpClient, router: Router, toastrService: ToastrService) {
2324
super(_http, router, toastrService);
2425
}
@@ -27,6 +28,18 @@ export class EFormTagService extends BaseService {
2728
return this.get(TemplateTagMethods.Tags);
2829
}
2930

31+
getSavedTags(): Observable<OperationDataResult<any>> {
32+
return this.get(TemplateTagMethods.SavedTags);
33+
}
34+
35+
addSavedTag(model: SavedTagModel): Observable<OperationResult> {
36+
return this.put(TemplateTagMethods.SavedTags, model);
37+
}
38+
39+
deleteSavedTag(tagId: number): Observable<OperationResult> {
40+
return this.delete(TemplateTagMethods.SavedTags + '?tagId=' + tagId);
41+
}
42+
3043
deleteTag(tagId: number): Observable<OperationResult> {
3144
return this.get(TemplateTagMethods.DeleteTag + '?tagId=' + tagId);
3245
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export * from './eform.service';
2-
export * from './e-form-tag.service';
2+
export * from './eform-tag.service';

eform-client/src/app/modules/eforms/components/eform-edit-tags-modal/eform-edit-tags-modal.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angula
22
import {CommonDictionaryModel} from 'src/app/common/models/common';
33
import {TemplateDto} from 'src/app/common/models/dto';
44
import {TemplateTagsUpdateModel} from 'src/app/common/models/eforms';
5-
import {EFormTagService} from 'src/app/common/services/eform';
5+
import {EformTagService} from 'src/app/common/services/eform';
66

77
@Component({
88
selector: 'app-eform-edit-tags-modal',
@@ -20,7 +20,7 @@ export class EformEditTagsModalComponent implements OnInit {
2020
tagForRemoval: number;
2121
spinnerStatus = false;
2222

23-
constructor(private eFormTagService: EFormTagService) { }
23+
constructor(private eFormTagService: EformTagService) { }
2424

2525
ngOnInit() {
2626
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@
2626
[placeholder]="'Tags' | translate"
2727
[items]="availableTags"
2828
[(ngModel)]="templateRequestModel.tagIds"
29-
(ngModelChange)="loadAllTemplates();"
29+
(add)="saveTag($event)"
30+
(remove)="removeSavedTag($event)"
31+
[clearable]="false"
3032
[bindLabel]="'name'"
3133
[bindValue]="'id'"
3234
id="tagSelector"

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

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import {Component, OnInit, ViewChild} from '@angular/core';
22
import {CommonDictionaryModel} from 'src/app/common/models/common';
33
import {TemplateDto} from 'src/app/common/models/dto';
4-
import {TemplateListModel, TemplateRequestModel} from 'src/app/common/models/eforms';
5-
import {EFormService, EFormTagService} from 'src/app/common/services/eform';
4+
import {SavedTagModel, TemplateListModel, TemplateRequestModel} from 'src/app/common/models/eforms';
5+
import {EFormService, EformTagService} from 'src/app/common/services/eform';
66

77
@Component({
88
selector: 'app-eform-page',
@@ -29,10 +29,9 @@ export class EformsPageComponent implements OnInit {
2929
'Test1'
3030
];
3131

32-
constructor(private eFormService: EFormService, private eFormTagService: EFormTagService) { }
32+
constructor(private eFormService: EFormService, private eFormTagService: EformTagService) { }
3333

3434
ngOnInit() {
35-
this.loadAllTemplates();
3635
this.loadAllTags();
3736
}
3837

@@ -47,11 +46,54 @@ export class EformsPageComponent implements OnInit {
4746
}
4847

4948
loadAllTags() {
50-
this.eFormTagService.getAvailableTags().subscribe((data => {
49+
this.spinnerStatus = true;
50+
this.eFormTagService.getAvailableTags().subscribe((data) => {
5151
if (data && data.success) {
5252
this.availableTags = data.model;
53+
this.loadSelectedUserTags();
5354
}
54-
}));
55+
}, (error) => {
56+
this.spinnerStatus = false;
57+
});
58+
}
59+
60+
saveTag(e: any) {
61+
const savedTagModel = new SavedTagModel();
62+
savedTagModel.tagId = e.id;
63+
savedTagModel.tagName = e.name;
64+
this.spinnerStatus = true;
65+
this.eFormTagService.addSavedTag(savedTagModel).subscribe((data) => {
66+
if (data && data.success) {
67+
this.templateRequestModel.tagIds.push(e.id);
68+
this.loadAllTemplates();
69+
}
70+
}, (error) => {
71+
this.spinnerStatus = false;
72+
});
73+
}
74+
75+
removeSavedTag(e: any) {
76+
this.spinnerStatus = true;
77+
this.eFormTagService.deleteSavedTag(e.value.id).subscribe((data) => {
78+
if (data && data.success) {
79+
this.templateRequestModel.tagIds = this.templateRequestModel.tagIds.filter(x => x !== e.id);
80+
this.loadAllTemplates();
81+
}
82+
}, (error) => {
83+
this.spinnerStatus = false;
84+
});
85+
}
86+
87+
loadSelectedUserTags() {
88+
this.spinnerStatus = true;
89+
this.eFormTagService.getSavedTags().subscribe((data) => {
90+
if (data && data.success) {
91+
this.templateRequestModel.tagIds = data.model.tagList.map(x => x.tagId);
92+
this.loadAllTemplates();
93+
}
94+
}, (error) => {
95+
this.spinnerStatus = false;
96+
});
5597
}
5698

5799
onLabelInputChanged(label: string) {
@@ -84,7 +126,7 @@ export class EformsPageComponent implements OnInit {
84126
}
85127

86128
downloadItem(itemName: string, templateId: number) {
87-
if (itemName == 'XML') {
129+
if (itemName === 'XML') {
88130
window.open('/api/template-files/download-eform-xml/' + templateId, '_blank');
89131
} else {
90132
window.open('/api/template-files/csv/' + templateId, '_blank');

0 commit comments

Comments
 (0)