Browse Source

Refactoring Webpack

feature/symfony6.1
Guillaume 3 years ago
parent
commit
17e4dea318
46 changed files with 169 additions and 181 deletions
  1. +2
    -1
      Controller/Dashboard/DashboardAdminController.php
  2. +1
    -1
      Resources/assets/app/admin/reminder/reminder.js
  3. +2
    -2
      Resources/assets/app/admin/ticket/ticket.js
  4. +0
    -155
      Resources/assets/app/adminlte/common/common.js
  5. +0
    -7
      Resources/assets/app/adminlte/common/utils/log.js
  6. +2
    -2
      Resources/assets/app/adminlte/index/index.js
  7. +3
    -0
      Resources/assets/app/adminlte/main/app.main.js
  8. +0
    -0
      Resources/assets/app/adminlte/main/common.scss
  9. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-black-webfont.woff
  10. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-black-webfont.woff2
  11. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-blackit-webfont.woff
  12. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-blackit-webfont.woff2
  13. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-bold-webfont.woff
  14. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-bold-webfont.woff2
  15. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-boldit-webfont.woff
  16. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-boldit-webfont.woff2
  17. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralight-webfont.woff
  18. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralight-webfont.woff2
  19. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralightit-webfont.woff
  20. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralightit-webfont.woff2
  21. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-it-webfont.woff
  22. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-it-webfont.woff2
  23. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-light-webfont.woff
  24. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-light-webfont.woff2
  25. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-lightit-webfont.woff
  26. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-lightit-webfont.woff2
  27. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-regular-webfont.woff
  28. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-regular-webfont.woff2
  29. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-semibold-webfont.woff
  30. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-semibold-webfont.woff2
  31. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-semiboldit-webfont.woff
  32. +0
    -0
      Resources/assets/app/adminlte/main/fonts/sourcesanspro-semiboldit-webfont.woff2
  33. +37
    -0
      Resources/assets/app/adminlte/main/init.js
  34. +0
    -0
      Resources/assets/app/adminlte/main/scss/_card.scss
  35. +0
    -0
      Resources/assets/app/adminlte/main/scss/_common.scss
  36. +0
    -0
      Resources/assets/app/adminlte/main/scss/_modal.scss
  37. +0
    -0
      Resources/assets/app/adminlte/main/scss/_tabs.scss
  38. +0
    -0
      Resources/assets/app/adminlte/main/scss/_toastr.scss
  39. +0
    -0
      Resources/assets/app/adminlte/main/scss/form/_checkboxradio.scss
  40. +0
    -0
      Resources/assets/app/adminlte/main/scss/form/_footer.scss
  41. +8
    -9
      Resources/assets/app/adminlte/plugins/app.plugins.js
  42. +1
    -1
      Resources/assets/functions/notification.js
  43. +1
    -1
      Resources/assets/functions/tools.js
  44. +111
    -0
      Resources/assets/functions/widgets.js
  45. +0
    -1
      Resources/views/adminlte/crud/form_theme.html.twig
  46. +1
    -1
      Resources/views/adminlte/layout.html.twig

+ 2
- 1
Controller/Dashboard/DashboardAdminController.php View File

@@ -37,12 +37,13 @@ class DashboardAdminController extends AbstractDashboardController
{
$assets = parent::configureAssets();

$assets->addWebpackEncoreEntry('adminlte-common');
$assets->addWebpackEncoreEntry('adminlte-plugins');
$assets->addWebpackEncoreEntry('adminlte-index');
$assets->addWebpackEncoreEntry('adminlte-form');
$assets->addWebpackEncoreEntry('adminlte-sort');
$assets->addWebpackEncoreEntry('adminlte-field-collection');
$assets->addWebpackEncoreEntry('adminlte-field-filemanager');
$assets->addWebpackEncoreEntry('adminlte-main');
$assets->addWebpackEncoreEntry('sov-reminder');

return $assets;

+ 1
- 1
Resources/assets/app/admin/reminder/reminder.js View File

@@ -25,7 +25,7 @@ function initReminder() {
id: $(this).data('id'),
done: $(this).is(':checked')
}, function(data) {
Notification.add('success', 'Pense-bête mis à jour');
SovNotification.add('success', 'Pense-bête mis à jour');
}, 'json');
}) ;
}

+ 2
- 2
Resources/assets/app/admin/ticket/ticket.js View File

@@ -7,9 +7,9 @@ jQuery(document).ready(function () {
dataType: "json",
success: function (data) {
if (data.success) {
Notification.add('success', 'Le status a bien été mise à jour.');
SovNotification.add('success', 'Le status a bien été mise à jour.');
} else {
Notification.add('danger', 'Une erreur est survenue.');
SovNotification.add('danger', 'Une erreur est survenue.');
}
}
});

+ 0
- 155
Resources/assets/app/adminlte/common/common.js View File

@@ -1,155 +0,0 @@

/* Notifications */
//Notification.init() ;


setDateRange();

setAutoCompleteField();


/* Tooltip */
$('[data-toggle="tooltip"]').tooltip();

/* Select2 */
if ($('.select2, select.form-control').length) {

$('form .form-widget>select.form-control, .select2').each(function (i, elm) {
if (!$(this).hasClass('disable-select2')) {
setSelect2($(elm));
}
});

$('form select.form-control').each(function (i, elm) {
if (!$(this).hasClass('disable-select2')) {
setSelect2($(elm));
}
});
}

function setSelect2($select) {
if (typeof $select.data('select2-id') === 'undefined') {

$select.data('init', 'set')
var options = {
width: "100%",
theme: "bootstrap4",
dropdownAutoWidth: false,
allowClear: true,
minimumResultsForSearch: 8
};

if ($select.data('allow-clear') == 'false') {
options.allowClear = false;
}
if ($select.data('width')) {
options.width = 'auto'
}
if ($select.find('option[value=""]')) {
options.placeholder = $select.find('option[value=""]').html()
}
/*if($select.is(':required') == false) {
options.allowclear = true
}*/
var myselect = $select.select2(options);

myselect.on('select2:select', function (e) {
var event = new Event('change');
e.target.dispatchEvent(event);
});
myselect.on('select2:unselect', function (e) {
var event = new Event('change');
e.target.dispatchEvent(event);
});

return myselect;
}
}


$('.action-delete').on('click', function (e) {
e.preventDefault();
const formAction = $(this).attr('formaction');

$('#modal-delete').modal({backdrop: true, keyboard: true})
.off('click', '#modal-delete-button')
.on('click', '#modal-delete-button', function () {
let deleteForm = $('#delete-form');
deleteForm.attr('action', formAction);
deleteForm.submit();
});
});


function setDateRange(){


$('.date-time-range, .date-range').each(function (i, picker) {
options = {
autoUpdateInput: false,
locale: {
"format": "DD/MM/YY",
"separator": " - ",
"applyLabel": "Appliquer",
"cancelLabel": "Annuler",
"fromLabel": "Du",
"toLabel": "au",
"customRangeLabel": "Custom",
"daysOfWeek": ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"],
"monthNames": ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
"firstDay": 1
}
};
if ($(picker).hasClass('date-time-range')){
options = Object.assign(options, {
timePicker: true,
timePickerIncrement: 30,
timePicker24Hour: true,
locale: {
"format": "DD/MM/YYYY HH:mm",
}
});
}
if ($(picker).nextAll('.date-time-range-fields').find('.date-start').val()) {
options.startDate = new Date($(picker).nextAll('.date-time-range-fields').find('.date-start').val());
options.autoUpdateInput = true;
}
if ($(picker).nextAll('.date-time-range-fields').find('.date-end').val()) {
options.endDate = new Date($(picker).nextAll('.date-time-range-fields').find('.date-end').val());
options.autoUpdateInput = true;
}
$(picker).daterangepicker(options);
$(picker).on('apply.daterangepicker', function (ev, pickerElm) {
if ($(picker).hasClass('date-time-range')) {
$(this).val(pickerElm.startDate.format('DD/MM/YY HH:mm') + ' - ' + pickerElm.endDate.format(options.locale.format));
}else{
$(this).val(pickerElm.startDate.format('DD/MM/YY') + ' - ' + pickerElm.endDate.format(options.locale.format));
}
if ($(picker).hasClass('date-time-range')) {
$(picker).nextAll('.date-time-range-fields').find('.date-start').val(pickerElm.startDate.format('YYYY-MM-DD HH:mm'));
$(picker).nextAll('.date-time-range-fields').find('.date-end').val(pickerElm.endDate.format('YYYY-MM-DD HH:mm'));
}else{
$(picker).nextAll('.date-time-range-fields').find('.date-start').val(pickerElm.startDate.format('YYYY-MM-DD'));
$(picker).nextAll('.date-time-range-fields').find('.date-end').val(pickerElm.endDate.format('YYYY-MM-DD'));
}
});
});

}


function setAutoCompleteField() {
var autocompleteFields = $('[data-lc-autocomplete-url]');

autocompleteFields.each(function () {
var $this = $(this),
url = $this.data('lc-autocomplete-url');

$this.autoComplete({
noResultsText: 'Aucun résultat n\'a été trouvé.',
resolverSettings: {
url: url
}
});
});
}

+ 0
- 7
Resources/assets/app/adminlte/common/utils/log.js View File

@@ -1,7 +0,0 @@
function log(name) {
try {
return console.log(name);
} catch (e) {
return null;
}
}

+ 2
- 2
Resources/assets/app/adminlte/index/index.js View File

@@ -18,14 +18,14 @@ function lcCrudIndexToggle() {
let toggleRequest = $.ajax({type: "POST", url: toggleUrl, data: {}, dataType: 'json'});

toggleRequest.done(function (response) {
Notification.add('success', 'La propriété a bien été mise à jour.');
SovNotification.add('success', 'La propriété a bien été mise à jour.');
});

toggleRequest.fail(function () {
toggle.checked = oldValue;
toggle.disabled = true;
toggle.closest('.checkbox-switch').classList.add('disabled');
Notification.add('error', 'Une erreur est survenue.');
SovNotification.add('error', 'Une erreur est survenue.');
});
});
}

+ 3
- 0
Resources/assets/app/adminlte/main/app.main.js View File

@@ -0,0 +1,3 @@

import './init.js';
import './common.scss';

Resources/assets/app/adminlte/common/common.scss → Resources/assets/app/adminlte/main/common.scss View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-black-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-black-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-black-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-black-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-blackit-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-blackit-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-blackit-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-blackit-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-bold-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-bold-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-bold-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-bold-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-boldit-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-boldit-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-boldit-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-boldit-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-extralight-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralight-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-extralight-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralight-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-extralightit-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralightit-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-extralightit-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-extralightit-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-it-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-it-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-it-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-it-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-light-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-light-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-light-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-light-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-lightit-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-lightit-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-lightit-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-lightit-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-regular-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-regular-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-regular-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-regular-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-semibold-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-semibold-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-semibold-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-semibold-webfont.woff2 View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-semiboldit-webfont.woff → Resources/assets/app/adminlte/main/fonts/sourcesanspro-semiboldit-webfont.woff View File


Resources/assets/app/adminlte/common/fonts/sourcesanspro-semiboldit-webfont.woff2 → Resources/assets/app/adminlte/main/fonts/sourcesanspro-semiboldit-webfont.woff2 View File


+ 37
- 0
Resources/assets/app/adminlte/main/init.js View File

@@ -0,0 +1,37 @@

SovNotification.init() ;

SovWidgets.setDateRange();
SovWidgets.setAutoCompleteField();

/* Tooltip */
$('[data-toggle="tooltip"]').tooltip();

/* Select2 */
if ($('.select2, select.form-control').length) {

$('form .form-widget>select.form-control, .select2').each(function (i, elm) {
if (!$(this).hasClass('disable-select2')) {
SovWidgets.setSelect2($(elm));
}
});

$('form select.form-control').each(function (i, elm) {
if (!$(this).hasClass('disable-select2')) {
SovWidgets.setSelect2($(elm));
}
});
}

$('.action-delete').on('click', function (e) {
e.preventDefault();
const formAction = $(this).attr('formaction');

$('#modal-delete').modal({backdrop: true, keyboard: true})
.off('click', '#modal-delete-button')
.on('click', '#modal-delete-button', function () {
let deleteForm = $('#delete-form');
deleteForm.attr('action', formAction);
deleteForm.submit();
});
});

Resources/assets/app/adminlte/common/scss/_card.scss → Resources/assets/app/adminlte/main/scss/_card.scss View File


Resources/assets/app/adminlte/common/scss/_common.scss → Resources/assets/app/adminlte/main/scss/_common.scss View File


Resources/assets/app/adminlte/common/scss/_modal.scss → Resources/assets/app/adminlte/main/scss/_modal.scss View File


Resources/assets/app/adminlte/common/scss/_tabs.scss → Resources/assets/app/adminlte/main/scss/_tabs.scss View File


Resources/assets/app/adminlte/common/scss/_toastr.scss → Resources/assets/app/adminlte/main/scss/_toastr.scss View File


Resources/assets/app/adminlte/common/scss/form/_checkboxradio.scss → Resources/assets/app/adminlte/main/scss/form/_checkboxradio.scss View File


Resources/assets/app/adminlte/common/scss/form/_footer.scss → Resources/assets/app/adminlte/main/scss/form/_footer.scss View File


Resources/assets/app/adminlte/common/app.common.js → Resources/assets/app/adminlte/plugins/app.plugins.js View File

@@ -23,23 +23,22 @@ import toastr from 'toastr/toastr.js' ;
import 'toastr/toastr.scss' ;
global.toastr = toastr ;


// DaterangePicker
import 'moment' ;
import 'daterangepicker/daterangepicker.js' ;
import 'daterangepicker/daterangepicker.css' ;

// Tools
import { Tools } from '../../../tools/tools.js';
global.Tools = Tools;
import { SovTools } from '../../../functions/tools.js';
global.SovTools = SovTools;

// Widgets
import { SovWidgets } from '../../../functions/widgets.js';
global.SovWidgets = SovWidgets;

import { Notification } from './js/notification.js';
global.Notification = Notification;
Notification.init() ;
import { SovNotification } from '../../../functions/notification.js';
global.SovNotification = SovNotification;

// Common
import './common.scss';
import './common.js' ;




Resources/assets/app/adminlte/common/js/notification.js → Resources/assets/functions/notification.js View File

@@ -1,5 +1,5 @@

export class Notification {
export class SovNotification {

static init() {
toastr.options.timeOut = 3000;

Resources/assets/tools/tools.js → Resources/assets/functions/tools.js View File

@@ -1,5 +1,5 @@

export class Tools {
export class SovTools {

static log(value) {
try {

+ 111
- 0
Resources/assets/functions/widgets.js View File

@@ -0,0 +1,111 @@

export class SovWidgets {

static setSelect2($select) {
if (typeof $select.data('select2-id') === 'undefined') {

$select.data('init', 'set')
var options = {
width: "100%",
theme: "bootstrap4",
dropdownAutoWidth: false,
allowClear: true,
minimumResultsForSearch: 8
};

if ($select.data('allow-clear') == 'false') {
options.allowClear = false;
}
if ($select.data('width')) {
options.width = 'auto'
}
if ($select.find('option[value=""]')) {
options.placeholder = $select.find('option[value=""]').html()
}
/*if($select.is(':required') == false) {
options.allowclear = true
}*/
var myselect = $select.select2(options);

myselect.on('select2:select', function (e) {
var event = new Event('change');
e.target.dispatchEvent(event);
});
myselect.on('select2:unselect', function (e) {
var event = new Event('change');
e.target.dispatchEvent(event);
});

return myselect;
}
}

static setDateRange() {
$('.date-time-range, .date-range').each(function (i, picker) {
options = {
autoUpdateInput: false,
locale: {
"format": "DD/MM/YY",
"separator": " - ",
"applyLabel": "Appliquer",
"cancelLabel": "Annuler",
"fromLabel": "Du",
"toLabel": "au",
"customRangeLabel": "Custom",
"daysOfWeek": ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"],
"monthNames": ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
"firstDay": 1
}
};
if ($(picker).hasClass('date-time-range')) {
options = Object.assign(options, {
timePicker: true,
timePickerIncrement: 30,
timePicker24Hour: true,
locale: {
"format": "DD/MM/YYYY HH:mm",
}
});
}
if ($(picker).nextAll('.date-time-range-fields').find('.date-start').val()) {
options.startDate = new Date($(picker).nextAll('.date-time-range-fields').find('.date-start').val());
options.autoUpdateInput = true;
}
if ($(picker).nextAll('.date-time-range-fields').find('.date-end').val()) {
options.endDate = new Date($(picker).nextAll('.date-time-range-fields').find('.date-end').val());
options.autoUpdateInput = true;
}
$(picker).daterangepicker(options);
$(picker).on('apply.daterangepicker', function (ev, pickerElm) {
if ($(picker).hasClass('date-time-range')) {
$(this).val(pickerElm.startDate.format('DD/MM/YY HH:mm') + ' - ' + pickerElm.endDate.format(options.locale.format));
} else {
$(this).val(pickerElm.startDate.format('DD/MM/YY') + ' - ' + pickerElm.endDate.format(options.locale.format));
}
if ($(picker).hasClass('date-time-range')) {
$(picker).nextAll('.date-time-range-fields').find('.date-start').val(pickerElm.startDate.format('YYYY-MM-DD HH:mm'));
$(picker).nextAll('.date-time-range-fields').find('.date-end').val(pickerElm.endDate.format('YYYY-MM-DD HH:mm'));
} else {
$(picker).nextAll('.date-time-range-fields').find('.date-start').val(pickerElm.startDate.format('YYYY-MM-DD'));
$(picker).nextAll('.date-time-range-fields').find('.date-end').val(pickerElm.endDate.format('YYYY-MM-DD'));
}
});
});
}

static setAutoCompleteField() {
var autocompleteFields = $('[data-lc-autocomplete-url]');

autocompleteFields.each(function () {
var $this = $(this),
url = $this.data('lc-autocomplete-url');

$this.autoComplete({
noResultsText: 'Aucun résultat n\'a été trouvé.',
resolverSettings: {
url: url
}
});
});
}
}

+ 0
- 1
Resources/views/adminlte/crud/form_theme.html.twig View File

@@ -315,7 +315,6 @@
{% block class %}{{ loop.first ? 'active' }}{% endblock %}
{% block id %}{{ panel_name }}{% endblock %}
{% block content %}
{{ dump() }}
{% for field in form|filter(field => 'hidden' not in field.vars.block_prefixes and field.vars.ea_crud_form.form_panel == panel_name) %}
{% if not field.vars.ea_crud_form.form_tab or field.vars.ea_crud_form.form_tab == tab_name %}
{{ form_row(field) }}

+ 1
- 1
Resources/views/adminlte/layout.html.twig View File

@@ -206,7 +206,7 @@
$(document).ready(function () {
{% for label, messages in flash_messages %}
{% for message in messages %}
Notification.add("{{ label }}", "{{ message|trans|raw|replace({'"': '\"'}) }}");
SovNotification.add("{{ label }}", "{{ message|trans|raw|replace({'"': '\"'}) }}");
{% endfor %}
{% endfor %}
});

Loading…
Cancel
Save