add ipv6 configure form

This commit is contained in:
Girish Ramakrishnan
2022-02-15 12:54:02 -08:00
parent 41099c1131
commit 0d6c2dc1cf
4 changed files with 164 additions and 37 deletions

View File

@@ -16,8 +16,16 @@ angular.module('Application').controller('NetworkController', ['$scope', '$locat
{ name: 'Network Interface', value: 'network-interface' }
];
$scope.prettySysinfoProviderName = function (provider) {
$scope.ipv6ConfigureProvider = [
{ name: 'Disabled', value: 'noop' },
{ name: 'Public IP', value: 'generic' },
{ name: 'Static IP Address', value: 'fixed' },
{ name: 'Network Interface', value: 'network-interface' }
];
$scope.prettyIpProviderName = function (provider) {
switch (provider) {
case 'noop': return 'Disabled';
case 'generic': return 'Public IP';
case 'fixed': return 'Static IP Address';
case 'network-interface': return 'Network Interface';
@@ -53,26 +61,79 @@ angular.module('Application').controller('NetworkController', ['$scope', '$locat
$scope.ipv6Configure = {
busy: false,
error: '',
isEnabled: false,
error: {},
serverIPv6: '',
provider: '',
ipv6: '',
ifname: '',
// configure dialog
newProvider: '',
newIPv6: '',
newIfname: '',
refresh: function () {
Client.getIPv6Config(function (error, enabled) {
Client.getIPv6Config(function (error, result) {
if (error) return console.error(error);
$scope.ipv6Configure.isEnabled = enabled;
$scope.ipv6Configure.provider = result.provider;
$scope.ipv6Configure.ipv6 = result.ipv6 || '';
$scope.ipv6Configure.ifname = result.ifname || '';
if (result.provider === 'noop') return;
Client.getServerIpv6(function (error, result) {
if (error) return console.error(error);
$scope.ipv6Configure.serverIPv6 = result.ipv6;
});
});
},
setEnabled: function (enabled) {
show: function () {
$scope.ipv6Configure.error = {};
$scope.ipv6Configure.newProvider = $scope.ipv6Configure.provider;
$scope.ipv6Configure.newIPv6 = $scope.ipv6Configure.ipv6;
$scope.ipv6Configure.newIfname = $scope.ipv6Configure.ifname;
$('#ipv6ConfigureModal').modal('show');
},
submit: function () {
$scope.ipv6Configure.error = {};
$scope.ipv6Configure.busy = true;
$scope.ipv6Configure.error = '';
Client.setIPv6Config(enabled, function (error) {
var config = {
provider: $scope.ipv6Configure.newProvider
};
if (config.provider === 'fixed') {
config.ipv4 = $scope.ipv6Configure.newIPv4;
} else if (config.provider === 'network-interface') {
config.ifname = $scope.ipv6Configure.newIfname;
}
Client.setIPv6Config(config, function (error) {
$scope.ipv6Configure.busy = false;
if (error && error.message.indexOf('ipv') !== -1) {
$scope.ipv6Configure.error.ipv6 = error.message;
$scope.ipv6ConfigureForm.$setPristine();
$scope.ipv6ConfigureForm.$setUntouched();
return;
} else if (error && (error.message.indexOf('interface') !== -1 || error.message.indexOf('IPv6') !== -1)) {
$scope.ipv6Configure.error.ifname = error.message;
$scope.ipv6ConfigureForm.$setPristine();
$scope.ipv6ConfigureForm.$setUntouched();
return;
} else if (error) {
console.error(error);
return;
}
if (error) $scope.ipv6Configure.error = error.message;
else $scope.ipv6Configure.isEnabled = enabled;
$scope.ipv6Configure.refresh();
$('#ipv6ConfigureModal').modal('hide');
});
}
};