//
// SPDX-License-Identifier: AGPL-3.0
-import { DataColumn, toggleSortDirection, resetSortDirection } from "~/components/data-table/data-column";
+import { DataColumn, toggleSortDirection, resetSortDirection, SortDirection } from "~/components/data-table/data-column";
import { dataExplorerActions, DataExplorerAction } from "./data-explorer-action";
import { DataTableFilterItem } from "~/components/data-table-filters/data-table-filters";
import { DataColumns } from "~/components/data-table/data-table";
export const getDataExplorer = (state: DataExplorerState, id: string) =>
state[id] || initialDataExplorer;
+export const getSortColumns = (dataExplorer: DataExplorer) => dataExplorer.columns.find((c: any) =>
+ !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+
const update = (state: DataExplorerState, id: string, updateFn: (dataExplorer: DataExplorer) => DataExplorer) =>
({ ...state, [id]: updateFn(getDataExplorer(state, id)) });
import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions.ts';
import { getDataExplorer } from "~/store/data-explorer/data-explorer-reducer";
import { loadMissingProcessesInformation } from "~/store/project-panel/project-panel-middleware-service";
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
api.dispatch(favoritesPanelDataExplorerIsNotSet());
} else {
const columns = dataExplorer.columns as DataColumns<string, FavoritePanelFilter>;
- const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+ const sortColumn = getSortColumns(dataExplorer);
const typeFilters = this.getColumnFilters(columns, FavoritePanelColumnNames.TYPE);
const linkOrder = new OrderBuilder<LinkResource>();
import { getResource } from "~/store/resources/resources";
import { CollectionResource } from "~/models/collection";
import { resourcesDataActions } from "~/store/resources-data/resources-data-actions";
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
};
export const getOrder = (dataExplorer: DataExplorer) => {
- const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+ const sortColumn = getSortColumns(dataExplorer);
const order = new OrderBuilder<ProjectResource>();
if (sortColumn) {
const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC
import { ListResults } from '~/services/common-service/common-resource-service';
import { searchResultsPanelActions } from '~/store/search-results-panel/search-results-panel-actions';
import { getFilters } from '~/store/search-bar/search-bar-actions';
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
export class SearchResultsMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
});
const getOrder = (dataExplorer: DataExplorer) => {
- const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+ const sortColumn = getSortColumns(dataExplorer);
const order = new OrderBuilder<GroupContentsResource>();
if (sortColumn) {
const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC
import { ProjectResource } from '~/models/project';
import { ProjectPanelColumnNames } from '~/views/project-panel/project-panel';
import { FilterBuilder } from '~/services/api/filter-builder';
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
export class SharedWithMeMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
};
export const getOrder = (dataExplorer: DataExplorer) => {
- const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+ const sortColumn = getSortColumns(dataExplorer);
const order = new OrderBuilder<ProjectResource>();
if (sortColumn) {
const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC
import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
import { updateResources } from "~/store/resources/resources-actions";
import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
export class TrashPanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
async requestItems(api: MiddlewareAPI<Dispatch, RootState>) {
const dataExplorer = api.getState().dataExplorer[this.getId()];
const columns = dataExplorer.columns as DataColumns<string, TrashPanelFilter>;
- const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+ const sortColumn = getSortColumns(dataExplorer);
const typeFilters = this.getColumnFilters(columns, TrashPanelColumnNames.TYPE);
const order = new OrderBuilder<ProjectResource>();
import { WorkflowResource } from '~/models/workflow';
import { ListResults } from '~/services/common-service/common-resource-service';
import { workflowPanelActions } from './workflow-panel-actions';
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
export class WorkflowMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
};
export const getOrder = (dataExplorer: DataExplorer) => {
- const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+ const sortColumn = getSortColumns(dataExplorer);
const order = new OrderBuilder<WorkflowResource>();
if (sortColumn) {
const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC