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.
111 lines (96 loc) • 2.98 kB
JavaScript
import wms from '../../wms';
module.exports = function (protocol, mainDomain, clientId) {
var goToApp = function (url) {
return protocol + clientId + mainDomain + url;
};
var getEntityLink = (id, entityType, isStandAlone) => {
let defaultEntity = `entity/${id}`;
let entityConfig = wms.getWidgetConfiguration(entityType);
if (entityConfig && entityConfig.route) {
let entityUrl = entityConfig.route.replace(':id', id);
if (isStandAlone) {
return goToApp(entityUrl);
} else {
return `/${entityUrl}`;
}
}
return isStandAlone ? goToApp(defaultEntity) : `/${defaultEntity}`;
};
return {
getFullAggregationLink(entityId, type) {
return goToApp(`search/*?aggregation=${entityId}&type=${type}`);
},
getPartialAggregationLink(entityId, type) {
return `/search/*?aggregation=${entityId}&type=${type}`;
},
redirectToUrl(url) {
window.location = url;
},
goToSignOut() {
return goToApp('logout');
},
gotToAdminUserRoot() {
return goToApp('admin#/me/settings/security');
},
gotToAdminAccountRoot() {
return goToApp('admin#/administration/integration/all');
},
goToSeeAdministratorLinkPage() {
return goToApp('admin/#/me/organization/administrators');
},
goToConnectedProvider() {
return goToApp('admin/#/administration/integration/current');
},
goToChrome(id) {
return `${protocol}${id}${mainDomain}/chrome`;
},
goToRoot(id) {
return `${protocol}${id}${mainDomain}`;
},
gotToAppProvider(params) {
return goToApp('admin/#/administration/integration/integration/new/' + params[0] + '/' + params[1]);
},
goToSignInViaLogout() {
return goToApp('logout');
},
goToSearch(searchTerm) {
return goToApp('search/' + searchTerm);
},
goToEntityFromInsight(entityInsight) {
let id = entityInsight.EntityId;
let entityType = entityInsight.EntityType;
return getEntityLink(id, entityType);
},
goToEntityWithTypeAndId(params) {
const entityType = params[0];
const id = params[1];
return getEntityLink(id, entityType, true);
},
goToEntity(entity, isStandAlone) {
let id = entity.id;
let entityType = entity.data ? entity.data.entityType : '';
return getEntityLink(id, entityType, isStandAlone);
},
goToApp,
goToMainApp() {
return protocol + 'app' + mainDomain;
},
goToInviteUser(param) {
let url = 'admin/#/administration/useradmin/domainusers?open=true';
if (param && param.email) {
url += '&email=' + param.email;
}
if (param && param.name) {
url += '&name=' + param.name;
}
return goToApp(url);
},
goToAppProvider(type) {
let url = 'admin/#/administration/integration/all';
if (type) {
url += '?type=' + type;
}
return goToApp(url);
},
};
};