Unit-testing would be easier this way.
Also clean up some remaining bits of previous version of
Mistral Workbook builder.
Implements blueprint: merlin-unittests
Change-Id: Ie82a5fd19fcd5e98d7c9d2321a9a8c93495af07f
Among other things are:
* finally port yaqllist field to new models
* support YAML dynamic updates
Change-Id: I109e2d4ae50ebf5cf60dd838ec074740d64360a9
Now the amount of each Action fields being rendered is decided both on
schema and actual action data.
Change-Id: Iabfb6c852a2e1f3f2dda139bf65cd5d7ecdc4f9d
Make use of repeat-ng `track by` clause to avoid unnecessary DOM
redraw by ng-repeat each time the scope changes.
Change-Id: I8e2513c5aeabd8ec4bbf72ed025bd3d5da08f94d
Rewrite existing css rules for Merlin/Mistral, clear low-level layout
info from html (move it into mixins).
Change-Id: I573763c2f31de98214f15f43fc53086ac994479e
Show table with all created workbooks (currently stored in memory
stub), add 'Add Workbook', 'Edit Workbook' and 'Delete Workbook'
actions. Creating/ editing workbook is implemented as modal form (with
Workbook Builder inside).
Change-Id: I26139f674f7c7f3df2d45a0cd714e53b1d28538c
Now a running Horizon instance is required to run Mistral Workbook
builder. Instructions on integrating Merlin and its extensions (the
first of which is Workbook Builder) are provided in README.md.
Change-Id: I599ac46c9fd5369e42722b8d7a01d60c9f3323b8
Tasks that are placed inside direct workflow contain different fields
from the ones that are inside reverse workflow. To do this, change
acceptsMixin.getValue() return value from the final Barricade class to
the function that returns that class when called - by doing so it is
able to construct class dynamically.
Note that if the type of the parent workflow is changed, its tasks
which become invalid do not know about that - not implemented yet.
Also get rid of types.Mistral.Version and fix a small bug with removal
element from an Array.
Change-Id: Idda3391c48e5691de92ad302280eb4edd941a001
Also fix annoying issue with 'Add' button being disabled until cursor
leaves the field for entering a new FluidContainer item's key.
Change-Id: I472b3f1f07fb4b11f445aafc2e99856a50bb4c0f
If Array/FluidContainer has a Container with 'name' element as its
subitem, establish a kind of 2-way data binding between Array's label
for that subitem / FluidContainer's key and subitem's 'name' field.
In order to do proper event handling, working with labels has been refactored.
Change-Id: I53f834cb052adf5121e4adf398ed5aa5bd08174c
... restrict them to all valid (i.e. having non-empty name, excluding
the given Task) tasks of the current workflow. Hack Barricade.js a bit
to enable moving up the tree of containers in search of 'current
workflow'.
Change-Id: I16e6ac34d44aa2d4d921aaf9fd0c251362b7894f
Enable work with 2 types of Task: Action-based and Workflow-based
ones. Move to refactored Barricade.js lib (reference resolving was
greatly simplified, pleasure to work with it now!).
Change-Id: I15173a5f3bbfc22b6d19b8fece150bb70fc39a4e
* base action for types.Mistral.Action is either a predefined action
(currently hardcoded) or already existing types.Mistral.Action
entity with non-empty name (except the current one)
* Action, Task, Workflow and Workbook 'version' field are all just
references to a single types.Mistral.Version instance
Change-Id: I3fe354c64cf4361e7dff8686e848cec3448d315f
Implement tree-like inputs structure, next things to come are:
* storing data into the model from inputs;
* data validation;
* converting data model into JSON/YAML;
* enable more complex relations between Mistral entities.
Change-Id: Ibda4b5b4856e9025a9d2fb9f0cdd449bd6a82303