Giter VIP home page Giter VIP logo

raincatcher-workflow-angular's Introduction

Raincatcher Workflow Angular User Interface

This module is an Angular JS implementation of Workflows for the Raincatcher project.

Setup

This module is packaged in a CommonJS format, exporting the name of the Angular namespace. The module can be included in an angular.js as follows:

var config = {
  mode: 'admin',
  listColumnViewId: 'listColumnView',
  mainColumnViewId: 'detailColumnView'
};

var config = {
  mode: 'user',
  toolbarViewId: 'toolbarView',
  mainColumnViewId: 'detailColumnView'
};

angular.module('app', [
...
, require('fh-wfm-workflow-angular')(config)
...
])

Configuration Options

The following configuration options are available for this module:

mainColumnViewId (Required)

This is the identifier for the Angular view where the main Workflow views will be rendered.

listColumnViewId (Optional)

This is the identifier for the Angular view where the list of Workflows will be rendered into. This is useful for organising where the lists will be rendered on-screen. If not specified, the lists will be rendered into the mainColumnViewId. This is only used for the admin mode of the module.

toolbarViewId (User Required)

This is the identifier of the Angular view where the progress of a workflow is displayed to the user. This is only required for scenarios where a workflow is being progressed (e.g. in a mobile application)

Workflow Directives

Name Description
workflow-detail Displays the workflow to the user and allows re-ordering of the steps.
workflow-form Allows editing of the workflow name
workflow-list Displays a list of workflows
workflow-progress Displays the current progress of a workflow
workflow-result Displays the result of a single workflow
workflow-step-detail Displays the detail for a single step of a workflow
workflow-step-form Allows the user to edit a single step of the workflow

Workflow Step Process

The following directives are used to guide a user through the steps necessary to complete a workflow. The workflow module itself does not contain the logic required for each step, but uses the template directives to render each of the steps to the user.

The workflow-process-parent route is an Angular JS abstract route that is used for all steps in a workflow.

The workflow-process-begin route and controller are used to display the summary of the workflow and any results that there may be.

The workflow-process-steps route publishes topics to get the current state of the workflow for a workorder. Based on the state, the workflow-step directive renders the template defined in the workflow step. At this point, control is passed to the module that implements the individual step.

Topics

As part of rendering Workflows, this module publishes and subscribes to several topics. These topics can be implemented in your application or you can use the fh-wfm-workflow module that already has implementations for these topics.

Published Topics

Each of the following topics subscribes to the error and done topics. If the parameter includes a topicUid, the error topic should have the topicUid appended to the done or error topic.

Topic Parameters
wfm:workflows:list NONE
wfm:workflows:read {id: "IDOFWORKFLOW", topicUID: "IDOFWORKFLOW"}
wfm:workflows:create { workflowToCreate: workflowToCreate, topicUid: topicUid}
wfm:workflows:update { workflowToUpdate: workflowToCreate, topicUid: topicUid}
wfm:workflows:remove { id: "IDOFWORKFLOW, topicUid: "IDOFWORKFLOW"}
wfm:workorders:list NONE
wfm:appform:form:list NONE

Step Topics

The following topics allow the updating of the workflow state to progress through a workflow.

Each of the done topics for the following topics contin the following parameters

{
    workflow: {
      //The details of the current workflow being progressed
    },
    workorder: {
      //The details of the current workorder being progressed
    },
    result: {
      //The current result object for this workorder being progressed
    },
    nextStepIndex: 0 //The index of the next step to display
    step: {
        //The details of the step to display
    }
}
Topic Parameters
wfm:workflows:step:begin {workorderId: "WORKORDERID", topicUid: "WORKORDERID"}
wfm:workflows:step:summary {workorderId: "WORKORDERID", topicUid: "WORKORDERID"}
wfm:workflows:step:previous {workorderId: "WORKORDERID", topicUid: "WORKORDERID"}
wfm:workflows:step:complete {workorderId: "WORKORDERID", topicUid: "WORKORDERID", submission: {...}, stepCode: "CODEOFCOMPLETEDSTEP"}

raincatcher-workflow-angular's People

Contributors

nialldonnellyfh avatar austincunningham avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.