From 129cd5e09c8bb38aa551ea1a8b6bf707d0066e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= Date: Wed, 8 Nov 2023 17:44:26 +0100 Subject: [PATCH] feat(files): show quota warning on page load or if storage becomes full MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ --- apps/files/src/components/NavigationQuota.vue | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/apps/files/src/components/NavigationQuota.vue b/apps/files/src/components/NavigationQuota.vue index 25bdcde1b45..30c6a65e6af 100644 --- a/apps/files/src/components/NavigationQuota.vue +++ b/apps/files/src/components/NavigationQuota.vue @@ -27,6 +27,7 @@ import { showError } from '@nextcloud/dialogs' import { subscribe } from '@nextcloud/event-bus' import { translate } from '@nextcloud/l10n' import axios from '@nextcloud/axios' + import ChartPie from 'vue-material-design-icons/ChartPie.vue' import NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js' import NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js' @@ -86,6 +87,13 @@ export default { subscribe('files:node:updated', this.throttleUpdateStorageStats) }, + mounted() { + // Warn the user if the available storage is 0 on page load + if (this.storageStats?.free === 0) { + this.showStorageFullWarning() + } + }, + methods: { // From user input debounceUpdateStorageStats: debounce(200, function(event) { @@ -113,6 +121,12 @@ export default { if (!response?.data?.data) { throw new Error('Invalid storage stats') } + + // Warn the user if the available storage changed from > 0 to 0 + if (this.storageStats?.free !== 0 && response.data.data?.free === 0) { + this.showStorageFullWarning() + } + this.storageStats = response.data.data } catch (error) { logger.error('Could not refresh storage stats', { error }) @@ -125,6 +139,10 @@ export default { } }, + showStorageFullWarning() { + showError(this.t('files', 'Your storage is full, files can not be updated or synced anymore!')) + }, + t: translate, }, }