Home Reference Source Repository

js/Models/WorkflowRun.js

import BaseModel from './BaseModel';

/**
 * WorkflowRun.
 */
export default class WorkflowRun extends BaseModel
{
///////////////////////////////////////////////////////////////////////////////////////
// PUBLIC METHODS
///////////////////////////////////////////////////////////////////////////////////////
    /**
     * Initialize.
     */
    initialize()
    {
        this.set('statusText', this._getStatusText(this.get('status')));
    }

    /**
     * Returns defaults.
     *
     * @return {object} object holding default values
     */
    defaults()
    {
        return {created: null, updated: null};
    }

    /**
     * Override of Backbone.Model.parse. This will populate 'statusText' from the existing status.
     *
     * @param {object} response JSON response from server
     * @return {object} response object
     */
    parse(response)
    {
        this.set('statusText', this._getStatusText(response.status));
        return response;
    }

///////////////////////////////////////////////////////////////////////////////////////
// PRIVATE METHODS
///////////////////////////////////////////////////////////////////////////////////////
    /**
     * Return text based on status.
     */
    _getStatusText(status)
    {
        switch(status)
        {
            case -1:
            {
                return 'Failed';
            }

            case 0:
            {
                return 'Scheduled';
            }

            case 1:
            {
                return 'Processing';
            }

            case 2:
            {
                return 'Waiting for input';
            }

            case 4:
            {
                return 'Finished';
            }

            case 8:
            {
                return 'Expired';
            }

            case 9:
            {
                return 'Cancelled';
            }

            case 11:
            {
                return 'Retrying';
            }

            default:
            {
                return 'Unknown status';
            }
        }
    }
}
WorkflowRun.prototype.routeName = 'workflowruns';