UI: Remove qr code widgets for tenant level
This commit is contained in:
		
							parent
							
								
									bbb2531c2e
								
							
						
					
					
						commit
						7a60c0fbfd
					
				@ -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},
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
@ -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">
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user