您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

135 行
5.3KB

  1. export class SovWidgets {
  2. static setSelect2($select) {
  3. if (typeof $select.data('select2-id') === 'undefined') {
  4. $select.data('init', 'set')
  5. var options = {
  6. width: "100%",
  7. theme: "bootstrap4",
  8. dropdownAutoWidth: false,
  9. allowClear: true,
  10. minimumResultsForSearch: 8
  11. };
  12. if ($select.data('ajax')) {
  13. options.ajax = $select.data('ajax');
  14. options.minimumInputLength = 3;
  15. }
  16. if ($select.data('allow-clear') == 'false') {
  17. options.allowClear = false;
  18. }
  19. if ($select.data('width')) {
  20. options.width = 'auto'
  21. }
  22. options.placeholder = "";
  23. // @TODO : génère une erreur
  24. if ($select.find('option[value=""]').length) {
  25. options.placeholder = $select.find('option[value=""]').html()
  26. }
  27. var myselect = $select.select2(options);
  28. myselect.on('select2:select', function (e) {
  29. var event = new Event('change');
  30. e.target.dispatchEvent(event);
  31. });
  32. myselect.on('select2:unselect', function (e) {
  33. var event = new Event('change');
  34. e.target.dispatchEvent(event);
  35. });
  36. myselect.off('select2:open')
  37. return myselect;
  38. }
  39. }
  40. static setDateRange() {
  41. $('.date-time-range, .date-range').each(function (i, picker) {
  42. let options = {
  43. autoUpdateInput: false,
  44. locale: {
  45. "format": "DD/MM/YY",
  46. "separator": " - ",
  47. "applyLabel": "Appliquer",
  48. "cancelLabel": "Annuler",
  49. "fromLabel": "Du",
  50. "toLabel": "au",
  51. "customRangeLabel": "Custom",
  52. "daysOfWeek": ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"],
  53. "monthNames": ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
  54. "firstDay": 1
  55. }
  56. };
  57. if ($(picker).hasClass('date-time-range')) {
  58. options = Object.assign(options, {
  59. timePicker: true,
  60. timePickerIncrement: 30,
  61. timePicker24Hour: true,
  62. locale: {
  63. "format": "DD/MM/YYYY HH:mm",
  64. }
  65. });
  66. }
  67. if ($(picker).nextAll('.date-time-range-fields').find('.date-start').val()) {
  68. options.startDate = new Date($(picker).nextAll('.date-time-range-fields').find('.date-start').val());
  69. options.autoUpdateInput = true;
  70. }
  71. if ($(picker).nextAll('.date-time-range-fields').find('.date-end').val()) {
  72. options.endDate = new Date($(picker).nextAll('.date-time-range-fields').find('.date-end').val());
  73. options.autoUpdateInput = true;
  74. }
  75. $(picker).daterangepicker(options);
  76. $(picker).on('apply.daterangepicker', function (ev, pickerElm) {
  77. if ($(picker).hasClass('date-time-range')) {
  78. $(this).val(pickerElm.startDate.format('DD/MM/YY HH:mm') + ' - ' + pickerElm.endDate.format(options.locale.format));
  79. } else {
  80. $(this).val(pickerElm.startDate.format('DD/MM/YY') + ' - ' + pickerElm.endDate.format(options.locale.format));
  81. }
  82. if ($(picker).hasClass('date-time-range')) {
  83. $(picker).nextAll('.date-time-range-fields').find('.date-start').val(pickerElm.startDate.format('YYYY-MM-DD HH:mm'));
  84. $(picker).nextAll('.date-time-range-fields').find('.date-end').val(pickerElm.endDate.format('YYYY-MM-DD HH:mm'));
  85. } else {
  86. $(picker).nextAll('.date-time-range-fields').find('.date-start').val(pickerElm.startDate.format('YYYY-MM-DD'));
  87. $(picker).nextAll('.date-time-range-fields').find('.date-end').val(pickerElm.endDate.format('YYYY-MM-DD'));
  88. }
  89. });
  90. });
  91. }
  92. static setAutoCompleteField() {
  93. var autocompleteFields = $('[data-lc-autocomplete-url]');
  94. autocompleteFields.each(function () {
  95. if(!$(this).hasClass('autocomplete-disabled')) {
  96. var $this = $(this),
  97. url = $this.data('lc-autocomplete-url');
  98. $this.autoComplete({
  99. //bootstrapVersion: 4,
  100. //noResultsText: 'Aucun résultat n\'a été trouvé.',
  101. resolverSettings: {
  102. url: url
  103. }
  104. });
  105. }
  106. });
  107. }
  108. static setCollectionWidget() {
  109. $('.field-collection[data-prototype]').each(function (i, collectionWidget) {
  110. SovWidgetCollection.setCollectionWidgetSortable($(collectionWidget));
  111. SovWidgetCollection.reindexKeyCollectionWidget($(collectionWidget));
  112. SovWidgetCollection.setCollectionWidgetAdd($(collectionWidget));
  113. SovWidgetCollection.setCollectionWidgetDelete($(collectionWidget));
  114. });
  115. }
  116. }