diff --git a/themes/grav/templates/forms/fields/file/file.html.twig b/themes/grav/templates/forms/fields/file/file.html.twig index 1d58bf1b..f16e1a9e 100644 --- a/themes/grav/templates/forms/fields/file/file.html.twig +++ b/themes/grav/templates/forms/fields/file/file.html.twig @@ -35,10 +35,11 @@ {% set blueprint_name = type ~ '/' ~ blueprint_name %} {% endif %} {% set blueprint = base64_encode(blueprint_name) %} - {% set real_path = value.thumb ?? global.admin.getPagePathFromToken(path) %} - {% set remove = global.file_url_remove ? global.file_url_remove : (global.base_url_relative ~ '/media.json') %} - {% set remove = uri.addNonce( - remove ~ + {% set real_path = value.thumb ?? global.context.media[path].relativePath ?? global.form.getPagePathFromToken(path) ?? global.admin.getPagePathFromToken(path) %} + + {% set remove = remove ?: uri.addNonce( + global.file_url_remove ~ + '/media.json' ~ '/route' ~ config.system.param_sep ~ base64_encode(global.base_path ~ '/' ~ real_path) ~ '/task' ~ config.system.param_sep ~ 'removeFileFromBlueprint' ~ '/proute' ~ config.system.param_sep ~ base64_encode(route) ~ @@ -59,14 +60,36 @@ {% set limit = not field.multiple ? 1 : files.limit %} {% block input %} - {% set upload_limit = config.system.media.upload_limit / 1024 / 1024 %} + {% set form_max_filesize = form_max_filesize ?: config.system.media.upload_limit / 1024 / 1024 %} {% set page_can_upload = exists or (type == 'page' and not exists and not (field.destination starts with '@self' or field.destination starts with 'self@')) %} - {% if type is not defined or page_can_upload %} + {% if form or (type is not defined or page_can_upload) %} - {% set settings = {name: field.name, paramName: (scope ~ field.name)|fieldName ~ (files.multiple ? '[]' : ''), limit: limit, filesize: upload_limit, accept: files.accept, resolution: files.resolution, resizeWidth: files.resizeWidth, resizeHeight: files.resizeHeight, resizeQuality: files.resizeQuality } %} + {% block prepend %}{% endblock %} + {% set settings = {name: field.name, paramName: (scope ~ field.name)|fieldName ~ (files.multiple ? '[]' : ''), limit: limit, filesize: form_max_filesize, accept: files.accept, resolution: files.resolution, resizeWidth: files.resizeWidth, resizeHeight: files.resizeHeight, resizeQuality: files.resizeQuality } %} + {% set dropzoneSettings = field.dropzone %} + {% if form.getMediaTaskRoute() %} + {% set file_url_add = base_url_relative ~ form.getMediaTaskRoute({}, 'json') %} + {% set file_task_add = {task: 'media.upload', name: field.name, '__form-name__': form.name, '__unique_form_id__': form.uniqueid} %} -
- + + {% block file_extras %}{% endblock %} + + /> - {% for path, file in value %} - {{ macro.preview(path, file, _context) }} - {% endfor %} - {% include 'forms/fields/hidden/hidden.html.twig' with {field: {name: '_json.' ~ field.name}, value:value|raw|json_encode} %} + {% for path, file in value %} + {{ macro.preview(path, file, _context) }} + {% endfor %} + {% include 'forms/fields/hidden/hidden.html.twig' with {field: {name: '_json.' ~ field.name}, value: value|json_encode} %}
{% else %}