|
|
|
@ -2,7 +2,7 @@ class SelecteurGenerique {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retourne l’URL standard de l’api du sélecteur générique.
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param {string} selecteur Permet d’indiquer un nom de sélecteur spécifique.
|
|
|
|
|
* @returns {string}
|
|
|
|
|
*/
|
|
|
|
@ -11,7 +11,7 @@ class SelecteurGenerique {
|
|
|
|
|
return api + selecteur;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
/**
|
|
|
|
|
* Transforme des datas ancien format (jquery.ui.autocomplete) dans le format Select2
|
|
|
|
|
*/
|
|
|
|
|
static processData(_data) {
|
|
|
|
@ -23,7 +23,7 @@ class SelecteurGenerique {
|
|
|
|
|
}
|
|
|
|
|
const data = {}
|
|
|
|
|
data.results = _data.map(d => {
|
|
|
|
|
return {
|
|
|
|
|
return {
|
|
|
|
|
"id": d.id || d.value,
|
|
|
|
|
"text": d.label
|
|
|
|
|
};
|
|
|
|
@ -31,9 +31,9 @@ class SelecteurGenerique {
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
/**
|
|
|
|
|
* Retourne un objet avec les champs 'objet', 'id_objet' et 'source' d’un formulaire de lien.
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
* @return {Object}
|
|
|
|
|
*/
|
|
|
|
|
static formulaire_editer_liens_params(input) {
|
|
|
|
@ -70,9 +70,9 @@ class SelecteurGenerique {
|
|
|
|
|
return params;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retourne un objet avec les champs 'objet' et 'id_*' des paramètres hidden d’un formulaire Spip.
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
/**
|
|
|
|
|
* Retourne un objet avec les champs 'objet' et 'id_*' des paramètres hidden d’un formulaire Spip.
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
* @return {Object}
|
|
|
|
|
*/
|
|
|
|
|
static formulaire_spip_hidden_ids(input) {
|
|
|
|
@ -89,9 +89,9 @@ class SelecteurGenerique {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Applique un autocomplete sur un input dans un formulaire de liens
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
* @param {string} api URL d’API d’autocomplete
|
|
|
|
|
* @param {object} params
|
|
|
|
|
* @param {object} params
|
|
|
|
|
*/
|
|
|
|
|
static formulaire_editer_liens_autocomplete(input, api, params = {}) {
|
|
|
|
|
const args = SelecteurGenerique.formulaire_editer_liens_params(input);
|
|
|
|
@ -128,12 +128,16 @@ class SelecteurGenerique {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Applique un autocomplete sur un input
|
|
|
|
|
*
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
*
|
|
|
|
|
* @param {Node} input
|
|
|
|
|
* @param {string} api URL d’API d’autocomplete
|
|
|
|
|
* @param {object} params
|
|
|
|
|
* @param {object} params
|
|
|
|
|
*/
|
|
|
|
|
static on_input = function (input, api, params = {}) {
|
|
|
|
|
if (input.dataset.selecteurGeneriqueOn) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
input.dataset.selecteurGeneriqueOn = 'on';
|
|
|
|
|
const callback = input.dataset.selectCallback;
|
|
|
|
|
const separator = input.dataset.selectSep || ',';
|
|
|
|
|
const multiple = input.hasAttribute('multiple');
|
|
|
|
@ -167,12 +171,11 @@ class SelecteurGenerique {
|
|
|
|
|
if (typeof fn === 'function') {
|
|
|
|
|
options.events = {
|
|
|
|
|
'select2:select': fn
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console && console.error('Unknown data-select-callback function : ' + callback);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SpipSelect2.on_input(input, options);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|