diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json
index f1aa72cdf..d5fe4b7b6 100644
--- a/l10n/bundle.l10n.json
+++ b/l10n/bundle.l10n.json
@@ -7,7 +7,6 @@
"You are editing a live, public site ": "You are editing a live, public site ",
"Preview site": "Preview site",
"Open in Power Pages studio": "Open in Power Pages studio",
- "Preview site URL is not available": "Preview site URL is not available",
"Preview site URL is not valid": "Preview site URL is not valid",
"Opening preview site...": "Opening preview site...",
"Power Pages studio URL is not available": "Power Pages studio URL is not available",
diff --git a/loc/translations-export/vscode-powerplatform.xlf b/loc/translations-export/vscode-powerplatform.xlf
index dd9afe3d9..347bcc108 100644
--- a/loc/translations-export/vscode-powerplatform.xlf
+++ b/loc/translations-export/vscode-powerplatform.xlf
@@ -398,9 +398,6 @@ The {3} represents Dataverse Environment's Organization ID (GUID)
Preview site
-
- Preview site URL is not available
-
Preview site URL is not valid
diff --git a/src/web/client/common/constants.ts b/src/web/client/common/constants.ts
index bc2d613b6..e6bdf2288 100644
--- a/src/web/client/common/constants.ts
+++ b/src/web/client/common/constants.ts
@@ -96,7 +96,6 @@ export enum queryParameters {
ENV_ID = "envid",
GEO = "geo", // User geo location
ENABLE_MULTIFILE = "enablemultifile",
- WEBSITE_PREVIEW_URL = "websitepreviewurl",
ENTITY = "entity",
ENTITY_ID = "entityid",
REFERRER_SOURCE = "referrersource",
diff --git a/src/web/client/utilities/commonUtil.ts b/src/web/client/utilities/commonUtil.ts
index b859f8450..9f393829d 100644
--- a/src/web/client/utilities/commonUtil.ts
+++ b/src/web/client/utilities/commonUtil.ts
@@ -54,7 +54,7 @@ export function GetFileNameWithExtension(
}
export function isLanguageCodeNeededInFileName(entity: string) {
- return entity === schemaEntityName.WEBPAGES ||entity === schemaEntityName.CONTENTSNIPPETS;
+ return entity === schemaEntityName.WEBPAGES || entity === schemaEntityName.CONTENTSNIPPETS;
}
export function isExtensionNeededInFileName(entity: string) {
@@ -310,7 +310,7 @@ export function getRangeForMultilineMatch(text: string, pattern: string, index:
return range;
}
-export async function validateWebsitePreviewURL(): Promise {
+export async function getValidWebsitePreviewUrl(): Promise<{ websiteUrl: string, isValid: boolean }> {
const envId = getEnvironmentIdFromUrl();
const serviceEndpointStamp = WebExtensionContext.serviceEndpointCategory;
const websitePreviewId = WebExtensionContext.urlParametersMap?.get(queryParameters.PORTAL_ID);
@@ -318,10 +318,10 @@ export async function validateWebsitePreviewURL(): Promise {
if (serviceEndpointStamp === ServiceEndpointCategory.NONE || !envId || !websitePreviewId) {
WebExtensionContext.telemetry.sendErrorTelemetry(
webExtensionTelemetryEventNames.WEB_EXTENSION_WEBSITE_PREVIEW_URL_VALIDATION_INSUFFICIENT_PARAMETERS,
- validateWebsitePreviewURL.name,
+ getValidWebsitePreviewUrl.name,
`serviceEndpointStamp:${serviceEndpointStamp}, envId:${envId}, websitePreviewId:${websitePreviewId}`
);
- return false;
+ return { websiteUrl: '', isValid: false };
}
const siteDetails = await PPAPIService.getWebsiteDetailsById(serviceEndpointStamp, envId, websitePreviewId, WebExtensionContext.telemetry.getTelemetryReporter());
@@ -329,13 +329,14 @@ export async function validateWebsitePreviewURL(): Promise {
if (siteDetails == null) {
WebExtensionContext.telemetry.sendErrorTelemetry(
webExtensionTelemetryEventNames.WEB_EXTENSION_WEBSITE_PREVIEW_URL_VALIDATION_SITE_DETAILS_FETCH_FAILED,
- validateWebsitePreviewURL.name,
+ getValidWebsitePreviewUrl.name,
);
- return false;
+ return { websiteUrl: '', isValid: false };
}
- return siteDetails.websiteUrl.length !== 0 &&
- WebExtensionContext.urlParametersMap.get(queryParameters.WEBSITE_PREVIEW_URL) !== undefined &&
- siteDetails.websiteUrl.toLocaleLowerCase().trim() === WebExtensionContext.urlParametersMap.get(queryParameters.WEBSITE_PREVIEW_URL)?.toLocaleLowerCase().trim();
-}
+ if (siteDetails.websiteUrl.length !== 0) {
+ return { websiteUrl: siteDetails.websiteUrl, isValid: true };
+ }
+ return { websiteUrl: '', isValid: false };
+}
diff --git a/src/web/client/webViews/powerPagesNavigationProvider.ts b/src/web/client/webViews/powerPagesNavigationProvider.ts
index 93e0b1567..8d1d112d3 100644
--- a/src/web/client/webViews/powerPagesNavigationProvider.ts
+++ b/src/web/client/webViews/powerPagesNavigationProvider.ts
@@ -6,15 +6,15 @@
import * as vscode from 'vscode';
import * as path from 'path';
import WebExtensionContext from "../WebExtensionContext";
-import { httpMethod, queryParameters } from '../common/constants';
-import { getBackToStudioURL, isStringUndefinedOrEmpty, validateWebsitePreviewURL } from '../utilities/commonUtil';
+import { httpMethod } from '../common/constants';
+import { getBackToStudioURL, getValidWebsitePreviewUrl } from '../utilities/commonUtil';
import { webExtensionTelemetryEventNames } from '../../../common/OneDSLoggerTelemetry/web/client/webExtensionTelemetryEvents';
export class PowerPagesNavigationProvider implements vscode.TreeDataProvider {
private _onDidChangeTreeData: vscode.EventEmitter = new vscode.EventEmitter();
readonly onDidChangeTreeData: vscode.Event = this._onDidChangeTreeData.event;
- private isWebsitePreviewURLValid: Promise = validateWebsitePreviewURL();
+ private isWebsitePreviewURLValid: Promise<{ websiteUrl: string, isValid: boolean }> = getValidWebsitePreviewUrl();
refresh(): void {
this._onDidChangeTreeData.fire();
@@ -63,33 +63,22 @@ export class PowerPagesNavigationProvider implements vscode.TreeDataProvider {
let requestSentAtTime = new Date().getTime();
- const websitePreviewUrl = WebExtensionContext.urlParametersMap.get(queryParameters.WEBSITE_PREVIEW_URL) as string;
- if (isStringUndefinedOrEmpty(websitePreviewUrl)) {
- vscode.window.showErrorMessage(vscode.l10n.t("Preview site URL is not available"));
+ const { isValid, websiteUrl } = await this.isWebsitePreviewURLValid;
- WebExtensionContext.telemetry.sendErrorTelemetry(
- webExtensionTelemetryEventNames.WEB_EXTENSION_WEBSITE_PREVIEW_URL_UNAVAILABLE,
- this.previewPowerPageSite.name,
- `websitePreviewUrl:${websitePreviewUrl}`
- );
- return;
- }
-
- const isValid = await this.isWebsitePreviewURLValid;
if (!isValid) {
vscode.window.showErrorMessage(vscode.l10n.t("Preview site URL is not valid"));
WebExtensionContext.telemetry.sendErrorTelemetry(
webExtensionTelemetryEventNames.WEB_EXTENSION_WEBSITE_PREVIEW_URL_INVALID,
this.previewPowerPageSite.name,
- `websitePreviewUrl:${websitePreviewUrl}`
+ `websitePreviewUrl:${websiteUrl}`
);
return;
}
// Runtime clear cache call
- const requestUrl = `${websitePreviewUrl.endsWith('/') ? websitePreviewUrl : websitePreviewUrl.concat('/')}_services/cache/config`;
+ const requestUrl = `${websiteUrl.endsWith('/') ? websiteUrl : websiteUrl.concat('/')}_services/cache/config`;
WebExtensionContext.telemetry.sendAPITelemetry(
requestUrl,
@@ -141,7 +130,7 @@ export class PowerPagesNavigationProvider implements vscode.TreeDataProvider