fancytree contextmenu disabled

506 views
Skip to first unread message

tahrima...@gmail.com

unread,
Apr 6, 2016, 9:35:15 AM4/6/16
to Fancytree Q&A
bonjour,

j'utilise fancytree pour construire mon treeview ,et j'ai deux type de node ,un groupe qui peut avoir des 'children' et autres qui ne peuvent pas avoir des 'children' . j'ai essayé d'utiliser le menu contextuel pour ajouter des fonctionalités , il y a 3types d'option Ajouter ,Editer et Supprimer .

je veux avoir le menu option Ajouter seulement pour le groupe qui peut avoir des 'children' (leur valeur key commence par A) et non pour les autres . soit rendre visible ou invisible ,soit disable ou enable


var treeData = [{title: "All Locations", key: "A0", folder: true, expanded: true, children: [
{title: "Location 1", key: "A1", folder: true, children: [
{title: "Item 1", key: "205 Fax"},
{title: "Item 2", key: "206 Tél"},
{title: "Item 3", key: "207 Tél"},
]},
{title: "Location 2", key: "A2", folder: true, children: [
{title: "Item 4", key: "208 Fax"},
]},
{title: "Location 3", key: "A3", folder: true, expanded: true, children: [
{title: "Item 5", key: "209"},
{title: "Item 6", key: "210"},
]}
]}
];

$(function(){
// Create the tree inside the <div id="tree"> element.
$("#tree").fancytree({
checkbox: true,
debugLevel: 2,
selectMode: 3,
extensions: ['contextMenu'],
source: treeData,
contextMenu: {
menu: {
"add": { "name": "Add", "icon": "add" },
"edit": { "name": "Edit", "icon": "edit" },
"delete": { "name": "Delete", "icon": "delete" },
},
actions: function(node, action, options) {
alert('Selected action "' + action + '" on node ' + node.key);
}
}

mar10

unread,
Apr 8, 2016, 9:03:51 AM4/8/16
to Fancytree Q&A
The contextmenu extension is deprecated, but can easily be replaced by existing plugins.For example:

and others.

The first one (jquery-ui-contextmenu) is similar to the deprecated extension:

beforeOpen: function(event, ui) {
   
var node = $.ui.fancytree.getNode(ui.target);

   
// Modify menu entries depending on node status
    $
("#tree").contextmenu("enableEntry", "paste", node.isFolder());
   
// Show/hide single entries
//  $("#tree").contextmenu("showEntry", "cut", false);

   
// Activate node on right-click
    node
.setActive();
   
},




Reply all
Reply to author
Forward
0 new messages