diff --git a/packages/web-app-backups/l10n/.tx/config b/packages/web-app-backups/l10n/.tx/config new file mode 100644 index 00000000000..216f05a61e3 --- /dev/null +++ b/packages/web-app-backups/l10n/.tx/config @@ -0,0 +1,10 @@ +[main] +host = https://www.transifex.com + +[owncloud-web.text-editor] +file_filter = locale//LC_MESSAGES/app.po +minimum_perc = 0 +source_file = template.pot +source_lang = en +type = PO + diff --git a/packages/web-app-backups/l10n/translations.json b/packages/web-app-backups/l10n/translations.json new file mode 100644 index 00000000000..55d7afd216b --- /dev/null +++ b/packages/web-app-backups/l10n/translations.json @@ -0,0 +1 @@ +{"cs":{"Save":"Uložit"},"de":{"An error occurred":"Ein Fehler ist aufgetreten","Don't Save":"Verwerfen","Error when contacting the server":"Fehler beim Kontaktieren des Servers","extensionItem":"Erweiterungselement","JavaScript file":"JavaScript-Datei","JSON file":"JSON-Datei","Loading editor content":"Lade Editor Inhalt","Markdown file":"Markdown-Datei","msg":"Nachricht","PHP file":"PHP-Datei","Plain text file":"Text-Datei","Python file":"Python-Datei","Save":"Speichern","Text Editor":"Texteditor","This file was updated outside this window. Please refresh the page (all changes will be lost).":"Die Datei wurde außerhalb des Fensters aktualisiert. Bitte die Seite neu laden (alle Änderungen gehen verloren).","Unsaved changes":"Ungespeicherte Änderungen","XML file":"XML-Datei","YAML file":"YAML-Datei","You're not authorized to save this file":"Keine ausreichenden Berechtigungen für das Speichern der Datei ","Your changes were not saved. Do you want to save them?":"Ungesicherte Änderungen. Möchtest Du sie speichern? "},"es":{"Loading editor content":"Cargando el editor de contenido","msg":"msg","Save":"Guardar"},"fr":{"An error occurred":"Une erreur est survenue","Don't Save":"Ne pas enregistrer","Error when contacting the server":"Erreur de communication avec le serveur","JavaScript file":"Fichier JavaScript","JSON file":"Fichier JSON","Loading editor content":"Chargement du contenu de l'éditeur","Markdown file":"Fichier Markdown","msg":"msg","PHP file":"Fichier PHP","Plain text file":"Fichier texte brut","Python file":"Fichier Python","Save":"Sauvegarder","Text Editor":"Éditeur de texte","This file was updated outside this window. Please refresh the page (all changes will be lost).":"Ce fichier a été modifié en dehors de cette fenêtre. Veuillez rafraîchir la page (tous les changements seront perdus).","Unsaved changes":"Modifications non enregistrées","XML file":"Fichier XML","YAML file":"Fichier YAML","You're not authorized to save this file":"Vous n'êtes pas autorisé à enregistrer ce fichier","Your changes were not saved. Do you want to save them?":"Les modifications n'ont pas été enregistrées, souhaitez-vous les enregistrer ?"},"gl":{"msg":"msx","Save":"Gardar"},"it":{}} \ No newline at end of file diff --git a/packages/web-app-backups/package.json b/packages/web-app-backups/package.json new file mode 100644 index 00000000000..d5f4a1bdc78 --- /dev/null +++ b/packages/web-app-backups/package.json @@ -0,0 +1,19 @@ +{ + "name": "backups", + "version": "0.0.0", + "description": "CERNBox backups management", + "license": "AGPL-3.0", + "peerDependencies": { + "axios": "^0.27.2", + "fuse.js": "^6.5.3", + "lodash-es": "4.17.21", + "uuid": "^9.0.0", + "vue-concurrency": "4.0.0", + "vuex": "4.1.0", + "web-pkg": "npm:@ownclouders/web-pkg", + "web-client": "npm:@ownclouders/web-client", + "web-app-files": "0.0.0" + } +} + + diff --git a/packages/web-app-backups/src/components/BackupsSection.vue b/packages/web-app-backups/src/components/BackupsSection.vue new file mode 100644 index 00000000000..717d918a356 --- /dev/null +++ b/packages/web-app-backups/src/components/BackupsSection.vue @@ -0,0 +1,696 @@ + + + + + diff --git a/packages/web-app-backups/src/index.js b/packages/web-app-backups/src/index.js new file mode 100644 index 00000000000..b9675baabc6 --- /dev/null +++ b/packages/web-app-backups/src/index.js @@ -0,0 +1,105 @@ +import translations from '../l10n/translations' +import Backups from './views/Backups.vue' + + +const appInfo = { + name: 'Backups', + id: 'backups', + icon: 'arrow-go-back', + isFileEditor: false +} + +const routes = [ + { + path: '/', + redirect: () => { + return { name: 'backups-restore-jobs' } + } + }, + { + path: '/my-backups', + name: 'backups', + component: Backups, + meta: { + title: 'My backups' + }, + children: [ + { + path: ':item*', + name: 'backups-me', + component: Backups, + meta: { + patchCleanPath: true, + title: 'Backup' + } + } + ] + }, + { + path: '/project-backups', + name: 'backup-projects', + component: Backups, + meta: { + title: 'Projects backups' + }, + children: [ + { + path: ':item*', + name: 'backups-projects', + component: Backups, + meta: { + patchCleanPath: true, + title: 'Backup' + } + } + ] + }, + { + path: '/restore-jobs', + name: 'backups-restore-jobs', + component: Backups, + meta: { + title: 'Restore jobs' + } + } +] + +const navItems = [ + { + name: 'Restore jobs', + icon: 'server', + route: { + path: `/${appInfo.id}/restore-jobs?` + }, + enabled: () => { + return true + } + }, + { + name: 'My backups', + icon: 'arrow-go-back', + route: { + path: `/${appInfo.id}/my-backups?` + }, + enabled: () => { + return true + } + }, + { + name: 'Project backups', + icon: 'arrow-go-back', + route: { + path: `/${appInfo.id}/project-backups?` + }, + enabled: () => { + return true + } + } +] + +export default { + appInfo, + routes, + translations, + navItems +} diff --git a/packages/web-app-backups/src/views/Backups.vue b/packages/web-app-backups/src/views/Backups.vue new file mode 100644 index 00000000000..101f42660e6 --- /dev/null +++ b/packages/web-app-backups/src/views/Backups.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 07046b350a9..507c2e962a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -439,6 +439,28 @@ importers: web-client: link:../web-client web-pkg: link:../web-pkg + packages/web-app-backups: + specifiers: + axios: ^0.27.2 + fuse.js: ^6.5.3 + lodash-es: 4.17.21 + uuid: ^9.0.0 + vue-concurrency: 4.0.0 + vuex: 4.1.0 + web-app-files: 0.0.0 + web-client: npm:@ownclouders/web-client + web-pkg: npm:@ownclouders/web-pkg + dependencies: + axios: 0.27.2 + fuse.js: 6.5.3 + lodash-es: 4.17.21 + uuid: 9.0.0 + vue-concurrency: 4.0.0_vue@3.2.45 + vuex: 4.1.0_vue@3.2.45 + web-app-files: link:../web-app-files + web-client: link:../web-client + web-pkg: link:../web-pkg + packages/web-app-draw-io: specifiers: luxon: ^2.4.0 @@ -8443,7 +8465,7 @@ packages: minipass-pipeline: 1.2.4 mkdirp: 1.0.4 p-map: 4.0.0 - promise-inflight: 1.0.1_bluebird@3.7.2 + promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 8.0.1 tar: 6.1.13 @@ -18690,6 +18712,15 @@ packages: engines: {node: '>=0.4.0'} dev: true + /promise-inflight/1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + /promise-inflight/1.0.1_bluebird@3.7.2: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: