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.

255 lines (191 loc) • 6.47 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.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>); }