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' } options.placeholder = ""; // @TODO : génère une erreur if ($select.find('option[value=""]').length) { options.placeholder = $select.find('option[value=""]').html() } 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); }); myselect.off('select2:open') return myselect; } } static setDateRange() { $('.date-time-range, .date-range').each(function (i, picker) { let 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({ //bootstrapVersion: 4, //noResultsText: 'Aucun résultat n\'a été trouvé.', resolverSettings: { url: url } }); }); } static setCollectionWidget() { $('.field-collection[data-prototype]').each(function (i, collectionWidget) { SovWidgetCollection.setCollectionWidgetSortable($(collectionWidget)); SovWidgetCollection.reindexKeyCollectionWidget($(collectionWidget)); SovWidgetCollection.setCollectionWidgetAdd($(collectionWidget)); SovWidgetCollection.setCollectionWidgetDelete($(collectionWidget)); }); } }