cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
163 lines (122 loc) • 4.22 kB
JSX
import React from 'react';
import EntityValueRow from '../components/entityRelated/EntityValueRow.jsx'
const NAHtml = (<span>N/A</span>);
export function findFromKey( properties, key ) {
return properties.find( function( prop ) {
return ( prop && ( prop.key === key ));
} );
}
export function makeNoValueRow( key ) {
return (
<div className="cluedIn_m-t-xs">
<div className="cluedIn_label">
{key}
</div>
<div className="cluedIn_value">
{NAHtml}
</div>
</div>
);
}
export function makeTaskBadgeHtml( prop ) {
var badgeHtml = NAHtml;
var badgetClass = "cluedIn_badge";
if ( prop.value.toLowerCase() !== 'Accepted'.toLowerCase() && prop.value.toLowerCase() !== 'completed'.toLowerCase() ) {
badgetClass += " warning";
}
if ( prop.value ) {
badgeHtml = <span className={badgetClass}>{prop.value}</span>
}
return (<EntityValueRow name={prop.displayName}>{badgeHtml}</EntityValueRow>);
}
export function makeBadgeHtml( prop ) {
var badgeHtml = NAHtml;
var badgetClass = "cluedIn_badge";
if ( prop.value === 'open' ) {
badgetClass += " danger";
}
if ( prop.value ) {
badgeHtml = <span className={badgetClass}>{prop.value}</span>
}
return (<EntityValueRow name={prop.displayName}>{badgeHtml}</EntityValueRow>);
}
export function MergeProp( displayName, prop1, prop2 ) {
var valueToDisplay;
if ( prop1 && prop1.value ) {
valueToDisplay = prop1.value;
}
if ( prop2 && prop2.value ) {
if ( valueToDisplay ) {
valueToDisplay += " " + prop2.value;
} else {
valueToDisplay = prop2.value;
}
}
return (<EntityValueRow name={displayName}>{valueToDisplay || NAHtml }</EntityValueRow>);
}
export function makePropHtml( prop ) {
return (<EntityValueRow name={prop.displayName}>{prop.value || NAHtml }</EntityValueRow>);
}
export function makeGoogleMapUrl( prop ) {
return 'http://maps.google.com/?q=' + prop;
}
export function makeGmapLink( prop ) {
var linkHtml = NAHtml;
if ( prop.value ) {
var link = 'http://maps.google.com/?q=' + prop.value;
linkHtml = <a target="__blank" href={link}>{prop.value}</a>
}
return (<EntityValueRow name={prop.displayName}>{linkHtml}</EntityValueRow>);
}
export function makeLinkedInLinkValue( prop ) {
if ( prop.value ) {
if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://linkedin.com/in/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeTwitterLinkValue( prop ) {
if ( prop.value ) {
if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://twitter.com/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeTwitterLink( prop ) {
var linkHtml = NAHtml;
let link = prop.value;
if ( prop.value ) {
if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
link = 'http://twitter.com/' + prop.value;
}
linkHtml = <a target="__blank" href={link}><i className="fa fa-twitter"></i>{prop.value}</a>
}
return (
<div className="cluedIn_social_link">
{linkHtml}
</div>
);
}
export function makeLinkValue( prop ) {
if ( prop.value ) {
if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
prop.value = 'http://' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeLinkHtml( prop ) {
var linkHtml = NAHtml;
if ( prop.value ) {
if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
prop.value = 'http://' + prop.value;
}
linkHtml = <a target="__blank" href={prop.value}>{prop.value}</a>
}
return (<EntityValueRow name={prop.displayName}>{linkHtml}</EntityValueRow>);
}