Skip to content

Commit a5c87b4

Browse files
committed
refactor: extract manage-disk-space-form, reorder settings
1 parent 0956cc2 commit a5c87b4

File tree

4 files changed

+63
-36
lines changed

4 files changed

+63
-36
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
class ManageDiskSpaceForm extends HTMLElement {
2+
constructor () {
3+
super()
4+
}
5+
connectedCallback () {
6+
this.render()
7+
this.registerEvents()
8+
9+
const $diskSpaceUsed = document.getElementById('disk-space-used')
10+
window.fetch('/api/disk-usage')
11+
.then(response => response.text())
12+
.then((diskSpaceUsed) => {
13+
$diskSpaceUsed.innerText = diskSpaceUsed
14+
})
15+
.catch(err => console.error(err))
16+
}
17+
disconnectedCallback () {
18+
this.unregisterEvents()
19+
}
20+
registerEvents () {
21+
this.querySelector('#reclaim-disk-space').addEventListener('click', this.reclaimDiskSpace.bind(this))
22+
}
23+
unregisterEvents () {
24+
this.querySelector('#reclaim-disk-space').removeEventListener('click', this.reclaimDiskSpace.bind(this))
25+
}
26+
render () {
27+
this.innerHTML = /*html*/`
28+
<form>
29+
<div class="flex space-between">
30+
<div>
31+
Delete downloaded videos you ignored to reclaim disk space
32+
</div>
33+
<button id="reclaim-disk-space" type="submit">Delete videos</button>
34+
</div>
35+
<div><small id="disk-usage">Currently <span id="disk-space-used"></span> of disk space used</small></div>
36+
</form>
37+
`
38+
}
39+
40+
reclaimDiskSpace (event) {
41+
event.preventDefault()
42+
if (!confirm('About to delete downloaded videos, are you sure?')) return
43+
console.log('reclaiming')
44+
const $diskUsage = this.querySelector('#disk-usage')
45+
window.fetch('/api/reclaim-disk-space', {
46+
method: 'POST'
47+
})
48+
.then(() => {
49+
$diskUsage.innerText = 'Successfully reclaimed disk space'
50+
})
51+
.catch((error) => {
52+
$diskUsage.innerHTML = `Failed to reclaim disk space: <br><pre>${error.message}</pre>`
53+
})
54+
}
55+
}
56+
customElements.define('manage-disk-space-form', ManageDiskSpaceForm)

client/index.html

+5-13
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ <h2>Settings </h2>
4545
<br>
4646
<add-channel-form></add-channel-form>
4747
<br>
48+
<video-quality-form></video-quality-form>
49+
<br>
50+
<manage-disk-space-form></manage-disk-space-form>
51+
<br>
4852
<form>
4953
<label for="show-thumbnails">
5054
Show video thumbnails
@@ -67,19 +71,6 @@ <h2>Settings </h2>
6771
<input type="checkbox" id="show-original-thumbnail"/>
6872
<div><small>Show the creators chosen thumbnail, or a neutral one based on the actual video frames</small></div>
6973
</form>
70-
<br>
71-
<video-quality-form></video-quality-form>
72-
<br>
73-
<form>
74-
<div class="flex space-between">
75-
<div>
76-
Delete downloaded videos you ignored to reclaim disk space
77-
</div>
78-
<button id="reclaim-disk-space" type="submit">Delete videos</button>
79-
</div>
80-
<div><small id="disk-usage">Currently <span id="disk-space-used"></span> of disk space used</small></div>
81-
</form>
82-
<br>
8374
</div>
8475
</template>
8576

@@ -100,6 +91,7 @@ <h1>404 Not Found</h1>
10091
<script type="module" src="/components/video-element.js"></script>
10192
<script type="module" src="/components/add-channel-form.js"></script>
10293
<script type="module" src="/components/video-quality-form.js"></script>
94+
<script type="module" src="/components/manage-disk-space-form.js"></script>
10395
<script type="module" src="/main.js"></script>
10496
<script type="module" src="/lib/router.js"></script>
10597
</body>

client/lib/router.js

-23
Original file line numberDiff line numberDiff line change
@@ -69,29 +69,6 @@ const routes = {
6969
$showOriginalThumbnail.addEventListener('click', (event) => {
7070
store.toggle(store.showOriginalThumbnailKey)
7171
})
72-
73-
const $reclaimDiskSpace = document.getElementById('reclaim-disk-space')
74-
const $diskUsage = document.getElementById('disk-usage')
75-
const $diskSpaceUsed = document.getElementById('disk-space-used')
76-
window.fetch('/api/disk-usage')
77-
.then(response => response.text())
78-
.then((diskSpaceUsed) => {
79-
$diskSpaceUsed.innerText = diskSpaceUsed
80-
})
81-
$reclaimDiskSpace.addEventListener('click', (event) => {
82-
event.preventDefault()
83-
if (!confirm('About to delete downloaded videos, are you sure?')) return
84-
console.log('reclaiming')
85-
window.fetch('/api/reclaim-disk-space', {
86-
method: 'POST'
87-
})
88-
.then(() => {
89-
$diskUsage.innerText = 'Successfully reclaimed disk space'
90-
})
91-
.catch((error) => {
92-
$diskUsage.innerHTML = `Failed to reclaim disk space: <br><pre>${error.message}</pre>`
93-
})
94-
})
9572
} },
9673
'/404': { template: document.getElementById('not-found-template'), async initialize () {
9774
document.getElementById('search').setAttribute('disabled', 'disabled')

lib/server.js

+2
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ export function createServer ({repo, connections = []}) {
8282
return fileHandler('client/components/add-channel-form.js', 'application/javascript')(req, res)
8383
if (url.pathname === '/components/video-quality-form.js')
8484
return fileHandler('client/components/video-quality-form.js', 'application/javascript')(req, res)
85+
if (url.pathname === '/components/manage-disk-space-form.js')
86+
return fileHandler('client/components/manage-disk-space-form.js', 'application/javascript')(req, res)
8587
if (url.pathname === '/components/search-videos.js')
8688
return fileHandler('client/components/search-videos.js', 'application/javascript')(req, res)
8789
if (url.pathname === '/components/channels-list.js')

0 commit comments

Comments
 (0)