templates/base.html.twig line 1

  1. <!DOCTYPE html>
    <html lang="{{ app.request.locale }}">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title>{{ 'appname'|trans }}
                -
                {% block title %}
                    {{ app.request.pathinfo }}
                {% endblock %}
            </title>
    
            <link rel="apple-touch-icon" sizes="57x57" href="/favicon/apple-icon-57x57.png">
            <link rel="apple-touch-icon" sizes="60x60" href="/favicon/apple-icon-60x60.png">
            <link rel="apple-touch-icon" sizes="72x72" href="/favicon/apple-icon-72x72.png">
            <link rel="apple-touch-icon" sizes="76x76" href="/favicon/apple-icon-76x76.png">
            <link rel="apple-touch-icon" sizes="114x114" href="/favicon/apple-icon-114x114.png">
            <link rel="apple-touch-icon" sizes="120x120" href="/favicon/apple-icon-120x120.png">
            <link rel="apple-touch-icon" sizes="144x144" href="/favicon/apple-icon-144x144.png">
            <link rel="apple-touch-icon" sizes="152x152" href="/favicon/apple-icon-152x152.png">
            <link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-icon-180x180.png">
            <link rel="icon" type="image/png" sizes="192x192"  href="/favicon/android-icon-192x192.png">
            <link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png">
            <link rel="icon" type="image/png" sizes="96x96" href="/favicon/favicon-96x96.png">
            <link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png">
            <link rel="manifest" href="/favicon/manifest.json">
            <meta name="msapplication-TileColor" content="#ffffff">
            <meta name="msapplication-TileImage" content="/favicon/ms-icon-144x144.png">
            <meta name="theme-color" content="#ffffff">
    
            {% block stylesheets %}
                {{ encore_entry_link_tags('app') }}
            {% endblock %}
        </head>
        <body>
            {% block nav %}
                {% include "components/menu.html.twig" %}
            {% endblock %}
    
            <div id="content">
                {% block body %}{% endblock %}
            </div>
    
            {% if is_granted('IS_IMPERSONATOR') %}
                <div id="masquerade-indicator">
                    <a href="{{ path('sysadmin_user_index', {'_switch_user': '_exit'}) }}">
                        {% include "icons/masquerade.svg.twig" %}
                    </a>
                </div>
            {% endif %}
    
            <div id="tooltip-wrapper"></div>
            <div id="modal-wrapper"></div>
            <div id="dialog-wrapper"></div>
            <div id="flash-message-wrapper"></div>
    
            {% set user_profilpicture_enum = enumobj('App\\Enum\\ImagePresetType', 'UserProfilpicture') %}
    
            <script id="jsglobalvarswindowinjection">
                window.parameters = {
                    date_format: '{{ date_format }}',
                    validation: {
                        constraints: {
                            email: "{{ validation.constraints.email }}",
                            phone: "{{ validation.constraints.phone }}",
                            integer: "{{ validation.constraints.integer }}",
                            float: "{{ validation.constraints.float }}",
                        },
                    }
                };
                window.lazyajaxtable = {
                    options: {
                        pagesize: parseInt('{{ pagination.pagesize }}'),
                        page: 1,
                        show_loading_in_milliseconds: 500,
                        global_search_selector: '[data-global-search]',
                        next_page_selector: '[data-next-page]',
                        prev_page_selector: '[data-prev-page]',
                        first_page_selector: '[data-first-page]',
                        last_page_selector: '[data-last-page]',
                        page_display_selector: '[data-page-display]',
                        date_format: '{{ date_format }}',
                    }
                };
                window.enum = {
                    responsepayloadtype: JSON.parse(`{{ enum_json('App\\Enum\\ResponsePayloadType') }}`),
                    salutationtype: JSON.parse(`{{ enum_json('App\\Enum\\SalutationType', ['Choice']) }}`),
                };
                window.dialog = {
                    default: {
                        yes: "{{ 'common.yes'|trans }}",
                        no: "{{ 'common.no'|trans }}",
                    }
                };
                window.translation = {
                    locale: "{{ app.request.locale }}",
                    common: {
                        noValue: "{{ 'common.noValue'|trans }}",
                        confirm: "{{ 'common.confirm'|trans }}",
                        close: "{{ 'common.close'|trans }}",
                        cancel: "{{ 'common.cancel'|trans }}",
                        emptyRow: "{{ 'common.emptyRow'|trans }}",
                        modal: {
                            confirmclose: {
                                title: "{{ 'common.modal.confirmclose.title'|trans }}",
                                message: "{{ 'common.modal.confirmclose.message'|trans }}",
                            },
                        },
                        alert: {
                            title: "{{ 'common.alert.title'|trans }}",
                        },
                        validation: {
                            default: {
                                message: "{{ 'common.validation.default.message'|trans }}",
                            }
                        },
                        prototype: {
                            remove: {
                                successmessage: "{{ 'common.prototype.remove.successmessage'|trans }}",
                                confirm: {
                                    title: "{{ 'common.prototype.remove.confirm.title'|trans }}",
                                    message: "{{ 'common.prototype.remove.confirm.message'|trans }}",
                                }
                            }
                        },
                        errormessages: {
                            unknown: "{{ 'common.errormessages.unknown'|trans }}",
                        },
                    },
                    multiaction: {
                        confirmtitle: "{{ 'common.multiaction.confirmtitle'|trans }}",
                        confirmmessage: "{{ 'common.multiaction.confirmmessage'|trans }}",
                    },
                    user: {
                        settings: {
                            profilpicture: "{{ 'user.settings.profilpicture'|trans }}",
                        }
                    },
                    notification_system: {
                        item: {
                            title: "{{ 'notification_system.item.title'|trans }}",
                            action: "{{ 'notification_system.item.action'|trans }}",
                        },
                    },
                };
                window.user = {
                    id: parseInt('{{app.user.id|default(-1)}}'),
                    settings: {
                        profilpicture: {
                            url: "{{ path('user_update_profilpicture', {id: '__replaceme__'}) }}",
                        }
                    },
                    profilpicture: {
                        size: {
                            width: {{ user_profilpicture_enum.size.width }},
                            height: {{ user_profilpicture_enum.size.height }},
                        },
                        fetchcurrent: {
                            url: "{{ path('user_fetch_current_profilpicture') }}",
                        }
                    }
                };
                window.fileupload = {
                    options: {
                        filecount: parseInt('{{fileupload.filecount}}'),
                        mimetype: '{{fileupload.mimetype}}',
                        endpoint: `{{ path('file_upload') }}`,
                        uploaderror: `{{ 'dropzone.messages.uploaderror'|trans }}`,
                        unsupported: `{{ 'dropzone.messages.unsupported'|trans({'%extensions%': fileupload.fileextension}) }}`,
                        maxreached: `{{ 'dropzone.messages.maxreached'|trans({'%count%': fileupload.filecount}) }}`,
                        fileextension: `{{fileupload.fileextension}}`
                    }
                };
                window.file = {
                    media: {
                        generatepreset: {
                            url: "{{ path('file_generate_media_preset', {id: '__replaceme__'}) }}",
                        },
                        path: `{{ media_path() }}`,
                        label: `{{ 'dropzone.messages.upload'|trans }}`
                    }
                };
                window.endpoint = {
                    user_fetch_current_profilpicture_simple: "{{ path('user_fetch_current_profilpicture_simple', {id: '__replaceme__'}) }}",
                    user_fetch_current_profilpicture_raw: "{{ path('user_fetch_current_profilpicture_raw', {id: '__replaceme__'}) }}",
                    user_fetch_current_profilpicture_urls: "{{ path('user_fetch_current_profilpicture_urls', {id: '__replaceme__'}) }}",
                    country_all: "{{ path('country_all') }}",
                };
                window.lazyload = {
                    url: "{{ path('lazyload_generic_entity') }}",
                };
                window.flatpickrconfig = {
                    default: {
                        time_24hr: ('{{flatpickr.time_24hr|bool_to_string}}' === 'true') ? true : false,
                        enableTime: ('{{ flatpickr.enable_time|bool_to_string }}' === 'true') ? true : false,
                        noCalendar: ('{{ flatpickr.no_calendar|bool_to_string }}' === 'true') ? true : false,
                        allowInput: ('{{ flatpickr.allow_input|bool_to_string }}' === 'true') ? true : false,
                        minuteIncrement: parseInt('{{flatpickr.minute_increment}}'),
                    },
                    format: {
                        date: '{{flatpickr.date_format}}',
                        datetime: '{{flatpickr.datetime_format}}',
                    },
                };
    
                document.addEventListener("DOMContentLoaded", () => {
                    document.getElementById('jsglobalvarswindowinjection').remove();
                });
            </script>
    
            {% block javascripts %}
                {{ encore_entry_script_tags('app') }}
            {% endblock %}
    
            <script src="/vendor/enlivenem/jquery-3.4.1.min.js"></script>
            <script src="/vendor/enlivenem/enlivenem.tools.js"></script>
            <script src="/vendor/enlivenem/enlivenem.min.js"></script>
        </body>
    </html>