minor dialog fixes
This commit is contained in:
parent
ffe67ffc6d
commit
33f9ee6187
@ -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>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user