diff --git a/wherehows-web/app/components/browser/containers/browser-viewport.ts b/wherehows-web/app/components/browser/containers/browser-viewport.ts index aa5e11ea94..b211bc4c3b 100644 --- a/wherehows-web/app/components/browser/containers/browser-viewport.ts +++ b/wherehows-web/app/components/browser/containers/browser-viewport.ts @@ -10,7 +10,7 @@ type IGetEntityTaskStrategy = { [K in IBrowserRouteParams['entity']]: Promise & { node: string }): Partial => { const queryParams = {}; - if (isDatasetPrefix(node)) { - Object.assign(queryParams, { prefix: node.replace(/\//g, '') }); + if (isDatasetSegment(node)) { + Object.assign(queryParams, { prefix: node }); } // If the node is a platform, assign that value to the query params object diff --git a/wherehows-web/app/templates/components/browser/browser-viewport.hbs b/wherehows-web/app/templates/components/browser/browser-viewport.hbs index d8f3291e29..ea6a86a87a 100644 --- a/wherehows-web/app/templates/components/browser/browser-viewport.hbs +++ b/wherehows-web/app/templates/components/browser/browser-viewport.hbs @@ -90,9 +90,6 @@ {{/if}} {{/row.cell}} - {{#row.cell}} - {{datasets/dataset-actions actionItems=actionItems}} - {{/row.cell}} {{/body.row}} {{/each}} {{/table.body}} diff --git a/wherehows-web/app/utils/api/datasets/shared.ts b/wherehows-web/app/utils/api/datasets/shared.ts index 6c34a00735..a2ea713522 100644 --- a/wherehows-web/app/utils/api/datasets/shared.ts +++ b/wherehows-web/app/utils/api/datasets/shared.ts @@ -1,5 +1,6 @@ import { IReadDatasetsOptionBag } from 'wherehows-web/typings/api/datasets/dataset'; import { ApiVersion, getApiRoot } from 'wherehows-web/utils/api/shared'; +import { encodeForwardSlash } from 'wherehows-web/utils/validators/urn'; /** * Defines the endpoint for datasets @@ -49,7 +50,7 @@ export const datasetsUrl = ({ platform, prefix }: IReadDatasetsOptionBag): strin const urlRoot = datasetsUrlRoot('v2'); if (platform && prefix) { - return `${urlRoot}/platform/${platform}/prefix/${prefix}`; + return `${urlRoot}/platform/${platform}/prefix/${encodeForwardSlash(prefix)}`; } if (platform) { diff --git a/wherehows-web/app/utils/api/platforms/platform.ts b/wherehows-web/app/utils/api/platforms/platform.ts index 319b3df53d..8c80f05f79 100644 --- a/wherehows-web/app/utils/api/platforms/platform.ts +++ b/wherehows-web/app/utils/api/platforms/platform.ts @@ -1,6 +1,7 @@ import { IReadDatasetsOptionBag } from 'wherehows-web/typings/api/datasets/dataset'; import { getJSON } from 'wherehows-web/utils/api/fetcher'; import { ApiVersion, getApiRoot } from 'wherehows-web/utils/api/shared'; +import { encodeForwardSlash } from 'wherehows-web/utils/validators/urn'; /** * Generates the base url for a platform given a specified ApiVersion @@ -18,7 +19,7 @@ const platformsUrl = ({ platform, prefix }: IReadDatasetsOptionBag): string => { const urlRoot = platformsUrlRoot('v2'); if (platform && prefix) { - return `${urlRoot}/${platform}/prefix/${prefix}`; + return `${urlRoot}/${platform}/prefix/${encodeForwardSlash(prefix)}`; } if (platform) { diff --git a/wherehows-web/app/utils/validators/platform.ts b/wherehows-web/app/utils/validators/platform.ts index d7eefbb173..8cff132f6b 100644 --- a/wherehows-web/app/utils/validators/platform.ts +++ b/wherehows-web/app/utils/validators/platform.ts @@ -13,11 +13,11 @@ const platformRegex = /\[platform=([^\]]+)]/; const isDatasetPlatform = (candidate: string): boolean => platformRegex.test(candidate); /** - * Checks that a string represents a dataset prefix + * Checks that a string represents a dataset segment * @param {string} candidate * @returns {boolean} */ -const isDatasetPrefix = (candidate: string): boolean => +const isDatasetSegment = (candidate: string): boolean => !isDatasetPlatform(candidate) && ['.', '/'].includes(candidate.slice(-1)); /** @@ -50,4 +50,4 @@ const sanitizePlatformNodeString = (nodeString: string): string => { return nodeString; }; -export { platformRegex, isDatasetPlatform, isDatasetPrefix, getPlatformFromString, sanitizePlatformNodeString }; +export { platformRegex, isDatasetPlatform, isDatasetSegment, getPlatformFromString, sanitizePlatformNodeString }; diff --git a/wherehows-web/app/utils/validators/urn.ts b/wherehows-web/app/utils/validators/urn.ts index b778a504e6..9aebb0dae1 100644 --- a/wherehows-web/app/utils/validators/urn.ts +++ b/wherehows-web/app/utils/validators/urn.ts @@ -110,6 +110,7 @@ export { specialFlowUrnRegex, getPlatformFromUrn, convertWhUrnToLiUrn, + encodeForwardSlash, encodeUrn, decodeUrn };