UI: Remove qr code widgets for tenant level

This commit is contained in:
Vladyslav_Prykhodko 2024-11-04 15:04:30 +02:00
parent bbb2531c2e
commit 7a60c0fbfd
5 changed files with 5 additions and 43 deletions

View File

@ -820,8 +820,7 @@ const defaultUserMenuMap = new Map<Authority, MenuReference[]>([
id: MenuId.mobile_center, id: MenuId.mobile_center,
pages: [ pages: [
{id: MenuId.mobile_apps}, {id: MenuId.mobile_apps},
{id: MenuId.mobile_bundles}, {id: MenuId.mobile_bundles}
{id: MenuId.mobile_qr_code_widget}
] ]
}, },
{id: MenuId.api_usage}, {id: MenuId.api_usage},

View File

@ -14,7 +14,7 @@
/// limitations under the License. /// limitations under the License.
/// ///
import { ChangeDetectorRef, Component, Injector } from '@angular/core'; import { Component } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state'; import { AppState } from '@core/core.state';
@ -42,8 +42,6 @@ export class MobileAppQrCodeBasicConfigComponent extends BasicWidgetConfigCompon
constructor(protected store: Store<AppState>, constructor(protected store: Store<AppState>,
protected widgetConfigComponent: WidgetConfigComponent, protected widgetConfigComponent: WidgetConfigComponent,
private cd: ChangeDetectorRef,
private $injector: Injector,
private fb: UntypedFormBuilder) { private fb: UntypedFormBuilder) {
super(store, widgetConfigComponent); super(store, widgetConfigComponent);
} }

View File

@ -27,12 +27,7 @@
<div style="height: 4px;" *ngIf="!(isLoading$ | async)"></div> <div style="height: 4px;" *ngIf="!(isLoading$ | async)"></div>
<mat-card-content style="padding-top: 16px"> <mat-card-content style="padding-top: 16px">
<div class="tb-form-panel no-border no-padding" [formGroup]="mobileAppSettingsForm"> <div class="tb-form-panel no-border no-padding" [formGroup]="mobileAppSettingsForm">
<div class="tb-form-row no-border no-padding-bottom" *ngIf="isTenantAdmin()"> <div class="tb-form-panel">
<mat-slide-toggle class="mat-slide" formControlName="useSystemSettings">
{{ 'admin.mobile-app.use-system-settings' | translate }}
</mat-slide-toggle>
</div>
<div class="tb-form-panel" *ngIf="!mobileAppSettingsForm.get('useSystemSettings').value">
<div class="tb-form-row column-xs no-border no-padding space-between"> <div class="tb-form-row column-xs no-border no-padding space-between">
<div class="tb-form-panel-title" translate>admin.mobile-app.applications</div> <div class="tb-form-panel-title" translate>admin.mobile-app.applications</div>
<tb-toggle-select formControlName="useDefaultApp"> <tb-toggle-select formControlName="useDefaultApp">
@ -63,7 +58,7 @@
</mat-slide-toggle> </mat-slide-toggle>
</div> </div>
</div> </div>
<div class="tb-form-panel" formGroupName="qrCodeConfig" *ngIf="!mobileAppSettingsForm.get('useSystemSettings').value"> <div class="tb-form-panel" formGroupName="qrCodeConfig">
<div class="tb-form-row column-xs no-border no-padding space-between"> <div class="tb-form-row column-xs no-border no-padding space-between">
<div class="tb-form-panel-title" translate>admin.mobile-app.appearance-on-home-page</div> <div class="tb-form-panel-title" translate>admin.mobile-app.appearance-on-home-page</div>
<tb-toggle-select formControlName="showOnHomePage"> <tb-toggle-select formControlName="showOnHomePage">
@ -98,7 +93,7 @@
matTooltipClass="tb-error-tooltip" matTooltipClass="tb-error-tooltip"
[matTooltip]="(mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').hasError('required') ? [matTooltip]="(mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').hasError('required') ?
'admin.mobile-app.label-required' : 'admin.mobile-app.label-max-length') | translate" 'admin.mobile-app.label-required' : 'admin.mobile-app.label-max-length') | translate"
*ngIf="mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').touched && *ngIf="!mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').untouched &&
mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').hasError('required') || mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').hasError('required') ||
mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').hasError('maxlength')" mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').hasError('maxlength')"
class="tb-error"> class="tb-error">

View File

@ -24,8 +24,6 @@ import { MobileApplicationService } from '@core/http/mobile-application.service'
import { BadgePosition, badgePositionTranslationsMap, QrCodeSettings } from '@shared/models/mobile-app.models'; import { BadgePosition, badgePositionTranslationsMap, QrCodeSettings } from '@shared/models/mobile-app.models';
import { ActionUpdateMobileQrCodeEnabled } from '@core/auth/auth.actions'; import { ActionUpdateMobileQrCodeEnabled } from '@core/auth/auth.actions';
import { EntityType } from '@shared/models/entity-type.models'; import { EntityType } from '@shared/models/entity-type.models';
import { getCurrentAuthUser } from '@core/auth/auth.selectors';
import { Authority } from '@shared/models/authority.enum';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@Component({ @Component({
@ -39,7 +37,6 @@ export class MobileQrCodeWidgetSettingsComponent extends PageComponent implement
readonly entityType = EntityType; readonly entityType = EntityType;
mobileAppSettingsForm = this.fb.group({ mobileAppSettingsForm = this.fb.group({
useSystemSettings: [false],
useDefaultApp: [true], useDefaultApp: [true],
mobileAppBundleId: [{value: null, disabled: true}, Validators.required], mobileAppBundleId: [{value: null, disabled: true}, Validators.required],
androidEnabled: [true], androidEnabled: [true],
@ -53,7 +50,6 @@ export class MobileQrCodeWidgetSettingsComponent extends PageComponent implement
}) })
}); });
private authUser = getCurrentAuthUser(this.store);
private mobileAppSettings: QrCodeSettings; private mobileAppSettings: QrCodeSettings;
constructor(protected store: Store<AppState>, constructor(protected store: Store<AppState>,
@ -62,24 +58,6 @@ export class MobileQrCodeWidgetSettingsComponent extends PageComponent implement
super(store); super(store);
this.mobileAppService.getMobileAppSettings() this.mobileAppService.getMobileAppSettings()
.subscribe(settings => this.processMobileAppSettings(settings)); .subscribe(settings => this.processMobileAppSettings(settings));
if (this.isTenantAdmin()) {
this.mobileAppSettingsForm.get('useSystemSettings').valueChanges.pipe(
takeUntilDestroyed()
).subscribe(value => {
if (value) {
this.mobileAppSettingsForm.get('mobileAppBundleId').disable({emitEvent: false});
this.mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').disable({emitEvent: false});
} else {
const formValue = this.mobileAppSettingsForm.value;
if (!formValue.useDefaultApp) {
this.mobileAppSettingsForm.get('mobileAppBundleId').enable({emitEvent: false});
}
if (formValue.qrCodeConfig.qrCodeLabelEnabled && formValue.qrCodeConfig.showOnHomePage) {
this.mobileAppSettingsForm.get('qrCodeConfig.qrCodeLabel').enable({emitEvent: false});
}
}
});
}
this.mobileAppSettingsForm.get('useDefaultApp').valueChanges.pipe( this.mobileAppSettingsForm.get('useDefaultApp').valueChanges.pipe(
takeUntilDestroyed() takeUntilDestroyed()
).subscribe(value => { ).subscribe(value => {
@ -138,15 +116,8 @@ export class MobileQrCodeWidgetSettingsComponent extends PageComponent implement
}); });
} }
public isTenantAdmin(): boolean {
return this.authUser.authority === Authority.TENANT_ADMIN;
}
private processMobileAppSettings(mobileAppSettings: QrCodeSettings): void { private processMobileAppSettings(mobileAppSettings: QrCodeSettings): void {
this.mobileAppSettings = {...mobileAppSettings}; this.mobileAppSettings = {...mobileAppSettings};
if (!this.isTenantAdmin()) {
this.mobileAppSettings.useSystemSettings = false;
}
this.mobileAppSettingsForm.reset(this.mobileAppSettings); this.mobileAppSettingsForm.reset(this.mobileAppSettings);
} }

View File

@ -22,7 +22,6 @@ import { MobileAppBundleId } from '@shared/models/id/mobile-app-bundle-id';
import { deepClone, isNotEmptyStr } from '@core/utils'; import { deepClone, isNotEmptyStr } from '@core/utils';
export interface QrCodeSettings extends HasTenantId { export interface QrCodeSettings extends HasTenantId {
useSystemSettings: boolean;
useDefaultApp: boolean; useDefaultApp: boolean;
mobileAppBundleId: MobileAppBundleId mobileAppBundleId: MobileAppBundleId
androidEnabled: boolean; androidEnabled: boolean;