minor dialog fixes

This commit is contained in:
Timo Bejan 2020-10-22 10:31:36 +03:00
parent ffe67ffc6d
commit 33f9ee6187
2 changed files with 21 additions and 13 deletions

View File

@ -9,8 +9,8 @@
<mat-form-field>
<mat-label>{{'assign-' + data.type + '-owner.dialog.single-user.label' | translate}}</mat-label>
<mat-select formControlName="singleUser">
<mat-option *ngFor="let user of userService.managerUsers" [value]="user.userId">
{{userService.getNameForId(user.userId)}}
<mat-option *ngFor="let userId of singleUsersSelectOptions" [value]="userId">
{{userService.getNameForId(userId)}}
</mat-option>
</mat-select>
</mat-form-field>
@ -18,8 +18,8 @@
<mat-form-field *ngIf="data.type === 'project' ">
<mat-label>{{'assign-' + data.type + '-owner.dialog.multi-user.label' | translate}}</mat-label>
<mat-select formControlName="userList" multiple="true">
<mat-option *ngFor="let user of userService.allUsers" [value]="user.userId">
{{userService.getNameForId(user.userId)}}
<mat-option *ngFor="let userId of multiUsersSelectOptions" [value]="userId">
{{userService.getNameForId(userId)}}
</mat-option>
</mat-select>
</mat-form-field>

View File

@ -1,10 +1,10 @@
import { Component, Inject } from '@angular/core';
import { FileStatus, Project, ProjectControllerService, StatusControllerService } from '@redaction/red-ui-http';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { AppStateService } from '../../state/app-state.service';
import { UserService } from '../../user/user.service';
import { NotificationService, NotificationType } from '../../notification/notification.service';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import {Component, Inject} from '@angular/core';
import {FileStatus, Project, ProjectControllerService, StatusControllerService} from '@redaction/red-ui-http';
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
import {AppStateService} from '../../state/app-state.service';
import {UserService} from '../../user/user.service';
import {NotificationService, NotificationType} from '../../notification/notification.service';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
class DialogData {
type: 'file' | 'project';
@ -57,14 +57,14 @@ export class AssignOwnerDialogComponent {
const ownerId = this.usersForm.get('singleUser').value;
const memberIds = this.usersForm.get('userList').value;
const project = this.data.project;
await this._projectControllerService.addMembersToProject({ memberIds: memberIds }, project.projectId).toPromise();
await this._projectControllerService.addMembersToProject({memberIds: memberIds}, project.projectId).toPromise();
await this._projectControllerService.assignProjectOwner(project.projectId, ownerId).toPromise();
const updatedProject = await this._projectControllerService.getProject(project.projectId).toPromise();
const toRemoveMembers = updatedProject.memberIds.filter(m => memberIds.indexOf(m) < 0);
if (toRemoveMembers.length > 0) {
await this._projectControllerService.deleteMembersToProject({ memberIds: toRemoveMembers }, project.projectId).toPromise();
await this._projectControllerService.deleteMembersToProject({memberIds: toRemoveMembers}, project.projectId).toPromise();
}
project.ownerId = ownerId;
@ -90,4 +90,12 @@ export class AssignOwnerDialogComponent {
this.dialogRef.close();
}
get singleUsersSelectOptions() {
return this.data.type === 'file' ? this._appStateService.activeProject.project.memberIds : this.userService.managerUsers.map(m => m.userId);
}
get multiUsersSelectOptions() {
return this.userService.managerUsers.map(m => m.userId);
}
}