feat: add UI for v4 updates

This commit is contained in:
Rudra Saraswat 2024-02-09 21:14:41 +05:30
parent 0413532282
commit d467fe4fea
3 changed files with 95 additions and 51 deletions

View file

@ -1,7 +1,7 @@
<html> <html>
<head> <head>
<title>Linux Containers</title> <title>System Settings</title>
<!-- Import bootstrap v5.0. --> <!-- Import bootstrap v5.0. -->
<link href="external/css/bootstrap.min.css" rel="stylesheet"> <link href="external/css/bootstrap.min.css" rel="stylesheet">

View file

@ -1,17 +1,7 @@
function update_system() {
function check_app_grouping() { let start_update_worker = new Worker(
if (require('fs').existsSync(`${require('os').homedir()}/.config/categorize_apps_gnome_disable`)) {
document.getElementById('app-grouping-toggle').setAttribute('checked', '')
}
}
check_app_grouping()
$('#app-grouping-toggle').on('change', () => {
if (!document.getElementById('app-grouping-toggle').checked) {
let enable_autogrouping_worker = new Worker(
`data:text/javascript, `data:text/javascript,
let s = require('child_process').spawnSync('rm', ['-f', '${require('os').homedir()}/.config/categorize_apps_gnome_disable']).status let s = require('child_process').spawnSync('pkexec', ['systemctl', 'start', 'akshara-system-update']).status
if (s === 0) { if (s === 0) {
postMessage('success') postMessage('success')
} else { } else {
@ -19,18 +9,18 @@ $('#app-grouping-toggle').on('change', () => {
} }
` `
) )
enable_autogrouping_worker.onmessage = e => { start_update_worker.onmessage = e => {
if (e.data == 'success') { if (e.data == 'success') {
document.getElementById('app-grouping-toggle').checked = false document.getElementById('update-btn').textContent = 'Updating...'
} else { document.getElementById('update-btn').disabled = true
document.getElementById('app-grouping-toggle').checked = true
} }
} }
} else { }
let disable_autogrouping_worker = new Worker(
function check_system_update() {
let start_update_worker = new Worker(
`data:text/javascript, `data:text/javascript,
require('child_process').spawnSync('mkdir', ['-p', '${require('os').homedir()}/.config']).status let s = require('child_process').spawnSync('systemctl', ['is-active', '--quiet', 'akshara-system-update']).status
let s = require('child_process').spawnSync('touch', ['${require('os').homedir()}/.config/categorize_apps_gnome_disable']).status
if (s === 0) { if (s === 0) {
postMessage('success') postMessage('success')
} else { } else {
@ -38,16 +28,69 @@ $('#app-grouping-toggle').on('change', () => {
} }
` `
) )
disable_autogrouping_worker.onmessage = e => { start_update_worker.onmessage = e => {
if (e.data == 'success') { if (e.data == 'success') {
document.getElementById('app-grouping-toggle').checked = true document.getElementById('update-btn').textContent = 'Updating...'
document.getElementById('update-btn').disabled = true
} else { } else {
document.getElementById('app-grouping-toggle').checked = false document.getElementById('update-btn').textContent = 'Update'
document.getElementById('update-btn').disabled = false
} }
} }
}
});
if (require('process').env.XDG_CURRENT_DESKTOP.includes('GNOME')) {
$('#app-grouping-item').removeClass('d-none')
} }
check_system_update()
setInterval(check_system_update, 5000)
// function check_app_grouping() {
// if (require('fs').existsSync(`${require('os').homedir()}/.config/categorize_apps_gnome_disable`)) {
// document.getElementById('app-grouping-toggle').setAttribute('checked', '')
// }
// }
// check_app_grouping()
// $('#app-grouping-toggle').on('change', () => {
// if (!document.getElementById('app-grouping-toggle').checked) {
// let enable_autogrouping_worker = new Worker(
// `data:text/javascript,
// let s = require('child_process').spawnSync('rm', ['-f', '${require('os').homedir()}/.config/categorize_apps_gnome_disable']).status
// if (s === 0) {
// postMessage('success')
// } else {
// postMessage('failure')
// }
// `
// )
// enable_autogrouping_worker.onmessage = e => {
// if (e.data == 'success') {
// document.getElementById('app-grouping-toggle').checked = false
// } else {
// document.getElementById('app-grouping-toggle').checked = true
// }
// }
// } else {
// let disable_autogrouping_worker = new Worker(
// `data:text/javascript,
// require('child_process').spawnSync('mkdir', ['-p', '${require('os').homedir()}/.config']).status
// let s = require('child_process').spawnSync('touch', ['${require('os').homedir()}/.config/categorize_apps_gnome_disable']).status
// if (s === 0) {
// postMessage('success')
// } else {
// postMessage('failure')
// }
// `
// )
// disable_autogrouping_worker.onmessage = e => {
// if (e.data == 'success') {
// document.getElementById('app-grouping-toggle').checked = true
// } else {
// document.getElementById('app-grouping-toggle').checked = false
// }
// }
// }
// });
// if (require('process').env.XDG_CURRENT_DESKTOP.includes('GNOME')) {
// $('#app-grouping-item').removeClass('d-none')
// }

View file

@ -3,17 +3,18 @@
<strong class="mb-0">System Updates</strong> <strong class="mb-0">System Updates</strong>
<div style="height: 0.75rem;"></div> <div style="height: 0.75rem;"></div>
<div class="list-group mb-3 shadow"> <div class="list-group mb-3 shadow">
<div class="list-group-item d-none" id="app-grouping-item"> <div class="list-group-item" id="system-update-item">
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col"> <div class="col">
<strong class="mb-0">Disable app grouping</strong> <strong class="mb-0">Update system</strong>
<p class="text-muted mb-0"> <p class="text-muted mb-0">
Do not automatically group apps of different categories/web apps/Android apps. Checks for updates, and updates your computer if they're available.
</p> </p>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<div class="form-check form-switch align-middle"> <div class="form-check form-switch align-middle">
<input class="form-check-input align-middle" type="checkbox" role="switch" id="app-grouping-toggle"> <button type="button" id="update-btn" onclick="update_system()"
class="btn btn-primary" disabled>Checking...</button>
</div> </div>
</div> </div>
</div> </div>