Compare commits

...

6 Commits

Author SHA1 Message Date
Predrag Klepic
c8cd4a4910 Handling undefined exception 2023-07-11 15:10:34 +02:00
Predrag Klepic
373ad323df Code formatted with Prettier 2023-07-11 14:54:58 +02:00
Predrag Klepic
b884c74795 Removing unnececcary code 2023-07-11 14:43:42 +02:00
Predrag Klepic
67c99c3c80 Styling and Items in SampleContainer openable 2023-07-11 14:38:37 +02:00
Predrag Klepic
a4f2f96f11 Styling fixed in SampleDataTree 2023-07-11 11:39:03 +02:00
Predrag Klepic
05c820e71e styling implemented 2023-07-11 11:14:58 +02:00
7 changed files with 44 additions and 28 deletions

View File

@@ -13,6 +13,11 @@
font-size: 12px; font-size: 12px;
} }
.sampleCollectionHeader {
margin-left: @MediumSpace;
font-size: 12px;
}
.loadMoreHeader { .loadMoreHeader {
color: RGB(5, 99, 193); color: RGB(5, 99, 193);
} }

View File

@@ -115,7 +115,7 @@ export interface CollectionBase extends TreeNode {
isCollectionExpanded: ko.Observable<boolean>; isCollectionExpanded: ko.Observable<boolean>;
isSampleCollection?: boolean; isSampleCollection?: boolean;
onDocumentDBDocumentsClick(): void; onDocumentDBDocumentsClick(isQueryCopilotCollection?: boolean, sampleCollection?: CollectionBase): void;
onNewQueryClick(source: any, event?: MouseEvent, queryText?: string): void; onNewQueryClick(source: any, event?: MouseEvent, queryText?: string): void;
expandCollection(): void; expandCollection(): void;
collapseCollection(): void; collapseCollection(): void;

View File

@@ -35,7 +35,7 @@ export class EditorReact extends React.Component<EditorReactProps, EditorReactSt
public componentDidUpdate(previous: EditorReactProps) { public componentDidUpdate(previous: EditorReactProps) {
if (this.props.content !== previous.content) { if (this.props.content !== previous.content) {
this.editor.setValue(this.props.content); this.editor?.setValue(this.props.content);
} }
} }

View File

@@ -95,7 +95,7 @@ export const QueryCopilotCarousel: React.FC<QueryCopilotCarouselProps> = ({
offerThroughput: undefined, offerThroughput: undefined,
indexingPolicy: AllPropertiesIndexed, indexingPolicy: AllPropertiesIndexed,
partitionKey: { partitionKey: {
paths: ["/categoryId"], paths: ["/objectId"],
kind: "Hash", kind: "Hash",
version: 2, version: 2,
}, },

View File

@@ -3,6 +3,9 @@ import { useNotebook } from "Explorer/Notebook/useNotebook";
import * as ko from "knockout"; import * as ko from "knockout";
import * as _ from "underscore"; import * as _ from "underscore";
import * as Constants from "../../Common/Constants"; import * as Constants from "../../Common/Constants";
import { getErrorMessage, getErrorStack } from "../../Common/ErrorHandlingUtils";
import * as Logger from "../../Common/Logger";
import { fetchPortalNotifications } from "../../Common/PortalNotifications";
import { bulkCreateDocument } from "../../Common/dataAccess/bulkCreateDocument"; import { bulkCreateDocument } from "../../Common/dataAccess/bulkCreateDocument";
import { createDocument } from "../../Common/dataAccess/createDocument"; import { createDocument } from "../../Common/dataAccess/createDocument";
import { getCollectionUsageSizeInKB } from "../../Common/dataAccess/getCollectionDataUsageSize"; import { getCollectionUsageSizeInKB } from "../../Common/dataAccess/getCollectionDataUsageSize";
@@ -10,19 +13,16 @@ import { readCollectionOffer } from "../../Common/dataAccess/readCollectionOffer
import { readStoredProcedures } from "../../Common/dataAccess/readStoredProcedures"; import { readStoredProcedures } from "../../Common/dataAccess/readStoredProcedures";
import { readTriggers } from "../../Common/dataAccess/readTriggers"; import { readTriggers } from "../../Common/dataAccess/readTriggers";
import { readUserDefinedFunctions } from "../../Common/dataAccess/readUserDefinedFunctions"; import { readUserDefinedFunctions } from "../../Common/dataAccess/readUserDefinedFunctions";
import { getErrorMessage, getErrorStack } from "../../Common/ErrorHandlingUtils";
import * as Logger from "../../Common/Logger";
import { fetchPortalNotifications } from "../../Common/PortalNotifications";
import * as DataModels from "../../Contracts/DataModels"; import * as DataModels from "../../Contracts/DataModels";
import * as ViewModels from "../../Contracts/ViewModels"; import * as ViewModels from "../../Contracts/ViewModels";
import { UploadDetailsRecord } from "../../Contracts/ViewModels"; import { UploadDetailsRecord } from "../../Contracts/ViewModels";
import { useTabs } from "../../hooks/useTabs";
import { Action, ActionModifiers } from "../../Shared/Telemetry/TelemetryConstants"; import { Action, ActionModifiers } from "../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor"; import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor";
import { userContext } from "../../UserContext"; import { userContext } from "../../UserContext";
import { SqlTriggerResource } from "../../Utils/arm/generatedClients/cosmos/types";
import { isServerlessAccount } from "../../Utils/CapabilityUtils"; import { isServerlessAccount } from "../../Utils/CapabilityUtils";
import { logConsoleInfo } from "../../Utils/NotificationConsoleUtils"; import { logConsoleInfo } from "../../Utils/NotificationConsoleUtils";
import { SqlTriggerResource } from "../../Utils/arm/generatedClients/cosmos/types";
import { useTabs } from "../../hooks/useTabs";
import Explorer from "../Explorer"; import Explorer from "../Explorer";
import { useCommandBar } from "../Menus/CommandBar/CommandBarComponentAdapter"; import { useCommandBar } from "../Menus/CommandBar/CommandBarComponentAdapter";
import { CassandraAPIDataClient, CassandraTableKey, CassandraTableKeys } from "../Tables/TableDataClient"; import { CassandraAPIDataClient, CassandraTableKey, CassandraTableKeys } from "../Tables/TableDataClient";

View File

@@ -2,10 +2,10 @@ import * as ko from "knockout";
import * as Constants from "../../Common/Constants"; import * as Constants from "../../Common/Constants";
import * as DataModels from "../../Contracts/DataModels"; import * as DataModels from "../../Contracts/DataModels";
import * as ViewModels from "../../Contracts/ViewModels"; import * as ViewModels from "../../Contracts/ViewModels";
import { useTabs } from "../../hooks/useTabs";
import { Action, ActionModifiers } from "../../Shared/Telemetry/TelemetryConstants"; import { Action, ActionModifiers } from "../../Shared/Telemetry/TelemetryConstants";
import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor"; import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor";
import { userContext } from "../../UserContext"; import { userContext } from "../../UserContext";
import { useTabs } from "../../hooks/useTabs";
import Explorer from "../Explorer"; import Explorer from "../Explorer";
import DocumentsTab from "../Tabs/DocumentsTab"; import DocumentsTab from "../Tabs/DocumentsTab";
import { NewQueryTab } from "../Tabs/QueryTab/QueryTab"; import { NewQueryTab } from "../Tabs/QueryTab/QueryTab";
@@ -105,7 +105,9 @@ export default class ResourceTokenCollection implements ViewModels.CollectionBas
); );
} }
public onDocumentDBDocumentsClick() { public onDocumentDBDocumentsClick(isQueryCopilotCollection?: boolean, sampleCollection?: ViewModels.CollectionBase) {
const queryCopilotPartitionKey: DataModels.PartitionKey = sampleCollection?.partitionKey;
useSelectedNode.getState().setSelectedNode(this); useSelectedNode.getState().setSelectedNode(this);
this.selectedSubnodeKind(ViewModels.CollectionTabKind.Documents); this.selectedSubnodeKind(ViewModels.CollectionTabKind.Documents);
TelemetryProcessor.trace(Action.SelectItem, ActionModifiers.Mark, { TelemetryProcessor.trace(Action.SelectItem, ActionModifiers.Mark, {
@@ -138,8 +140,10 @@ export default class ResourceTokenCollection implements ViewModels.CollectionBas
}); });
documentsTab = new DocumentsTab({ documentsTab = new DocumentsTab({
partitionKey: this.partitionKey, partitionKey: isQueryCopilotCollection ? queryCopilotPartitionKey : this.partitionKey,
resourceTokenPartitionKey: userContext.parsedResourceToken.partitionKey, resourceTokenPartitionKey: isQueryCopilotCollection
? queryCopilotPartitionKey.paths[0]
: userContext.parsedResourceToken.partitionKey,
documentIds: ko.observableArray<DocumentId>([]), documentIds: ko.observableArray<DocumentId>([]),
tabKind: ViewModels.CollectionTabKind.Documents, tabKind: ViewModels.CollectionTabKind.Documents,
title: "Items", title: "Items",

View File

@@ -1,7 +1,7 @@
import { useCommandBar } from "Explorer/Menus/CommandBar/CommandBarComponentAdapter"; import { mostRecentActivity } from "Explorer/MostRecentActivity/MostRecentActivity";
import TabsBase from "Explorer/Tabs/TabsBase";
import { useSelectedNode } from "Explorer/useSelectedNode"; import { useSelectedNode } from "Explorer/useSelectedNode";
import { useTabs } from "hooks/useTabs"; import { userContext } from "UserContext";
import { getItemName } from "Utils/APITypeUtils";
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import CosmosDBIcon from "../../../images/Azure-Cosmos-DB.svg"; import CosmosDBIcon from "../../../images/Azure-Cosmos-DB.svg";
import CollectionIcon from "../../../images/tree-collection.svg"; import CollectionIcon from "../../../images/tree-collection.svg";
@@ -28,18 +28,8 @@ export const SampleDataTree = ({
label: sampleDataResourceTokenCollection.id(), label: sampleDataResourceTokenCollection.id(),
iconSrc: CollectionIcon, iconSrc: CollectionIcon,
isExpanded: false, isExpanded: false,
className: "dataResourceTree", className: "sampleCollectionHeader",
contextMenu: ResourceTreeContextMenuButtonFactory.createSampleCollectionContextMenuButton(), contextMenu: ResourceTreeContextMenuButtonFactory.createSampleCollectionContextMenuButton(),
onClick: () => {
// Rewritten version of expandCollapseCollection
useSelectedNode.getState().setSelectedNode(sampleDataResourceTokenCollection);
useCommandBar.getState().setContextButtons([]);
useTabs().refreshActiveTab(
(tab: TabsBase) =>
tab.collection?.id() === sampleDataResourceTokenCollection.id() &&
tab.collection.databaseId === sampleDataResourceTokenCollection.databaseId
);
},
isSelected: () => isSelected: () =>
useSelectedNode useSelectedNode
.getState() .getState()
@@ -50,7 +40,24 @@ export const SampleDataTree = ({
onContextMenuOpen: () => useSelectedNode.getState().setSelectedNode(sampleDataResourceTokenCollection), onContextMenuOpen: () => useSelectedNode.getState().setSelectedNode(sampleDataResourceTokenCollection),
children: [ children: [
{ {
label: "Items", label: getItemName(),
id: sampleDataResourceTokenCollection.isSampleCollection ? "sampleItems" : "",
contextMenu: ResourceTreeContextMenuButtonFactory.createSampleCollectionContextMenuButton(),
onClick: () => {
sampleDataResourceTokenCollection.onDocumentDBDocumentsClick(true, sampleDataResourceTokenCollection);
mostRecentActivity.collectionWasOpened(
userContext.databaseAccount?.id,
sampleDataResourceTokenCollection
);
},
isSelected: () =>
useSelectedNode
.getState()
.isDataNodeSelected(
sampleDataResourceTokenCollection.databaseId,
sampleDataResourceTokenCollection.id(),
[ViewModels.CollectionTabKind.Documents]
),
}, },
], ],
}, },