2022-03-13 19:32:32 +01:00
|
|
|
{% extends 'bootstrap_4_layout.html.twig' %}
|
|
|
|
|
2022-04-12 22:41:27 +02:00
|
|
|
{% block grapesjs_widget %}
|
|
|
|
<div class="gjs"></div>
|
|
|
|
<div class="d-none">
|
|
|
|
<textarea {{ block('widget_attributes') }}>{{ value }}</textarea>
|
|
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
|
2022-03-13 19:32:32 +01:00
|
|
|
{% block file_widget -%}
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-12">
|
|
|
|
{% set value = form.vars.data %}
|
2022-05-17 00:06:24 +02:00
|
|
|
|
|
|
|
{% if form.parent.vars.file_type is defined %}
|
|
|
|
{% set fileType = form.parent.vars.file_type %}
|
|
|
|
{% else %}
|
|
|
|
{% set fileType = 'auto' %}
|
|
|
|
{% endif %}
|
2022-03-13 19:32:32 +01:00
|
|
|
|
|
|
|
{% if value %}
|
2023-03-02 19:10:08 +01:00
|
|
|
{% if fileType in ['auto', 'image'] and value.extension in ['jpeg', 'jpg', 'gif', 'png', 'svg', 'webp'] %}
|
2022-03-13 19:32:32 +01:00
|
|
|
<div class="card">
|
|
|
|
<div class="card-img-top bg-tiles text-center">
|
|
|
|
<a href="{{ asset(value.pathname) }}" target="_blank">
|
|
|
|
<img src="{{ asset(value.pathname) }}" class="img-fluid">
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
|
|
{{- parent() -}}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% else %}
|
|
|
|
<div class="card">
|
|
|
|
<div class="card-body">
|
|
|
|
{{- parent() -}}
|
|
|
|
|
|
|
|
<div class="p-2 text-center">
|
|
|
|
<a class="btn btn-primary" href="{{ asset(value.pathname) }}" target="_blank">
|
|
|
|
{{ 'Download'|trans }}
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
|
|
{{- parent() -}}
|
|
|
|
{% endif %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block collection_block_widget %}
|
|
|
|
<div data-collection="collection-{{ collection_name }}">
|
|
|
|
{% for item in form.value %}
|
|
|
|
<div data-collection-item="{{ loop.index }}">
|
|
|
|
{% for child in item %}
|
|
|
|
{{ form_row(child) }}
|
|
|
|
{% endfor %}
|
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
{% if allow_delete %}
|
|
|
|
<div class="text-right">
|
|
|
|
<span data-collection-delete-container class="btn btn-sm btn-danger">
|
|
|
|
<span data-collection-delete="{{ loop.index }}">
|
|
|
|
<span data-collection-delete="{{ loop.index }}" class="fa fa-trash"></span>
|
|
|
|
{{ label_delete|trans }}
|
|
|
|
</span>
|
2022-03-13 19:32:32 +01:00
|
|
|
</span>
|
2023-07-26 11:28:55 +02:00
|
|
|
</div>
|
|
|
|
{% endif %}
|
2022-03-13 19:32:32 +01:00
|
|
|
</div>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
{% if allow_add %}
|
|
|
|
<div data-collection-add="collection-{{ collection_name }}" class="collection-add">
|
|
|
|
<span class="btn btn-sm btn-primary" data-collection-add="collection-{{ collection_name }}">
|
|
|
|
<span data-collection-add="collection-{{ collection_name }}" class="fa fa-plus"></span>
|
|
|
|
{{ label_add|trans }}
|
|
|
|
</span>
|
|
|
|
</div>
|
2022-03-13 19:32:32 +01:00
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
<template type="text/template" id="collection-{{ collection_name }}">
|
|
|
|
<div data-collection-item="__name__">
|
|
|
|
{{ form_rest(form.value.vars.prototype) }}
|
2022-03-13 19:32:32 +01:00
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
{% if allow_delete %}
|
|
|
|
<div class="text-right">
|
|
|
|
<span data-collection-delete-container class="btn btn-sm btn-danger">
|
|
|
|
{{ label_delete|trans }}
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
2022-03-13 19:32:32 +01:00
|
|
|
</div>
|
2023-07-26 11:28:55 +02:00
|
|
|
</template>
|
|
|
|
{% endif %}
|
2022-03-13 19:32:32 +01:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block murph_collection_widget %}
|
2022-04-15 15:44:50 +02:00
|
|
|
{% set attrs = attr|merge({class: 'mb-1 ' ~ (attr.class ?? '')}) %}
|
|
|
|
|
2022-04-15 15:35:23 +02:00
|
|
|
<div data-collection="collection-{{ collection_name }}" {% for attr, value in row_attr %}{{ attr }}="{{ value }}"{% endfor %}>
|
2022-03-13 19:32:32 +01:00
|
|
|
{% for item in form %}
|
2022-04-15 15:35:23 +02:00
|
|
|
<div data-collection-item="{{ loop.index }}" {% for attr, value in attrs %}{{ attr }}="{{ value }}"{% endfor %}>
|
2022-03-13 19:32:32 +01:00
|
|
|
{% for child in item %}
|
|
|
|
{{ form_row(child) }}
|
|
|
|
{% endfor %}
|
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
{% if allow_delete %}
|
|
|
|
<div class="text-right">
|
|
|
|
<span data-collection-delete-container class="btn btn-sm btn-danger">
|
|
|
|
<span data-collection-delete="{{ loop.index }}">
|
|
|
|
<span data-collection-delete="{{ loop.index }}" class="fa fa-trash"></span>
|
|
|
|
{{ label_delete|trans }}
|
|
|
|
</span>
|
2022-03-13 19:32:32 +01:00
|
|
|
</span>
|
2023-07-26 11:28:55 +02:00
|
|
|
</div>
|
|
|
|
{% endif %}
|
2022-03-13 19:32:32 +01:00
|
|
|
</div>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
{% if allow_add %}
|
|
|
|
<div data-collection-add="collection-{{ collection_name }}" class="collection-add">
|
|
|
|
<span class="btn btn-sm btn-primary" data-collection-add="collection-{{ collection_name }}">
|
|
|
|
<span data-collection-add="collection-{{ collection_name }}" class="fa fa-plus"></span>
|
|
|
|
{{ label_add|trans }}
|
|
|
|
</span>
|
|
|
|
</div>
|
2022-03-13 19:32:32 +01:00
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
<template type="text/template" id="collection-{{ collection_name }}">
|
|
|
|
<div data-collection-item="__name__" {% for attr, value in attrs %}{{ attr }}="{{ value }}"{% endfor %}>
|
|
|
|
{{ form_rest(form.vars.prototype) }}
|
2022-03-13 19:32:32 +01:00
|
|
|
|
2023-07-26 11:28:55 +02:00
|
|
|
{% if allow_delete %}
|
|
|
|
<div class="text-right">
|
|
|
|
<span data-collection-delete-container class="btn btn-sm btn-danger">
|
|
|
|
{{ label_delete|trans }}
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
2022-03-13 19:32:32 +01:00
|
|
|
</div>
|
2023-07-26 11:28:55 +02:00
|
|
|
</template>
|
|
|
|
{% endif %}
|
2022-03-13 19:32:32 +01:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block file_picker_widget %}
|
|
|
|
<div class="form-filepicker">
|
|
|
|
{% set value = form.vars.data %}
|
|
|
|
|
|
|
|
<div class="card">
|
|
|
|
{% if value %}
|
2023-03-02 19:10:08 +01:00
|
|
|
{% if value.extension is defined and value.extension in ['jpeg', 'jpg', 'gif', 'png', 'svg', 'webp'] %}
|
2022-03-13 19:32:32 +01:00
|
|
|
<div class="card-img-top bg-tiles text-center">
|
|
|
|
<a href="{{ asset(value.pathname) }}" target="_blank">
|
|
|
|
<img src="{{ asset(value.pathname) }}" class="img-fluid">
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
{% else %}
|
2023-03-02 19:10:08 +01:00
|
|
|
{% for extension in ['.jpeg', '.jpg', '.gif', '.png', '.svg', '.webp'] %}
|
2022-03-13 19:32:32 +01:00
|
|
|
{% if value ends with extension %}
|
|
|
|
<div class="card-img-top bg-tiles text-center">
|
|
|
|
<a href="{{ asset(value) }}" target="_blank">
|
|
|
|
<img src="{{ asset(value) }}" class="img-fluid">
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<div class="card-body">
|
|
|
|
<div class="d-none">
|
|
|
|
{{- form_widget(form) -}}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="p-2 text-center">
|
|
|
|
<span class="form-filepicker-container">
|
|
|
|
<div class="input-group mb-3">
|
|
|
|
<input class="form-control form-filepicker-picker" data-target="{{ id }}" readonly type="text" value="{{ value }}">
|
|
|
|
<div class="input-group-append form-filepicker-reset" data-target="{{ id }}">
|
|
|
|
<div class="input-group-text btn" data-target="{{ id }}">
|
|
|
|
<span class="fa fa-backspace" data-target="{{ id }}"></span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<span class="btn btn-sm btn-primary form-filepicker-picker mb-1" data-target="{{ id }}">
|
|
|
|
{{ 'Choose'|trans }}
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
|
|
|
|
{% if value %}
|
|
|
|
{% if value.pathname is defined %}
|
|
|
|
<a class="btn btn-sm btn-success ml-1 mb-1" href="{{ asset(value.pathname) }}" target="_blank">
|
|
|
|
{{ 'Download'|trans }}
|
|
|
|
</a>
|
|
|
|
{% else %}
|
|
|
|
<a class="btn btn-sm btn-success ml-1 mb-1" href="{{ asset(value) }}" target="_blank">
|
|
|
|
{{ 'Download'|trans }}
|
|
|
|
</a>
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block form_row -%}
|
|
|
|
{%- set widget_attr = {} -%}
|
|
|
|
|
|
|
|
{%- if help is not empty -%}
|
|
|
|
{%- set widget_attr = {attr: {'aria-describedby': id ~ "_help"}} -%}
|
|
|
|
{%- endif -%}
|
|
|
|
|
|
|
|
{%- if compound is defined and compound -%}
|
|
|
|
{%- set element = 'fieldset' -%}
|
|
|
|
{% else %}
|
|
|
|
{%- set element = 'div' -%}
|
|
|
|
{%- endif -%}
|
|
|
|
|
|
|
|
{% if element == 'fieldset' and not ('col-' in form.vars.row_attr.class|default('')) %}
|
|
|
|
{% set class = row_attr.class|default('') ~ ' col-md-12 form-group' %}
|
|
|
|
{% else %}
|
|
|
|
{% set class = row_attr.class|default('') ~ ' form-group' %}
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<{{ element }}{% with {attr: row_attr|merge({class: class|trim})} %}{{ block('attributes') }}{% endwith %}>
|
|
|
|
{{- form_label(form) -}}
|
|
|
|
{{- form_widget(form) -}}
|
|
|
|
{{- form_help(form) -}}
|
|
|
|
</{{ element|default('div') }}>
|
|
|
|
{%- endblock form_row %}
|