@cardstack/workflow

The default blueprint for ember-cli addons.

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
2498Jun 15, 2021Jan 15, 2017Minified + gzip package size for @cardstack/workflow in KB

Readme

@cardstack/workflow

The workflow package gives host apps a workflow system where each workflow can have a priority (which might change over time) and several tags.

It displays a notification counter and, when opened, a couple of panels to see the workflows grouped by priority and by tag. It allows to see at a glance which workflows need to be acted on, and then act on them.

Public API

Host apps need to render the {{cardstack-workflow}} component where they want the workflow panels to appear (preferably in the left edge of the screen).

The component accesses data through the cardstack-workflow service which also defines the following methods for the host app to use:

  • createThread(message1, message2, ...)
  • createMessageFor(cardModel, properties)

Creating a message for each card model in your application is required (the workflows work with messages under the hood) and is supported by the createMessageFor method above.

(We'll probably need a 3rd method to get the thread for a given card model).

Let's see an example.

Assume you have a rental model in your application and the corresponding card model, rental-card. To create a workflow where a new rental is offered, you'd do as follows:


workflow: inject('cardstack-workflow'),

let urgent = this.get('store').queryRecord('priority', { name: 'urgent' });
let bayArea = this.get('store').queryRecord('tag', { name: 'Bay Area' });

let rentalCard = this.get('store').createRecord('rental-card');

rentalCard.save(() => {
  let message = this.get('workflow').createMessageFor(rentalCard, {
    priority: urgent,
    tags: [ bayArea ],
  });
  return this.get('workflow').createThread(message);
});

In your app you define your models and then use the above methods to create a workflow around them.

For a detailed example, see the dummy app in this package.

Installation

  • git clone <repository-url> this repository
  • cd @cardstack/workflow
  • yarn install

Running

Running Tests

Run tests locally:

  • ember test --server

TravisCI runs the tests for each ember version listed in .travis.yml.

Building

  • ember build

For more information on using ember-cli, visit https://ember-cli.com/.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.