docker-compose-editor #1
@ -34,8 +34,6 @@ document.onload = InitPage();
|
|||||||
// Save file button
|
// Save file button
|
||||||
document.getElementById("save").addEventListener("click", SaveSettings);
|
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
|
// 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.
|
// if it fails then the values are loaded with defaults.
|
||||||
function InitPage() {
|
function InitPage() {
|
||||||
@ -54,7 +52,6 @@ function InitPage() {
|
|||||||
cockpit.file(confLocation + "main.conf")
|
cockpit.file(confLocation + "main.conf")
|
||||||
.read().then((content, tag) => SuccessReadFile(content))
|
.read().then((content, tag) => SuccessReadFile(content))
|
||||||
.catch(error => FailureReadFile(error));
|
.catch(error => FailureReadFile(error));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getValueByKey(text, sectionName, sectionLength, key) {
|
function getValueByKey(text, sectionName, sectionLength, key) {
|
||||||
@ -63,13 +60,10 @@ function getValueByKey(text, sectionName, sectionLength, key){
|
|||||||
var lines = text.split("\n");
|
var lines = text.split("\n");
|
||||||
var sectionBody = "";
|
var sectionBody = "";
|
||||||
for(let t = 0; t < lines.length; t++){
|
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++){
|
for(let n = 0; n < sectionLength; n++){
|
||||||
if (lines[t].startsWith("#"))
|
if (lines[t].startsWith("#"))
|
||||||
{
|
|
||||||
sectionBody += lines[t+n+1].slice(1) + "\n";
|
sectionBody += lines[t+n+1].slice(1) + "\n";
|
||||||
}
|
|
||||||
else
|
else
|
||||||
sectionBody += lines[t+n+1] + "\n";
|
sectionBody += lines[t+n+1] + "\n";
|
||||||
}
|
}
|
||||||
@ -86,57 +80,43 @@ function getValueByKey(text, sectionName, sectionLength, key){
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isSectionEnabled(text, sectionName)
|
function isSectionEnabled(text, sectionName) {
|
||||||
{
|
|
||||||
var lines = text.split("\n");
|
var lines = text.split("\n");
|
||||||
|
|
||||||
for(let t = 0; t < lines.length; t++){
|
for(let t = 0; t < lines.length; t++){
|
||||||
if (lines[t] === sectionName)
|
if (lines[t] === sectionName) {
|
||||||
{
|
if (!lines[t].startsWith("#")) {
|
||||||
if (!lines[t].startsWith("#"))
|
|
||||||
{
|
|
||||||
return "Enabled";
|
return "Enabled";
|
||||||
}
|
}
|
||||||
return "Disabled";
|
return "Disabled";
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "Disabled";
|
return "Disabled";
|
||||||
}
|
}
|
||||||
|
|
||||||
function setSectionEnabled(text, sectionName, sectionLength, enabled)
|
function setSectionEnabled(text, sectionName, sectionLength, enabled) {
|
||||||
{
|
|
||||||
|
|
||||||
//if enabled, find the section and remove leading #
|
//if enabled, find the section and remove leading #
|
||||||
//if disabled, find the section and add leading #
|
//if disabled, find the section and add leading #
|
||||||
//return content
|
//return content
|
||||||
var lines = text.split("\n");
|
var lines = text.split("\n");
|
||||||
if (enabled)
|
if (enabled) {
|
||||||
{
|
|
||||||
//do action to enable the section
|
//do action to enable the section
|
||||||
for(let t = 0; t < lines.length; t++){
|
for(let t = 0; t < lines.length; t++){
|
||||||
if (lines[t] === "#" + sectionName)
|
if (lines[t] === "#" + sectionName) {
|
||||||
{
|
|
||||||
for(let n = 0; n < sectionLength+1; n++){
|
for(let n = 0; n < sectionLength+1; n++){
|
||||||
if (lines[t+n].startsWith("#"))
|
if (lines[t+n].startsWith("#")) {
|
||||||
{
|
|
||||||
lines[t+n] = lines[t+n].slice(1);
|
lines[t+n] = lines[t+n].slice(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//do action to disable the section
|
//do action to disable the section
|
||||||
for(let t = 0; t < lines.length; t++){
|
for(let t = 0; t < lines.length; t++){
|
||||||
if (lines[t] === sectionName)
|
if (lines[t] === sectionName) {
|
||||||
{
|
|
||||||
for(let n = 0; n < sectionLength+1; n++){
|
for(let n = 0; n < sectionLength+1; n++){
|
||||||
lines[t+n] = "#" + lines[t+n];
|
lines[t+n] = "#" + lines[t+n];
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -157,11 +137,9 @@ function setValueByKey(text, sectionName, sectionLength, key, value)
|
|||||||
var lines = text.split("\n");
|
var lines = text.split("\n");
|
||||||
|
|
||||||
for(let t = 0; t < lines.length; t++){
|
for(let t = 0; t < lines.length; t++){
|
||||||
if (lines[t] === sectionName)
|
if (lines[t] === sectionName) {
|
||||||
{
|
|
||||||
for(let n = 0; n < sectionLength; n++){
|
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;
|
lines[t+n+1] = key + " = " + value;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -170,8 +148,6 @@ function setValueByKey(text, sectionName, sectionLength, key, value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return lines.join("\n");
|
return lines.join("\n");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function SuccessReadFile(content) {
|
function SuccessReadFile(content) {
|
||||||
@ -194,8 +170,8 @@ function SuccessReadFile(content) {
|
|||||||
losPort.value = getValueByKey(content, "[UdpEndpoint alpha]", 3, "Port");
|
losPort.value = getValueByKey(content, "[UdpEndpoint alpha]", 3, "Port");
|
||||||
|
|
||||||
$(udpStatus).change(function() {
|
$(udpStatus).change(function() {
|
||||||
if ($(this).val() === null)
|
if ($(this).val() === null) return;
|
||||||
return;
|
|
||||||
if ($(this).val() == "Disabled") {
|
if ($(this).val() == "Disabled") {
|
||||||
isUdpEnabled = "Disabled";
|
isUdpEnabled = "Disabled";
|
||||||
$(udpMode).attr("disabled", "disabled");
|
$(udpMode).attr("disabled", "disabled");
|
||||||
@ -209,14 +185,11 @@ function SuccessReadFile(content) {
|
|||||||
}
|
}
|
||||||
}).trigger("change");
|
}).trigger("change");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AddDropDown(udpMode, udpModeArray, currentudpMode);
|
AddDropDown(udpMode, udpModeArray, currentudpMode);
|
||||||
AddDropDown(udpStatus, udpStatusArray, isUdpEnabled);
|
AddDropDown(udpStatus, udpStatusArray, isUdpEnabled);
|
||||||
|
|
||||||
// init state of UDP fields
|
// init state of UDP fields
|
||||||
if (isUdpEnabled === "Disabled")
|
if (isUdpEnabled === "Disabled") {
|
||||||
{
|
|
||||||
$(udpMode).attr("disabled", "disabled");
|
$(udpMode).attr("disabled", "disabled");
|
||||||
$(losHost).attr("disabled", "disabled");
|
$(losHost).attr("disabled", "disabled");
|
||||||
$(losPort).attr("disabled", "disabled");
|
$(losPort).attr("disabled", "disabled");
|
||||||
@ -228,10 +201,9 @@ function SuccessReadFile(content) {
|
|||||||
tcpHost.value = getValueByKey(content, "[TcpEndpoint alpha]", 3, "Address");
|
tcpHost.value = getValueByKey(content, "[TcpEndpoint alpha]", 3, "Address");
|
||||||
tcpPort.value = getValueByKey(content, "[TcpEndpoint alpha]", 3, "Port");
|
tcpPort.value = getValueByKey(content, "[TcpEndpoint alpha]", 3, "Port");
|
||||||
|
|
||||||
|
|
||||||
$(tcpStatus).change(function() {
|
$(tcpStatus).change(function() {
|
||||||
if ($(this).val() === null)
|
if ($(this).val() === null) return;
|
||||||
return;
|
|
||||||
if ($(this).val() == "Disabled") {
|
if ($(this).val() == "Disabled") {
|
||||||
istcpEnabled = "Disabled";
|
istcpEnabled = "Disabled";
|
||||||
$(tcpHost).attr("disabled", "disabled");
|
$(tcpHost).attr("disabled", "disabled");
|
||||||
@ -247,18 +219,14 @@ function SuccessReadFile(content) {
|
|||||||
AddDropDown(tcpStatus, tcpStatusArray, istcpEnabled);
|
AddDropDown(tcpStatus, tcpStatusArray, istcpEnabled);
|
||||||
|
|
||||||
// init state of TCP fields
|
// init state of TCP fields
|
||||||
if (istcpEnabled === "Disabled")
|
if (istcpEnabled === "Disabled") {
|
||||||
{
|
|
||||||
$(tcpHost).attr("disabled", "disabled");
|
$(tcpHost).attr("disabled", "disabled");
|
||||||
$(tcpPort).attr("disabled", "disabled");
|
$(tcpPort).attr("disabled", "disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
FailureReadFile(e);
|
FailureReadFile(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function AddPathToDeviceFile(incomingArray) {
|
function AddPathToDeviceFile(incomingArray) {
|
||||||
@ -306,6 +274,7 @@ function SaveSettings() {
|
|||||||
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 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 errorFlag = false;
|
||||||
var errorText = "";
|
var errorText = "";
|
||||||
|
|
||||||
if (!losHost.value.match(ipformat) && (isUdpEnabled==="Enabled")) {
|
if (!losHost.value.match(ipformat) && (isUdpEnabled==="Enabled")) {
|
||||||
losHost.focus();
|
losHost.focus();
|
||||||
errorText += "Error in the UDP Host Address!<br>";
|
errorText += "Error in the UDP Host Address!<br>";
|
||||||
@ -327,43 +296,34 @@ function SaveSettings() {
|
|||||||
errorFlag = true;
|
errorFlag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (errorFlag)
|
if (errorFlag) {
|
||||||
{
|
|
||||||
result.style.color = "red";
|
result.style.color = "red";
|
||||||
result.innerHTML = errorText;
|
result.innerHTML = errorText;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//open the file for writing, and callback function for modification
|
//open the file for writing, and callback function for modification
|
||||||
|
|
||||||
cockpit.file(confLocation + "main.conf")
|
cockpit.file(confLocation + "main.conf")
|
||||||
.read().then((content, tag) => SuccessReadforSaveFile(content))
|
.read().then((content, tag) => SuccessReadforSaveFile(content))
|
||||||
.catch(error => FailureReadFile(error));
|
.catch(error => FailureReadFile(error));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function SuccessReadforSaveFile(content) {
|
function SuccessReadforSaveFile(content) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
//if udp is disabled, then skip those
|
//if udp is disabled, then skip those
|
||||||
if (isUdpEnabled == "Disabled")
|
if (isUdpEnabled == "Disabled") {
|
||||||
{
|
|
||||||
content = setSectionEnabled(content, "[UdpEndpoint alpha]", 3, false);
|
content = setSectionEnabled(content, "[UdpEndpoint alpha]", 3, false);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
content = setSectionEnabled(content, "[UdpEndpoint alpha]", 3, true);
|
content = setSectionEnabled(content, "[UdpEndpoint alpha]", 3, true);
|
||||||
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Address", losHost.value )
|
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Address", losHost.value )
|
||||||
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Port", losPort.value )
|
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Port", losPort.value )
|
||||||
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Mode", udpMode.value )
|
content = setValueByKey(content, "[UdpEndpoint alpha]",3, "Mode", udpMode.value )
|
||||||
}
|
}
|
||||||
|
|
||||||
if (istcpEnabled == "Disabled")
|
if (istcpEnabled == "Disabled") {
|
||||||
{
|
|
||||||
content = setSectionEnabled(content, "[TcpEndpoint alpha]", 2, false);
|
content = setSectionEnabled(content, "[TcpEndpoint alpha]", 2, false);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
content = setSectionEnabled(content, "[TcpEndpoint alpha]", 2, true);
|
content = setSectionEnabled(content, "[TcpEndpoint alpha]", 2, true);
|
||||||
content = setValueByKey(content, "[TcpEndpoint alpha]",2, "Address", tcpHost.value )
|
content = setValueByKey(content, "[TcpEndpoint alpha]",2, "Address", tcpHost.value )
|
||||||
content = setValueByKey(content, "[TcpEndpoint alpha]",2, "Port", tcpPort.value )
|
content = setValueByKey(content, "[TcpEndpoint alpha]",2, "Port", tcpPort.value )
|
||||||
@ -373,8 +333,6 @@ function SuccessReadforSaveFile(content) {
|
|||||||
content = setValueByKey(content, "[UartEndpoint alpha]",2, "Device", fmuDevice.value )
|
content = setValueByKey(content, "[UartEndpoint alpha]",2, "Device", fmuDevice.value )
|
||||||
content = setValueByKey(content, "[UartEndpoint alpha]",2, "Baud", baudrate.value )
|
content = setValueByKey(content, "[UartEndpoint alpha]",2, "Baud", baudrate.value )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cockpit.file(confLocation + "main.conf", { superuser : "try" }).replace(content)
|
cockpit.file(confLocation + "main.conf", { superuser : "try" }).replace(content)
|
||||||
.then(Success)
|
.then(Success)
|
||||||
.catch(Fail);
|
.catch(Fail);
|
||||||
@ -384,7 +342,6 @@ function SuccessReadforSaveFile(content) {
|
|||||||
catch(e) {
|
catch(e) {
|
||||||
FailureReadFile(e);
|
FailureReadFile(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Success() {
|
function Success() {
|
||||||
@ -397,5 +354,6 @@ function Fail(error) {
|
|||||||
result.style.color = "red";
|
result.style.color = "red";
|
||||||
result.innerHTML = error.message;
|
result.innerHTML = error.message;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send a 'init' message. This tells integration tests that we are ready to go
|
// Send a 'init' message. This tells integration tests that we are ready to go
|
||||||
cockpit.transport.wait(function() { });
|
cockpit.transport.wait(function() { });
|
||||||
|
Loading…
Reference in New Issue
Block a user