diff --git a/.eslintignore b/.eslintignore index f8d1587bb..12dfbf9c2 100644 --- a/.eslintignore +++ b/.eslintignore @@ -81,17 +81,13 @@ src/Explorer/Tables/DataTable/DataTableBindingManager.ts src/Explorer/Tables/DataTable/DataTableBuilder.ts src/Explorer/Tables/DataTable/DataTableContextMenu.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/TableCommands.ts -src/Explorer/Tables/DataTable/TableEntityCache.ts +# src/Explorer/Tables/DataTable/TableCommands.ts +# src/Explorer/Tables/DataTable/TableEntityCache.ts src/Explorer/Tables/DataTable/TableEntityListViewModel.ts -src/Explorer/Tables/Entities.ts -# src/Explorer/Tables/QueryBuilder/ClauseGroup.ts -# src/Explorer/Tables/QueryBuilder/ClauseGroupViewModel.ts +# src/Explorer/Tables/Entities.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/TableEntityProcessor.ts src/Explorer/Tables/Utilities.ts diff --git a/src/Explorer/Tables/DataTable/DataTableOperations.ts b/src/Explorer/Tables/DataTable/DataTableOperations.ts index 0111787a3..8fffcc7c4 100644 --- a/src/Explorer/Tables/DataTable/DataTableOperations.ts +++ b/src/Explorer/Tables/DataTable/DataTableOperations.ts @@ -1,12 +1,11 @@ -import _ from "underscore"; import Q from "q"; - -import * as Entities from "../Entities"; +import _ from "underscore"; import * as QueryBuilderConstants from "../Constants"; +import * as Entities from "../Entities"; import * as Utilities from "../Utilities"; export function getRowSelector(selectorSchema: Entities.IProperty[]): string { - var selector: string = ""; + let selector = ""; selectorSchema && selectorSchema.forEach((p: Entities.IProperty) => { 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 { - var isVisible = false; + let isVisible = false; if (dataTableScrollBodyQuery.length && element) { - var elementRect: ClientRect = element.getBoundingClientRect(), + const elementRect: ClientRect = element.getBoundingClientRect(), dataTableScrollBodyRect: ClientRect = dataTableScrollBodyQuery.get(0).getBoundingClientRect(); 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 { if (dataTableRows.length) { - var dataTableScrollBodyQuery: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector), + const dataTableScrollBodyQuery: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector), selectedRowElement: HTMLElement = dataTableRows.get(currentIndex); if (dataTableScrollBodyQuery.length && selectedRowElement) { - var isVisible: boolean = isRowVisible(dataTableScrollBodyQuery, selectedRowElement); + const isVisible: boolean = isRowVisible(dataTableScrollBodyQuery, selectedRowElement); if (!isVisible) { - var selectedRowQuery: JQuery = $(selectedRowElement), + const selectedRowQuery: JQuery = $(selectedRowElement), scrollPosition: number = dataTableScrollBodyQuery.scrollTop(), - selectedElementPosition: number = selectedRowQuery.position().top, - newScrollPosition: number = 0; + selectedElementPosition: number = selectedRowQuery.position().top; + let newScrollPosition = 0; if (isScrollUp) { newScrollPosition = scrollPosition + selectedElementPosition; @@ -55,7 +54,7 @@ export function scrollToRowIfNeeded(dataTableRows: JQuery, currentIndex: number, } export function scrollToTopIfNeeded(): void { - var $dataTableRows: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableAllRowsSelector), + const $dataTableRows: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableAllRowsSelector), $dataTableScrollBody: JQuery = $(QueryBuilderConstants.htmlSelectors.dataTableScrollBodySelector); if ($dataTableRows.length && $dataTableScrollBody.length) { @@ -88,13 +87,14 @@ export function reorderColumns( table: DataTables.DataTable, targetOrder: number[], currentOrder?: number[] + //eslint-disable-next-line ): Q.Promise { - var columnsCount: number = targetOrder.length; - var isCurrentOrderPassedIn: boolean = !!currentOrder; + const columnsCount: number = targetOrder.length; + const isCurrentOrderPassedIn = !!currentOrder; if (!isCurrentOrderPassedIn) { 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 (!isSameOrder) { @@ -104,7 +104,7 @@ export function reorderColumns( // Then the transformation order will be the same as target order. // If current order is specified, then a transformation order is calculated. // Refer to calculateTransformationOrder for details about transformation order. - var transformationOrder: number[] = isCurrentOrderPassedIn + const transformationOrder: number[] = isCurrentOrderPassedIn ? calculateTransformationOrder(currentOrder, targetOrder) : targetOrder; try { @@ -143,7 +143,7 @@ export function getCurrentOrder(table: DataTables.DataTable): number[] { * Result: [0, 1, 2, 5, 6, 7, 3, 4, 8] */ export function invertIndexValues(inputArray: number[]): number[] { - var invertedArray: number[] = []; + const invertedArray: number[] = []; if (inputArray) { inputArray.forEach((value: number, index: number) => { 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] */ export function calculateTransformationOrder(currentOrder: number[], targetOrder: number[]): number[] { - var transformationOrder: number[] = []; + let transformationOrder: number[] = []; if (currentOrder && targetOrder && currentOrder.length === targetOrder.length) { - var invertedCurrentOrder: number[] = invertIndexValues(currentOrder); + const invertedCurrentOrder: number[] = invertIndexValues(currentOrder); transformationOrder = targetOrder.map((value: number) => invertedCurrentOrder[value]); } return transformationOrder; } export function getDataTableHeaders(table: DataTables.DataTable): string[] { - var columns: DataTables.ColumnsMethods = table.columns(); - var headers: string[] = []; + const columns: DataTables.ColumnsMethods = table.columns(); + let headers: string[] = []; if (columns) { // table.columns() return ColumnsMethods which is an array of arrays - var columnIndexes: number[] = (columns)[0]; + //eslint-disable-next-line + const columnIndexes: number[] = (columns)[0]; if (columnIndexes) { headers = columnIndexes.map((value: number) => $(table.columns(value).header()).html()); } diff --git a/src/Explorer/Tables/DataTable/TableCommands.ts b/src/Explorer/Tables/DataTable/TableCommands.ts index c5a80f65e..96739c02e 100644 --- a/src/Explorer/Tables/DataTable/TableCommands.ts +++ b/src/Explorer/Tables/DataTable/TableCommands.ts @@ -8,11 +8,11 @@ import TableEntityListViewModel from "./TableEntityListViewModel"; export default class TableCommands { // Command Ids - public static editEntityCommand: string = "edit"; - public static deleteEntitiesCommand: string = "delete"; - public static reorderColumnsCommand: string = "reorder"; - public static resetColumnsCommand: string = "reset"; - public static customizeColumnsCommand: string = "customizeColumns"; + public static editEntityCommand = "edit"; + public static deleteEntitiesCommand = "delete"; + public static reorderColumnsCommand = "reorder"; + public static resetColumnsCommand = "reset"; + public static customizeColumnsCommand = "customizeColumns"; private _container: Explorer; @@ -21,8 +21,8 @@ export default class TableCommands { } public isEnabled(commandName: string, selectedEntites: Entities.ITableEntity[]): boolean { - var singleItemSelected: boolean = DataTableUtilities.containSingleItem(selectedEntites); - var atLeastOneItemSelected: boolean = DataTableUtilities.containItems(selectedEntites); + const singleItemSelected = DataTableUtilities.containSingleItem(selectedEntites); + const atLeastOneItemSelected = DataTableUtilities.containItems(selectedEntites); switch (commandName) { case TableCommands.editEntityCommand: return singleItemSelected; @@ -47,6 +47,7 @@ export default class TableCommands { /** * Edit entity */ + //eslint-disable-next-line public editEntityCommand(viewModel: TableEntityListViewModel): Q.Promise { if (!viewModel) { return null; // Error @@ -56,12 +57,9 @@ export default class TableCommands { 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; } - + //eslint-disable-next-line public deleteEntitiesCommand(viewModel: TableEntityListViewModel): Q.Promise { if (!viewModel) { return null; // Error @@ -69,7 +67,7 @@ export default class TableCommands { if (!DataTableUtilities.containItems(viewModel.selected())) { return null; // Error } - var entitiesToDelete: Entities.ITableEntity[] = viewModel.selected(); + const entitiesToDelete: Entities.ITableEntity[] = viewModel.selected(); const deleteMessage: string = userContext.apiType === "Cassandra" ? "Are you sure you want to delete the selected rows?" @@ -82,7 +80,7 @@ export default class TableCommands { () => { viewModel.queryTablesTab.container.tableDataClient .deleteDocuments(viewModel.queryTablesTab.collection, entitiesToDelete) - .then((results: any) => { + .then(() => { return viewModel.removeEntitiesFromCache(entitiesToDelete).then(() => { viewModel.redrawTableThrottled(); }); diff --git a/src/Explorer/Tables/DataTable/TableEntityCache.ts b/src/Explorer/Tables/DataTable/TableEntityCache.ts index 282b21d19..91cc885f9 100644 --- a/src/Explorer/Tables/DataTable/TableEntityCache.ts +++ b/src/Explorer/Tables/DataTable/TableEntityCache.ts @@ -1,5 +1,5 @@ -import * as Utilities from "../Utilities"; import * as Entities from "../Entities"; +import * as Utilities from "../Utilities"; import CacheBase from "./CacheBase"; export default class TableEntityCache extends CacheBase { @@ -21,7 +21,7 @@ export default class TableEntityCache extends CacheBase { this._tableQuery = Utilities.copyTableQuery(tableQuery); } - public preClear() { + public preClear(): void { this.tableQuery = null; } } diff --git a/src/Explorer/Tables/Entities.ts b/src/Explorer/Tables/Entities.ts index fc9bef70b..9584520cb 100644 --- a/src/Explorer/Tables/Entities.ts +++ b/src/Explorer/Tables/Entities.ts @@ -1,4 +1,4 @@ -import { QueryIterator, ItemDefinition, Resource } from "@azure/cosmos"; +import { ItemDefinition, QueryIterator, Resource } from "@azure/cosmos"; export interface ITableEntity { [property: string]: ITableEntityAttribute; @@ -17,6 +17,7 @@ export interface ITableEntityAttribute { export interface IListTableEntitiesResult { Results: ITableEntity[]; + //eslint-disable-next-line ContinuationToken: any; iterator?: QueryIterator; }