Internally non-process children are only instantiated once.
This means when applying state overrides directly they're
used everywhere and do not differ between the containing
process. State overrides are now applied explicitly and
on demand, decoupling them from children.
Showing the override rules only in tree view but not in tile
view is one problem. Another one however are rules for all
states which then are difficult to decipher while not providing
much benefit.
The flash to indicate the real state also is not intuitive enough.
That's why this change combines both widgets in a single one. This
makes it more clear what the actual state is, what happened to it,
and does not cobble the view with too much state balls.
Storing overrides as part of a node's name leads to way too complicated
code. A separate field is not only better for compatibility but also
more straightforward to process.
The node state is recursively calculated in case the node contains only BpNodes as its children and are empty. The gray tiles and state-balls are used for the entire branch if the children are empty.
If the imported node is empty or was deleted at a later time, then in NodeTile::render() $link should not be rendered. Also, NodeTile::addDetailsAction() should not add a `href` to this tile.
It is possible to import process nodes from other processes. But there
are no way, via the GUI, to remove the imported process nodes from the
current process/process node.
This commit makes it possible to remove imported process nodes, no matter
where which process they comes from.
Before, we used setParams() instead of with() to populate the parameters
which is especially problematic with imported nodes where the config
paramter got overriden for every subsequent node.
fixes#228
* Fix drill down of the tile/tree action icon links
* Set base target only on parent containers
This also fixes the dashboard integration where we only override the
base target of the div.tiles containers.
fixes#243
Since configurations are cached this cannot be done by using
a flag. Instead the rendering and path aggregation are now able
to distinguish nodes themselves.