diff --git a/templates/semantic-ui/invenio_app_rdm/records/macros/files.html b/templates/semantic-ui/invenio_app_rdm/records/macros/files.html new file mode 100644 index 00000000..21a809d1 --- /dev/null +++ b/templates/semantic-ui/invenio_app_rdm/records/macros/files.html @@ -0,0 +1,215 @@ +{# + Copyright (C) 2020-2024 CERN. + Copyright (C) 2023 Northwestern University. + Copyright (C) 2021 Graz University of Technology. + Copyright (C) 2021 TU Wien. + Copyright (C) New York University. + + Invenio RDM Records is free software; you can redistribute it and/or modify + it under the terms of the MIT License; see LICENSE file for more details. +#} + + +{%- macro preview_file(preview_endpoint, pid_value, filename, is_preview, include_deleted, id='preview-iframe' ) %} + {%- set include_deleted_value = 0 -%} + {% if include_deleted %} + {%- set include_deleted_value = 1 -%} + {% endif %} + {% if is_preview %} + {%- set preview_url = url_for(preview_endpoint, pid_value=pid_value, filename=filename, preview=1, include_deleted=include_deleted_value) -%} + {% else %} + {%- set preview_url = url_for(preview_endpoint, pid_value=pid_value, filename=filename, include_deleted=include_deleted_value) -%} + {% endif %} + +{%- endmacro %} + + +{% macro preview_file_box(file, pid, is_preview, record, include_deleted) %} + {%- set is_remote_file = file.transfer.type == transfer_types.REMOTE %} + {%- set human_readable_file_name = file.metadata.description or file.key %} + +
+

+
+ {{ human_readable_file_name }} + +
+

+
+ {%- if is_remote_file %} +
+
+ {{ _('This file cannot be previewed') }} +
+
    +
  • {{ _('This file is an external reference and not stored directly in this repository. +To access its content, please download it and open it locally.') }} +
  • +
+
+ {%- else %} +
+ {{ preview_file('invenio_app_rdm_records.record_file_preview', pid_value=pid, filename=file.key, is_preview=is_preview, include_deleted=include_deleted) }} +
+ {%- endif %} +
+
+{%- endmacro %} + + +{%- macro file_list( + files, pid, is_preview, include_deleted, + record=None, + with_preview=true, + download_endpoint='invenio_app_rdm_records.record_file_download', + preview_endpoint='invenio_app_rdm_records.record_file_preview', + is_media=false, + permissions=None +) %} + + + + + + + + + + {%- set binary_sizes = not config.APP_RDM_DISPLAY_DECIMAL_FILE_SIZES %} + {%- set include_deleted_value = 0 -%} + {% if include_deleted %} + {%- set include_deleted_value = 1 -%} + {% endif %} + {% for file in files %} + {% if not file.access.hidden %} + {%- set is_remote_file = file.transfer.type == transfer_types.REMOTE %} + {%- set human_readable_file_name = file.metadata.description or file.key %} + + {% if is_preview %} + {%- set file_url_download = url_for(download_endpoint, pid_value=pid, filename=file.key, download=1, preview=1) %} + {%- set file_url_preview = url_for(preview_endpoint, pid_value=pid, filename=file.key, preview=1, include_deleted=include_deleted_value) %} + {% else %} + {%- set file_url_download = url_for(download_endpoint, pid_value=pid, filename=file.key, download=1) %} + {%- set file_url_preview = url_for(preview_endpoint, pid_value=pid, filename=file.key, include_deleted=include_deleted_value) %} + {% endif %} + + {%- set file_type = file.key.split('.')[-1] %} + + + + + + {% endif %} + {% endfor %} + +
{{_('Name')}}{{_('Size')}} + {%- if config.RDM_ARCHIVE_DOWNLOAD_ENABLED %} + {% set archive_download_url = record.links.archive_media if is_media else record.links.archive %} + + {{_("Download all")}} + + {%- endif %} +
+
+ {{ human_readable_file_name }} +
+ {%- if not is_remote_file %} + {{ file.checksum or _("Checksum not yet calculated.") }} +
+ +
+
+ {%- endif %} +
{%- if is_remote_file %}{{_("N/A (external)")}}{%- else -%}{{ file.size|filesizeformat(binary=binary_sizes) }}{%- endif %} + + {% if with_preview and file_type|lower is previewable and not is_remote_file %} + + {{_("Preview")}} + + {% endif %} + + {{_('Download')}} + + +
+{%- endmacro %} + + +{% macro file_list_box(files, pid, is_preview, include_deleted, record, permissions) %} + {%- set binary_sizes = not config.APP_RDM_DISPLAY_DECIMAL_FILE_SIZES %} +
+

+
+ {{ _("Files") }} + {% if files %} ({{files|map(attribute='size', default=0)|sum()|filesizeformat(binary=binary_sizes)}}){% endif %} + +
+

+ +
+ {% if record.access.files == 'restricted' %} +
+ +

{{ record.ui.access_status.title_l10n }}

+

{{ record.ui.access_status.description_l10n }}

+ {% if record.access.embargo.reason %} +

{{_("Reason")}}: {{record.access.embargo.reason}}

+ {% endif%} +
+ {% endif %} +
+ {{ file_list(files, pid, is_preview, include_deleted, record=record,download_endpoint="invenio_app_rdm_records.record_file_download", permissions=permissions) }} +
+
+
+{%- endmacro %} + +{% macro media_file_list_box(files, pid, is_preview, include_deleted, record, permissions) %} + {%- set binary_sizes = not config.APP_RDM_DISPLAY_DECIMAL_FILE_SIZES %} +
+

+
+ {{ _("System files") }} + {% if files %} ({{files|sum(attribute='size')|filesizeformat(binary=binary_sizes)}}){% endif %} + +
+

+ +
+ {% if record.access.record == 'restricted'%} +
+ +

{{ record.ui.access_status.title_l10n }}

+ +

{{ record.ui.access_status.description_l10n }}

+ {% if record.access.embargo.reason %} +

{{_("Reason")}}: {{record.access.embargo.reason}}

+ {% endif%} +
+ {% endif %} +
+ {{ file_list(files, pid, is_preview, include_deleted, record=record, with_preview=false, download_endpoint="invenio_app_rdm_records.record_media_file_download", is_media=true, permissions=permissions) }} +
+
+
+{%- endmacro %}