diff --git a/ui-ngx/src/app/core/http/entity.service.ts b/ui-ngx/src/app/core/http/entity.service.ts
index 373fa2c15c..ed95c17cfd 100644
--- a/ui-ngx/src/app/core/http/entity.service.ts
+++ b/ui-ngx/src/app/core/http/entity.service.ts
@@ -180,6 +180,9 @@ export class EntityService {
case EntityType.MOBILE_APP:
observable = this.mobileAppService.getMobileAppInfoById(entityId, config);
break;
+ case EntityType.MOBILE_APP_BUNDLE:
+ observable = this.mobileAppService.getMobileAppBundleInfoById(entityId, config);
+ break;
}
return observable;
}
@@ -473,6 +476,10 @@ export class EntityService {
pageLink.sortOrder.property = 'pkgName';
entitiesObservable = this.mobileAppService.getTenantMobileAppInfos(pageLink, subType as PlatformType, config);
break;
+ case EntityType.MOBILE_APP_BUNDLE:
+ pageLink.sortOrder.property = 'title';
+ entitiesObservable = this.mobileAppService.getTenantMobileAppBundleInfos(pageLink, config);
+ break;
}
return entitiesObservable;
}
diff --git a/ui-ngx/src/app/modules/home/components/entity/entity-chips.component.ts b/ui-ngx/src/app/modules/home/components/entity/entity-chips.component.ts
index cee82995aa..6aad28c638 100644
--- a/ui-ngx/src/app/modules/home/components/entity/entity-chips.component.ts
+++ b/ui-ngx/src/app/modules/home/components/entity/entity-chips.component.ts
@@ -18,7 +18,7 @@ import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
import { BaseData } from '@shared/models/base-data';
import { EntityId } from '@shared/models/id/entity-id';
import { baseDetailsPageByEntityType, EntityType } from '@app/shared/public-api';
-import { isObject } from '@core/utils';
+import { isEqual, isObject } from '@core/utils';
@Component({
selector: 'tb-entity-chips',
@@ -53,10 +53,14 @@ export class EntityChipsComponent implements OnChanges {
entitiesList = [entitiesList];
}
if (Array.isArray(entitiesList)) {
- this.subEntities = entitiesList;
- if (this.subEntities.length) {
- this.entityDetailsPrefixUrl = baseDetailsPageByEntityType.get(this.subEntities[0].id.entityType as EntityType);
+ if (entitiesList.length) {
+ this.entityDetailsPrefixUrl = baseDetailsPageByEntityType.get(entitiesList[0].id.entityType as EntityType);
}
+ } else {
+ entitiesList = [];
+ }
+ if (!isEqual(entitiesList, this.subEntities)) {
+ this.subEntities = entitiesList;
}
}
}
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.html
index 625fe00a04..7ae77ba8fa 100644
--- a/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.html
+++ b/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.html
@@ -27,13 +27,13 @@
[class.row-reverse]="mobileAppSettings?.qrCodeConfig.badgePosition === badgePosition.LEFT">
-
+
-
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.ts
index e872ce06ce..acba8be81d 100644
--- a/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.ts
+++ b/ui-ngx/src/app/modules/home/components/widget/lib/mobile-app-qrcode-widget.component.ts
@@ -91,11 +91,8 @@ export class MobileAppQrcodeWidgetComponent extends PageComponent implements OnI
this.mobileAppService.getMobileAppSettings().subscribe((settings => {
this.mobileAppSettings = settings;
- const useDefaultApp = this.mobileAppSettings.useDefaultApp;
- this.appStoreLink = useDefaultApp ? this.mobileAppSettings.defaultAppStoreLink :
- this.mobileAppSettings.iosConfig.storeLink;
- this.googlePlayLink = useDefaultApp ? this.mobileAppSettings.defaultGooglePlayLink :
- this.mobileAppSettings.androidConfig.storeLink;
+ this.appStoreLink = this.mobileAppSettings.appStoreLink;
+ this.googlePlayLink = this.mobileAppSettings.googlePlayLink;
if (isDefinedAndNotNull(this.ctx.settings.useSystemSettings) && !this.ctx.settings.useSystemSettings) {
this.mobileAppSettings = mergeDeep(this.mobileAppSettings, this.ctx.settings);
@@ -133,10 +130,8 @@ export class MobileAppQrcodeWidgetComponent extends PageComponent implements OnI
clearTimeout(this.deepLinkTTLTimeoutID);
}
- navigateByDeepLink($event) {
- if ($event) {
- $event.stopPropagation();
- }
+ navigateByDeepLink($event: Event) {
+ $event?.stopPropagation();
if (this.ctx.isMobile) {
window.open(this.deepLink, '_blank');
}
@@ -157,7 +152,7 @@ export class MobileAppQrcodeWidgetComponent extends PageComponent implements OnI
private updateQRCode(link: string) {
import('qrcode').then((QRCode) => {
- QRCode.toString(link, (err, svgElement) => {
+ QRCode.toString(link, (_err, svgElement) => {
this.qrCodeSVG = svgElement;
this.cd.markForCheck();
})
diff --git a/ui-ngx/src/app/modules/home/pages/mobile/applications/applications.module.ts b/ui-ngx/src/app/modules/home/pages/mobile/applications/applications.module.ts
index d8e619f865..fbdf4495eb 100644
--- a/ui-ngx/src/app/modules/home/pages/mobile/applications/applications.module.ts
+++ b/ui-ngx/src/app/modules/home/pages/mobile/applications/applications.module.ts
@@ -21,18 +21,17 @@ import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { HomeComponentsModule } from '@home/components/home-components.module';
import { ApplicationsRoutingModule } from '@home/pages/mobile/applications/applications-routing.module';
-import { ReleaseNotesPanelComponent } from '@home/pages/mobile/applications/release-notes-panel.component';
import { MobileAppDialogComponent } from '@home/pages/mobile/applications/mobile-app-dialog.component';
import { RemoveAppDialogComponent } from '@home/pages/mobile/applications/remove-app-dialog.component';
import {
MobileAppConfigurationDialogComponent
} from '@home/pages/mobile/applications/mobile-app-configuration-dialog.component';
+import { CommMobileModule } from '@home/pages/mobile/common/comm-mobile.module';
@NgModule({
declarations: [
MobileAppComponent,
MobileAppTableHeaderComponent,
- ReleaseNotesPanelComponent,
MobileAppDialogComponent,
RemoveAppDialogComponent,
MobileAppConfigurationDialogComponent,
@@ -41,6 +40,7 @@ import {
CommonModule,
SharedModule,
HomeComponentsModule,
+ CommMobileModule,
ApplicationsRoutingModule,
],
exports: [
diff --git a/ui-ngx/src/app/modules/home/pages/mobile/applications/mobile-app.component.ts b/ui-ngx/src/app/modules/home/pages/mobile/applications/mobile-app.component.ts
index cead8a75f4..4552cf8348 100644
--- a/ui-ngx/src/app/modules/home/pages/mobile/applications/mobile-app.component.ts
+++ b/ui-ngx/src/app/modules/home/pages/mobile/applications/mobile-app.component.ts
@@ -28,7 +28,7 @@ import { PlatformType, platformTypeTranslations } from '@shared/models/oauth2.mo
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButton } from '@angular/material/button';
import { TbPopoverService } from '@shared/components/popover.service';
-import { ReleaseNotesPanelComponent } from '@home/pages/mobile/applications/release-notes-panel.component';
+import { EditorPanelComponent } from '@home/pages/mobile/common/editor-panel.component';
@Component({
selector: 'tb-mobile-app',
@@ -155,18 +155,18 @@ export class MobileAppComponent extends EntityComponent
{
} else {
const ctx: any = {
disabled: !(this.isAdd || this.isEdit),
- isLatest: isLatest,
- releaseNotes: isLatest
+ title: isLatest ? 'mobile.latest-version-release-notes' : 'mobile.min-version-release-notes',
+ content: isLatest
? this.entityForm.get('versionInfo.latestVersionReleaseNotes').value
: this.entityForm.get('versionInfo.minVersionReleaseNotes').value
};
const releaseNotesPanelPopover = this.popoverService.displayPopover(trigger, this.renderer,
- this.viewContainerRef, ReleaseNotesPanelComponent, ['leftOnly', 'leftBottomOnly', 'leftTopOnly'], true, null,
+ this.viewContainerRef, EditorPanelComponent, ['leftOnly', 'leftBottomOnly', 'leftTopOnly'], true, null,
ctx,
{},
{}, {}, false, () => {}, {padding: '16px 24px'});
releaseNotesPanelPopover.tbComponentRef.instance.popover = releaseNotesPanelPopover;
- releaseNotesPanelPopover.tbComponentRef.instance.releaseNotesApplied.subscribe((releaseNotes) => {
+ releaseNotesPanelPopover.tbComponentRef.instance.editorContentApplied.subscribe((releaseNotes) => {
releaseNotesPanelPopover.hide();
if (isLatest) {
this.entityForm.get('versionInfo.latestVersionReleaseNotes').setValue(releaseNotes);
diff --git a/ui-ngx/src/app/modules/home/pages/mobile/bundes/layout/mobile-layout.component.html b/ui-ngx/src/app/modules/home/pages/mobile/bundes/layout/mobile-layout.component.html
index ebda8d4f0c..705cc7031c 100644
--- a/ui-ngx/src/app/modules/home/pages/mobile/bundes/layout/mobile-layout.component.html
+++ b/ui-ngx/src/app/modules/home/pages/mobile/bundes/layout/mobile-layout.component.html
@@ -53,7 +53,7 @@
(click)="resetToDefault()">
mdi:broom
-
+
{{ dialogTitle | translate }}
-
+