UNPKG

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
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>); }