fix(console): application state, add project role bulk, user grant explanations, i18n, ngsw update prompt #341

This commit is contained in:
Max Peintner 2020-07-03 15:07:43 +02:00 committed by GitHub
parent 7b67b55f4e
commit 73a4b7baef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 42 additions and 24 deletions

View File

@ -19,7 +19,8 @@
<mat-menu #menu="matMenu">
<mat-progress-bar *ngIf="orgLoading" color="accent" mode="indeterminate"></mat-progress-bar>
<button class="show-all" mat-menu-item [routerLink]="[ '/org/overview' ]">Show all organizations</button>
<button class="show-all" mat-menu-item
[routerLink]="[ '/org/overview' ]">{{'MENU.SHOWORGS' | translate}}</button>
<button [ngClass]="{'active': temporg.id === org?.id}" [disabled]="!temporg.id" *ngFor="let temporg of orgs"
mat-menu-item (click)="setActiveOrg(temporg)">

View File

@ -144,13 +144,13 @@ export class AppDetailComponent implements OnInit, OnDestroy {
public changeState(event: MatButtonToggleChange): void {
if (event.value === AppState.APPSTATE_ACTIVE) {
this.projectService.ReactivateApplication(this.app.id).then(() => {
this.projectService.ReactivateApplication(this.projectId, this.app.id).then(() => {
this.toast.showInfo('Reactivated Application');
}).catch((error: any) => {
this.toast.showError(error.message);
});
} else if (event.value === AppState.APPSTATE_INACTIVE) {
this.projectService.DectivateApplication(this.app.id).then(() => {
this.projectService.DeactivateApplication(this.projectId, this.app.id).then(() => {
this.toast.showInfo('Deactivated Application');
}).catch((error: any) => {
this.toast.showError(error.message);

View File

@ -10,10 +10,11 @@
<ng-container *ngIf="currentCreateStep === 1">
<h1>{{'PROJECT.GRANT.CREATE.SEL_ORG' | translate}}</h1>
<p>{{'PROJECT.GRANT.CREATE.SEL_ORG_DESC' | translate}}</p>
<form (ngSubmit)="searchOrg(domain.value)">
<mat-form-field class="org-domain">
<mat-label>{{'PROJECT.GRANT.CREATE.SEL_ORG' | translate}}</mat-label>
<mat-label>{{'PROJECT.GRANT.CREATE.SEL_ORG_FORMFIELD' | translate}}</mat-label>
<input #domain matInput />
</mat-form-field>

View File

@ -84,12 +84,15 @@ export class ProjectRoleCreateComponent implements OnInit, OnDestroy {
}
public addRole(): void {
const promises = this.formArray.value.map((role: ProjectRoleAdd.AsObject) => {
role.id = this.projectId;
return this.projectService.AddProjectRole(role);
const rolesToAdd: ProjectRoleAdd[] = this.formArray.value.map((element: any) => {
const role = new ProjectRoleAdd();
role.setKey(element.key);
role.setDisplayName(element.displayName);
role.setGroup(element.group);
return role;
});
Promise.all(promises).then(() => {
this.projectService.BulkAddProjectRole(this.projectId, rolesToAdd).then(() => {
this.router.navigate(['projects', this.projectId]);
}).catch(data => {
this.toast.showError(data.message);

View File

@ -25,7 +25,7 @@
</ng-container>
<ng-container *ngIf="filter && filter == UserGrantSearchKey.USERGRANTSEARCHKEY_PROJECT_ID">
<h1>{{'PROJECT.GRANT.CREATE.SEL_PROJECT' | translate}}</h1>
<h1>{{'PROJECT.GRANT.CREATE.SEL_USER' | translate}}</h1>
<app-search-user-autocomplete class="block" singleOutput="true" (selectionChanged)="selectUser($event)">
</app-search-user-autocomplete>

View File

@ -297,9 +297,11 @@ export class ProjectService {
);
}
public async ReactivateApplication(appId: string): Promise<Application> {
public async ReactivateApplication(projectId: string, appId: string): Promise<Application> {
const req = new ApplicationID();
req.setId(appId);
req.setProjectId(projectId);
return await this.request(
c => c.reactivateApplication,
req,
@ -307,9 +309,11 @@ export class ProjectService {
);
}
public async DectivateApplication(projectId: string): Promise<Application> {
public async DeactivateApplication(projectId: string, appId: string): Promise<Application> {
const req = new ApplicationID();
req.setId(projectId);
req.setId(appId);
req.setProjectId(projectId);
return await this.request(
c => c.deactivateApplication,
req,

View File

@ -2,12 +2,13 @@ import { Injectable } from '@angular/core';
import { MatSnackBar } from '@angular/material/snack-bar';
import { SwUpdate } from '@angular/service-worker';
@Injectable({
providedIn: 'root',
})
export class UpdateService {
constructor(private swUpdate: SwUpdate, snackbar: MatSnackBar) {
this.swUpdate.checkForUpdate();
this.swUpdate.available.subscribe((evt) => {
const snack = snackbar.open('Update Available', 'Reload');

View File

@ -27,7 +27,8 @@
"USER": "Benutzer",
"LOGOUT": "abmelden",
"NEWORG":"Neue Organisation",
"IAMADMIN":"Sie sind ein IAM Administrator. Sie haben erweiterte Berechtigungen!"
"IAMADMIN":"Sie sind ein IAM Administrator. Sie haben erweiterte Berechtigungen!",
"SHOWORGS":"Alle organisationen anzeigen"
},
"ACTIONS": {
"SAVE": "speichern",
@ -355,17 +356,20 @@
"USERID":"User Id"
},
"GRANT": {
"TITLE": "Grants",
"TITLE": "Berechtigte Organisationen",
"DESCRIPTION": "Gewähren Sie einer anderen Organisation Zugriff (Grant) auf dieses Projekt",
"CREATE": {
"TITLE": "Member Grant erstellen",
"TITLE": "Organisation berechtigen",
"SEL_USERS": "Selektieren Sie die gewünschten User für das Erstellen des Grants!",
"SEL_ROLES": "Selektieren Sie die gewünschten Rollen für das Erstellen des Grants!",
"SEL_PROJECT": "Suchen Sie nach dem Projekt",
"SEL_USER":"Suchen Sie nach einem User",
"SEL_ORG": "Suchen Sie nach der Domain",
"SEL_ORG_DESC":"Geben Sie die vollständige Domain ein um Resultate zu erhalten!",
"ORG_TITLE":"Organisation",
"ORG_DESCRIPTION":"Sie sind im Begriff einen Nutzer für die Organisation {{name}} zu berechtigen",
"ORG_DESCRIPTION_DESC":"Wechseln Sie den Context um die Organisation zu wechseln!",
"SEL_ORG_FORMFIELD":"Vollständige Domain",
"SEL_ORG_BUTTON": "Suche Organisation",
"FOR_ORG":"The grant wird erstellt für:"
},
@ -377,7 +381,7 @@
"USER":"Benutzer",
"MEMBERS":"Managers",
"PROJECTNAME":"Projekt Name",
"GRANTEDORG": "Granted Organization",
"GRANTEDORG": "Granted Organisation",
"GRANTEDORGDOMAIN": "Domain",
"GRANTEDORGNAME":"Org Name",
"CREATIONDATE": "Erstelldatum",

View File

@ -27,7 +27,8 @@
"USER": "Users",
"LOGOUT": "Log out",
"NEWORG":"New Organization",
"IAMADMIN":"You are an IAM Administrator. Note that you have enhanced permissions!"
"IAMADMIN":"You are an IAM Administrator. Note that you have enhanced permissions!",
"SHOWORGS":"Show all organizations"
},
"ACTIONS": {
"SAVE": "Save",
@ -284,7 +285,7 @@
}
},
"ORG_DETAIL": {
"TITLE": "Organisation",
"TITLE": "Organization",
"DESCRIPTION": "Here you can edit your organization configuration and manage members",
"DETAIL": {
"TITLE": "Detail",
@ -356,18 +357,21 @@
"USERID":"User Id"
},
"GRANT": {
"TITLE": "Grants",
"TITLE": "Granted organizations",
"DESCRIPTION": "Allow an other organization to use your project",
"CREATE": {
"TITLE": "Create Member Grant",
"TITLE": "Create organization grant",
"SEL_USERS": "Select the users you wish to grant",
"SEL_PROJECT": "Search for a project",
"SEL_ROLES": "Select the roles you want to be added to the grant",
"SEL_ORG": "Search for the domain",
"SEL_USER":"Search for a user",
"SEL_ORG": "Set the domain",
"SEL_ORG_DESC":"Enter the complete domain to specify the organization to grant!",
"ORG_TITLE":"Organization",
"ORG_DESCRIPTION":"You are about to grant a user for the organization {{name}}",
"ORG_DESCRIPTION_DESC":"Switch the context in the header above to grant a user for another organization",
"SEL_ORG_BUTTON": "Search Organization",
"SEL_ORG_FORMFIELD":"Complete Domain",
"SEL_ORG_BUTTON": "Set Organization",
"FOR_ORG":"The grant is created for:"
},
"DETAIL": {
@ -563,7 +567,7 @@
"org.domain.primary.set":"set primary domain",
"org.domain.removed":"domain removed",
"org.iam.policy.added":"IAM policy added",
"project.added": "added",
"project.added": "project added",
"project.changed":"changed",
"project.deactivated":"deactivated",
"project.member.added":"added member",