templates/base.html.twig line 182

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <title>{% block title %}{% endblock %}</title>
  6.         <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
  7.         {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
  8.         {% block stylesheets %}
  9.             {{ encore_entry_link_tags('app') }}
  10.         {% endblock %}
  11.         {% block javascripts %}
  12.             {{ encore_entry_script_tags('app') }}
  13.         {% endblock %}
  14.         <link href="/js/vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
  15.         <link
  16.             href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
  17.             rel="stylesheet">
  18.         <link href="/css/attributes.css" rel="stylesheet">
  19.         <link href="/css/styles.css" rel="stylesheet">
  20.         <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
  21.         <link href="/js/vendor/toastify/toastify.min.css" rel="stylesheet">
  22.         <!-- Custom styles for this template-->
  23.         <link href="/css/sb-admin-2.css" rel="stylesheet">
  24.         {# <link href="/css/sb-admin-2.min.css" rel="stylesheet"> #}
  25.         <link href="/js/vendor/datatables/dataTables.bootstrap4.min.css" rel="stylesheet">
  26.         <script src="/js/vendor/jquery/jquery.min.js"></script>
  27. {#        <script src="/js/vendor/jquery-3.4.1.min.js"></script>#}
  28.         <script src="/js/vendor/toastify/toastify-js.js"></script>
  29.         <link href="/css/overrides.css" rel="stylesheet">
  30.         <script src="/js/library/Utils.js"></script>
  31.         <script>
  32.             {% include '/js/library/StringUtils.js' %}
  33.         </script>
  34.         <script src="/js/library/event_dispatcher/event_dispatcher.js"></script>
  35.         <script>
  36.             {% include '/js/library/gallery_carousel/gallery_carousel.js.twig' %}
  37.         </script>
  38.         <script>
  39.             {% include '/js/library/month_range_slider/month_range_slider.js.twig' %}
  40.         </script>
  41.         <script src="/js/library/url_builder/url_builder.js"></script>
  42.         <script>
  43.             {% include '/js/library/dropdown/dropdown.js.twig' %}
  44.         </script>
  45.         <script>
  46.             {% include '/js/library/dropdown_with_textarea/dropdown_with_textarea.js.twig' %}
  47.         </script>
  48.         <script>
  49.             {% include '/js/library/dropdown_with_input_filter/dropdown_with_input_filter.js.twig' %}
  50.         </script>
  51.         <script>
  52.             {% include '/js/library/month_range_slider_dropdown/month_range_slider_dropdown.js.twig' %}
  53.         </script>
  54.         <script src="/js/library/dropdown/file_dropdown.js"></script>
  55.         <script src="/js/library/Dom.js"></script>
  56.         <script src="/js/vendor/moment.js"></script>
  57.         <script src="/js/vendor/daterangepicker.js"></script>
  58.         <script src="/js/vendor/datepicker.js"></script>
  59.         <link href="/css/daterangepicker.css" rel="stylesheet">
  60.         <script>
  61.             {% include '/js/library/daterangepicker-custom/daterangepicker-custom.js.twig' %}
  62.         </script>
  63.         <script>
  64.             {% include '/js/library/date_range_picker_with_button/date_range_picker_with_button.js.twig' %}
  65.         </script>
  66.         <script>
  67.             {% include '/js/library/DomDispatcher/DomDispatcher.js.twig' %}
  68.         </script>
  69.         <script>
  70.             {% include '/js/library/init_bearer/init_bearer.js.twig' %}
  71.             const initBearer = new InitBearer();
  72.             const INIT_BEARERS = {
  73.                 GLOBAL_DOM_DISPATCHER: "initBearer.globalDomDispatcher",
  74.                 GLOBAL_USER_SETTINGS_MODIFIER: "initBearer.globalUserSettingsModifier",
  75.                 GLOBAL_USER_SETTINGS_FORM_SAVER: "initBearer.globalUserSettingsFormSaver",
  76.                 GLOBAL_CALENDAR_EVENTS_SELECTOR_COMPONENT: "initBearer.globalCalendarEventsSelectorComponent",
  77.             };
  78.         </script>
  79.         <script>
  80.             {% include '/js/library/entity_collection/entity_collection.js.twig' %}
  81.         </script>
  82.         <script src="/js/vendor/jquery-easing/jquery.easing.min.js"></script>
  83.         {# <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> #}
  84.         {# <script src="/js/vendor/bootstrap/js/5.3.0/bootstrap.bundle.min.js"></script> #}
  85.         <script src="/js/vendor/bootstrap/js/4.6.0/bootstrap.bundle.min.js"></script>
  86.         <script src="/js/vendor/datatables/jquery.dataTables.min.js"></script>
  87.         <script src="/js/vendor/datatables/dataTables.bootstrap4.min.js"></script>
  88.         <script src="/js/library/data_table/data_table_extensions.js"></script>
  89.         <script>
  90.             {% include '/js/library/data_table/custom_data_table.js' %}
  91.         </script>
  92.         <script>
  93.             {% include '/js/library/symfony_form_data_builder/symfony_form_data_builder.js.twig' %}
  94.         </script>
  95.         <script>
  96.             {% include '/js/library/json_object_to_components_data_binder/json_object_to_components_data_binder.js.twig' %}
  97.         </script>
  98.         <script>
  99.             {% include '/js/library/json_form_saver/json_form_saver.js.twig' %}
  100.         </script>
  101.         <style>
  102.             .svg-ship {
  103.                 max-width: 70px;
  104.                 fill: white;
  105.                 /* transform: scaleX(-1); */
  106.                 height: 50px;
  107.             }
  108.         </style>
  109.     </head>
  110.     {% set bodyClass = block('bodyClass') is defined ? block('bodyClass') : null %}
  111.     {% set bodyAttrs = block('bodyAttrs') is defined ? block('bodyAttrs') : null %}
  112.     <body{{ bodyClass ? (' class="' ~ bodyClass ~ '"')|raw }}{{ bodyAttrs ? (' ' ~ bodyAttrs)|raw }}>
  113.         <!-- Logout Modal-->
  114.         <div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
  115.             aria-hidden="true">
  116.             <div class="modal-dialog" role="document">
  117.                 <div class="modal-content">
  118.                     <div class="modal-header">
  119.                         <h5 class="modal-title" id="exampleModalLabel">Выйти сейчас?</h5>
  120.                         <button class="close" type="button" data-dismiss="modal" aria-label="Close">
  121.                             <span aria-hidden="true">×</span>
  122.                         </button>
  123.                     </div>
  124.                     <div class="modal-body">Вы выйдете автоматически через 3 часа.</div>
  125.                     <div class="modal-footer">
  126.                         <button class="btn btn-secondary" type="button" data-dismiss="modal">Отмена</button>
  127.                         <a class="btn btn-primary" href="{{ path('logout') }}">Выйти</a>
  128.                     </div>
  129.                 </div>
  130.             </div>
  131.         </div>
  132.         <!-- Window Modal-->
  133.         <div class="modal fade" id="windowModal" tabindex="-1" role="dialog" aria-labelledby="windowModalLabel"
  134.             aria-hidden="true">
  135.             <div class="modal-dialog" role="document"
  136.                  style="max-width: 700px !important;"
  137.             >
  138.                 <div class="modal-content">
  139.                     <div class="modal-header">
  140.                         <h5 class="modal-title" id="windowModalLabel">Question?</h5>
  141.                         <button class="close" type="button" data-dismiss="modal" aria-label="Close">
  142.                             <span aria-hidden="true">×</span>
  143.                         </button>
  144.                     </div>
  145.                     <div class="modal-body">Modal body</div>
  146.                     <div class="modal-footer">
  147.                         <button class="btn btn-primary">Yes</button>
  148.                         <button class="btn btn-secondary" type="button" data-dismiss="modal">No</button>
  149.                     </div>
  150.                 </div>
  151.             </div>
  152.         </div>
  153.         {% if getUser() %}
  154.             {% set reviewerSettings = reviewerSettingsService.getCurrentReviewerSettings() %}
  155.             {% set reviewerSettingsForm = reviewerSettingsService.getCurrentReviewerSettingsForm().createView() %}
  156.             {% set reviewerSettingsJsonStr = reviewerSettingsService.getCurrentReviewerSettingsJsonStr() %}
  157.             {% set reviewerTipSettings = tipSettingsService.getCurrentReviewerTipSettings() %}
  158.             {% set reviewerTipSettingsForm = tipSettingsService.getCurrentReviewerSettingsForm().createView() %}
  159.             {% set reviewerTipSettingsJsonStr = tipSettingsService.getCurrentReviewerTipSettingsStr() %}
  160.             {% set userTipSettings = tipSettingsService.getCurrentUserTipSettings() %}
  161.             {% set userTipSettingsForm = tipSettingsService.getCurrentUserTipSettingsForm().createView() %}
  162.             {% set userTipSettingsJsonStr = tipSettingsService.getCurrentUserTipSettingsStr() %}
  163.             {% set userSettings = userSettingsService.getCurrentUserSettings() %}
  164.             {% set userSettingsForm = userSettingsService.getCurrentUserSettingsForm().createView() %}
  165.             {% set userSettingsJsonStr = userSettingsService.getCurrentUserSettingsJsonStr() %}
  166.         {% endif %}
  167.         {% block body %}{% endblock %}
  168.         {% if userSettings is defined and userSettings.id %}
  169.             <script>
  170.                 /** @type {JsonObjectToComponentsDataBinder|null} */
  171.                 let userSettingsModifier = null;
  172.                 let userSettings = null;
  173.                 /** @type {JsonFormSaver|null} */
  174.                 let userSettingsFormSaver = null;
  175.                 initBearer.wait([INIT_BEARERS.GLOBAL_DOM_DISPATCHER]).then(() => {
  176.                     /** @type {DomDispatcher} */
  177.                     const domDispatcher = initBearer.get(INIT_BEARERS.GLOBAL_DOM_DISPATCHER);
  178.                     userSettings = {{ userSettingsJsonStr|raw }};
  179.                     console.log(userSettings)
  180.                     let userSettingsFormDataBuilder = new SymfonyFormDataBuilder("user_settings");
  181.                     userSettingsModifier = new JsonObjectToComponentsDataBinder(userSettings, {
  182.                         domDispatcherListenGroups: ["userSettingsModifier"],
  183.                         domDispatcher: domDispatcher
  184.                     });
  185.                     initBearer.set(INIT_BEARERS.GLOBAL_USER_SETTINGS_MODIFIER, userSettingsModifier);
  186.                     let userSettingsSaverOptions = {
  187.                         saveOnChanges: true,
  188.                         jsonObject: userSettings,
  189.                         componentsDataBinder: userSettingsModifier,
  190.                         symfonyFormDataBuilder: userSettingsFormDataBuilder,
  191.                         url: "{{ path('user_settings_edit_ajax', { id: userSettings.id }) }}",
  192.                         csrfToken: {{ userSettingsForm._token.vars.value|json_encode|raw }},
  193.                     };
  194.                     userSettingsFormSaver = new JsonFormSaver(userSettingsSaverOptions);
  195.                     userSettingsFormSaver.init();
  196.                     initBearer.set(INIT_BEARERS.GLOBAL_USER_SETTINGS_FORM_SAVER, userSettingsModifier);
  197.                 });
  198.             </script>
  199.         {% endif %}
  200. {#        tipSettings:#}
  201.         {% if reviewerTipSettings is defined and reviewerTipSettings.id %}
  202.             <script>
  203.                 let reviewerTipSettings = null;
  204.                 initBearer.wait([INIT_BEARERS.GLOBAL_DOM_DISPATCHER]).then(() => {
  205.                     const domDispatcher = initBearer.get(INIT_BEARERS.GLOBAL_DOM_DISPATCHER);
  206.                     reviewerTipSettings = {{ reviewerTipSettingsJsonStr|raw }};
  207.                     let reviewerTipSettingsFormDataBuilder = new SymfonyFormDataBuilder("tip_settings");
  208.                     let reviewerTipSettingsModifier = new JsonObjectToComponentsDataBinder(reviewerTipSettings, {
  209.                         domDispatcherListenGroups: ["reviewerTipSettingsModifier"],
  210.                         domDispatcher: domDispatcher
  211.                     });
  212.                     reviewerTipSettingsModifier.setComponentBindOptions("showReviewerRecommendationsTip",
  213.                         {invert: true});
  214.                     let reviewerTipSettingsSaverOptions = {
  215.                         saveOnChanges: true,
  216.                         jsonObject: reviewerTipSettings,
  217.                         componentsDataBinder: reviewerTipSettingsModifier,
  218.                         symfonyFormDataBuilder: reviewerTipSettingsFormDataBuilder,
  219.                         url: "{{ path('moderator_tip_settings_edit', { id: reviewerTipSettings.id }) }}",
  220.                         csrfToken: {{ reviewerTipSettingsForm._token.vars.value|json_encode|raw }},
  221.                     };
  222.                     let reviewerTipSettingsFormSaver = new JsonFormSaver(reviewerTipSettingsSaverOptions);
  223.                     reviewerTipSettingsFormSaver.init();
  224.                 });
  225.             </script>
  226.         {% endif %}
  227. {#        userTipSettings:#}
  228.         {% if userTipSettings is defined and userTipSettings.id %}
  229.             <script>
  230.                 let userTipSettings = null;
  231.                 initBearer.wait([INIT_BEARERS.GLOBAL_DOM_DISPATCHER]).then(() => {
  232.                     const domDispatcher = initBearer.get(INIT_BEARERS.GLOBAL_DOM_DISPATCHER);
  233.                     userTipSettings = {{ userTipSettingsJsonStr|raw }};
  234.                     let userTipSettingsFormDataBuilder = new SymfonyFormDataBuilder("tip_settings");
  235.                     let userTipSettingsModifier = new JsonObjectToComponentsDataBinder(userTipSettings, {
  236.                         domDispatcherListenGroups: ["userTipSettingsModifier"],
  237.                         domDispatcher: domDispatcher
  238.                     });
  239.                     userTipSettingsModifier.setComponentBindOptions("showCalendarEventsPeriodTip",
  240.                         {invert: true});
  241.                     let userTipSettingsSaverOptions = {
  242.                         saveOnChanges: true,
  243.                         jsonObject: userTipSettings,
  244.                         componentsDataBinder: userTipSettingsModifier,
  245.                         symfonyFormDataBuilder: userTipSettingsFormDataBuilder,
  246.                         url: "{{ path('moderator_tip_settings_edit', { id: userTipSettings.id }) }}",
  247.                         csrfToken: {{ userTipSettingsForm._token.vars.value|json_encode|raw }},
  248.                     };
  249.                     let userTipSettingsFormSaver = new JsonFormSaver(userTipSettingsSaverOptions);
  250.                     userTipSettingsFormSaver.init();
  251.                 });
  252.             </script>
  253.         {% endif %}
  254.         <script>
  255.             const API_COMPARE_DATA_URL = "{{ path('api_compare_data') }}";
  256.         </script>
  257.         {% block addJs %}{% endblock %}
  258.         <!-- Core plugin JavaScript-->
  259.         <!-- Custom scripts for all pages-->
  260.         <script src="/js/vendor/sb-admin-2.min.js"></script>
  261.         <script>
  262.             {% include '/js/app.js.twig' %}
  263.         </script>
  264.     </body>
  265. </html>