mistral-dashboard Cron Trigger UI Screen

Registered by Gal Margalit on 2015-07-20

Summary
========
1. Create UI screen for cron-trigger.
2. Follow OpenStack Horizon look and feel.

Motivation
========
1. No GUI screen for the cron-trigger entity

Mock
====
Needed!

Description
=========
Implement the following GUI:

1. Cron Triggers list
  a. Columns are:
    * Name - Link to open Cron-trigger Overview
    * Workflow - Link to Workflow overview screen
    * Pattern - Show expression + human readable string (for example, "* * * * * - every minute").
    * First execution time
    * Next execution time
    * Remaining executions - number of remaining executions
    * Created at
    * Actions - Delete button

  b. Sort allowed by Name, worflow, created at, Next execution time, remaining executions.
      Default sort by "created_at" DESC
      client side sorting until API v3)

  c. Filter by name, workflow.

2. Cron-trigger overview
  a. Shows the following info:
    * Name
    * Workflow - Link to Workflow overview screen
    * Params
    * Pattern - Show expression + human readable string (for example, "* * * * * - every minute").
    * First execution time
    * Next execution time
    * Remaining executions
    * Created at

3. Cron-trigger delete
  a. From an action menu button in the row
  b. From top level button to allow multi delete.

4. Cron-trigger create
  a. A create dialog with the following fields:
    * Name - textarea
    * Workflow - Dropdown
    * Params
       - textarea to write JSON (similar to workflow execute). Default value "{}".
         - Browse for file

    * Radio button, select either:

      - Recurring
        * Pattern - textbox to enter the expression (future tbd implementation of human readable label
           updated as the user types, and a timepicker widget)
        * Count - Greater than 0
.
      - Once
        * Execution time - widget for entering date + hour + minute
          https://github.com/Eonasdan/bootstrap-datetimepicker
          We'll also need a library to convert Datetime to cron format, could be done in either JavaScript
          or Python

5. Auto refresh the entire screen

Outside Dependencies
==================
API calls are supported (Mistral base API):
cron-trigger-create
cron-trigger-list
cron-trigger-get
cron-trigger-delete

Doc Impact
=========
1. Add explanation to the new UI elements
2. Add explanation to the new flow

Blueprint information

Status:
Started
Approver:
Renat Akhmerov
Priority:
High
Drafter:
Gal Margalit
Direction:
Approved
Assignee:
Gal Margalit
Definition:
Approved
Series goal:
None
Implementation:
Blocked
Milestone target:
None
Started by
Gal Margalit on 2015-12-20

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/mistral-dashboard-cron-trigger-screen,n,z

Addressed by: https://review.openstack.org/262814
    UI: Cron Trigger screens - list and overview

Addressed by: https://review.openstack.org/269150
    UI: Cron trigger create modal

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.