184981f0aSGunnar Mills<loader loading="loading"></loader>
2cd789508SIftekharul Islam<div id="configuration-network">
3cd789508SIftekharul Islam	<div class="row column">
451946552SMichael Davis		<h1>BMC network settings</h1>
5cd789508SIftekharul Islam	</div>
6a960c8c7SMichael Davis	<form class="net-config__form" role="form" action="">
7a960c8c7SMichael Davis		<section class="row column">
8a960c8c7SMichael Davis			<div class="column small-12 page-header">
9a960c8c7SMichael Davis				<h2 class="inline h4">Common settings</h2>
10a960c8c7SMichael Davis			</div>
11a960c8c7SMichael Davis			<fieldset>
1251946552SMichael Davis				<div class="column small-12 large-3">
132a489554SIftekharul Islam					<label for="net-config__mac">Hostname</label>
14309e06abSGunnar Mills					<input id="net-config__mac" type="text" ng-model="hostname"/>
152a489554SIftekharul Islam				</div>
162a489554SIftekharul Islam				<div class="column small-12 large-3">
1751946552SMichael Davis					<label for="netinterface-select">Network interface</label>
18a960c8c7SMichael Davis					<div id="netinterface-select" class="dropdown__wrapper">
192a489554SIftekharul Islam						<button type="button" class="dropdown__button" ng-click="networkDevice = !networkDevice">{{selectedInterface}}</button>
20a960c8c7SMichael Davis						<ul class="dropdown__list inline" ng-show="networkDevice">
212a489554SIftekharul Islam							<li ng-repeat="interface_id in network.interface_ids">
222a489554SIftekharul Islam								<button type="button" ng-click="selectInterface(interface_id);">{{interface_id}}</button>
23a960c8c7SMichael Davis							</li>
24a960c8c7SMichael Davis						</ul>
25a960c8c7SMichael Davis					</div>
26a960c8c7SMichael Davis				</div>
2751946552SMichael Davis				<div class="column small-12 large-3">
282a489554SIftekharul Islam					<label for="net-config__host">MAC address</label>
292a489554SIftekharul Islam					<input id="net-config__host" type="text" ng-model="interface.MACAddress"/>
30a960c8c7SMichael Davis				</div>
3151946552SMichael Davis				<div class="column small-12 large-3">
32e9f5fe77SGunnar Mills					<label for="net-config__domain">Default Gateway</label>
33e9f5fe77SGunnar Mills					<input id="net-config__domain" type="text" ng-model="defaultgateway"/>
34a960c8c7SMichael Davis				</div>
35a960c8c7SMichael Davis			</fieldset>
36a960c8c7SMichael Davis		</section>
37a960c8c7SMichael Davis		<section class="row column">
3851946552SMichael Davis			<div class="column small-12 page-header">
39a960c8c7SMichael Davis				<h2 class="inline h4">IPV4 settings</h2>
40a960c8c7SMichael Davis			</div>
41a960c8c7SMichael Davis			<fieldset>
42a960c8c7SMichael Davis				<div class="row column">
43a960c8c7SMichael Davis					<label class="control-radio" for="dhcp-address">Obtain an IP address automatically using DHCP
44cb2c3060SGunnar Mills						<!-- TODO: openbmc/openbmc#3154 Rest server should return a proper JSON bool instead of "0" or "1"-->
45cb2c3060SGunnar Mills						<input type="radio" name="ip-address" id="dhcp-address" ng-checked="true" ng-model="interface.DHCPEnabled" ng-value="1">
46a960c8c7SMichael Davis						<span class="control__indicator control__indicator-on"></span>
47a960c8c7SMichael Davis					</label>
48a960c8c7SMichael Davis				</div>
49a960c8c7SMichael Davis				<div class="row column">
50a960c8c7SMichael Davis					<label class="control-radio" for="static-ip-address">Assign a static IP address
51cb2c3060SGunnar Mills						<input type="radio" name="ip-address" id="static-ip-address" ng-model="interface.DHCPEnabled" ng-value="0"/>
52a960c8c7SMichael Davis						<span class="control__indicator control__indicator-on"></span>
53a960c8c7SMichael Davis					</label>
54a960c8c7SMichael Davis				</div>
552a489554SIftekharul Islam				<fieldset class="net-config__static-ip-wrap" ng-repeat="ipv4 in interface.ipv4.values">
5651946552SMichael Davis					<div class="column small-12 large-4">
57a960c8c7SMichael Davis						<label for="net-config__ipv4-address" class="inline">IPV4 address</label>
582a489554SIftekharul Islam						<input id="net-config__ipv4-address" type="text" ng-disabled="interface.DHCPEnabled" ng-model="ipv4.Address"/>
59a960c8c7SMichael Davis					</div>
6051946552SMichael Davis					<div class="column small-12 large-4">
612a489554SIftekharul Islam						<label for="net-config__subnet" class="inline">Gateway</label>
622a489554SIftekharul Islam						<input id="net-config__subnet" type="text" ng-disabled="interface.DHCPEnabled" value="" ng-model="ipv4.Gateway"/>
63a960c8c7SMichael Davis					</div>
646549114eSGunnar Mills					<!-- This netmask prefix length max only works with IPV4 -->
6551946552SMichael Davis					<div class="column small-12 large-4">
6647db9cb3SGunnar Mills						<label for="net-config__default-gateway" class="inline">Netmask Prefix Length</label>
676549114eSGunnar Mills						<input id="net-config__default-gateway" type="number" min="1" max="32" step="1" ng-disabled="interface.DHCPEnabled"  ng-model="ipv4.PrefixLength"/>
68a960c8c7SMichael Davis					</div>
69a960c8c7SMichael Davis				</fieldset>
70a960c8c7SMichael Davis			</fieldset>
7151946552SMichael Davis		</section>
7251946552SMichael Davis		<section class="row column">
7351946552SMichael Davis			<div class="column small-12 page-header">
7451946552SMichael Davis				<h2 class="inline h4">DNS settings</h2>
7551946552SMichael Davis			</div>
7651946552SMichael Davis			<fieldset>
7751946552SMichael Davis				<div class="column small-12 large-4">
780646782dSGunnar Mills						<!-- Call Nameservers "DNS Servers" on the GUI -->
790646782dSGunnar Mills						<fieldset class="net-config__static-ip-wrap" ng-repeat="dns in interface.Nameservers track by $index">
80*bc3ab72cSGunnar Mills							<label for="net-config__prime-dns{{$index+1}}">DNS Server {{$index+1}}</label>
81*bc3ab72cSGunnar Mills							<input id="net-config__prime-dns{{$index+1}}" type="text" ng-model="dns" ng-blur="interface.Nameservers[$index] = dns" set-focus-dns-field/>
820646782dSGunnar Mills						</fieldset>
83*bc3ab72cSGunnar Mills						<button type="button" class="btn-primary inline" ng-click="addDNSField()">Add new DNS server</button>
8451946552SMichael Davis				</div>
8551946552SMichael Davis			</fieldset>
8651946552SMichael Davis			<div class="network-config__submit-wrapper">
87d01504cfSGunnar Mills				<button type="button" class="btn-primary inline" ng-click="confirm_settings=true;">Save settings</button>
889a0094dcSGunnar Mills				<button type="button" class="btn-secondary inline" ng-click="refresh()">Cancel</button>
89a960c8c7SMichael Davis			</div>
907ddc7274SGunnar Mills			<p class="success-msg set_network_success" ng-show="set_network_success" role="alert">Success! Network settings changed!</p>
917ddc7274SGunnar Mills			<p class="set_network_error error-msg" ng-show="set_network_error" role="alert">Error setting {{set_network_error}}!</p>
92a960c8c7SMichael Davis		</section>
93a960c8c7SMichael Davis	</form>
94cd789508SIftekharul Islam</div>
95d01504cfSGunnar Mills<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': confirm_settings}">
96d01504cfSGunnar Mills	<div class="modal__tftp-unreachable" role="document">
97d01504cfSGunnar Mills		<div class="screen-reader-offscreen modal-description">Change network settings</div><!-- accessibility only; used for screen readers -->
98d01504cfSGunnar Mills		<div class="page-header ">
99d01504cfSGunnar Mills			<span class="icon icon__warning inline"><span class="accessible-text" role="alert">Warning</span></span>
100d01504cfSGunnar Mills			<h1 class="modal-title h4 inline">Change network settings</h1>
101d01504cfSGunnar Mills		</div>
102d01504cfSGunnar Mills		<div class="modal__content">
103d01504cfSGunnar Mills			<p>Changing network settings may cause the system to become unavailable (e.g. changing the BMC IP address).
104d01504cfSGunnar Mills				Proceed with caution and make note of any new settings that may affect connectivity.</p>
105d01504cfSGunnar Mills		</div>
106d01504cfSGunnar Mills		<div class="modal__button-wrapper">
107d01504cfSGunnar Mills			<button class="inline btn-secondary" ng-click="confirm_settings=false;">Cancel</button>
108d01504cfSGunnar Mills			<button class="inline btn-primary" ng-click="setNetworkSettings()">Continue</button>
109d01504cfSGunnar Mills		</div>
110d01504cfSGunnar Mills	</div>
111d01504cfSGunnar Mills</section>
112