cockpit/pkg/networkmanager/index.html

718 lines
32 KiB
HTML

<!DOCTYPE html>
<!--
* This file is part of Cockpit.
*
* Copyright (C) 2015 Red Hat, Inc.
*
* Cockpit is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* Cockpit is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Cockpit; If not, see <http://www.gnu.org/licenses/>.
-->
<html>
<head>
<title translatable="yes">Networking</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="../base1/patternfly.css" type="text/css" rel="stylesheet">
<link href="network.css" type="text/css" rel="stylesheet">
<script src="../base1/jquery.js"></script>
<script src="../base1/cockpit.js"></script>
<script src="../manifests.js"></script>
<script src="../*/po.js"></script>
<script src="network.js"></script>
</head>
<body hidden>
<div id="testing-connection-curtain" class="curtains-ct blank-slate-pf" hidden>
<h1><div class="spinner spinner-lg"></div></h1>
<h1 id="testing-connection-curtain-testing" translatable="yes">Testing connection</h1>
<h1 id="testing-connection-curtain-restoring" translatable="yes">Restoring connection</h1>
</div>
<div id="networking" hidden>
<div id="networking-nm-crashed" class="alert alert-danger" hidden>
<button class="btn btn-default pull-right" type="submit" translatable="yes">Start Service</button>
<span class="pficon pficon-error-circle-o"></span>
<strong translatable="yes">NetworkManager is not running.</strong> <a href="#" class="alert-link">Troubleshoot…</a>
</div>
<div id="networking-nm-disabled" class="alert alert-info" hidden>
<button class="btn btn-default pull-right" type="submit" translatable="yes">Enable Service</button>
<span class="pficon pficon-info"></span>
<strong translatable="yes">Network devices and graphs require NetworkManager.</strong>
</div>
<div id="networking-graphs" class="row">
<div id="networking-graph-toolbar" class="zoom-controls standard-zoom-controls">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span></span>
<div class="caret"></div>
</button>
<ul class="dropdown-menu" role="menu">
<li role="presentation"><a tabindex="0" role="menuitem" data-action="goto-now" translatable="yes">Go to now</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="300" translatable="yes">5 minutes</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="3600" translatable="yes">1 hour</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="21600" translatable="yes">6 hours</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="86400" translatable="yes">1 day</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="604800" translatable="yes">1 week</a></li>
</ul>
</div>
<button class="btn btn-default" data-action="zoom-out">
<span class="glyphicon glyphicon-zoom-out"></span>
</button>
<div class="btn-group">
<button class="btn btn-default fa fa-angle-left" data-action="scroll-left"></button>
<button class="btn btn-default fa fa-angle-right" data-action="scroll-right"></button>
</div>
</div>
<div class="col-sm-6">
<div>
<span class="plot-unit" id="networking-tx-unit"></span><span class="plot-title" translatable="yes">Sending</span>
</div>
<div id="networking-tx-graph"></div>
</div>
<div class="col-sm-6">
<div>
<span class="plot-unit" id="networking-rx-unit"></span><span class="plot-title" translatable="yes">Receiving</span>
</div>
<div id="networking-rx-graph"></div>
</div>
</div>
<br/>
<div class="networking-page container-fluid">
<div class="panel panel-default" id="networking-firewall" hidden>
<div class="panel-heading">
<h2 class="panel-title">
<a tabindex="0" id="networking-firewall-link" translatable="yes">Firewall</a>
</h2>
<div class="panel-actions">
</div>
</div>
<div id="networking-firewall-summary" class="panel-body">
</div>
</div>
<div class="panel panel-default"
id="networking-interfaces">
<div class="panel-heading">
<h2 class="panel-title" translatable="yes">Interfaces</h2>
<div class="panel-actions">
<button translatable="yes" id="networking-add-bond" class="btn btn-default network-privileged">Add Bond</button>
<button translatable="yes" id="networking-add-team" class="btn btn-default network-privileged">Add Team</button>
<button translatable="yes" id="networking-add-bridge" class="btn btn-default network-privileged">Add Bridge</button>
<button translatable="yes" id="networking-add-vlan" class="btn btn-default network-privileged">Add VLAN</button>
</div>
</div>
<table class="table table-hover">
<thead>
<tr>
<th translatable="yes">Name</th>
<th translatable="yes">IP Address</th>
<th translatable="yes" class="networking-speed">Sending</th>
<th translatable="yes" class="networking-speed">Receiving</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="panel panel-default"
id="networking-unmanaged-interfaces">
<div class="panel-heading">
<h2 class="panel-title" translatable="yes">Unmanaged Interfaces</h2>
</div>
<table class="table">
<thead>
<tr>
<th translatable="yes">Name</th>
<th translatable="yes">IP Address</th>
<th translatable="yes" class="networking-speed">Sending</th>
<th translatable="yes" class="networking-speed">Receiving</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="panel panel-default cockpit-log-panel" role="table"
aria-labelledby="networking-log-header">
<div class="panel-heading"><h2 class="panel-title" translatable="yes" id="networking-log-header">Networking Logs</h2></div>
<div class="panel-body" id="networking-log" role="rowgroup"></div>
</div>
</div>
</div>
<script id="network-vlan-settings-template" type="x-template/mustache">
<form class="ct-form">
<label class="control-label" for="network-vlan-settings-parent-select" translatable="yes">Parent</label>
<div id="network-vlan-settings-parent-select">
{{! the rather complex dropdown-select will be created dynamically via jquery }}
</div>
<label class="control-label" for="network-vlan-settings-vlan-id-input" translatable="yes">VLAN Id</label>
<input id="network-vlan-settings-vlan-id-input" class="form-control" type="text"
value="{{vlan_id}}"/>
<label class="control-label" for="network-vlan-settings-interface-name-input" translatable="yes">Name</label>
<input id="network-vlan-settings-interface-name-input" class="form-control" type="text"
value="{{interface_name}}"/>
</form>
</script>
<script id="network-mtu-settings-template" type="x-template/mustache">
<div>
<label>
<input id="network-mtu-settings-auto" {{^mtu}}checked="checked"{{/mtu}}
type="radio" name="mtu-mode"/>
<span translatable="yes">Automatic</span>
</label>
</div>
<div>
<label>
<input id="network-mtu-settings-custom" {{#mtu}}checked="checked"{{/mtu}}
type="radio" name="mtu-mode"/>
<span translatable="yes">Set to</span>
<input id="network-mtu-settings-input"
class="form-control" type="text" value="{{mtu}}"/>
</label>
</div>
</script>
<script id="network-mac-settings-template" type="x-template/mustache">
<form class="ct-form">
<label class="control-label" for="network-mac-settings-input" translatable="yes">MAC</label>
<div class="input-group">
<input id="network-mac-settings-input" class="form-control" type="text"
value="{{assigned_mac_address}}"/>
<div class="input-group-btn dropdown">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="fa fa-caret-down"></span>
</button>
<ul id="network-mac-settings-menu" class="dropdown-menu add-button" role="menu">
</ul>
</div>
</div>
</form>
</script>
<script id="network-bridge-settings-template" type="x-template/mustache">
<form class="ct-form">
<label class="control-label" for="network-bridge-settings-name-input" translatable="yes">Name</label>
<input id="network-bridge-settings-name-input" class="form-control" type="text"
value="{{bridge_name}}"/>
<label class="control-label" translatable="yes">Ports</label>
<div id="network-bridge-settings-slave-interfaces">
{{! slave interfaces will be rendered into here as a list of checkboxes }}
</div>
<label class="control-label" for="network-bridge-settings-stp-enabled-input" translatable="yes">Spanning Tree Protocol (STP)</label>
<label class="checkbox-inline">
<input id="network-bridge-settings-stp-enabled-input" type="checkbox"
{{#stp_checked}}checked{{/stp_checked}}/>
</label>
<label class="control-label" for="network-bridge-settings-stp-priority-input" translatable="yes">STP Priority</label>
<input id="network-bridge-settings-stp-priority-input" class="form-control" type="text"
value="{{stp_priority}}"/>
<label class="control-label" for="network-bridge-settings-stp-forward-delay-input" translatable="yes">STP Forward delay</label>
<input id="network-bridge-settings-stp-forward-delay-input" class="form-control" type="text"
value="{{stp_forward_delay}}"/>
<label class="control-label" for="network-bridge-settings-stp-hello-time-input" translatable="yes">STP Hello time</label>
<input id="network-bridge-settings-stp-hello-time-input" class="form-control" type="text"
value="{{stp_hello_time}}"/>
<label class="control-label" for="network-bridge-settings-stp-max-age-input" translatable="yes">STP Maximum message age</label>
<input id="network-bridge-settings-stp-max-age-input" class="form-control" type="text"
value="{{stp_max_age}}"/>
</form>
</script>
<script id="network-bridge-port-settings-template" type="x-template/mustache">
<form class="ct-form">
<label class="control-label" for="network-bridge-port-settings-priority-input" translatable="yes">Priority</label>
<input id="network-bridge-port-settings-priority-input" class="form-control network-number-field ct-form-relax"
type="text" value="{{priority}}"/>
<label class="control-label" for="network-bridge-port-settings-path-cost-input" translatable="yes">Path cost</label>
<input id="network-bridge-port-settings-path-cost-input" class="form-control network-number-field ct-form-relax"
type="text" value="{{path_cost}}"/>
<label class="control-label" for="network-bridge-settings-hairpin-mode-input" translatable="yes">Hair Pin mode</label>
<label class="checkbox-inline">
<input id="network-bridge-settings-hairpin-mode-input" type="checkbox"
{{#hairpin_mode_checked}}checked{{/hairpin_mode_checked}}/>
</label>
</form>
</script>
<script id="network-bond-settings-template" type="x-template/mustache">
<form class="ct-form">
<label class="control-label" for="network-bond-settings-interface-name-input" translatable="yes">Name</label>
<input id="network-bond-settings-interface-name-input" class="form-control"
value="{{interface_name}}"/>
<label class="control-label" translatable="yes">Interfaces</label>
<div id="network-bond-settings-members">
{{! member interfaces will be rendered into here as a list of checkboxes }}
</div>
<label class="control-label" for="network-bond-settings-mac-input" translatable="yes">MAC</label>
<div class="input-group">
<input id="network-bond-settings-mac-input" class="form-control" type="text"
value="{{assigned_mac_address}}"/>
<div class="input-group-btn dropdown">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="fa fa-caret-down"></span>
</button>
<ul id="network-bond-settings-mac-menu" class="dropdown-menu add-button" role="menu">
</ul>
</div>
</div>
<label class="control-label" for="network-bond-settings-mode-select" translatable="yes">Mode</label>
<div id="network-bond-settings-mode-select">
{{! the rather complex dropdown-select will be created dynamically via jquery }}
</div>
<label class="control-label" for="network-bond-settings-primary-select" translatable="yes">Primary</label>
<div id="network-bond-settings-primary-select">
{{! the rather complex dropdown-select will be created dynamically via jquery }}
</div>
<label class="control-label" for="network-bond-settings-link-monitoring-select" translatable="yes">Link Monitoring</label>
<div id="network-bond-settings-link-monitoring-select">
{{! the rather complex dropdown-select will be created dynamically via jquery }}
</div>
<label class="control-label" for="network-bond-settings-monitoring-interval-input" translatable="yes">Monitoring Interval</label>
<input id="network-bond-settings-monitoring-interval-input" class="form-control network-number-field ct-form-relax"
type="text" maxlength="4" value="{{monitoring_interval}}"/>
<label class="control-label" for="network-bond-settings-monitoring-targets-input" translatable="yes">Monitoring Targets</label>
<input id="network-bond-settings-monitoring-targets-input" class="form-control"
type="text" value="{{monitoring_targets}}"/>
<label class="control-label" for="network-bond-settings-link-up-delay-input" translatable="yes">Link up delay</label>
<input id="network-bond-settings-link-up-delay-input" class="form-control network-number-field ct-form-relax"
type="text" maxlength="4" value="{{link_up_delay}}"/>
<label class="control-label" for="network-bond-settings-link-down-delay-input" translatable="yes">Link down delay</label>
<input id="network-bond-settings-link-down-delay-input" class="form-control network-number-field ct-form-relax"
type="text" maxlength="4" value="{{link_down_delay}}"/>
</form>
</script>
<script id="network-team-settings-template" type="x-template/mustache">
<form class="ct-form">
<label class="control-label" for="network-team-settings-interface-name-input" translatable="yes">Name</label>
<input id="network-team-settings-interface-name-input" class="form-control"
value="{{interface_name}}"/>
<label class="control-label" translatable="yes">Ports</label>
<div id="network-team-settings-members">
{{! ports will be rendered into here as a list of checkboxes }}
</div>
<label class="control-label" for="network-team-settings-runner-select" translatable="yes">Runner</label>
<div id="network-team-settings-runner-select">
{{! the rather complex dropdown-select will be created dynamically via jquery }}
</div>
<label class="control-label" for="network-team-settings-balancer-select" translatable="yes">Balancer</label>
<div id="network-team-settings-balancer-select">
{{! the rather complex dropdown-select will be created dynamically via jquery }}
</div>
<label class="control-label" for="network-team-settings-link-watch-select" translatable="yes">Link Watch</label>
<div id="network-team-settings-link-watch-select">
{{! the rather complex dropdown-select will be created dynamically via jquery }}
</div>
<label class="control-label" for="network-team-settings-ping-interval-input" translatable="yes">Ping Interval</label>
<input id="network-team-settings-ping-interval-input" class="form-control network-number-field ct-form-relax"
type="text" maxlength="4" value="{{config.link_watch.interval}}"/>
<label class="control-label" for="network-team-settings-ping-target-input" translatable="yes">Ping Target</label>
<input id="network-team-settings-ping-target-input" class="form-control"
type="text" value="{{config.link_watch.target_host}}"/>
<label class="control-label" for="network-team-settings-link-up-delay-input" translatable="yes">Link up delay</label>
<input id="network-team-settings-link-up-delay-input" class="form-control network-number-field ct-form-relax"
type="text" maxlength="4" value="{{config.link_watch.delay_up}}"/>
<label class="control-label" for="network-team-settings-link-down-delay-input" translatable="yes">Link down delay</label>
<input id="network-team-settings-link-down-delay-input" class="form-control network-number-field ct-form-relax"
type="text" maxlength="4" value="{{config.link_watch.delay_down}}"/>
</form>
</script>
<script id="network-team-port-settings-template" type="x-template/mustache">
<form class="ct-form">
<label class="control-label" for="network-team-port-settings-ab-prio-input" translatable="yes">Priority</label>
<input id="network-team-port-settings-ab-prio-input" class="form-control network-number-field ct-form-relax"
type="text" value="{{prio}}"/>
<label class="control-label" for="network-team-port-settings-ab-sticky-input" translatable="yes">Sticky</label>
<label class="checkbox-inline">
<input id="network-team-port-settings-ab-sticky-input" type="checkbox"
{{#sticky}}checked{{/sticky}}/>
</label>
<label class="control-label" for="network-team-port-settings-lacp-prio-input" translatable="yes">Priority</label>
<input id="network-team-port-settings-lacp-prio-input" class="form-control network-number-field ct-form-relax"
type="text" value="{{lacp_prio}}"/>
<label class="control-label" for="network-team-port-settings-lacp-key-input" translatable="yes">LACP Key</label>
<input id="network-team-port-settings-lacp-key-input" class="form-control network-number-field ct-form-relax"
type="text" value="{{lacp_key}}"/>
</form>
</script>
<div id="network-interface" class="container-fluid" hidden>
<ol class="breadcrumb">
<li><a tabindex="0" translatable="yes">Networking</a></li>
<li class="active"></li>
</ol>
<div class="row">
<div id="network-interface-graph-toolbar" class="zoom-controls standard-zoom-controls">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span></span>
<div class="caret"></div>
</button>
<ul class="dropdown-menu" role="menu">
<li role="presentation"><a tabindex="0" role="menuitem" data-action="goto-now" translatable="yes">Go to now</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="300" translatable="yes">5 minutes</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="3600" translatable="yes">1 hour</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="21600" translatable="yes">6 hours</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="86400" translatable="yes">1 day</a></li>
<li role="presentation"><a tabindex="0" role="menuitem" data-range="604800" translatable="yes">1 week</a></li>
</ul>
</div>
<button class="btn btn-default" data-action="zoom-out">
<span class="glyphicon glyphicon-zoom-out"></span>
</button>
<div class="btn-group">
<button class="btn btn-default fa fa-angle-left" data-action="scroll-left"></button>
<button class="btn btn-default fa fa-angle-right" data-action="scroll-right"></button>
</div>
</div>
<div class="col-sm-6">
<div>
<span class="plot-unit" id="network-interface-tx-unit"></span><span class="plot-title" translatable="yes">Sending</span>
</div>
<div id="network-interface-tx-graph"></div>
</div>
<div class="col-sm-6">
<div>
<span class="plot-unit" id="network-interface-rx-unit"></span><span class="plot-title" translatable="yes">Receiving</span>
</div>
<div id="network-interface-rx-graph"></div>
</div>
</div>
<br/>
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title" id="network-interface-name"></h2>
<span id="network-interface-hw"></span>
<span id="network-interface-mac"></span>
<div class="panel-actions">
<button class="btn btn-danger network-privileged" id="network-interface-delete" translatable="yes">Delete</button>
<span id="network-interface-delete-switch">
</span>
</div>
</div>
<div class="panel-body">
<table class="form-table-ct" id="network-interface-settings">
</table>
</div>
</div>
<div class="panel panel-default" id="network-interface-slaves">
<table class="table table-hover">
<thead>
<tr>
<th></th>
<th translatable="yes" class="networking-speed">Sending</th>
<th translatable="yes" class="networking-speed">Receiving</th>
<th class="networking-spacer"></th>
<th class="networking-action"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="modal" id="network-ip-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">IP Settings</h4>
</div>
<div class="modal-body">
<div id="network-ip-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-ip-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-ip-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-ip-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-bond-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Bond Settings</h4>
</div>
<div class="modal-body">
<div id="network-bond-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-bond-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-bond-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-bond-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-team-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Team Settings</h4>
</div>
<div class="modal-body">
<div id="network-team-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-team-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-team-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-team-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-teamport-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Team Port Settings</h4>
</div>
<div class="modal-body">
<div id="network-teamport-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-teamport-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-teamport-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-teamport-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-bridge-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Bridge Settings</h4>
</div>
<div class="modal-body">
<div id="network-bridge-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-bridge-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-bridge-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-bridge-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-bridgeport-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Bridge Port Settings</h4>
</div>
<div class="modal-body">
<div id="network-bridgeport-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-bridgeport-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-bridgeport-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-bridgeport-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-vlan-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">VLAN Settings</h4>
</div>
<div class="modal-body">
<div id="network-vlan-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-vlan-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-vlan-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-vlan-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-mtu-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Ethernet MTU</h4>
</div>
<div class="modal-body">
<div id="network-mtu-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-mtu-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-mtu-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-mtu-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="network-mac-settings-dialog"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Ethernet MAC</h4>
</div>
<div class="modal-body">
<div id="network-mac-settings-body">
</div>
</div>
<div class="modal-footer">
<div class="alert alert-danger dialog-error" id="network-mac-settings-error">
<i class="fa fa-exclamation-triangle"></i>
<span></span>
</div>
<button class="btn btn-default" translatable="yes" id="network-mac-settings-cancel">Cancel</button>
<button class="btn btn-primary" translatable="yes" id="network-mac-settings-apply">Apply</button>
</div>
</div>
</div>
</div>
<div class="modal" id="error-popup"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Unexpected error</h4>
</div>
<div class="modal-body">
<p id="error-popup-message"></p>
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-dismiss="modal" translate>Close</button>
</div>
</div>
</div>
</div>
<div class="modal" id="confirm-breaking-change-popup"
tabindex="-1" role="dialog"
data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" translatable="yes">Connection will be lost</h4>
</div>
<div class="modal-body">
<div class="pficon pficon-warning-triangle-o"></div>
<div id="confirm-breaking-change-text"></div>
</div>
<div class="modal-footer">
<button class="btn btn-danger"></button>
<button class="btn btn-primary" data-dismiss="modal" translate>Keep connection</button>
</div>
</div>
</div>
</div>
</body>