mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-02-16 17:25:58 +00:00
Fix eslint issues for TableCommands and other files (#1132)
This commit is contained in:
parent
bfd4948fb9
commit
aff7133095
@ -81,17 +81,13 @@ src/Explorer/Tables/DataTable/DataTableBindingManager.ts
|
|||||||
src/Explorer/Tables/DataTable/DataTableBuilder.ts
|
src/Explorer/Tables/DataTable/DataTableBuilder.ts
|
||||||
src/Explorer/Tables/DataTable/DataTableContextMenu.ts
|
src/Explorer/Tables/DataTable/DataTableContextMenu.ts
|
||||||
src/Explorer/Tables/DataTable/DataTableOperationManager.ts
|
src/Explorer/Tables/DataTable/DataTableOperationManager.ts
|
||||||
src/Explorer/Tables/DataTable/DataTableOperations.ts
|
# src/Explorer/Tables/DataTable/DataTableOperations.ts
|
||||||
src/Explorer/Tables/DataTable/DataTableViewModel.ts
|
src/Explorer/Tables/DataTable/DataTableViewModel.ts
|
||||||
src/Explorer/Tables/DataTable/TableCommands.ts
|
# src/Explorer/Tables/DataTable/TableCommands.ts
|
||||||
src/Explorer/Tables/DataTable/TableEntityCache.ts
|
# src/Explorer/Tables/DataTable/TableEntityCache.ts
|
||||||
src/Explorer/Tables/DataTable/TableEntityListViewModel.ts
|
src/Explorer/Tables/DataTable/TableEntityListViewModel.ts
|
||||||
src/Explorer/Tables/Entities.ts
|
# src/Explorer/Tables/Entities.ts
|
||||||
# src/Explorer/Tables/QueryBuilder/ClauseGroup.ts
|
|
||||||
# src/Explorer/Tables/QueryBuilder/ClauseGroupViewModel.ts
|
|
||||||
src/Explorer/Tables/QueryBuilder/CustomTimestampHelper.ts
|
src/Explorer/Tables/QueryBuilder/CustomTimestampHelper.ts
|
||||||
# src/Explorer/Tables/QueryBuilder/QueryBuilderViewModel.ts
|
|
||||||
# src/Explorer/Tables/QueryBuilder/QueryClauseViewModel.ts
|
|
||||||
src/Explorer/Tables/TableDataClient.ts
|
src/Explorer/Tables/TableDataClient.ts
|
||||||
src/Explorer/Tables/TableEntityProcessor.ts
|
src/Explorer/Tables/TableEntityProcessor.ts
|
||||||
src/Explorer/Tables/Utilities.ts
|
src/Explorer/Tables/Utilities.ts
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
import _ from "underscore";
|
|
||||||
import Q from "q";
|
import Q from "q";
|
||||||
|
import _ from "underscore";
|
||||||
import * as Entities from "../Entities";
|
|
||||||
import * as QueryBuilderConstants from "../Constants";
|
import * as QueryBuilderConstants from "../Constants";
|
||||||
|
import * as Entities from "../Entities";
|
||||||
import * as Utilities from "../Utilities";
|
import * as Utilities from "../Utilities";
|
||||||
|
|
||||||
export function getRowSelector(selectorSchema: Entities.IProperty[]): string {
|
export function getRowSelector(selectorSchema: Entities.IProperty[]): string {
|
||||||
var selector: string = "";
|
let selector = "";
|
||||||
selectorSchema &&
|
selectorSchema &&
|
||||||
selectorSchema.forEach((p: Entities.IProperty) => {
|
selectorSchema.forEach((p: Entities.IProperty) => {
|
||||||
selector += "[" + p.key + '="' + Utilities.jQuerySelectorEscape(p.value) + '"]';
|
selector += "[" + p.key + '="' + Utilities.jQuerySelectorEscape(p.value) + '"]';
|
||||||
@ -15,10 +14,10 @@ export function getRowSelector(selectorSchema: Entities.IProperty[]): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function isRowVisible(dataTableScrollBodyQuery: JQuery, element: HTMLElement): boolean {
|
export function isRowVisible(dataTableScrollBodyQuery: JQuery, element: HTMLElement): boolean {
|
||||||
var isVisible = false;
|
let isVisible = false;
|
||||||
|
|
||||||
if (dataTableScrollBodyQuery.length && element) {
|
if (dataTableScrollBodyQuery.length && element) {
|
||||||
var elementRect: ClientRect = element.getBoundingClientRect(),
|
const elementRect: ClientRect = element.getBoundingClientRect(),
|
||||||
dataTableScrollBodyRect: ClientRect = dataTableScrollBodyQuery.get(0).getBoundingClientRect();
|
dataTableScrollBodyRect: ClientRect = dataTableScrollBodyQuery.get(0).getBoundingClientRect();
|
||||||
|
|
||||||
isVisible = elementRect.bottom <= dataTableScrollBodyRect.bottom && dataTableScrollBodyRect.top <= elementRect.top;
|
isVisible = elementRect.bottom <= dataTableScrollBodyRect.bottom && dataTableScrollBodyRect.top <= elementRect.top;
|
||||||
@ -29,17 +28,17 @@ export function isRowVisible(dataTableScrollBodyQuery: JQuery, element: HTMLElem
|
|||||||
|
|
||||||
export function scrollToRowIfNeeded(dataTableRows: JQuery, currentIndex: number, isScrollUp: boolean): void {
|
export function scrollToRowIfNeeded(dataTableRows: JQuery, currentIndex: number, isScrollUp: boolean): void {
|
||||||
if (dataTableRows.length) {
|
if (dataTableRows.length) {
|
||||||
var dataTableScrollBodyQuery: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector),
|
const dataTableScrollBodyQuery: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector),
|
||||||
selectedRowElement: HTMLElement = dataTableRows.get(currentIndex);
|
selectedRowElement: HTMLElement = dataTableRows.get(currentIndex);
|
||||||
|
|
||||||
if (dataTableScrollBodyQuery.length && selectedRowElement) {
|
if (dataTableScrollBodyQuery.length && selectedRowElement) {
|
||||||
var isVisible: boolean = isRowVisible(dataTableScrollBodyQuery, selectedRowElement);
|
const isVisible: boolean = isRowVisible(dataTableScrollBodyQuery, selectedRowElement);
|
||||||
|
|
||||||
if (!isVisible) {
|
if (!isVisible) {
|
||||||
var selectedRowQuery: JQuery = $(selectedRowElement),
|
const selectedRowQuery: JQuery = $(selectedRowElement),
|
||||||
scrollPosition: number = dataTableScrollBodyQuery.scrollTop(),
|
scrollPosition: number = dataTableScrollBodyQuery.scrollTop(),
|
||||||
selectedElementPosition: number = selectedRowQuery.position().top,
|
selectedElementPosition: number = selectedRowQuery.position().top;
|
||||||
newScrollPosition: number = 0;
|
let newScrollPosition = 0;
|
||||||
|
|
||||||
if (isScrollUp) {
|
if (isScrollUp) {
|
||||||
newScrollPosition = scrollPosition + selectedElementPosition;
|
newScrollPosition = scrollPosition + selectedElementPosition;
|
||||||
@ -55,7 +54,7 @@ export function scrollToRowIfNeeded(dataTableRows: JQuery, currentIndex: number,
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function scrollToTopIfNeeded(): void {
|
export function scrollToTopIfNeeded(): void {
|
||||||
var $dataTableRows: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableAllRowsSelector),
|
const $dataTableRows: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableAllRowsSelector),
|
||||||
$dataTableScrollBody: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector);
|
$dataTableScrollBody: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector);
|
||||||
|
|
||||||
if ($dataTableRows.length && $dataTableScrollBody.length) {
|
if ($dataTableRows.length && $dataTableScrollBody.length) {
|
||||||
@ -88,13 +87,14 @@ export function reorderColumns(
|
|||||||
table: DataTables.DataTable,
|
table: DataTables.DataTable,
|
||||||
targetOrder: number[],
|
targetOrder: number[],
|
||||||
currentOrder?: number[]
|
currentOrder?: number[]
|
||||||
|
//eslint-disable-next-line
|
||||||
): Q.Promise<any> {
|
): Q.Promise<any> {
|
||||||
var columnsCount: number = targetOrder.length;
|
const columnsCount: number = targetOrder.length;
|
||||||
var isCurrentOrderPassedIn: boolean = !!currentOrder;
|
const isCurrentOrderPassedIn = !!currentOrder;
|
||||||
if (!isCurrentOrderPassedIn) {
|
if (!isCurrentOrderPassedIn) {
|
||||||
currentOrder = getInitialOrder(columnsCount);
|
currentOrder = getInitialOrder(columnsCount);
|
||||||
}
|
}
|
||||||
var isSameOrder: boolean = Utilities.isEqual(currentOrder, targetOrder);
|
const isSameOrder: boolean = Utilities.isEqual(currentOrder, targetOrder);
|
||||||
|
|
||||||
// if the targetOrder is the same as current order, do nothing.
|
// if the targetOrder is the same as current order, do nothing.
|
||||||
if (!isSameOrder) {
|
if (!isSameOrder) {
|
||||||
@ -104,7 +104,7 @@ export function reorderColumns(
|
|||||||
// Then the transformation order will be the same as target order.
|
// Then the transformation order will be the same as target order.
|
||||||
// If current order is specified, then a transformation order is calculated.
|
// If current order is specified, then a transformation order is calculated.
|
||||||
// Refer to calculateTransformationOrder for details about transformation order.
|
// Refer to calculateTransformationOrder for details about transformation order.
|
||||||
var transformationOrder: number[] = isCurrentOrderPassedIn
|
const transformationOrder: number[] = isCurrentOrderPassedIn
|
||||||
? calculateTransformationOrder(currentOrder, targetOrder)
|
? calculateTransformationOrder(currentOrder, targetOrder)
|
||||||
: targetOrder;
|
: targetOrder;
|
||||||
try {
|
try {
|
||||||
@ -143,7 +143,7 @@ export function getCurrentOrder(table: DataTables.DataTable): number[] {
|
|||||||
* Result: [0, 1, 2, 5, 6, 7, 3, 4, 8]
|
* Result: [0, 1, 2, 5, 6, 7, 3, 4, 8]
|
||||||
*/
|
*/
|
||||||
export function invertIndexValues(inputArray: number[]): number[] {
|
export function invertIndexValues(inputArray: number[]): number[] {
|
||||||
var invertedArray: number[] = [];
|
const invertedArray: number[] = [];
|
||||||
if (inputArray) {
|
if (inputArray) {
|
||||||
inputArray.forEach((value: number, index: number) => {
|
inputArray.forEach((value: number, index: number) => {
|
||||||
invertedArray[inputArray[index]] = index;
|
invertedArray[inputArray[index]] = index;
|
||||||
@ -170,20 +170,21 @@ export function invertIndexValues(inputArray: number[]): number[] {
|
|||||||
* transformation order: Trans = [0, 1, 2, 7, 3, 4, 8, 5, 6]
|
* transformation order: Trans = [0, 1, 2, 7, 3, 4, 8, 5, 6]
|
||||||
*/
|
*/
|
||||||
export function calculateTransformationOrder(currentOrder: number[], targetOrder: number[]): number[] {
|
export function calculateTransformationOrder(currentOrder: number[], targetOrder: number[]): number[] {
|
||||||
var transformationOrder: number[] = [];
|
let transformationOrder: number[] = [];
|
||||||
if (currentOrder && targetOrder && currentOrder.length === targetOrder.length) {
|
if (currentOrder && targetOrder && currentOrder.length === targetOrder.length) {
|
||||||
var invertedCurrentOrder: number[] = invertIndexValues(currentOrder);
|
const invertedCurrentOrder: number[] = invertIndexValues(currentOrder);
|
||||||
transformationOrder = targetOrder.map((value: number) => invertedCurrentOrder[value]);
|
transformationOrder = targetOrder.map((value: number) => invertedCurrentOrder[value]);
|
||||||
}
|
}
|
||||||
return transformationOrder;
|
return transformationOrder;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getDataTableHeaders(table: DataTables.DataTable): string[] {
|
export function getDataTableHeaders(table: DataTables.DataTable): string[] {
|
||||||
var columns: DataTables.ColumnsMethods = table.columns();
|
const columns: DataTables.ColumnsMethods = table.columns();
|
||||||
var headers: string[] = [];
|
let headers: string[] = [];
|
||||||
if (columns) {
|
if (columns) {
|
||||||
// table.columns() return ColumnsMethods which is an array of arrays
|
// table.columns() return ColumnsMethods which is an array of arrays
|
||||||
var columnIndexes: number[] = (<any>columns)[0];
|
//eslint-disable-next-line
|
||||||
|
const columnIndexes: number[] = (<any>columns)[0];
|
||||||
if (columnIndexes) {
|
if (columnIndexes) {
|
||||||
headers = columnIndexes.map((value: number) => $(table.columns(value).header()).html());
|
headers = columnIndexes.map((value: number) => $(table.columns(value).header()).html());
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,11 @@ import TableEntityListViewModel from "./TableEntityListViewModel";
|
|||||||
|
|
||||||
export default class TableCommands {
|
export default class TableCommands {
|
||||||
// Command Ids
|
// Command Ids
|
||||||
public static editEntityCommand: string = "edit";
|
public static editEntityCommand = "edit";
|
||||||
public static deleteEntitiesCommand: string = "delete";
|
public static deleteEntitiesCommand = "delete";
|
||||||
public static reorderColumnsCommand: string = "reorder";
|
public static reorderColumnsCommand = "reorder";
|
||||||
public static resetColumnsCommand: string = "reset";
|
public static resetColumnsCommand = "reset";
|
||||||
public static customizeColumnsCommand: string = "customizeColumns";
|
public static customizeColumnsCommand = "customizeColumns";
|
||||||
|
|
||||||
private _container: Explorer;
|
private _container: Explorer;
|
||||||
|
|
||||||
@ -21,8 +21,8 @@ export default class TableCommands {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public isEnabled(commandName: string, selectedEntites: Entities.ITableEntity[]): boolean {
|
public isEnabled(commandName: string, selectedEntites: Entities.ITableEntity[]): boolean {
|
||||||
var singleItemSelected: boolean = DataTableUtilities.containSingleItem(selectedEntites);
|
const singleItemSelected = DataTableUtilities.containSingleItem(selectedEntites);
|
||||||
var atLeastOneItemSelected: boolean = DataTableUtilities.containItems(selectedEntites);
|
const atLeastOneItemSelected = DataTableUtilities.containItems(selectedEntites);
|
||||||
switch (commandName) {
|
switch (commandName) {
|
||||||
case TableCommands.editEntityCommand:
|
case TableCommands.editEntityCommand:
|
||||||
return singleItemSelected;
|
return singleItemSelected;
|
||||||
@ -47,6 +47,7 @@ export default class TableCommands {
|
|||||||
/**
|
/**
|
||||||
* Edit entity
|
* Edit entity
|
||||||
*/
|
*/
|
||||||
|
//eslint-disable-next-line
|
||||||
public editEntityCommand(viewModel: TableEntityListViewModel): Q.Promise<any> {
|
public editEntityCommand(viewModel: TableEntityListViewModel): Q.Promise<any> {
|
||||||
if (!viewModel) {
|
if (!viewModel) {
|
||||||
return null; // Error
|
return null; // Error
|
||||||
@ -56,12 +57,9 @@ export default class TableCommands {
|
|||||||
return null; // Erorr
|
return null; // Erorr
|
||||||
}
|
}
|
||||||
|
|
||||||
var entityToUpdate: Entities.ITableEntity = viewModel.selected()[0];
|
|
||||||
var originalNumberOfProperties = entityToUpdate ? 0 : Object.keys(entityToUpdate).length - 1; // .metadata is always a property for etag
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
//eslint-disable-next-line
|
||||||
public deleteEntitiesCommand(viewModel: TableEntityListViewModel): Q.Promise<any> {
|
public deleteEntitiesCommand(viewModel: TableEntityListViewModel): Q.Promise<any> {
|
||||||
if (!viewModel) {
|
if (!viewModel) {
|
||||||
return null; // Error
|
return null; // Error
|
||||||
@ -69,7 +67,7 @@ export default class TableCommands {
|
|||||||
if (!DataTableUtilities.containItems(viewModel.selected())) {
|
if (!DataTableUtilities.containItems(viewModel.selected())) {
|
||||||
return null; // Error
|
return null; // Error
|
||||||
}
|
}
|
||||||
var entitiesToDelete: Entities.ITableEntity[] = viewModel.selected();
|
const entitiesToDelete: Entities.ITableEntity[] = viewModel.selected();
|
||||||
const deleteMessage: string =
|
const deleteMessage: string =
|
||||||
userContext.apiType === "Cassandra"
|
userContext.apiType === "Cassandra"
|
||||||
? "Are you sure you want to delete the selected rows?"
|
? "Are you sure you want to delete the selected rows?"
|
||||||
@ -82,7 +80,7 @@ export default class TableCommands {
|
|||||||
() => {
|
() => {
|
||||||
viewModel.queryTablesTab.container.tableDataClient
|
viewModel.queryTablesTab.container.tableDataClient
|
||||||
.deleteDocuments(viewModel.queryTablesTab.collection, entitiesToDelete)
|
.deleteDocuments(viewModel.queryTablesTab.collection, entitiesToDelete)
|
||||||
.then((results: any) => {
|
.then(() => {
|
||||||
return viewModel.removeEntitiesFromCache(entitiesToDelete).then(() => {
|
return viewModel.removeEntitiesFromCache(entitiesToDelete).then(() => {
|
||||||
viewModel.redrawTableThrottled();
|
viewModel.redrawTableThrottled();
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import * as Utilities from "../Utilities";
|
|
||||||
import * as Entities from "../Entities";
|
import * as Entities from "../Entities";
|
||||||
|
import * as Utilities from "../Utilities";
|
||||||
import CacheBase from "./CacheBase";
|
import CacheBase from "./CacheBase";
|
||||||
|
|
||||||
export default class TableEntityCache extends CacheBase<Entities.ITableEntity> {
|
export default class TableEntityCache extends CacheBase<Entities.ITableEntity> {
|
||||||
@ -21,7 +21,7 @@ export default class TableEntityCache extends CacheBase<Entities.ITableEntity> {
|
|||||||
this._tableQuery = Utilities.copyTableQuery(tableQuery);
|
this._tableQuery = Utilities.copyTableQuery(tableQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
public preClear() {
|
public preClear(): void {
|
||||||
this.tableQuery = null;
|
this.tableQuery = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { QueryIterator, ItemDefinition, Resource } from "@azure/cosmos";
|
import { ItemDefinition, QueryIterator, Resource } from "@azure/cosmos";
|
||||||
|
|
||||||
export interface ITableEntity {
|
export interface ITableEntity {
|
||||||
[property: string]: ITableEntityAttribute;
|
[property: string]: ITableEntityAttribute;
|
||||||
@ -17,6 +17,7 @@ export interface ITableEntityAttribute {
|
|||||||
|
|
||||||
export interface IListTableEntitiesResult {
|
export interface IListTableEntitiesResult {
|
||||||
Results: ITableEntity[];
|
Results: ITableEntity[];
|
||||||
|
//eslint-disable-next-line
|
||||||
ContinuationToken: any;
|
ContinuationToken: any;
|
||||||
iterator?: QueryIterator<ItemDefinition & Resource>;
|
iterator?: QueryIterator<ItemDefinition & Resource>;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user