j-ListMenuEditable
Composant pour le menu de liste modifiable
- Vous pouvez modifier CSS selon vos besoins.
Configuration :
iconremove {String}en option, modifiez l'icône du boutonremove. C'est une icône géniale sans la partieti-(par défaut :times)defaulticon {String}en option, modifiez l'icône du boutonedit(par défaut :pencil-alt)addicon {String}en option, changera l'icône du boutonadd(par défaut :plus-square)placeholder {String}en option, un espace réservé pour la saisie (par défaut :Write text and press ENTER)- Classe CSS
class {String}pour l'élément sélectionné (par défaut :selected) title {String}facultatif, ajoutera un titre en haut du menu de la liste (important si vous souhaitez utiliseraddiconetaddclick)key {String}en option, unkeypar défaut pour la valeurtext(par défaut :name)click {String}facultatif, action après clic sur l'élément du menu. Chemin d'accès à la fonction (élément, index)addclick {String}en option, action après clic sur le boutonadd. Le chemin d'accès à la fonction () s'exécute lorsque l'utilisateur clique sur l'icôneaddeditclick {String}en option, action après clic sur le boutonedit. Chemin d'accès à la fonction (élément, index)
Méthodes :
component.add(object)- Cette fonction poussera l'objet dans le chemin (peut être nul)component.edit(index)- La fonction permettra de modifier l'élémentcomponent.remove(index)- La fonction supprimera l'index
Bon à savoir :
Le chemin doit être un tableau d'objets. Après avoir cliqué sur l'élément dans le menu
Prend en charge l'évaluation dynamique du contenu de <script type="text/html">. L'exemple ci-dessous contient un script avec HTML et le composant évalue le contenu lors de la création du composant (une seule fois).
<ui-component name="listmenueditable" path="tags">
<script type="text/html">
{{ if mycolor }}
<i class="ti ti-circle" style="color: {{ mycolor }}"></i>
{{ fi }}
{{ name }}
</script>
</ui-component>Ajout d'une classe personnalisée :
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', classname: 'your_class_name' });Basculer modifiable :
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', editable: true });Utilisez-le avec <ui-component name="listmenueditable">. Lorsque le composant n'est pas encore chargé, jComponent le télécharge lors de la première utilisation depuis l'adresse dans DEF.fallback (le CDN Componentator par défaut). Auteur : Denis Granec. Source : le référentiel de composants Componentator, licence MIT.
<!-- EXAMPLE DEPENDENCIES -->
<ui-component name="menu"></ui-component>
<div style="width: 400px;">
<ui-component name="listmenueditable" path="tags" config="title:All tags;editclick:edit;addclick:add;click:click">
<script type="text/html">
{{ if mycolor }}
<i class="ti ti-circle-alt" style="color: {{ mycolor }}"></i>
{{ fi }}
{{ name }}
</script>
</ui-component>
</div>
<script>
var tags = [{ name: 'Tag 1', mycolor: '#00B9D7', editable: true, classname: 'customclass', mycustomdata: 'ola' }, { name: 'Tag 2', mycolor: '#00A06E', editable: true, mycustomdata: 'ola2' }];
function click(el, item, index) {
console.log('clicked index', index, 'item', item);
}
function edit(el, index, icon) {
var opt = {};
opt.items = [{ name: 'Edit', id: 'edit' }, { name: 'Remove', icon: 'trash', id: 'remove' }];
opt.align = 'center';
opt.element = icon;
opt.callback = function(selected) {
switch (selected.id) {
case 'edit':
SETTER('listmenueditable/edit', index);
break;
case 'remove':
SETTER('listmenueditable/remove', index);
break;
}
};
SETTER('menu/show', opt);
}
function add() {
SETTER('listmenueditable/add', { name: 'New tag', mycolor: '#8e44ad', editable: true });
}
</script>