From 021af590e6b2011dcf8cb62c5a0095846a873726 Mon Sep 17 00:00:00 2001 From: Maneesh Shukla Date: Thu, 12 Jun 2025 18:02:06 +0530 Subject: [PATCH] upload-stat: Redesign upload space stats banners. Fixes: #34252. --- web/src/attachments_ui.ts | 40 +++++++++++++++---- .../settings/attachments_settings.hbs | 2 +- web/templates/settings/upload_space_stats.hbs | 11 ----- 3 files changed, 33 insertions(+), 20 deletions(-) delete mode 100644 web/templates/settings/upload_space_stats.hbs diff --git a/web/src/attachments_ui.ts b/web/src/attachments_ui.ts index 5494510c2a..d0a906af05 100644 --- a/web/src/attachments_ui.ts +++ b/web/src/attachments_ui.ts @@ -3,10 +3,11 @@ import type * as z from "zod/mini"; import render_confirm_delete_attachment from "../templates/confirm_dialog/confirm_delete_attachment.hbs"; import render_confirm_delete_detached_attachments_modal from "../templates/confirm_dialog/confirm_delete_detached_attachments.hbs"; -import render_settings_upload_space_stats from "../templates/settings/upload_space_stats.hbs"; import render_uploaded_files_list from "../templates/settings/uploaded_files_list.hbs"; import {attachment_api_response_schema} from "./attachments.ts"; +import * as banners from "./banners.ts"; +import type {ActionButton} from "./buttons.ts"; import * as channel from "./channel.ts"; import * as dialog_widget from "./dialog_widget.ts"; import {$t, $t_html} from "./i18n.ts"; @@ -73,22 +74,45 @@ function set_upload_space_stats(): void { if (current_user.is_guest) { return; } - const args = { - show_upgrade_message: - realm.realm_plan_type === settings_config.realm_plan_types.limited.code, - upload_quota_string: $t( + + const show_upgrade_message = + realm.realm_plan_type === settings_config.realm_plan_types.limited.code && + current_user.is_admin; + const $container = $("#attachment-stats-holder"); + + if (!$container) { + return; + } + + let buttons: ActionButton[] = []; + if (show_upgrade_message) { + buttons = [ + ...buttons, + { + label: $t({defaultMessage: "Upgrade"}), + custom_classes: "request-upgrade", + attention: "quiet", + }, + ]; + } + + const UPLOAD_STATS_BANNER: banners.Banner = { + intent: show_upgrade_message ? "info" : "neutral", + label: $t( { defaultMessage: - "Your organization is using {percent_used}% of your {upload_quota} file storage quota.", + "Your organization is using {percent_used}% of your {upload_quota} file storage quota. Upgrade for more space.", }, { percent_used: percentage_used_space(upload_space_used), upload_quota: bytes_to_size(mib_to_bytes(realm.realm_upload_quota_mib), true), }, ), + buttons, + close_button: false, }; - const rendered_upload_stats_html = render_settings_upload_space_stats(args); - $("#attachment-stats-holder").html(rendered_upload_stats_html); + + banners.open(UPLOAD_STATS_BANNER, $container); } function delete_attachments(attachment: string, file_name: string): void { diff --git a/web/templates/settings/attachments_settings.hbs b/web/templates/settings/attachments_settings.hbs index 53b167bc48..7f264ef39b 100644 --- a/web/templates/settings/attachments_settings.hbs +++ b/web/templates/settings/attachments_settings.hbs @@ -1,5 +1,5 @@
-
+

{{t "Your uploads"}}

{{> filter_text_input id="upload_file_search" placeholder=(t 'Filter') aria_label=(t 'Filter uploads')}} diff --git a/web/templates/settings/upload_space_stats.hbs b/web/templates/settings/upload_space_stats.hbs deleted file mode 100644 index 9788c5d26c..0000000000 --- a/web/templates/settings/upload_space_stats.hbs +++ /dev/null @@ -1,11 +0,0 @@ - - {{#if show_upgrade_message}} - - {{upload_quota_string}} {{t "Upgrade for more space." }} - - {{else}} -
- {{upload_quota_string}} -
- {{/if}} -