diff --git a/atlas/tables.py b/atlas/tables.py index 01e06eab..c5ad1df0 100755 --- a/atlas/tables.py +++ b/atlas/tables.py @@ -160,7 +160,12 @@ class CaseTable(SelectionTable): return mark_safe(", ".join(links)) return "No collections" - def render_case_size(self, value): + def render_case_size(self, value, record): + if value is None: + try: + value = record.get_total_series_images_size() + except Exception: + value = None if value is None: return "-" return filesizeformat(value) diff --git a/atlas/templates/atlas/user_uploads.html b/atlas/templates/atlas/user_uploads.html index d8376e5a..ee98856b 100644 --- a/atlas/templates/atlas/user_uploads.html +++ b/atlas/templates/atlas/user_uploads.html @@ -174,7 +174,7 @@ class="btn btn-primary" >Import {% if case %}into case{% endif %} - +
@@ -250,7 +250,11 @@ @@ -468,6 +472,8 @@ if (caseSeriesForm) { caseSeriesForm.addEventListener('submit', async function (event) { event.preventDefault(); + const submitBtn = document.getElementById('case-series-submit-button'); + const submitLoading = document.getElementById('case-series-submit-loading'); const selectedSeries = getSelectedSeriesUids(); const selectedStudies = getSelectedStudyUids(); if (!selectedSeries.length || selectedStudies.size < 2) { @@ -484,6 +490,13 @@ } setImportButtonsDisabled(true); + if (submitBtn) { + submitBtn.classList.add('d-none'); + submitBtn.disabled = true; + } + if (submitLoading) { + submitLoading.classList.remove('d-none'); + } try { const response = await fetch("{% url 'atlas:uploads_import_case_series_htmx' %}", { method: 'POST', @@ -505,6 +518,13 @@ } catch (error) { appendImportStatus(`