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.
120 lines (102 loc) • 4.62 kB
JSX
import React, { Component } from 'react';
import config from '../../config';
import { FormattedHTMLMessage } from 'react-intl';
const locationHelper  = config.location;
const providerCrm     = locationHelper.goToAppProvider( 'CRM' );
const taskUrl         = locationHelper.goToAppProvider( 'TASK' );
const providerSupport = locationHelper.goToAppProvider( 'SUPPORT' );
const cloudFileLink   = locationHelper.goToAppProvider( 'CLOUDFILE' );
const defaultLocation = locationHelper.goToAppProvider();
const adminLink       = locationHelper.goToSeeAdministratorLinkPage();
class NoEntityMessage extends Component {
    render() {
        const { messageId, actionId, link } = this.props;
        let actionContent;
        let values = {
            adminLink
        };
        if ( actionId ) {
            actionContent = (<div className="cluedIn_noEntities_action">
                <a className="cluedIn_btn cluedIn_btn-primary" href={link}>
                    <FormattedHTMLMessage id={actionId}/>
                </a>
            </div>);
        }
        return (<div className="cluedIn_noEntities">
            <div className="cluedIn_noEntities_text">
                <FormattedHTMLMessage id={messageId} values={values}/>
            </div>
            {actionContent}
        </div>);
    }
}
export default class NoEntities extends Component {
    getCRMAdminContent() {
        return <NoEntityMessage messageId="NoEntities.CRMAddMoreIntegrationAdmin"
                                actionId="NoEntities.CRMAddMoreIntegrationActionAdmin"
                                link={providerCrm}></NoEntityMessage>;
    }
    getTaskAdminContent() {
        return <NoEntityMessage messageId="NoEntities.TaskAddMoreIntegrationAdmin"
                                actionId="NoEntities.TaskAddMoreIntegrationActionAdmin"
                                link={taskUrl}></NoEntityMessage>;
    }
    getIssueAdminContent() {
        return <NoEntityMessage messageId="NoEntities.SupportAddMoreIntegrationAdmin"
                                actionId="NoEntities.SupportAddMoreIntegrationActionAdmin"
                                link={providerSupport}></NoEntityMessage>;
    }
    getCloudAdminContent() {
        return <NoEntityMessage messageId="NoEntities.CloudFileAddMoreIntegrationAdmin"
                                actionId="NoEntities.CloudFileAddMoreIntegrationActionAdmin"
                                link={cloudFileLink}></NoEntityMessage>;
    }
    getDefaultAdminContent() {
        return <NoEntityMessage messageId="NoEntities.GenericAddMoreIntegrationAdmin"
                                actionId="NoEntities.GenericAddMoreIntegrationActionAdmin"
                                link={defaultLocation}></NoEntityMessage>;
    }
    getCRMContent() {
        return <NoEntityMessage messageId="NoEntities.CRMAddMoreIntegration" link={providerCrm}></NoEntityMessage>;
    }
    getTaskContent() {
        return <NoEntityMessage messageId="NoEntities.TaskAddMoreIntegration" link={taskUrl}></NoEntityMessage>;
    }
    getIssueContent() {
        return <NoEntityMessage messageId="NoEntities.SupportAddMoreIntegration"
                                link={providerSupport}></NoEntityMessage>;
    }
    getCloudContent() {
        return <NoEntityMessage messageId="NoEntities.CloudFileAddMoreIntegration"
                                link={cloudFileLink}></NoEntityMessage>;
    }
    getDefaultContent() {
        return <NoEntityMessage messageId="NoEntities.GenericAddMoreIntegration"
                                link={defaultLocation}></NoEntityMessage>;
    }
    render() {
        const { entityType, isAdmin } = this.props;
        let html;
        switch( entityType ) {
            case '/Sales/Deal':
                html = isAdmin ? this.getCRMAdminContent() : this.getCRMContent();
                break;
            case '/Task':
                html = isAdmin ? this.getTaskAdminContent() : this.getTaskContent();
                break;
            case '/Organization':
                html = isAdmin ? this.getCRMAdminContent() : this.getCRMContent();
                break;
            case '/Issue':
                html = isAdmin ? this.getIssueAdminContent() : this.getIssueContent();
                break;
            case '/Document/Document':
                html = isAdmin ? this.getCloudAdminContent() : this.getCloudContent();
                break;
            default:
                html = isAdmin ? this.getDefaultAdminContent() : this.getDefaultContent();
                break;
        }
        return html;
    }
};