fixed corner case on project edits
This commit is contained in:
parent
a24e84b6fe
commit
ce5eb27660
@ -42,6 +42,16 @@
|
||||
translate="project-listing.add-edit-dialog.actions.save"
|
||||
type="submit"
|
||||
></button>
|
||||
|
||||
<button
|
||||
[disabled]="projectForm.invalid"
|
||||
(click)="saveProjectAndAddMembers()"
|
||||
*ngIf="!project?.projectId"
|
||||
color="primary"
|
||||
mat-flat-button
|
||||
translate="project-listing.add-edit-dialog.actions.save-and-add-members"
|
||||
type="button"
|
||||
></button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
@ -30,8 +30,10 @@ export class AddEditProjectDialogComponent implements OnInit {
|
||||
async saveProject() {
|
||||
const project: Project = this._formToObject();
|
||||
project.projectId = this.project?.projectId;
|
||||
await this._appStateService.addOrUpdateProject(project);
|
||||
this.dialogRef.close(true);
|
||||
const savedProject = await this._appStateService.addOrUpdateProject(project);
|
||||
if (savedProject) {
|
||||
this.dialogRef.close(true);
|
||||
}
|
||||
}
|
||||
|
||||
private _formToObject(): Project {
|
||||
@ -41,4 +43,13 @@ export class AddEditProjectDialogComponent implements OnInit {
|
||||
dueDate: this.projectForm.get('dueDate').value
|
||||
};
|
||||
}
|
||||
|
||||
async saveProjectAndAddMembers() {
|
||||
const project: Project = this._formToObject();
|
||||
project.projectId = this.project?.projectId;
|
||||
const savedProject = await this._appStateService.addOrUpdateProject(project);
|
||||
if (savedProject) {
|
||||
this.dialogRef.close({ addMembers: true, project: savedProject });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -212,7 +212,7 @@ export class DialogService {
|
||||
});
|
||||
|
||||
ref.afterClosed().subscribe((result) => {
|
||||
if (result && cb) cb();
|
||||
if (result && cb) cb(result);
|
||||
});
|
||||
|
||||
return ref;
|
||||
|
||||
@ -105,8 +105,11 @@ export class ProjectListingScreenComponent implements OnInit {
|
||||
}
|
||||
|
||||
public openAddProjectDialog(): void {
|
||||
this._dialogService.openAddProjectDialog(() => {
|
||||
this._dialogService.openAddProjectDialog((addResponse) => {
|
||||
this._calculateData();
|
||||
if (addResponse.addMembers) {
|
||||
this.openAssignProjectOwnerDialog(null, addResponse.project);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -406,15 +406,17 @@ export class AppStateService {
|
||||
const updatedProject = await this._projectControllerService
|
||||
.createProjectOrUpdateProject(project)
|
||||
.toPromise();
|
||||
const foundProject = this._appState.projects.find(
|
||||
let foundProject = this._appState.projects.find(
|
||||
(p) => p.project.projectId === updatedProject.projectId
|
||||
);
|
||||
if (foundProject) {
|
||||
Object.assign(foundProject.project, updatedProject);
|
||||
} else {
|
||||
this._appState.projects.push(new ProjectWrapper(updatedProject, []));
|
||||
foundProject = new ProjectWrapper(updatedProject, []);
|
||||
this._appState.projects.push(foundProject);
|
||||
}
|
||||
this._appState.projects = [...this._appState.projects];
|
||||
return foundProject.project;
|
||||
} catch (error) {
|
||||
this._notificationService.showToastNotification(
|
||||
this._translateService.instant('projects.add-edit-dialog.errors.save'),
|
||||
|
||||
@ -130,7 +130,8 @@
|
||||
"due-date": "Due Date"
|
||||
},
|
||||
"actions": {
|
||||
"save": "Save Project"
|
||||
"save": "Save Project",
|
||||
"save-and-add-members": "Save Project & define Team"
|
||||
}
|
||||
},
|
||||
"header": "Projects",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user