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.
249 lines (188 loc) • 5.72 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.indexOf('http://') === -1 && prop.indexOf('https://') === -1) {
return `https://linkedin.com/in/${prop}`;
}
return prop;
}
export function makeTwitterLinkValue(prop) {
if (prop.indexOf('http://') === -1 && prop.indexOf('https://') === -1) {
return `https://twitter.com/${prop}`;
}
return prop;
}
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) {
if (prop.indexOf('http://') === -1 && prop.indexOf('https://') === -1) {
return 'https://crunchbase.com/' + prop;
}
return prop;
}
return prop;
}
export function makeTwitterLink(prop) {
var linkHtml = NAHtml;
let link = prop;
if (prop) {
if (prop.indexOf('http://') === -1 && prop.indexOf('https://') === -1) {
link = 'http://twitter.com/' + prop;
}
linkHtml = <a target="__blank" href={link}><i className="fa fa-twitter"></i></a>
}
return (
<div className="cluedIn_social_link">
{linkHtml}
</div>
);
}
export function makeLinkWithDirectValue(prop) {
if (prop.indexOf('http://') === -1 && prop.indexOf('https://') === -1) {
prop = 'http://' + prop;
}
return prop;
}
export function makeLinkValue(prop) {
if (prop.indexOf('http://') === -1 && prop.indexOf('https://') === -1) {
prop = 'http://' + prop;
}
return prop;
}
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>);
}