Загрузка данных


rg "readOnlyDetails" -C 20
classic/src/netInterfaces/modem/Panel.js-		visibleMask: '{state !== \'ready\'}'
classic/src/netInterfaces/modem/Panel.js-	},
classic/src/netInterfaces/modem/Panel.js-
classic/src/netInterfaces/modem/Panel.js-	viewModel: {
classic/src/netInterfaces/modem/Panel.js-		data: {
classic/src/netInterfaces/modem/Panel.js-			state: 'ready',
classic/src/netInterfaces/modem/Panel.js-			record: null
classic/src/netInterfaces/modem/Panel.js-		},
classic/src/netInterfaces/modem/Panel.js-
classic/src/netInterfaces/modem/Panel.js-		formulas: {
classic/src/netInterfaces/modem/Panel.js-			defaultMetric: function(get) {
classic/src/netInterfaces/modem/Panel.js-				var metric = get('record.default_metric');
classic/src/netInterfaces/modem/Panel.js-
classic/src/netInterfaces/modem/Panel.js-				metric = (metric && '('+metric+')') || '';
classic/src/netInterfaces/modem/Panel.js-				return Ext.String.format(lang.networkSettings.netInterfaces.label.defaultMetric, metric);
classic/src/netInterfaces/modem/Panel.js-			},
classic/src/netInterfaces/modem/Panel.js-			simStatus: function(get) {
classic/src/netInterfaces/modem/Panel.js-				var value = get('record.simCard');
classic/src/netInterfaces/modem/Panel.js-				return value && lang.networkSettings.modem.simCard[value] || '';
classic/src/netInterfaces/modem/Panel.js-			},
classic/src/netInterfaces/modem/Panel.js:			readOnlyDetails: function(get) {
classic/src/netInterfaces/modem/Panel.js-				const editDisabled = get('editDisabled'),
classic/src/netInterfaces/modem/Panel.js-				      readOnly = get('readOnly');
classic/src/netInterfaces/modem/Panel.js-
classic/src/netInterfaces/modem/Panel.js-				return editDisabled || readOnly;
classic/src/netInterfaces/modem/Panel.js-			},
classic/src/netInterfaces/modem/Panel.js-		},
classic/src/netInterfaces/modem/Panel.js-
classic/src/netInterfaces/modem/Panel.js-		stores: {
classic/src/netInterfaces/modem/Panel.js-			providers: {
classic/src/netInterfaces/modem/Panel.js-				fields: ['id','provider'],
classic/src/netInterfaces/modem/Panel.js-				autoLoad:true,
classic/src/netInterfaces/modem/Panel.js-				proxy: {
classic/src/netInterfaces/modem/Panel.js-					type:    'rest',
classic/src/netInterfaces/modem/Panel.js-					url:     cgi_rest_service_url + 'modem/provider',
classic/src/netInterfaces/modem/Panel.js-					headers: {'Content-Type': 'application/json'},
classic/src/netInterfaces/modem/Panel.js-					reader: {
classic/src/netInterfaces/modem/Panel.js-						type:         'json',
classic/src/netInterfaces/modem/Panel.js-						rootProperty: 'data'
classic/src/netInterfaces/modem/Panel.js-					}
classic/src/netInterfaces/modem/Panel.js-				}
classic/src/netInterfaces/modem/Panel.js-			}
classic/src/netInterfaces/modem/Panel.js-		}
classic/src/netInterfaces/modem/Panel.js-	},
classic/src/netInterfaces/modem/Panel.js-
classic/src/netInterfaces/modem/Panel.js-	items: [
classic/src/netInterfaces/modem/Panel.js-		{
classic/src/netInterfaces/modem/Panel.js-			xtype:       'togglesliderfield',
classic/src/netInterfaces/modem/Panel.js-			reference:   'enabled',
classic/src/netInterfaces/modem/Panel.js-			splitStatus: false,
classic/src/netInterfaces/modem/Panel.js-			onText:      lang.networkSettings.netInterfaces.state.on,
classic/src/netInterfaces/modem/Panel.js-			offText:     lang.networkSettings.netInterfaces.state.off,
classic/src/netInterfaces/modem/Panel.js-			bind: {
classic/src/netInterfaces/modem/Panel.js:				readOnly: '{readOnlyDetails}',
classic/src/netInterfaces/modem/Panel.js-				disabled: '{record.dirty}',
classic/src/netInterfaces/modem/Panel.js-				value:    '{record.enabled}'
classic/src/netInterfaces/modem/Panel.js-			}
classic/src/netInterfaces/modem/Panel.js-		},{
classic/src/netInterfaces/modem/Panel.js-			// Оператор связи
classic/src/netInterfaces/modem/Panel.js-			xtype:           'combo',
classic/src/netInterfaces/modem/Panel.js-			emptyText:       lang.notSpecified.male,
classic/src/netInterfaces/modem/Panel.js-			fieldLabel:      lang.networkSettings.modem.labels.provider,
classic/src/netInterfaces/modem/Panel.js-			displayField:    'provider',
classic/src/netInterfaces/modem/Panel.js-			valueField:      'id',
classic/src/netInterfaces/modem/Panel.js-			editable:        false,
classic/src/netInterfaces/modem/Panel.js-			queryMode:       'local',
classic/src/netInterfaces/modem/Panel.js-			readOnly:        true,
classic/src/netInterfaces/modem/Panel.js-			modelValidation: true,
classic/src/netInterfaces/modem/Panel.js-			bind: {
classic/src/netInterfaces/modem/Panel.js-				value:    '{record.provider}',
classic/src/netInterfaces/modem/Panel.js-				store:    '{providers}',
classic/src/netInterfaces/modem/Panel.js:				readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/modem/Panel.js-			}
classic/src/netInterfaces/modem/Panel.js-		},{
classic/src/netInterfaces/modem/Panel.js-			xtype:      'displayfield',
classic/src/netInterfaces/modem/Panel.js-			fieldLabel: lang.networkSettings.modem.labels.simStatus,
classic/src/netInterfaces/modem/Panel.js-			bind: {
classic/src/netInterfaces/modem/Panel.js-				value: '{simStatus}'
classic/src/netInterfaces/modem/Panel.js-			}
classic/src/netInterfaces/modem/Panel.js-		},{
classic/src/netInterfaces/modem/Panel.js-			// ПИН-код
classic/src/netInterfaces/modem/Panel.js-			xtype:           'textfield',
classic/src/netInterfaces/modem/Panel.js-			emptyText:       lang.notSpecifiedText,
classic/src/netInterfaces/modem/Panel.js-			fieldLabel:      lang.networkSettings.modem.labels.pin,
classic/src/netInterfaces/modem/Panel.js-			allowBlank:      true,
classic/src/netInterfaces/modem/Panel.js-			maskRe:          /[\d]/,
classic/src/netInterfaces/modem/Panel.js-			readOnly:        true,
classic/src/netInterfaces/modem/Panel.js-			modelValidation: true,
classic/src/netInterfaces/modem/Panel.js-			bind: {
classic/src/netInterfaces/modem/Panel.js-				value:    '{record.pin}',
classic/src/netInterfaces/modem/Panel.js:				readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/modem/Panel.js-			}
classic/src/netInterfaces/modem/Panel.js-		},{
classic/src/netInterfaces/modem/Panel.js-			xtype:  'displayfield',
classic/src/netInterfaces/modem/Panel.js-			hidden: true,
classic/src/netInterfaces/modem/Panel.js-			value:  '<span style="color:red;">' + lang.networkSettings.modem.pinInvalid + '</span>',
classic/src/netInterfaces/modem/Panel.js-			bind: {
classic/src/netInterfaces/modem/Panel.js-				hidden: '{!record.pinInvalid}',
classic/src/netInterfaces/modem/Panel.js-			}
classic/src/netInterfaces/modem/Panel.js-		},{
classic/src/netInterfaces/modem/Panel.js-			xtype:   'fieldset',
classic/src/netInterfaces/modem/Panel.js-			title:   lang.networkSettings.netInterfaces.label.dhcpOn,
classic/src/netInterfaces/modem/Panel.js-			margin:  '15 0 0 0',
classic/src/netInterfaces/modem/Panel.js-			items: [
classic/src/netInterfaces/modem/Panel.js-				{
classic/src/netInterfaces/modem/Panel.js-					xtype:      'checkbox',
classic/src/netInterfaces/modem/Panel.js-					boxLabel:   lang.networkSettings.netInterfaces.label.dns,
classic/src/netInterfaces/modem/Panel.js-					readOnly:     true,
classic/src/netInterfaces/modem/Panel.js-					bind: {
classic/src/netInterfaces/modem/Panel.js-						value:    '{record.dhcp_dns}',
classic/src/netInterfaces/modem/Panel.js:						readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/modem/Panel.js-					}
classic/src/netInterfaces/modem/Panel.js-				},{
classic/src/netInterfaces/modem/Panel.js-					xtype:      'checkbox',
classic/src/netInterfaces/modem/Panel.js-					boxLabel:   lang.networkSettings.netInterfaces.label.routes,
classic/src/netInterfaces/modem/Panel.js-					readOnly:     true,
classic/src/netInterfaces/modem/Panel.js-					bind: {
classic/src/netInterfaces/modem/Panel.js-						value:    '{record.dhcp_routes}',
classic/src/netInterfaces/modem/Panel.js:						readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/modem/Panel.js-					}
classic/src/netInterfaces/modem/Panel.js-				},{
classic/src/netInterfaces/modem/Panel.js-					xtype:      'numberfield',
classic/src/netInterfaces/modem/Panel.js-					labelWidth: 75,
classic/src/netInterfaces/modem/Panel.js-					width:      240,
classic/src/netInterfaces/modem/Panel.js-					minValue:   1,
classic/src/netInterfaces/modem/Panel.js-					maxValue:   255,
classic/src/netInterfaces/modem/Panel.js-					fieldLabel: lang.networkSettings.netInterfaces.label.metric,
classic/src/netInterfaces/modem/Panel.js-					emptyText:  lang.notSpecified.female,
classic/src/netInterfaces/modem/Panel.js-					readOnly:   true,
classic/src/netInterfaces/modem/Panel.js-					modelValidation: true,
classic/src/netInterfaces/modem/Panel.js-					bind: {
classic/src/netInterfaces/modem/Panel.js-						value:    '{record.dhcp_metric}',
classic/src/netInterfaces/modem/Panel.js:						readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/modem/Panel.js-					}
classic/src/netInterfaces/modem/Panel.js-				}
classic/src/netInterfaces/modem/Panel.js-			]
classic/src/netInterfaces/modem/Panel.js-		}
classic/src/netInterfaces/modem/Panel.js-	],
classic/src/netInterfaces/modem/Panel.js-
classic/src/netInterfaces/modem/Panel.js-	dockedItems: [
classic/src/netInterfaces/modem/Panel.js-		{
classic/src/netInterfaces/modem/Panel.js-			xtype:   'transparentToolbar',
classic/src/netInterfaces/modem/Panel.js-			padding: '10 20 10 20',
classic/src/netInterfaces/modem/Panel.js-			dock:    'bottom',
classic/src/netInterfaces/modem/Panel.js-			bind: {
classic/src/netInterfaces/modem/Panel.js:				hidden: '{readOnlyDetails}'
classic/src/netInterfaces/modem/Panel.js-			},
classic/src/netInterfaces/modem/Panel.js-			items: [
classic/src/netInterfaces/modem/Panel.js-				{
classic/src/netInterfaces/modem/Panel.js-					xtype:     'standardButton',
classic/src/netInterfaces/modem/Panel.js-					itemId:    'buttonSave',
classic/src/netInterfaces/modem/Panel.js-					reference: 'saveButton',
classic/src/netInterfaces/modem/Panel.js-					text:      lang.saveText,
classic/src/netInterfaces/modem/Panel.js-					handler:   'onClickSave',
classic/src/netInterfaces/modem/Panel.js-					disabled:  true,
classic/src/netInterfaces/modem/Panel.js-					bind: {
classic/src/netInterfaces/modem/Panel.js-						disabled: '{!record.dirty || !record.valid}'
classic/src/netInterfaces/modem/Panel.js-					}
classic/src/netInterfaces/modem/Panel.js-				},{
classic/src/netInterfaces/modem/Panel.js-					xtype:     'standardButton',
classic/src/netInterfaces/modem/Panel.js-					itemId:    'buttonCancel',
classic/src/netInterfaces/modem/Panel.js-					reference: 'cancelButton',
classic/src/netInterfaces/modem/Panel.js-					text:      lang.cancelText,
classic/src/netInterfaces/modem/Panel.js-					handler:   'onClickCancel',
classic/src/netInterfaces/modem/Panel.js-					bind: {
classic/src/netInterfaces/modem/Panel.js-						disabled: '{!record.dirty}'
--
classic/src/netInterfaces/rpiModem/Panel.js-									},
classic/src/netInterfaces/rpiModem/Panel.js-									cls: 'cfi icon-auxiliary-close',
classic/src/netInterfaces/rpiModem/Panel.js-									handler: function(me) {
classic/src/netInterfaces/rpiModem/Panel.js-										me.setValue("");
classic/src/netInterfaces/rpiModem/Panel.js-									}
classic/src/netInterfaces/rpiModem/Panel.js-								}
classic/src/netInterfaces/rpiModem/Panel.js-							}
classic/src/netInterfaces/rpiModem/Panel.js-						}
classic/src/netInterfaces/rpiModem/Panel.js-					]
classic/src/netInterfaces/rpiModem/Panel.js-				}
classic/src/netInterfaces/rpiModem/Panel.js-			]
classic/src/netInterfaces/rpiModem/Panel.js-		}
classic/src/netInterfaces/rpiModem/Panel.js-	],
classic/src/netInterfaces/rpiModem/Panel.js-
classic/src/netInterfaces/rpiModem/Panel.js-	dockedItems: [
classic/src/netInterfaces/rpiModem/Panel.js-		{
classic/src/netInterfaces/rpiModem/Panel.js-			xtype:   'transparentToolbar',
classic/src/netInterfaces/rpiModem/Panel.js-			padding: '10 20 10 20',
classic/src/netInterfaces/rpiModem/Panel.js-			dock:    'bottom',
classic/src/netInterfaces/rpiModem/Panel.js-			bind: {
classic/src/netInterfaces/rpiModem/Panel.js:				hidden: '{readOnlyDetails}'
classic/src/netInterfaces/rpiModem/Panel.js-			},
classic/src/netInterfaces/rpiModem/Panel.js-			items: [
classic/src/netInterfaces/rpiModem/Panel.js-				{
classic/src/netInterfaces/rpiModem/Panel.js-					xtype:     'standardButton',
classic/src/netInterfaces/rpiModem/Panel.js-					itemId:    'buttonSave',
classic/src/netInterfaces/rpiModem/Panel.js-					reference: 'saveButton',
classic/src/netInterfaces/rpiModem/Panel.js-					text:      lang.saveText,
classic/src/netInterfaces/rpiModem/Panel.js-					handler:   'onClickSave',
classic/src/netInterfaces/rpiModem/Panel.js-					disabled:  true,
classic/src/netInterfaces/rpiModem/Panel.js-					bind: {
classic/src/netInterfaces/rpiModem/Panel.js-						disabled: '{!record.dirty || !record.valid}'
classic/src/netInterfaces/rpiModem/Panel.js-					}
classic/src/netInterfaces/rpiModem/Panel.js-				},{
classic/src/netInterfaces/rpiModem/Panel.js-					xtype:     'standardButton',
classic/src/netInterfaces/rpiModem/Panel.js-					itemId:    'buttonCancel',
classic/src/netInterfaces/rpiModem/Panel.js-					reference: 'cancelButton',
classic/src/netInterfaces/rpiModem/Panel.js-					text:      lang.cancelText,
classic/src/netInterfaces/rpiModem/Panel.js-					handler:   'onClickCancel',
classic/src/netInterfaces/rpiModem/Panel.js-					bind: {
classic/src/netInterfaces/rpiModem/Panel.js-						disabled: '{!record.dirty}'
--
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     },
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     roleText: function(get) {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         const role = get('settings.role');
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         switch (role) {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //             case 'ap':     return lang.networkSettings.wifi.role.ap;
classic/src/netInterfaces/rpiModem/ViewModel.js-    //             case 'client': return lang.networkSettings.wifi.role.client;
classic/src/netInterfaces/rpiModem/ViewModel.js-    //             default:       return '';
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         }
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     },
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     defaultMetric: function(get) {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         var metric = get('settings.default_metric');
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         metric = (metric && '('+metric+')') || '';
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         return Ext.String.format(lang.networkSettings.netInterfaces.label.defaultMetric, metric);
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     },
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     readOnlyNet: function(get) {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         const dhcp     = get('settings.dhcp'),
classic/src/netInterfaces/rpiModem/ViewModel.js:    //               readOnly = get('readOnlyDetails');
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         return readOnly || dhcp;
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     },
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js:    //     readOnlyDetails: function(get) {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         const readOnly = get('readOnly');
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         return readOnly;
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     },
classic/src/netInterfaces/rpiModem/ViewModel.js-    // },
classic/src/netInterfaces/rpiModem/ViewModel.js-    //
classic/src/netInterfaces/rpiModem/ViewModel.js-    // stores: {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //     regions: {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         source: 'WifiRegions',
classic/src/netInterfaces/rpiModem/ViewModel.js-    //         sorters: [
classic/src/netInterfaces/rpiModem/ViewModel.js-    //             {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                 sorterFn: function(record1, record2) {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                     var name1 = record1.get('name'),
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                         name2 = record2.get('name');
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                     if (record1.get('country') === '00') {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                         return -1;
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                     } else if (record2.get('country') === '00') {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                         return 1;
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                     } else {
classic/src/netInterfaces/rpiModem/ViewModel.js-    //                         return name1 > name2 ? 1 : (name1 === name2) ? 0 : -1;
--
classic/src/netInterfaces/details/Bond.js-		{               // Режим
classic/src/netInterfaces/details/Bond.js-			xtype:      'displayfield',
classic/src/netInterfaces/details/Bond.js-			ui:         'compact',
classic/src/netInterfaces/details/Bond.js-			itemId:     'bondMode',
classic/src/netInterfaces/details/Bond.js-			fieldLabel: lang.networkSettings.netInterfaces.label.bondMode,
classic/src/netInterfaces/details/Bond.js-			bind:       '{record.bond_mode}'
classic/src/netInterfaces/details/Bond.js-		},{                  // Подчиненные сетевые интерфейсы
classic/src/netInterfaces/details/Bond.js-			xtype:           'combo',
classic/src/netInterfaces/details/Bond.js-			itemId:          'bondSlaves',
classic/src/netInterfaces/details/Bond.js-			fieldLabel:      lang.networkSettings.netInterfaces.label.childInterfaces,
classic/src/netInterfaces/details/Bond.js-			editable:        false,
classic/src/netInterfaces/details/Bond.js-			multiSelect:     true,
classic/src/netInterfaces/details/Bond.js-			modelValidation: true,
classic/src/netInterfaces/details/Bond.js-			valueField:      'id',
classic/src/netInterfaces/details/Bond.js-			displayField:    'id',
classic/src/netInterfaces/details/Bond.js-			queryMode:       'local',
classic/src/netInterfaces/details/Bond.js-			delimiter:       ', ',
classic/src/netInterfaces/details/Bond.js-			bind: {
classic/src/netInterfaces/details/Bond.js-				store:    '{slaves}',
classic/src/netInterfaces/details/Bond.js-				value:    '{record.bond_slaves}',
classic/src/netInterfaces/details/Bond.js:				readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/details/Bond.js-			}
classic/src/netInterfaces/details/Bond.js-		},{               // Основной интерфейс
classic/src/netInterfaces/details/Bond.js-			xtype:        'combo',
classic/src/netInterfaces/details/Bond.js-			itemId:       'bondPrimary',
classic/src/netInterfaces/details/Bond.js-			reference:    'bondPrimary',
classic/src/netInterfaces/details/Bond.js-			editable:     false,
classic/src/netInterfaces/details/Bond.js-			hidden:       true,
classic/src/netInterfaces/details/Bond.js-			queryMode:    'local',
classic/src/netInterfaces/details/Bond.js-			valueField:   'id',
classic/src/netInterfaces/details/Bond.js-			displayField: 'id',
classic/src/netInterfaces/details/Bond.js-			fieldLabel: lang.networkSettings.netInterfaces.label.primaryInterface,
classic/src/netInterfaces/details/Bond.js-			emptyText:  lang.networkSettings.netInterfaces.label.npBondPrimary,
classic/src/netInterfaces/details/Bond.js-			bind: {
classic/src/netInterfaces/details/Bond.js-				store:    '{currentSlaves}',
classic/src/netInterfaces/details/Bond.js-				value:    '{record.bond_primary}',
classic/src/netInterfaces/details/Bond.js-				hidden:   '{hideBondPrimary}',
classic/src/netInterfaces/details/Bond.js:				readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/details/Bond.js-			},
classic/src/netInterfaces/details/Bond.js-			triggers: {
classic/src/netInterfaces/details/Bond.js-				clear: {
classic/src/netInterfaces/details/Bond.js-					bind: {
classic/src/netInterfaces/details/Bond.js-						hidden: '{!bondPrimary.selection}'
classic/src/netInterfaces/details/Bond.js-					},
classic/src/netInterfaces/details/Bond.js-					cls: 'cfi icon-auxiliary-close',
classic/src/netInterfaces/details/Bond.js-					handler: function(field) {
classic/src/netInterfaces/details/Bond.js-						field.setValue(null);
classic/src/netInterfaces/details/Bond.js-					}
classic/src/netInterfaces/details/Bond.js-				}
classic/src/netInterfaces/details/Bond.js-			}
classic/src/netInterfaces/details/Bond.js-		},{
classic/src/netInterfaces/details/Bond.js-			xtype:      'fieldcontainer',
classic/src/netInterfaces/details/Bond.js-			fieldLabel: lang.networkSettings.netInterfaces.label.frequency,
classic/src/netInterfaces/details/Bond.js-			layout:     'hbox',
classic/src/netInterfaces/details/Bond.js-			items: [
classic/src/netInterfaces/details/Bond.js-				{ // Частота опроса
classic/src/netInterfaces/details/Bond.js-					xtype:           'numberfield',
classic/src/netInterfaces/details/Bond.js-					itemId:          'bondCheckSlaves',
classic/src/netInterfaces/details/Bond.js-					modelValidation: true,
classic/src/netInterfaces/details/Bond.js-					grow:            true,
classic/src/netInterfaces/details/Bond.js-					growMin:         20,
classic/src/netInterfaces/details/Bond.js-					minValue: 1,
classic/src/netInterfaces/details/Bond.js-					maxValue: 1000,
classic/src/netInterfaces/details/Bond.js-					bind: {
classic/src/netInterfaces/details/Bond.js-						value:    '{record.bond_check_slaves}',
classic/src/netInterfaces/details/Bond.js:						readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/details/Bond.js-					}
classic/src/netInterfaces/details/Bond.js-				},{
classic/src/netInterfaces/details/Bond.js-					xtype:   'displayfield',
classic/src/netInterfaces/details/Bond.js-					value:   lang.units.milliSecondShort,
classic/src/netInterfaces/details/Bond.js-					padding: '0 0 0 8'
classic/src/netInterfaces/details/Bond.js-				}
classic/src/netInterfaces/details/Bond.js-			]
classic/src/netInterfaces/details/Bond.js-		},{             // Режим агрегатора
classic/src/netInterfaces/details/Bond.js-			xtype:      'combo',
classic/src/netInterfaces/details/Bond.js-			itemId:     'bondAdSelect',
classic/src/netInterfaces/details/Bond.js-			fieldLabel: lang.networkSettings.netInterfaces.label.aggMode,
classic/src/netInterfaces/details/Bond.js-			editable:   false,
classic/src/netInterfaces/details/Bond.js-			hidden:     true,
classic/src/netInterfaces/details/Bond.js-			queryMode: 'local',
classic/src/netInterfaces/details/Bond.js-			store:      [
classic/src/netInterfaces/details/Bond.js-				'stable',
classic/src/netInterfaces/details/Bond.js-				'bandwidth',
classic/src/netInterfaces/details/Bond.js-				'count'
classic/src/netInterfaces/details/Bond.js-			],
classic/src/netInterfaces/details/Bond.js-			bind: {
classic/src/netInterfaces/details/Bond.js-				value:    '{record.bond_ad_select}',
classic/src/netInterfaces/details/Bond.js-				hidden:   '{record.bond_mode !== \'802.3ad\'}',
classic/src/netInterfaces/details/Bond.js:				readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/details/Bond.js-			}
classic/src/netInterfaces/details/Bond.js-		},{             // Частота обмена пакетами
classic/src/netInterfaces/details/Bond.js-			xtype:      'combo',
classic/src/netInterfaces/details/Bond.js-			itemId:     'bondLacpRate',
classic/src/netInterfaces/details/Bond.js-			fieldLabel: lang.networkSettings.netInterfaces.label.lacpRate,
classic/src/netInterfaces/details/Bond.js-			editable:   false,
classic/src/netInterfaces/details/Bond.js-			hidden:     true,
classic/src/netInterfaces/details/Bond.js-			queryMode: 'local',
classic/src/netInterfaces/details/Bond.js-			store:      [
classic/src/netInterfaces/details/Bond.js-				'slow',
classic/src/netInterfaces/details/Bond.js-				'fast'
classic/src/netInterfaces/details/Bond.js-			],
classic/src/netInterfaces/details/Bond.js-			bind: {
classic/src/netInterfaces/details/Bond.js-				value:    '{record.bond_lacp_rate}',
classic/src/netInterfaces/details/Bond.js-				hidden:   '{record.bond_mode !== \'802.3ad\'}',
classic/src/netInterfaces/details/Bond.js:				readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/details/Bond.js-			}
classic/src/netInterfaces/details/Bond.js-		},{             // Алгоритм хэширования
classic/src/netInterfaces/details/Bond.js-			xtype:      'combo',
classic/src/netInterfaces/details/Bond.js-			itemId:     'bondHashPolicy',
classic/src/netInterfaces/details/Bond.js-			fieldLabel: lang.networkSettings.netInterfaces.label.hashPolicy,
classic/src/netInterfaces/details/Bond.js-			editable:   false,
classic/src/netInterfaces/details/Bond.js-			hidden:     true,
classic/src/netInterfaces/details/Bond.js-			queryMode: 'local',
classic/src/netInterfaces/details/Bond.js-			store:      [
classic/src/netInterfaces/details/Bond.js-				'layer2',
classic/src/netInterfaces/details/Bond.js-				'layer2+3',
classic/src/netInterfaces/details/Bond.js-				'layer3+4'
classic/src/netInterfaces/details/Bond.js-			],
classic/src/netInterfaces/details/Bond.js-			bind: {
classic/src/netInterfaces/details/Bond.js-				value:    '{record.bond_hash_policy}',
classic/src/netInterfaces/details/Bond.js-				hidden:   '{record.bond_mode !== \'802.3ad\' && ' +
classic/src/netInterfaces/details/Bond.js-							  'record.bond_mode !== \'balance-xor\'}',
classic/src/netInterfaces/details/Bond.js:				readOnly: '{readOnlyDetails}'
classic/src/netInterfaces/details/Bond.js-			}
classic/src/netInterfaces/details/Bond.js-		}
classic/src/netInterfaces/details/Bond.js-	]
classic/src/netInterfaces/details/Bond.js-});
--
classic/src/netInterfaces/details/Panel.js-        callback: 'onClickHide',
classic/src/netInterfaces/details/Panel.js-        tooltip:  Ext.window.Window.prototype.closeToolText
classic/src/netInterfaces/details/Panel.js-    }],
classic/src/netInterfaces/details/Panel.js-
classic/src/netInterfaces/details/Panel.js-    header: {
classic/src/netInterfaces/details/Panel.js-        xtype: 'bigHeader',
classic/src/netInterfaces/details/Panel.js-        bind: {
classic/src/netInterfaces/details/Panel.js-            title:    '{record.id}',
classic/src/netInterfaces/details/Panel.js-            subTitle: '{subTitle}'
classic/src/netInterfaces/details/Panel.js-        }
classic/src/netInterfaces/details/Panel.js-    },
classic/src/netInterfaces/details/Panel.js-
classic/src/netInterfaces/details/Panel.js-    items: [{xtype: 'ethPanel'}],
classic/src/netInterfaces/details/Panel.js-
classic/src/netInterfaces/details/Panel.js-    dockedItems: [
classic/src/netInterfaces/details/Panel.js-        {
classic/src/netInterfaces/details/Panel.js-            xtype:   'transparentToolbar',
classic/src/netInterfaces/details/Panel.js-            padding: '10 20 10 20',
classic/src/netInterfaces/details/Panel.js-            dock:    'bottom',
classic/src/netInterfaces/details/Panel.js-            bind: {
classic/src/netInterfaces/details/Panel.js:                hidden: '{readOnlyDetails}'
classic/src/netInterfaces/details/Panel.js-            },
classic/src/netInterfaces/details/Panel.js-            items: [
classic/src/netInterfaces/details/Panel.js-                {
classic/src/netInterfaces/details/Panel.js-                    xtype:     'standardButton',
classic/src/netInterfaces/details/Panel.js-                    itemId:    'buttonSave',
classic/src/netInterfaces/details/Panel.js-                    reference: 'saveButton',
classic/src/netInterfaces/details/Panel.js-                    text:      lang.saveText,
classic/src/netInterfaces/details/Panel.js-                    handler:   'onClickSave',
classic/src/netInterfaces/details/Panel.js-                    disabled:  true,
classic/src/netInterfaces/details/Panel.js-                    bind: {
classic/src/netInterfaces/details/Panel.js-                        disabled: '{(!record.dirty && ' +
classic/src/netInterfaces/details/Panel.js-                                      '!record.phantom) || ' +
classic/src/netInterfaces/details/Panel.js-                                      '!record.valid}'
classic/src/netInterfaces/details/Panel.js-                    }
classic/src/netInterfaces/details/Panel.js-                },{
classic/src/netInterfaces/details/Panel.js-                    xtype:     'standardButton',
classic/src/netInterfaces/details/Panel.js-                    itemId:    'buttonCancel',
classic/src/netInterfaces/details/Panel.js-                    reference: 'cancelButton',
classic/src/netInterfaces/details/Panel.js-                    text:      lang.cancelText,
classic/src/netInterfaces/details/Panel.js-                    handler:   'onClickCancel',
--
classic/src/netInterfaces/details/ViewModel.js-			return get('features')['l2crypto'] === 1;
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		duplex: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			var value = get('record.duplex');
classic/src/netInterfaces/details/ViewModel.js-			if (lang.networkSettings.netInterfaces.duplex.hasOwnProperty(value)) {
classic/src/netInterfaces/details/ViewModel.js-				return lang.networkSettings.netInterfaces.duplex[value];
classic/src/netInterfaces/details/ViewModel.js-			} else {
classic/src/netInterfaces/details/ViewModel.js-				return '';
classic/src/netInterfaces/details/ViewModel.js-			}
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		subTitle: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			let type = get('record.type');
classic/src/netInterfaces/details/ViewModel.js-			if(type && get('hasL2Crypto') && get('record.id') === 'eth0') {
classic/src/netInterfaces/details/ViewModel.js-				type = 'ethVirtual';
classic/src/netInterfaces/details/ViewModel.js-			}
classic/src/netInterfaces/details/ViewModel.js-			return type ? lang.networkSettings.netInterfaces.grid.group[type] : ''
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js:		readOnlyDetails: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			const editDisabled = get('editDisabled'),
classic/src/netInterfaces/details/ViewModel.js-				readOnly = get('readOnly'),
classic/src/netInterfaces/details/ViewModel.js-				crypto   = get('hasL2Crypto'),
classic/src/netInterfaces/details/ViewModel.js-				id       = get('record.id');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			return editDisabled || readOnly || (crypto && id === 'eth0');
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		readOnlyMtu: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			const type     = get('record.type'),
classic/src/netInterfaces/details/ViewModel.js:				readOnly = get('readOnlyDetails'),
classic/src/netInterfaces/details/ViewModel.js-				app      = get('appName'),
classic/src/netInterfaces/details/ViewModel.js-				cls      = get('record.class');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			return readOnly || app === 'IG' || (type !== 'eth' && type !== 'bond') || cls === 'slave';
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		readOnlyClass: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			const type     = get('record.type'),
classic/src/netInterfaces/details/ViewModel.js:				readOnly = get('readOnlyDetails'),
classic/src/netInterfaces/details/ViewModel.js-				cls      = get('record.class'),
classic/src/netInterfaces/details/ViewModel.js-				parent   = get('record.parent_bond');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			return readOnly || type === 'vlan' || (cls === 'slave' && parent);
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		readOnlyNet: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			const dhcp     = get('record.dhcp'),
classic/src/netInterfaces/details/ViewModel.js:				readOnly = get('readOnlyDetails'),
classic/src/netInterfaces/details/ViewModel.js-				cls      = get('record.class');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			return readOnly || dhcp || cls !== 'access';
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		allAliases: {
classic/src/netInterfaces/details/ViewModel.js-			bind: {
classic/src/netInterfaces/details/ViewModel.js-				bindTo: '{record.aliases}',
classic/src/netInterfaces/details/ViewModel.js-				deep: true
classic/src/netInterfaces/details/ViewModel.js-			},
classic/src/netInterfaces/details/ViewModel.js-			get:  function (store) {
classic/src/netInterfaces/details/ViewModel.js-				let arr = [];
classic/src/netInterfaces/details/ViewModel.js-				store && store.each(function(record) {
classic/src/netInterfaces/details/ViewModel.js-					arr.push(record.get('address') + ': ' + record.get('mask'));
classic/src/netInterfaces/details/ViewModel.js-				});
classic/src/netInterfaces/details/ViewModel.js-				return arr.length ? arr.join('<br>') : lang.networkSettings.netInterfaces.aliasGrid.emptyField;
classic/src/netInterfaces/details/ViewModel.js-			}
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		hideBondPrimary: function(get) {
--
classic/src/netInterfaces/details/Eth.js-Ext.define('NetworkSettings.view.netInterfaces.details.Eth', {

classic/src/netInterfaces/details/Eth.js-	extend: 'Ext.panel.Panel',

classic/src/netInterfaces/details/Eth.js-	alias:  'widget.ethPanel',

classic/src/netInterfaces/details/Eth.js-

classic/src/netInterfaces/details/Eth.js-	requires: [

classic/src/netInterfaces/details/Eth.js-		'NetworkSettings.view.netInterfaces.details.Mtu',

classic/src/netInterfaces/details/Eth.js-		'NetworkSettings.view.netInterfaces.Bond',

classic/src/netInterfaces/details/Eth.js-        'NetworkSettings.view.netInterfaces.alias.Grid'

classic/src/netInterfaces/details/Eth.js-	],

classic/src/netInterfaces/details/Eth.js-

classic/src/netInterfaces/details/Eth.js-	overflowY: 'auto',

classic/src/netInterfaces/details/Eth.js-

classic/src/netInterfaces/details/Eth.js-	items: [

classic/src/netInterfaces/details/Eth.js-		{

classic/src/netInterfaces/details/Eth.js-			xtype:       'togglesliderfield',

classic/src/netInterfaces/details/Eth.js-			reference:   'enabled',

classic/src/netInterfaces/details/Eth.js-			splitStatus: false,

classic/src/netInterfaces/details/Eth.js-			onText:      lang.networkSettings.netInterfaces.state.on,

classic/src/netInterfaces/details/Eth.js-			offText:     lang.networkSettings.netInterfaces.state.off,

classic/src/netInterfaces/details/Eth.js-			bind: {

classic/src/netInterfaces/details/Eth.js:				readOnly: '{readOnlyDetails}',

classic/src/netInterfaces/details/Eth.js-				value:    '{record.enabled}'

classic/src/netInterfaces/details/Eth.js-			}

classic/src/netInterfaces/details/Eth.js-		},{

classic/src/netInterfaces/details/Eth.js-			xtype:    'checkbox',

classic/src/netInterfaces/details/Eth.js-			boxLabel: lang.networkSettings.netInterfaces.label.allowTraffic,

classic/src/netInterfaces/details/Eth.js-			itemId:   'allowTraffic',

classic/src/netInterfaces/details/Eth.js-			hidden:   true,

classic/src/netInterfaces/details/Eth.js-			disabled: true,

classic/src/netInterfaces/details/Eth.js-			bind: {

classic/src/netInterfaces/details/Eth.js-				value:    '{record.allowtraffic}',

classic/src/netInterfaces/details/Eth.js:				readOnly: '{readOnlyDetails}',

classic/src/netInterfaces/details/Eth.js-				disabled: '{appName === \'xFirewall\' || services.active_iplir.status !== \'1\'}',

classic/src/netInterfaces/details/Eth.js-				hidden:   '{appName === \'xFirewall\' || services.active_iplir.status !== \'1\'}'

classic/src/netInterfaces/details/Eth.js-			}

classic/src/netInterfaces/details/Eth.js-		},{

classic/src/netInterfaces/details/Eth.js-			xtype:  'displayfield',

classic/src/netInterfaces/details/Eth.js-			temId:  'iplirHint',

classic/src/netInterfaces/details/Eth.js-			ui:     'compact',

classic/src/netInterfaces/details/Eth.js-			hidden: true,

classic/src/netInterfaces/details/Eth.js-			value:  lang.networkSettings.netInterfaces.label.iplirConfigHint,

classic/src/netInterfaces/details/Eth.js-			bind: {

classic/src/netInterfaces/details/Eth.js-				hidden: '{(appName === \'xFirewall\' && !record.phantom) || ' +

classic/src/netInterfaces/details/Eth.js-							'appName !== \'xFirewall\' && services.active_iplir.status === \'1\'}',

classic/src/netInterfaces/details/Eth.js-				value:  '{(appName === \'xFirewall\' && "' +

classic/src/netInterfaces/details/Eth.js-							lang.networkSettings.netInterfaces.label.iplirConfigHint + '"):or("' +

classic/src/netInterfaces/details/Eth.js-							lang.networkSettings.netInterfaces.label.allowTrafficDisabled + '")}'

classic/src/netInterfaces/details/Eth.js-			}

classic/src/netInterfaces/details/Eth.js-		},{

classic/src/netInterfaces/details/Eth.js-			// Основные настройки

classic/src/netInterfaces/details/Eth.js-			xtype:  'fieldset',

classic/src/netInterfaces/details/Eth.js-			itemId: 'commonContainer',

--
classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.parent_id}',

classic/src/netInterfaces/details/Eth.js-						hidden: '{record.type !== \'vlan\'}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					// Идентификатор BOND

classic/src/netInterfaces/details/Eth.js-					xtype:            'numberfield',

classic/src/netInterfaces/details/Eth.js-					itemId:           'bondId',

classic/src/netInterfaces/details/Eth.js-					fieldLabel:       lang.networkSettings.netInterfaces.label.vlanId,

classic/src/netInterfaces/details/Eth.js-					hideTrigger:      true,

classic/src/netInterfaces/details/Eth.js-					minValue:         0,

classic/src/netInterfaces/details/Eth.js-					maxValue:         2,

classic/src/netInterfaces/details/Eth.js-					minText:          null,

classic/src/netInterfaces/details/Eth.js-					maxText:          null,

classic/src/netInterfaces/details/Eth.js-					modelValidation:  true,

classic/src/netInterfaces/details/Eth.js-					allowDecimals:    false,

classic/src/netInterfaces/details/Eth.js-					allowExponential: false,

classic/src/netInterfaces/details/Eth.js-					bind:             {

classic/src/netInterfaces/details/Eth.js-						value:    '{record.bond_id}',

classic/src/netInterfaces/details/Eth.js-						hidden:   '{record.type !== \'bond\'}',

classic/src/netInterfaces/details/Eth.js:						readOnly: '{!record.phantom || readOnlyDetails}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					// Идентификатор VLAN

classic/src/netInterfaces/details/Eth.js-					xtype:      'displayfield',

classic/src/netInterfaces/details/Eth.js-					itemId:     'vlanId',

classic/src/netInterfaces/details/Eth.js-					ui:         'compact',

classic/src/netInterfaces/details/Eth.js-					fieldLabel: lang.networkSettings.netInterfaces.label.vlanId,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.vlan_id}',

classic/src/netInterfaces/details/Eth.js-						hidden: '{record.type !== \'vlan\'}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					// Соединение

classic/src/netInterfaces/details/Eth.js-					xtype:      'displayfield',

classic/src/netInterfaces/details/Eth.js-					itemId:     'link',

classic/src/netInterfaces/details/Eth.js-					ui:         'compact',

classic/src/netInterfaces/details/Eth.js-					fieldLabel: lang.networkSettings.netInterfaces.label.link,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.linkText}',

classic/src/netInterfaces/details/Eth.js-						hidden: '{record.phantom || record.linkText === ""}'

--
classic/src/netInterfaces/details/Eth.js-					editable:     false,

classic/src/netInterfaces/details/Eth.js-					allowBlank:   false,

classic/src/netInterfaces/details/Eth.js-					emptyText:    lang.chooseText,

classic/src/netInterfaces/details/Eth.js-					queryMode:    'local',

classic/src/netInterfaces/details/Eth.js-					displayField: 'name',

classic/src/netInterfaces/details/Eth.js-					valueField:   'id',

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						store:    '{classes}',

classic/src/netInterfaces/details/Eth.js-						value:    '{record.class}',

classic/src/netInterfaces/details/Eth.js-						hidden:   '{readOnlyClass}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					// Кнопка добавления VLAN

classic/src/netInterfaces/details/Eth.js-					xtype:    'transparentButton',

classic/src/netInterfaces/details/Eth.js-					text:     lang.networkSettings.netInterfaces.button.addVlan,

classic/src/netInterfaces/details/Eth.js-					handler:  'onClickAddVlan',

classic/src/netInterfaces/details/Eth.js-					hidden:   true,

classic/src/netInterfaces/details/Eth.js-					iconCls:  'cfi icon-general-add',

classic/src/netInterfaces/details/Eth.js-					width:    null,

classic/src/netInterfaces/details/Eth.js-					bind:     {

classic/src/netInterfaces/details/Eth.js:						hidden:   '{readOnlyDetails || record.class !== \'trunk\' || !features.vlan}',

classic/src/netInterfaces/details/Eth.js-						disabled: '{!hasTrunks || ifaceLimitReach}',

classic/src/netInterfaces/details/Eth.js-						tooltip:  '{(ifaceLimitReach && "' + lang.networkSettings.interfaceLimitTip + '"):or(null)}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					// Родительский интерфейс Bond

classic/src/netInterfaces/details/Eth.js-					xtype:        'displayfield',

classic/src/netInterfaces/details/Eth.js-					fieldLabel:   lang.networkSettings.netInterfaces.label.parentBond,

classic/src/netInterfaces/details/Eth.js-					itemId:       'parentBond',

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:    '{record.parent_bond}',

classic/src/netInterfaces/details/Eth.js-						hidden:   '{record.class !== \'slave\' || ' +

classic/src/netInterfaces/details/Eth.js-									  '!record.parent_bond}',

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:  'bondFieldSet',

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						hidden: '{record.type !== \'bond\'}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					// Кнопка добавления bond

classic/src/netInterfaces/details/Eth.js-					xtype:    'transparentButton',

classic/src/netInterfaces/details/Eth.js-					text:     lang.networkSettings.netInterfaces.button.addBond,

classic/src/netInterfaces/details/Eth.js-					handler:  'onClickAddBond',

classic/src/netInterfaces/details/Eth.js-					hidden:   true,

classic/src/netInterfaces/details/Eth.js-					iconCls:  'cfi icon-general-add',

classic/src/netInterfaces/details/Eth.js-					width:    null,

classic/src/netInterfaces/details/Eth.js-					bind:     {

classic/src/netInterfaces/details/Eth.js:						hidden:   '{readOnlyDetails || !features.bonding || record.class !== \'slave\' ||' +

classic/src/netInterfaces/details/Eth.js-									  'record.parent_bond}',

classic/src/netInterfaces/details/Eth.js-						disabled: '{!hasEmptySlaves || bonds.count > maxBondIndex || ifaceLimitReach}',

classic/src/netInterfaces/details/Eth.js-						tooltip:  '{(faceLimitReach && "' + lang.networkSettings.interfaceLimitTip + '"):or(null)}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				}

classic/src/netInterfaces/details/Eth.js-			]

classic/src/netInterfaces/details/Eth.js-		},{

classic/src/netInterfaces/details/Eth.js-			xtype:   'fieldset',

classic/src/netInterfaces/details/Eth.js-			itemId:  'dhcpContainer',

classic/src/netInterfaces/details/Eth.js-			title:   lang.networkSettings.netInterfaces.label.dhcpFieldSet,

classic/src/netInterfaces/details/Eth.js-			bind: {

classic/src/netInterfaces/details/Eth.js-				hidden: '{record.class !== \'access\'}'

classic/src/netInterfaces/details/Eth.js-			},

classic/src/netInterfaces/details/Eth.js-			defaults: {

classic/src/netInterfaces/details/Eth.js-				labelWidth: 170,

classic/src/netInterfaces/details/Eth.js-				width:      390

classic/src/netInterfaces/details/Eth.js-			},

classic/src/netInterfaces/details/Eth.js-			items: [

classic/src/netInterfaces/details/Eth.js-				{

classic/src/netInterfaces/details/Eth.js-					xtype:  'displayfield',

classic/src/netInterfaces/details/Eth.js-					itemId: 'noDhcpLabel',

classic/src/netInterfaces/details/Eth.js-					ui:     'compact',

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{dhcpLabel}',

classic/src/netInterfaces/details/Eth.js:						hidden: '{!readOnlyDetails || !record.dhcp || (appName === \'L2\' && record.id === \'eth0\')}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:    'checkbox',

classic/src/netInterfaces/details/Eth.js-					itemId:   'dhcp',

classic/src/netInterfaces/details/Eth.js-					boxLabel: lang.networkSettings.netInterfaces.label.dhcpOn,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.dhcp}',

classic/src/netInterfaces/details/Eth.js:						hidden: '{readOnlyDetails || record.class !== \'access\' || (appName === \'L2\' && record.id === \'eth0\')}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:      'displayfield',

classic/src/netInterfaces/details/Eth.js-					fieldLabel: lang.networkSettings.netInterfaces.label.ip,

classic/src/netInterfaces/details/Eth.js-					itemId:     'addressText',

classic/src/netInterfaces/details/Eth.js-					ui:         'compact',

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.addressText}',

classic/src/netInterfaces/details/Eth.js-						hidden: '{!readOnlyNet}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:           'textfield',

classic/src/netInterfaces/details/Eth.js-					itemId:          'address',

classic/src/netInterfaces/details/Eth.js-					fieldLabel:      lang.networkSettings.netInterfaces.label.ip,

classic/src/netInterfaces/details/Eth.js-					emptyText:       lang.notSpecified.male,

classic/src/netInterfaces/details/Eth.js-					modelValidation: true,

classic/src/netInterfaces/details/Eth.js-					maskRe:          /[\d.]/,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:    '{record.address}',

classic/src/netInterfaces/details/Eth.js-						hidden:   '{readOnlyNet}'

--
classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						hidden: '{hideAliasContainer}'

classic/src/netInterfaces/details/Eth.js-					},

classic/src/netInterfaces/details/Eth.js-					items: [

classic/src/netInterfaces/details/Eth.js-						{

classic/src/netInterfaces/details/Eth.js-							xtype: 'displayfield',

classic/src/netInterfaces/details/Eth.js-							ui:    'compact',

classic/src/netInterfaces/details/Eth.js-							bind: {

classic/src/netInterfaces/details/Eth.js-								value:  '{allAliases}'

classic/src/netInterfaces/details/Eth.js-							}

classic/src/netInterfaces/details/Eth.js-						},{

classic/src/netInterfaces/details/Eth.js-							// Кнопка редактирования Alias

classic/src/netInterfaces/details/Eth.js-							xtype:    'iconButton',

classic/src/netInterfaces/details/Eth.js-							tooltip:  lang.editText,

classic/src/netInterfaces/details/Eth.js-							padding:  '0 0 0 5',

classic/src/netInterfaces/details/Eth.js-							handler:  'onClickAliasEdit',

classic/src/netInterfaces/details/Eth.js-							hidden:   true,

classic/src/netInterfaces/details/Eth.js-							disabled: true,

classic/src/netInterfaces/details/Eth.js-							iconCls:  'cfi icon-general-edit',

classic/src/netInterfaces/details/Eth.js-							bind: {

classic/src/netInterfaces/details/Eth.js:								hidden: '{readOnlyDetails || clusterMode || record.class !== \'access\' || ' +

classic/src/netInterfaces/details/Eth.js-									'(record.dhcp && features.alias_on_dhcp !== 1) || ' +

classic/src/netInterfaces/details/Eth.js-									'(!record.dhcp && !record.address) || record.type === \'wlan\' || record.type === \'modem\'}',

classic/src/netInterfaces/details/Eth.js-								disabled: '{disableAliasEditButton}',

classic/src/netInterfaces/details/Eth.js-								tooltip: '{tooltipAliasEditButton}'

classic/src/netInterfaces/details/Eth.js-							}

classic/src/netInterfaces/details/Eth.js-						}

classic/src/netInterfaces/details/Eth.js-					]

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:  'displayfield',

classic/src/netInterfaces/details/Eth.js-					itemId: 'dhcpValuesText',

classic/src/netInterfaces/details/Eth.js-					ui:     'compact',

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{dhcpValues}',

classic/src/netInterfaces/details/Eth.js:						hidden: '{!readOnlyDetails || !dhcpValues}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:    'checkbox',

classic/src/netInterfaces/details/Eth.js-					itemId:   'dhcpDns',

classic/src/netInterfaces/details/Eth.js-					boxLabel: lang.networkSettings.netInterfaces.label.dns,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.dhcp_dns}',

classic/src/netInterfaces/details/Eth.js:						hidden: '{readOnlyDetails || !record.dhcp}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:    'checkbox',

classic/src/netInterfaces/details/Eth.js-					itemId:   'dhcpNtp',

classic/src/netInterfaces/details/Eth.js-					boxLabel: lang.networkSettings.netInterfaces.label.ntp,

classic/src/netInterfaces/details/Eth.js-					hidden:   true,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.dhcp_ntp}',

classic/src/netInterfaces/details/Eth.js:						hidden: '{readOnlyDetails || !record.dhcp}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:    'checkbox',

classic/src/netInterfaces/details/Eth.js-					itemId:   'dhcpRoutes',

classic/src/netInterfaces/details/Eth.js-					boxLabel: lang.networkSettings.netInterfaces.label.routes,

classic/src/netInterfaces/details/Eth.js-					hidden:   true,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.dhcp_routes}',

classic/src/netInterfaces/details/Eth.js:						hidden: '{readOnlyDetails || !record.dhcp}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:      'displayfield',

classic/src/netInterfaces/details/Eth.js-					itemId:     'dhcpMetricText',

classic/src/netInterfaces/details/Eth.js-					fieldLabel: lang.networkSettings.netInterfaces.label.metric,

classic/src/netInterfaces/details/Eth.js-					ui:         'compact',

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:  '{record.metricText}',

classic/src/netInterfaces/details/Eth.js:						hidden: '{!readOnlyDetails || !record.dhcp}'

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				},{

classic/src/netInterfaces/details/Eth.js-					xtype:            'numberfield',

classic/src/netInterfaces/details/Eth.js-					itemId:           'dhcpMetric',

classic/src/netInterfaces/details/Eth.js-					fieldLabel:       lang.networkSettings.netInterfaces.label.metric,

classic/src/netInterfaces/details/Eth.js-					padding:          '0 0 0 25',

classic/src/netInterfaces/details/Eth.js-					minValue:         1,

classic/src/netInterfaces/details/Eth.js-					maxValue:         255,

classic/src/netInterfaces/details/Eth.js-					minText:          null,

classic/src/netInterfaces/details/Eth.js-					maxText:          null,

classic/src/netInterfaces/details/Eth.js-					hideTrigger:      true,

classic/src/netInterfaces/details/Eth.js-					hidden:           true,

classic/src/netInterfaces/details/Eth.js-					labelWidth:       75,

classic/src/netInterfaces/details/Eth.js-					width:            245,

classic/src/netInterfaces/details/Eth.js-					modelValidation:  true,

classic/src/netInterfaces/details/Eth.js-					allowExponential: false,

classic/src/netInterfaces/details/Eth.js-					allowDecimals:    false,

classic/src/netInterfaces/details/Eth.js-					bind: {

classic/src/netInterfaces/details/Eth.js-						value:       '{record.dhcp_metric}',

classic/src/netInterfaces/details/Eth.js-						emptyText:   '{defaultMetric}',

classic/src/netInterfaces/details/Eth.js:						hidden:      '{readOnlyDetails || !record.dhcp}',

classic/src/netInterfaces/details/Eth.js-						hideTrigger: '{!record.dhcp_metric}'

classic/src/netInterfaces/details/Eth.js-					},

classic/src/netInterfaces/details/Eth.js-					triggers: {

classic/src/netInterfaces/details/Eth.js-						clear: {

classic/src/netInterfaces/details/Eth.js-							cls: 'cfi icon-auxiliary-close',

classic/src/netInterfaces/details/Eth.js-							handler: function(me) {

classic/src/netInterfaces/details/Eth.js-								me.setValue("");

classic/src/netInterfaces/details/Eth.js-							}

classic/src/netInterfaces/details/Eth.js-						}

classic/src/netInterfaces/details/Eth.js-					}

classic/src/netInterfaces/details/Eth.js-				}

classic/src/netInterfaces/details/Eth.js-			]

classic/src/netInterfaces/details/Eth.js-		}

classic/src/netInterfaces/details/Eth.js-	]

classic/src/netInterfaces/details/Eth.js-});

--
classic/src/netInterfaces/wifi/Panel.js-		}
classic/src/netInterfaces/wifi/Panel.js-	},
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-	listeners: {
classic/src/netInterfaces/wifi/Panel.js-		show: 'onShowPanel'
classic/src/netInterfaces/wifi/Panel.js-	},
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-	bind: {
classic/src/netInterfaces/wifi/Panel.js-		maskText:    '{(state === \'saving\' && "' + lang.savingText + '"):or("' + lang.loadingText + '")}',
classic/src/netInterfaces/wifi/Panel.js-		visibleMask: '{state !== \'ready\'}'
classic/src/netInterfaces/wifi/Panel.js-	},
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-	items: [
classic/src/netInterfaces/wifi/Panel.js-		{
classic/src/netInterfaces/wifi/Panel.js-			xtype:       'togglesliderfield',
classic/src/netInterfaces/wifi/Panel.js-			reference:   'enabled',
classic/src/netInterfaces/wifi/Panel.js-			splitStatus: false,
classic/src/netInterfaces/wifi/Panel.js-			onText:      lang.networkSettings.netInterfaces.state.on,
classic/src/netInterfaces/wifi/Panel.js-			offText:     lang.networkSettings.netInterfaces.state.off,
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js:				readOnly: '{readOnlyDetails}',
classic/src/netInterfaces/wifi/Panel.js-				disabled: '{settings.dirty}',
classic/src/netInterfaces/wifi/Panel.js-				value:    '{settings.enabled}'
classic/src/netInterfaces/wifi/Panel.js-			}
classic/src/netInterfaces/wifi/Panel.js-		},{
classic/src/netInterfaces/wifi/Panel.js-			xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-			ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-			itemId:     'wifiMode',
classic/src/netInterfaces/wifi/Panel.js-			fieldLabel: lang.networkSettings.wifi.role.current,
classic/src/netInterfaces/wifi/Panel.js-			labelWidth: 170,
classic/src/netInterfaces/wifi/Panel.js-			width:      390,
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js-				value: '{roleText}'
classic/src/netInterfaces/wifi/Panel.js-			}
classic/src/netInterfaces/wifi/Panel.js-		},{
classic/src/netInterfaces/wifi/Panel.js-			xtype:   'transparentButton',
classic/src/netInterfaces/wifi/Panel.js-			hidden:  true,
classic/src/netInterfaces/wifi/Panel.js-			handler: 'onClickSwitchMode',
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js:				hidden:   '{readOnlyDetails}',
classic/src/netInterfaces/wifi/Panel.js-				disabled: '{settings.enabled}',
classic/src/netInterfaces/wifi/Panel.js-				text:     '{(settings.role === \'ap\' && "' +
classic/src/netInterfaces/wifi/Panel.js-							  lang.networkSettings.wifi.apButton + '"):' +
classic/src/netInterfaces/wifi/Panel.js-							  'or("' + lang.networkSettings.wifi.clientButton + '")}'
classic/src/netInterfaces/wifi/Panel.js-			}
classic/src/netInterfaces/wifi/Panel.js-		},{
classic/src/netInterfaces/wifi/Panel.js-			xtype:  'fieldset',
classic/src/netInterfaces/wifi/Panel.js-			title:  lang.networkSettings.wifi.clientNetParams,
classic/src/netInterfaces/wifi/Panel.js-			layout: 'form',
classic/src/netInterfaces/wifi/Panel.js-			hidden: true,
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js-				hidden: '{settings.role !==\'client\'}',
classic/src/netInterfaces/wifi/Panel.js-			},
classic/src/netInterfaces/wifi/Panel.js-			items: [
classic/src/netInterfaces/wifi/Panel.js-				{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.wifi.fieldLabels.ssid,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value: '{settings.ssid}'
--
classic/src/netInterfaces/wifi/Panel.js-				title:  '{("' + lang.networkSettings.wifi.connectParams + '"):format(settings.iface)}',
classic/src/netInterfaces/wifi/Panel.js-				hidden: '{settings.role !== \'client\'}'
classic/src/netInterfaces/wifi/Panel.js-			},
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-			items: [
classic/src/netInterfaces/wifi/Panel.js-				{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					itemId:     'mac',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.netInterfaces.label.macAddress,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.mac_address}',
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					itemId:     'noDhcpLabel',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					labelWidth: 300,
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.netInterfaces.label.accessDhcp,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{!settings.dhcp || !(readOnlyDetails || settings.enabled)}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:    'checkbox',
classic/src/netInterfaces/wifi/Panel.js-					boxLabel: lang.networkSettings.netInterfaces.label.dhcpOn,
classic/src/netInterfaces/wifi/Panel.js-					hidden:   true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.dhcp}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{readOnlyDetails || settings.enabled}',
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.netInterfaces.label.ip,
classic/src/netInterfaces/wifi/Panel.js-					itemId:     'addressText',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.addressText}',
classic/src/netInterfaces/wifi/Panel.js-						hidden: '{!readOnlyNet}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:           'textfield',
classic/src/netInterfaces/wifi/Panel.js-					itemId:          'address',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:      lang.networkSettings.netInterfaces.label.ip,
classic/src/netInterfaces/wifi/Panel.js-					maskRe:		     Ext.form.VTypes.networkInterfaceIPMask,
classic/src/netInterfaces/wifi/Panel.js-					emptyText:       lang.notSpecified.male,
classic/src/netInterfaces/wifi/Panel.js-					modelValidation: true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.address}',
classic/src/netInterfaces/wifi/Panel.js-						hidden: '{readOnlyNet}'
--
classic/src/netInterfaces/wifi/Panel.js-					valueField:      'mask',
classic/src/netInterfaces/wifi/Panel.js-					displayField:    'mask',
classic/src/netInterfaces/wifi/Panel.js-					queryMode:       'local',
classic/src/netInterfaces/wifi/Panel.js-					modelValidation: true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						store:  '{netMasks}',
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.mask}',
classic/src/netInterfaces/wifi/Panel.js-						hidden: '{readOnlyNet}'
classic/src/netInterfaces/wifi/Panel.js-					},
classic/src/netInterfaces/wifi/Panel.js-					listeners: {
classic/src/netInterfaces/wifi/Panel.js-						change: function(field) {
classic/src/netInterfaces/wifi/Panel.js-							Ext.defer(function() {field.up().down('#address').validate();}, 100, this);
classic/src/netInterfaces/wifi/Panel.js-						}
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:  'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					itemId: 'dhcpValuesText',
classic/src/netInterfaces/wifi/Panel.js-					ui:     'compact',
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{dhcpValues}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{!settings.dhcp || !readOnlyDetails || !dhcpValues}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'checkbox',
classic/src/netInterfaces/wifi/Panel.js-					boxLabel:   lang.networkSettings.netInterfaces.label.dns,
classic/src/netInterfaces/wifi/Panel.js-					hidden:     true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:    '{settings.dhcp_dns}',
classic/src/netInterfaces/wifi/Panel.js:						hidden:   '{readOnlyDetails || !settings.dhcp}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'checkbox',
classic/src/netInterfaces/wifi/Panel.js-					boxLabel:   lang.networkSettings.netInterfaces.label.ntp,
classic/src/netInterfaces/wifi/Panel.js-					hidden:     true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:    '{settings.dhcp_ntp}',
classic/src/netInterfaces/wifi/Panel.js:						hidden:   '{readOnlyDetails || !settings.dhcp}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'checkbox',
classic/src/netInterfaces/wifi/Panel.js-					boxLabel:   lang.networkSettings.netInterfaces.label.routes,
classic/src/netInterfaces/wifi/Panel.js-					hidden:     true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:    '{settings.dhcp_routes}',
classic/src/netInterfaces/wifi/Panel.js:						hidden:   '{readOnlyDetails || !settings.dhcp}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					itemId:     'dhcpMetricText',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.netInterfaces.label.metric,
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.metricText}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{!readOnlyDetails || !settings.dhcp}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:       'numberfield',
classic/src/netInterfaces/wifi/Panel.js-					reference:   'wifiMetric',
classic/src/netInterfaces/wifi/Panel.js-					publishes:   ['value'],
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:  lang.networkSettings.netInterfaces.label.metric,
classic/src/netInterfaces/wifi/Panel.js-					padding:     '0 0 0 25',
classic/src/netInterfaces/wifi/Panel.js-					minValue:    1,
classic/src/netInterfaces/wifi/Panel.js-					maxValue:    255,
classic/src/netInterfaces/wifi/Panel.js-					minText:     null,
classic/src/netInterfaces/wifi/Panel.js-					maxText:     null,
classic/src/netInterfaces/wifi/Panel.js-					hideTrigger: true,
classic/src/netInterfaces/wifi/Panel.js-					hidden:      true,
classic/src/netInterfaces/wifi/Panel.js-					labelWidth:  75,
classic/src/netInterfaces/wifi/Panel.js-					width:       245,
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-					allowExponential: false,
classic/src/netInterfaces/wifi/Panel.js-					allowDecimals:    false,
classic/src/netInterfaces/wifi/Panel.js-					modelValidation:  true,
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:     '{settings.dhcp_metric}',
classic/src/netInterfaces/wifi/Panel.js-						emptyText: '{defaultMetric}',
classic/src/netInterfaces/wifi/Panel.js:						hidden:    '{readOnlyDetails || !settings.dhcp}'
classic/src/netInterfaces/wifi/Panel.js-					},
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-					triggers: {
classic/src/netInterfaces/wifi/Panel.js-						clear: {
classic/src/netInterfaces/wifi/Panel.js-							bind: {
classic/src/netInterfaces/wifi/Panel.js-								hidden: '{!isAdmin || clusterMode || !wifiMetric.value}'
classic/src/netInterfaces/wifi/Panel.js-							},
classic/src/netInterfaces/wifi/Panel.js-							cls: 'cfi icon-auxiliary-close',
classic/src/netInterfaces/wifi/Panel.js-							handler: function(me) {
classic/src/netInterfaces/wifi/Panel.js-								me.setValue("");
classic/src/netInterfaces/wifi/Panel.js-							}
classic/src/netInterfaces/wifi/Panel.js-						}
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				}
classic/src/netInterfaces/wifi/Panel.js-			]
classic/src/netInterfaces/wifi/Panel.js-		},{
classic/src/netInterfaces/wifi/Panel.js-			xtype:  'fieldset',
classic/src/netInterfaces/wifi/Panel.js-			itemId: 'apContainer',
classic/src/netInterfaces/wifi/Panel.js-			title:  lang.networkSettings.wifi.apSettings,
classic/src/netInterfaces/wifi/Panel.js-			hidden: true,
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-			defaults: {
classic/src/netInterfaces/wifi/Panel.js-				labelWidth: 170,
classic/src/netInterfaces/wifi/Panel.js-				width:      390
classic/src/netInterfaces/wifi/Panel.js-			},
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js-				hidden: '{settings.role !== \'ap\'}'
classic/src/netInterfaces/wifi/Panel.js-			},
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-			items: [
classic/src/netInterfaces/wifi/Panel.js-				{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.wifi.fieldLabels.ssid,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.ssid}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{!readOnlyDetails && !settings.enabled}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:           'textfield',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:      lang.networkSettings.wifi.fieldLabels.ssid,
classic/src/netInterfaces/wifi/Panel.js-					modelValidation: true,
classic/src/netInterfaces/wifi/Panel.js-					maskRe:          /[\s\w~!@#$%^&*(){}\[\]_\-+=\/|\\?,.:;`<>]/i,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.ssid}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{readOnlyDetails || settings.enabled}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.wifi.fieldLabels.region,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{regionText}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{(!readOnlyDetails && !settings.enabled) || appName !== \'HWRPI\'}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:        'combo',
classic/src/netInterfaces/wifi/Panel.js-					reference:    'region',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:   lang.networkSettings.wifi.fieldLabels.region,
classic/src/netInterfaces/wifi/Panel.js-					queryMode:    'local',
classic/src/netInterfaces/wifi/Panel.js-					displayField: 'name',
classic/src/netInterfaces/wifi/Panel.js-					valueField:   'country',
classic/src/netInterfaces/wifi/Panel.js-					editable:     false,
classic/src/netInterfaces/wifi/Panel.js-					hidden:       true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						store:  '{regions}',
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.region}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{readOnlyDetails || settings.enabled || appName !== \'HWRPI\'}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.wifi.fieldLabels.hwMode,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{hwModeText}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{!readOnlyDetails && !settings.enabled && platformRevision !== \'R2\'}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:        'combo',
classic/src/netInterfaces/wifi/Panel.js-					reference:    'hwMode',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:   lang.networkSettings.wifi.fieldLabels.hwMode,
classic/src/netInterfaces/wifi/Panel.js-					queryMode:    'local',
classic/src/netInterfaces/wifi/Panel.js-					displayField: 'name',
classic/src/netInterfaces/wifi/Panel.js-					valueField:   'id',
classic/src/netInterfaces/wifi/Panel.js-					editable:     false,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.hw_mode}',
classic/src/netInterfaces/wifi/Panel.js-						store:  '{hwModes}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{readOnlyDetails || settings.enabled || platformRevision === \'R2\'}'  // FIX 537175 [WebGUI][WiFi] Режим a/n/ac доступен для выбора на платформе R2 (3B)
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.wifi.fieldLabels.channel,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.channel}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{!readOnlyDetails && !settings.enabled}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:        'combo',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:   lang.networkSettings.wifi.fieldLabels.channel,
classic/src/netInterfaces/wifi/Panel.js-					queryMode:    'local',
classic/src/netInterfaces/wifi/Panel.js-					displayField: 'name',
classic/src/netInterfaces/wifi/Panel.js-					valueField:   'id',
classic/src/netInterfaces/wifi/Panel.js-					editable:     false,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.channel}',
classic/src/netInterfaces/wifi/Panel.js-						store:  '{channels}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{readOnlyDetails || settings.enabled}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-					ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel: lang.networkSettings.wifi.fieldLabels.protocol,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{protocolText}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{!readOnlyDetails && !settings.enabled}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:        'combo',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:   lang.networkSettings.wifi.fieldLabels.protocol,
classic/src/netInterfaces/wifi/Panel.js-					queryMode:    'local',
classic/src/netInterfaces/wifi/Panel.js-					displayField: 'name',
classic/src/netInterfaces/wifi/Panel.js-					valueField:   'id',
classic/src/netInterfaces/wifi/Panel.js-					editable:     false,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.protocol}',
classic/src/netInterfaces/wifi/Panel.js-						store:  '{encryption}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{readOnlyDetails || settings.enabled}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:           'textfield',
classic/src/netInterfaces/wifi/Panel.js-					fieldLabel:      lang.networkSettings.wifi.fieldLabels.password,
classic/src/netInterfaces/wifi/Panel.js-					maskRe:          /[\s\w~!@#$%^&*(){}\[\]_\-+=\/|\\?,.:;`<>]/i,
classic/src/netInterfaces/wifi/Panel.js-					modelValidation: true,
classic/src/netInterfaces/wifi/Panel.js-					hidden:          true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						value:  '{settings.password}',
classic/src/netInterfaces/wifi/Panel.js:						hidden: '{readOnlyDetails || settings.enabled || record.protocol === \'open\'}',
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:  'fieldset',
classic/src/netInterfaces/wifi/Panel.js-					margin: '0 0 0 0',
classic/src/netInterfaces/wifi/Panel.js-					width:  300,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						title:  '{("' + lang.networkSettings.wifi.connectParams + '"):format(settings.iface)}',
classic/src/netInterfaces/wifi/Panel.js-					},
classic/src/netInterfaces/wifi/Panel.js-					defaults: {
classic/src/netInterfaces/wifi/Panel.js-						labelWidth: 120,
classic/src/netInterfaces/wifi/Panel.js-						width:      270
classic/src/netInterfaces/wifi/Panel.js-					},
classic/src/netInterfaces/wifi/Panel.js-					items: [
classic/src/netInterfaces/wifi/Panel.js-						/*{
classic/src/netInterfaces/wifi/Panel.js-							xtype:    'checkbox',
classic/src/netInterfaces/wifi/Panel.js-							boxLabel: lang.networkSettings.netInterfaces.label.dhcpOn,
classic/src/netInterfaces/wifi/Panel.js-							readOnly: true,
classic/src/netInterfaces/wifi/Panel.js-							bind: {
classic/src/netInterfaces/wifi/Panel.js-								value:    '{settings.dhcp}',
classic/src/netInterfaces/wifi/Panel.js-								readOnly: '{!isAdmin || clusterMode || (appName !== \'HWRPI\' && appName !== \'IG\')}'
--
classic/src/netInterfaces/wifi/Panel.js-									},
classic/src/netInterfaces/wifi/Panel.js-									cls: 'cfi icon-auxiliary-close',
classic/src/netInterfaces/wifi/Panel.js-									handler: function(me) {
classic/src/netInterfaces/wifi/Panel.js-										me.setValue("");
classic/src/netInterfaces/wifi/Panel.js-									}
classic/src/netInterfaces/wifi/Panel.js-								}
classic/src/netInterfaces/wifi/Panel.js-							}
classic/src/netInterfaces/wifi/Panel.js-						}*/
classic/src/netInterfaces/wifi/Panel.js-					]
classic/src/netInterfaces/wifi/Panel.js-				}
classic/src/netInterfaces/wifi/Panel.js-			]
classic/src/netInterfaces/wifi/Panel.js-		},{
classic/src/netInterfaces/wifi/Panel.js-			xtype:      'displayfield',
classic/src/netInterfaces/wifi/Panel.js-			itemId:     'logLevelText',
classic/src/netInterfaces/wifi/Panel.js-			fieldLabel: lang.networkSettings.wifi.fieldLabels.logLevel,
classic/src/netInterfaces/wifi/Panel.js-			labelWidth: 170,
classic/src/netInterfaces/wifi/Panel.js-			width:      390,
classic/src/netInterfaces/wifi/Panel.js-			ui:         'compact',
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js-				value:  '{logLevelText}',
classic/src/netInterfaces/wifi/Panel.js:				hidden: '{appName !== \'HWRPI\' || (!readOnlyDetails && !settings.enabled)}'
classic/src/netInterfaces/wifi/Panel.js-			}
classic/src/netInterfaces/wifi/Panel.js-		},{
classic/src/netInterfaces/wifi/Panel.js-			xtype:        'combo',
classic/src/netInterfaces/wifi/Panel.js-			fieldLabel:   lang.networkSettings.wifi.fieldLabels.logLevel,
classic/src/netInterfaces/wifi/Panel.js-			labelWidth:   170,
classic/src/netInterfaces/wifi/Panel.js-			width:        390,
classic/src/netInterfaces/wifi/Panel.js-			queryMode:    'local',
classic/src/netInterfaces/wifi/Panel.js-			displayField: 'name',
classic/src/netInterfaces/wifi/Panel.js-			valueField:   'id',
classic/src/netInterfaces/wifi/Panel.js-			editable:     false,
classic/src/netInterfaces/wifi/Panel.js-			hidden:       true,
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js-				store:  '{logLevels}',
classic/src/netInterfaces/wifi/Panel.js:				hidden: '{appName !== \'HWRPI\' || readOnlyDetails || settings.enabled}',
classic/src/netInterfaces/wifi/Panel.js-				value:  '{settings.logLevel}',
classic/src/netInterfaces/wifi/Panel.js-			}
classic/src/netInterfaces/wifi/Panel.js-		}
classic/src/netInterfaces/wifi/Panel.js-	],
classic/src/netInterfaces/wifi/Panel.js-
classic/src/netInterfaces/wifi/Panel.js-	dockedItems: [
classic/src/netInterfaces/wifi/Panel.js-		{
classic/src/netInterfaces/wifi/Panel.js-			xtype:   'transparentToolbar',
classic/src/netInterfaces/wifi/Panel.js-			padding: '10 20 10 20',
classic/src/netInterfaces/wifi/Panel.js-			dock:    'bottom',
classic/src/netInterfaces/wifi/Panel.js-			bind: {
classic/src/netInterfaces/wifi/Panel.js:				hidden: '{readOnlyDetails}'
classic/src/netInterfaces/wifi/Panel.js-			},
classic/src/netInterfaces/wifi/Panel.js-			items: [
classic/src/netInterfaces/wifi/Panel.js-				{
classic/src/netInterfaces/wifi/Panel.js-					xtype:     'standardButton',
classic/src/netInterfaces/wifi/Panel.js-					itemId:    'buttonSave',
classic/src/netInterfaces/wifi/Panel.js-					reference: 'saveButton',
classic/src/netInterfaces/wifi/Panel.js-					text:      lang.saveText,
classic/src/netInterfaces/wifi/Panel.js-					handler:   'onClickSave',
classic/src/netInterfaces/wifi/Panel.js-					disabled:  true,
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						disabled: '{!settings.dirty || !settings.valid}'
classic/src/netInterfaces/wifi/Panel.js-					}
classic/src/netInterfaces/wifi/Panel.js-				},{
classic/src/netInterfaces/wifi/Panel.js-					xtype:     'standardButton',
classic/src/netInterfaces/wifi/Panel.js-					itemId:    'buttonCancel',
classic/src/netInterfaces/wifi/Panel.js-					reference: 'cancelButton',
classic/src/netInterfaces/wifi/Panel.js-					text:      lang.cancelText,
classic/src/netInterfaces/wifi/Panel.js-					handler:   'onClickCancel',
classic/src/netInterfaces/wifi/Panel.js-					bind: {
classic/src/netInterfaces/wifi/Panel.js-						disabled: '{!settings.dirty}'
--
classic/src/netInterfaces/wifi/ViewModel.js-        },
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js-        roleText: function(get) {
classic/src/netInterfaces/wifi/ViewModel.js-            const role = get('settings.role');
classic/src/netInterfaces/wifi/ViewModel.js-            switch (role) {
classic/src/netInterfaces/wifi/ViewModel.js-                case 'ap':     return lang.networkSettings.wifi.role.ap;
classic/src/netInterfaces/wifi/ViewModel.js-                case 'client': return lang.networkSettings.wifi.role.client;
classic/src/netInterfaces/wifi/ViewModel.js-                default:       return '';
classic/src/netInterfaces/wifi/ViewModel.js-            }
classic/src/netInterfaces/wifi/ViewModel.js-        },
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js-        defaultMetric: function(get) {
classic/src/netInterfaces/wifi/ViewModel.js-            var metric = get('settings.default_metric');
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js-            metric = (metric && '('+metric+')') || '';
classic/src/netInterfaces/wifi/ViewModel.js-            return Ext.String.format(lang.networkSettings.netInterfaces.label.defaultMetric, metric);
classic/src/netInterfaces/wifi/ViewModel.js-        },
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js-        readOnlyNet: function(get) {
classic/src/netInterfaces/wifi/ViewModel.js-            const dhcp     = get('settings.dhcp'),
classic/src/netInterfaces/wifi/ViewModel.js:                  readOnly = get('readOnlyDetails');
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js-            return readOnly || dhcp;
classic/src/netInterfaces/wifi/ViewModel.js-        },
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js:        readOnlyDetails: function(get) {
classic/src/netInterfaces/wifi/ViewModel.js-            const readOnly = get('readOnly');
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js-            return readOnly;
classic/src/netInterfaces/wifi/ViewModel.js-        },
classic/src/netInterfaces/wifi/ViewModel.js-    },
classic/src/netInterfaces/wifi/ViewModel.js-
classic/src/netInterfaces/wifi/ViewModel.js-    stores: {
classic/src/netInterfaces/wifi/ViewModel.js-        regions: {
classic/src/netInterfaces/wifi/ViewModel.js-            source: 'WifiRegions',
classic/src/netInterfaces/wifi/ViewModel.js-            sorters: [
classic/src/netInterfaces/wifi/ViewModel.js-                {
classic/src/netInterfaces/wifi/ViewModel.js-                    sorterFn: function(record1, record2) {
classic/src/netInterfaces/wifi/ViewModel.js-                        var name1 = record1.get('name'),
classic/src/netInterfaces/wifi/ViewModel.js-                            name2 = record2.get('name');
classic/src/netInterfaces/wifi/ViewModel.js-                        if (record1.get('country') === '00') {
classic/src/netInterfaces/wifi/ViewModel.js-                            return -1;
classic/src/netInterfaces/wifi/ViewModel.js-                        } else if (record2.get('country') === '00') {
classic/src/netInterfaces/wifi/ViewModel.js-                            return 1;
classic/src/netInterfaces/wifi/ViewModel.js-                        } else {
classic/src/netInterfaces/wifi/ViewModel.js-                            return name1 > name2 ? 1 : (name1 === name2) ? 0 : -1;
rg "id === 'eth0'" -C 20
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		tooltipAliasEditButton: {
classic/src/netInterfaces/details/ViewModel.js-			bind: {
classic/src/netInterfaces/details/ViewModel.js-				bindTo: '{record}',
classic/src/netInterfaces/details/ViewModel.js-				deep: true
classic/src/netInterfaces/details/ViewModel.js-			},
classic/src/netInterfaces/details/ViewModel.js-			get:  function (record) {
classic/src/netInterfaces/details/ViewModel.js-				return record && record.modified && record.modified.hasOwnProperty('dhcp') ?
classic/src/netInterfaces/details/ViewModel.js-					lang.networkSettings.netInterfaces.label.saveIpBefore : false;
classic/src/netInterfaces/details/ViewModel.js-			}
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		hideAliasContainer: (get) => {
classic/src/netInterfaces/details/ViewModel.js-			const app  = get('appName'),
classic/src/netInterfaces/details/ViewModel.js-				  id   = get('record.id'),
classic/src/netInterfaces/details/ViewModel.js-				  dhcp = get('cord.dhcp');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			switch (app) {
classic/src/netInterfaces/details/ViewModel.js-				case 'HWRPI': return false;
classic/src/netInterfaces/details/ViewModel.js:				case 'L2': return id === 'eth0';
classic/src/netInterfaces/details/ViewModel.js-				default: return dhcp;
classic/src/netInterfaces/details/ViewModel.js-			}
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		defaultMetric: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			let metric = get('record.default_metric');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			metric = (metric && '(' + metric + ')') || '';
classic/src/netInterfaces/details/ViewModel.js-			return Ext.String.format(lang.networkSettings.netInterfaces.label.defaultMetric, metric);
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		dhcpLabel: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			switch(get('record.class')) {
classic/src/netInterfaces/details/ViewModel.js-				case 'trunk':
classic/src/netInterfaces/details/ViewModel.js-					return lang.networkSettings.netInterfaces.label.trunkDhcp;
classic/src/netInterfaces/details/ViewModel.js-				case 'slave':
classic/src/netInterfaces/details/ViewModel.js-					return lang.networkSettings.netInterfaces.label.slaveDhcp;
classic/src/netInterfaces/details/ViewModel.js-				case 'access':
classic/src/netInterfaces/details/ViewModel.js-					return lang.networkSettings.netInterfaces.label.accessDhcp;
classic/src/netInterfaces/details/ViewModel.js-				default:
--
classic/src/netInterfaces/details/ViewModel.js-				return lang.networkSettings.netInterfaces.duplex[value];
classic/src/netInterfaces/details/ViewModel.js-			} else {
classic/src/netInterfaces/details/ViewModel.js-				return '';
classic/src/netInterfaces/details/ViewModel.js-			}
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		subTitle: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			let type = get('record.type');
classic/src/netInterfaces/details/ViewModel.js-			if(type && get('hasL2Crypto') && get('record.id') === 'eth0') {
classic/src/netInterfaces/details/ViewModel.js-				type = 'ethVirtual';
classic/src/netInterfaces/details/ViewModel.js-			}
classic/src/netInterfaces/details/ViewModel.js-			return type ? lang.networkSettings.netInterfaces.grid.group[type] : ''
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		readOnlyDetails: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			const editDisabled = get('editDisabled'),
classic/src/netInterfaces/details/ViewModel.js-				readOnly = get('readOnly'),
classic/src/netInterfaces/details/ViewModel.js-				crypto   = get('hasL2Crypto'),
classic/src/netInterfaces/details/ViewModel.js-				id       = get('record.id');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js:			return editDisabled || readOnly || (crypto && id === 'eth0');
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		readOnlyMtu: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			const type     = get('record.type'),
classic/src/netInterfaces/details/ViewModel.js-				readOnly = get('readOnlyDetails'),
classic/src/netInterfaces/details/ViewModel.js-				app      = get('appName'),
classic/src/netInterfaces/details/ViewModel.js-				cls      = get('record.class');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			return readOnly || app === 'IG' || (type !== 'eth' && type !== 'bond') || cls === 'slave';
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-		readOnlyClass: function(get) {
classic/src/netInterfaces/details/ViewModel.js-			const type     = get('record.type'),
classic/src/netInterfaces/details/ViewModel.js-				readOnly = get('readOnlyDetails'),
classic/src/netInterfaces/details/ViewModel.js-				cls      = get('record.class'),
classic/src/netInterfaces/details/ViewModel.js-				parent   = get('record.parent_bond');
classic/src/netInterfaces/details/ViewModel.js-
classic/src/netInterfaces/details/ViewModel.js-			return readOnly || type === 'vlan' || (cls === 'slave' && parent);
classic/src/netInterfaces/details/ViewModel.js-		},
classic/src/netInterfaces/details/ViewModel.js-
rg "record.id === 'eth0'" -C 20
not found coincidences