stakeholder.alias !== this.stakeholder.alias) :
this.stakeholders.filter(stakeholder => stakeholder.alias !== this.stakeholder.alias)
)]
),
- isDefault: this.fb.control(isDefault),
+ isDefault: this.fb.control((this.isDefault)),
visibility: this.fb.control(this.stakeholder.visibility, Validators.required),
type: this.fb.control(this.stakeholder.type, Validators.required),
topics: this.fb.control(this.stakeholder.topics),
@@ -156,6 +162,11 @@ export class EditStakeholderComponent implements OnDestroy {
}));
this.stakeholderFb.setControl('defaultId', this.fb.control(stakeholder.defaultId, Validators.required));
}
+ if(this.disableAlias) {
+ setTimeout(() => {
+ this.stakeholderFb.get('alias').disable();
+ }, 0);
+ }
if (isNew) {
setTimeout(() => {
this.stakeholderFb.get('type').enable();
@@ -179,6 +190,10 @@ export class EditStakeholderComponent implements OnDestroy {
(this.uploadError && this.uploadError.length > 0);
}
+ public get dirty(): boolean {
+ return this.stakeholderFb && this.stakeholderFb.dirty;
+ }
+
reset() {
this.uploadError = null;
this.stakeholderFb = null;
@@ -236,6 +251,7 @@ export class EditStakeholderComponent implements OnDestroy {
});
} else {
this.stakeholderFb.get('type').enable();
+ this.stakeholderFb.get('alias').enable();
this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.stakeholderFb.value).subscribe(stakeholder => {
callback(stakeholder);
});
@@ -247,9 +263,13 @@ export class EditStakeholderComponent implements OnDestroy {
this.file = event.target.files[0];
if (this.file.type !== 'image/png' && this.file.type !== 'image/jpeg') {
this.uploadError = 'You must choose a file with type: image/png or image/jpeg!';
+ this.stakeholderFb.get('isUpload').setValue(false);
+ this.stakeholderFb.get('isUpload').markAsDirty();
this.removePhoto();
} else if (this.file.size > this.maxsize) {
this.uploadError = 'File exceeds size\'s limit! Maximum resolution is 256x256 pixels.';
+ this.stakeholderFb.get('isUpload').setValue(false);
+ this.stakeholderFb.get('isUpload').markAsDirty();
this.removePhoto();
} else {
this.uploadError = null;
@@ -271,8 +291,6 @@ export class EditStakeholderComponent implements OnDestroy {
}
removePhoto() {
- this.stakeholderFb.get('isUpload').setValue(false);
- this.stakeholderFb.get('isUpload').markAsDirty();
if (this.file) {
if (typeof document != 'undefined') {
(
document.getElementById("photo")).value = "";
@@ -283,6 +301,8 @@ export class EditStakeholderComponent implements OnDestroy {
}
remove() {
+ this.stakeholderFb.get('isUpload').setValue(false);
+ this.stakeholderFb.get('isUpload').markAsDirty();
this.removePhoto();
this.stakeholderFb.setControl('logoUrl', this.fb.control(null));
if (this.stakeholder.isUpload) {
diff --git a/src/app/manageStakeholder/edit-stakeholder/edit-stakeholder.module.ts b/src/app/general/edit-stakeholder/edit-stakeholder.module.ts
similarity index 100%
rename from src/app/manageStakeholder/edit-stakeholder/edit-stakeholder.module.ts
rename to src/app/general/edit-stakeholder/edit-stakeholder.module.ts
diff --git a/src/app/manageStakeholder/manageStakeholder-routing.module.ts b/src/app/general/general-routing.module.ts
similarity index 74%
rename from src/app/manageStakeholder/manageStakeholder-routing.module.ts
rename to src/app/general/general-routing.module.ts
index 5e37524..28ab0d7 100644
--- a/src/app/manageStakeholder/manageStakeholder-routing.module.ts
+++ b/src/app/general/general-routing.module.ts
@@ -1,7 +1,7 @@
import {NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
-import {ManageStakeholderComponent} from "./manageStakeholder.component";
+import {GeneralComponent} from "./general.component";
import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
@NgModule({
@@ -9,7 +9,7 @@ import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
RouterModule.forChild([
{
path: '',
- component: ManageStakeholderComponent,
+ component: GeneralComponent,
canActivate: [AdminDashboardGuard],
canDeactivate: [PreviousRouteRecorder],
data: {hasSidebar: true}
@@ -17,5 +17,5 @@ import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
])
]
})
-export class ManageStakeholderRoutingModule {
+export class GeneralRoutingModule {
}
diff --git a/src/app/general/general.component.css b/src/app/general/general.component.css
new file mode 100644
index 0000000..8e449f6
--- /dev/null
+++ b/src/app/general/general.component.css
@@ -0,0 +1,9 @@
+.form-header {
+ background-color: #F2F2F2;
+ box-shadow: 0 3px 6px #00000029;
+ padding: 10px 20px;
+ color: #7A7A7A;
+ font-family: "Roboto", sans-serif;
+ z-index: 1;
+ position: relative;
+}
diff --git a/src/app/general/general.component.html b/src/app/general/general.component.html
new file mode 100644
index 0000000..90e355b
--- /dev/null
+++ b/src/app/general/general.component.html
@@ -0,0 +1,38 @@
+
diff --git a/src/app/general/general.component.ts b/src/app/general/general.component.ts
new file mode 100644
index 0000000..ee2e1aa
--- /dev/null
+++ b/src/app/general/general.component.ts
@@ -0,0 +1,76 @@
+import {Component, OnDestroy, OnInit, ViewChild} from "@angular/core";
+import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
+import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
+import {EnvironmentSpecificService} from "../openaireLibrary/utils/properties/environment-specific.service";
+import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder";
+import {Subscriber, Subscription, zip} from "rxjs";
+import {StakeholderUtils} from "../utils/indicator-utils";
+import {FormBuilder, FormGroup, Validators} from "@angular/forms";
+import {AlertModal} from "../openaireLibrary/utils/modal/alert";
+import {Option} from "../openaireLibrary/dashboard/sharedComponents/input/input.component";
+import {Title} from "@angular/platform-browser";
+import {UserManagementService} from "../openaireLibrary/services/user-management.service";
+import {Session} from "../openaireLibrary/login/utils/helper.class";
+import {UtilitiesService} from "../openaireLibrary/services/utilities.service";
+import {EditStakeholderComponent} from "./edit-stakeholder/edit-stakeholder.component";
+import {properties} from "../../environments/environment";
+
+@Component({
+ selector: 'general',
+ templateUrl: "./general.component.html",
+ styleUrls: ['general.component.css']
+})
+export class GeneralComponent implements OnInit, OnDestroy {
+
+ public stakeholder: Stakeholder;
+ public stakeholders: Stakeholder[];
+ public properties: EnvProperties = properties;
+ public defaultStakeholders: Stakeholder[];
+ public loading: boolean = false;
+ private subscriptions: any[] = [];
+ @ViewChild('editStakeholderComponent') editStakeholderComponent: EditStakeholderComponent;
+
+ constructor(private stakeholderService: StakeholderService) {
+ }
+
+ ngOnInit() {
+ this.loading = true;
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.stakeholder = stakeholder;
+ if(this.stakeholder) {
+ let data = zip(
+ this.stakeholderService.getDefaultStakeholders(this.properties.monitorServiceAPIURL),
+ this.stakeholderService.getStakeholders(this.properties.monitorServiceAPIURL)
+ );
+ this.subscriptions.push(data.subscribe(res => {
+ this.defaultStakeholders = res[0];
+ this.stakeholders = res[1];
+ this.reset();
+ this.loading = false;
+ }));
+ }
+ }));
+ }
+
+ public reset() {
+ this.editStakeholderComponent.init(this.stakeholder, this.stakeholders, this.defaultStakeholders, this.stakeholder.defaultId == null, false)
+ }
+
+
+ public save() {
+ this.loading = true;
+ this.editStakeholderComponent.save((stakeholder) => {
+ this.stakeholder = stakeholder;
+ this.reset();
+ this.loading = false;
+ });
+ }
+
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if(subscription instanceof Subscription) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+}
diff --git a/src/app/manageStakeholder/manageStakeholder.module.ts b/src/app/general/general.module.ts
similarity index 68%
rename from src/app/manageStakeholder/manageStakeholder.module.ts
rename to src/app/general/general.module.ts
index f5a4e36..f9150a9 100644
--- a/src/app/manageStakeholder/manageStakeholder.module.ts
+++ b/src/app/general/general.module.ts
@@ -1,6 +1,6 @@
import {NgModule} from "@angular/core";
-import {ManageStakeholderComponent} from "./manageStakeholder.component";
-import {ManageStakeholderRoutingModule} from "./manageStakeholder-routing.module";
+import {GeneralComponent} from "./general.component";
+import {GeneralRoutingModule} from "./general-routing.module";
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
import {CommonModule} from "@angular/common";
import {RouterModule} from "@angular/router";
@@ -9,23 +9,25 @@ import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
import {ReactiveFormsModule} from "@angular/forms";
import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
+import {EditStakeholderModule} from "./edit-stakeholder/edit-stakeholder.module";
@NgModule({
- declarations: [ManageStakeholderComponent],
+ declarations: [GeneralComponent],
imports: [
- ManageStakeholderRoutingModule,
+ GeneralRoutingModule,
CommonModule,
RouterModule,
InputModule,
LoadingModule,
AlertModalModule,
- ReactiveFormsModule
+ ReactiveFormsModule,
+ EditStakeholderModule
],
providers: [
AdminDashboardGuard, PreviousRouteRecorder,
],
- exports: [ManageStakeholderComponent]
+ exports: [GeneralComponent]
})
-export class ManageStakeholderModule {
+export class GeneralModule {
}
diff --git a/src/app/manageStakeholder/manageStakeholder.component.html b/src/app/manageStakeholder/manageStakeholder.component.html
deleted file mode 100644
index dacdff6..0000000
--- a/src/app/manageStakeholder/manageStakeholder.component.html
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{uploadError}}
-
-
-
-
-
-
-
-
-
No default profiles has been found for
- this type.
-
-
0"
- dashboard-input class="uk-form-row" [formInput]="stakeholderFb.get('defaultId')"
- label="Indicators" [options]="defaultStakeholdersOptions" type="select">
-
-
-
diff --git a/src/app/manageStakeholder/manageStakeholder.component.ts b/src/app/manageStakeholder/manageStakeholder.component.ts
deleted file mode 100644
index 857bdbc..0000000
--- a/src/app/manageStakeholder/manageStakeholder.component.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import {Component, OnDestroy, OnInit, ViewChild} from "@angular/core";
-import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
-import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
-import {EnvironmentSpecificService} from "../openaireLibrary/utils/properties/environment-specific.service";
-import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder";
-import {Subscriber, zip} from "rxjs";
-import {StakeholderUtils} from "../utils/indicator-utils";
-import {FormBuilder, FormGroup, Validators} from "@angular/forms";
-import {AlertModal} from "../openaireLibrary/utils/modal/alert";
-import {Option} from "../openaireLibrary/dashboard/sharedComponents/input/input.component";
-import {Title} from "@angular/platform-browser";
-import {UserManagementService} from "../openaireLibrary/services/user-management.service";
-import {Session} from "../openaireLibrary/login/utils/helper.class";
-import {UtilitiesService} from "../openaireLibrary/services/utilities.service";
-
-@Component({
- selector: 'manage-stakeholder',
- templateUrl: "./manageStakeholder.component.html"
-})
-export class ManageStakeholderComponent {
-
-}
diff --git a/src/app/manageStakeholders/manageStakeholders.component.ts b/src/app/manageStakeholders/manageStakeholders.component.ts
index bc323d1..25f3638 100644
--- a/src/app/manageStakeholders/manageStakeholders.component.ts
+++ b/src/app/manageStakeholders/manageStakeholders.component.ts
@@ -11,7 +11,7 @@ import {Option} from "../openaireLibrary/dashboard/sharedComponents/input/input.
import {Title} from "@angular/platform-browser";
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
import {Session} from "../openaireLibrary/login/utils/helper.class";
-import {EditStakeholderComponent} from "../manageStakeholder/edit-stakeholder/edit-stakeholder.component";
+import {EditStakeholderComponent} from "../general/edit-stakeholder/edit-stakeholder.component";
declare var UIkit;
diff --git a/src/app/manageStakeholders/manageStakeholders.module.ts b/src/app/manageStakeholders/manageStakeholders.module.ts
index 04e2576..fc8fe72 100644
--- a/src/app/manageStakeholders/manageStakeholders.module.ts
+++ b/src/app/manageStakeholders/manageStakeholders.module.ts
@@ -9,7 +9,7 @@ import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
import {ReactiveFormsModule} from "@angular/forms";
import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
-import {EditStakeholderModule} from "../manageStakeholder/edit-stakeholder/edit-stakeholder.module";
+import {EditStakeholderModule} from "../general/edit-stakeholder/edit-stakeholder.module";
@NgModule({
declarations: [ManageStakeholdersComponent],
diff --git a/src/assets/dashboard-theme/structure.css b/src/assets/dashboard-theme/structure.css
index 4fa9f58..b8ea9aa 100644
--- a/src/assets/dashboard-theme/structure.css
+++ b/src/assets/dashboard-theme/structure.css
@@ -103,7 +103,7 @@
}
#page_content_inner {
- padding: 50px 50px 100px 50px;
+ padding: 90px;
}
navbar > * {