Commit 15bbaf02 authored by Evgeny Stepanovych's avatar Evgeny Stepanovych
Browse files

NAS-112485: Removes some of the unused code and fixes random typing errors in templates

parent fde79480
Showing with 10 additions and 334 deletions
+10 -334
......@@ -9,7 +9,7 @@ import { difference, ListSelection, ListSelectionImpl } from './models';
styleUrls: ['./dual-list.component.scss'],
templateUrl: 'dual-list.component.html',
})
export class DualListboxComponent<T extends { id: string }> implements OnInit {
export class DualListboxComponent<T extends { id: string | number }> implements OnInit {
@Input() key: keyof T = 'id';
@Input() items: T[];
// eslint-disable-next-line @angular-eslint/no-input-rename
......
......@@ -3,7 +3,7 @@ import {
} from '@angular/core';
import { MediaChange, MediaObserver } from '@angular/flex-layout';
import { MatDialog } from '@angular/material/dialog';
import { MatSidenav } from '@angular/material/sidenav';
import { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';
import { NavigationEnd, Router } from '@angular/router';
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
import { ConsolePanelDialogComponent } from 'app/components/common/dialog/console-panel/console-panel-dialog.component';
......@@ -29,7 +29,7 @@ export class AdminLayoutComponent implements OnInit, AfterViewChecked {
private isMobile: boolean;
isSidenavOpen = true;
isSidenavCollapsed = false;
sidenavMode = 'over';
sidenavMode: MatDrawerMode = 'over';
isShowFooterConsole = false;
isSidenotOpen = false;
consoleMsg = '';
......
import { Subject } from 'rxjs';
import { ViewController } from 'app/core/classes/view-controller';
import { CoreEvent } from 'app/interfaces/events';
export interface PageOptions {
events$: Subject<CoreEvent>;
url: string;
}
export abstract class Page extends ViewController {
name = 'Page';
private url: string; // Give the page a url
constructor(options?: PageOptions) {
super();
if (options) {
this.setControlEvents(options.events$);
}
}
}
import { Subject } from 'rxjs';
import { CoreEvent } from 'app/interfaces/events';
export interface Action {
coreEvent: CoreEvent;
}
export abstract class ViewControl {
action: CoreEvent;
target: Subject<CoreEvent>;// (Send actions back to ViewController via this Subject)
......
......@@ -44,24 +44,3 @@ export function toggleClass(el: HTMLElement | HTMLCollectionOf<HTMLElement>, cla
addClass(el, className);
}
}
export function changeTheme(): void {
// Remove default
/* removeClass(document.body, 'ix-blue');
themes.forEach((theme) => {
removeClass(document.body, theme.name);
//removeClass(document.body, 'native');
});
addClass(document.body, themeName); */
addClass(document.body, 'ix-blue');
}
export function ieChatjsFix(): void {
if (window.hasOwnProperty('MSInputMethodContext') || document.hasOwnProperty('documentMode')) {
document.body.style.width = '99.9%';
setTimeout(() => {
document.body.style.width = '100%';
});
}
}
import { Validators } from '@angular/forms';
import { T } from 'app/translate-marker';
export default {
nis_label: T('Network Information Service (NIS)'),
nis_custactions_clearcache_id: 'ds_clearcache',
nis_custactions_clearcache_name: T('Rebuild Directory Service Cache'),
nis_custactions_clearcache_dialog_title: T('NIS'),
nis_custactions_clearcache_dialog_message: T('The cache is being rebuilt.'),
nis_domain_placeholder: T('NIS Domain'),
nis_domain_tooltip: T('Name of NIS domain.'),
nis_domain_validation: [Validators.required],
nis_servers_placeholder: T('NIS Servers'),
nis_servers_tooltip: T('List of hostnames or IP addresses. \
Separate entries by pressing <code>Enter</code>.'),
nis_secure_mode_placeholder: T('Secure Mode'),
nis_secure_mode_tooltip: T('Set to have <a\
href="https://www.freebsd.org/cgi/man.cgi?query=ypbind"\
target="_blank">ypbind(8)</a> refuse to bind to any NIS\
server not running as root on a TCP port over 1024.'),
nis_manycast_placeholder: T('Manycast'),
nis_manycast_tooltip: T('Set for ypbind to bind to the server that responds\
the fastest.'),
nis_enable_placeholder: T('Enable'),
nis_enable_tooltip: T('Unset to disable the configuration without deleting it.'),
};
import { Validators } from '@angular/forms';
import { matchOtherValidator } from 'app/pages/common/entity/entity-form/validators/password-validation/password-validation';
import { T } from 'app/translate-marker';
export default {
dc_realm_label: 'Realm',
dc_realm_placeholder: T('Realm'),
dc_realm_tooltip: T('Enter a capitalized DNS realm name.'),
dc_realm_validation: [Validators.required],
dc_domain_label: 'Domain',
dc_domain_placeholder: T('Domain'),
dc_domain_tooltip: T('Enter a capitalized domain name.'),
dc_domain_validation: [Validators.required],
dc_role_label: 'Server Role',
dc_role_placeholder: T('Server Role'),
dc_role_tooltip: T('The only server role available is the domain\
controller for a new domain.'),
dc_role_options: [
{ label: 'DC', value: 'dc' },
],
dc_dns_forwarder_label: 'DNS Forwarder',
dc_dns_forwarder_placeholder: T('DNS Forwarder'),
dc_dns_forwarder_tooltip: T('Enter the IP address of a DNS forwarder. Required for\
recursive queries when <i>SAMBA_INTERNAL</i> is selected.'),
dc_dns_forwarder_validation: [Validators.required],
dc_forest_level_label: 'Domain Forest Level',
dc_forest_level_placeholder: T('Domain Forest Level'),
dc_forest_level_tooltip: T('Choices are <i>2000, 2003, 2008, 2008_R2, 2012,</i> or <i>2012_R2</i>.\
Refer to <a\
href="https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/active-directory-functional-levels"\
target="_blank">Understanding Active Directory Domain Services (AD DS)\
Functional Levels</a> for more details.'),
dc_forest_level_options: [
{ label: '2000', value: '2000' },
{ label: '2003', value: '2003' },
{ label: '2008', value: '2008' },
{ label: '2008_R2', value: '2008_R2' },
{ label: '2012', value: '2012' },
{ label: '2012_R2', value: '2012_R2' },
],
dc_passwd_placeholder: T('Administrator Password'),
dc_passwd_tooltip: T('Enter the password to be used for the \
Active Directory administrator account.'),
dc_passwd_validation:
[Validators.minLength(8), matchOtherValidator('dc_passwd2')],
dc_passwd2_placeholder: T('Confirm password'),
afp_srv_map_acls_label: 'Kerberos Realm:',
afp_srv_map_acls_placeholder: T('Kerberos Realm'),
afp_srv_map_acls_tooltip: T('Auto-populates with information from the <b>Realm</b>\
when the settings in this screen are saved.'),
afp_srv_map_acls_options: [
{ label: 'Rights', value: 'rights' },
{ label: 'None', value: 'none' },
{ label: 'Mode', value: 'mode' },
],
ad_monitor_warning: T(''),
};
import { Validators } from '@angular/forms';
import {
regexValidator,
} from 'app/pages/common/entity/entity-form/validators/regex-validation';
import { T } from 'app/translate-marker';
export default {
global_paratext: T('Global Settings'),
history: {
placeholder: T('History'),
tooltip: T('The number of entries the Netdata daemon keeps in\
memory for each chart dimension. Default is 86400.'),
validation: [Validators.required, regexValidator(/^\d+$/)],
},
update_every: {
placeholder: T('Update Frequency'),
tooltip: T('Data collection frequency, in seconds.'),
validation: [Validators.required, regexValidator(/^\d+$/)],
},
http_port_listen_backlog: {
placeholder: T('HTTP Port Listen Backlog'),
tooltip: T('The maximum length of the queue of pending\
connections. Default is 100.'),
validation: [Validators.required, regexValidator(/^\d+$/)],
},
bind: {
placeholder: T('Bind to'),
tooltip: T('One or more IP addresses to which to bind the\
Netdata service.'),
},
port: {
placeholder: T('Bind to Port'),
tooltip: T('TCP port to use on bind to IP addresses'),
validation: [Validators.required, regexValidator(/^\d+$/)],
},
additional_params: {
placeholder: T('Additional Parameters'),
tooltip: T('Define other sections and their key/value pairs.\
Enclose each section name in square brackets, and put each key/value\
pair on a new line. Example: <br>\
[system.intr]<br> \
history=86400<br> \
enabled=yes'),
},
alarms: {
placeholder: T('Alarms'),
tooltip: T('Click on alarms to select or unselect.'),
},
streaming_paratext: T('Streaming Metrics'),
stream_mode: {
placeholder: T('Stream Mode'),
tooltip: T('Select a stream mode if system is to be used for\
streaming.'),
},
destination: {
placeholder: T('Destination'),
tooltip: T('Enter a line- or space-separated list of\
destinations where the collected metrics are to be sent. Use the format\
<samp>HOST:PORT</samp> (port is optional). Netdata uses the first working\
destination.'),
validation: [Validators.required],
},
api_key: {
placeholder: T('API Key'),
tooltip: T('The API_KEY to use as the sender. This must be a\
valid UUID. It can be generated from the command line by typing\
<samp>uuidgen</samp>.'),
validation: [Validators.required],
},
allow_from: {
placeholder: T('Allow from'),
tooltip: T('A list of simple patterns matching the IPs of the\
servers that will be pushing metrics using this API key.'),
validation: [Validators.required],
},
};
import { T } from 'app/translate-marker';
export default {
dw_disk_name_placeholder: T('Name'),
dw_disk_name_tooltip: T('Disk to wipe.'),
dw_wipe_method_placeholder: T('Method'),
dw_wipe_method_tooltip: T('<i>Quick</i> erases only the partitioning information\
on a disk without clearing other old data. <i>Full\
with zeros</i> overwrites the entire disk with zeros.\
<i>Full with random data</i> overwrites the entire\
disk with random binary data.'),
};
import { Validators } from '@angular/forms';
import { T } from 'app/translate-marker';
export default {
volume_delete_name_label: T('name'),
volume_delete_destroy_label: T('destroy'),
volume_delete_destroy_placeholder: T('Destroy data on this pool?'),
volume_delete_destroy_tooltip: T('Set to permanently erase all information stored on\
this pool when the detach operation is confirmed.'),
volume_delete_confirm_detach_checkbox_label: T('Confirm it is okay to proceed with Detach.'),
volume_delete_confirm_detach_checkbox_placeholder: T('Confirm detach'),
volume_delete_confirm_detach_checkbox_tooltip: T('Set to confirm detaching the pool.'),
volume_delete_confirm_detach_checkbox_validation: [Validators.required],
};
import { T } from 'app/translate-marker';
export const helptext_system_dataset = {
metadata: {
fieldsets: [T('Configure System Dataset')],
},
pool: {
placeholder: T('System Dataset Pool'),
tooltip: T('Select the pool to contain the system dataset.'),
},
syslog: {
placeholder: T('Syslog'),
tooltip: T('Store system logs on the system dataset. Unset to store\
system logs in <i>/var/</i> on the operating system device.'),
},
syslog_warning: {
title: T('WARNING'),
message: T('The Passive controller must be rebooted in order to change the location of system logs.'),
},
pool_warning: {
title: T('WARNING'),
message: T('The Passive controller must be rebooted in order to change the location of the system dataset.'),
},
};
import { Validators } from '@angular/forms';
import { T } from 'app/translate-marker';
export default {
serial_shell_tooltip: '<b>Ctrl+C</b> kills a foreground process.<br>\
Many utilities are built-in:<br><b>Iperf</b>,\
<b>Netperf</b>, <b>IOzone</b>, <b>arcstat</b>,\
<b>tw_cli</b>, <br><b>MegaCli</b>,\
<b>freenas-debug</b>, <b>tmux</b>,\
<b>Dmidecode</b>.',
// VM card edit
config_name_placeholder: T('Name'),
config_name_tooltip: T('Enter a name for the VM.'),
config_name_validation: [Validators.required],
config_description_placeholder: T('Description (max. 25 characters)'),
config_description_tooltip: T('Describe the VM or its purpose.'),
config_description_validation: Validators.maxLength(25),
autostart_placeholder: T('Start on Boot'),
autostart_tooltip: T('Set to start the VM automatically on boot.'),
bootloader_placeholder: T('Boot Loader Type'),
bootloader_tooltip: T('Select <b>UEFI</b> for newer operating systems, or\
<b>UEFI-CSM</b> (Compatibility Support Mode) for\
older operating systems that only support BIOS\
booting.'),
bootloader_validation: [Validators.required],
vcpus_placeholder: T('Virtual CPUs'),
vcpus_tooltip: T('Enter a number of virtual CPUs to allocate to the\
VM. The maximum is 16 unless the host CPU also\
limits the maximum. The VM operating system can\
also have operational or licensing restrictions on\
the number of CPUs.'),
vcpus_validation: [Validators.required, Validators.min(1), Validators.max(16)],
memory_placeholder: T('Memory Size (MiB)'),
memory_tooltip: T('Allocate a number of megabytes of RAM to the VM.'),
memory_validation: [Validators.required],
};
......@@ -330,6 +330,8 @@ export type ApiDirectory = {
'cronjob.run': { params: [id: number]; response: void };
'cronjob.query': { params: QueryParams<Cronjob>; response: Cronjob[] };
'cronjob.delete': { params: [id: number]; response: boolean };
'cronjob.create': { params: any; response: any };
'cronjob.update': { params: any; response: any };
// Core
'core.download': { params: CoreDownloadQuery; response: CoreDownloadResponse };
......
......@@ -2,13 +2,6 @@ import { ChartReleaseStatus } from 'app/enums/chart-release-status.enum';
import { ChartMetadata } from 'app/interfaces/catalog.interface';
import { QueryParams } from 'app/interfaces/query-api.interface';
// TODO: Conflicts with ChartMetadata (lowercase d).
export interface ChartMetaData {
name: string;
version: string;
latest_chart_version: string;
}
export interface UsedPort {
port: number;
protocol: string;
......
import { Component, Input } from '@angular/core';
import { FormControl } from '@angular/forms';
import { AbstractControl } from '@angular/forms';
import { FieldConfig } from 'app/pages/common/entity/entity-form/models/field-config.interface';
@Component({
......@@ -7,6 +7,6 @@ import { FieldConfig } from 'app/pages/common/entity/entity-form/models/field-co
templateUrl: './form-errors.component.html',
})
export class FormErrorsComponent {
@Input() control: FormControl;
@Input() control: AbstractControl;
@Input() config: FieldConfig;
}
......@@ -40,7 +40,7 @@ export interface AppTableColumn {
hidden?: boolean;
hiddenIfEmpty?: boolean;
listview?: boolean;
getIcon?(element: any, prop: string): void;
getIcon?(element: any, prop: string): string;
}
export interface AppTableConfirmDeleteDialog {
......
......@@ -26,7 +26,7 @@ export interface DashConfigItem {
})
export class WidgetControllerComponent extends WidgetComponent implements OnDestroy {
@Input() dashState: DashConfigItem[] = [];
@Input() renderedWidgets?: number[] = [];
@Input() renderedWidgets?: unknown[] = [];
@Input() hiddenWidgets?: number[] = [];
@Input() emptyConfig: EmptyConfig;
@Input() actionsConfig: ToolbarConfig;
......
export * from 'app/pages/reports-dashboard/components/line-chart/line-chart.component';
export { CconfigureRYSNCComponent } from 'app/pages/services/components/service-rsync/rsync-configuration/configure-rsync/configure-rsync.component';
......@@ -9,7 +9,7 @@ import { ServiceDDNSComponent } from 'app/pages/services/components/service-dyna
import { ServiceFTPComponent } from 'app/pages/services/components/service-ftp/service-ftp.component';
import { ServiceLLDPComponent } from 'app/pages/services/components/service-lldp/service-lldp.component';
import { ServiceNFSComponent } from 'app/pages/services/components/service-nfs/service-nfs.component';
import { CconfigureRYSNCComponent } from 'app/pages/services/components/service-rsync/rsync-configuration/configure-rsync';
import { CconfigureRYSNCComponent } from 'app/pages/services/components/service-rsync/rsync-configuration/configure-rsync/configure-rsync.component';
import { RsyncConfigurationListComponent } from 'app/pages/services/components/service-rsync/rsync-configuration/rsync-configuration-list/rsync-configuration-list.component';
import { RYSNCConfigurationFormComponent } from 'app/pages/services/components/service-rsync/rsync-configuration/rsyncmodule/rsync-configuration-form.component';
import { ServiceRSYNCComponent } from 'app/pages/services/components/service-rsync/service-rsync.component';
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment