Tree view plugin

This plugin can be configured to display a tree of records and sub-nodes that belong to a parent record, in the sidebar of a details page. For example, show subarticles of a knowledge base article or content containers and elements for a web page:

To start > add the Treeview - Novulo plugin to your component > choose a details page where you are going to put Treeview > drag a panel to a page > start a configuration (Plugin configuration tab):

Plugin Configurations

The configurations that effect the whole tree and all sub-items:

Show in sidebar > indicates if the tree should be rendered in the sidebar;
Searchable > indicates if the tree can be searched within;
Sidebar position > sets the side where the TreeView will appear on a page;
Save in context > saves your state data (search queries, expanded items, etc.) in the context of a page. When this option is enabled, settings are saved per record. When disabled > all pages showing this tree will use the same state data;
Show tree on one page only > if disabled > you can link several pages where this treeview can be visible;

Drag enabled enables the dragging of items and in combination with Drop enabled requires to define process > what to do with items you are draggin/dropping;
Place root tree item in sidebar header > if there is a single root node in the tree, it would be rendered in the sidebar header. Note that if there are more than one root items, this option will not take effect even if enabled.

Configurations for items to show in tree

This is where we configure what actually to show in the tree.
Record type of item > the data type (concepts, enums, etc.) for this tree item;
Name of item > value (label) you will see in a tree for this item;
Parent of item > a parent record for this item (this is basically how we can achieve multiple levels in the tree view);
Icon for item > a file with an icon;
Filter & Sort of items > configurations to filter/sort items displayed in a tree (to filter by parent, for example);
Default expanded > indicates if the tree item is initially expanded or collapsed;
Click process > process that is triggered when the tree item is clicked > for example, to load page; the process has parameters: record (the record that was clicked), pagerecord and pagestate;
Quick processes > a sub-panel that contains multiple processes. These would be rendered as icon-buttons when the item in the tree is hovered over;

node

Render action as node > if enabled > the button would be rendered as a child node, instead of a icon button, which is only visible when the item is hovered over;
Position for actions rendered as nodes > indicates where the actions rendered as nodes will be placed: below (all other items in the childs of the parent node) or above (above all other items);
Icon predefined list of icons to show for this process;
Tooltip text the text to display for this icon-button/action rendered as node;
Process the actual process that will be triggered when this button is clicked.

search

Search options can be only configured if the “Searchable” checkbox is enabled; here we can define fields and conditions on which we can search on in the Tree:
Allow drop outside parent > if this checkbox (required drag and drop) is enabled, the child nodes that are being dragged can be dropped outside of their direct parent (i.o.w they can change their parent node). A correctly configured drop process is needed;
Drop processes > similar to the quick processes; these are the drop processes that can be configured (if drag & drop are enabled). It works in a similar way as the drag and drop in the Grid Extensions plugin;
Record type of tree (dragged) item > the record type of the tree that receives the drop item;
Record type of dropped tree (dragged) item > the record type of the item that is being dropped;

Process > the process to trigger when the item is dropped > params:
- before > indicates if the item is being dropped before or after the "item"parameter;
- item > this is the targeted item of the drop;
- droppeditems > list of items that are being dropped.

Note that the parameter datatype is List<Record type of dropped tree (dragged) item>, but there would always be a single item in the list (it is added as a list, so future development can be done easily backwards compatible;

- pagerecord > the page record where this process has been triggered;
- pagestate > the pagestate when this process was triggered.