docker-compose-editor #1

Merged
aqua3 merged 12 commits from docker-compose-editor into dev 2024-10-30 16:59:20 -03:00
Showing only changes of commit 0a55ee1fea - Show all commits

View File

@ -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() { });