cluedin-widget
Version: 
This project contains all the pages needed for browsing entities and searching them. The aim is to replace the CluedIn.Webapp project with this one when all the pages ( including the Admin page ) will be ported to REACT.
53 lines (47 loc) • 3 kB
JSX
import React, { Component } from 'react'
import EntityDefaultHeader from '../entityRelated/EntityDefaultHeader.jsx'
import { makeNoValueRow, makePropHtml, makeTaskBadgeHtml, findFromKey, MergeProp } from '../../helpers/properties.jsx'
var noStatus          = makeNoValueRow( 'Status' );
var noPriority        = makeNoValueRow( 'Priority' );
var noIsCompleted     = makeNoValueRow( 'Is Completed?' );
var noCompletionDate  = makeNoValueRow( 'Completion Date' );
var noCompleterName   = makeNoValueRow( 'Completer Name' );
var noResponsibleName = makeNoValueRow( 'Responsible Name' );
export default class Task extends Component {
    render() {
        const { entity } = this.props;
        var statusProp               = findFromKey( entity.properties, 'status' );
        var priorityProp             = findFromKey( entity.properties, 'priority' );
        var isCompletedProp          = findFromKey( entity.properties, 'iscompleted' );
        var completionDataProp       = findFromKey( entity.properties, 'completionDate' );
        var completerFirstNameProp   = findFromKey( entity.properties, 'completerFirstName' );
        var completerLastNameProp    = findFromKey( entity.properties, 'completerLastName' );
        var responsibleFirstNameProp = findFromKey( entity.properties, 'responsibleFirstName' );
        var responsibleLastNameProp  = findFromKey( entity.properties, 'responsibleLastName' );
        let statusHtml              = statusProp ? makeTaskBadgeHtml( statusProp ) : noStatus;
        let priorityHtml            = priorityProp ? makePropHtml( priorityProp ) : noPriority;
        let isCompletedHtml         = isCompletedProp ? makePropHtml( isCompletedProp ) : noIsCompleted;
        let completionDataHtml      = completionDataProp ? makePropHtml( completionDataProp ) : noCompletionDate;
        let completerFullNameHtml   = (completerFirstNameProp || completerLastNameProp) ? MergeProp( 'Completer Name', completerFirstNameProp, completerLastNameProp ) : noCompleterName;
        let responsibleFullNameHtml = (responsibleFirstNameProp || responsibleLastNameProp) ? MergeProp( 'Responsible Name', responsibleFirstNameProp, responsibleLastNameProp ) : noResponsibleName;
        return (
            <div className="cluedIn_entity_row">
                <EntityDefaultHeader entity={entity}></EntityDefaultHeader>
                <div className="cluedIn_row cluedIn_row_notCentered cluedIn_entity_table">
                    <div className="cluedIn_col s6">
                        {statusHtml}
                    </div>
                    <div className="cluedIn_col s6">
                        {completerFullNameHtml}
                    </div>
                    <div className="cluedIn_col s6">
                        {completionDataHtml}
                    </div>
                    <div className="cluedIn_col s6">
                        {responsibleFullNameHtml}
                    </div>
                </div>
            </div>
        );
    }
}