fixed image,volume,networks form submit.
added selectAll to permissions modal.
This commit is contained in:
parent
95dcedbdc1
commit
003db6d7d1
11 changed files with 77 additions and 60 deletions
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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') {
|
||||
|
|
|
@ -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') {
|
||||
|
|
|
@ -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");
|
||||
}
|
|
@ -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('/');
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue