From 6708d3d3dc19c1d4b80c71926a3f371e58b06cc4 Mon Sep 17 00:00:00 2001 From: Alex Karpov Date: Thu, 26 Sep 2024 13:44:08 +0300 Subject: [PATCH] NAS-131148 / 25.04 / Audit logs on HA - Add ability to view and export remote controller logs in the WebUI (#10746) * NAS-131148: Audit logs on HA - Add ability to view and export remote controller logs in the WebUI * NAS-131148: Audit logs on HA - Add ability to view and export remote controller logs in the WebUI --- src/app/enums/controller-type.enum.ts | 4 ++ src/app/interfaces/audit/audit.interface.ts | 1 + src/app/interfaces/export-params.interface.ts | 1 + .../export-button.component.spec.ts | 13 ++++++ .../export-button/export-button.component.ts | 25 +++++++----- src/app/pages/audit/audit.module.ts | 2 + .../components/audit/audit.component.html | 9 +++++ .../components/audit/audit.component.scss | 8 ++++ .../components/audit/audit.component.spec.ts | 24 +++++++++++ .../audit/components/audit/audit.component.ts | 36 +++++++++++++++-- .../audit/utils/audit-api-data-provider.ts | 40 +++++++++++-------- src/assets/i18n/af.json | 1 + src/assets/i18n/ar.json | 1 + src/assets/i18n/ast.json | 1 + src/assets/i18n/az.json | 1 + src/assets/i18n/be.json | 1 + src/assets/i18n/bg.json | 1 + src/assets/i18n/bn.json | 1 + src/assets/i18n/br.json | 1 + src/assets/i18n/bs.json | 1 + src/assets/i18n/ca.json | 1 + src/assets/i18n/cs.json | 1 + src/assets/i18n/cy.json | 1 + src/assets/i18n/da.json | 1 + src/assets/i18n/de.json | 1 + src/assets/i18n/dsb.json | 1 + src/assets/i18n/el.json | 1 + src/assets/i18n/en-au.json | 1 + src/assets/i18n/en-gb.json | 1 + src/assets/i18n/en.json | 1 + src/assets/i18n/eo.json | 1 + src/assets/i18n/es-ar.json | 1 + src/assets/i18n/es-co.json | 1 + src/assets/i18n/es-mx.json | 1 + src/assets/i18n/es-ni.json | 1 + src/assets/i18n/es-ve.json | 1 + src/assets/i18n/es.json | 1 + src/assets/i18n/et.json | 1 + src/assets/i18n/eu.json | 1 + src/assets/i18n/fa.json | 1 + src/assets/i18n/fi.json | 1 + src/assets/i18n/fr.json | 1 + src/assets/i18n/fy.json | 1 + src/assets/i18n/ga.json | 1 + src/assets/i18n/gd.json | 1 + src/assets/i18n/gl.json | 1 + src/assets/i18n/he.json | 1 + src/assets/i18n/hi.json | 1 + src/assets/i18n/hr.json | 1 + src/assets/i18n/hsb.json | 1 + src/assets/i18n/hu.json | 1 + src/assets/i18n/ia.json | 1 + src/assets/i18n/id.json | 1 + src/assets/i18n/io.json | 1 + src/assets/i18n/is.json | 1 + src/assets/i18n/it.json | 1 + src/assets/i18n/ja.json | 1 + src/assets/i18n/ka.json | 1 + src/assets/i18n/kk.json | 1 + src/assets/i18n/km.json | 1 + src/assets/i18n/kn.json | 1 + src/assets/i18n/ko.json | 1 + src/assets/i18n/lb.json | 1 + src/assets/i18n/lt.json | 1 + src/assets/i18n/lv.json | 1 + src/assets/i18n/mk.json | 1 + src/assets/i18n/ml.json | 1 + src/assets/i18n/mn.json | 1 + src/assets/i18n/mr.json | 1 + src/assets/i18n/my.json | 1 + src/assets/i18n/nb.json | 1 + src/assets/i18n/ne.json | 1 + src/assets/i18n/nl.json | 1 + src/assets/i18n/nn.json | 1 + src/assets/i18n/os.json | 1 + src/assets/i18n/pa.json | 1 + src/assets/i18n/pl.json | 1 + src/assets/i18n/pt-br.json | 1 + src/assets/i18n/pt.json | 1 + src/assets/i18n/ro.json | 1 + src/assets/i18n/ru.json | 1 + src/assets/i18n/sk.json | 1 + src/assets/i18n/sl.json | 1 + src/assets/i18n/sq.json | 1 + src/assets/i18n/sr-latn.json | 1 + src/assets/i18n/sr.json | 1 + src/assets/i18n/strings.json | 1 + src/assets/i18n/sv.json | 1 + src/assets/i18n/sw.json | 1 + src/assets/i18n/ta.json | 1 + src/assets/i18n/te.json | 1 + src/assets/i18n/th.json | 1 + src/assets/i18n/tr.json | 1 + src/assets/i18n/tt.json | 1 + src/assets/i18n/udm.json | 1 + src/assets/i18n/uk.json | 1 + src/assets/i18n/vi.json | 1 + src/assets/i18n/zh-hans.json | 1 + src/assets/i18n/zh-hant.json | 1 + 99 files changed, 222 insertions(+), 29 deletions(-) create mode 100644 src/app/enums/controller-type.enum.ts diff --git a/src/app/enums/controller-type.enum.ts b/src/app/enums/controller-type.enum.ts new file mode 100644 index 00000000000..b8a949fee96 --- /dev/null +++ b/src/app/enums/controller-type.enum.ts @@ -0,0 +1,4 @@ +export enum ControllerType { + Active = 'ACTIVE', + Standby = 'STAND_BY', +} diff --git a/src/app/interfaces/audit/audit.interface.ts b/src/app/interfaces/audit/audit.interface.ts index 702c842ddd7..61a2ffd0693 100644 --- a/src/app/interfaces/audit/audit.interface.ts +++ b/src/app/interfaces/audit/audit.interface.ts @@ -9,6 +9,7 @@ export interface AuditQueryParams { services?: AuditService[]; 'query-filters'?: QueryFilters; 'query-options'?: QueryOptions; + remote_controller?: boolean; } export interface BaseAuditEntry { diff --git a/src/app/interfaces/export-params.interface.ts b/src/app/interfaces/export-params.interface.ts index 5c96cfab7a2..ed33b1855a8 100644 --- a/src/app/interfaces/export-params.interface.ts +++ b/src/app/interfaces/export-params.interface.ts @@ -5,4 +5,5 @@ export interface ExportParams { 'query-filters'?: QueryFilters; 'query-options'?: QueryOptions; export_format?: F; + remote_controller?: boolean; } diff --git a/src/app/modules/buttons/export-button/export-button.component.spec.ts b/src/app/modules/buttons/export-button/export-button.component.spec.ts index c074ec4d932..45209853f6a 100644 --- a/src/app/modules/buttons/export-button/export-button.component.spec.ts +++ b/src/app/modules/buttons/export-button/export-button.component.spec.ts @@ -2,7 +2,9 @@ import { HarnessLoader } from '@angular/cdk/testing'; import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; import { MatButtonHarness } from '@angular/material/button/testing'; import { createComponentFactory, mockProvider, Spectator } from '@ngneat/spectator/jest'; +import { provideMockStore } from '@ngrx/store/testing'; import { mockCall, mockJob, mockWebSocket } from 'app/core/testing/utils/mock-websocket.utils'; +import { ControllerType } from 'app/enums/controller-type.enum'; import { JobState } from 'app/enums/job-state.enum'; import { ApiJobMethod } from 'app/interfaces/api/api-job-directory.interface'; import { AuditEntry } from 'app/interfaces/audit/audit.interface'; @@ -11,6 +13,7 @@ import { ExportButtonComponent } from 'app/modules/buttons/export-button/export- import { SortDirection } from 'app/modules/ix-table/enums/sort-direction.enum'; import { DownloadService } from 'app/services/download.service'; import { WebSocketService } from 'app/services/ws.service'; +import { selectIsHaLicensed } from 'app/store/ha-info/ha-info.selectors'; describe('ExportButtonComponent', () => { const jobMethod: ApiJobMethod = 'audit.export'; @@ -29,6 +32,14 @@ describe('ExportButtonComponent', () => { mockProvider(DownloadService, { downloadUrl: jest.fn(), }), + provideMockStore({ + selectors: [ + { + selector: selectIsHaLicensed, + value: true, + }, + ], + }), ], }); @@ -69,6 +80,7 @@ describe('ExportButtonComponent', () => { isBasicQuery: true, query: 'search query', }); + spectator.setInput('controllerType', ControllerType.Standby); spectator.detectChanges(); const exportButton = await loader.getHarness(MatButtonHarness.with({ text: 'Export As CSV' })); @@ -78,6 +90,7 @@ describe('ExportButtonComponent', () => { export_format: 'CSV', 'query-filters': [['event', '~', '(?i)search query']], 'query-options': { order_by: ['-service'] }, + remote_controller: true, }]); expect(spectator.inject(WebSocketService).call).toHaveBeenCalledWith('core.download', [jobMethod, [{}], '/path/data.csv']); expect(spectator.inject(DownloadService).downloadUrl).toHaveBeenLastCalledWith( diff --git a/src/app/modules/buttons/export-button/export-button.component.ts b/src/app/modules/buttons/export-button/export-button.component.ts index ebc90180b3f..7387f31b118 100644 --- a/src/app/modules/buttons/export-button/export-button.component.ts +++ b/src/app/modules/buttons/export-button/export-button.component.ts @@ -1,11 +1,14 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core'; +import { toSignal } from '@angular/core/rxjs-interop'; import { MatButton } from '@angular/material/button'; import { MatProgressBar } from '@angular/material/progress-bar'; import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; +import { Store } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; import { catchError, EMPTY, switchMap } from 'rxjs'; +import { ControllerType } from 'app/enums/controller-type.enum'; import { ExportFormat } from 'app/enums/export-format.enum'; import { JobState } from 'app/enums/job-state.enum'; import { ApiCallDirectory } from 'app/interfaces/api/api-call-directory.interface'; @@ -20,6 +23,8 @@ import { TestIdModule } from 'app/modules/test-id/test-id.module'; import { DownloadService } from 'app/services/download.service'; import { ErrorHandlerService } from 'app/services/error-handler.service'; import { WebSocketService } from 'app/services/ws.service'; +import { AppsState } from 'app/store'; +import { selectIsHaLicensed } from 'app/store/ha-info/ha-info.selectors'; @UntilDestroy() @Component({ @@ -44,16 +49,20 @@ export class ExportButtonComponent { @Input() fileType = 'csv'; @Input() fileMimeType = 'text/csv'; @Input() addReportNameArgument = false; + @Input() controllerType: ControllerType; @Input() downloadMethod?: keyof ApiCallDirectory; isLoading = false; + protected readonly isHaLicensed = toSignal(this.store$.select(selectIsHaLicensed)); + constructor( private ws: WebSocketService, private cdr: ChangeDetectorRef, private errorHandler: ErrorHandlerService, private dialogService: DialogService, private download: DownloadService, + private store$: Store, ) {} onExport(): void { @@ -104,7 +113,10 @@ export class ExportButtonComponent { 'query-filters': queryFilters, 'query-options': queryOptions, export_format: ExportFormat.Csv, - }] as unknown as ApiJobParams; + ...(this.isHaLicensed() && this.controllerType && { + remote_controller: this.controllerType === ControllerType.Standby, + }), + }] as ApiJobParams; } private getQueryFilters(searchQuery: SearchQuery): QueryFilters { @@ -116,18 +128,13 @@ export class ExportButtonComponent { } private getQueryOptions(sorting: TableSort): QueryOptions { - if (!sorting) { - return {}; - } - - if (sorting.propertyName === null || sorting.direction === null) { + if (!sorting?.propertyName || !sorting?.direction) { return {}; } + const orderPrefix = sorting.direction === SortDirection.Desc ? '-' : ''; return { - order_by: [ - ((sorting.direction === SortDirection.Desc ? '-' : '') + (sorting.propertyName as string)) as PropertyPath, - ], + order_by: [`${orderPrefix}${sorting.propertyName as string}` as PropertyPath], }; } } diff --git a/src/app/pages/audit/audit.module.ts b/src/app/pages/audit/audit.module.ts index c4abe36b05b..0dc2892a10d 100644 --- a/src/app/pages/audit/audit.module.ts +++ b/src/app/pages/audit/audit.module.ts @@ -2,6 +2,7 @@ import { AsyncPipe, NgTemplateOutlet } from '@angular/common'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { MatCardModule } from '@angular/material/card'; import { MatSelectModule } from '@angular/material/select'; import { MatTooltipModule } from '@angular/material/tooltip'; @@ -53,6 +54,7 @@ import { MetadataDetailsCardComponent } from './components/metadata-details-card IxTableCellDirective, IxTablePagerComponent, IxTableHeadComponent, + MatButtonToggleModule, ], exports: [], declarations: [ diff --git a/src/app/pages/audit/components/audit/audit.component.html b/src/app/pages/audit/components/audit/audit.component.html index 33e914a25db..112fab14a53 100644 --- a/src/app/pages/audit/components/audit/audit.component.html +++ b/src/app/pages/audit/components/audit/audit.component.html @@ -1,4 +1,12 @@ + @if (isHaLicensed()) { +

{{ 'Controller' | translate }}

+ + {{ 'Active' | translate }} + {{ 'Standby' | translate }} + + } + {{ 'Audit Settings' | translate }} @@ -106,6 +114,7 @@ [searchQuery]="searchQuery" [sorting]="dataProvider.sorting" [defaultFilters]="basicQueryFilters" + [controllerType]="controllerType()" > } diff --git a/src/app/pages/audit/components/audit/audit.component.scss b/src/app/pages/audit/components/audit/audit.component.scss index 3eab1aee092..f7c8079149f 100644 --- a/src/app/pages/audit/components/audit/audit.component.scss +++ b/src/app/pages/audit/components/audit/audit.component.scss @@ -8,6 +8,14 @@ } :host ::ng-deep { + .header-container .title-container .actions-container { + gap: 0 16px; + + p { + margin: 0; + } + } + ix-empty-row { height: 100%; } diff --git a/src/app/pages/audit/components/audit/audit.component.spec.ts b/src/app/pages/audit/components/audit/audit.component.spec.ts index adfbc72ca90..bd040337651 100644 --- a/src/app/pages/audit/components/audit/audit.component.spec.ts +++ b/src/app/pages/audit/components/audit/audit.component.spec.ts @@ -1,9 +1,11 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; +import { MatButtonToggleChange, MatButtonToggleModule } from '@angular/material/button-toggle'; import { createComponentFactory, mockProvider, Spectator } from '@ngneat/spectator/jest'; import { provideMockStore } from '@ngrx/store/testing'; import { MockComponents } from 'ng-mocks'; import { mockCall, mockWebSocket } from 'app/core/testing/utils/mock-websocket.utils'; import { AuditEvent, AuditService } from 'app/enums/audit.enum'; +import { ControllerType } from 'app/enums/controller-type.enum'; import { AdvancedConfig } from 'app/interfaces/advanced-config.interface'; import { AuditEntry } from 'app/interfaces/audit/audit.interface'; import { ExportButtonComponent } from 'app/modules/buttons/export-button/export-button.component'; @@ -17,6 +19,7 @@ import { AuditComponent } from 'app/pages/audit/components/audit/audit.component import { LogDetailsPanelComponent } from 'app/pages/audit/components/log-details-panel/log-details-panel.component'; import { LocaleService } from 'app/services/locale.service'; import { WebSocketService } from 'app/services/ws.service'; +import { selectIsHaLicensed } from 'app/store/ha-info/ha-info.selectors'; import { selectAdvancedConfig } from 'app/store/system-config/system-config.selectors'; describe('AuditComponent', () => { @@ -63,6 +66,7 @@ describe('AuditComponent', () => { imports: [ SearchInputModule, IxTableCellDirective, + MatButtonToggleModule, ], declarations: [ MockComponents( @@ -89,6 +93,10 @@ describe('AuditComponent', () => { ]), provideMockStore({ selectors: [ + { + selector: selectIsHaLicensed, + value: true, + }, { selector: selectAdvancedConfig, value: { @@ -140,6 +148,21 @@ describe('AuditComponent', () => { [{ 'query-filters': [['OR', [['event', '~', '(?i)search'], ['username', '~', '(?i)search'], ['service', '~', '(?i)search']]]], 'query-options': { limit: 50, offset: 0, order_by: ['-message_timestamp'] }, + remote_controller: false, + }], + ); + }); + + it('runs search when controller type is changed', () => { + spectator.component.controllerTypeChanged({ value: ControllerType.Standby } as MatButtonToggleChange); + spectator.detectChanges(); + + expect(websocket.call).toHaveBeenLastCalledWith( + 'audit.query', + [{ + 'query-filters': [], + 'query-options': { limit: 50, offset: 0, order_by: ['-message_timestamp'] }, + remote_controller: true, }], ); }); @@ -160,6 +183,7 @@ describe('AuditComponent', () => { [{ 'query-filters': [['event', '=', 'Authentication'], ['username', '~', 'bob']], 'query-options': { limit: 50, offset: 0, order_by: ['-message_timestamp'] }, + remote_controller: false, }], ); }); diff --git a/src/app/pages/audit/components/audit/audit.component.ts b/src/app/pages/audit/components/audit/audit.component.ts index ea5072adf3a..3c971258fcd 100644 --- a/src/app/pages/audit/components/audit/audit.component.ts +++ b/src/app/pages/audit/components/audit/audit.component.ts @@ -1,10 +1,14 @@ import { BreakpointObserver, BreakpointState, Breakpoints } from '@angular/cdk/layout'; import { - ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit, + ChangeDetectionStrategy, ChangeDetectorRef, Component, effect, Inject, OnDestroy, OnInit, + signal, } from '@angular/core'; +import { toSignal } from '@angular/core/rxjs-interop'; +import { MatButtonToggleChange } from '@angular/material/button-toggle'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { ActivatedRoute } from '@angular/router'; import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; +import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { toSvg } from 'jdenticon'; import { @@ -15,6 +19,7 @@ import { import { AuditEvent, AuditService, auditEventLabels, auditServiceLabels, } from 'app/enums/audit.enum'; +import { ControllerType } from 'app/enums/controller-type.enum'; import { ParamsBuilder } from 'app/helpers/params-builder/params-builder.class'; import { WINDOW } from 'app/helpers/window.helper'; import { AuditEntry, AuditQueryParams } from 'app/interfaces/audit/audit.interface'; @@ -45,6 +50,8 @@ import { AuditApiDataProvider } from 'app/pages/audit/utils/audit-api-data-provi import { getLogImportantData } from 'app/pages/audit/utils/get-log-important-data.utils'; import { UrlOptionsService } from 'app/services/url-options.service'; import { WebSocketService } from 'app/services/ws.service'; +import { AppsState } from 'app/store'; +import { selectIsHaLicensed } from 'app/store/ha-info/ha-info.selectors'; @UntilDestroy() @Component({ @@ -55,8 +62,11 @@ import { WebSocketService } from 'app/services/ws.service'; }) export class AuditComponent implements OnInit, OnDestroy { protected readonly searchableElements = auditElements; + protected readonly controllerType = signal(ControllerType.Active); protected dataProvider: AuditApiDataProvider; + protected readonly isHaLicensed = toSignal(this.store$.select(selectIsHaLicensed)); + protected readonly ControllerType = ControllerType; protected readonly advancedSearchPlaceholder = this.translate.instant('Service = "SMB" AND Event = "CLOSE"'); showMobileDetails = false; isMobileView = false; @@ -97,7 +107,7 @@ export class AuditComponent implements OnInit, OnDestroy { getValue: (row) => this.translate.instant(this.getEventDataForLog(row)), }), ], { - uniqueRowTag: (row) => 'audit-' + row.service + '-' + row.username + '-' + row.event, + uniqueRowTag: (row) => `audit-${row.service}-${row.username}-${row.event}-${row.audit_id}`, ariaLabels: (row) => [row.service, row.username, row.event, this.translate.instant('Audit Entry')], }); @@ -120,8 +130,16 @@ export class AuditComponent implements OnInit, OnDestroy { private sanitizer: DomSanitizer, private activatedRoute: ActivatedRoute, private urlOptionsService: UrlOptionsService, + private store$: Store, @Inject(WINDOW) private window: Window, - ) {} + ) { + effect(() => { + this.dataProvider.selectedControllerType = this.controllerType(); + this.dataProvider.isHaLicensed = this.isHaLicensed(); + + this.dataProvider.load(); + }); + } ngOnInit(): void { this.dataProvider = new AuditApiDataProvider(this.ws); @@ -220,6 +238,18 @@ export class AuditComponent implements OnInit, OnDestroy { return this.sanitizer.bypassSecurityTrustHtml(toSvg(row.username, this.isMobileView ? 15 : 35)); } + controllerTypeChanged(changedValue: MatButtonToggleChange): void { + if (this.controllerType() === changedValue.value) { + return; + } + + if (this.controllerType() === ControllerType.Active && changedValue.value === ControllerType.Standby) { + this.controllerType.set(ControllerType.Standby); + } else { + this.controllerType.set(ControllerType.Active); + } + } + private initMobileView(): void { this.breakpointObserver .observe([Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium]) diff --git a/src/app/pages/audit/utils/audit-api-data-provider.ts b/src/app/pages/audit/utils/audit-api-data-provider.ts index ba4d03656e1..deda6fddfa1 100644 --- a/src/app/pages/audit/utils/audit-api-data-provider.ts +++ b/src/app/pages/audit/utils/audit-api-data-provider.ts @@ -1,5 +1,6 @@ import { isEqual } from 'lodash-es'; import { Observable, of } from 'rxjs'; +import { ControllerType } from 'app/enums/controller-type.enum'; import { ApiCallParams } from 'app/interfaces/api/api-call-directory.interface'; import { AuditEntry, AuditQueryParams } from 'app/interfaces/audit/audit.interface'; import { QueryFilters } from 'app/interfaces/query-api.interface'; @@ -8,6 +9,8 @@ import { WebSocketService } from 'app/services/ws.service'; export class AuditApiDataProvider extends ApiDataProvider<'audit.query'> { lastParams: AuditQueryParams; + isHaLicensed: boolean; + selectedControllerType: ControllerType; get isLastOffset(): boolean { return Boolean((this.totalRows / this.pagination.pageNumber) < this.pagination.pageSize); @@ -28,28 +31,31 @@ export class AuditApiDataProvider extends ApiDataProvider<'audit.query'> { this.lastParams = this.params[0]; - const params = [ - { - 'query-filters': this.params[0] || [], - 'query-options': { count: true }, - }, - ] as ApiCallParams<'audit.query'>; + const params: ApiCallParams<'audit.query'> = [{ + 'query-filters': (this.params[0] || []) as QueryFilters, + 'query-options': { count: true }, + ...(this.isHaLicensed && this.selectedControllerType && { + remote_controller: this.selectedControllerType === ControllerType.Standby, + }), + }]; return this.ws.call(this.method, params) as unknown as Observable; } protected override prepareParams(params: ApiCallParams<'audit.query'>): ApiCallParams<'audit.query'> { - const queryFilters = (params[0] || []) as QueryFilters; - const queryOptions = { - ...this.paginationStrategy.getParams(this.pagination, this.totalRows), - ...this.sortingStrategy.getParams(this.sorting), - }; - - return [ - { - 'query-filters': queryFilters, - 'query-options': queryOptions, + const [queryFilters = []] = params as [QueryFilters]; + + const apiCallParams: ApiCallParams<'audit.query'> = [{ + 'query-filters': queryFilters, + 'query-options': { + ...this.paginationStrategy.getParams(this.pagination, this.totalRows), + ...this.sortingStrategy.getParams(this.sorting), }, - ]; + ...(this.isHaLicensed && this.selectedControllerType && { + remote_controller: this.selectedControllerType === ControllerType.Standby, + }), + }]; + + return apiCallParams; } } diff --git a/src/assets/i18n/af.json b/src/assets/i18n/af.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/af.json +++ b/src/assets/i18n/af.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ar.json b/src/assets/i18n/ar.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ar.json +++ b/src/assets/i18n/ar.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ast.json b/src/assets/i18n/ast.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ast.json +++ b/src/assets/i18n/ast.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/az.json b/src/assets/i18n/az.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/az.json +++ b/src/assets/i18n/az.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/be.json b/src/assets/i18n/be.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/be.json +++ b/src/assets/i18n/be.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/bg.json b/src/assets/i18n/bg.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/bg.json +++ b/src/assets/i18n/bg.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/bn.json b/src/assets/i18n/bn.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/bn.json +++ b/src/assets/i18n/bn.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/br.json b/src/assets/i18n/br.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/br.json +++ b/src/assets/i18n/br.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/bs.json b/src/assets/i18n/bs.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/bs.json +++ b/src/assets/i18n/bs.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ca.json b/src/assets/i18n/ca.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ca.json +++ b/src/assets/i18n/ca.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/cs.json b/src/assets/i18n/cs.json index 45d9ea5884d..cef13822e6f 100644 --- a/src/assets/i18n/cs.json +++ b/src/assets/i18n/cs.json @@ -628,6 +628,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/cy.json b/src/assets/i18n/cy.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/cy.json +++ b/src/assets/i18n/cy.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/da.json b/src/assets/i18n/da.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/da.json +++ b/src/assets/i18n/da.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 7ef68ec8dbb..43d65190b1d 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -692,6 +692,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/dsb.json b/src/assets/i18n/dsb.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/dsb.json +++ b/src/assets/i18n/dsb.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/el.json b/src/assets/i18n/el.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/el.json +++ b/src/assets/i18n/el.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/en-au.json b/src/assets/i18n/en-au.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/en-au.json +++ b/src/assets/i18n/en-au.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/en-gb.json b/src/assets/i18n/en-gb.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/en-gb.json +++ b/src/assets/i18n/en-gb.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/eo.json b/src/assets/i18n/eo.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/eo.json +++ b/src/assets/i18n/eo.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/es-ar.json b/src/assets/i18n/es-ar.json index 1cf273b599a..612ab765ac4 100644 --- a/src/assets/i18n/es-ar.json +++ b/src/assets/i18n/es-ar.json @@ -488,6 +488,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/es-co.json b/src/assets/i18n/es-co.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/es-co.json +++ b/src/assets/i18n/es-co.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/es-mx.json b/src/assets/i18n/es-mx.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/es-mx.json +++ b/src/assets/i18n/es-mx.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/es-ni.json b/src/assets/i18n/es-ni.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/es-ni.json +++ b/src/assets/i18n/es-ni.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/es-ve.json b/src/assets/i18n/es-ve.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/es-ve.json +++ b/src/assets/i18n/es-ve.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/es.json b/src/assets/i18n/es.json index 0ab0e40ccd2..cb44c28fabf 100644 --- a/src/assets/i18n/es.json +++ b/src/assets/i18n/es.json @@ -874,6 +874,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/et.json b/src/assets/i18n/et.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/et.json +++ b/src/assets/i18n/et.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/eu.json b/src/assets/i18n/eu.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/eu.json +++ b/src/assets/i18n/eu.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/fa.json b/src/assets/i18n/fa.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/fa.json +++ b/src/assets/i18n/fa.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/fi.json b/src/assets/i18n/fi.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/fi.json +++ b/src/assets/i18n/fi.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index 1b99f60427a..7c45bd8da83 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -122,6 +122,7 @@ "Container Shell": "", "Container Write": "", "Contract Type": "", + "Controller": "", "Controller Type": "", "Cooling": "", "Copies": "", diff --git a/src/assets/i18n/fy.json b/src/assets/i18n/fy.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/fy.json +++ b/src/assets/i18n/fy.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ga.json b/src/assets/i18n/ga.json index 399f6c8a32d..628a3b73f62 100644 --- a/src/assets/i18n/ga.json +++ b/src/assets/i18n/ga.json @@ -23,6 +23,7 @@ "Container ID": "", "Container Logs": "", "Container Shell": "", + "Controller": "", "Crashed": "", "Creating custom app": "", "Credentials have been successfully added.": "", diff --git a/src/assets/i18n/gd.json b/src/assets/i18n/gd.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/gd.json +++ b/src/assets/i18n/gd.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/gl.json b/src/assets/i18n/gl.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/gl.json +++ b/src/assets/i18n/gl.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/he.json b/src/assets/i18n/he.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/he.json +++ b/src/assets/i18n/he.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/hi.json b/src/assets/i18n/hi.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/hi.json +++ b/src/assets/i18n/hi.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/hr.json b/src/assets/i18n/hr.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/hr.json +++ b/src/assets/i18n/hr.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/hsb.json b/src/assets/i18n/hsb.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/hsb.json +++ b/src/assets/i18n/hsb.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/hu.json b/src/assets/i18n/hu.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/hu.json +++ b/src/assets/i18n/hu.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ia.json b/src/assets/i18n/ia.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ia.json +++ b/src/assets/i18n/ia.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/id.json b/src/assets/i18n/id.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/id.json +++ b/src/assets/i18n/id.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/io.json b/src/assets/i18n/io.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/io.json +++ b/src/assets/i18n/io.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/is.json b/src/assets/i18n/is.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/is.json +++ b/src/assets/i18n/is.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/it.json b/src/assets/i18n/it.json index 03c8fc3acb5..5dc7d6d9cf6 100644 --- a/src/assets/i18n/it.json +++ b/src/assets/i18n/it.json @@ -842,6 +842,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ja.json b/src/assets/i18n/ja.json index 4cda9564939..7b23b5bca99 100644 --- a/src/assets/i18n/ja.json +++ b/src/assets/i18n/ja.json @@ -797,6 +797,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ka.json b/src/assets/i18n/ka.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ka.json +++ b/src/assets/i18n/ka.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/kk.json b/src/assets/i18n/kk.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/kk.json +++ b/src/assets/i18n/kk.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/km.json b/src/assets/i18n/km.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/km.json +++ b/src/assets/i18n/km.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/kn.json b/src/assets/i18n/kn.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/kn.json +++ b/src/assets/i18n/kn.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ko.json b/src/assets/i18n/ko.json index 88fbbc970c7..517eb3da826 100644 --- a/src/assets/i18n/ko.json +++ b/src/assets/i18n/ko.json @@ -537,6 +537,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/lb.json b/src/assets/i18n/lb.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/lb.json +++ b/src/assets/i18n/lb.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/lt.json b/src/assets/i18n/lt.json index 95890bb5946..c18f9f02a82 100644 --- a/src/assets/i18n/lt.json +++ b/src/assets/i18n/lt.json @@ -955,6 +955,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/lv.json b/src/assets/i18n/lv.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/lv.json +++ b/src/assets/i18n/lv.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/mk.json b/src/assets/i18n/mk.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/mk.json +++ b/src/assets/i18n/mk.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ml.json b/src/assets/i18n/ml.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ml.json +++ b/src/assets/i18n/ml.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/mn.json b/src/assets/i18n/mn.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/mn.json +++ b/src/assets/i18n/mn.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/mr.json b/src/assets/i18n/mr.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/mr.json +++ b/src/assets/i18n/mr.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/my.json b/src/assets/i18n/my.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/my.json +++ b/src/assets/i18n/my.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/nb.json b/src/assets/i18n/nb.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/nb.json +++ b/src/assets/i18n/nb.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ne.json b/src/assets/i18n/ne.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ne.json +++ b/src/assets/i18n/ne.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/nl.json b/src/assets/i18n/nl.json index fa2e9dc1ddb..ce074671a09 100644 --- a/src/assets/i18n/nl.json +++ b/src/assets/i18n/nl.json @@ -232,6 +232,7 @@ "Container Logs": "", "Container Shell": "", "Contract Type": "", + "Controller": "", "Controller Type": "", "Cooling": "", "Copies": "", diff --git a/src/assets/i18n/nn.json b/src/assets/i18n/nn.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/nn.json +++ b/src/assets/i18n/nn.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/os.json b/src/assets/i18n/os.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/os.json +++ b/src/assets/i18n/os.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/pa.json b/src/assets/i18n/pa.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/pa.json +++ b/src/assets/i18n/pa.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/pl.json b/src/assets/i18n/pl.json index 7d983727e5b..b2382de4604 100644 --- a/src/assets/i18n/pl.json +++ b/src/assets/i18n/pl.json @@ -915,6 +915,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/pt-br.json b/src/assets/i18n/pt-br.json index 7eeaf6409f4..391a7f89293 100644 --- a/src/assets/i18n/pt-br.json +++ b/src/assets/i18n/pt-br.json @@ -902,6 +902,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/pt.json b/src/assets/i18n/pt.json index 6e0f1210359..87c83ac247e 100644 --- a/src/assets/i18n/pt.json +++ b/src/assets/i18n/pt.json @@ -399,6 +399,7 @@ "Contents of the uploaded Service Account JSON file.": "", "Context menu copy and paste operations are disabled in the Shell. Copy and paste shortcuts for Mac are Command+c and Command+v. For most operating systems, use Ctrl+Insert to copy and Shift+Insert to paste.": "", "Contract Type": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ro.json b/src/assets/i18n/ro.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ro.json +++ b/src/assets/i18n/ro.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ru.json b/src/assets/i18n/ru.json index 8829bcf00e0..1e34a3a2eee 100644 --- a/src/assets/i18n/ru.json +++ b/src/assets/i18n/ru.json @@ -564,6 +564,7 @@ "Content Commitment": "", "Continue with the upgrade": "", "Contract Type": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/sk.json b/src/assets/i18n/sk.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/sk.json +++ b/src/assets/i18n/sk.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/sl.json b/src/assets/i18n/sl.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/sl.json +++ b/src/assets/i18n/sl.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/sq.json b/src/assets/i18n/sq.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/sq.json +++ b/src/assets/i18n/sq.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/sr-latn.json b/src/assets/i18n/sr-latn.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/sr-latn.json +++ b/src/assets/i18n/sr-latn.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/sr.json b/src/assets/i18n/sr.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/sr.json +++ b/src/assets/i18n/sr.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/strings.json b/src/assets/i18n/strings.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/strings.json +++ b/src/assets/i18n/strings.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/sv.json b/src/assets/i18n/sv.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/sv.json +++ b/src/assets/i18n/sv.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/sw.json b/src/assets/i18n/sw.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/sw.json +++ b/src/assets/i18n/sw.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/ta.json b/src/assets/i18n/ta.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/ta.json +++ b/src/assets/i18n/ta.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/te.json b/src/assets/i18n/te.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/te.json +++ b/src/assets/i18n/te.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/th.json b/src/assets/i18n/th.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/th.json +++ b/src/assets/i18n/th.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/tr.json b/src/assets/i18n/tr.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/tr.json +++ b/src/assets/i18n/tr.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/tt.json b/src/assets/i18n/tt.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/tt.json +++ b/src/assets/i18n/tt.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/udm.json b/src/assets/i18n/udm.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/udm.json +++ b/src/assets/i18n/udm.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/uk.json b/src/assets/i18n/uk.json index 34cf0301f05..ddb4c76ee1b 100644 --- a/src/assets/i18n/uk.json +++ b/src/assets/i18n/uk.json @@ -349,6 +349,7 @@ "Container Write": "", "Continue with the upgrade": "", "Contract Type": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/vi.json b/src/assets/i18n/vi.json index 8e018d348fd..dfff9dc5285 100644 --- a/src/assets/i18n/vi.json +++ b/src/assets/i18n/vi.json @@ -961,6 +961,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "", diff --git a/src/assets/i18n/zh-hans.json b/src/assets/i18n/zh-hans.json index 190ed5bcac9..298fd5290cb 100644 --- a/src/assets/i18n/zh-hans.json +++ b/src/assets/i18n/zh-hans.json @@ -238,6 +238,7 @@ "Container Logs": "", "Container Shell": "", "Contract Type": "", + "Controller": "", "Controller Type": "", "Cooling": "", "Copies": "", diff --git a/src/assets/i18n/zh-hant.json b/src/assets/i18n/zh-hant.json index 29bea13eede..30cddc3ca99 100644 --- a/src/assets/i18n/zh-hant.json +++ b/src/assets/i18n/zh-hant.json @@ -788,6 +788,7 @@ "Continue with the upgrade": "", "Contract Type": "", "Control": "", + "Controller": "", "Controller Type": "", "Controls whether SMART monitoring and scheduled SMART tests are enabled.": "", "Controls whether audit messages will be generated for the share.

Note: Auditing may not be enabled if SMB1 support is enabled for the server.": "",