Cleanup formatting inconsistencies
This commit is contained in:
parent
0cfd11ca93
commit
0a55ee1fea
|
@ -34,109 +34,89 @@ document.onload = InitPage();
|
|||
// Save file button
|
||||
document.getElementById("save").addEventListener("click", SaveSettings);
|
||||
|
||||
|
||||
|
||||
// This attempts to read the conf file, if it exists, then it will parse it and fill out the table
|
||||
// if it fails then the values are loaded with defaults.
|
||||
function InitPage() {
|
||||
cockpit.script(scriptLocation + "cockpitScript.sh -v")
|
||||
.then((content) => version.innerHTML=content)
|
||||
.catch(error => Fail(error));
|
||||
.then((content) => version.innerHTML=content)
|
||||
.catch(error => Fail(error));
|
||||
cockpit.script(scriptLocation + "cockpitScript.sh -u")
|
||||
.then(function(content) {
|
||||
ipsubnet1.innerHTML=content;
|
||||
ipsubnet2.innerHTML=content;
|
||||
})
|
||||
.catch(error => Fail(error));
|
||||
.then(function(content) {
|
||||
ipsubnet1.innerHTML=content;
|
||||
ipsubnet2.innerHTML=content;
|
||||
})
|
||||
.catch(error => Fail(error));
|
||||
|
||||
file_location.innerHTML = confLocation + "main.conf";
|
||||
|
||||
cockpit.file(confLocation + "main.conf")
|
||||
.read().then((content, tag) => SuccessReadFile(content))
|
||||
.catch(error => FailureReadFile(error));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getValueByKey(text, sectionName, sectionLength, key){
|
||||
function getValueByKey(text, sectionName, sectionLength, key) {
|
||||
//function to extract key values from a file with sections
|
||||
//this should work if the section is commented out or not
|
||||
var lines = text.split("\n");
|
||||
var sectionBody = "";
|
||||
for(let t = 0; t < lines.length; t++){
|
||||
if (lines[t] === sectionName || lines[t] === "#" + sectionName)
|
||||
{
|
||||
if (lines[t] === sectionName || lines[t] === "#" + sectionName) {
|
||||
for(let n = 0; n < sectionLength; n++){
|
||||
if (lines[t].startsWith("#"))
|
||||
{
|
||||
sectionBody += lines[t+n+1].slice(1) + "\n";
|
||||
}
|
||||
else
|
||||
sectionBody += lines[t+n+1] + "\n";
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (sectionBody === "")
|
||||
return null;
|
||||
var regex = new RegExp("^" + key + " =(.*)$", "m");
|
||||
var match = regex.exec(sectionBody);
|
||||
if(match)
|
||||
if (match)
|
||||
return match[1].trim();
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
function isSectionEnabled(text, sectionName)
|
||||
{
|
||||
function isSectionEnabled(text, sectionName) {
|
||||
var lines = text.split("\n");
|
||||
|
||||
for(let t = 0; t < lines.length; t++){
|
||||
if (lines[t] === sectionName)
|
||||
{
|
||||
if (!lines[t].startsWith("#"))
|
||||
{
|
||||
if (lines[t] === sectionName) {
|
||||
if (!lines[t].startsWith("#")) {
|
||||
return "Enabled";
|
||||
}
|
||||
return "Disabled";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return "Disabled";
|
||||
}
|
||||
|
||||
function setSectionEnabled(text, sectionName, sectionLength, enabled)
|
||||
{
|
||||
|
||||
function setSectionEnabled(text, sectionName, sectionLength, enabled) {
|
||||
//if enabled, find the section and remove leading #
|
||||
//if disabled, find the section and add leading #
|
||||
//return content
|
||||
var lines = text.split("\n");
|
||||
if (enabled)
|
||||
{
|
||||
if (enabled) {
|
||||
//do action to enable the section
|
||||
for(let t = 0; t < lines.length; t++){
|
||||
if (lines[t] === "#" + sectionName)
|
||||
{
|
||||
for(let n = 0; n < sectionLength+1; n++){
|
||||
if (lines[t+n].startsWith("#"))
|
||||
{
|
||||
lines[t+n] = lines[t+n].slice(1);
|
||||
}
|
||||
}
|
||||
if (lines[t] === "#" + sectionName) {
|
||||
for(let n = 0; n < sectionLength+1; n++){
|
||||
if (lines[t+n].startsWith("#")) {
|
||||
lines[t+n] = lines[t+n].slice(1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
} else {
|
||||
//do action to disable the section
|
||||
for(let t = 0; t < lines.length; t++){
|
||||
if (lines[t] === sectionName)
|
||||
{
|
||||
if (lines[t] === sectionName) {
|
||||
for(let n = 0; n < sectionLength+1; n++){
|
||||
lines[t+n] = "#" + lines[t+n];
|
||||
|
||||
lines[t+n] = "#" + lines[t+n];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -157,11 +137,9 @@ function setValueByKey(text, sectionName, sectionLength, key, value)
|
|||
var lines = text.split("\n");
|
||||
|
||||
for(let t = 0; t < lines.length; t++){
|
||||
if (lines[t] === sectionName)
|
||||
{
|
||||
if (lines[t] === sectionName) {
|
||||
for(let n = 0; n < sectionLength; n++){
|
||||
if (lines[t+n+1].split('=')[0].trim() == key)
|
||||
{
|
||||
if (lines[t+n+1].split('=')[0].trim() == key) {
|
||||
lines[t+n+1] = key + " = " + value;
|
||||
break;
|
||||
}
|
||||
|
@ -170,13 +148,11 @@ function setValueByKey(text, sectionName, sectionLength, key, value)
|
|||
}
|
||||
|
||||
return lines.join("\n");
|
||||
|
||||
|
||||
}
|
||||
|
||||
function SuccessReadFile(content) {
|
||||
try{
|
||||
|
||||
try {
|
||||
|
||||
//FMU Endpoint
|
||||
var currentfmuDevice = getValueByKey(content, "[UartEndpoint alpha]", 2, "Device");
|
||||
var currentbaudRate = getValueByKey(content, "[UartEndpoint alpha]", 2, "Baud");
|
||||
|
@ -194,8 +170,8 @@ function SuccessReadFile(content) {
|
|||
losPort.value = getValueByKey(content, "[UdpEndpoint alpha]", 3, "Port");
|
||||
|
||||
$(udpStatus).change(function() {
|
||||
if ($(this).val() === null)
|
||||
return;
|
||||
if ($(this).val() === null) return;
|
||||
|
||||
if ($(this).val() == "Disabled") {
|
||||
isUdpEnabled = "Disabled";
|
||||
$(udpMode).attr("disabled", "disabled");
|
||||
|
@ -207,16 +183,13 @@ function SuccessReadFile(content) {
|
|||
$(losHost).removeAttr("disabled");
|
||||
$(losPort).removeAttr("disabled");
|
||||
}
|
||||
}).trigger("change");
|
||||
}).trigger("change");
|
||||
|
||||
|
||||
|
||||
AddDropDown(udpMode, udpModeArray, currentudpMode);
|
||||
AddDropDown(udpStatus, udpStatusArray, isUdpEnabled);
|
||||
|
||||
// init state of UDP fields
|
||||
if (isUdpEnabled === "Disabled")
|
||||
{
|
||||
if (isUdpEnabled === "Disabled") {
|
||||
$(udpMode).attr("disabled", "disabled");
|
||||
$(losHost).attr("disabled", "disabled");
|
||||
$(losPort).attr("disabled", "disabled");
|
||||
|
@ -228,10 +201,9 @@ function SuccessReadFile(content) {
|
|||
tcpHost.value = getValueByKey(content, "[TcpEndpoint alpha]", 3, "Address");
|
||||
tcpPort.value = getValueByKey(content, "[TcpEndpoint alpha]", 3, "Port");
|
||||
|
||||
|
||||
$(tcpStatus).change(function() {
|
||||
if ($(this).val() === null)
|
||||
return;
|
||||
if ($(this).val() === null) return;
|
||||
|
||||
if ($(this).val() == "Disabled") {
|
||||
istcpEnabled = "Disabled";
|
||||
$(tcpHost).attr("disabled", "disabled");
|
||||
|
@ -241,45 +213,41 @@ function SuccessReadFile(content) {
|
|||
$(tcpHost).removeAttr("disabled");
|
||||
$(tcpPort).removeAttr("disabled");
|
||||
}
|
||||
}).trigger("change");
|
||||
}).trigger("change");
|
||||
|
||||
|
||||
AddDropDown(tcpStatus, tcpStatusArray, istcpEnabled);
|
||||
|
||||
// init state of TCP fields
|
||||
if (istcpEnabled === "Disabled")
|
||||
{
|
||||
if (istcpEnabled === "Disabled") {
|
||||
$(tcpHost).attr("disabled", "disabled");
|
||||
$(tcpPort).attr("disabled", "disabled");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
catch(e){
|
||||
catch(e) {
|
||||
FailureReadFile(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function AddPathToDeviceFile(incomingArray){
|
||||
function AddPathToDeviceFile(incomingArray) {
|
||||
for(let t = 0; t < incomingArray.length; t++){
|
||||
incomingArray[t] = "/dev/" + incomingArray[t];
|
||||
}
|
||||
return incomingArray;
|
||||
}
|
||||
|
||||
function AddDropDown(box, theArray, defaultValue){
|
||||
try{
|
||||
function AddDropDown(box, theArray, defaultValue) {
|
||||
try {
|
||||
for(let t = 0; t < theArray.length; t++){
|
||||
var option = document.createElement("option");
|
||||
option.text = theArray[t];
|
||||
box.add(option);
|
||||
if(defaultValue == option.text){
|
||||
if(defaultValue == option.text) {
|
||||
box.value = option.text;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e){
|
||||
catch(e) {
|
||||
Fail(e)
|
||||
}
|
||||
}
|
||||
|
@ -300,91 +268,80 @@ function FailureReadFile(error) {
|
|||
|
||||
function SaveSettings() {
|
||||
|
||||
//lets do some validation
|
||||
|
||||
var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
||||
var portformat = /^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/;
|
||||
var errorFlag = false;
|
||||
var errorText = "";
|
||||
if (!losHost.value.match(ipformat) && (isUdpEnabled==="Enabled")) {
|
||||
losHost.focus();
|
||||
errorText += "Error in the UDP Host Address!<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
if (!losPort.value.match(portformat) && (isUdpEnabled==="Enabled")) {
|
||||
losPort.focus();
|
||||
errorText += "Error in the UDP Port Number! (0-65535 allowed)<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
if (!tcpHost.value.match(ipformat) && (istcpEnabled==="Enabled")) {
|
||||
tcpHost.focus();
|
||||
errorText += "Error in the TCP Host Address, should be x.x.x.x<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
if (!tcpPort.value.match(portformat) && (istcpEnabled==="Enabled")) {
|
||||
tcpPort.focus();
|
||||
errorText += "Error in the TCP Port Number! (0-65535 allowed)<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
|
||||
if (errorFlag)
|
||||
{
|
||||
result.style.color = "red";
|
||||
result.innerHTML = errorText;
|
||||
return;
|
||||
}
|
||||
//lets do some validation
|
||||
|
||||
//open the file for writing, and callback function for modification
|
||||
var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
||||
var portformat = /^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/;
|
||||
var errorFlag = false;
|
||||
var errorText = "";
|
||||
|
||||
cockpit.file(confLocation + "main.conf")
|
||||
if (!losHost.value.match(ipformat) && (isUdpEnabled==="Enabled")) {
|
||||
losHost.focus();
|
||||
errorText += "Error in the UDP Host Address!<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
if (!losPort.value.match(portformat) && (isUdpEnabled==="Enabled")) {
|
||||
losPort.focus();
|
||||
errorText += "Error in the UDP Port Number! (0-65535 allowed)<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
if (!tcpHost.value.match(ipformat) && (istcpEnabled==="Enabled")) {
|
||||
tcpHost.focus();
|
||||
errorText += "Error in the TCP Host Address, should be x.x.x.x<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
if (!tcpPort.value.match(portformat) && (istcpEnabled==="Enabled")) {
|
||||
tcpPort.focus();
|
||||
errorText += "Error in the TCP Port Number! (0-65535 allowed)<br>";
|
||||
errorFlag = true;
|
||||
}
|
||||
|
||||
if (errorFlag) {
|
||||
result.style.color = "red";
|
||||
result.innerHTML = errorText;
|
||||
return;
|
||||
}
|
||||
|
||||
//open the file for writing, and callback function for modification
|
||||
cockpit.file(confLocation + "main.conf")
|
||||
.read().then((content, tag) => SuccessReadforSaveFile(content))
|
||||
.catch(error => FailureReadFile(error));
|
||||
|
||||
.catch(error => FailureReadFile(error));
|
||||
}
|
||||
|
||||
function SuccessReadforSaveFile(content) {
|
||||
try{
|
||||
try {
|
||||
|
||||
//if udp is disabled, then skip those
|
||||
if (isUdpEnabled == "Disabled")
|
||||
{
|
||||
if (isUdpEnabled == "Disabled") {
|
||||
content = setSectionEnabled(content, "[UdpEndpoint alpha]", 3, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
content = setSectionEnabled(content, "[UdpEndpoint alpha]", 3, true);
|
||||
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Address", losHost.value )
|
||||
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Port", losPort.value )
|
||||
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Mode", udpMode.value )
|
||||
}
|
||||
|
||||
if (istcpEnabled == "Disabled")
|
||||
{
|
||||
if (istcpEnabled == "Disabled") {
|
||||
content = setSectionEnabled(content, "[TcpEndpoint alpha]", 2, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
content = setSectionEnabled(content, "[TcpEndpoint alpha]", 2, true);
|
||||
content = setValueByKey(content, "[TcpEndpoint alpha]",2, "Address", tcpHost.value )
|
||||
content = setValueByKey(content, "[TcpEndpoint alpha]",2, "Port", tcpPort.value )
|
||||
}
|
||||
}
|
||||
|
||||
//at this point we have the contents of the file, we need to replace keys
|
||||
content = setValueByKey(content, "[UartEndpoint alpha]",2, "Device", fmuDevice.value )
|
||||
content = setValueByKey(content, "[UartEndpoint alpha]",2, "Baud", baudrate.value )
|
||||
|
||||
|
||||
|
||||
cockpit.file(confLocation + "main.conf", { superuser : "try" }).replace(content)
|
||||
.then(Success)
|
||||
.catch(Fail);
|
||||
cockpit.file(confLocation + "main.conf", { superuser : "try" }).replace(content)
|
||||
.then(Success)
|
||||
.catch(Fail);
|
||||
|
||||
cockpit.spawn(["systemctl", "restart", "mavlink-router"], { superuser : "try" });
|
||||
cockpit.spawn(["systemctl", "restart", "mavlink-router"], { superuser : "try" });
|
||||
}
|
||||
catch(e){
|
||||
catch(e) {
|
||||
FailureReadFile(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function Success() {
|
||||
|
@ -397,5 +354,6 @@ function Fail(error) {
|
|||
result.style.color = "red";
|
||||
result.innerHTML = error.message;
|
||||
}
|
||||
|
||||
// Send a 'init' message. This tells integration tests that we are ready to go
|
||||
cockpit.transport.wait(function() { });
|
||||
|
|
Loading…
Reference in New Issue