From 3b6274e0e132072dd7c727bc60702079717bb51c Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Wed, 28 Feb 2018 12:35:54 +0000 Subject: [PATCH] 1. DivId is related to >=1 Pages (not just one) - there is no check that AT LEAST one Page was selected. git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-admin-portal/trunk@50971 d315682c-612b-4755-9ff5-7f18f6832af3 --- app/domain/divId.ts | 2 +- app/pages/divId/divId-form.component.html | 25 +++- app/pages/divId/divId-form.component.ts | 140 +++++++++++++++++- app/pages/divId/divIds.component.html | 7 +- app/pages/divId/divIds.component.ts | 18 +++ .../div-help-contents.component.html | 5 +- .../div-help-contents.component.ts | 14 +- app/pages/modal-form.component.ts | 3 +- 8 files changed, 196 insertions(+), 18 deletions(-) diff --git a/app/domain/divId.ts b/app/domain/divId.ts index 823dce4..f77723e 100644 --- a/app/domain/divId.ts +++ b/app/domain/divId.ts @@ -4,7 +4,7 @@ import {Community} from './community'; export interface DivId { _id: string; name: string; - page: string | Page; + pages: string[] | Page[]; community: string | Community; } diff --git a/app/pages/divId/divId-form.component.html b/app/pages/divId/divId-form.component.html index f137f13..2bc5f52 100644 --- a/app/pages/divId/divId-form.component.html +++ b/app/pages/divId/divId-form.component.html @@ -1,10 +1,33 @@
-
+ + +
+ +
+
{{page.name}}, 
+ + +
+ + + + + + + + {{page.name}} + +
+
+ +
+
diff --git a/app/pages/divId/divId-form.component.ts b/app/pages/divId/divId-form.component.ts index a73588a..df99c51 100644 --- a/app/pages/divId/divId-form.component.ts +++ b/app/pages/divId/divId-form.component.ts @@ -17,6 +17,10 @@ export class DivIdFormComponent implements OnInit{ pageId: string; @Input('availablePages') availablePages : Page[] = []; + @Input('formPages') + formPages: Page[] = []; + + private gotPages: boolean = false; public errorMessage: string; @@ -25,7 +29,7 @@ export class DivIdFormComponent implements OnInit{ ngOnInit(): void { } - +/* public get form() { return this._fb.group({ _id : '', @@ -43,11 +47,135 @@ export class DivIdFormComponent implements OnInit{ community: this.communityPid }); } +*/ - handleError(message: string, error) { - if(error == null) { - this.reset(); - } - this.errorMessage = message + ' (Server responded: ' + error + ')'; + + +public toggle() { + this.myForm.value.isCollapsed = !this.myForm.value.isCollapsed; +/* + if(!this.myForm.value.isCollapsed) { + let includedPages: Set = new Set(); + for(let pageName of this.myForm.value.pages) { + includedPages.add(pageName._id); } + + let allPages = this.availablePages; + + let self = this; + allPages.forEach(function (status, page, map) { + if(includedPages.has(page._id)) { + self.allPages.set(page, true); + } else { + self.allEntities.set(page, false); + } community: this.communityPid + + }); + + + if(!this.gotPages && this.myForm.value.pages.length > 0) { + this.gotPages = true; + this.getPages(); + } + } +*/ +} +/* +public getPages() { + let self = this; + this._helpContentService.getPages().subscribe( + pages => { + for(let page of pages) { + let index = self.myForm.value.pages.indexOf(page._id); + if(index >= 0) { + self.formPages[index] = page; + } + } + }, + error => this.handleError('System error retrieving pages', error)); +} +*/ + +public getKeys( map) { + return Array.from(map.keys()); +} + +public get form() { + return this._fb.group({ + _id: '', + name : ['', Validators.required], + pages: this._fb.array([]), + //pages: [[], Validators.required], + community: this.communityPid, + isCollapsed: [true] + }); +} + +public reset() { + console.info("reset"); + this.myForm.patchValue({ + _id : '', + name : '', + community: this.communityPid, + isCollapsed: [true] + }); + + this.setPages([]); + //this.initPages(); + this.formPages = []; +} + +public get pages(): FormArray { + return this.myForm.get('pages') as FormArray; +}; + +setPages(pages: string[]) { + console.info(pages); + //const pageFGs = pages.map(page => this._fb.group(page)); + //const pageFormArray = this._fb.array(pageFGs); + const pageFormArray = this._fb.array(pages); + //const pageFormArray = this.myForm.pages.patchValue([]); + this.myForm.setControl('pages', pageFormArray); +} +/* +initPages() { + let ctrl = this.form.controls.pages; + ctrl.push(this._fb.group({ + page: ['', Validators.required] + })) +} +*/ +indexOfPageInForm(pageId: string): number { + let index: number = -1; + for(let i=0; i= 0) { + this.formPages.splice(index, 1); + //this.myForm.value.pages.splice(index, 1); + } + } +} + +handleError(message: string, error) { + if(error == null) { + this.reset(); + } + this.errorMessage = message + ' (Server responded: ' + error + ')'; +} } diff --git a/app/pages/divId/divIds.component.html b/app/pages/divId/divIds.component.html index b740edf..5af57b3 100644 --- a/app/pages/divId/divIds.component.html +++ b/app/pages/divId/divIds.component.html @@ -66,7 +66,10 @@
{{check.divId.community.name}}
-
{{check.divId.page.name}}
+ +
+ {{page.name}}, +
@@ -96,7 +99,7 @@ - + diff --git a/app/pages/divId/divIds.component.ts b/app/pages/divId/divIds.component.ts index adcd43c..d2e40cf 100644 --- a/app/pages/divId/divIds.component.ts +++ b/app/pages/divId/divIds.component.ts @@ -42,6 +42,7 @@ export class DivIdsComponent implements OnInit { public selectedCommunityPid: string; public communities: Community[] = []; public pages: Page[] = []; + public formPages: Page[] = []; ngOnInit() { this.formGroup = this.formComponent.form; @@ -144,7 +145,23 @@ export class DivIdsComponent implements OnInit { public editDivId(i : number) { let divId : DivId = this.checkboxes[i].divId; + this.formPages = divId.pages; + + let pageIds: string[] = []; + let index = 0; + for(let page of divId.pages) { + pageIds[index] = page._id; + index++; + } + //divId.pages = pageIds; + + let community: Community = divId.community; this.formGroup.patchValue(divId); + this.formGroup.patchValue({ + community: community._id + }); + this.formComponent.setPages(pageIds); + this.updateModal.showModal(); } @@ -191,6 +208,7 @@ export class DivIdsComponent implements OnInit { handleError(message: string, error) { if(error == null) { + console.info("handleError"); this.formComponent.reset(); } this.errorMessage = message + ' (Server responded: ' + error + ')'; diff --git a/app/pages/divhelpcontent/div-help-contents.component.html b/app/pages/divhelpcontent/div-help-contents.component.html index 97154a9..645a4c1 100644 --- a/app/pages/divhelpcontent/div-help-contents.component.html +++ b/app/pages/divhelpcontent/div-help-contents.component.html @@ -91,7 +91,10 @@ name="entitiescb[]" value="{{check.divHelpContent._id}}" [(ngModel)]="check.checked"> -
{{check.divHelpContent.divId.page.name}}
+ +
+ {{page.name}}, +
{{check.divHelpContent.divId.community.name}}
diff --git a/app/pages/divhelpcontent/div-help-contents.component.ts b/app/pages/divhelpcontent/div-help-contents.component.ts index 7ba9741..8b127b5 100644 --- a/app/pages/divhelpcontent/div-help-contents.component.ts +++ b/app/pages/divhelpcontent/div-help-contents.component.ts @@ -139,8 +139,10 @@ export class DivHelpContentsComponent implements OnInit { });*/ for (let i = self.divHelpContents.length - 1; i >= 0; i -= 1) { let divId: DivId = self.divHelpContents[i].divId as DivId; - let page: Page = divId.page as Page; - if(!self.selectedPageId || (page._id == self.selectedPageId)) { + let pages: Page[] = divId.pages as Page[]; + const pageIds = pages.map(x => x._id); + + if(!self.selectedPageId || pageIds.includes(self.selectedPageId)/*(page._id == self.selectedPageId)*/) { self.checkboxes.push({divHelpContent : self.divHelpContents[i], checked : false}); } else { self.divHelpContents.splice(i, 1); @@ -212,7 +214,6 @@ export class DivHelpContentsComponent implements OnInit { () => { for(let id of ids) { let i = this.checkboxes.findIndex(_ => _.divHelpContent._id == id); - console.info(i); this.checkboxes[i].divHelpContent.isActive=status; } this.countDivHelpContents(); @@ -223,8 +224,6 @@ export class DivHelpContentsComponent implements OnInit { } public saveDivHelpContent(data : any):void { - console.log(data); - this._helpService.insertOrUpdateDivHelpContent(data).subscribe( divHelpContent => this.divHelpContentSavedSuccessfully(divHelpContent), error => this.handleError('System error saving the specified help content', error) @@ -250,7 +249,10 @@ export class DivHelpContentsComponent implements OnInit { public filterDivHelpContent(divHelpContent : DivHelpContent, filters : DivHelpContentFilterOptions) : boolean { let divId: DivId = divHelpContent.divId as DivId; - let idFlag = filters.id == '' || (divId.page)._id == filters.id; + let pages: Page[] = divId.pages; + let pageIds: string[] = pages.map(x => x._id); + + let idFlag = filters.id == '' || /*(divId.pages)._id == filters.id*/ pageIds.includes(filters.id); let activeFlag = filters.active == null || divHelpContent.isActive == filters.active; let textFlag = filters.text.toString() == '' || (divHelpContent.content).match(filters.text) != null; return idFlag && activeFlag && textFlag; diff --git a/app/pages/modal-form.component.ts b/app/pages/modal-form.component.ts index 6f55420..9d94dcf 100644 --- a/app/pages/modal-form.component.ts +++ b/app/pages/modal-form.component.ts @@ -125,14 +125,15 @@ export class ModalFormComponent { error => this.emmitError.emit(error) ); } else if(this.saveText == 'Save') { + //console.info( obj); this._helpService.saveDivId( obj).subscribe( data => this.emmitObject.emit(data), error => this.emmitError.emit(error) ); } } + this.hideModal(); } - this.hideModal(); } } }