{/* Collections Window - - Start */}
@@ -43,9 +60,11 @@ export const ResourceTreeContainer: FunctionComponent
diff --git a/src/Common/Tooltip/InfoTooltip.tsx b/src/Common/Tooltip/InfoTooltip.tsx
index 480aa9020..3ce33ca93 100644
--- a/src/Common/Tooltip/InfoTooltip.tsx
+++ b/src/Common/Tooltip/InfoTooltip.tsx
@@ -9,7 +9,7 @@ export const InfoTooltip: React.FunctionComponent = ({ children }:
return (
-
+
);
diff --git a/src/Contracts/DataModels.ts b/src/Contracts/DataModels.ts
index efd5ffb78..a8957c662 100644
--- a/src/Contracts/DataModels.ts
+++ b/src/Contracts/DataModels.ts
@@ -1,3 +1,5 @@
+import { ConnectionStatusType } from "../Common/Constants";
+
export interface DatabaseAccount {
id: string;
name: string;
@@ -496,3 +498,8 @@ export interface MemoryUsageInfo {
freeKB: number;
totalKB: number;
}
+
+export interface ContainerConnectionInfo {
+ status: ConnectionStatusType;
+ //need to add ram and rom info
+}
diff --git a/src/Controls/Heatmap/Heatmap.test.ts b/src/Controls/Heatmap/Heatmap.test.ts
index 473e55225..e5f8f5ef6 100644
--- a/src/Controls/Heatmap/Heatmap.test.ts
+++ b/src/Controls/Heatmap/Heatmap.test.ts
@@ -22,8 +22,8 @@ describe("The Heatmap Control", () => {
};
let heatmap: Heatmap;
- let theme: PortalTheme = 1;
- const divElement: string = ``;
+ const theme: PortalTheme = 1;
+ const divElement = ``;
describe("drawHeatmap rendering", () => {
beforeEach(() => {
@@ -100,7 +100,7 @@ describe("iframe rendering when there is no data", () => {
});
it("should show a no data message with a dark theme", () => {
- let data = {
+ const data = {
data: {
signature: "pcIframe",
data: {
@@ -111,7 +111,7 @@ describe("iframe rendering when there is no data", () => {
},
};
- const divElement: string = ``;
+ const divElement = ``;
document.body.innerHTML = divElement;
handleMessage(data as MessageEvent);
@@ -120,7 +120,7 @@ describe("iframe rendering when there is no data", () => {
});
it("should show a no data message with a white theme", () => {
- let data = {
+ const data = {
data: {
signature: "pcIframe",
data: {
@@ -131,7 +131,7 @@ describe("iframe rendering when there is no data", () => {
},
};
- const divElement: string = ``;
+ const divElement = ``;
document.body.innerHTML = divElement;
handleMessage(data as MessageEvent);
diff --git a/src/Controls/Heatmap/Heatmap.ts b/src/Controls/Heatmap/Heatmap.ts
index 3cdc4589d..0b9c3b796 100644
--- a/src/Controls/Heatmap/Heatmap.ts
+++ b/src/Controls/Heatmap/Heatmap.ts
@@ -39,7 +39,7 @@ export class Heatmap {
}
}
- private _getFontStyles(size: number = StyleConstants.MediumFontSize, color: string = "#838383"): FontSettings {
+ private _getFontStyles(size: number = StyleConstants.MediumFontSize, color = "#838383"): FontSettings {
return {
family: StyleConstants.DataExplorerFont,
size,
@@ -78,9 +78,9 @@ export class Heatmap {
// go thru all rows and create 2d matrix for heatmap...
for (let i = 0; i < rows.length; i++) {
output.yAxisPoints.push(rows[i]);
- let dataPoints: number[] = [];
+ const dataPoints: number[] = [];
for (let a = 0; a < output.xAxisPoints.length; a++) {
- let row: PartitionTimeStampToData = data[rows[i]];
+ const row: PartitionTimeStampToData = data[rows[i]];
dataPoints.push(row[output.xAxisPoints[a]]["Normalized Throughput"]);
}
output.dataPoints.push(dataPoints);
@@ -193,7 +193,7 @@ export class Heatmap {
this._getLayoutSettings(),
this._getChartDisplaySettings()
);
- let plotDiv: any = document.getElementById(Heatmap.elementId);
+ const plotDiv: any = document.getElementById(Heatmap.elementId);
plotDiv.on("plotly_click", (data: any) => {
let timeSelected: string = data.points[0].x;
timeSelected = timeSelected.replace(" ", "T");
@@ -205,7 +205,7 @@ export class Heatmap {
break;
}
}
- let output = [];
+ const output = [];
for (let i = 0; i < this._chartData.dataPoints.length; i++) {
output.push(this._chartData.dataPoints[i][xAxisIndex]);
}
diff --git a/src/Explorer/Controls/CollapsiblePanel/CollapsibleSectionComponent.tsx b/src/Explorer/Controls/CollapsiblePanel/CollapsibleSectionComponent.tsx
index d662db58b..76d710cb7 100644
--- a/src/Explorer/Controls/CollapsiblePanel/CollapsibleSectionComponent.tsx
+++ b/src/Explorer/Controls/CollapsiblePanel/CollapsibleSectionComponent.tsx
@@ -1,5 +1,6 @@
import { Icon, Label, Stack } from "@fluentui/react";
import * as React from "react";
+import { NormalizedEventKey } from "../../../Common/Constants";
import { accordionStackTokens } from "../Settings/SettingsRenderUtils";
export interface CollapsibleSectionProps {
@@ -30,6 +31,13 @@ export class CollapsibleSectionComponent extends React.Component {
+ if (event.key === NormalizedEventKey.Space || event.key === NormalizedEventKey.Enter) {
+ this.toggleCollapsed();
+ event.stopPropagation();
+ }
+ };
+
public render(): JSX.Element {
return (
<>
@@ -39,6 +47,11 @@ export class CollapsibleSectionComponent extends React.Component
diff --git a/src/Explorer/Controls/CollapsiblePanel/__snapshots__/CollapsibleSectionComponent.test.tsx.snap b/src/Explorer/Controls/CollapsiblePanel/__snapshots__/CollapsibleSectionComponent.test.tsx.snap
index 95d3c46bf..675a79239 100644
--- a/src/Explorer/Controls/CollapsiblePanel/__snapshots__/CollapsibleSectionComponent.test.tsx.snap
+++ b/src/Explorer/Controls/CollapsiblePanel/__snapshots__/CollapsibleSectionComponent.test.tsx.snap
@@ -3,9 +3,14 @@
exports[`CollapsibleSectionComponent renders 1`] = `
{
text: secondaryButtonText,
onClick: onSecondaryButtonClick,
}
- : {};
-
+ : undefined;
return visible ? (
{choiceGroupProps && }
diff --git a/src/Explorer/Controls/InputTypeahead/InputTypeahead.less b/src/Explorer/Controls/InputTypeahead/InputTypeahead.less
index 1d68e3b7e..082fd937f 100644
--- a/src/Explorer/Controls/InputTypeahead/InputTypeahead.less
+++ b/src/Explorer/Controls/InputTypeahead/InputTypeahead.less
@@ -8,6 +8,9 @@
.input-type-head-text-field {
width: 100%;
}
+ .input-query-form {
+ width: 100%;
+ }
textarea {
width: 100%;
line-height: 1;
diff --git a/src/Explorer/Controls/InputTypeahead/InputTypeaheadComponent.tsx b/src/Explorer/Controls/InputTypeahead/InputTypeaheadComponent.tsx
index 2e9a2d104..13b91012a 100644
--- a/src/Explorer/Controls/InputTypeahead/InputTypeaheadComponent.tsx
+++ b/src/Explorer/Controls/InputTypeahead/InputTypeaheadComponent.tsx
@@ -160,18 +160,21 @@ export class InputTypeaheadComponent extends React.Component<
return (
- this.setState({ isSuggestionVisible: true })}
- onChange={(_event, newValue?: string) => this.handleChange(newValue)}
- />
+
{this.props.showCancelButton && (
1`] = `
-
+
`;
@@ -28,16 +34,22 @@ exports[`inputTypeahead renders 1`] = `
-
+
`;
diff --git a/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx b/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx
index c0cda4f59..11f00f195 100644
--- a/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx
+++ b/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx
@@ -1,45 +1,45 @@
-import * as React from "react";
-import * as AutoPilotUtils from "../../../Utils/AutoPilotUtils";
-import { AutopilotDocumentation, hoursInAMonth } from "../../../Shared/Constants";
-import { Urls, StyleConstants } from "../../../Common/Constants";
import {
- getPriceCurrency,
- getCurrencySign,
- getAutoscalePricePerRu,
- getMultimasterMultiplier,
- computeRUUsagePriceHourly,
- getPricePerRu,
- estimatedCostDisclaimer,
-} from "../../../Utils/PricingUtils";
-import {
- ITextFieldStyles,
+ DetailsList,
+ DetailsListLayoutMode,
+ DetailsRow,
ICheckboxStyles,
- IStackProps,
- IStackTokens,
IChoiceGroupStyles,
- Link,
- Text,
- IMessageBarStyles,
- ITextStyles,
- IDetailsRowStyles,
- IStackStyles,
+ IColumn,
+ IDetailsColumnStyles,
IDetailsListStyles,
+ IDetailsRowProps,
+ IDetailsRowStyles,
IDropdownStyles,
+ IMessageBarStyles,
ISeparatorStyles,
+ IStackProps,
+ IStackStyles,
+ IStackTokens,
+ ITextFieldStyles,
+ ITextStyles,
+ Link,
MessageBar,
MessageBarType,
- Stack,
+ SelectionMode,
Spinner,
SpinnerSize,
- DetailsList,
- IColumn,
- SelectionMode,
- DetailsListLayoutMode,
- IDetailsRowProps,
- DetailsRow,
- IDetailsColumnStyles,
+ Stack,
+ Text,
} from "@fluentui/react";
-import { isDirtyTypes, isDirty } from "./SettingsUtils";
+import * as React from "react";
+import { StyleConstants, Urls } from "../../../Common/Constants";
+import { AutopilotDocumentation, hoursInAMonth } from "../../../Shared/Constants";
+import * as AutoPilotUtils from "../../../Utils/AutoPilotUtils";
+import {
+ computeRUUsagePriceHourly,
+ estimatedCostDisclaimer,
+ getAutoscalePricePerRu,
+ getCurrencySign,
+ getMultimasterMultiplier,
+ getPriceCurrency,
+ getPricePerRu,
+} from "../../../Utils/PricingUtils";
+import { isDirty, isDirtyTypes } from "./SettingsUtils";
export interface EstimatedSpendingDisplayProps {
costType: JSX.Element;
@@ -65,7 +65,7 @@ export interface PriceBreakdown {
currencySign: string;
}
-export const infoAndToolTipTextStyle: ITextStyles = { root: { fontSize: 14 } };
+export const infoAndToolTipTextStyle: ITextStyles = { root: { fontSize: 14, color: "windowtext" } };
export const noLeftPaddingCheckBoxStyle: ICheckboxStyles = {
label: {
@@ -223,14 +223,15 @@ export const getRuPriceBreakdown = (
multimasterEnabled: isMultimaster,
isAutoscale: isAutoscale,
});
- const basePricePerRu: number = isAutoscale
- ? getAutoscalePricePerRu(serverId, getMultimasterMultiplier(numberOfRegions, isMultimaster))
- : getPricePerRu(serverId);
+ const multimasterMultiplier = getMultimasterMultiplier(numberOfRegions, isMultimaster);
+ const pricePerRu: number = isAutoscale
+ ? getAutoscalePricePerRu(serverId, multimasterMultiplier)
+ : getPricePerRu(serverId, multimasterMultiplier);
return {
- hourlyPrice: hourlyPrice,
+ hourlyPrice,
dailyPrice: hourlyPrice * 24,
monthlyPrice: hourlyPrice * hoursInAMonth,
- pricePerRu: basePricePerRu * getMultimasterMultiplier(numberOfRegions, isMultimaster),
+ pricePerRu,
currency: getPriceCurrency(serverId),
currencySign: getCurrencySign(serverId),
};
@@ -271,7 +272,7 @@ export const manualToAutoscaleDisclaimerElement: JSX.Element = (