Browse Source

refactore

pull/14153/head
Maksym Tsymbarov 11 months ago
parent
commit
9c6170d8c0
  1. 25
      ui-ngx/src/app/modules/home/components/widget/lib/photo-camera-input.component.ts
  2. 13
      ui-ngx/src/app/modules/home/components/widget/lib/settings/input/photo-camera-input-widget-settings.component.ts

25
ui-ngx/src/app/modules/home/components/widget/lib/photo-camera-input.component.ts

@ -24,25 +24,25 @@ import {
ViewChild, ViewChild,
ViewEncapsulation ViewEncapsulation
} from '@angular/core'; } from '@angular/core';
import { PageComponent } from '@shared/components/page.component'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
import { WidgetContext } from '@home/models/widget-component.models'; import { ImageService } from '@app/core/public-api';
import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state'; import { AppState } from '@core/core.state';
import { AttributeService } from '@core/http/attribute.service';
import { UtilsService } from '@core/services/utils.service'; import { UtilsService } from '@core/services/utils.service';
import { Datasource, DatasourceData, DatasourceType } from '@shared/models/widget.models';
import { WINDOW } from '@core/services/window.service'; import { WINDOW } from '@core/services/window.service';
import { AttributeService } from '@core/http/attribute.service'; import { isString } from '@core/utils';
import { WidgetContext } from '@home/models/widget-component.models';
import { Store } from '@ngrx/store';
import { PageComponent } from '@shared/components/page.component';
import { EntityId } from '@shared/models/id/entity-id'; import { EntityId } from '@shared/models/id/entity-id';
import { AttributeScope, DataKeyType } from '@shared/models/telemetry/telemetry.models'; import { AttributeScope, DataKeyType } from '@shared/models/telemetry/telemetry.models';
import { map, Observable, of, switchMap, tap } from 'rxjs'; import { Datasource, DatasourceData, DatasourceType } from '@shared/models/widget.models';
import { isFile, isString } from '@core/utils'; import { map, Observable, of, switchMap } from 'rxjs';
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
import { ImageService } from '@app/core/public-api';
interface PhotoCameraInputWidgetSettings { interface PhotoCameraInputWidgetSettings {
widgetTitle: string; widgetTitle: string;
saveToGallery: boolean; saveToGallery: boolean;
imageVisibility: boolean; usePublicGalleryLink: boolean;
imageQuality: number; imageQuality: number;
imageFormat: string; imageFormat: string;
maxWidth: number; maxWidth: number;
@ -284,8 +284,7 @@ export class PhotoCameraInputWidgetComponent extends PageComponent implements On
this.canvasElement.height = this.videoHeight; this.canvasElement.height = this.videoHeight;
this.canvasElement.getContext('2d').drawImage(this.videoElement, 0, 0, this.videoWidth, this.videoHeight); this.canvasElement.getContext('2d').drawImage(this.videoElement, 0, 0, this.videoWidth, this.videoHeight);
const previewDataUrl = this.canvasElement.toDataURL(this.mimeType, this.quality); this.previewPhoto = this.canvasElement.toDataURL(this.mimeType, this.quality);
this.previewPhoto = previewDataUrl;
this.isPreviewPhoto = true; this.isPreviewPhoto = true;
} }
@ -310,7 +309,7 @@ export class PhotoCameraInputWidgetComponent extends PageComponent implements On
return this.imageService.uploadImage(file, fileName); return this.imageService.uploadImage(file, fileName);
}), }),
map((imageInfo) => map((imageInfo) =>
this.settings.imageVisibility ? imageInfo.publicLink : imageInfo.link this.settings.usePublicGalleryLink ? imageInfo.publicLink : imageInfo.link
) )
); );
} }

13
ui-ngx/src/app/modules/home/components/widget/lib/settings/input/photo-camera-input-widget-settings.component.ts

@ -15,11 +15,10 @@
/// ///
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state'; import { AppState } from '@core/core.state';
import { deepClone } from '@app/core/utils'; import { Store } from '@ngrx/store';
import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models';
@Component({ @Component({
selector: 'tb-photo-camera-input-widget-settings', selector: 'tb-photo-camera-input-widget-settings',
@ -44,7 +43,7 @@ export class PhotoCameraInputWidgetSettingsComponent extends WidgetSettingsCompo
widgetTitle: '', widgetTitle: '',
saveToGallery: false, saveToGallery: false,
imageVisibility: true, usePublicGalleryLink: true,
imageFormat: 'image/png', imageFormat: 'image/png',
imageQuality: 0.92, imageQuality: 0.92,
maxWidth: 640, maxWidth: 640,
@ -61,7 +60,7 @@ export class PhotoCameraInputWidgetSettingsComponent extends WidgetSettingsCompo
// Image settings // Image settings
saveToGallery: [settings.saveToGallery], saveToGallery: [settings.saveToGallery],
imageVisibility: [settings.imageVisibility], usePublicGalleryLink: [settings.usePublicGalleryLink],
imageFormat: [settings.imageFormat, []], imageFormat: [settings.imageFormat, []],
imageQuality: [settings.imageQuality, [Validators.min(0), Validators.max(100)]], imageQuality: [settings.imageQuality, [Validators.min(0), Validators.max(100)]],
maxWidth: [settings.maxWidth, [Validators.min(1)]], maxWidth: [settings.maxWidth, [Validators.min(1)]],
@ -72,7 +71,8 @@ export class PhotoCameraInputWidgetSettingsComponent extends WidgetSettingsCompo
protected prepareInputSettings(settings: WidgetSettings): WidgetSettings { protected prepareInputSettings(settings: WidgetSettings): WidgetSettings {
return { return {
...settings, ...settings,
saveToGallery: settings.saveToGallery || false, saveToGallery: settings.saveToGallery ?? false,
usePublicGalleryLink: settings.usePublicGalleryLink ?? false,
imageQuality: settings.imageQuality * 100 imageQuality: settings.imageQuality * 100
} }
} }
@ -80,7 +80,6 @@ export class PhotoCameraInputWidgetSettingsComponent extends WidgetSettingsCompo
protected prepareOutputSettings(settings: WidgetSettings): WidgetSettings { protected prepareOutputSettings(settings: WidgetSettings): WidgetSettings {
return { return {
...settings, ...settings,
saveToGallery: settings.saveToGallery || false,
imageQuality: settings.imageQuality / 100 imageQuality: settings.imageQuality / 100
} }
} }

Loading…
Cancel
Save