@@ -361,4 +362,19 @@ const openMenu = (e: MouseEvent) => {
elm?.classList.toggle('is-active')
}
+const useVersionUpdate = () => {
+ const newVersionIsAvailable = ref(false)
+ const nuxtApp = useNuxtApp()
+ nuxtApp.hooks.addHooks({
+ 'app:manifest:update': () => {
+ newVersionIsAvailable.value = true
+ }
+ });
+
+ return {
+ newVersionIsAvailable: readonly(newVersionIsAvailable),
+ }
+}
+const { newVersionIsAvailable } = useVersionUpdate()
+
diff --git a/ui/app/pages/tasks.vue b/ui/app/pages/tasks.vue
index 74b9e910..f851f59e 100644
--- a/ui/app/pages/tasks.vue
+++ b/ui/app/pages/tasks.vue
@@ -97,7 +97,7 @@
-
+
@@ -171,20 +171,6 @@
-
-
-
-
-
-
-
-
+
+
+ table_container = !s">
+
+
+ Run now
+
+
+
+
+
+
+ Archive all
+
+
+
+
+
+
+ Export Task
+
+
+
+
|
@@ -292,12 +303,21 @@
Delete
+
@@ -348,6 +368,7 @@ const selectedElms = ref>([])
const masterSelectAll = ref(false)
const massRun = ref(false)
const massDelete = ref(false)
+const table_container = ref(false)
const reset_dialog = () => ({
visible: false,
@@ -727,4 +748,32 @@ const get_tags = (name: string): Array => {
}
const remove_tags = (name: string): string => name.replace(/\[(.*?)\]/g, '').trim();
+
+const archiveItems = async (item: task_item) => {
+ dialog_confirm.value.visible = true
+ dialog_confirm.value.title = 'Archive All videos'
+ dialog_confirm.value.message = `Archive all items for '${item.name}' task? This will mark all items as downloaded and update the archive file.`
+ dialog_confirm.value.confirm = async () => await archiveAll(item)
+}
+
+const archiveAll = async (item: task_item) => {
+ try {
+ dialog_confirm.value.visible = false
+ item.in_progress = true
+ const response = await request(`/api/tasks/${item.id}/mark`, { method: 'POST' })
+ const data = await response.json()
+
+ if (data?.error) {
+ toast.error(data.error)
+ return
+ }
+
+ toast.success(data.message)
+ } catch (e: any) {
+ toast.error(`Failed to archive items. ${e.message || 'Unknown error.'}`)
+ return
+ } finally {
+ item.in_progress = false
+ }
+}
diff --git a/ui/nuxt.config.ts b/ui/nuxt.config.ts
index 1fa82efc..e3d37048 100644
--- a/ui/nuxt.config.ts
+++ b/ui/nuxt.config.ts
@@ -76,5 +76,8 @@ export default defineNuxtConfig({
}
},
telemetry: false,
- compatibilityDate: "2024-07-13",
+ compatibilityDate: "2025-08-03",
+ experimental: {
+ checkOutdatedBuildInterval: 1000 * 60 * 60,
+ }
})