diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts
index 9912137..824d66b 100644
--- a/frontend/src/app/app.module.ts
+++ b/frontend/src/app/app.module.ts
@@ -38,6 +38,7 @@ import {MomentDateModule} from '@angular/material-moment-adapter';
import {PlanTimeBarComponent} from './plan-time-bar/plan-time-bar.component';
import { RenamePresetDialogComponent } from './rename-preset-dialog/rename-preset-dialog.component';
import { DeletePresetDialogComponent } from './delete-preset-dialog/delete-preset-dialog.component';
+import { SavePresetUnderDialogComponent } from './save-preset-under-dialog/save-preset-under-dialog.component';
@NgModule({
@@ -50,7 +51,8 @@ import { DeletePresetDialogComponent } from './delete-preset-dialog/delete-prese
FilterDialogComponent,
PlanTimeBarComponent,
RenamePresetDialogComponent,
- DeletePresetDialogComponent
+ DeletePresetDialogComponent,
+ SavePresetUnderDialogComponent
],
imports: [
BrowserModule,
diff --git a/frontend/src/app/data.service.ts b/frontend/src/app/data.service.ts
index 10c83e8..e9e1c6d 100644
--- a/frontend/src/app/data.service.ts
+++ b/frontend/src/app/data.service.ts
@@ -179,7 +179,7 @@ export class DataService {
let user = [];
let admin = [];
for (const preset of res.presets) {
- if(preset.presetType == "Sysdemdefault"){
+ if(preset.presetType == "System"){
system.push(preset);
}else{
user.push(preset);
@@ -187,7 +187,7 @@ export class DataService {
}
presetGroups = [
{
- name: 'Sysdemdefault',
+ name: 'System',
presets: system,
},
{
@@ -253,6 +253,7 @@ export class DataService {
* @param change the Change (the Resource) from which the date should be changed
*/
public async updatePreset(preset: any){
+ console.log(preset);
const promise = new Promise(resolve=>{
let serializableResource = {id: preset.id, definition: JSON.stringify(preset.definition)};
let strigifiedResource = JSON.stringify(serializableResource);
diff --git a/frontend/src/app/ntt-gantt/ntt-gantt.component.html b/frontend/src/app/ntt-gantt/ntt-gantt.component.html
index 6baf902..43920ed 100644
--- a/frontend/src/app/ntt-gantt/ntt-gantt.component.html
+++ b/frontend/src/app/ntt-gantt/ntt-gantt.component.html
@@ -51,8 +51,8 @@
-
-
+
+
@@ -60,7 +60,7 @@
{{languageService.lMap.get('nttGanttFilterButton')}} filter_alt
-
+
diff --git a/frontend/src/app/ntt-gantt/ntt-gantt.component.ts b/frontend/src/app/ntt-gantt/ntt-gantt.component.ts
index bbf1bcc..b24f161 100644
--- a/frontend/src/app/ntt-gantt/ntt-gantt.component.ts
+++ b/frontend/src/app/ntt-gantt/ntt-gantt.component.ts
@@ -17,6 +17,7 @@ import { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition
import { MAT_DATE_FORMATS } from '@angular/material/core';
import { RenamePresetDialogComponent } from '../rename-preset-dialog/rename-preset-dialog.component';
import { DeletePresetDialogComponent } from '../delete-preset-dialog/delete-preset-dialog.component';
+import { SavePresetUnderDialogComponent } from '../save-preset-under-dialog/save-preset-under-dialog.component';
export const MY_DATE_FORMATS = {
parse: {
@@ -161,6 +162,7 @@ export class NttGanttComponent implements OnInit {
public userPreferences: {language:'', showDetails: false, view: ''};
public showSaveButton: boolean = false;
public showSaveUnderButton: boolean = false;
+ public isUserPreset: boolean = false;
/**###################################################################### Initial Loading functions ######################################################################*/
@@ -269,6 +271,12 @@ export class NttGanttComponent implements OnInit {
public selectPreset(event: any){
this.showSaveButton = false;
this.showSaveUnderButton = false;
+
+ if(event.value.presetType == 'System' || event.value.presetType == 'Admin'){
+ this.isUserPreset = false;
+ }else{
+ this.isUserPreset = true;
+ }
console.log(event);
this.dataService.selectPreset(event.value).then((res)=>{
this.refreshGanttwithPresets();
@@ -331,6 +339,19 @@ export class NttGanttComponent implements OnInit {
});
}
+ /**
+ * The function openFilterDialog triggers the opening of the filterDialog, recieves the results of the filterDialog and refrehses the gantt chart.
+ * This function is triggered by the filter button.
+ */
+ public openSaveUnderDialog(){
+ console.log(this.filters);
+ let dialogRef = SavePresetUnderDialogComponent;
+ this.matDialog.open(dialogRef,
+ {data : [{preset: this.selectedPreset, definition: this.filters}], width: '20%', maxWidth: '800px'}).afterClosed().subscribe((res)=>{
+ this.refreshGanttwithPresets();
+ });
+ }
+
/**
* The function openFilterDialog triggers the opening of the filterDialog, recieves the results of the filterDialog and refrehses the gantt chart.
* This function is triggered by the filter button.
@@ -351,6 +372,13 @@ export class NttGanttComponent implements OnInit {
this.dataService.initPresets().then((res: any)=>{
this.presets = res.presets;
this.selectedPreset = res.selectedPreset;
+ if(this.selectedPreset.presetType == 'User' ){
+ this.isUserPreset = true;
+ }else{
+ this.isUserPreset = false;
+ }
+
+
this.presetGroups = res.presetGroups;
this.filters = this.selectedPreset.definition;
this.filterEnabled = true;
@@ -432,6 +460,16 @@ export class NttGanttComponent implements OnInit {
this.sort = null;
this.sortEnabled = false;
this.refreshData();
+ if(this.filters !== this.selectedPreset.definition){
+ if(this.isUserPreset){
+ this.showSaveButton = true;
+ this.showSaveUnderButton = false;
+ }else{
+ this.showSaveButton = false;
+ this.showSaveUnderButton = true;
+ }
+
+ }
}
/**
* The function mapRequestJSON maps the requestObject for the refreshData function, it evaluates if filters or sort parameters are set.
@@ -489,9 +527,11 @@ export class NttGanttComponent implements OnInit {
// console.log(res);
// });
if(this.filters !== this.selectedPreset.definition){
- if(this.selectedPreset.presetType == 'Admin'){
+ if(this.isUserPreset){
this.showSaveButton = true;
+ this.showSaveUnderButton = false;
}else{
+ this.showSaveButton = false;
this.showSaveUnderButton = true;
}
diff --git a/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.css b/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.html b/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.html
new file mode 100644
index 0000000..f0746af
--- /dev/null
+++ b/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.html
@@ -0,0 +1,10 @@
+
Als neues Preset speichern?
+
+ Preset Name
+
+
+
+
+
+
+
diff --git a/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.spec.ts b/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.spec.ts
new file mode 100644
index 0000000..8595787
--- /dev/null
+++ b/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { SavePresetUnderDialogComponent } from './save-preset-under-dialog.component';
+
+describe('SavePresetUnderDialogComponent', () => {
+ let component: SavePresetUnderDialogComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ SavePresetUnderDialogComponent ]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(SavePresetUnderDialogComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.ts b/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.ts
new file mode 100644
index 0000000..0fd4c21
--- /dev/null
+++ b/frontend/src/app/save-preset-under-dialog/save-preset-under-dialog.component.ts
@@ -0,0 +1,33 @@
+import { Component, Inject, OnInit } from '@angular/core';
+import { LanguageService } from '../language.service';
+import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import { RenamePresetDialogComponent } from '../rename-preset-dialog/rename-preset-dialog.component';
+import { DataService } from '../data.service';
+import { MatSnackBar } from '@angular/material/snack-bar';
+
+@Component({
+ selector: 'app-save-preset-under-dialog',
+ templateUrl: './save-preset-under-dialog.component.html',
+ styleUrls: ['./save-preset-under-dialog.component.css']
+})
+export class SavePresetUnderDialogComponent implements OnInit {
+ public preset;
+ public newName: string;
+ public definition: any;
+
+ constructor(public languageService: LanguageService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private dataService: DataService, private _snackBar: MatSnackBar) {
+ this.preset = data[0].preset;
+ this.newName = 'Copy of ' + this.preset.name;
+ this.definition = data[0].definition;
+
+ }
+
+ ngOnInit(): void {
+ }
+
+ public savePreset(){
+ this.dataService.savePreset({name: this.newName, definition: this.definition});
+ }
+
+}
+
diff --git a/frontend/src/index.html b/frontend/src/index.html
index 219bc8b..6f30418 100644
--- a/frontend/src/index.html
+++ b/frontend/src/index.html
@@ -2,7 +2,7 @@
- SyncfusionGantt
+ Change Calender