Initial commit
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
export function isOrganizationAdmin (organizationData = {}, userData = {}) {
|
||||
return organizationData.owner.id === userData.id ||
|
||||
Boolean((organizationData.admins || []).find(u => u.id === userData.id));
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import TableNameUtils from 'builder/helpers/table-name-utils';
|
||||
|
||||
export function getUnqualifiedName (originalName) {
|
||||
return TableNameUtils.getUnqualifiedName(originalName);
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
import PermissionModel from 'dashboard/data/permission-model';
|
||||
|
||||
export function isSharedWithMe (visualizationData, models) {
|
||||
return models.user.get('id') !== visualizationData.permission.owner.id;
|
||||
}
|
||||
|
||||
export function getURL (visualizationData, models) {
|
||||
const loggedUserBackboneModel = models.user;
|
||||
const loggedUserId = loggedUserBackboneModel.id || loggedUserBackboneModel.get('id');
|
||||
const permissionModel = new PermissionModel(
|
||||
visualizationData.permission, { configModel: models.config }
|
||||
);
|
||||
|
||||
let id = visualizationData.id;
|
||||
let userUrl = permissionModel.owner.viewUrl();
|
||||
|
||||
const isVisualization = visualizationData.type === 'derived' || typeof visualizationData.type === 'undefined';
|
||||
if (isVisualization) {
|
||||
if (loggedUserBackboneModel &&
|
||||
loggedUserId !== permissionModel.owner.get('id') &&
|
||||
permissionModel.hasAccess(loggedUserBackboneModel)) {
|
||||
userUrl = loggedUserBackboneModel.viewUrl();
|
||||
id = `${permissionModel.owner.get('username')}.${id}`;
|
||||
}
|
||||
|
||||
return userUrl.urlToPath('viz', id).get('base_url');
|
||||
} else {
|
||||
if (loggedUserBackboneModel && permissionModel.hasAccess(loggedUserBackboneModel)) {
|
||||
userUrl = loggedUserBackboneModel.viewUrl();
|
||||
}
|
||||
|
||||
return userUrl.urlToPath('tables', getUnquotedName(visualizationData.table.name)).get('base_url');
|
||||
}
|
||||
}
|
||||
|
||||
export function getThumbnailUrl (visualizationData, models, options) {
|
||||
const protocol = isHTTPS() ? 'https' : 'http';
|
||||
const cdnConfig = models.config.get('cdn_url');
|
||||
const username = visualizationData.permission.owner.username || models.user.get('username');
|
||||
const thumbnailOptions = {
|
||||
protocol,
|
||||
username,
|
||||
mapsApiResource: models.config.getMapsResourceName(username),
|
||||
tpl: _generateImageTemplate(visualizationData.id),
|
||||
width: options.width,
|
||||
height: options.height,
|
||||
authTokens: _generateAuthTokensParams(visualizationData.auth_tokens)
|
||||
};
|
||||
|
||||
if (cdnConfig) {
|
||||
Object.assign(thumbnailOptions, { cdn: cdnConfig[protocol] });
|
||||
}
|
||||
|
||||
return interpolateTemplateUrl(cdnConfig ? 'cdn' : 'regular', thumbnailOptions);
|
||||
}
|
||||
|
||||
const interpolateTemplateUrl = function (type, options) {
|
||||
if (type === 'regular') {
|
||||
return `${options.protocol}://${options.mapsApiResource}/api/v1/map/static/named/${options.tpl}/${options.width}/${options.height}.png${options.authTokens}`;
|
||||
}
|
||||
|
||||
if (type === 'cdn') {
|
||||
return `${options.protocol}://${options.cdn}/${options.username}/api/v1/map/static/named/${options.tpl}/${options.width}/${options.height}.png${options.authTokens}`;
|
||||
}
|
||||
};
|
||||
|
||||
const _generateAuthTokensParams = function (authTokens) {
|
||||
if (authTokens && authTokens.length > 0) {
|
||||
return '?' + authTokens.map(t => `auth_token=${t}`).join('&');
|
||||
}
|
||||
|
||||
return '';
|
||||
};
|
||||
|
||||
const _generateImageTemplate = function (visualizationId) {
|
||||
return `tpl_${visualizationId.replace(/-/g, '_')}`;
|
||||
};
|
||||
|
||||
const isHTTPS = function () {
|
||||
return location.protocol.indexOf('https') === 0;
|
||||
};
|
||||
|
||||
const getUnquotedName = function (name = '') {
|
||||
return name.replace(/"/g, '');
|
||||
};
|
||||
Reference in New Issue
Block a user