fixed image,volume,networks form submit.

added selectAll to permissions modal.
This commit is contained in:
lllllllillllllillll 2024-02-09 20:06:33 -08:00
parent 95dcedbdc1
commit 003db6d7d1
11 changed files with 77 additions and 60 deletions

View file

@ -37,7 +37,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="all">
<input class="form-check-input" type="checkbox" name="select" onclick="selectAll('select')">
</label>
</div>
</div>
@ -52,7 +52,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="uninstall">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>
@ -67,7 +67,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="edit">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>
@ -82,7 +82,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="upgrade">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>
@ -97,7 +97,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="start">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>
@ -112,7 +112,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="stop">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>
@ -127,7 +127,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="pause">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>
@ -142,7 +142,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="restart">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>
@ -158,7 +158,7 @@ export const permissionsModal = (data) => {
</div>
<div class="col-3">
<label class="form-check form-check-single form-switch text-end">
<input class="form-check-input" type="checkbox" name="logs">
<input class="form-check-input" type="checkbox" name="select">
</label>
</div>
</div>

View file

@ -12,7 +12,7 @@ export const Dashboard = (req, res) => {
export const searchDashboard = (req, res) => {
console.log(req.params);
// console.log(req.params);
res.render("dashboard", {
name: req.session.user,

View file

@ -6,10 +6,6 @@ export const Images = async function(req, res) {
let image_list = `
<thead>
<!-- Hidden checkbox so that the form returns an array each time -->
<tr class="d-none">
<td><input class="form-check-input m-0 align-middle" name="select" value="on" type="checkbox" checked="" aria-label="Select"></td>
</tr>
<tr>
<th class="w-1"><input class="form-check-input m-0 align-middle" name="select" type="checkbox" aria-label="Select all" onclick="selectAll()"></th>
<th><button class="table-sort" data-sort="sort-name">Name</button></th>
@ -63,6 +59,11 @@ export const Images = async function(req, res) {
export const removeImage = async function(req, res) {
let images = req.body.select;
if (typeof(images) == 'string') {
images = [images];
}
for (let i = 0; i < images.length; i++) {
if (images[i] != 'on') {

View file

@ -7,10 +7,6 @@ export const Networks = async function(req, res) {
let network_list = `
<thead>
<!-- Hidden checkbox so that the form returns an array each time -->
<tr class="d-none">
<td><input class="form-check-input m-0 align-middle" name="select" value="on" type="checkbox" checked="" aria-label="Select"></td>
</tr>
<tr>
<th class="w-1"><input class="form-check-input m-0 align-middle" name="select" type="checkbox" aria-label="Select all" onclick="selectAll()"></th>
<th><button class="table-sort" data-sort="sort-name">Name</button></th>
@ -56,6 +52,11 @@ export const Networks = async function(req, res) {
export const removeNetwork = async function(req, res) {
let networks = req.body.select;
if (typeof(networks) == 'string') {
networks = [networks];
}
for (let i = 0; i < networks.length; i++) {
if (networks[i] != 'on') {

View file

@ -8,10 +8,6 @@ export const Volumes = async function(req, res) {
let volume_list = `
<thead>
<!-- Hidden checkbox so that the form returns an array each time -->
<tr class="d-none">
<td><input class="form-check-input m-0 align-middle" name="select" value="on" type="checkbox" checked="" aria-label="Select"></td>
</tr>
<tr>
<th class="w-1"><input class="form-check-input m-0 align-middle" name="select" type="checkbox" aria-label="Select all" onclick="selectAll()"></th>
<th><button class="table-sort" data-sort="sort-name">Name</button></th>
@ -86,6 +82,10 @@ export const createVolume = async function(req, res) {
export const removeVolume = async function(req, res) {
let volumes = req.body.select;
if (typeof(volumes) == 'string') {
volumes = [volumes];
}
for (let i = 0; i < volumes.length; i++) {
@ -99,5 +99,6 @@ export const removeVolume = async function(req, res) {
}
}
}
res.redirect("/volumes");
}

View file

@ -171,38 +171,40 @@ export const Install = async (req, res) => {
mkdirSync(`./appdata/${name}`, { recursive: true });
writeFileSync(`./appdata/${name}/docker-compose.yml`, compose_file, function (err) { console.log(err) });
} catch { console.log('error creating directory or compose file') }
} catch {
const syslog = await Syslog.create({
user: req.session.user,
email: null,
event: "App Installation",
message: `${name} installation failed - error creating directory or compose file : ${err}`,
ip: req.socket.remoteAddress
});
}
var compose = new DockerodeCompose(docker, `./appdata/${name}/docker-compose.yml`, `${name}`);
(async () => {
try {
try {
(async () => {
await compose.pull();
await compose.up().then(() => {
const syslog = Syslog.create({
user: req.session.user,
email: null,
event: "App Installation",
message: `${name} installed successfully`,
ip: req.socket.remoteAddress
});
});
} catch (err) {
console.error(err);
await compose.up();
const syslog = await Syslog.create({
user: req.session.user,
email: null,
event: "App Installation",
message: `${name} installation failed: ${err}`,
message: `${name} installed successfully`,
ip: req.socket.remoteAddress
});
}
})();
});
})();
} catch (err) {
const syslog = await Syslog.create({
user: req.session.user,
email: null,
event: "App Installation",
message: `${name} installation failed: ${err}`,
ip: req.socket.remoteAddress
});
}
}
res.redirect('/');
}

View file

@ -18,6 +18,7 @@ const port = process.env.PORT || 8000;
let [ hidden, activeEvent, cardList, clicked ] = ['', '', '', false];
let sentList = '';
let SSE = false;
app.locals.installCard = '';
let thanks = 0;
// Session middleware
@ -314,7 +315,7 @@ router.get('/modal', async (req, res) => {
if (id == 'permissions') {
let containerPermissions = await Permission.findAll({ where: {containerName: name}});
console.log(containerPermissions);
let form = permissionsModal();
res.send(form);
@ -387,7 +388,6 @@ router.get('/chart', async (req, res) => {
router.get('/thank', async (req, res) => {
let name = req.header('hx-trigger-name');
thanks++;
let data = thanks.toString();
if (thanks > 999) {

View file

@ -202,7 +202,7 @@
enabled: true
},
animations: {
enabled: true
enabled: false
}
},
fill: {
@ -248,6 +248,21 @@
}
}
</script>
<script>
function selectAll(group) {
let checkboxes = document.getElementsByName(group);
if (checkboxes[0].checked == true) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = true;
}
} else {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = false;
}
}
}
</script>
</body>
</html>

View file

@ -100,13 +100,12 @@
<script>
function selectAll() {
let checkboxes = document.getElementsByName('select');
// loops start at 1 to ignore the hidden checkbox
if (checkboxes[1].checked == true) {
for (var i = 1; i < checkboxes.length; i++) {
if (checkboxes[0].checked == true) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = true;
}
} else {
for (var i = 1; i < checkboxes.length; i++) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = false;
}
}

View file

@ -115,13 +115,12 @@
<script>
function selectAll() {
let checkboxes = document.getElementsByName('select');
// loops start at 1 to ignore the hidden checkbox
if (checkboxes[1].checked == true) {
for (var i = 1; i < checkboxes.length; i++) {
if (checkboxes[0].checked == true) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = true;
}
} else {
for (var i = 1; i < checkboxes.length; i++) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = false;
}
}

View file

@ -114,13 +114,12 @@
<script>
function selectAll() {
let checkboxes = document.getElementsByName('select');
// loops start at 1 to ignore the hidden checkbox
if (checkboxes[1].checked == true) {
for (var i = 1; i < checkboxes.length; i++) {
if (checkboxes[0].checked == true) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = true;
}
} else {
for (var i = 1; i < checkboxes.length; i++) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = false;
}
}