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.
255 lines (191 loc) • 6.47 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 findFromKeyValue( properties, key ) {
var p = properties.find( function( prop ) {
return ( prop && ( prop.key === key ));
} );
return p ? p.value : undefined;
}
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 makeAngelListLinkValue( prop ) {
if( prop.value ) {
if( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://angel.co/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeWikipediaLinkValue( prop ) {
if( prop.value ) {
if( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://wikipedia.com/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeDunsLinkValue( prop ) {
if( prop.value ) {
if( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://duns.com/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeGooglePlusLinkValue( prop ) {
if( prop.value ) {
if( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://plus.google.com/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeInstagramLinkValue( prop ) {
if( prop.value ) {
if( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://instagram.com/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeGithubLinkValue( prop ) {
if( prop.value ) {
if( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://github.com/' + prop.value;
}
return prop.value;
}
return prop.value;
}
export function makeCrunchbaseLinkValue( prop ) {
if( prop.value ) {
if( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) {
return 'https://crunchbase.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></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>);
}