46 Commits

Author SHA1 Message Date
Timur Sufiev
1454a2792d Move out Merlin and Mistral code into separate modules
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
2015-03-31 07:43:55 -07:00
Timur Sufiev
f9bb5fa11a Remove outdated views, forms and urls from Mistral
Change-Id: I2bf9073e0bfcadc6cf2f309dfd8eaa4c1dcc01fb
2015-03-16 12:58:57 +03:00
Timur Sufiev
a849faa7a9 Show drop-down widget for @enum mixins
Change-Id: Ied834c055eabcb6bbd12ed1c388a854befd7c0b7
2015-03-11 16:19:04 +03:00
Timur Sufiev
5a138fe066 Remove hard-coded sample Workflow panel
Among other things are:
* finally port yaqllist field to new models
* support YAML dynamic updates

Change-Id: I109e2d4ae50ebf5cf60dd838ec074740d64360a9
2015-03-03 17:21:27 +03:00
Timur Sufiev
fc14e3c993 Take data for Angular.js from Barricade.js object
Along with this perform major code cleanup and change directory
structure.

Change-Id: I1736ded46ab5b9b635acce7e938a803001884393
2015-02-26 14:41:04 -08:00
Timur Sufiev
389af84bb4 Fix excessive 'plus' buttons for some group directives
The used approach is crude, but it works.

Change-Id: I19ffa2610f3f19a0b49b65892f940560b394c9d0
2015-01-28 17:39:23 +03:00
Timur Sufiev
2f187b0930 Add non-minified version of angular-filter
Change-Id: Ica0caf1988e1b8d205c4b95682167e51873ebd07
2015-01-28 17:38:45 +03:00
Timur Sufiev
b922fad15b Move an entire workbook to schema
This is a preparation for integrating with Barricade.js

Change-Id: Iba9424ddc8337497d5bb8431c114b1b07902f6b8
2015-01-21 15:54:10 +03:00
Timur Sufiev
b408d89815 Load angularjs dynamic templates in run() section
Change-Id: Ib0ae4618541a250941b4018cb0b9ffc966527a40
2015-01-09 04:59:07 -08:00
Timur Sufiev
06d312a8c1 Tie the Action layout to the actual data
Now the amount of each Action fields being rendered is decided both on
schema and actual action data.

Change-Id: Iabfb6c852a2e1f3f2dda139bf65cd5d7ecdc4f9d
2015-01-08 11:55:30 -08:00
Timur Sufiev
405b15f6f0 Get rid of idGenerator service
Use built-in $id value instead.

Change-Id: Ifed0b3a145a83d95bb129c335751d7fb954f98ea
2015-01-08 10:47:31 -08:00
Timur Sufiev
5b8f8dff14 Implement schema-driven Action layout rendering
Make use of repeat-ng `track by` clause to avoid unnecessary DOM
redraw by ng-repeat each time the scope changes.

Change-Id: I8e2513c5aeabd8ec4bbf72ed025bd3d5da08f94d
2015-01-08 09:59:17 -08:00
Timur Sufiev
bd9220ac5a Make use of SASS mixins
Rewrite existing css rules for Merlin/Mistral, clear low-level layout
info from html (move it into mixins).

Change-Id: I573763c2f31de98214f15f43fc53086ac994479e
2014-12-29 16:45:43 -08:00
Timur Sufiev
add6df5ef7 Replace collapsible groups boilerplate html with angular directive
Change-Id: Id47d0ea3dfc466187a14b7da423004f24795826d
2014-12-29 10:07:10 -08:00
Timur Sufiev
eb55cfaf87 Replace collapsible panels with angular directive
Change-Id: Ib27adf29574260666421461ff45959d65cabe901
2014-12-29 09:01:05 -08:00
Timur Sufiev
525477601b Replace combined field (YF + AF) with angular directive
Change-Id: Ie8ba632c1bb6a9a47c427c92aa620b7dd7c28485
2014-12-29 07:31:08 -08:00
Timur Sufiev
b5cecf04b6 Rewrite edit popup as angular directive
Change-Id: Ie554889f757741c33f5e8d5ef80cfdaa613f360a
2014-12-29 06:43:10 -08:00
Timur Sufiev
00e5cb0036 Change how the YAQL fields are displayed
Change-Id: I2c311bd0822232ce237f7bf9e052786d955de269
2014-12-23 16:18:39 -08:00
Timur Sufiev
caa4d0d2c0 Prepare layout snippets for Workflows section
Change-Id: I89a607b5a1730c6f860fdb2929cdd60165e9030b
2014-12-23 14:14:26 -08:00
Timur Sufiev
eef5d1c4e4 Prepare layout snippets for Actions section
Change-Id: I6e8a94ca80300b1553a735004eebb1840977edbd
2014-12-23 11:34:34 -08:00
Timur Sufiev
4801a01b93 Improve Add Workbook Horizon UX
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
2014-10-17 20:47:12 +04:00
Timur Sufiev
0019829042 Minor doc fix
Change-Id: I093f9fa527abc306e34a7925585e703f0368d639
2014-10-16 19:43:35 +04:00
Timur Sufiev
83d579872a Rewrite Merlin as a collection of Django apps for Horizon integration
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
2014-10-16 19:32:50 +04:00
Timur Sufiev
e2428306cd Minor change to Mistral schema
Name members of Task->requires sequence as 'Task#' instead of
'Element#'.

Change-Id: I2e35369fb9341babb8d8507a17812518df3e7d35
2014-10-06 16:54:47 +04:00
Timur Sufiev
5e541bb05b Add 'task-defaults' property to Workflow
It defines some default values for children tasks.

Change-Id: I279a0023203f74f071bd57de954cbc751912ff37
2014-10-03 13:14:33 +04:00
Timur Sufiev
1262d528b6 Update DAL on 'change' event on input field
This allows to remove 'Set' button and clear UI significantly.

Change-Id: I217c683a5409a7c3f7bd2e1d53b2c63279f09123
2014-10-01 22:59:57 +04:00
Timur Sufiev
548513b34a Rename '*parameters' in Mistral schemas to 'input'
Change-Id: Ie8049ac7fb74391f831bdfa02de07ecb5fe2bcf1
2014-10-01 22:59:57 +04:00
Timur Sufiev
29eaf97ffb Make Task being added depend also on Workflow type
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
2014-10-01 22:59:57 +04:00
Timur Sufiev
27cc3b4525 Give meaningful names to elements of Arrays
Also make some changes to Mistral schema.

Change-Id: Id9efcd9b7d12697c68226fa104545cf737d62679
2014-10-01 22:59:14 +04:00
Timur Sufiev
0b57e9f29f Remove 'version' field from everywhere except Workbook
Change-Id: Ibc79e49eddad677043de1dac2388fbede84edab9
2014-10-01 15:44:15 +04:00
Timur Sufiev
72e4f72165 Fix bug in setting select node
Change-Id: I3ef1b90ad84768b764367c7f55ede4d4db7fc86c
2014-10-01 15:33:04 +04:00
Timur Sufiev
2902889b8c Auto-expand newly added Array/ FluidContainer items
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
2014-10-01 00:38:01 +04:00
Timur Sufiev
06b51becb6 Added 'Remove' action for Arrays and FluidContainers
Change-Id: Ifb3a531eb49f1c48954574368b9ddf65b216e1b2
2014-10-01 00:22:17 +04:00
Timur Sufiev
1dd2ebb743 Poor man's 2-way data binding between name and container keys
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
2014-10-01 00:20:14 +04:00
Timur Sufiev
34e0078b0d Restrict Tasks that can be required by the given Task
... 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
2014-09-30 22:46:11 +04:00
Timur Sufiev
c3f1032931 Restrict Action/Workflow for a Task to existing ones
Change-Id: I7d049f624148874adc86fffc23299bd064c90ae8
2014-09-30 21:56:50 +04:00
Jenkins
ca580869e3 Merge "Move Mistral schemas to a separate file" 2014-09-30 17:30:39 +00:00
Timur Sufiev
af984c18d3 Move Mistral schemas to a separate file
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
2014-09-30 21:29:24 +04:00
Jenkins
119b563c17 Merge "Add @enum and @ref to top-level version" 2014-09-24 20:59:14 +00:00
Jenkins
7f5d9ed7f5 Merge "Make use of '@default' for input widgets" 2014-09-24 17:00:21 +00:00
Timur Sufiev
caf3d9e995 Add @enum and @ref to top-level version
* 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
2014-09-24 20:16:52 +04:00
Timur Sufiev
3c2277fb28 Add README.md with instructions on running PoC
Change-Id: Ia5c09aff193c9d774bff55bdcf41768f2c3776ca
2014-09-24 17:53:39 +04:00
Timur Sufiev
3ea20626aa Make use of '@default' for input widgets
Change-Id: Iabc116198d3236398599b23d3f08512274e0c252
2014-09-19 16:52:46 +04:00
Timur Sufiev
cdc6bfe859 Add 'Set' button to inputs, make use of '@enum' property
Also adapt to cleaned up barricade code.

Change-Id: I004a9841620ff2c7c600628f0b244c9a02608eff
2014-09-19 16:41:37 +04:00
Timur Sufiev
7a09aeafa3 Draft support of filling Mistral workbooks (via Barricade.js)
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
2014-09-11 20:53:22 +04:00
OpenStack Project Creator
20df447086 Added .gitreview 2014-08-28 23:51:02 +00:00