demarches-normaliennes/app/javascript/new_design/select2.js

81 lines
2 KiB
JavaScript
Raw Normal View History

2018-08-09 11:53:59 +02:00
import $ from 'jquery';
import 'select2';
const language = {
2020-04-30 15:42:29 +02:00
errorLoading: function () {
return 'Les résultats ne peuvent pas être chargés.';
},
2020-04-30 15:42:29 +02:00
inputTooLong: function (args) {
var overChars = args.input.length - args.maximum;
return 'Supprimez ' + overChars + ' caractère' + (overChars > 1 ? 's' : '');
},
2020-04-30 15:42:29 +02:00
inputTooShort: function (args) {
var remainingChars = args.minimum - args.input.length;
return (
'Saisissez au moins ' +
remainingChars +
' caractère' +
(remainingChars > 1 ? 's' : '')
);
},
2020-04-30 15:42:29 +02:00
loadingMore: function () {
return 'Chargement de résultats supplémentaires…';
},
2020-04-30 15:42:29 +02:00
maximumSelected: function (args) {
return (
'Vous pouvez seulement sélectionner ' +
args.maximum +
' élément' +
(args.maximum > 1 ? 's' : '')
);
},
2020-04-30 15:42:29 +02:00
noResults: function () {
return 'Aucun résultat trouvé';
},
2020-04-30 15:42:29 +02:00
searching: function () {
return 'Recherche en cours…';
},
2020-04-30 15:42:29 +02:00
removeAllItems: function () {
return 'Supprimer tous les éléments';
}
};
const baseOptions = {
language,
width: '100%'
};
const templateOption = ({ text }) =>
$(
`<span class="custom-select2-option"><span class="icon person"></span>${text}</span>`
);
2019-08-01 15:22:37 +02:00
addEventListener('ds:page:update', () => {
$('select.select2').select2(baseOptions);
2018-09-10 17:52:29 +02:00
$('.columns-form select.select2-limited').select2({
width: '300px',
placeholder: 'Sélectionnez des colonnes',
maximumSelectionLength: '5'
});
$('.recipients-form select.select2-limited').select2({
language,
width: '300px',
placeholder: 'Sélectionnez des instructeurs',
maximumSelectionLength: '30'
});
$('select.select2-limited.select-instructeurs').select2({
language,
dropdownParent: $('.instructeur-wrapper'),
placeholder: 'Saisir ladresse email de linstructeur',
tags: true,
tokenSeparators: [',', ' '],
templateResult: templateOption,
templateSelection: templateOption
});
});