cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
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;
}
};