diff --git a/app/app.component.html b/app/app.component.html
index 846f041..9907982 100644
--- a/app/app.component.html
+++ b/app/app.component.html
@@ -35,13 +35,53 @@
-->
+
+
diff --git a/app/pages/helpcontent/page-help-contents.component.ts b/app/pages/helpcontent/page-help-contents.component.ts
index 0679ad7..13d44df 100644
--- a/app/pages/helpcontent/page-help-contents.component.ts
+++ b/app/pages/helpcontent/page-help-contents.component.ts
@@ -3,6 +3,7 @@
*/
import { Component, ViewChild, OnInit } from '@angular/core';
import { FormGroup } from "@angular/forms";
+import { ActivatedRoute } from "@angular/router";
import { DeleteConfirmationDialogComponent } from "../delete-confirmation-dialog.component";
import { HelpContentService } from "../../services/help-content.service";
import { PageHelpContent, CheckPageHelpContent, PageHelpContentFilterOptions } from "../../domain/page-help-content";
@@ -50,12 +51,37 @@ export class PageHelpContentsComponent implements OnInit {
public selectedCommunityId: string;
+ public selectedPageId: string;
+
+ public pageType: string;
+
ngOnInit() {
- this.getCommunities();
+ this.route.queryParams.subscribe(params => {
+
+ this.selectedCommunityId = params['community'];
+ this.selectedPageId = params['page'];
+
+ if(this.selectedCommunityId && this.selectedPageId) {
+ this.getPageHelpContents(this.selectedCommunityId);
+ this.getPage(this.selectedPageId);
+ } else {
+ this.selectedPageId = "";
+ this.getCommunities();
+ }
+ });
// this.formGroup = this.formComponent.form;
}
- constructor(private _helpService: HelpContentService, private router : Router) {}
+ constructor(private route: ActivatedRoute, private _helpService: HelpContentService, private router : Router) {}
+
+ getPage(pageId: string) {
+ let self = this;
+ this._helpService.getPage(pageId).subscribe(
+ page => {
+ self.pageType = page.type;
+ }
+ );
+ }
getCommunities() {
let self = this;
@@ -95,9 +121,21 @@ export class PageHelpContentsComponent implements OnInit {
self.pageHelpContents = pageHelpContents as Array;
self.counter.all = self.pageHelpContents.length;
self.pageHelpContentsCheckboxes = [];
- self.pageHelpContents.forEach(_ => {
+ /*self.pageHelpContents.forEach(_ => {
+ let page: Page = _.page as Page;
+ if(!self.selectedPageId || (page._id == self.selectedPageId)) {
self.pageHelpContentsCheckboxes.push({pageHelpContent : _, checked : false});
- });
+ }
+ });*/
+ for (let i = self.pageHelpContents.length - 1; i >= 0; i -= 1) {
+ let page: Page = self.pageHelpContents[i].page as Page;
+ if(!self.selectedPageId || (page._id == self.selectedPageId)) {
+ self.pageHelpContentsCheckboxes.push({pageHelpContent : self.pageHelpContents[i], checked : false});
+ } else {
+ self.pageHelpContents.splice(i, 1);
+ }
+ }
+
self.countPageHelpContents();
},
error => this.handleError('System error retrieving page contents', error));
@@ -150,7 +188,11 @@ export class PageHelpContentsComponent implements OnInit {
public editPageHelpContent(_id : string) {
//this.router.navigate(['/pageContents/edit/', _id]);
- this.router.navigate( ['/pageContents/edit/'], { queryParams: { "pageContentId": _id, "communityId": this.selectedCommunityId } } );
+ if(this.selectedPageId) {
+ this.router.navigate( ['/pageContents/edit/'], { queryParams: { "pageContentId": _id, "communityId": this.selectedCommunityId, "pageId": this.selectedPageId } } );
+ } else {
+ this.router.navigate( ['/pageContents/edit/'], { queryParams: { "pageContentId": _id, "communityId": this.selectedCommunityId } } );
+ }
}
public togglePageHelpContents(status : boolean, ids : string[]) {
diff --git a/app/pages/helpcontent/pages.component.html b/app/pages/helpcontent/pages.component.html
index 56c3697..b42c140 100644
--- a/app/pages/helpcontent/pages.component.html
+++ b/app/pages/helpcontent/pages.component.html
@@ -52,11 +52,13 @@
0">
@@ -64,13 +66,13 @@
-
+
-
@@ -107,13 +115,13 @@
-
+
-
+
diff --git a/app/pages/helpcontent/pages.component.ts b/app/pages/helpcontent/pages.component.ts
index 9867d86..7c32a2b 100644
--- a/app/pages/helpcontent/pages.component.ts
+++ b/app/pages/helpcontent/pages.component.ts
@@ -2,6 +2,7 @@
* Created by stefania on 7/13/17.
*/
import { Component, ViewChild, OnInit } from '@angular/core';
+import { ActivatedRoute } from "@angular/router";
import { HelpContentService } from "../../services/help-content.service";
import { FormGroup } from "@angular/forms";
import { ModalFormComponent } from "../modal-form.component";
@@ -9,6 +10,7 @@ import { DeleteConfirmationDialogComponent } from "../delete-confirmation-dialog
import { PageFormComponent } from "./page-form.component";
import { CheckPage, Page } from "../../domain/page";
import { Community } from "../../domain/community";
+import { Entity } from "../../domain/entity";
@Component({
selector: 'pages',
@@ -44,26 +46,48 @@ export class PagesComponent implements OnInit {
public selectedCommunityId: string;
- ngOnInit() {
- this.getCommunities();
+ public pagesType: string;
+ ngOnInit() {
this.formGroup = this.formComponent.form;
+// this.getCommunities();
+
+ this.route.queryParams.subscribe(params => {
+ this.pagesType = "";
+ if(params['type']) {
+ this.pagesType = params['type'];
+ }
+ this.getCommunities();
+ });
}
- constructor(private _helpContentService: HelpContentService) {}
+ constructor(private route: ActivatedRoute, private _helpContentService: HelpContentService) {}
getPages(community_id: string) {
let self = this;
- this._helpContentService.getCommunityPages(community_id).subscribe(
- pages => {
- self.pages = pages;
- self.pagesCheckboxes = [];
- pages.forEach(_ => {
- self.pagesCheckboxes.push({page : _, checked : false});
- });
- },
- error => this.handleError('System error retrieving pages', error));
+ if(this.pagesType) {
+ this._helpContentService.getCommunityPagesByType(community_id, "?page_type="+this.pagesType).subscribe(
+ pages => {
+ self.pagesReturned(pages);
+ },
+ error => this.handleError('System error retrieving pages', error));
+ } else {
+ this._helpContentService.getCommunityPages(community_id).subscribe(
+ pages => {
+ self.pagesReturned(pages);
+ },
+ error => this.handleError('System error retrieving pages', error));
+ }
+ }
+
+ pagesReturned(pages: Page[]) {
+ this.pages = pages;
+ this.pagesCheckboxes = [];
+
+ pages.forEach(_ => {
+ this.pagesCheckboxes.push({page : _, checked : false});
+ });
}
getCommunities() {
@@ -121,7 +145,7 @@ export class PagesComponent implements OnInit {
public editPage(i : number) {
let page : Page = this.pagesCheckboxes[i].page;
this.formGroup.patchValue(page);
- const entityFGs = page.entities.map(entity => this.formComponent._fb.group(entity));
+ const entityFGs = (page.entities as Entity[]).map(entity => this.formComponent._fb.group(entity));
const entityFormArray = this.formComponent._fb.array(entityFGs);
this.formGroup.setControl('entities', entityFormArray);
console.info(this.formGroup.value);
diff --git a/app/pages/modal-form.component.ts b/app/pages/modal-form.component.ts
index f735a57..51025d0 100644
--- a/app/pages/modal-form.component.ts
+++ b/app/pages/modal-form.component.ts
@@ -10,6 +10,7 @@ import { Question } from "../domain/question";
import { HelpContentService } from "../services/help-content.service";
import { Page } from "../domain/page";
import { Entity } from "../domain/entity";
+import { Community } from "../domain/community";
@Component({
selector: 'modal-form',
@@ -76,6 +77,18 @@ export class ModalFormComponent {
data => this.emmitObject.emit(data),
error => this.emmitError.emit(error)
);
+ } else if (this.type == 'community') {
+ if(this.saveText == 'Update') {
+ this._helpService.updateCommunity( obj).subscribe(
+ data => this.emmitObject.emit(data),
+ error => this.emmitError.emit(error)
+ );
+ } else if(this.saveText == 'Save') {
+ this._helpService.saveCommunity( obj).subscribe(
+ data => this.emmitObject.emit(data),
+ error => this.emmitError.emit(error)
+ );
+ }
} else if (this.type == 'page') {
if(this.saveText == 'Update') {
this._helpService.updatePage( obj).subscribe(
diff --git a/app/services/help-content.service.ts b/app/services/help-content.service.ts
index 3f5552b..5ab0f3e 100644
--- a/app/services/help-content.service.ts
+++ b/app/services/help-content.service.ts
@@ -32,18 +32,72 @@ export class HelpContentService {
.catch(this.handleError);
}
+ getPage(pageId:string) {
+ return this.http.get(this._helpContentUrl + 'page/'+pageId)
+ .map(res => res.json())
+ .catch(this.handleError);
+ }
+
getCommunities() {
return this.http.get(this._helpContentUrl + 'community')
.map(res => > res.json())
.catch(this.handleError);
}
+ getCommunitiesFull() {
+ return this.http.get(this._helpContentUrl + 'communityFull')
+ .map(res => > res.json())
+ .catch(this.handleError);
+ }
+
+ getCommunityFull(community_id: string) {
+ return this.http.get(this._helpContentUrl + 'communityFull/'+community_id)
+ .map(res => res.json())
+ .catch(this.handleError);
+ }
+
+ saveCommunity(community: Community) {
+ let headers = new Headers({'Content-Type': 'application/json'});
+ let options = new RequestOptions({headers: headers});
+
+ HelpContentService.removeNulls(community);
+
+ return this.http.post(this._helpContentUrl + 'community/save', JSON.stringify(community), options)
+ .map(res => res.json())
+ .catch(this.handleError);
+ }
+
+ updateCommunity(community: Community) {
+ let headers = new Headers({'Content-Type': 'application/json'});
+ let options = new RequestOptions({headers: headers});
+
+ HelpContentService.removeNulls(community);
+
+ return this.http.post(this._helpContentUrl + 'community/update', JSON.stringify(community), options)
+ .map(res => res.json())
+ .catch(this.handleError);
+ }
+
+ deleteCommunities(ids : string[]) {
+ let headers = new Headers({'Content-Type': 'application/json'});
+ let options = new RequestOptions({headers: headers});
+
+ return this.http.post(this._helpContentUrl + 'community/delete',JSON.stringify(ids), options)
+ .catch(this.handleError);
+ }
+
getCommunityPages(community_id: string) {
return this.http.get(this._helpContentUrl + 'community/'+community_id+'/pages')
.map(res => > res.json())
.catch(this.handleError);
}
+ getCommunityPagesByType(community_id: string, params: string) {
+ return this.http.get(this._helpContentUrl + 'community/'+community_id+'/pages'+params)
+ .map(res => > res.json())
+ .catch(this.handleError);
+ }
+
getEntities() {
return this.http.get(this._helpContentUrl + 'entity')
.map(res => > res.json())
diff --git a/index.html b/index.html
index 21c62dd..6ed0985 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,7 @@
- OpenMinTeD Admin Tools
+ OpenAIRE-Connect Admin Tools
@@ -42,4 +42,3 @@