//
// SPDX-License-Identifier: AGPL-3.0
-import { PropertyValue } from "~/models/search-bar";
-import { Vocabulary, getTagKeyLabel, getTagValueLabel } from "~/models/vocabulary";
+import { PropertyValue } from "models/search-bar";
+import { Vocabulary, getTagKeyLabel, getTagValueLabel } from "models/vocabulary";
export const formatDate = (isoDate?: string | null, utc: boolean = false) => {
if (isoDate) {
return `${(size / base).toFixed()} ${unit}`;
}
}
- }
+ }
if ((typeof size === "string" && size === '') || size === undefined) {
return '';
}
//
// SPDX-License-Identifier: AGPL-3.0
-import { ResourceKind } from "~/models/resource";
+import { ResourceKind } from "models/resource";
export const resourceLabel = (type: string, subtype = '') => {
switch (type) {
import * as React from 'react';
import { Dispatch, Middleware } from 'redux';
-import { RootStore, RootState } from '~/store/store';
-import { ResourcesState } from '~/store/resources/resources';
+import { RootStore, RootState } from 'store/store';
+import { ResourcesState } from 'store/resources/resources';
import { Location } from 'history';
-import { ServiceRepository } from "~/services/services";
+import { ServiceRepository } from "services/services";
export type ElementListReducer = (startingList: React.ReactElement[], itemClass?: string) => React.ReactElement[];
export type CategoriesListReducer = (startingList: string[]) => string[];
/* Workbench Plugin API
- Code to your plugin should go into a subdirectory of '~/plugins'.
+ Code to your plugin should go into a subdirectory of 'plugins/'.
Your plugin should implement a "register" function, which will be
called with an object with the PluginConfig interface described
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { Chips } from '~/components/chips/chips';
+import { Chips } from 'components/chips/chips';
import { Input as MuiInput, withStyles, WithStyles } from '@material-ui/core';
import { StyleRulesCallback } from '@material-ui/core/styles';
import { InputProps } from '@material-ui/core/Input';
import * as React from 'react';
import { StyleRulesCallback, WithStyles, Typography, withStyles } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import classNames from 'classnames';
type CssRules = 'root' | 'space';
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { TreeItem, TreeItemStatus } from '~/components/tree/tree';
-import { FileTreeData } from '~/components/file-tree/file-tree-data';
-import { FileTree } from '~/components/file-tree/file-tree';
+import { TreeItem, TreeItemStatus } from 'components/tree/tree';
+import { FileTreeData } from 'components/file-tree/file-tree-data';
+import { FileTree } from 'components/file-tree/file-tree';
import { IconButton, Grid, Typography, StyleRulesCallback, withStyles, WithStyles, CardHeader, Card, Button, Tooltip, CircularProgress } from '@material-ui/core';
-import { CustomizeTableIcon } from '~/components/icon/icon';
-import { DownloadIcon } from '~/components/icon/icon';
+import { CustomizeTableIcon } from 'components/icon/icon';
+import { DownloadIcon } from 'components/icon/icon';
import { SearchInput } from '../search-input/search-input';
export interface CollectionPanelFilesProps {
import { Popover } from "../popover/popover";
import { IconButtonProps } from '@material-ui/core/IconButton';
import { DataColumns } from '../data-table/data-table';
-import { ArvadosTheme } from "~/common/custom-theme";
+import { ArvadosTheme } from "common/custom-theme";
interface ColumnSelectorDataProps {
columns: DataColumns<any>;
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, DialogContentText } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { WarningIcon } from '~/components/icon/icon';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { WarningIcon } from 'components/icon/icon';
export interface ConfirmationDialogDataProps {
title: string;
import * as React from 'react';
import { Grid, Paper, Toolbar, StyleRulesCallback, withStyles, WithStyles, TablePagination, IconButton, Tooltip, Button } from '@material-ui/core';
-import { ColumnSelector } from "~/components/column-selector/column-selector";
-import { DataTable, DataColumns, DataTableFetchMode } from "~/components/data-table/data-table";
-import { DataColumn } from "~/components/data-table/data-column";
-import { SearchInput } from '~/components/search-input/search-input';
-import { ArvadosTheme } from "~/common/custom-theme";
-import { createTree } from '~/models/tree';
-import { DataTableFilters } from '~/components/data-table-filters/data-table-filters-tree';
-import { MoreOptionsIcon } from '~/components/icon/icon';
+import { ColumnSelector } from "components/column-selector/column-selector";
+import { DataTable, DataColumns, DataTableFetchMode } from "components/data-table/data-table";
+import { DataColumn } from "components/data-table/data-column";
+import { SearchInput } from 'components/search-input/search-input';
+import { ArvadosTheme } from "common/custom-theme";
+import { createTree } from 'models/tree';
+import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree';
+import { MoreOptionsIcon } from 'components/icon/icon';
import { PaperProps } from '@material-ui/core/Paper';
type CssRules = 'searchBox' | "toolbar" | "toolbarUnderTitle" | "footer" | "root" | 'moreOptionsButton' | 'title';
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { DefaultViewDataProps, DefaultView } from '~/components/default-view/default-view';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { DetailsIcon } from '~/components/icon/icon';
+import { DefaultViewDataProps, DefaultView } from 'components/default-view/default-view';
+import { ArvadosTheme } from 'common/custom-theme';
+import { DetailsIcon } from 'components/icon/icon';
type CssRules = 'classRoot';
import { DataTableFiltersPopover } from "./data-table-filters-popover";
import * as Adapter from 'enzyme-adapter-react-16';
import { Checkbox, IconButton } from "@material-ui/core";
-import { getInitialProcessStatusFilters } from "~/store/resource-type-filters/resource-type-filters"
+import { getInitialProcessStatusFilters } from "store/resource-type-filters/resource-type-filters"
configure({ adapter: new Adapter() });
IconButton
} from "@material-ui/core";
import classnames from "classnames";
-import { DefaultTransformOrigin } from "~/components/popover/helpers";
-import { createTree } from '~/models/tree';
+import { DefaultTransformOrigin } from "components/popover/helpers";
+import { createTree } from 'models/tree';
import { DataTableFilters, DataTableFiltersTree } from "./data-table-filters-tree";
-import { getNodeDescendants } from '~/models/tree';
+import { getNodeDescendants } from 'models/tree';
export type CssRules = "root" | "icon" | "iconButton" | "active" | "checkbox";
// SPDX-License-Identifier: AGPL-3.0
import * as React from "react";
-import { Tree, toggleNodeSelection, getNode, initTreeNode, getNodeChildrenIds, selectNode, deselectNodes } from '~/models/tree';
-import { Tree as TreeComponent, TreeItem, TreeItemStatus } from '~/components/tree/tree';
+import { Tree, toggleNodeSelection, getNode, initTreeNode, getNodeChildrenIds, selectNode, deselectNodes } from 'models/tree';
+import { Tree as TreeComponent, TreeItem, TreeItemStatus } from 'components/tree/tree';
import { noop, map } from "lodash/fp";
-import { toggleNodeCollapse } from '~/models/tree';
-import { countNodes, countChildren } from '~/models/tree';
+import { toggleNodeCollapse } from 'models/tree';
+import { countNodes, countChildren } from 'models/tree';
export interface DataTableFilterItem {
name: string;
import * as React from "react";
import { DataTableFilters } from "../data-table-filters/data-table-filters-tree";
-import { createTree } from '~/models/tree';
+import { createTree } from 'models/tree';
export interface DataColumn<T> {
key?: React.Key;
import * as Adapter from "enzyme-adapter-react-16";
import { DataTable, DataColumns } from "./data-table";
import { SortDirection, createDataColumn } from "./data-column";
-import { DataTableFiltersPopover } from '~/components/data-table-filters/data-table-filters-popover';
-import { createTree, setNode, initTreeNode } from '~/models/tree';
-import { DataTableFilterItem } from "~/components/data-table-filters/data-table-filters-tree";
+import { DataTableFiltersPopover } from 'components/data-table-filters/data-table-filters-popover';
+import { createTree, setNode, initTreeNode } from 'models/tree';
+import { DataTableFilterItem } from "components/data-table-filters/data-table-filters-tree";
configure({ adapter: new Adapter() });
import { DataTableDefaultView } from '../data-table-default-view/data-table-default-view';
import { DataTableFilters } from '../data-table-filters/data-table-filters-tree';
import { DataTableFiltersPopover } from '../data-table-filters/data-table-filters-popover';
-import { countNodes } from '~/models/tree';
+import { countNodes } from 'models/tree';
import { SvgIconProps } from '@material-ui/core/SvgIcon';
import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';
import * as React from 'react';
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
-import { CodeSnippet, CodeSnippetDataProps } from '~/components/code-snippet/code-snippet';
+import { CodeSnippet, CodeSnippetDataProps } from 'components/code-snippet/code-snippet';
import grey from '@material-ui/core/colors/grey';
const theme = createMuiTheme({
import Typography from '@material-ui/core/Typography';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
import { Tooltip } from '@material-ui/core';
-import { CopyIcon } from '~/components/icon/icon';
+import { CopyIcon } from 'components/icon/icon';
import * as CopyToClipboard from 'react-copy-to-clipboard';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import * as classnames from "classnames";
import { Link } from 'react-router-dom';
-import { RootState } from "~/store/store";
-import { FederationConfig, getNavUrl } from "~/routes/routes";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
+import { RootState } from "store/store";
+import { FederationConfig, getNavUrl } from "routes/routes";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
type CssRules = 'attribute' | 'label' | 'value' | 'lowercaseValue' | 'link' | 'copyIcon';
import * as React from "react";
import isImage from 'is-image';
import { withStyles, WithStyles } from '@material-ui/core';
-import { FileTreeData } from '~/components/file-tree/file-tree-data';
-import { CollectionFileType } from '~/models/collection-file';
-import { getInlineFileUrl, sanitizeToken } from "~/views-components/context-menu/actions/helpers";
+import { FileTreeData } from 'components/file-tree/file-tree-data';
+import { CollectionFileType } from 'models/collection-file';
+import { getInlineFileUrl, sanitizeToken } from "views-components/context-menu/actions/helpers";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
export interface FileThumbnailProps {
file: FileTreeData;
import { TreeItem } from "../tree/tree";
import { DirectoryIcon, MoreOptionsIcon, DefaultIcon, FileIcon } from "../icon/icon";
import { Typography, IconButton, StyleRulesCallback, withStyles, WithStyles, Tooltip } from '@material-ui/core';
-import { formatFileSize } from "~/common/formatters";
+import { formatFileSize } from "common/formatters";
import { ListItemTextIcon } from "../list-item-text-icon/list-item-text-icon";
import { FileTreeData } from "./file-tree-data";
import { withStyles } from '@material-ui/core';
import Dropzone from 'react-dropzone';
import { CloudUploadIcon, RemoveIcon } from "../icon/icon";
-import { formatFileSize, formatProgress, formatUploadSpeed } from "~/common/formatters";
-import { UploadFile } from '~/store/file-uploader/file-uploader-actions';
+import { formatFileSize, formatProgress, formatUploadSpeed } from "common/formatters";
+import { UploadFile } from 'store/file-uploader/file-uploader-actions';
type CssRules = "root" | "dropzone" | "dropzoneWrapper" | "container" | "uploadIcon"
| "dropzoneBorder" | "dropzoneBorderLeft" | "dropzoneBorderRight" | "dropzoneBorderTop" | "dropzoneBorderBottom"
import { InjectedFormProps } from 'redux-form';
import { Dialog, DialogActions, DialogContent, DialogTitle } from '@material-ui/core/';
import { Button, StyleRulesCallback, WithStyles, withStyles, CircularProgress } from '@material-ui/core';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
+import { WithDialogProps } from 'store/dialog/with-dialog';
type CssRules = "button" | "lastButton" | "formContainer" | "dialogTitle" | "progressIndicator" | "dialogActions";
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { ListItemIcon, ListItemText, Typography } from '@material-ui/core';
import { IconType } from '../icon/icon';
import classnames from "classnames";
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { DefaultViewDataProps, DefaultView } from '~/components/default-view/default-view';
+import { DefaultViewDataProps, DefaultView } from 'components/default-view/default-view';
type CssRules = 'classRoot' | 'classIcon' | 'classMessage';
import * as classNames from 'classnames';
import { withRouter, RouteComponentProps } from 'react-router';
import { StyleRulesCallback, Button, WithStyles, withStyles } from "@material-ui/core";
-import { ReRunProcessIcon } from '~/components/icon/icon';
+import { ReRunProcessIcon } from 'components/icon/icon';
type CssRules = 'button' | 'buttonRight';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
import { withStyles, StyleRulesCallback, WithStyles, Typography } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { openRichTextEditorDialog } from '~/store/rich-text-editor-dialog/rich-text-editor-dialog-actions';
+import { ArvadosTheme } from 'common/custom-theme';
+import { openRichTextEditorDialog } from 'store/rich-text-editor-dialog/rich-text-editor-dialog-actions';
type CssRules = "root";
import * as React from 'react';
import { WrappedFieldProps } from 'redux-form';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { StyleRulesCallback, WithStyles, withStyles, FormControl, InputLabel, Select, FormHelperText } from '@material-ui/core';
type CssRules = 'formControl' | 'selectWrapper' | 'select' | 'option';
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { Typography, Switch } from '@material-ui/core';
type CssRules = 'container' | 'label' | 'value';
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { FormFieldProps, FormField } from '~/components/form-field/form-field';
+import { FormFieldProps, FormField } from 'components/form-field/form-field';
import { Switch } from '@material-ui/core';
import { SwitchProps } from '@material-ui/core/Switch';
import * as React from 'react';
import { WrappedFieldProps } from 'redux-form';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import {
TextField as MaterialTextField,
StyleRulesCallback,
import * as React from 'react';
import { List, ListItem, ListItemIcon, Checkbox, Radio, Collapse } from "@material-ui/core";
import { StyleRulesCallback, withStyles, WithStyles } from '@material-ui/core/styles';
-import { CollectionIcon, DefaultIcon, DirectoryIcon, FileIcon, ProjectIcon, FilterGroupIcon } from '~/components/icon/icon';
+import { CollectionIcon, DefaultIcon, DirectoryIcon, FileIcon, ProjectIcon, FilterGroupIcon } from 'components/icon/icon';
import { ReactElement } from "react";
import CircularProgress from '@material-ui/core/CircularProgress';
import classnames from "classnames";
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { SidePanelRightArrowIcon } from '../icon/icon';
-import { ResourceKind } from '~/models/resource';
-import { GroupClass } from '~/models/group';
+import { ResourceKind } from 'models/resource';
+import { GroupClass } from 'models/group';
type CssRules = 'list'
| 'listItem'
import { FixedSizeList, ListChildComponentProps } from "react-window";
import AutoSizer from "react-virtualized-auto-sizer";
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { TreeItem, TreeProps, TreeItemStatus } from './tree';
import { ListItem, Radio, Checkbox, CircularProgress, ListItemIcon } from '@material-ui/core';
import { SidePanelRightArrowIcon } from '../icon/icon';
// SPDX-License-Identifier: AGPL-3.0
import * as React from "react";
-import { WarningIcon } from "~/components/icon/icon";
+import { WarningIcon } from "components/icon/icon";
import { StyleRulesCallback, DialogContentText, WithStyles, withStyles } from "@material-ui/core";
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
type CssRules = 'container' | 'text';
// SPDX-License-Identifier: AGPL-3.0
import * as React from "react";
-import { ErrorIcon } from "~/components/icon/icon";
+import { ErrorIcon } from "components/icon/icon";
import { Tooltip } from "@material-ui/core";
-import { disallowSlash } from "~/validators/valid-name";
+import { disallowSlash } from "validators/valid-name";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
interface WarningComponentProps {
text: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { CommandInputParameter } from '~/models/workflow';
-import { require } from '~/validators/require';
+import { CommandInputParameter } from 'models/workflow';
+import { require } from 'validators/require';
import { CWLType } from '../../models/workflow';
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { CommandInputParameter } from '~/models/workflow';
+import { CommandInputParameter } from 'models/workflow';
import { TextField } from '@material-ui/core';
-import { required } from '~/components/workflow-inputs-form/validators';
+import { required } from 'components/workflow-inputs-form/validators';
export interface WorkflowInputProps {
input: CommandInputParameter;
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { Provider } from "react-redux";
-import { MainPanel } from '~/views/main-panel/main-panel';
-import '~/index.css';
+import { MainPanel } from 'views/main-panel/main-panel';
+import 'index.css';
import { Route, Switch } from 'react-router';
import { createBrowserHistory } from "history";
import { History } from "history";
-import { configureStore, RootStore } from '~/store/store';
+import { configureStore, RootStore } from 'store/store';
import { ConnectedRouter } from "react-router-redux";
-import { ApiToken } from "~/views-components/api-token/api-token";
-import { AddSession } from "~/views-components/add-session/add-session";
-import { initAuth, logout } from "~/store/auth/auth-action";
-import { createServices } from "~/services/services";
+import { ApiToken } from "views-components/api-token/api-token";
+import { AddSession } from "views-components/add-session/add-session";
+import { initAuth, logout } from "store/auth/auth-action";
+import { createServices } from "services/services";
import { MuiThemeProvider } from '@material-ui/core/styles';
-import { CustomTheme } from '~/common/custom-theme';
-import { fetchConfig } from '~/common/config';
-import { addMenuActionSet, ContextMenuKind } from '~/views-components/context-menu/context-menu';
-import { rootProjectActionSet } from "~/views-components/context-menu/action-sets/root-project-action-set";
-import { filterGroupActionSet, projectActionSet, readOnlyProjectActionSet } from "~/views-components/context-menu/action-sets/project-action-set";
-import { resourceActionSet } from '~/views-components/context-menu/action-sets/resource-action-set';
-import { favoriteActionSet } from "~/views-components/context-menu/action-sets/favorite-action-set";
-import { collectionFilesActionSet, readOnlyCollectionFilesActionSet } from '~/views-components/context-menu/action-sets/collection-files-action-set';
-import { collectionDirectoryItemActionSet, collectionFileItemActionSet, readOnlyCollectionDirectoryItemActionSet, readOnlyCollectionFileItemActionSet } from '~/views-components/context-menu/action-sets/collection-files-item-action-set';
-import { collectionFilesNotSelectedActionSet } from '~/views-components/context-menu/action-sets/collection-files-not-selected-action-set';
-import { collectionActionSet, collectionAdminActionSet, oldCollectionVersionActionSet, readOnlyCollectionActionSet } from '~/views-components/context-menu/action-sets/collection-action-set';
-import { processActionSet } from '~/views-components/context-menu/action-sets/process-action-set';
-import { loadWorkbench } from '~/store/workbench/workbench-actions';
-import { Routes } from '~/routes/routes';
-import { trashActionSet } from "~/views-components/context-menu/action-sets/trash-action-set";
-import { ServiceRepository } from '~/services/services';
-import { initWebSocket } from '~/websocket/websocket';
-import { Config } from '~/common/config';
+import { CustomTheme } from 'common/custom-theme';
+import { fetchConfig } from 'common/config';
+import { addMenuActionSet, ContextMenuKind } from 'views-components/context-menu/context-menu';
+import { rootProjectActionSet } from "views-components/context-menu/action-sets/root-project-action-set";
+import { filterGroupActionSet, projectActionSet, readOnlyProjectActionSet } from "views-components/context-menu/action-sets/project-action-set";
+import { resourceActionSet } from 'views-components/context-menu/action-sets/resource-action-set';
+import { favoriteActionSet } from "views-components/context-menu/action-sets/favorite-action-set";
+import { collectionFilesActionSet, readOnlyCollectionFilesActionSet } from 'views-components/context-menu/action-sets/collection-files-action-set';
+import { collectionDirectoryItemActionSet, collectionFileItemActionSet, readOnlyCollectionDirectoryItemActionSet, readOnlyCollectionFileItemActionSet } from 'views-components/context-menu/action-sets/collection-files-item-action-set';
+import { collectionFilesNotSelectedActionSet } from 'views-components/context-menu/action-sets/collection-files-not-selected-action-set';
+import { collectionActionSet, collectionAdminActionSet, oldCollectionVersionActionSet, readOnlyCollectionActionSet } from 'views-components/context-menu/action-sets/collection-action-set';
+import { processActionSet } from 'views-components/context-menu/action-sets/process-action-set';
+import { loadWorkbench } from 'store/workbench/workbench-actions';
+import { Routes } from 'routes/routes';
+import { trashActionSet } from "views-components/context-menu/action-sets/trash-action-set";
+import { ServiceRepository } from 'services/services';
+import { initWebSocket } from 'websocket/websocket';
+import { Config } from 'common/config';
import { addRouteChangeHandlers } from './routes/route-change-handlers';
-import { setTokenDialogApiHost } from '~/store/token-dialog/token-dialog-actions';
-import { processResourceActionSet, readOnlyProcessResourceActionSet } from '~/views-components/context-menu/action-sets/process-resource-action-set';
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions';
-import { trashedCollectionActionSet } from '~/views-components/context-menu/action-sets/trashed-collection-action-set';
-import { setBuildInfo } from '~/store/app-info/app-info-actions';
-import { getBuildInfo } from '~/common/app-info';
+import { setTokenDialogApiHost } from 'store/token-dialog/token-dialog-actions';
+import { processResourceActionSet, readOnlyProcessResourceActionSet } from 'views-components/context-menu/action-sets/process-resource-action-set';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
+import { trashedCollectionActionSet } from 'views-components/context-menu/action-sets/trashed-collection-action-set';
+import { setBuildInfo } from 'store/app-info/app-info-actions';
+import { getBuildInfo } from 'common/app-info';
import { DragDropContextProvider } from 'react-dnd';
import HTML5Backend from 'react-dnd-html5-backend';
-import { initAdvancedFormProjectsTree } from '~/store/search-bar/search-bar-actions';
-import { repositoryActionSet } from '~/views-components/context-menu/action-sets/repository-action-set';
-import { sshKeyActionSet } from '~/views-components/context-menu/action-sets/ssh-key-action-set';
-import { keepServiceActionSet } from '~/views-components/context-menu/action-sets/keep-service-action-set';
-import { loadVocabulary } from '~/store/vocabulary/vocabulary-actions';
-import { virtualMachineActionSet } from '~/views-components/context-menu/action-sets/virtual-machine-action-set';
-import { userActionSet } from '~/views-components/context-menu/action-sets/user-action-set';
-import { computeNodeActionSet } from '~/views-components/context-menu/action-sets/compute-node-action-set';
-import { apiClientAuthorizationActionSet } from '~/views-components/context-menu/action-sets/api-client-authorization-action-set';
-import { groupActionSet } from '~/views-components/context-menu/action-sets/group-action-set';
-import { groupMemberActionSet } from '~/views-components/context-menu/action-sets/group-member-action-set';
-import { linkActionSet } from '~/views-components/context-menu/action-sets/link-action-set';
-import { loadFileViewersConfig } from '~/store/file-viewers/file-viewers-actions';
-import { processResourceAdminActionSet } from '~/views-components/context-menu/action-sets/process-resource-admin-action-set';
-import { filterGroupAdminActionSet, projectAdminActionSet } from '~/views-components/context-menu/action-sets/project-admin-action-set';
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
+import { initAdvancedFormProjectsTree } from 'store/search-bar/search-bar-actions';
+import { repositoryActionSet } from 'views-components/context-menu/action-sets/repository-action-set';
+import { sshKeyActionSet } from 'views-components/context-menu/action-sets/ssh-key-action-set';
+import { keepServiceActionSet } from 'views-components/context-menu/action-sets/keep-service-action-set';
+import { loadVocabulary } from 'store/vocabulary/vocabulary-actions';
+import { virtualMachineActionSet } from 'views-components/context-menu/action-sets/virtual-machine-action-set';
+import { userActionSet } from 'views-components/context-menu/action-sets/user-action-set';
+import { computeNodeActionSet } from 'views-components/context-menu/action-sets/compute-node-action-set';
+import { apiClientAuthorizationActionSet } from 'views-components/context-menu/action-sets/api-client-authorization-action-set';
+import { groupActionSet } from 'views-components/context-menu/action-sets/group-action-set';
+import { groupMemberActionSet } from 'views-components/context-menu/action-sets/group-member-action-set';
+import { linkActionSet } from 'views-components/context-menu/action-sets/link-action-set';
+import { loadFileViewersConfig } from 'store/file-viewers/file-viewers-actions';
+import { processResourceAdminActionSet } from 'views-components/context-menu/action-sets/process-resource-admin-action-set';
+import { filterGroupAdminActionSet, projectAdminActionSet } from 'views-components/context-menu/action-sets/project-admin-action-set';
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
import { openNotFoundDialog } from './store/not-found-panel/not-found-panel-action';
import { storeRedirects } from './common/redirect-to';
progressFn: (id, working) => {
store.dispatch(progressIndicatorActions.TOGGLE_WORKING({ id, working }));
},
- errorFn: (id, error, showSnackBar) => {
+ errorFn: (id, error, showSnackBar: boolean) => {
if (showSnackBar) {
console.error("Backend error:", error);
import {Edge} from "cwlts/models";
import {PluginBase} from "../plugin-base";
-import { Workflow } from "~/lib/cwl-svg";
+import { Workflow } from "lib/cwl-svg";
export class SVGValidatePlugin extends PluginBase {
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from '~/models/resource';
+import { Resource } from 'models/resource';
export interface ApiClientAuthorization extends Resource {
uuid: string;
// SPDX-License-Identifier: AGPL-3.0
import { Resource, ResourceKind } from "./resource";
-import { MountType } from "~/models/mount-types";
+import { MountType } from "models/mount-types";
import { RuntimeConstraints } from './runtime-constraints';
import { SchedulingParameters } from './scheduling-parameters';
// SPDX-License-Identifier: AGPL-3.0
import { Resource, ResourceKind } from "./resource";
-import { MountType } from '~/models/mount-types';
-import { RuntimeConstraints } from "~/models/runtime-constraints";
+import { MountType } from 'models/mount-types';
+import { RuntimeConstraints } from "models/runtime-constraints";
import { SchedulingParameters } from './scheduling-parameters';
export enum ContainerState {
import { CollectionResource } from "./collection";
import { ProcessResource } from "./process";
import { EmptyResource } from "./empty";
-import { CollectionFile, CollectionDirectory } from '~/models/collection-file';
+import { CollectionFile, CollectionDirectory } from 'models/collection-file';
export type DetailsResource = ProjectResource | CollectionResource | ProcessResource | EmptyResource | CollectionFile | CollectionDirectory;
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from '~/models/resource';
+import { Resource } from 'models/resource';
export interface KeepServiceResource extends Resource {
serviceHost: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource, ResourceKind } from '~/models/resource';
+import { Resource, ResourceKind } from 'models/resource';
export interface LinkResource extends Resource {
headUuid: string;
// SPDX-License-Identifier: AGPL-3.0
import { Resource } from "./resource";
-import { ResourceKind } from '~/models/resource';
+import { ResourceKind } from 'models/resource';
export enum LogEventType {
CREATE = 'create',
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from '~/models/resource';
+import { Resource } from 'models/resource';
export interface NodeResource extends Resource {
slotNumber: number;
// SPDX-License-Identifier: AGPL-3.0
import { ContainerRequestResource } from "./container-request";
-import { MountType, MountKind } from '~/models/mount-types';
-import { WorkflowResource, parseWorkflowDefinition } from '~/models/workflow';
+import { MountType, MountKind } from 'models/mount-types';
+import { WorkflowResource, parseWorkflowDefinition } from 'models/workflow';
import { WorkflowInputsData } from './workflow';
export type ProcessResource = ContainerRequestResource;
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from "~/models/resource";
+import { Resource } from "models/resource";
export interface RepositoryResource extends Resource {
name: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { ResourceKind } from '~/models/resource';
+import { ResourceKind } from 'models/resource';
export type SearchBarAdvancedFormData = {
type?: ResourceKind;
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from '~/models/resource';
+import { Resource } from 'models/resource';
export enum KeyType {
SSH = 'SSH'
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource, ResourceKind } from '~/models/resource';
+import { Resource, ResourceKind } from 'models/resource';
export type UserPrefs = {
profile?: {
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from "~/models/resource";
+import { Resource } from "models/resource";
export interface VirtualMachinesResource extends Resource {
hostname: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { PluginConfig } from '~/common/plugintypes';
+import { PluginConfig } from 'common/plugintypes';
export const pluginConfig: PluginConfig = {
centerPanelList: [],
// Starting here, import and register your Workbench 2 plugins. //
-// import { register as blankUIPluginRegister } from '~/plugins/blank/index';
-// import { register as examplePluginRegister } from '~/plugins/example/index';
-// import { register as rootRedirectRegister } from '~/plugins/root-redirect/index';
+// import { register as blankUIPluginRegister } from 'plugins/blank/index';
+// import { register as examplePluginRegister } from 'plugins/example/index';
+// import { register as rootRedirectRegister } from 'plugins/root-redirect/index';
// blankUIPluginRegister(pluginConfig);
// examplePluginRegister(pluginConfig);
It will look something like this:
```
-import { register as examplePluginRegister } from '~/plugins/example/index';
+import { register as examplePluginRegister } from 'plugins/example/index';
examplePluginRegister(pluginConfig);
```
// Example plugin.
-import { PluginConfig } from '~/common/plugintypes';
+import { PluginConfig } from 'common/plugintypes';
import * as React from 'react';
export const register = (pluginConfig: PluginConfig) => {
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { ServiceRepository } from "~/services/services";
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { ServiceRepository } from "services/services";
import { Dispatch } from "redux";
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { initialize } from 'redux-form';
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
import { reduxForm, InjectedFormProps, Field, reset, startSubmit } from 'redux-form';
-import { TextField } from "~/components/text-field/text-field";
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { withDialog } from "~/store/dialog/with-dialog";
+import { TextField } from "components/text-field/text-field";
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { withDialog } from "store/dialog/with-dialog";
import { compose } from "redux";
-import { propertiesActions } from "~/store/properties/properties-actions";
+import { propertiesActions } from "store/properties/properties-actions";
import { DispatchProp, connect } from 'react-redux';
import { MenuItem } from "@material-ui/core";
import { Card, CardContent, Typography } from "@material-ui/core";
// Example workbench plugin. The entry point is the "register" method.
-import { PluginConfig } from '~/common/plugintypes';
+import { PluginConfig } from 'common/plugintypes';
import * as React from 'react';
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { push } from "react-router-redux";
import { Route, matchPath } from "react-router";
-import { RootStore } from '~/store/store';
-import { activateSidePanelTreeItem } from '~/store/side-panel-tree/side-panel-tree-actions';
-import { setSidePanelBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
+import { RootStore } from 'store/store';
+import { activateSidePanelTreeItem } from 'store/side-panel-tree/side-panel-tree-actions';
+import { setSidePanelBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions';
import { Location } from 'history';
-import { handleFirstTimeLoad } from '~/store/workbench/workbench-actions';
+import { handleFirstTimeLoad } from 'store/workbench/workbench-actions';
import {
ExampleDialog,
ExamplePluginMainPanel,
//
// SPDX-License-Identifier: AGPL-3.0
-import { PluginConfig } from '~/common/plugintypes';
+import { PluginConfig } from 'common/plugintypes';
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { SidePanelTreeCategory } from '~/store/side-panel-tree/side-panel-tree-actions';
+import { RootState } from 'store/store';
+import { SidePanelTreeCategory } from 'store/side-panel-tree/side-panel-tree-actions';
import { push } from "react-router-redux";
export const register = (pluginConfig: PluginConfig, redirect: string) => {
--- /dev/null
+/// <reference types="react-scripts" />
// SPDX-License-Identifier: AGPL-3.0
import { History, Location } from 'history';
-import { RootStore } from '~/store/store';
-import * as Routes from '~/routes/routes';
-import * as WorkbenchActions from '~/store/workbench/workbench-actions';
-import { navigateToRootProject } from '~/store/navigation/navigation-action';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { contextMenuActions } from '~/store/context-menu/context-menu-actions';
-import { searchBarActions } from '~/store/search-bar/search-bar-actions';
-import { pluginConfig } from '~/plugins';
+import { RootStore } from 'store/store';
+import * as Routes from 'routes/routes';
+import * as WorkbenchActions from 'store/workbench/workbench-actions';
+import { navigateToRootProject } from 'store/navigation/navigation-action';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { contextMenuActions } from 'store/context-menu/context-menu-actions';
+import { searchBarActions } from 'store/search-bar/search-bar-actions';
+import { pluginConfig } from 'plugins';
export const addRouteChangeHandlers = (history: History, store: RootStore) => {
const handler = handleLocationChange(store);
// SPDX-License-Identifier: AGPL-3.0
import { matchPath } from 'react-router';
-import { ResourceKind, RESOURCE_UUID_PATTERN, extractUuidKind, COLLECTION_PDH_REGEX, PORTABLE_DATA_HASH_PATTERN } from '~/models/resource';
-import { getProjectUrl } from '~/models/project';
-import { getCollectionUrl } from '~/models/collection';
-import { Config } from '~/common/config';
-import { Session } from "~/models/session";
+import { ResourceKind, RESOURCE_UUID_PATTERN, extractUuidKind, COLLECTION_PDH_REGEX, PORTABLE_DATA_HASH_PATTERN } from 'models/resource';
+import { getProjectUrl } from 'models/project';
+import { getCollectionUrl } from 'models/collection';
+import { Config } from 'common/config';
+import { Session } from "models/session";
export interface FederationConfig {
localCluster: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { GroupsService } from "~/services/groups-service/groups-service";
+import { GroupsService } from "services/groups-service/groups-service";
import { UserService } from '../user-service/user-service';
-import { GroupResource } from '~/models/group';
-import { UserResource } from '~/models/user';
-import { extractUuidObjectType, ResourceObjectType } from "~/models/resource";
+import { GroupResource } from 'models/group';
+import { UserResource } from 'models/user';
+import { extractUuidObjectType, ResourceObjectType } from "models/resource";
export class AncestorService {
constructor(
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { ApiActions } from '~/services/api/api-actions';
-import { ApiClientAuthorization } from '~/models/api-client-authorization';
-import { CommonService } from '~/services/common-service/common-service';
+import { ApiActions } from 'services/api/api-actions';
+import { ApiClientAuthorization } from 'models/api-client-authorization';
+import { CommonService } from 'services/common-service/common-service';
export class ApiClientAuthorizationService extends CommonService<ApiClientAuthorization> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { joinUrls } from "~/services/api/url-builder";
+import { joinUrls } from "services/api/url-builder";
describe("UrlBuilder", () => {
it("should join urls properly 1", () => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { User, UserPrefs, getUserDisplayName } from '~/models/user';
+import { User, UserPrefs, getUserDisplayName } from 'models/user';
import { AxiosInstance } from "axios";
-import { ApiActions } from "~/services/api/api-actions";
+import { ApiActions } from "services/api/api-actions";
import * as uuid from "uuid/v4";
-import { Session, SessionStatus } from "~/models/session";
-import { Config } from "~/common/config";
+import { Session, SessionStatus } from "models/session";
+import { Config } from "common/config";
import { uniqBy } from "lodash";
export const TARGET_URL = 'targetURL';
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { SshKeyResource } from '~/models/ssh-key';
-import { CommonResourceService, CommonResourceServiceError } from '~/services/common-service/common-resource-service';
-import { ApiActions } from "~/services/api/api-actions";
+import { SshKeyResource } from 'models/ssh-key';
+import { CommonResourceService, CommonResourceServiceError } from 'services/common-service/common-resource-service';
+import { ApiActions } from "services/api/api-actions";
export enum AuthorizedKeysServiceError {
UNIQUE_PUBLIC_KEY = 'UniquePublicKey',
//
// SPDX-License-Identifier: AGPL-3.0
-import { CollectionFile } from '~/models/collection-file';
+import { CollectionFile } from 'models/collection-file';
import { getFileFullPath, extractFilesData } from './collection-service-files-response';
describe('collection-service-files-response', () => {
// SPDX-License-Identifier: AGPL-3.0
import { CollectionDirectory, CollectionFile, CollectionFileType, createCollectionDirectory, createCollectionFile } from "../../models/collection-file";
-import { getTagValue } from "~/common/xml";
-import { getNodeChildren, Tree, mapTree } from '~/models/tree';
+import { getTagValue } from "common/xml";
+import { getNodeChildren, Tree, mapTree } from 'models/tree';
export const sortFilesTree = (tree: Tree<CollectionDirectory | CollectionFile>) => {
return mapTree<CollectionDirectory | CollectionFile>(node => {
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from 'axios';
-import { WebDAV } from '~/common/webdav';
+import { WebDAV } from 'common/webdav';
import { ApiActions } from '../api/api-actions';
import { AuthService } from '../auth-service/auth-service';
import { CollectionService } from './collection-service';
//
// SPDX-License-Identifier: AGPL-3.0
-import { CollectionResource } from "~/models/collection";
+import { CollectionResource } from "models/collection";
import { AxiosInstance } from "axios";
-import { CollectionFile, CollectionDirectory } from "~/models/collection-file";
-import { WebDAV } from "~/common/webdav";
+import { CollectionFile, CollectionDirectory } from "models/collection-file";
+import { WebDAV } from "common/webdav";
import { AuthService } from "../auth-service/auth-service";
import { extractFilesData } from "./collection-service-files-response";
-import { TrashableResourceService } from "~/services/common-service/trashable-resource-service";
-import { ApiActions } from "~/services/api/api-actions";
-import { customEncodeURI } from "~/common/url";
+import { TrashableResourceService } from "services/common-service/trashable-resource-service";
+import { ApiActions } from "services/api/api-actions";
+import { customEncodeURI } from "common/url";
export type UploadProgress = (fileId: number, loaded: number, total: number, currentTime: number) => void;
import axios, { AxiosInstance } from "axios";
import MockAdapter from "axios-mock-adapter";
import { Resource } from "src/models/resource";
-import { ApiActions } from "~/services/api/api-actions";
+import { ApiActions } from "services/api/api-actions";
const actions: ApiActions = {
progressFn: (id: string, working: boolean) => {},
import { AxiosInstance } from "axios";
import * as _ from "lodash";
import { Resource } from "src/models/resource";
-import { ApiActions } from "~/services/api/api-actions";
-import { CommonService } from "~/services/common-service/common-service";
+import { ApiActions } from "services/api/api-actions";
+import { CommonService } from "services/common-service/common-service";
export enum CommonResourceServiceError {
UNIQUE_NAME_VIOLATION = 'UniqueNameViolation',
// SPDX-License-Identifier: AGPL-3.0
import axios, { AxiosInstance } from "axios";
-import { ApiActions } from "~/services/api/api-actions";
+import { ApiActions } from "services/api/api-actions";
import { CommonService } from "./common-service";
const actions: ApiActions = {
import * as _ from "lodash";
import { AxiosInstance, AxiosPromise } from "axios";
import * as uuid from "uuid/v4";
-import { ApiActions } from "~/services/api/api-actions";
+import { ApiActions } from "services/api/api-actions";
import * as QueryString from "query-string";
interface Errors {
import * as _ from "lodash";
import { AxiosInstance } from "axios";
import { TrashableResource } from "src/models/resource";
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { ApiActions } from "~/services/api/api-actions";
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { ApiActions } from "services/api/api-actions";
export class TrashableResourceService<T extends TrashableResource> extends CommonResourceService<T> {
//
// SPDX-License-Identifier: AGPL-3.0
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
+import { CommonResourceService } from "services/common-service/common-resource-service";
import { AxiosInstance } from "axios";
-import { ContainerRequestResource } from '~/models/container-request';
-import { ApiActions } from "~/services/api/api-actions";
+import { ContainerRequestResource } from 'models/container-request';
+import { ApiActions } from "services/api/api-actions";
export class ContainerRequestService extends CommonResourceService<ContainerRequestResource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
+import { CommonResourceService } from "services/common-service/common-resource-service";
import { AxiosInstance } from "axios";
-import { ContainerResource } from '~/models/container';
-import { ApiActions } from "~/services/api/api-actions";
+import { ContainerResource } from 'models/container';
+import { ApiActions } from "services/api/api-actions";
export class ContainerService extends CommonResourceService<ContainerResource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
import { LinkService } from "../link-service/link-service";
import { GroupsService } from "../groups-service/groups-service";
import { FavoriteService } from "./favorite-service";
-import { LinkClass } from "~/models/link";
-import { mockResourceService } from "~/services/common-service/common-resource-service.test";
-import { FilterBuilder } from "~/services/api/filter-builder";
+import { LinkClass } from "models/link";
+import { mockResourceService } from "services/common-service/common-resource-service.test";
+import { FilterBuilder } from "services/api/filter-builder";
describe("FavoriteService", () => {
import { LinkService } from "../link-service/link-service";
import { GroupsService, GroupContentsResource } from "../groups-service/groups-service";
-import { LinkClass } from "~/models/link";
-import { FilterBuilder, joinFilters } from "~/services/api/filter-builder";
-import { ListResults } from '~/services/common-service/common-service';
+import { LinkClass } from "models/link";
+import { FilterBuilder, joinFilters } from "services/api/filter-builder";
+import { ListResults } from 'services/common-service/common-service';
export interface FavoriteListArguments {
limit?: number;
// SPDX-License-Identifier: AGPL-3.0
import Axios from 'axios';
-import { FileViewerList } from '~/models/file-viewers-config';
+import { FileViewerList } from 'models/file-viewers-config';
export class FileViewersConfigService {
constructor(
import axios from "axios";
import MockAdapter from "axios-mock-adapter";
import { GroupsService } from "./groups-service";
-import { ApiActions } from "~/services/api/api-actions";
+import { ApiActions } from "services/api/api-actions";
describe("GroupsService", () => {
// SPDX-License-Identifier: AGPL-3.0
import * as _ from "lodash";
-import { CommonResourceService } from '~/services/common-service/common-resource-service';
-import { ListResults, ListArguments } from '~/services/common-service/common-service';
+import { CommonResourceService } from 'services/common-service/common-resource-service';
+import { ListResults, ListArguments } from 'services/common-service/common-service';
import { AxiosInstance, AxiosRequestConfig } from "axios";
-import { CollectionResource } from "~/models/collection";
-import { ProjectResource } from "~/models/project";
-import { ProcessResource } from "~/models/process";
-import { WorkflowResource } from "~/models/workflow";
-import { TrashableResourceService } from "~/services/common-service/trashable-resource-service";
-import { ApiActions } from "~/services/api/api-actions";
-import { GroupResource } from "~/models/group";
-import { Session } from "~/models/session";
+import { CollectionResource } from "models/collection";
+import { ProjectResource } from "models/project";
+import { ProcessResource } from "models/process";
+import { WorkflowResource } from "models/workflow";
+import { TrashableResourceService } from "services/common-service/trashable-resource-service";
+import { ApiActions } from "services/api/api-actions";
+import { GroupResource } from "models/group";
+import { Session } from "models/session";
export interface ContentsArguments {
limit?: number;
//\r
// SPDX-License-Identifier: AGPL-3.0\r
\r
-import { CommonResourceService } from "~/services/common-service/common-resource-service";\r
+import { CommonResourceService } from "services/common-service/common-resource-service";\r
import { AxiosInstance } from "axios";\r
-import { KeepServiceResource } from "~/models/keep-services";\r
-import { ApiActions } from "~/services/api/api-actions";\r
+import { KeepServiceResource } from "models/keep-services";\r
+import { ApiActions } from "services/api/api-actions";\r
\r
export class KeepService extends CommonResourceService<KeepServiceResource> {\r
constructor(serverApi: AxiosInstance, actions: ApiActions) {\r
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { ApiActions } from "~/services/api/api-actions";
-import { AccountToLink, LinkAccountStatus } from "~/models/link-account";
-import { CommonService } from "~/services/common-service/common-service";
+import { ApiActions } from "services/api/api-actions";
+import { AccountToLink, LinkAccountStatus } from "models/link-account";
+import { CommonService } from "services/common-service/common-service";
export const USER_LINK_ACCOUNT_KEY = 'accountToLink';
export const ACCOUNT_LINK_STATUS_KEY = 'accountLinkStatus';
//
// SPDX-License-Identifier: AGPL-3.0
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { LinkResource } from "~/models/link";
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { LinkResource } from "models/link";
import { AxiosInstance } from "axios";
-import { ApiActions } from "~/services/api/api-actions";
+import { ApiActions } from "services/api/api-actions";
export class LinkService<Resource extends LinkResource = LinkResource> extends CommonResourceService<Resource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { LogResource } from '~/models/log';
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { ApiActions } from "~/services/api/api-actions";
+import { LogResource } from 'models/log';
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { ApiActions } from "services/api/api-actions";
export class LogService extends CommonResourceService<LogResource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { NodeResource } from '~/models/node';
-import { ApiActions } from '~/services/api/api-actions';
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { NodeResource } from 'models/node';
+import { ApiActions } from 'services/api/api-actions';
export class NodeService extends CommonResourceService<NodeResource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { LinkService } from "~/services/link-service/link-service";
-import { PermissionResource } from "~/models/permission";
-import { CommonResourceService } from '~/services/common-service/common-resource-service';
+import { LinkService } from "services/link-service/link-service";
+import { PermissionResource } from "models/permission";
+import { CommonResourceService } from 'services/common-service/common-resource-service';
import { LinkClass } from '../../models/link';
-import { ListArguments, ListResults } from '~/services/common-service/common-service';
+import { ListArguments, ListResults } from 'services/common-service/common-service';
export class PermissionService extends LinkService<PermissionResource> {
import axios from "axios";
import { ProjectService } from "./project-service";
-import { FilterBuilder } from "~/services/api/filter-builder";
-import { ApiActions } from "~/services/api/api-actions";
+import { FilterBuilder } from "services/api/filter-builder";
+import { ApiActions } from "services/api/api-actions";
describe("CommonResourceService", () => {
const axiosInstance = axios.create();
// SPDX-License-Identifier: AGPL-3.0
import { GroupsService } from "../groups-service/groups-service";
-import { ProjectResource } from "~/models/project";
-import { GroupClass } from "~/models/group";
-import { ListArguments } from "~/services/common-service/common-service";
-import { FilterBuilder, joinFilters } from "~/services/api/filter-builder";
+import { ProjectResource } from "models/project";
+import { GroupClass } from "models/group";
+import { ListArguments } from "services/common-service/common-service";
+import { FilterBuilder, joinFilters } from "services/api/filter-builder";
export class ProjectService extends GroupsService<ProjectResource> {
create(data: Partial<ProjectResource>) {
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { RepositoryResource } from '~/models/repositories';
-import { ApiActions } from '~/services/api/api-actions';
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { RepositoryResource } from 'models/repositories';
+import { ApiActions } from 'services/api/api-actions';
export class RepositoriesService extends CommonResourceService<RepositoryResource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { SearchBarAdvancedFormData } from '~/models/search-bar';
+import { SearchBarAdvancedFormData } from 'models/search-bar';
export class SearchService {
private recentQueries = this.getRecentQueries();
import Axios from "axios";
import { AxiosInstance } from "axios";
-import { ApiClientAuthorizationService } from '~/services/api-client-authorization-service/api-client-authorization-service';
+import { ApiClientAuthorizationService } from 'services/api-client-authorization-service/api-client-authorization-service';
import { AuthService } from "./auth-service/auth-service";
import { GroupsService } from "./groups-service/groups-service";
import { ProjectService } from "./project-service/project-service";
import { CollectionService } from "./collection-service/collection-service";
import { TagService } from "./tag-service/tag-service";
import { KeepService } from "./keep-service/keep-service";
-import { WebDAV } from "~/common/webdav";
-import { Config } from "~/common/config";
+import { WebDAV } from "common/webdav";
+import { Config } from "common/config";
import { UserService } from './user-service/user-service';
-import { AncestorService } from "~/services/ancestors-service/ancestors-service";
-import { ResourceKind } from "~/models/resource";
+import { AncestorService } from "services/ancestors-service/ancestors-service";
+import { ResourceKind } from "models/resource";
import { ContainerRequestService } from './container-request-service/container-request-service';
import { ContainerService } from './container-service/container-service';
import { LogService } from './log-service/log-service';
-import { ApiActions } from "~/services/api/api-actions";
-import { WorkflowService } from "~/services/workflow-service/workflow-service";
-import { SearchService } from '~/services/search-service/search-service';
-import { PermissionService } from "~/services/permission-service/permission-service";
-import { VirtualMachinesService } from "~/services/virtual-machines-service/virtual-machines-service";
-import { RepositoriesService } from '~/services/repositories-service/repositories-service';
-import { AuthorizedKeysService } from '~/services/authorized-keys-service/authorized-keys-service';
-import { VocabularyService } from '~/services/vocabulary-service/vocabulary-service';
-import { NodeService } from '~/services/node-service/node-service';
-import { FileViewersConfigService } from '~/services/file-viewers-config-service/file-viewers-config-service';
+import { ApiActions } from "services/api/api-actions";
+import { WorkflowService } from "services/workflow-service/workflow-service";
+import { SearchService } from 'services/search-service/search-service';
+import { PermissionService } from "services/permission-service/permission-service";
+import { VirtualMachinesService } from "services/virtual-machines-service/virtual-machines-service";
+import { RepositoriesService } from 'services/repositories-service/repositories-service';
+import { AuthorizedKeysService } from 'services/authorized-keys-service/authorized-keys-service';
+import { VocabularyService } from 'services/vocabulary-service/vocabulary-service';
+import { NodeService } from 'services/node-service/node-service';
+import { FileViewersConfigService } from 'services/file-viewers-config-service/file-viewers-config-service';
import { LinkAccountService } from "./link-account-service/link-account-service";
import parse from "parse-duration";
// SPDX-License-Identifier: AGPL-3.0
import { LinkService } from "../link-service/link-service";
-import { LinkClass } from "~/models/link";
-import { FilterBuilder } from "~/services/api/filter-builder";
-import { TagTailType, TagResource } from "~/models/tag";
-import { OrderBuilder } from "~/services/api/order-builder";
+import { LinkClass } from "models/link";
+import { FilterBuilder } from "services/api/filter-builder";
+import { TagTailType, TagResource } from "models/tag";
+import { OrderBuilder } from "services/api/order-builder";
export class TagService {
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { UserResource } from "~/models/user";
-import { ApiActions } from "~/services/api/api-actions";
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { UserResource } from "models/user";
+import { ApiActions } from "services/api/api-actions";
export class UserService extends CommonResourceService<UserResource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { VirtualMachineLogins, VirtualMachinesResource } from '~/models/virtual-machines';
-import { ApiActions } from '~/services/api/api-actions';
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { VirtualMachineLogins, VirtualMachinesResource } from 'models/virtual-machines';
+import { ApiActions } from 'services/api/api-actions';
export class VirtualMachinesService extends CommonResourceService<VirtualMachinesResource> {
constructor(serverApi: AxiosInstance, actions: ApiActions) {
// SPDX-License-Identifier: AGPL-3.0
import Axios from 'axios';
-import { Vocabulary } from '~/models/vocabulary';
+import { Vocabulary } from 'models/vocabulary';
export class VocabularyService {
constructor(
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
-import { WorkflowResource } from '~/models/workflow';
-import { ApiActions } from '~/services/api/api-actions';
-import { LinkService } from '~/services/link-service/link-service';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { LinkClass } from '~/models/link';
-import { OrderBuilder } from '~/services/api/order-builder';
+import { CommonResourceService } from "services/common-service/common-resource-service";
+import { WorkflowResource } from 'models/workflow';
+import { ApiActions } from 'services/api/api-actions';
+import { LinkService } from 'services/link-service/link-service';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { LinkClass } from 'models/link';
+import { OrderBuilder } from 'services/api/order-builder';
export class WorkflowService extends CommonResourceService<WorkflowResource> {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { RootState } from '~/store/store';
-import { ResourceKind, extractUuidKind } from '~/models/resource';
-import { getResource } from '~/store/resources/resources';
-import { GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { ContainerRequestResource } from '~/models/container-request';
-import { CollectionResource } from '~/models/collection';
-import { ProjectResource } from '~/models/project';
-import { ServiceRepository } from '~/services/services';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { ListResults } from '~/services/common-service/common-service';
-import { RepositoryResource } from '~/models/repositories';
-import { SshKeyResource } from '~/models/ssh-key';
-import { VirtualMachinesResource } from '~/models/virtual-machines';
-import { UserResource } from '~/models/user';
-import { LinkResource } from '~/models/link';
-import { KeepServiceResource } from '~/models/keep-services';
-import { NodeResource } from '~/models/node';
-import { ApiClientAuthorization } from '~/models/api-client-authorization';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { RootState } from 'store/store';
+import { ResourceKind, extractUuidKind } from 'models/resource';
+import { getResource } from 'store/resources/resources';
+import { GroupContentsResourcePrefix } from 'services/groups-service/groups-service';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { ContainerRequestResource } from 'models/container-request';
+import { CollectionResource } from 'models/collection';
+import { ProjectResource } from 'models/project';
+import { ServiceRepository } from 'services/services';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { ListResults } from 'services/common-service/common-service';
+import { RepositoryResource } from 'models/repositories';
+import { SshKeyResource } from 'models/ssh-key';
+import { VirtualMachinesResource } from 'models/virtual-machines';
+import { UserResource } from 'models/user';
+import { LinkResource } from 'models/link';
+import { KeepServiceResource } from 'models/keep-services';
+import { NodeResource } from 'models/node';
+import { ApiClientAuthorization } from 'models/api-client-authorization';
import * as React from 'react';
export const ADVANCED_TAB_DIALOG = 'advancedTabDialog';
//
// SPDX-License-Identifier: AGPL-3.0
-import { DataExplorerMiddlewareService, dataExplorerToListParams, getDataExplorerColumnFilters } from "~/store/data-explorer/data-explorer-middleware-service";
+import { DataExplorerMiddlewareService, dataExplorerToListParams, getDataExplorerColumnFilters } from "store/data-explorer/data-explorer-middleware-service";
import { RootState } from "../store";
-import { ServiceRepository } from "~/services/services";
-import { FilterBuilder, joinFilters } from "~/services/api/filter-builder";
+import { ServiceRepository } from "services/services";
+import { FilterBuilder, joinFilters } from "services/api/filter-builder";
import { allProcessesPanelActions } from "./all-processes-panel-action";
import { Dispatch, MiddlewareAPI } from "redux";
-import { resourcesActions } from "~/store/resources/resources-actions";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions.ts';
-import { getDataExplorer, DataExplorer, getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { loadMissingProcessesInformation } from "~/store/project-panel/project-panel-middleware-service";
-import { DataColumns } from "~/components/data-table/data-table";
+import { resourcesActions } from "store/resources/resources-actions";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions.ts';
+import { getDataExplorer, DataExplorer, getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { loadMissingProcessesInformation } from "store/project-panel/project-panel-middleware-service";
+import { DataColumns } from "components/data-table/data-table";
import {
ProcessStatusFilter,
buildProcessStatusFilters,
serializeOnlyProcessTypeFilters
} from "../resource-type-filters/resource-type-filters";
-import { AllProcessesPanelColumnNames } from "~/views/all-processes-panel/all-processes-panel";
-import { OrderBuilder, OrderDirection } from "~/services/api/order-builder";
-import { ProcessResource } from "~/models/process";
-import { SortDirection } from "~/components/data-table/data-column";
+import { AllProcessesPanelColumnNames } from "views/all-processes-panel/all-processes-panel";
+import { OrderBuilder, OrderDirection } from "services/api/order-builder";
+import { ProcessResource } from "models/process";
+import { SortDirection } from "components/data-table/data-column";
export class AllProcessesPanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from '~/store/store';
-import { setBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
-import { ServiceRepository } from "~/services/services";
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { snackbarActions } from '~/store/snackbar/snackbar-actions';
-import { navigateToRootProject } from '~/store/navigation/navigation-action';
-import { ApiClientAuthorization } from '~/models/api-client-authorization';
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { getResource } from '~/store/resources/resources';
+import { RootState } from 'store/store';
+import { setBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions';
+import { ServiceRepository } from "services/services";
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { snackbarActions } from 'store/snackbar/snackbar-actions';
+import { navigateToRootProject } from 'store/navigation/navigation-action';
+import { ApiClientAuthorization } from 'models/api-client-authorization';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { getResource } from 'store/resources/resources';
export const API_CLIENT_AUTHORIZATION_PANEL_ID = 'apiClientAuthorizationPanelId';
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateResources } from '~/store/resources/resources-actions';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { apiClientAuthorizationsActions } from '~/store/api-client-authorizations/api-client-authorizations-actions';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { ListResults } from '~/services/common-service/common-service';
-import { ApiClientAuthorization } from '~/models/api-client-authorization';
-import { ApiClientAuthorizationPanelColumnNames } from '~/views/api-client-authorization-panel/api-client-authorization-panel-root';
-import { SortDirection } from '~/components/data-table/data-column';
+import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateResources } from 'store/resources/resources-actions';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { apiClientAuthorizationsActions } from 'store/api-client-authorizations/api-client-authorizations-actions';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { ListResults } from 'services/common-service/common-service';
+import { ApiClientAuthorization } from 'models/api-client-authorization';
+import { ApiClientAuthorizationPanelColumnNames } from 'views/api-client-authorization-panel/api-client-authorization-panel-root';
+import { SortDirection } from 'components/data-table/data-column';
export class ApiClientAuthorizationMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from '~/common/unionize';
+import { unionize, ofType, UnionOf } from 'common/unionize';
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { getBuildInfo } from '~/common/app-info';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { getBuildInfo } from 'common/app-info';
export const appInfoActions = unionize({
SET_BUILD_INFO: ofType<string>()
//
// SPDX-License-Identifier: AGPL-3.0
-import { appInfoActions, AppInfoAction } from "~/store/app-info/app-info-actions";
+import { appInfoActions, AppInfoAction } from "store/app-info/app-info-actions";
export interface AppInfoState {
buildInfo: string;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { setBreadcrumbs } from "~/store/breadcrumbs/breadcrumbs-actions";
-import { RootState } from "~/store/store";
-import { ServiceRepository, createServices, setAuthorizationHeader } from "~/services/services";
+import { setBreadcrumbs } from "store/breadcrumbs/breadcrumbs-actions";
+import { RootState } from "store/store";
+import { ServiceRepository, createServices, setAuthorizationHeader } from "services/services";
import Axios, { AxiosInstance } from "axios";
-import { User, getUserDisplayName } from "~/models/user";
-import { authActions } from "~/store/auth/auth-action";
+import { User, getUserDisplayName } from "models/user";
+import { authActions } from "store/auth/auth-action";
import {
Config, ClusterConfigJSON, CLUSTER_CONFIG_PATH, DISCOVERY_DOC_PATH,
buildConfig, mockClusterConfigJSON
-} from "~/common/config";
-import { normalizeURLPath } from "~/common/url";
-import { Session, SessionStatus } from "~/models/session";
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { AuthService } from "~/services/auth-service/auth-service";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
+} from "common/config";
+import { normalizeURLPath } from "common/url";
+import { Session, SessionStatus } from "models/session";
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { AuthService } from "services/auth-service/auth-service";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
import * as jsSHA from "jssha";
const getClusterConfig = async (origin: string, apiClient: AxiosInstance): Promise<Config | null> => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository } from "~/services/services";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
+import { RootState } from "store/store";
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository } from "services/services";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
import { FormErrors, reset, startSubmit, stopSubmit } from "redux-form";
-import { KeyType } from "~/models/ssh-key";
+import { KeyType } from "models/ssh-key";
import {
AuthorizedKeysServiceError,
getAuthorizedKeysServiceError
-} from "~/services/authorized-keys-service/authorized-keys-service";
-import { setBreadcrumbs } from "~/store/breadcrumbs/breadcrumbs-actions";
-import { authActions } from "~/store/auth/auth-action";
+} from "services/authorized-keys-service/authorized-keys-service";
+import { setBreadcrumbs } from "store/breadcrumbs/breadcrumbs-actions";
+import { authActions } from "store/auth/auth-action";
export const SSH_KEY_CREATE_FORM_NAME = 'sshKeyCreateFormName';
export const SSH_KEY_PUBLIC_KEY_DIALOG = 'sshKeyPublicKeyDialog';
// SPDX-License-Identifier: AGPL-3.0
import { getNewExtraToken, initAuth } from "./auth-action";
-import { API_TOKEN_KEY } from "~/services/auth-service/auth-service";
+import { API_TOKEN_KEY } from "services/auth-service/auth-service";
import 'jest-localstorage-mock';
-import { ServiceRepository, createServices } from "~/services/services";
+import { ServiceRepository, createServices } from "services/services";
import { configureStore, RootStore } from "../store";
import { createBrowserHistory } from "history";
-import { mockConfig } from '~/common/config';
-import { ApiActions } from "~/services/api/api-actions";
-import { ACCOUNT_LINK_STATUS_KEY } from '~/services/link-account-service/link-account-service';
+import { mockConfig } from 'common/config';
+import { ApiActions } from "services/api/api-actions";
+import { ACCOUNT_LINK_STATUS_KEY } from 'services/link-account-service/link-account-service';
import Axios, { AxiosInstance } from "axios";
import MockAdapter from "axios-mock-adapter";
import { ImportMock } from 'ts-mock-imports';
-import * as servicesModule from "~/services/services";
+import * as servicesModule from "services/services";
import * as authActionSessionModule from "./auth-action-session";
-import { SessionStatus } from "~/models/session";
+import { SessionStatus } from "models/session";
import { getRemoteHostConfig } from "./auth-action-session";
describe('auth-actions', () => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { ofType, unionize, UnionOf } from '~/common/unionize';
+import { ofType, unionize, UnionOf } from 'common/unionize';
import { Dispatch } from "redux";
import { RootState } from "../store";
-import { ServiceRepository } from "~/services/services";
-import { SshKeyResource } from '~/models/ssh-key';
-import { User } from "~/models/user";
-import { Session } from "~/models/session";
-import { Config } from '~/common/config';
-import { matchTokenRoute, matchFedTokenRoute } from '~/routes/routes';
-import { createServices, setAuthorizationHeader } from "~/services/services";
-import { cancelLinking } from '~/store/link-account-panel/link-account-panel-actions';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { WORKBENCH_LOADING_SCREEN } from '~/store/workbench/workbench-actions';
+import { ServiceRepository } from "services/services";
+import { SshKeyResource } from 'models/ssh-key';
+import { User } from "models/user";
+import { Session } from "models/session";
+import { Config } from 'common/config';
+import { matchTokenRoute, matchFedTokenRoute } from 'routes/routes';
+import { createServices, setAuthorizationHeader } from "services/services";
+import { cancelLinking } from 'store/link-account-panel/link-account-panel-actions';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { WORKBENCH_LOADING_SCREEN } from 'store/workbench/workbench-actions';
import { addRemoteConfig, getRemoteHostConfig } from './auth-action-session';
-import { getTokenV2 } from '~/models/api-client-authorization';
+import { getTokenV2 } from 'models/api-client-authorization';
export const authActions = unionize({
LOGIN: {},
import { authMiddleware } from "./auth-middleware";
import { RootStore, configureStore } from "../store";
-import { ServiceRepository, createServices } from "~/services/services";
-import { ApiActions } from "~/services/api/api-actions";
-import { mockConfig } from "~/common/config";
+import { ServiceRepository, createServices } from "services/services";
+import { ApiActions } from "services/api/api-actions";
+import { mockConfig } from "common/config";
import { authActions } from "./auth-action";
-import { API_TOKEN_KEY } from '~/services/auth-service/auth-service';
+import { API_TOKEN_KEY } from 'services/auth-service/auth-service';
describe("AuthMiddleware", () => {
let store: RootStore;
import { Middleware } from "redux";
import { authActions, } from "./auth-action";
-import { ServiceRepository, setAuthorizationHeader, removeAuthorizationHeader } from "~/services/services";
-import { initSessions } from "~/store/auth/auth-action-session";
-import { User } from "~/models/user";
-import { RootState } from '~/store/store';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { WORKBENCH_LOADING_SCREEN } from '~/store/workbench/workbench-actions';
+import { ServiceRepository, setAuthorizationHeader, removeAuthorizationHeader } from "services/services";
+import { initSessions } from "store/auth/auth-action-session";
+import { User } from "models/user";
+import { RootState } from 'store/store';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { WORKBENCH_LOADING_SCREEN } from 'store/workbench/workbench-actions';
export const authMiddleware = (services: ServiceRepository): Middleware => store => next => action => {
// Middleware to update external state (local storage, window
import { AuthAction, authActions } from "./auth-action";
import 'jest-localstorage-mock';
-import { createServices } from "~/services/services";
-import { mockConfig } from '~/common/config';
-import { ApiActions } from "~/services/api/api-actions";
+import { createServices } from "services/services";
+import { mockConfig } from 'common/config';
+import { ApiActions } from "services/api/api-actions";
describe('auth-reducer', () => {
let reducer: (state: AuthState | undefined, action: AuthAction) => any;
// SPDX-License-Identifier: AGPL-3.0
import { authActions, AuthAction } from "./auth-action";
-import { User } from "~/models/user";
-import { ServiceRepository } from "~/services/services";
-import { SshKeyResource } from '~/models/ssh-key';
-import { Session } from "~/models/session";
-import { Config, mockConfig } from '~/common/config';
+import { User } from "models/user";
+import { ServiceRepository } from "services/services";
+import { SshKeyResource } from 'models/ssh-key';
+import { Session } from "models/session";
+import { Config, mockConfig } from 'common/config';
export interface AuthState {
user?: User;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { Breadcrumb } from '~/components/breadcrumbs/breadcrumbs';
-import { getResource } from '~/store/resources/resources';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { Breadcrumb } from 'components/breadcrumbs/breadcrumbs';
+import { getResource } from 'store/resources/resources';
import { TreePicker } from '../tree-picker/tree-picker';
import { getSidePanelTreeBranch, getSidePanelTreeNodeAncestorsIds } from '../side-panel-tree/side-panel-tree-actions';
import { propertiesActions } from '../properties/properties-actions';
-import { getProcess } from '~/store/processes/process';
-import { ServiceRepository } from '~/services/services';
-import { SidePanelTreeCategory, activateSidePanelTreeItem } from '~/store/side-panel-tree/side-panel-tree-actions';
+import { getProcess } from 'store/processes/process';
+import { ServiceRepository } from 'services/services';
+import { SidePanelTreeCategory, activateSidePanelTreeItem } from 'store/side-panel-tree/side-panel-tree-actions';
import { updateResources } from '../resources/resources-actions';
-import { ResourceKind } from '~/models/resource';
-import { GroupResource } from '~/models/group';
-import { extractUuidKind } from '~/models/resource';
+import { ResourceKind } from 'models/resource';
+import { GroupResource } from 'models/group';
+import { extractUuidKind } from 'models/resource';
export const BREADCRUMBS = 'breadcrumbs';
loadCollectionFiles,
COLLECTION_PANEL_LOAD_FILES_THRESHOLD
} from "./collection-panel-files/collection-panel-files-actions";
-import { CollectionResource } from '~/models/collection';
-import { RootState } from "~/store/store";
-import { ServiceRepository } from "~/services/services";
-import { TagProperty } from "~/models/tag";
+import { CollectionResource } from 'models/collection';
+import { RootState } from "store/store";
+import { ServiceRepository } from "services/services";
+import { TagProperty } from "models/tag";
import { snackbarActions } from "../snackbar/snackbar-actions";
-import { resourcesActions } from "~/store/resources/resources-actions";
-import { unionize, ofType, UnionOf } from '~/common/unionize';
-import { SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { addProperty, deleteProperty } from "~/lib/resource-properties";
+import { resourcesActions } from "store/resources/resources-actions";
+import { unionize, ofType, UnionOf } from 'common/unionize';
+import { SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
+import { addProperty, deleteProperty } from "lib/resource-properties";
export const collectionPanelActions = unionize({
SET_COLLECTION: ofType<CollectionResource>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
import { Dispatch } from "redux";
-import { CollectionFilesTree, CollectionFileType, createCollectionFilesTree } from "~/models/collection-file";
-import { ServiceRepository } from "~/services/services";
+import { CollectionFilesTree, CollectionFileType, createCollectionFilesTree } from "models/collection-file";
+import { ServiceRepository } from "services/services";
import { RootState } from "../../store";
import { snackbarActions, SnackbarKind } from "../../snackbar/snackbar-actions";
import { dialogActions } from '../../dialog/dialog-actions';
-import { getNodeValue, mapTreeValues } from "~/models/tree";
+import { getNodeValue, mapTreeValues } from "models/tree";
import { filterCollectionFilesBySelection } from './collection-panel-files-state';
import { startSubmit, stopSubmit, initialize, FormErrors } from 'redux-form';
-import { getDialog } from "~/store/dialog/dialog-reducer";
-import { getFileFullPath, sortFilesTree } from "~/services/collection-service/collection-service-files-response";
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
+import { getDialog } from "store/dialog/dialog-reducer";
+import { getFileFullPath, sortFilesTree } from "services/collection-service/collection-service-files-response";
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
import { loadCollectionPanel } from "../collection-panel-action";
export const collectionPanelFilesAction = unionize({
import { collectionPanelFilesReducer } from "./collection-panel-files-reducer";
import { collectionPanelFilesAction } from "./collection-panel-files-actions";
-import { CollectionFile, CollectionDirectory, createCollectionFile, createCollectionDirectory } from "~/models/collection-file";
-import { createTree, setNode, getNodeValue, mapTreeValues, TreeNodeStatus } from "~/models/tree";
+import { CollectionFile, CollectionDirectory, createCollectionFile, createCollectionDirectory } from "models/collection-file";
+import { createTree, setNode, getNodeValue, mapTreeValues, TreeNodeStatus } from "models/tree";
import { CollectionPanelFile, CollectionPanelDirectory } from "./collection-panel-files-state";
describe('CollectionPanelFilesReducer', () => {
import { CollectionPanelFilesState, CollectionPanelFile, CollectionPanelDirectory, mapCollectionFileToCollectionPanelFile, mergeCollectionPanelFilesStates } from './collection-panel-files-state';
import { CollectionPanelFilesAction, collectionPanelFilesAction } from "./collection-panel-files-actions";
-import { createTree, mapTreeValues, getNode, setNode, getNodeAncestorsIds, getNodeDescendantsIds, setNodeValueWith, mapTree } from "~/models/tree";
-import { CollectionFileType } from "~/models/collection-file";
+import { createTree, mapTreeValues, getNode, setNode, getNodeAncestorsIds, getNodeDescendantsIds, setNodeValueWith, mapTree } from "models/tree";
+import { CollectionFileType } from "models/collection-file";
let fetchedFiles: any = {};
//
// SPDX-License-Identifier: AGPL-3.0
-import { Tree, TreeNode, mapTreeValues, getNodeValue, getNodeDescendants } from '~/models/tree';
-import { CollectionFile, CollectionDirectory, CollectionFileType } from '~/models/collection-file';
+import { Tree, TreeNode, mapTreeValues, getNodeValue, getNodeDescendants } from 'models/tree';
+import { CollectionFile, CollectionDirectory, CollectionFileType } from 'models/collection-file';
export type CollectionPanelFilesState = Tree<CollectionPanelDirectory | CollectionPanelFile>;
// SPDX-License-Identifier: AGPL-3.0
import { collectionPanelActions, CollectionPanelAction } from "./collection-panel-action";
-import { CollectionResource } from "~/models/collection";
+import { CollectionResource } from "models/collection";
export interface CollectionPanelState {
item: CollectionResource | null;
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { resourcesActions } from '~/store/resources/resources-actions';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { SortDirection } from '~/components/data-table/data-column';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { FavoritePanelColumnNames } from '~/views/favorite-panel/favorite-panel';
-import { GroupContentsResource, GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions';
+import { DataExplorerMiddlewareService } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { resourcesActions } from 'store/resources/resources-actions';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { SortDirection } from 'components/data-table/data-column';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { FavoritePanelColumnNames } from 'views/favorite-panel/favorite-panel';
+import { GroupContentsResource, GroupContentsResourcePrefix } from 'services/groups-service/groups-service';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
import { collectionsContentAddressActions } from './collections-content-address-panel-actions';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { updateFavorites } from '~/store/favorites/favorites-actions';
-import { updatePublicFavorites } from '~/store/public-favorites/public-favorites-actions';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { updateFavorites } from 'store/favorites/favorites-actions';
+import { updatePublicFavorites } from 'store/public-favorites/public-favorites-actions';
import { setBreadcrumbs } from '../breadcrumbs/breadcrumbs-actions';
-import { ResourceKind, extractUuidKind } from '~/models/resource';
-import { ownerNameActions } from '~/store/owner-name/owner-name-actions';
-import { getUserDisplayName } from '~/models/user';
+import { ResourceKind, extractUuidKind } from 'models/resource';
+import { ownerNameActions } from 'store/owner-name/owner-name-actions';
+import { getUserDisplayName } from 'models/user';
export class CollectionsWithSameContentAddressMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
export const COLLECTIONS_CONTENT_ADDRESS_PANEL_ID = 'collectionsContentAddressPanel';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
import { FormErrors, initialize, startSubmit, stopSubmit } from 'redux-form';
-import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { getCommonResourceServiceError, CommonResourceServiceError } from '~/services/common-service/common-resource-service';
-import { CopyFormDialogData } from '~/store/copy-dialog/copy-dialog';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
+import { resetPickerProjectTree } from 'store/project-tree-picker/project-tree-picker-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { getCommonResourceServiceError, CommonResourceServiceError } from 'services/common-service/common-resource-service';
+import { CopyFormDialogData } from 'store/copy-dialog/copy-dialog';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
export const COLLECTION_COPY_FORM_NAME = 'collectionCopyFormName';
import { Dispatch } from "redux";
import { reset, startSubmit, stopSubmit, initialize, FormErrors } from 'redux-form';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { ServiceRepository } from '~/services/services';
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { dialogActions } from "store/dialog/dialog-actions";
+import { ServiceRepository } from 'services/services';
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
import { uploadCollectionFiles } from './collection-upload-actions';
-import { fileUploaderActions } from '~/store/file-uploader/file-uploader-actions';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { isProjectOrRunProcessRoute } from '~/store/projects/project-create-actions';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { CollectionResource } from "~/models/collection";
+import { fileUploaderActions } from 'store/file-uploader/file-uploader-actions';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { isProjectOrRunProcessRoute } from 'store/projects/project-create-actions';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { CollectionResource } from "models/collection";
export interface CollectionCreateFormDialogData {
ownerUuid: string;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
-import { ServiceRepository } from "~/services/services";
-import { dialogActions } from '~/store/dialog/dialog-actions';
+import { RootState } from "store/store";
+import { ServiceRepository } from "services/services";
+import { dialogActions } from 'store/dialog/dialog-actions';
import { getNewExtraToken } from "../auth/auth-action";
-import { CollectionResource } from "~/models/collection";
+import { CollectionResource } from "models/collection";
export const COLLECTION_WEBDAV_S3_DIALOG_NAME = 'collectionWebdavS3Dialog';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
import { startSubmit, stopSubmit, initialize, FormErrors } from 'redux-form';
-import { ServiceRepository } from '~/services/services';
-import { RootState } from '~/store/store';
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
-import { projectPanelActions } from '~/store/project-panel/project-panel-action';
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
+import { ServiceRepository } from 'services/services';
+import { RootState } from 'store/store';
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
+import { projectPanelActions } from 'store/project-panel/project-panel-action';
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { resetPickerProjectTree } from 'store/project-tree-picker/project-tree-picker-actions';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
export const COLLECTION_MOVE_FORM_NAME = 'collectionMoveFormName';
import { Dispatch } from 'redux';
import * as _ from "lodash";
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { FormErrors, initialize, startSubmit, stopSubmit } from 'redux-form';
-import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { ServiceRepository } from '~/services/services';
+import { resetPickerProjectTree } from 'store/project-tree-picker/project-tree-picker-actions';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { ServiceRepository } from 'services/services';
import { filterCollectionFilesBySelection } from '../collection-panel/collection-panel-files/collection-panel-files-state';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getCommonResourceServiceError, CommonResourceServiceError } from '~/services/common-service/common-resource-service';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getCommonResourceServiceError, CommonResourceServiceError } from 'services/common-service/common-resource-service';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
export const COLLECTION_PARTIAL_COPY_FORM_NAME = 'COLLECTION_PARTIAL_COPY_DIALOG';
export const COLLECTION_PARTIAL_COPY_TO_SELECTED_COLLECTION = 'COLLECTION_PARTIAL_COPY_TO_SELECTED_DIALOG';
import { Dispatch } from "redux";
import { FormErrors, initialize, startSubmit, stopSubmit } from 'redux-form';
-import { RootState } from "~/store/store";
-import { collectionPanelActions } from "~/store/collection-panel/collection-panel-action";
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
-import { ServiceRepository } from "~/services/services";
-import { CollectionResource } from '~/models/collection';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
+import { RootState } from "store/store";
+import { collectionPanelActions } from "store/collection-panel/collection-panel-action";
+import { dialogActions } from "store/dialog/dialog-actions";
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
+import { ServiceRepository } from "services/services";
+import { CollectionResource } from 'models/collection';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
import { snackbarActions, SnackbarKind } from "../snackbar/snackbar-actions";
import { updateResources } from "../resources/resources-actions";
import { loadDetailsPanel } from "../details-panel/details-panel-action";
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { dialogActions } from '~/store/dialog/dialog-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { dialogActions } from 'store/dialog/dialog-actions';
import { loadCollectionFiles } from '../collection-panel/collection-panel-files/collection-panel-files-actions';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { fileUploaderActions } from '~/store/file-uploader/file-uploader-actions';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { fileUploaderActions } from 'store/file-uploader/file-uploader-actions';
import { reset, startSubmit, stopSubmit } from 'redux-form';
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { collectionPanelFilesAction } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
-import { createTree } from '~/models/tree';
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { collectionPanelFilesAction } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { createTree } from 'models/tree';
import { loadCollectionPanel } from '../collection-panel/collection-panel-action';
export const uploadCollectionFiles = (collectionUuid: string) =>
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
import { snackbarActions, SnackbarKind } from "../snackbar/snackbar-actions";
import { resourcesActions } from "../resources/resources-actions";
import { navigateTo } from "../navigation/navigation-action";
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from '~/store/store';
-import { setBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
-import { navigateToRootProject } from '~/store/navigation/navigation-action';
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { getResource } from '~/store/resources/resources';
-import { ServiceRepository } from "~/services/services";
-import { NodeResource } from '~/models/node';
+import { RootState } from 'store/store';
+import { setBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
+import { navigateToRootProject } from 'store/navigation/navigation-action';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { getResource } from 'store/resources/resources';
+import { ServiceRepository } from "services/services";
+import { NodeResource } from 'models/node';
export const COMPUTE_NODE_PANEL_ID = "computeNodeId";
export const computeNodesActions = bindDataExplorerActions(COMPUTE_NODE_PANEL_ID);
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateResources } from '~/store/resources/resources-actions';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { computeNodesActions } from '~/store/compute-nodes/compute-nodes-actions';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { ListResults } from '~/services/common-service/common-service';
-import { NodeResource } from '~/models/node';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ComputeNodePanelColumnNames } from '~/views/compute-node-panel/compute-node-panel-root';
+import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateResources } from 'store/resources/resources-actions';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { computeNodesActions } from 'store/compute-nodes/compute-nodes-actions';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { ListResults } from 'services/common-service/common-service';
+import { NodeResource } from 'models/node';
+import { SortDirection } from 'components/data-table/data-column';
+import { ComputeNodePanelColumnNames } from 'views/compute-node-panel/compute-node-panel-root';
export class ComputeNodeMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuKind } from '~/views-components/context-menu/context-menu';
+import { ContextMenuKind } from 'views-components/context-menu/context-menu';
import { resourceUuidToContextMenuKind } from './context-menu-actions';
import configureStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { PROJECT_PANEL_CURRENT_UUID } from '../project-panel/project-panel-action';
-import { GroupClass } from '~/models/group';
+import { GroupClass } from 'models/group';
describe('context-menu-actions', () => {
describe('resourceUuidToContextMenuKind', () => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from '~/common/unionize';
+import { unionize, ofType, UnionOf } from 'common/unionize';
import { ContextMenuPosition } from "./context-menu-reducer";
-import { ContextMenuKind } from '~/views-components/context-menu/context-menu';
+import { ContextMenuKind } from 'views-components/context-menu/context-menu';
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { getResource, getResourceWithEditableStatus } from '../resources/resources';
-import { UserResource } from '~/models/user';
-import { isSidePanelTreeCategory } from '~/store/side-panel-tree/side-panel-tree-actions';
-import { extractUuidKind, ResourceKind, EditableResource } from '~/models/resource';
-import { Process } from '~/store/processes/process';
-import { RepositoryResource } from '~/models/repositories';
-import { SshKeyResource } from '~/models/ssh-key';
-import { VirtualMachinesResource } from '~/models/virtual-machines';
-import { KeepServiceResource } from '~/models/keep-services';
-import { ProcessResource } from '~/models/process';
-import { CollectionResource } from '~/models/collection';
-import { GroupClass, GroupResource } from '~/models/group';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
+import { UserResource } from 'models/user';
+import { isSidePanelTreeCategory } from 'store/side-panel-tree/side-panel-tree-actions';
+import { extractUuidKind, ResourceKind, EditableResource } from 'models/resource';
+import { Process } from 'store/processes/process';
+import { RepositoryResource } from 'models/repositories';
+import { SshKeyResource } from 'models/ssh-key';
+import { VirtualMachinesResource } from 'models/virtual-machines';
+import { KeepServiceResource } from 'models/keep-services';
+import { ProcessResource } from 'models/process';
+import { CollectionResource } from 'models/collection';
+import { GroupClass, GroupResource } from 'models/group';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
export const contextMenuActions = unionize({
OPEN_CONTEXT_MENU: ofType<{ position: ContextMenuPosition, resource: ContextMenuResource }>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
-import { DataColumns, DataTableFetchMode } from "~/components/data-table/data-table";
-import { DataTableFilters } from '~/components/data-table-filters/data-table-filters-tree';
+import { unionize, ofType, UnionOf } from "common/unionize";
+import { DataColumns, DataTableFetchMode } from "components/data-table/data-table";
+import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree';
export enum DataTableRequestState {
IDLE,
import { Dispatch, MiddlewareAPI } from "redux";
import { RootState } from "../store";
-import { DataColumns } from "~/components/data-table/data-table";
+import { DataColumns } from "components/data-table/data-table";
import { DataExplorer } from './data-explorer-reducer';
-import { ListResults } from '~/services/common-service/common-service';
-import { createTree } from "~/models/tree";
-import { DataTableFilters } from "~/components/data-table-filters/data-table-filters-tree";
+import { ListResults } from 'services/common-service/common-service';
+import { createTree } from "models/tree";
+import { DataTableFilters } from "components/data-table-filters/data-table-filters-tree";
export abstract class DataExplorerMiddlewareService {
protected readonly id: string;
import { DataExplorerMiddlewareService } from "./data-explorer-middleware-service";
import { dataExplorerMiddleware } from "./data-explorer-middleware";
import { MiddlewareAPI } from "redux";
-import { DataColumns } from "~/components/data-table/data-table";
+import { DataColumns } from "components/data-table/data-table";
import { dataExplorerActions } from "./data-explorer-action";
-import { SortDirection } from "~/components/data-table/data-column";
-import { createTree } from '~/models/tree';
-import { DataTableFilterItem } from "~/components/data-table-filters/data-table-filters-tree";
+import { SortDirection } from "components/data-table/data-column";
+import { createTree } from 'models/tree';
+import { DataTableFilterItem } from "components/data-table-filters/data-table-filters-tree";
describe("DataExplorerMiddleware", () => {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
import { Middleware } from "redux";
import { dataExplorerActions, bindDataExplorerActions, DataTableRequestState } from "./data-explorer-action";
import { getDataExplorer } from "./data-explorer-reducer";
resetSortDirection,
SortDirection,
toggleSortDirection
-} from "~/components/data-table/data-column";
+} from "components/data-table/data-column";
import { DataExplorerAction, dataExplorerActions, DataTableRequestState } from "./data-explorer-action";
-import { DataColumns, DataTableFetchMode } from "~/components/data-table/data-table";
-import { DataTableFilters } from "~/components/data-table-filters/data-table-filters-tree";
+import { DataColumns, DataTableFetchMode } from "components/data-table/data-table";
+import { DataTableFilters } from "components/data-table-filters/data-table-filters-tree";
export interface DataExplorer {
fetchMode: DataTableFetchMode;
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from '~/common/unionize';
-import { RootState } from '~/store/store';
+import { unionize, ofType, UnionOf } from 'common/unionize';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { getResource } from '~/store/resources/resources';
-import { ProjectResource } from "~/models/project";
-import { ServiceRepository } from '~/services/services';
-import { TagProperty } from '~/models/tag';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { getResource } from 'store/resources/resources';
+import { ProjectResource } from "models/project";
+import { ServiceRepository } from 'services/services';
+import { TagProperty } from 'models/tag';
import { startSubmit, stopSubmit } from 'redux-form';
-import { resourcesActions } from '~/store/resources/resources-actions';
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
-import { addProperty, deleteProperty } from '~/lib/resource-properties';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { OrderBuilder } from '~/services/api/order-builder';
-import { CollectionResource } from '~/models/collection';
-import { extractUuidKind, ResourceKind } from '~/models/resource';
+import { resourcesActions } from 'store/resources/resources-actions';
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
+import { addProperty, deleteProperty } from 'lib/resource-properties';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { OrderBuilder } from 'services/api/order-builder';
+import { CollectionResource } from 'models/collection';
+import { extractUuidKind, ResourceKind } from 'models/resource';
export const SLIDE_TIMEOUT = 500;
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
export const dialogActions = unionize({
OPEN_DIALOG: ofType<{ id: string, data: any }>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { DataExplorerMiddlewareService } from "~/store/data-explorer/data-explorer-middleware-service";
-import { FavoritePanelColumnNames } from "~/views/favorite-panel/favorite-panel";
+import { DataExplorerMiddlewareService } from "store/data-explorer/data-explorer-middleware-service";
+import { FavoritePanelColumnNames } from "views/favorite-panel/favorite-panel";
import { RootState } from "../store";
-import { getUserUuid } from "~/common/getuser";
-import { DataColumns } from "~/components/data-table/data-table";
-import { ServiceRepository } from "~/services/services";
-import { SortDirection } from "~/components/data-table/data-column";
-import { FilterBuilder } from "~/services/api/filter-builder";
+import { getUserUuid } from "common/getuser";
+import { DataColumns } from "components/data-table/data-table";
+import { ServiceRepository } from "services/services";
+import { SortDirection } from "components/data-table/data-column";
+import { FilterBuilder } from "services/api/filter-builder";
import { updateFavorites } from "../favorites/favorites-actions";
import { favoritePanelActions } from "./favorite-panel-action";
import { Dispatch, MiddlewareAPI } from "redux";
-import { OrderBuilder, OrderDirection } from "~/services/api/order-builder";
-import { LinkResource } from "~/models/link";
-import { GroupContentsResource, GroupContentsResourcePrefix } from "~/services/groups-service/groups-service";
-import { resourcesActions } from "~/store/resources/resources-actions";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-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 { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { getDataExplorerColumnFilters } from '~/store/data-explorer/data-explorer-middleware-service';
+import { OrderBuilder, OrderDirection } from "services/api/order-builder";
+import { LinkResource } from "models/link";
+import { GroupContentsResource, GroupContentsResourcePrefix } from "services/groups-service/groups-service";
+import { resourcesActions } from "store/resources/resources-actions";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+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 { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { getDataExplorerColumnFilters } from 'store/data-explorer/data-explorer-middleware-service';
import { serializeSimpleObjectTypeFilters } from '../resource-type-filters/resource-type-filters';
-import { ResourceKind } from "~/models/resource";
-import { LinkClass } from "~/models/link";
+import { ResourceKind } from "models/resource";
+import { LinkClass } from "models/link";
export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
import { Dispatch } from "redux";
import { RootState } from "../store";
-import { getUserUuid } from "~/common/getuser";
+import { getUserUuid } from "common/getuser";
import { checkFavorite } from "./favorites-reducer";
import { snackbarActions, SnackbarKind } from "../snackbar/snackbar-actions";
-import { ServiceRepository } from "~/services/services";
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
+import { ServiceRepository } from "services/services";
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
export const favoritesActions = unionize({
TOGGLE_FAVORITE: ofType<{ resourceUuid: string }>(),
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions';
+import { dialogActions } from "store/dialog/dialog-actions";
+import { resetPickerProjectTree } from 'store/project-tree-picker/project-tree-picker-actions';
export const FILE_SELECTION = 'fileSelection';
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
import { Dispatch } from "redux";
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
export interface UploadFile {
id: number;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { ServiceRepository } from '~/services/services';
-import { propertiesActions } from '~/store/properties/properties-actions';
-import { FILE_VIEWERS_PROPERTY_NAME, DEFAULT_FILE_VIEWERS } from '~/store/file-viewers/file-viewers-selectors';
-import { FileViewerList } from '~/models/file-viewers-config';
+import { ServiceRepository } from 'services/services';
+import { propertiesActions } from 'store/properties/properties-actions';
+import { FILE_VIEWERS_PROPERTY_NAME, DEFAULT_FILE_VIEWERS } from 'store/file-viewers/file-viewers-selectors';
+import { FileViewerList } from 'models/file-viewers-config';
export const loadFileViewersConfig = async (dispatch: Dispatch, _: {}, { fileViewersConfig }: ServiceRepository) => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { PropertiesState, getProperty } from '~/store/properties/properties';
-import { FileViewerList } from '~/models/file-viewers-config';
+import { PropertiesState, getProperty } from 'store/properties/properties';
+import { FileViewerList } from 'models/file-viewers-config';
export const FILE_VIEWERS_PROPERTY_NAME = 'fileViewers';
//
// SPDX-License-Identifier: AGPL-3.0
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
import { Dispatch } from 'redux';
-import { propertiesActions } from '~/store/properties/properties-actions';
-import { getProperty } from '~/store/properties/properties';
-import { Participant } from '~/views-components/sharing-dialog/participant-select';
-import { dialogActions } from '~/store/dialog/dialog-actions';
+import { propertiesActions } from 'store/properties/properties-actions';
+import { getProperty } from 'store/properties/properties';
+import { Participant } from 'views-components/sharing-dialog/participant-select';
+import { dialogActions } from 'store/dialog/dialog-actions';
import { reset, startSubmit } from 'redux-form';
-import { addGroupMember, deleteGroupMember } from '~/store/groups-panel/groups-panel-actions';
-import { getResource } from '~/store/resources/resources';
-import { GroupResource } from '~/models/group';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { PermissionResource } from '~/models/permission';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { UserResource, getUserDisplayName } from '~/models/user';
+import { addGroupMember, deleteGroupMember } from 'store/groups-panel/groups-panel-actions';
+import { getResource } from 'store/resources/resources';
+import { GroupResource } from 'models/group';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { PermissionResource } from 'models/permission';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { UserResource, getUserDisplayName } from 'models/user';
export const GROUP_DETAILS_PANEL_ID = 'groupDetailsPanel';
export const ADD_GROUP_MEMBERS_DIALOG = 'addGrupMembers';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch, MiddlewareAPI } from "redux";
-import { DataExplorerMiddlewareService, listResultsToDataExplorerItemsMeta } from "~/store/data-explorer/data-explorer-middleware-service";
-import { RootState } from "~/store/store";
-import { ServiceRepository } from "~/services/services";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getDataExplorer } from "~/store/data-explorer/data-explorer-reducer";
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { updateResources } from '~/store/resources/resources-actions';
-import { getCurrentGroupDetailsPanelUuid, GroupDetailsPanelActions } from '~/store/group-details-panel/group-details-panel-actions';
-import { LinkClass } from '~/models/link';
+import { DataExplorerMiddlewareService, listResultsToDataExplorerItemsMeta } from "store/data-explorer/data-explorer-middleware-service";
+import { RootState } from "store/store";
+import { ServiceRepository } from "services/services";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getDataExplorer } from "store/data-explorer/data-explorer-reducer";
+import { FilterBuilder } from 'services/api/filter-builder';
+import { updateResources } from 'store/resources/resources-actions';
+import { getCurrentGroupDetailsPanelUuid, GroupDetailsPanelActions } from 'store/group-details-panel/group-details-panel-actions';
+import { LinkClass } from 'models/link';
export class GroupDetailsPanelMiddlewareService extends DataExplorerMiddlewareService {
import { Dispatch } from 'redux';
import { reset, startSubmit, stopSubmit, FormErrors } from 'redux-form';
-import { bindDataExplorerActions } from "~/store/data-explorer/data-explorer-action";
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { Participant } from '~/views-components/sharing-dialog/participant-select';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { getResource } from '~/store/resources/resources';
-import { GroupResource } from '~/models/group';
-import { getCommonResourceServiceError, CommonResourceServiceError } from '~/services/common-service/common-resource-service';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { PermissionLevel } from '~/models/permission';
-import { PermissionService } from '~/services/permission-service/permission-service';
-import { FilterBuilder } from '~/services/api/filter-builder';
+import { bindDataExplorerActions } from "store/data-explorer/data-explorer-action";
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { Participant } from 'views-components/sharing-dialog/participant-select';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { getResource } from 'store/resources/resources';
+import { GroupResource } from 'models/group';
+import { getCommonResourceServiceError, CommonResourceServiceError } from 'services/common-service/common-resource-service';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { PermissionLevel } from 'models/permission';
+import { PermissionService } from 'services/permission-service/permission-service';
+import { FilterBuilder } from 'services/api/filter-builder';
export const GROUPS_PANEL_ID = "groupsPanel";
export const CREATE_GROUP_DIALOG = "createGroupDialog";
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch, MiddlewareAPI } from "redux";
-import { DataExplorerMiddlewareService, listResultsToDataExplorerItemsMeta, dataExplorerToListParams } from "~/store/data-explorer/data-explorer-middleware-service";
-import { RootState } from "~/store/store";
-import { ServiceRepository } from "~/services/services";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getDataExplorer, getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { GroupsPanelActions } from '~/store/groups-panel/groups-panel-actions';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { updateResources } from '~/store/resources/resources-actions';
-import { OrderBuilder, OrderDirection } from '~/services/api/order-builder';
-import { GroupResource, GroupClass } from '~/models/group';
-import { SortDirection } from '~/components/data-table/data-column';
-import { GroupsPanelColumnNames } from '~/views/groups-panel/groups-panel';
+import { DataExplorerMiddlewareService, listResultsToDataExplorerItemsMeta, dataExplorerToListParams } from "store/data-explorer/data-explorer-middleware-service";
+import { RootState } from "store/store";
+import { ServiceRepository } from "services/services";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getDataExplorer, getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { GroupsPanelActions } from 'store/groups-panel/groups-panel-actions';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { updateResources } from 'store/resources/resources-actions';
+import { OrderBuilder, OrderDirection } from 'services/api/order-builder';
+import { GroupResource, GroupClass } from 'models/group';
+import { SortDirection } from 'components/data-table/data-column';
+import { GroupsPanelColumnNames } from 'views/groups-panel/groups-panel';
export class GroupsPanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { unionize, ofType, UnionOf } from "~/common/unionize";
-import { RootState } from '~/store/store';
-import { setBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
-import { ServiceRepository } from "~/services/services";
-import { KeepServiceResource } from '~/models/keep-services';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
-import { navigateToRootProject } from '~/store/navigation/navigation-action';
+import { unionize, ofType, UnionOf } from "common/unionize";
+import { RootState } from 'store/store';
+import { setBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions';
+import { ServiceRepository } from "services/services";
+import { KeepServiceResource } from 'models/keep-services';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
+import { navigateToRootProject } from 'store/navigation/navigation-action';
export const keepServicesActions = unionize({
SET_KEEP_SERVICES: ofType<KeepServiceResource[]>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { keepServicesActions, KeepServicesActions } from '~/store/keep-services/keep-services-actions';
-import { KeepServiceResource } from '~/models/keep-services';
+import { keepServicesActions, KeepServicesActions } from 'store/keep-services/keep-services-actions';
+import { KeepServiceResource } from 'models/keep-services';
export type KeepSericesState = KeepServiceResource[];
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository, createServices, setAuthorizationHeader } from "~/services/services";
-import { setBreadcrumbs } from "~/store/breadcrumbs/breadcrumbs-actions";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
-import { LinkAccountType, AccountToLink, LinkAccountStatus } from "~/models/link-account";
-import { authActions, getConfig } from "~/store/auth/auth-action";
-import { unionize, ofType, UnionOf } from '~/common/unionize';
-import { UserResource } from "~/models/user";
-import { GroupResource } from "~/models/group";
+import { RootState } from "store/store";
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository, createServices, setAuthorizationHeader } from "services/services";
+import { setBreadcrumbs } from "store/breadcrumbs/breadcrumbs-actions";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
+import { LinkAccountType, AccountToLink, LinkAccountStatus } from "models/link-account";
+import { authActions, getConfig } from "store/auth/auth-action";
+import { unionize, ofType, UnionOf } from 'common/unionize';
+import { UserResource } from "models/user";
+import { GroupResource } from "models/group";
import { LinkAccountPanelError, OriginatingUser } from "./link-account-panel-reducer";
-import { login, logout } from "~/store/auth/auth-action";
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
-import { WORKBENCH_LOADING_SCREEN } from '~/store/workbench/workbench-actions';
+import { login, logout } from "store/auth/auth-action";
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
+import { WORKBENCH_LOADING_SCREEN } from 'store/workbench/workbench-actions';
export const linkAccountPanelActions = unionize({
LINK_INIT: ofType<{
//
// SPDX-License-Identifier: AGPL-3.0
-import { linkAccountPanelReducer, LinkAccountPanelError, LinkAccountPanelStatus, OriginatingUser } from "~/store/link-account-panel/link-account-panel-reducer";
-import { linkAccountPanelActions } from "~/store/link-account-panel/link-account-panel-actions";
+import { linkAccountPanelReducer, LinkAccountPanelError, LinkAccountPanelStatus, OriginatingUser } from "store/link-account-panel/link-account-panel-reducer";
+import { linkAccountPanelActions } from "store/link-account-panel/link-account-panel-actions";
describe('link-account-panel-reducer', () => {
const initialState = undefined;
//
// SPDX-License-Identifier: AGPL-3.0
-import { linkAccountPanelActions, LinkAccountPanelAction } from "~/store/link-account-panel/link-account-panel-actions";
-import { UserResource } from "~/models/user";
+import { linkAccountPanelActions, LinkAccountPanelAction } from "store/link-account-panel/link-account-panel-actions";
+import { UserResource } from "models/user";
export enum LinkAccountPanelStatus {
NONE,
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { setBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { LinkResource } from '~/models/link';
-import { getResource } from '~/store/resources/resources';
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { setBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { LinkResource } from 'models/link';
+import { getResource } from 'store/resources/resources';
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
export const LINK_PANEL_ID = "linkPanelId";
export const linkPanelActions = bindDataExplorerActions(LINK_PANEL_ID);
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateResources } from '~/store/resources/resources-actions';
-import { SortDirection } from '~/components/data-table/data-column';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { ListResults } from '~/services/common-service/common-service';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { LinkResource } from '~/models/link';
-import { linkPanelActions } from '~/store/link-panel/link-panel-actions';
-import { LinkPanelColumnNames } from '~/views/link-panel/link-panel-root';
+import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateResources } from 'store/resources/resources-actions';
+import { SortDirection } from 'components/data-table/data-column';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { ListResults } from 'services/common-service/common-service';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { LinkResource } from 'models/link';
+import { linkPanelActions } from 'store/link-panel/link-panel-actions';
+import { LinkPanelColumnNames } from 'views/link-panel/link-panel-root';
export class LinkMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
import { initialize } from "redux-form";
-import { ServiceRepository } from "~/services/services";
-import { setBreadcrumbs } from "~/store/breadcrumbs/breadcrumbs-actions";
-import { authActions } from "~/store/auth/auth-action";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
+import { ServiceRepository } from "services/services";
+import { setBreadcrumbs } from "store/breadcrumbs/breadcrumbs-actions";
+import { authActions } from "store/auth/auth-action";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
export const MY_ACCOUNT_FORM = 'myAccountForm';
import { Dispatch, compose, AnyAction } from 'redux';
import { push } from "react-router-redux";
-import { ResourceKind, extractUuidKind } from '~/models/resource';
+import { ResourceKind, extractUuidKind } from 'models/resource';
import { SidePanelTreeCategory } from '../side-panel-tree/side-panel-tree-actions';
-import { Routes, getProcessLogUrl, getGroupUrl, getNavUrl } from '~/routes/routes';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { GROUPS_PANEL_LABEL } from '~/store/breadcrumbs/breadcrumbs-actions';
-import { pluginConfig } from '~/plugins';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
+import { Routes, getProcessLogUrl, getGroupUrl, getNavUrl } from 'routes/routes';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { GROUPS_PANEL_LABEL } from 'store/breadcrumbs/breadcrumbs-actions';
+import { pluginConfig } from 'plugins';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
const navigationNotAvailable = (id: string) =>
snackbarActions.OPEN_SNACKBAR({
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { dialogActions } from '~/store/dialog/dialog-actions';
+import { dialogActions } from 'store/dialog/dialog-actions';
export const NOT_FOUND_DIALOG_NAME = 'notFoundDialog';
// SPDX-License-Identifier: AGPL-3.0
import * as copy from 'copy-to-clipboard';
-import { ResourceKind } from '~/models/resource';
-import { getClipboardUrl } from '~/views-components/context-menu/actions/helpers';
+import { ResourceKind } from 'models/resource';
+import { getClipboardUrl } from 'views-components/context-menu/actions/helpers';
const getUrl = (resource: any) => {
let url = null;
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from '~/common/unionize';
+import { unionize, ofType, UnionOf } from 'common/unionize';
export const ownerNameActions = unionize({
SET_OWNER_NAME: ofType<OwnerNameState>()
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
import { ProcessLogs, getProcessLogsPanelCurrentUuid } from './process-logs-panel';
-import { LogEventType } from '~/models/log';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
+import { LogEventType } from 'models/log';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
import { Dispatch } from 'redux';
import { groupBy } from 'lodash';
-import { loadProcess } from '~/store/processes/processes-actions';
-import { LogResource } from '~/models/log';
-import { LogService } from '~/services/log-service/log-service';
-import { ResourceEventMessage } from '~/websocket/resource-event-message';
-import { getProcess } from '~/store/processes/process';
-import { FilterBuilder } from "~/services/api/filter-builder";
-import { OrderBuilder } from "~/services/api/order-builder";
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
+import { loadProcess } from 'store/processes/processes-actions';
+import { LogResource } from 'models/log';
+import { LogService } from 'services/log-service/log-service';
+import { ResourceEventMessage } from 'websocket/resource-event-message';
+import { getProcess } from 'store/processes/process';
+import { FilterBuilder } from "services/api/filter-builder";
+import { OrderBuilder } from "services/api/order-builder";
+import { navigateTo } from 'store/navigation/navigation-action';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
export const processLogsPanelActions = unionize({
RESET_PROCESS_LOGS_PANEL: ofType<{}>(),
import { RootState } from '../store';
-import { matchProcessLogRoute } from '~/routes/routes';
+import { matchProcessLogRoute } from 'routes/routes';
// Copyright (C) The Arvados Authors. All rights reserved.
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
-import { loadProcess } from '~/store/processes/processes-actions';
+import { unionize, ofType, UnionOf } from "common/unionize";
+import { loadProcess } from 'store/processes/processes-actions';
import { Dispatch } from 'redux';
-import { ProcessStatus } from '~/store/processes/process';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from "~/services/services";
-import { navigateTo, navigateToWorkflows } from '~/store/navigation/navigation-action';
-import { snackbarActions } from '~/store/snackbar/snackbar-actions';
+import { ProcessStatus } from 'store/processes/process';
+import { RootState } from 'store/store';
+import { ServiceRepository } from "services/services";
+import { navigateTo, navigateToWorkflows } from 'store/navigation/navigation-action';
+import { snackbarActions } from 'store/snackbar/snackbar-actions';
import { SnackbarKind } from '../snackbar/snackbar-actions';
-import { showWorkflowDetails } from '~/store/workflow-panel/workflow-panel-actions';
+import { showWorkflowDetails } from 'store/workflow-panel/workflow-panel-actions';
import { loadSubprocessPanel } from "../subprocess-panel/subprocess-panel-actions";
export const processPanelActions = unionize({
//
// SPDX-License-Identifier: AGPL-3.0
-import { ProcessPanel } from '~/store/process-panel/process-panel';
-import { ProcessPanelAction, processPanelActions } from '~/store/process-panel/process-panel-actions';
+import { ProcessPanel } from 'store/process-panel/process-panel';
+import { ProcessPanelAction, processPanelActions } from 'store/process-panel/process-panel-actions';
const initialState: ProcessPanel = {
containerRequestUuid: "",
//
// SPDX-License-Identifier: AGPL-3.0
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { RootState } from '~/store/store';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
-import { getProcess } from '~/store/processes/process';
+import { getProcess } from 'store/processes/process';
import { quote } from 'shell-quote';
export const PROCESS_COMMAND_DIALOG_NAME = 'processCommandDialog';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
import { initialize, startSubmit } from 'redux-form';
-import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { CopyFormDialogData } from '~/store/copy-dialog/copy-dialog';
-import { getProcess } from '~/store/processes/process';
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
+import { resetPickerProjectTree } from 'store/project-tree-picker/project-tree-picker-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { CopyFormDialogData } from 'store/copy-dialog/copy-dialog';
+import { getProcess } from 'store/processes/process';
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
export const PROCESS_COPY_FORM_NAME = 'processCopyFormName';
//
// SPDX-License-Identifier: AGPL-3.0
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { RootState } from '~/store/store';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
-import { getProcess, Process } from '~/store/processes/process';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getWorkflowInputs } from '~/models/workflow';
-import { JSONMount } from '~/models/mount-types';
-import { MOUNT_PATH_CWL_WORKFLOW } from '~/models/process';
+import { getProcess, Process } from 'store/processes/process';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getWorkflowInputs } from 'models/workflow';
+import { JSONMount } from 'models/mount-types';
+import { MOUNT_PATH_CWL_WORKFLOW } from 'models/process';
export const PROCESS_INPUT_DIALOG_NAME = 'processInputDialog';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
import { startSubmit, stopSubmit, initialize, FormErrors } from 'redux-form';
-import { ServiceRepository } from '~/services/services';
-import { RootState } from '~/store/store';
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions';
-import { projectPanelActions } from '~/store/project-panel/project-panel-action';
-import { getProcess } from '~/store/processes/process';
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
+import { ServiceRepository } from 'services/services';
+import { RootState } from 'store/store';
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { resetPickerProjectTree } from 'store/project-tree-picker/project-tree-picker-actions';
+import { projectPanelActions } from 'store/project-panel/project-panel-action';
+import { getProcess } from 'store/processes/process';
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
export const PROCESS_MOVE_FORM_NAME = 'processMoveFormName';
import { Dispatch } from "redux";
import { FormErrors, initialize, startSubmit, stopSubmit } from 'redux-form';
-import { RootState } from "~/store/store";
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
-import { ServiceRepository } from "~/services/services";
-import { getProcess } from '~/store/processes/process';
-import { projectPanelActions } from '~/store/project-panel/project-panel-action';
-import {snackbarActions, SnackbarKind} from '~/store/snackbar/snackbar-actions';
+import { RootState } from "store/store";
+import { dialogActions } from "store/dialog/dialog-actions";
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
+import { ServiceRepository } from "services/services";
+import { getProcess } from 'store/processes/process';
+import { projectPanelActions } from 'store/project-panel/project-panel-action';
+import {snackbarActions, SnackbarKind} from 'store/snackbar/snackbar-actions';
export interface ProcessUpdateFormDialogData {
uuid: string;
import { ContainerRequestResource, ContainerRequestState } from '../../models/container-request';
import { ContainerResource, ContainerState } from '../../models/container';
-import { ResourcesState, getResource } from '~/store/resources/resources';
+import { ResourcesState, getResource } from 'store/resources/resources';
import { filterResources } from '../resources/resources';
-import { ResourceKind, Resource, extractUuidKind } from '~/models/resource';
-import { getTimeDiff } from '~/common/formatters';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ResourceKind, Resource, extractUuidKind } from 'models/resource';
+import { getTimeDiff } from 'common/formatters';
+import { ArvadosTheme } from 'common/custom-theme';
export interface Process {
containerRequest: ContainerRequestResource;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { updateResources } from '~/store/resources/resources-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { updateResources } from 'store/resources/resources-actions';
import { Process } from './process';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { projectPanelActions } from '~/store/project-panel/project-panel-action';
-import { navigateToRunProcess } from '~/store/navigation/navigation-action';
-import { goToStep, runProcessPanelActions } from '~/store/run-process-panel/run-process-panel-actions';
-import { getResource } from '~/store/resources/resources';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { projectPanelActions } from 'store/project-panel/project-panel-action';
+import { navigateToRunProcess } from 'store/navigation/navigation-action';
+import { goToStep, runProcessPanelActions } from 'store/run-process-panel/run-process-panel-actions';
+import { getResource } from 'store/resources/resources';
import { initialize } from "redux-form";
-import { RUN_PROCESS_BASIC_FORM, RunProcessBasicFormData } from "~/views/run-process-panel/run-process-basic-form";
-import { RunProcessAdvancedFormData, RUN_PROCESS_ADVANCED_FORM } from "~/views/run-process-panel/run-process-advanced-form";
-import { MOUNT_PATH_CWL_WORKFLOW, MOUNT_PATH_CWL_INPUT } from '~/models/process';
-import { getWorkflow, getWorkflowInputs } from "~/models/workflow";
+import { RUN_PROCESS_BASIC_FORM, RunProcessBasicFormData } from "views/run-process-panel/run-process-basic-form";
+import { RunProcessAdvancedFormData, RUN_PROCESS_ADVANCED_FORM } from "views/run-process-panel/run-process-advanced-form";
+import { MOUNT_PATH_CWL_WORKFLOW, MOUNT_PATH_CWL_INPUT } from 'models/process';
+import { getWorkflow, getWorkflowInputs } from "models/workflow";
export const loadProcess = (containerRequestUuid: string) =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<Process> => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
export const progressIndicatorActions = unionize({
START_WORKING: ofType<string>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { ProgressIndicatorAction, progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
+import { ProgressIndicatorAction, progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
export type ProgressIndicatorState = { id: string, working: boolean }[];
import * as React from 'react';
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
export type WithProgressStateProps = {
working: boolean;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { bindDataExplorerActions } from "~/store/data-explorer/data-explorer-action";
-import { propertiesActions } from "~/store/properties/properties-actions";
-import { RootState } from '~/store/store';
-import { getProperty } from "~/store/properties/properties";
+import { bindDataExplorerActions } from "store/data-explorer/data-explorer-action";
+import { propertiesActions } from "store/properties/properties-actions";
+import { RootState } from 'store/store';
+import { getProperty } from "store/properties/properties";
export const PROJECT_PANEL_ID = "projectPanel";
export const PROJECT_PANEL_CURRENT_UUID = "projectPanelCurrentUuid";
dataExplorerToListParams,
getDataExplorerColumnFilters,
listResultsToDataExplorerItemsMeta
-} from '~/store/data-explorer/data-explorer-middleware-service';
-import { ProjectPanelColumnNames } from "~/views/project-panel/project-panel";
-import { RootState } from "~/store/store";
-import { DataColumns } from "~/components/data-table/data-table";
-import { ServiceRepository } from "~/services/services";
-import { SortDirection } from "~/components/data-table/data-column";
-import { OrderBuilder, OrderDirection } from "~/services/api/order-builder";
-import { FilterBuilder, joinFilters } from "~/services/api/filter-builder";
-import { GroupContentsResource, GroupContentsResourcePrefix } from "~/services/groups-service/groups-service";
-import { updateFavorites } from "~/store/favorites/favorites-actions";
-import { IS_PROJECT_PANEL_TRASHED, projectPanelActions, getProjectPanelCurrentUuid } from '~/store/project-panel/project-panel-action';
+} from 'store/data-explorer/data-explorer-middleware-service';
+import { ProjectPanelColumnNames } from "views/project-panel/project-panel";
+import { RootState } from "store/store";
+import { DataColumns } from "components/data-table/data-table";
+import { ServiceRepository } from "services/services";
+import { SortDirection } from "components/data-table/data-column";
+import { OrderBuilder, OrderDirection } from "services/api/order-builder";
+import { FilterBuilder, joinFilters } from "services/api/filter-builder";
+import { GroupContentsResource, GroupContentsResourcePrefix } from "services/groups-service/groups-service";
+import { updateFavorites } from "store/favorites/favorites-actions";
+import { IS_PROJECT_PANEL_TRASHED, projectPanelActions, getProjectPanelCurrentUuid } from 'store/project-panel/project-panel-action';
import { Dispatch, MiddlewareAPI } from "redux";
-import { ProjectResource } from "~/models/project";
-import { updateResources } from "~/store/resources/resources-actions";
-import { getProperty } from "~/store/properties/properties";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { ListResults } from '~/services/common-service/common-service';
-import { loadContainers } from '~/store/processes/processes-actions';
-import { ResourceKind } from '~/models/resource';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { serializeResourceTypeFilters, ProcessStatusFilter } from '~/store/resource-type-filters/resource-type-filters';
-import { updatePublicFavorites } from '~/store/public-favorites/public-favorites-actions';
+import { ProjectResource } from "models/project";
+import { updateResources } from "store/resources/resources-actions";
+import { getProperty } from "store/properties/properties";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { ListResults } from 'services/common-service/common-service';
+import { loadContainers } from 'store/processes/processes-actions';
+import { ResourceKind } from 'models/resource';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { serializeResourceTypeFilters, ProcessStatusFilter } from 'store/resource-type-filters/resource-type-filters';
+import { updatePublicFavorites } from 'store/public-favorites/public-favorites-actions';
export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository } from "~/services/services";
-import { mockProjectResource } from "~/models/test-utils";
-import { treePickerActions, receiveTreePickerProjectsData } from "~/store/tree-picker/tree-picker-actions";
-import { TreePickerId } from '~/models/tree';
+import { RootState } from "store/store";
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository } from "services/services";
+import { mockProjectResource } from "models/test-utils";
+import { treePickerActions, receiveTreePickerProjectsData } from "store/tree-picker/tree-picker-actions";
+import { TreePickerId } from 'models/tree';
export const resetPickerProjectTree = () => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
dispatch<any>(treePickerActions.RESET_TREE_PICKER({ pickerId: TreePickerId.PROJECTS }));
import { Dispatch } from "redux";
import { reset, startSubmit, stopSubmit, initialize, FormErrors, formValueSelector, change } from 'redux-form';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { getCommonResourceServiceError, CommonResourceServiceError } from '~/services/common-service/common-resource-service';
-import { ProjectResource } from '~/models/project';
-import { ServiceRepository } from '~/services/services';
-import { matchProjectRoute, matchRunProcessRoute } from '~/routes/routes';
-import { ResourcePropertiesFormData } from '~/views-components/resource-properties-form/resource-properties-form';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { dialogActions } from "store/dialog/dialog-actions";
+import { getCommonResourceServiceError, CommonResourceServiceError } from 'services/common-service/common-resource-service';
+import { ProjectResource } from 'models/project';
+import { ServiceRepository } from 'services/services';
+import { matchProjectRoute, matchRunProcessRoute } from 'routes/routes';
+import { ResourcePropertiesFormData } from 'views-components/resource-properties-form/resource-properties-form';
import { RouterState } from "react-router-redux";
-import { addProperty, deleteProperty } from "~/lib/resource-properties";
+import { addProperty, deleteProperty } from "lib/resource-properties";
export interface ProjectCreateFormDialogData {
ownerUuid: string;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
import { startSubmit, stopSubmit, initialize, FormErrors } from 'redux-form';
-import { ServiceRepository } from '~/services/services';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { resetPickerProjectTree } from '~/store/project-tree-picker/project-tree-picker-actions';
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
-import { projectPanelActions } from '~/store/project-panel/project-panel-action';
+import { ServiceRepository } from 'services/services';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { resetPickerProjectTree } from 'store/project-tree-picker/project-tree-picker-actions';
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
+import { projectPanelActions } from 'store/project-panel/project-panel-action';
import { loadSidePanelTreeProjects } from '../side-panel-tree/side-panel-tree-actions';
export const PROJECT_MOVE_FORM_NAME = 'projectMoveFormName';
import { Dispatch } from "redux";
import { FormErrors, initialize, startSubmit, stopSubmit } from 'redux-form';
-import { RootState } from "~/store/store";
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
-import { ServiceRepository } from "~/services/services";
-import { projectPanelActions } from '~/store/project-panel/project-panel-action';
+import { RootState } from "store/store";
+import { dialogActions } from "store/dialog/dialog-actions";
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
+import { ServiceRepository } from "services/services";
+import { projectPanelActions } from 'store/project-panel/project-panel-action';
export interface ProjectUpdateFormDialogData {
uuid: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from '~/common/unionize';
+import { unionize, ofType, UnionOf } from 'common/unionize';
export const propertiesActions = unionize({
SET_PROPERTY: ofType<{ key: string, value: any }>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { bindDataExplorerActions } from "~/store/data-explorer/data-explorer-action";
+import { bindDataExplorerActions } from "store/data-explorer/data-explorer-action";
export const PUBLIC_FAVORITE_PANEL_ID = "publicFavoritePanel";
export const publicFavoritePanelActions = bindDataExplorerActions(PUBLIC_FAVORITE_PANEL_ID);
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, getDataExplorerColumnFilters } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { resourcesActions } from '~/store/resources/resources-actions';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { SortDirection } from '~/components/data-table/data-column';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { FavoritePanelColumnNames } from '~/views/favorite-panel/favorite-panel';
-import { publicFavoritePanelActions } from '~/store/public-favorites-panel/public-favorites-action';
-import { DataColumns } from '~/components/data-table/data-table';
+import { DataExplorerMiddlewareService, getDataExplorerColumnFilters } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { resourcesActions } from 'store/resources/resources-actions';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { SortDirection } from 'components/data-table/data-column';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { FavoritePanelColumnNames } from 'views/favorite-panel/favorite-panel';
+import { publicFavoritePanelActions } from 'store/public-favorites-panel/public-favorites-action';
+import { DataColumns } from 'components/data-table/data-table';
import { serializeSimpleObjectTypeFilters } from '../resource-type-filters/resource-type-filters';
-import { LinkResource, LinkClass } from '~/models/link';
-import { GroupContentsResource, GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions';
-import { updatePublicFavorites } from '~/store/public-favorites/public-favorites-actions';
+import { LinkResource, LinkClass } from 'models/link';
+import { GroupContentsResource, GroupContentsResourcePrefix } from 'services/groups-service/groups-service';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
+import { updatePublicFavorites } from 'store/public-favorites/public-favorites-actions';
export class PublicFavoritesMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
import { Dispatch } from "redux";
import { RootState } from "../store";
import { checkPublicFavorite } from "./public-favorites-reducer";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
-import { ServiceRepository } from "~/services/services";
-import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
+import { ServiceRepository } from "services/services";
+import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
export const publicFavoritesActions = unionize({
TOGGLE_PUBLIC_FAVORITE: ofType<{ resourceUuid: string }>(),
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository } from "~/services/services";
-import { navigateToRepositories } from "~/store/navigation/navigation-action";
-import { unionize, ofType, UnionOf } from "~/common/unionize";
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { RepositoryResource } from "~/models/repositories";
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository } from "services/services";
+import { navigateToRepositories } from "store/navigation/navigation-action";
+import { unionize, ofType, UnionOf } from "common/unionize";
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { RepositoryResource } from "models/repositories";
import { startSubmit, reset, stopSubmit, FormErrors } from "redux-form";
-import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
+import { getCommonResourceServiceError, CommonResourceServiceError } from "services/common-service/common-resource-service";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
export const repositoriesActions = unionize({
SET_REPOSITORIES: ofType<any>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { repositoriesActions, RepositoriesActions } from '~/store/repositories/repositories-actions';
-import { RepositoryResource } from '~/models/repositories';
+import { repositoriesActions, RepositoriesActions } from 'store/repositories/repositories-actions';
+import { RepositoryResource } from 'models/repositories';
interface Repositories {
items: RepositoryResource[];
// SPDX-License-Identifier: AGPL-3.0
import { getInitialResourceTypeFilters, serializeResourceTypeFilters, ObjectTypeFilter, CollectionTypeFilter, ProcessTypeFilter, GroupTypeFilter } from './resource-type-filters';
-import { ResourceKind } from '~/models/resource';
-import { deselectNode } from '~/models/tree';
+import { ResourceKind } from 'models/resource';
+import { deselectNode } from 'models/tree';
import { pipe } from 'lodash/fp';
describe("serializeResourceTypeFilters", () => {
// SPDX-License-Identifier: AGPL-3.0
import { difference, pipe, values, includes, __ } from 'lodash/fp';
-import { createTree, setNode, TreeNodeStatus, TreeNode, Tree } from '~/models/tree';
-import { DataTableFilterItem, DataTableFilters } from '~/components/data-table-filters/data-table-filters-tree';
-import { ResourceKind } from '~/models/resource';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { getSelectedNodes } from '~/models/tree';
-import { CollectionType } from '~/models/collection';
-import { GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
-import { ContainerState } from '~/models/container';
+import { createTree, setNode, TreeNodeStatus, TreeNode, Tree } from 'models/tree';
+import { DataTableFilterItem, DataTableFilters } from 'components/data-table-filters/data-table-filters-tree';
+import { ResourceKind } from 'models/resource';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { getSelectedNodes } from 'models/tree';
+import { CollectionType } from 'models/collection';
+import { GroupContentsResourcePrefix } from 'services/groups-service/groups-service';
+import { ContainerState } from 'models/container';
export enum ProcessStatusFilter {
ALL = 'All',
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from '~/common/unionize';
-import { extractUuidKind, Resource } from '~/models/resource';
+import { unionize, ofType, UnionOf } from 'common/unionize';
+import { extractUuidKind, Resource } from 'models/resource';
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { getResourceService } from '~/services/services';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { getResourceService } from 'services/services';
export const resourcesActions = unionize({
SET_RESOURCES: ofType<Resource[]>(),
// SPDX-License-Identifier: AGPL-3.0
import { getResourceWithEditableStatus } from "./resources";
-import { ResourceKind } from "~/models/resource";
+import { ResourceKind } from "models/resource";
const groupFixtures = {
user_uuid: 'zzzzz-tpzed-0123456789ab789',
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource, EditableResource } from "~/models/resource";
-import { ResourceKind } from '~/models/resource';
-import { ProjectResource } from "~/models/project";
-import { GroupResource } from "~/models/group";
+import { Resource, EditableResource } from "models/resource";
+import { ResourceKind } from 'models/resource';
+import { ProjectResource } from "models/project";
+import { GroupResource } from "models/group";
export type ResourcesState = { [key: string]: Resource };
//
// SPDX-License-Identifier: AGPL-3.0
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { dialogActions } from "store/dialog/dialog-actions";
export const RICH_TEXT_EDITOR_DIALOG_NAME = 'richTextEditorDialogName';
export const openRichTextEditorDialog = (title: string, text: string) =>
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { unionize, ofType, UnionOf } from "~/common/unionize";
-import { ServiceRepository } from "~/services/services";
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { WorkflowResource, WorkflowRunnerResources, getWorkflow, getWorkflowInputs, parseWorkflowDefinition } from '~/models/workflow';
+import { unionize, ofType, UnionOf } from "common/unionize";
+import { ServiceRepository } from "services/services";
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { WorkflowResource, WorkflowRunnerResources, getWorkflow, getWorkflowInputs, parseWorkflowDefinition } from 'models/workflow';
import { getFormValues, initialize } from 'redux-form';
-import { RUN_PROCESS_BASIC_FORM, RunProcessBasicFormData } from '~/views/run-process-panel/run-process-basic-form';
-import { RUN_PROCESS_INPUTS_FORM } from '~/views/run-process-panel/run-process-inputs-form';
-import { WorkflowInputsData } from '~/models/workflow';
-import { createWorkflowMounts } from '~/models/process';
-import { ContainerRequestState } from '~/models/container-request';
+import { RUN_PROCESS_BASIC_FORM, RunProcessBasicFormData } from 'views/run-process-panel/run-process-basic-form';
+import { RUN_PROCESS_INPUTS_FORM } from 'views/run-process-panel/run-process-inputs-form';
+import { WorkflowInputsData } from 'models/workflow';
+import { createWorkflowMounts } from 'models/process';
+import { ContainerRequestState } from 'models/container-request';
import { navigateTo } from '../navigation/navigation-action';
import {
RunProcessAdvancedFormData, RUN_PROCESS_ADVANCED_FORM, VCPUS_FIELD,
KEEP_CACHE_RAM_FIELD, RAM_FIELD, RUNTIME_FIELD, OUTPUT_FIELD, RUNNER_IMAGE_FIELD
-} from '~/views/run-process-panel/run-process-advanced-form';
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { setBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
+} from 'views/run-process-panel/run-process-advanced-form';
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { setBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions';
export const runProcessPanelActions = unionize({
SET_PROCESS_PATHNAME: ofType<string>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { RunProcessPanelAction, runProcessPanelActions } from '~/store/run-process-panel/run-process-panel-actions';
-import { WorkflowResource, CommandInputParameter, getWorkflowInputs, parseWorkflowDefinition } from '~/models/workflow';
+import { RunProcessPanelAction, runProcessPanelActions } from 'store/run-process-panel/run-process-panel-actions';
+import { WorkflowResource, CommandInputParameter, getWorkflowInputs, parseWorkflowDefinition } from 'models/workflow';
interface RunProcessPanel {
processPathname: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { getAdvancedDataFromQuery, getQueryFromAdvancedData } from "~/store/search-bar/search-bar-actions";
-import { ResourceKind } from "~/models/resource";
+import { getAdvancedDataFromQuery, getQueryFromAdvancedData } from "store/search-bar/search-bar-actions";
+import { ResourceKind } from "models/resource";
describe('search-bar-actions', () => {
describe('getAdvancedDataFromQuery', () => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { ofType, unionize, UnionOf } from "~/common/unionize";
-import { GroupContentsResource, GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
+import { ofType, unionize, UnionOf } from "common/unionize";
+import { GroupContentsResource, GroupContentsResourcePrefix } from 'services/groups-service/groups-service';
import { Dispatch } from 'redux';
import { change, initialize, untouch } from 'redux-form';
-import { RootState } from '~/store/store';
-import { initUserProject, treePickerActions } from '~/store/tree-picker/tree-picker-actions';
-import { ServiceRepository } from '~/services/services';
-import { FilterBuilder } from "~/services/api/filter-builder";
-import { ResourceKind, RESOURCE_UUID_REGEX, COLLECTION_PDH_REGEX } from '~/models/resource';
-import { SearchView } from '~/store/search-bar/search-bar-reducer';
-import { navigateTo, navigateToSearchResults } from '~/store/navigation/navigation-action';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { PropertyValue, SearchBarAdvancedFormData } from '~/models/search-bar';
+import { RootState } from 'store/store';
+import { initUserProject, treePickerActions } from 'store/tree-picker/tree-picker-actions';
+import { ServiceRepository } from 'services/services';
+import { FilterBuilder } from "services/api/filter-builder";
+import { ResourceKind, RESOURCE_UUID_REGEX, COLLECTION_PDH_REGEX } from 'models/resource';
+import { SearchView } from 'store/search-bar/search-bar-reducer';
+import { navigateTo, navigateToSearchResults } from 'store/navigation/navigation-action';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { PropertyValue, SearchBarAdvancedFormData } from 'models/search-bar';
import * as _ from "lodash";
-import { getModifiedKeysValues } from "~/common/objects";
-import { activateSearchBarProject } from "~/store/search-bar/search-bar-tree-actions";
-import { Session } from "~/models/session";
-import { searchResultsPanelActions } from "~/store/search-results-panel/search-results-panel-actions";
-import { ListResults } from "~/services/common-service/common-service";
+import { getModifiedKeysValues } from "common/objects";
+import { activateSearchBarProject } from "store/search-bar/search-bar-tree-actions";
+import { Session } from "models/session";
+import { searchResultsPanelActions } from "store/search-results-panel/search-results-panel-actions";
+import { ListResults } from "services/common-service/common-service";
import * as parser from './search-query/arv-parser';
import { Keywords } from './search-query/arv-parser';
-import { Vocabulary, getTagKeyLabel, getTagValueLabel } from "~/models/vocabulary";
+import { Vocabulary, getTagKeyLabel, getTagValueLabel } from "models/vocabulary";
export const searchBarActions = unionize({
SET_CURRENT_VIEW: ofType<string>(),
getQueryFromAdvancedData,
searchBarActions,
SearchBarActions
-} from '~/store/search-bar/search-bar-actions';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
-import { SearchBarAdvancedFormData } from '~/models/search-bar';
+} from 'store/search-bar/search-bar-actions';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
+import { SearchBarAdvancedFormData } from 'models/search-bar';
type SearchResult = GroupContentsResource;
export type SearchBarSelectedItem = {
//
// SPDX-License-Identifier: AGPL-3.0
-import { getTreePicker, TreePicker } from "~/store/tree-picker/tree-picker";
-import { getNode, getNodeAncestorsIds, initTreeNode, TreeNodeStatus } from "~/models/tree";
+import { getTreePicker, TreePicker } from "store/tree-picker/tree-picker";
+import { getNode, getNodeAncestorsIds, initTreeNode, TreeNodeStatus } from "models/tree";
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository } from "~/services/services";
-import { treePickerActions } from "~/store/tree-picker/tree-picker-actions";
-import { FilterBuilder } from "~/services/api/filter-builder";
-import { OrderBuilder } from "~/services/api/order-builder";
-import { ProjectResource } from "~/models/project";
-import { resourcesActions } from "~/store/resources/resources-actions";
-import { SEARCH_BAR_ADVANCED_FORM_PICKER_ID } from "~/store/search-bar/search-bar-actions";
+import { RootState } from "store/store";
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository } from "services/services";
+import { treePickerActions } from "store/tree-picker/tree-picker-actions";
+import { FilterBuilder } from "services/api/filter-builder";
+import { OrderBuilder } from "services/api/order-builder";
+import { ProjectResource } from "models/project";
+import { resourcesActions } from "store/resources/resources-actions";
+import { SEARCH_BAR_ADVANCED_FORM_PICKER_ID } from "store/search-bar/search-bar-actions";
const getSearchBarTreeNode = (id: string) => (treePicker: TreePicker) => {
const searchTree = getTreePicker(SEARCH_BAR_ADVANCED_FORM_PICKER_ID)(treePicker);
//
// SPDX-License-Identifier: AGPL-3.0
-import * as parser from '~/store/search-bar/search-query/parser';
+import * as parser from 'store/search-bar/search-query/parser';
interface Property {
key: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta, getDataExplorerColumnFilters } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateResources } from '~/store/resources/resources-actions';
-import { SortDirection } from '~/components/data-table/data-column';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { GroupContentsResource, GroupContentsResourcePrefix } from "~/services/groups-service/groups-service";
-import { ListResults } from '~/services/common-service/common-service';
-import { searchResultsPanelActions } from '~/store/search-results-panel/search-results-panel-actions';
+import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta, getDataExplorerColumnFilters } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateResources } from 'store/resources/resources-actions';
+import { SortDirection } from 'components/data-table/data-column';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { GroupContentsResource, GroupContentsResourcePrefix } from "services/groups-service/groups-service";
+import { ListResults } from 'services/common-service/common-service';
+import { searchResultsPanelActions } from 'store/search-results-panel/search-results-panel-actions';
import {
getSearchSessions,
queryToFilters,
getAdvancedDataFromQuery
-} from '~/store/search-bar/search-bar-actions';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { joinFilters } from '~/services/api/filter-builder';
-import { DataColumns } from '~/components/data-table/data-table';
-import { serializeResourceTypeFilters } from '~/store//resource-type-filters/resource-type-filters';
-import { ProjectPanelColumnNames } from '~/views/project-panel/project-panel';
-import { Resource } from '~/models/resource';
+} from 'store/search-bar/search-bar-actions';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { joinFilters } from 'services/api/filter-builder';
+import { DataColumns } from 'components/data-table/data-table';
+import { serializeResourceTypeFilters } from 'store//resource-type-filters/resource-type-filters';
+import { ProjectPanelColumnNames } from 'views/project-panel/project-panel';
+import { Resource } from 'models/resource';
export class SearchResultsMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { setBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
-import { searchBarActions } from '~/store/search-bar/search-bar-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { setBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions';
+import { searchBarActions } from 'store/search-bar/search-bar-actions';
export const SEARCH_RESULTS_PANEL_ID = "searchResultsPanel";
export const searchResultsPanelActions = bindDataExplorerActions(SEARCH_RESULTS_PANEL_ID);
// SPDX-License-Identifier: AGPL-3.0
import { DataExplorerMiddlewareService, listResultsToDataExplorerItemsMeta, dataExplorerToListParams } from '../data-explorer/data-explorer-middleware-service';
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { getDataExplorer, DataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateFavorites } from '~/store/favorites/favorites-actions';
-import { updateResources } from '~/store/resources/resources-actions';
-import { loadMissingProcessesInformation, getFilters } from '~/store/project-panel/project-panel-middleware-service';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
+import { RootState } from 'store/store';
+import { getDataExplorer, DataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateFavorites } from 'store/favorites/favorites-actions';
+import { updateResources } from 'store/resources/resources-actions';
+import { loadMissingProcessesInformation, getFilters } from 'store/project-panel/project-panel-middleware-service';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
import { sharedWithMePanelActions } from './shared-with-me-panel-actions';
-import { ListResults } from '~/services/common-service/common-service';
-import { GroupContentsResource, GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
-import { SortDirection } from '~/components/data-table/data-column';
-import { OrderBuilder, OrderDirection } from '~/services/api/order-builder';
-import { ProjectResource } from '~/models/project';
-import { ProjectPanelColumnNames } from '~/views/project-panel/project-panel';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { updatePublicFavorites } from '~/store/public-favorites/public-favorites-actions';
-import { FilterBuilder } from '~/services/api/filter-builder';
+import { ListResults } from 'services/common-service/common-service';
+import { GroupContentsResource, GroupContentsResourcePrefix } from 'services/groups-service/groups-service';
+import { SortDirection } from 'components/data-table/data-column';
+import { OrderBuilder, OrderDirection } from 'services/api/order-builder';
+import { ProjectResource } from 'models/project';
+import { ProjectPanelColumnNames } from 'views/project-panel/project-panel';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { updatePublicFavorites } from 'store/public-favorites/public-favorites-actions';
+import { FilterBuilder } from 'services/api/filter-builder';
export class SharedWithMeMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
import { bindDataExplorerActions } from "../data-explorer/data-explorer-action";
import { Dispatch } from 'redux';
-import { ServiceRepository } from "~/services/services";
-import { RootState } from '~/store/store';
+import { ServiceRepository } from "services/services";
+import { RootState } from 'store/store';
export const SHARED_WITH_ME_PANEL_ID = "sharedWithMePanel";
export const sharedWithMePanelActions = bindDataExplorerActions(SHARED_WITH_ME_PANEL_ID);
//
// SPDX-License-Identifier: AGPL-3.0
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { withDialog } from "~/store/dialog/with-dialog";
+import { dialogActions } from "store/dialog/dialog-actions";
+import { withDialog } from "store/dialog/with-dialog";
import { SHARING_DIALOG_NAME, SharingPublicAccessFormData, SHARING_PUBLIC_ACCESS_FORM_NAME, SHARING_INVITATION_FORM_NAME, SharingManagementFormData, SharingInvitationFormData, VisibilityLevel, getSharingMangementFormData, getSharingPublicAccessFormData } from './sharing-dialog-types';
import { Dispatch } from 'redux';
-import { ServiceRepository } from "~/services/services";
-import { FilterBuilder } from '~/services/api/filter-builder';
+import { ServiceRepository } from "services/services";
+import { FilterBuilder } from 'services/api/filter-builder';
import { initialize, getFormValues, reset } from 'redux-form';
-import { SHARING_MANAGEMENT_FORM_NAME } from '~/store/sharing-dialog/sharing-dialog-types';
-import { RootState } from '~/store/store';
-import { getDialog } from '~/store/dialog/dialog-reducer';
-import { PermissionLevel } from '~/models/permission';
-import { getPublicGroupUuid } from "~/store/workflow-panel/workflow-panel-actions";
-import { PermissionResource } from '~/models/permission';
+import { SHARING_MANAGEMENT_FORM_NAME } from 'store/sharing-dialog/sharing-dialog-types';
+import { RootState } from 'store/store';
+import { getDialog } from 'store/dialog/dialog-reducer';
+import { PermissionLevel } from 'models/permission';
+import { getPublicGroupUuid } from "store/workflow-panel/workflow-panel-actions";
+import { PermissionResource } from 'models/permission';
import { differenceWith } from "lodash";
-import { withProgress } from "~/store/progress-indicator/with-progress";
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions.ts';
+import { withProgress } from "store/progress-indicator/with-progress";
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions.ts';
import { snackbarActions, SnackbarKind } from "../snackbar/snackbar-actions";
-import { extractUuidKind, ResourceKind } from "~/models/resource";
+import { extractUuidKind, ResourceKind } from "models/resource";
export const openSharingDialog = (resourceUuid: string) =>
(dispatch: Dispatch) => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { PermissionLevel } from '~/models/permission';
+import { PermissionLevel } from 'models/permission';
import { getFormValues, isDirty } from 'redux-form';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
export const SHARING_DIALOG_NAME = 'SHARING_DIALOG_NAME';
export const SHARING_PUBLIC_ACCESS_FORM_NAME = 'SHARING_PUBLIC_ACCESS_FORM_NAME';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { treePickerActions } from "~/store/tree-picker/tree-picker-actions";
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository } from '~/services/services';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { resourcesActions } from '~/store/resources/resources-actions';
-import { getTreePicker, TreePicker } from '~/store/tree-picker/tree-picker';
-import { getNodeAncestors, getNodeAncestorsIds, getNode, TreeNode, initTreeNode, TreeNodeStatus } from '~/models/tree';
-import { ProjectResource } from '~/models/project';
-import { OrderBuilder } from '~/services/api/order-builder';
-import { ResourceKind } from '~/models/resource';
-import { GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
-import { GroupClass } from '~/models/group';
-import { CategoriesListReducer } from '~/common/plugintypes';
-import { pluginConfig } from '~/plugins';
+import { treePickerActions } from "store/tree-picker/tree-picker-actions";
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository } from 'services/services';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { resourcesActions } from 'store/resources/resources-actions';
+import { getTreePicker, TreePicker } from 'store/tree-picker/tree-picker';
+import { getNodeAncestors, getNodeAncestorsIds, getNode, TreeNode, initTreeNode, TreeNodeStatus } from 'models/tree';
+import { ProjectResource } from 'models/project';
+import { OrderBuilder } from 'services/api/order-builder';
+import { ResourceKind } from 'models/resource';
+import { GroupContentsResourcePrefix } from 'services/groups-service/groups-service';
+import { GroupClass } from 'models/group';
+import { CategoriesListReducer } from 'common/plugintypes';
+import { pluginConfig } from 'plugins';
export enum SidePanelTreeCategory {
PROJECTS = 'Projects',
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { navigateTo } from '~/store/navigation/navigation-action';
+import { navigateTo } from 'store/navigation/navigation-action';
export const navigateFromSidePanel = (id: string) =>
(dispatch: Dispatch) => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
+import { unionize, ofType, UnionOf } from "common/unionize";
export interface SnackbarMessage {
message: string;
import { AllProcessesPanelMiddlewareService } from "./all-processes-panel/all-processes-panel-middleware-service";
import { collectionPanelReducer } from './collection-panel/collection-panel-reducer';
import { dialogReducer } from './dialog/dialog-reducer';
-import { ServiceRepository } from "~/services/services";
+import { ServiceRepository } from "services/services";
import { treePickerReducer } from './tree-picker/tree-picker-reducer';
-import { resourcesReducer } from '~/store/resources/resources-reducer';
+import { resourcesReducer } from 'store/resources/resources-reducer';
import { propertiesReducer } from './properties/properties-reducer';
import { fileUploaderReducer } from './file-uploader/file-uploader-reducer';
-import { TrashPanelMiddlewareService } from "~/store/trash-panel/trash-panel-middleware-service";
-import { TRASH_PANEL_ID } from "~/store/trash-panel/trash-panel-action";
+import { TrashPanelMiddlewareService } from "store/trash-panel/trash-panel-middleware-service";
+import { TRASH_PANEL_ID } from "store/trash-panel/trash-panel-action";
import { processLogsPanelReducer } from './process-logs-panel/process-logs-panel-reducer';
-import { processPanelReducer } from '~/store/process-panel/process-panel-reducer';
-import { SHARED_WITH_ME_PANEL_ID } from '~/store/shared-with-me-panel/shared-with-me-panel-actions';
+import { processPanelReducer } from 'store/process-panel/process-panel-reducer';
+import { SHARED_WITH_ME_PANEL_ID } from 'store/shared-with-me-panel/shared-with-me-panel-actions';
import { SharedWithMeMiddlewareService } from './shared-with-me-panel/shared-with-me-middleware-service';
import { progressIndicatorReducer } from './progress-indicator/progress-indicator-reducer';
-import { runProcessPanelReducer } from '~/store/run-process-panel/run-process-panel-reducer';
+import { runProcessPanelReducer } from 'store/run-process-panel/run-process-panel-reducer';
import { WorkflowMiddlewareService } from './workflow-panel/workflow-middleware-service';
import { WORKFLOW_PANEL_ID } from './workflow-panel/workflow-panel-actions';
-import { appInfoReducer } from '~/store/app-info/app-info-reducer';
+import { appInfoReducer } from 'store/app-info/app-info-reducer';
import { searchBarReducer } from './search-bar/search-bar-reducer';
-import { SEARCH_RESULTS_PANEL_ID } from '~/store/search-results-panel/search-results-panel-actions';
+import { SEARCH_RESULTS_PANEL_ID } from 'store/search-results-panel/search-results-panel-actions';
import { SearchResultsMiddlewareService } from './search-results-panel/search-results-middleware-service';
-import { virtualMachinesReducer } from "~/store/virtual-machines/virtual-machines-reducer";
-import { repositoriesReducer } from '~/store/repositories/repositories-reducer';
-import { keepServicesReducer } from '~/store/keep-services/keep-services-reducer';
-import { UserMiddlewareService } from '~/store/users/user-panel-middleware-service';
-import { USERS_PANEL_ID } from '~/store/users/users-actions';
-import { GroupsPanelMiddlewareService } from '~/store/groups-panel/groups-panel-middleware-service';
-import { GROUPS_PANEL_ID } from '~/store/groups-panel/groups-panel-actions';
-import { GroupDetailsPanelMiddlewareService } from '~/store/group-details-panel/group-details-panel-middleware-service';
-import { GROUP_DETAILS_PANEL_ID } from '~/store/group-details-panel/group-details-panel-actions';
-import { LINK_PANEL_ID } from '~/store/link-panel/link-panel-actions';
-import { LinkMiddlewareService } from '~/store/link-panel/link-panel-middleware-service';
-import { COMPUTE_NODE_PANEL_ID } from '~/store/compute-nodes/compute-nodes-actions';
-import { ComputeNodeMiddlewareService } from '~/store/compute-nodes/compute-nodes-middleware-service';
-import { API_CLIENT_AUTHORIZATION_PANEL_ID } from '~/store/api-client-authorizations/api-client-authorizations-actions';
-import { ApiClientAuthorizationMiddlewareService } from '~/store/api-client-authorizations/api-client-authorizations-middleware-service';
-import { PublicFavoritesMiddlewareService } from '~/store/public-favorites-panel/public-favorites-middleware-service';
-import { PUBLIC_FAVORITE_PANEL_ID } from '~/store/public-favorites-panel/public-favorites-action';
-import { publicFavoritesReducer } from '~/store/public-favorites/public-favorites-reducer';
+import { virtualMachinesReducer } from "store/virtual-machines/virtual-machines-reducer";
+import { repositoriesReducer } from 'store/repositories/repositories-reducer';
+import { keepServicesReducer } from 'store/keep-services/keep-services-reducer';
+import { UserMiddlewareService } from 'store/users/user-panel-middleware-service';
+import { USERS_PANEL_ID } from 'store/users/users-actions';
+import { GroupsPanelMiddlewareService } from 'store/groups-panel/groups-panel-middleware-service';
+import { GROUPS_PANEL_ID } from 'store/groups-panel/groups-panel-actions';
+import { GroupDetailsPanelMiddlewareService } from 'store/group-details-panel/group-details-panel-middleware-service';
+import { GROUP_DETAILS_PANEL_ID } from 'store/group-details-panel/group-details-panel-actions';
+import { LINK_PANEL_ID } from 'store/link-panel/link-panel-actions';
+import { LinkMiddlewareService } from 'store/link-panel/link-panel-middleware-service';
+import { COMPUTE_NODE_PANEL_ID } from 'store/compute-nodes/compute-nodes-actions';
+import { ComputeNodeMiddlewareService } from 'store/compute-nodes/compute-nodes-middleware-service';
+import { API_CLIENT_AUTHORIZATION_PANEL_ID } from 'store/api-client-authorizations/api-client-authorizations-actions';
+import { ApiClientAuthorizationMiddlewareService } from 'store/api-client-authorizations/api-client-authorizations-middleware-service';
+import { PublicFavoritesMiddlewareService } from 'store/public-favorites-panel/public-favorites-middleware-service';
+import { PUBLIC_FAVORITE_PANEL_ID } from 'store/public-favorites-panel/public-favorites-action';
+import { publicFavoritesReducer } from 'store/public-favorites/public-favorites-reducer';
import { linkAccountPanelReducer } from './link-account-panel/link-account-panel-reducer';
-import { CollectionsWithSameContentAddressMiddlewareService } from '~/store/collections-content-address-panel/collections-content-address-middleware-service';
-import { COLLECTIONS_CONTENT_ADDRESS_PANEL_ID } from '~/store/collections-content-address-panel/collections-content-address-panel-actions';
-import { ownerNameReducer } from '~/store/owner-name/owner-name-reducer';
-import { SubprocessMiddlewareService } from '~/store/subprocess-panel/subprocess-panel-middleware-service';
-import { SUBPROCESS_PANEL_ID } from '~/store/subprocess-panel/subprocess-panel-actions';
+import { CollectionsWithSameContentAddressMiddlewareService } from 'store/collections-content-address-panel/collections-content-address-middleware-service';
+import { COLLECTIONS_CONTENT_ADDRESS_PANEL_ID } from 'store/collections-content-address-panel/collections-content-address-panel-actions';
+import { ownerNameReducer } from 'store/owner-name/owner-name-reducer';
+import { SubprocessMiddlewareService } from 'store/subprocess-panel/subprocess-panel-middleware-service';
+import { SUBPROCESS_PANEL_ID } from 'store/subprocess-panel/subprocess-panel-actions';
import { ALL_PROCESSES_PANEL_ID } from './all-processes-panel/all-processes-panel-action';
-import { Config } from '~/common/config';
-import { pluginConfig } from '~/plugins';
-import { MiddlewareListReducer } from '~/common/plugintypes';
+import { Config } from 'common/config';
+import { pluginConfig } from 'plugins';
+import { MiddlewareListReducer } from 'common/plugintypes';
const composeEnhancers =
(process.env.NODE_ENV === 'development' &&
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
export const SUBPROCESS_PANEL_ID = "subprocessPanel";
export const SUBPROCESS_ATTRIBUTES_DIALOG = 'subprocessAttributesDialog';
export const subprocessPanelActions = bindDataExplorerActions(SUBPROCESS_PANEL_ID);
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
import {
DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta, getDataExplorerColumnFilters
-} from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateResources } from '~/store/resources/resources-actions';
-import { SortDirection } from '~/components/data-table/data-column';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { ListResults } from '~/services/common-service/common-service';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { ProcessResource } from '~/models/process';
-import { SubprocessPanelColumnNames } from '~/views/subprocess-panel/subprocess-panel-root';
-import { FilterBuilder, joinFilters } from '~/services/api/filter-builder';
+} from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateResources } from 'store/resources/resources-actions';
+import { SortDirection } from 'components/data-table/data-column';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { ListResults } from 'services/common-service/common-service';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { ProcessResource } from 'models/process';
+import { SubprocessPanelColumnNames } from 'views/subprocess-panel/subprocess-panel-root';
+import { FilterBuilder, joinFilters } from 'services/api/filter-builder';
import { subprocessPanelActions } from './subprocess-panel-actions';
-import { DataColumns } from '~/components/data-table/data-table';
+import { DataColumns } from 'components/data-table/data-table';
import { ProcessStatusFilter, buildProcessStatusFilters } from '../resource-type-filters/resource-type-filters';
-import { ContainerRequestResource } from '~/models/container-request';
+import { ContainerRequestResource } from 'models/container-request';
import { progressIndicatorActions } from '../progress-indicator/progress-indicator-actions';
import { loadMissingProcessesInformation } from '../project-panel/project-panel-middleware-service';
//
// SPDX-License-Identifier: AGPL-3.0
-import { dialogActions } from "~/store/dialog/dialog-actions";
-import { getProperty } from '~/store/properties/properties';
-import { propertiesActions } from '~/store/properties/properties-actions';
-import { RootState } from '~/store/store';
+import { dialogActions } from "store/dialog/dialog-actions";
+import { getProperty } from 'store/properties/properties';
+import { propertiesActions } from 'store/properties/properties-actions';
+import { RootState } from 'store/store';
export const TOKEN_DIALOG_NAME = 'tokenDialog';
const API_HOST_PROPERTY_NAME = 'apiHost';
//
// SPDX-License-Identifier: AGPL-3.0
-import { bindDataExplorerActions } from "~/store/data-explorer/data-explorer-action";
+import { bindDataExplorerActions } from "store/data-explorer/data-explorer-action";
export const TRASH_PANEL_ID = "trashPanel";
export const trashPanelActions = bindDataExplorerActions(TRASH_PANEL_ID);
listResultsToDataExplorerItemsMeta
} from "../data-explorer/data-explorer-middleware-service";
import { RootState } from "../store";
-import { getUserUuid } from "~/common/getuser";
-import { DataColumns } from "~/components/data-table/data-table";
-import { ServiceRepository } from "~/services/services";
-import { SortDirection } from "~/components/data-table/data-column";
-import { FilterBuilder } from "~/services/api/filter-builder";
+import { getUserUuid } from "common/getuser";
+import { DataColumns } from "components/data-table/data-table";
+import { ServiceRepository } from "services/services";
+import { SortDirection } from "components/data-table/data-column";
+import { FilterBuilder } from "services/api/filter-builder";
import { trashPanelActions } from "./trash-panel-action";
import { Dispatch, MiddlewareAPI } from "redux";
-import { OrderBuilder, OrderDirection } from "~/services/api/order-builder";
-import { GroupContentsResourcePrefix } from "~/services/groups-service/groups-service";
-import { ProjectResource } from "~/models/project";
-import { ProjectPanelColumnNames } from "~/views/project-panel/project-panel";
-import { updateFavorites } from "~/store/favorites/favorites-actions";
-import { updatePublicFavorites } from '~/store/public-favorites/public-favorites-actions';
-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 { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { serializeResourceTypeFilters } from '~/store//resource-type-filters/resource-type-filters';
-import { getDataExplorerColumnFilters } from '~/store/data-explorer/data-explorer-middleware-service';
-import { joinFilters } from '~/services/api/filter-builder';
+import { OrderBuilder, OrderDirection } from "services/api/order-builder";
+import { GroupContentsResourcePrefix } from "services/groups-service/groups-service";
+import { ProjectResource } from "models/project";
+import { ProjectPanelColumnNames } from "views/project-panel/project-panel";
+import { updateFavorites } from "store/favorites/favorites-actions";
+import { updatePublicFavorites } from 'store/public-favorites/public-favorites-actions';
+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 { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { serializeResourceTypeFilters } from 'store//resource-type-filters/resource-type-filters';
+import { getDataExplorerColumnFilters } from 'store/data-explorer/data-explorer-middleware-service';
+import { joinFilters } from 'services/api/filter-builder';
export class TrashPanelMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
-import { ServiceRepository } from "~/services/services";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
-import { trashPanelActions } from "~/store/trash-panel/trash-panel-action";
-import { activateSidePanelTreeItem, loadSidePanelTreeProjects } from "~/store/side-panel-tree/side-panel-tree-actions";
-import { projectPanelActions } from "~/store/project-panel/project-panel-action";
-import { ResourceKind } from "~/models/resource";
-import { navigateTo, navigateToTrash } from '~/store/navigation/navigation-action';
-import { matchCollectionRoute } from '~/routes/routes';
+import { RootState } from "store/store";
+import { ServiceRepository } from "services/services";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
+import { trashPanelActions } from "store/trash-panel/trash-panel-action";
+import { activateSidePanelTreeItem, loadSidePanelTreeProjects } from "store/side-panel-tree/side-panel-tree-actions";
+import { projectPanelActions } from "store/project-panel/project-panel-action";
+import { ResourceKind } from "models/resource";
+import { navigateTo, navigateToTrash } from 'store/navigation/navigation-action';
+import { matchCollectionRoute } from 'routes/routes';
export const toggleProjectTrashed = (uuid: string, ownerUuid: string, isTrashed: boolean) =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<any> => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { unionize, ofType, UnionOf } from "~/common/unionize";
-import { TreeNode, initTreeNode, getNodeDescendants, TreeNodeStatus, getNode, TreePickerId, Tree } from '~/models/tree';
-import { createCollectionFilesTree } from "~/models/collection-file";
+import { unionize, ofType, UnionOf } from "common/unionize";
+import { TreeNode, initTreeNode, getNodeDescendants, TreeNodeStatus, getNode, TreePickerId, Tree } from 'models/tree';
+import { createCollectionFilesTree } from "models/collection-file";
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository } from '~/services/services';
-import { FilterBuilder } from '~/services/api/filter-builder';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository } from 'services/services';
+import { FilterBuilder } from 'services/api/filter-builder';
import { pipe, values } from 'lodash/fp';
-import { ResourceKind } from '~/models/resource';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
+import { ResourceKind } from 'models/resource';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
import { getTreePicker, TreePicker } from './tree-picker';
-import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
-import { OrderBuilder } from '~/services/api/order-builder';
-import { ProjectResource } from '~/models/project';
+import { ProjectsTreePickerItem } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
+import { OrderBuilder } from 'services/api/order-builder';
+import { ProjectResource } from 'models/project';
import { mapTree } from '../../models/tree';
-import { LinkResource, LinkClass } from "~/models/link";
-import { mapTreeValues } from "~/models/tree";
-import { sortFilesTree } from "~/services/collection-service/collection-service-files-response";
-import { GroupClass, GroupResource } from "~/models/group";
+import { LinkResource, LinkClass } from "models/link";
+import { mapTreeValues } from "models/tree";
+import { sortFilesTree } from "services/collection-service/collection-service-files-response";
+import { GroupClass, GroupResource } from "models/group";
export const treePickerActions = unionize({
LOAD_TREE_PICKER_NODE: ofType<{ id: string, pickerId: string }>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { createTree, getNodeChildrenIds, getNode, TreeNodeStatus } from '~/models/tree';
+import { createTree, getNodeChildrenIds, getNode, TreeNodeStatus } from 'models/tree';
import { pipe } from 'lodash/fp';
import { treePickerReducer } from "./tree-picker-reducer";
import { treePickerActions } from "./tree-picker-actions";
import { TreePicker } from './tree-picker';
-import { initTreeNode } from '~/models/tree';
+import { initTreeNode } from 'models/tree';
describe('TreePickerReducer', () => {
it('LOAD_TREE_PICKER_NODE - initial state', () => {
//
// SPDX-License-Identifier: AGPL-3.0
-import { createTree, TreeNode, setNode, Tree, TreeNodeStatus, setNodeStatus, expandNode, deactivateNode, selectNodes, deselectNodes } from '~/models/tree';
+import { createTree, TreeNode, setNode, Tree, TreeNodeStatus, setNodeStatus, expandNode, deactivateNode, selectNodes, deselectNodes } from 'models/tree';
import { TreePicker } from "./tree-picker";
import { treePickerActions, TreePickerAction } from "./tree-picker-actions";
import { compose } from "redux";
-import { activateNode, getNode, toggleNodeCollapse, toggleNodeSelection } from '~/models/tree';
+import { activateNode, getNode, toggleNodeCollapse, toggleNodeSelection } from 'models/tree';
import { pipe } from 'lodash/fp';
-import { appendSubtree } from '~/models/tree';
+import { appendSubtree } from 'models/tree';
export const treePickerReducer = (state: TreePicker = {}, action: TreePickerAction) =>
treePickerActions.match(action, {
//
// SPDX-License-Identifier: AGPL-3.0
-import { Tree } from "~/models/tree";
-import { TreeItemStatus } from '~/components/tree/tree';
+import { Tree } from "models/tree";
+import { TreeItemStatus } from 'components/tree/tree';
export type TreePicker = { [key: string]: Tree<any> };
export const getTreePicker = <Value = {}>(id: string) => (state: TreePicker): Tree<Value> | undefined => state[id];
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateResources } from '~/store/resources/resources-actions';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { SortDirection } from '~/components/data-table/data-column';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { ListResults } from '~/services/common-service/common-service';
-import { userBindedActions } from '~/store/users/users-actions';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
-import { UserResource } from '~/models/user';
-import { UserPanelColumnNames } from '~/views/user-panel/user-panel';
+import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateResources } from 'store/resources/resources-actions';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { SortDirection } from 'components/data-table/data-column';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { ListResults } from 'services/common-service/common-service';
+import { userBindedActions } from 'store/users/users-actions';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
+import { UserResource } from 'models/user';
+import { UserPanelColumnNames } from 'views/user-panel/user-panel';
export class UserMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { RootState } from '~/store/store';
-import { getUserUuid } from "~/common/getuser";
-import { ServiceRepository } from "~/services/services";
-import { dialogActions } from '~/store/dialog/dialog-actions';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { RootState } from 'store/store';
+import { getUserUuid } from "common/getuser";
+import { ServiceRepository } from "services/services";
+import { dialogActions } from 'store/dialog/dialog-actions';
import { startSubmit, reset } from "redux-form";
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { UserResource } from "~/models/user";
-import { getResource } from '~/store/resources/resources';
-import { navigateTo, navigateToUsers, navigateToRootProject } from "~/store/navigation/navigation-action";
-import { authActions } from '~/store/auth/auth-action';
-import { getTokenV2 } from "~/models/api-client-authorization";
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { UserResource } from "models/user";
+import { getResource } from 'store/resources/resources';
+import { navigateTo, navigateToUsers, navigateToRootProject } from "store/navigation/navigation-action";
+import { authActions } from 'store/auth/auth-action';
+import { getTokenV2 } from "models/api-client-authorization";
export const USERS_PANEL_ID = 'usersPanel';
export const USER_ATTRIBUTES_DIALOG = 'userAttributesDialog';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { RootState } from '~/store/store';
-import { ServiceRepository } from "~/services/services";
-import { navigateToUserVirtualMachines, navigateToAdminVirtualMachines, navigateToRootProject } from "~/store/navigation/navigation-action";
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { formatDate } from "~/common/formatters";
-import { unionize, ofType, UnionOf } from "~/common/unionize";
-import { VirtualMachineLogins } from '~/models/virtual-machines';
-import { FilterBuilder } from "~/services/api/filter-builder";
-import { ListResults } from "~/services/common-service/common-service";
-import { dialogActions } from '~/store/dialog/dialog-actions';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from "services/services";
+import { navigateToUserVirtualMachines, navigateToAdminVirtualMachines, navigateToRootProject } from "store/navigation/navigation-action";
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { formatDate } from "common/formatters";
+import { unionize, ofType, UnionOf } from "common/unionize";
+import { VirtualMachineLogins } from 'models/virtual-machines';
+import { FilterBuilder } from "services/api/filter-builder";
+import { ListResults } from "services/common-service/common-service";
+import { dialogActions } from 'store/dialog/dialog-actions';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
export const virtualMachinesActions = unionize({
SET_REQUESTED_DATE: ofType<string>(),
//
// SPDX-License-Identifier: AGPL-3.0
-import { virtualMachinesActions, VirtualMachineActions } from '~/store/virtual-machines/virtual-machines-actions';
-import { ListResults } from '~/services/common-service/common-service';
-import { VirtualMachineLogins } from '~/models/virtual-machines';
+import { virtualMachinesActions, VirtualMachineActions } from 'store/virtual-machines/virtual-machines-actions';
+import { ListResults } from 'services/common-service/common-service';
+import { VirtualMachineLogins } from 'models/virtual-machines';
interface VirtualMachines {
date: string;
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { ServiceRepository } from '~/services/services';
-import { propertiesActions } from '~/store/properties/properties-actions';
+import { ServiceRepository } from 'services/services';
+import { propertiesActions } from 'store/properties/properties-actions';
import { VOCABULARY_PROPERTY_NAME, DEFAULT_VOCABULARY } from './vocabulary-selectors';
-import { isVocabulary } from '~/models/vocabulary';
+import { isVocabulary } from 'models/vocabulary';
export const loadVocabulary = async (dispatch: Dispatch, _: {}, { vocabularyService }: ServiceRepository) => {
const vocabulary = await vocabularyService.getVocabulary();
//
// SPDX-License-Identifier: AGPL-3.0
-import { PropertiesState, getProperty } from '~/store/properties/properties';
-import { Vocabulary } from '~/models/vocabulary';
+import { PropertiesState, getProperty } from 'store/properties/properties';
+import { Vocabulary } from 'models/vocabulary';
export const VOCABULARY_PROPERTY_NAME = 'vocabulary';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from "~/store/store";
-import { getUserUuid } from "~/common/getuser";
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { favoritePanelActions, loadFavoritePanel } from '~/store/favorite-panel/favorite-panel-action';
+import { RootState } from "store/store";
+import { getUserUuid } from "common/getuser";
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { favoritePanelActions, loadFavoritePanel } from 'store/favorite-panel/favorite-panel-action';
import {
getProjectPanelCurrentUuid,
openProjectPanel,
projectPanelActions,
setIsProjectPanelTrashed
-} from '~/store/project-panel/project-panel-action';
+} from 'store/project-panel/project-panel-action';
import {
activateSidePanelTreeItem,
initSidePanelTree,
loadSidePanelTreeProjects,
SidePanelTreeCategory
-} from '~/store/side-panel-tree/side-panel-tree-actions';
-import { updateResources } from '~/store/resources/resources-actions';
-import { projectPanelColumns } from '~/views/project-panel/project-panel';
-import { favoritePanelColumns } from '~/views/favorite-panel/favorite-panel';
-import { matchRootRoute } from '~/routes/routes';
+} from 'store/side-panel-tree/side-panel-tree-actions';
+import { updateResources } from 'store/resources/resources-actions';
+import { projectPanelColumns } from 'views/project-panel/project-panel';
+import { favoritePanelColumns } from 'views/favorite-panel/favorite-panel';
+import { matchRootRoute } from 'routes/routes';
import {
setBreadcrumbs,
setGroupDetailsBreadcrumbs,
setSharedWithMeBreadcrumbs,
setSidePanelBreadcrumbs,
setTrashBreadcrumbs
-} from '~/store/breadcrumbs/breadcrumbs-actions';
-import { navigateTo, navigateToRootProject } from '~/store/navigation/navigation-action';
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { ServiceRepository } from '~/services/services';
-import { getResource } from '~/store/resources/resources';
-import * as projectCreateActions from '~/store/projects/project-create-actions';
-import * as projectMoveActions from '~/store/projects/project-move-actions';
-import * as projectUpdateActions from '~/store/projects/project-update-actions';
-import * as collectionCreateActions from '~/store/collections/collection-create-actions';
-import * as collectionCopyActions from '~/store/collections/collection-copy-actions';
-import * as collectionMoveActions from '~/store/collections/collection-move-actions';
-import * as processesActions from '~/store/processes/processes-actions';
-import * as processMoveActions from '~/store/processes/process-move-actions';
-import * as processUpdateActions from '~/store/processes/process-update-actions';
-import * as processCopyActions from '~/store/processes/process-copy-actions';
-import { trashPanelColumns } from "~/views/trash-panel/trash-panel";
-import { loadTrashPanel, trashPanelActions } from "~/store/trash-panel/trash-panel-action";
-import { initProcessLogsPanel } from '~/store/process-logs-panel/process-logs-panel-actions';
-import { loadProcessPanel } from '~/store/process-panel/process-panel-actions';
+} from 'store/breadcrumbs/breadcrumbs-actions';
+import { navigateTo, navigateToRootProject } from 'store/navigation/navigation-action';
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { ServiceRepository } from 'services/services';
+import { getResource } from 'store/resources/resources';
+import * as projectCreateActions from 'store/projects/project-create-actions';
+import * as projectMoveActions from 'store/projects/project-move-actions';
+import * as projectUpdateActions from 'store/projects/project-update-actions';
+import * as collectionCreateActions from 'store/collections/collection-create-actions';
+import * as collectionCopyActions from 'store/collections/collection-copy-actions';
+import * as collectionMoveActions from 'store/collections/collection-move-actions';
+import * as processesActions from 'store/processes/processes-actions';
+import * as processMoveActions from 'store/processes/process-move-actions';
+import * as processUpdateActions from 'store/processes/process-update-actions';
+import * as processCopyActions from 'store/processes/process-copy-actions';
+import { trashPanelColumns } from "views/trash-panel/trash-panel";
+import { loadTrashPanel, trashPanelActions } from "store/trash-panel/trash-panel-action";
+import { initProcessLogsPanel } from 'store/process-logs-panel/process-logs-panel-actions';
+import { loadProcessPanel } from 'store/process-panel/process-panel-actions';
import {
loadSharedWithMePanel,
sharedWithMePanelActions
-} from '~/store/shared-with-me-panel/shared-with-me-panel-actions';
-import { CopyFormDialogData } from '~/store/copy-dialog/copy-dialog';
-import { loadWorkflowPanel, workflowPanelActions } from '~/store/workflow-panel/workflow-panel-actions';
-import { loadSshKeysPanel } from '~/store/auth/auth-action-ssh';
-import { loadMyAccountPanel } from '~/store/my-account/my-account-panel-actions';
-import { loadLinkAccountPanel, linkAccountPanelActions } from '~/store/link-account-panel/link-account-panel-actions';
-import { loadSiteManagerPanel } from '~/store/auth/auth-action-session';
-import { workflowPanelColumns } from '~/views/workflow-panel/workflow-panel-view';
-import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions';
-import { getProgressIndicator } from '~/store/progress-indicator/progress-indicator-reducer';
-import { extractUuidKind, ResourceKind } from '~/models/resource';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
-import { MatchCases, ofType, unionize, UnionOf } from '~/common/unionize';
-import { loadRunProcessPanel } from '~/store/run-process-panel/run-process-panel-actions';
-import { collectionPanelActions, loadCollectionPanel } from "~/store/collection-panel/collection-panel-action";
-import { CollectionResource } from "~/models/collection";
+} from 'store/shared-with-me-panel/shared-with-me-panel-actions';
+import { CopyFormDialogData } from 'store/copy-dialog/copy-dialog';
+import { loadWorkflowPanel, workflowPanelActions } from 'store/workflow-panel/workflow-panel-actions';
+import { loadSshKeysPanel } from 'store/auth/auth-action-ssh';
+import { loadMyAccountPanel } from 'store/my-account/my-account-panel-actions';
+import { loadLinkAccountPanel, linkAccountPanelActions } from 'store/link-account-panel/link-account-panel-actions';
+import { loadSiteManagerPanel } from 'store/auth/auth-action-session';
+import { workflowPanelColumns } from 'views/workflow-panel/workflow-panel-view';
+import { progressIndicatorActions } from 'store/progress-indicator/progress-indicator-actions';
+import { getProgressIndicator } from 'store/progress-indicator/progress-indicator-reducer';
+import { extractUuidKind, ResourceKind } from 'models/resource';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
+import { MatchCases, ofType, unionize, UnionOf } from 'common/unionize';
+import { loadRunProcessPanel } from 'store/run-process-panel/run-process-panel-actions';
+import { collectionPanelActions, loadCollectionPanel } from "store/collection-panel/collection-panel-action";
+import { CollectionResource } from "models/collection";
import {
loadSearchResultsPanel,
searchResultsPanelActions
-} from '~/store/search-results-panel/search-results-panel-actions';
-import { searchResultsPanelColumns } from '~/views/search-results-panel/search-results-panel-view';
-import { loadVirtualMachinesPanel } from '~/store/virtual-machines/virtual-machines-actions';
-import { loadRepositoriesPanel } from '~/store/repositories/repositories-actions';
-import { loadKeepServicesPanel } from '~/store/keep-services/keep-services-actions';
-import { loadUsersPanel, userBindedActions } from '~/store/users/users-actions';
-import { linkPanelActions, loadLinkPanel } from '~/store/link-panel/link-panel-actions';
-import { computeNodesActions, loadComputeNodesPanel } from '~/store/compute-nodes/compute-nodes-actions';
-import { linkPanelColumns } from '~/views/link-panel/link-panel-root';
-import { userPanelColumns } from '~/views/user-panel/user-panel';
-import { computeNodePanelColumns } from '~/views/compute-node-panel/compute-node-panel-root';
-import { loadApiClientAuthorizationsPanel, apiClientAuthorizationsActions } from '~/store/api-client-authorizations/api-client-authorizations-actions';
-import { apiClientAuthorizationPanelColumns } from '~/views/api-client-authorization-panel/api-client-authorization-panel-root';
-import * as groupPanelActions from '~/store/groups-panel/groups-panel-actions';
-import { groupsPanelColumns } from '~/views/groups-panel/groups-panel';
-import * as groupDetailsPanelActions from '~/store/group-details-panel/group-details-panel-actions';
-import { groupDetailsPanelColumns } from '~/views/group-details-panel/group-details-panel';
-import { DataTableFetchMode } from "~/components/data-table/data-table";
-import { loadPublicFavoritePanel, publicFavoritePanelActions } from '~/store/public-favorites-panel/public-favorites-action';
-import { publicFavoritePanelColumns } from '~/views/public-favorites-panel/public-favorites-panel';
-import { loadCollectionsContentAddressPanel, collectionsContentAddressActions } from '~/store/collections-content-address-panel/collections-content-address-panel-actions';
-import { collectionContentAddressPanelColumns } from '~/views/collection-content-address-panel/collection-content-address-panel';
-import { subprocessPanelActions } from '~/store/subprocess-panel/subprocess-panel-actions';
-import { subprocessPanelColumns } from '~/views/subprocess-panel/subprocess-panel-root';
+} from 'store/search-results-panel/search-results-panel-actions';
+import { searchResultsPanelColumns } from 'views/search-results-panel/search-results-panel-view';
+import { loadVirtualMachinesPanel } from 'store/virtual-machines/virtual-machines-actions';
+import { loadRepositoriesPanel } from 'store/repositories/repositories-actions';
+import { loadKeepServicesPanel } from 'store/keep-services/keep-services-actions';
+import { loadUsersPanel, userBindedActions } from 'store/users/users-actions';
+import { linkPanelActions, loadLinkPanel } from 'store/link-panel/link-panel-actions';
+import { computeNodesActions, loadComputeNodesPanel } from 'store/compute-nodes/compute-nodes-actions';
+import { linkPanelColumns } from 'views/link-panel/link-panel-root';
+import { userPanelColumns } from 'views/user-panel/user-panel';
+import { computeNodePanelColumns } from 'views/compute-node-panel/compute-node-panel-root';
+import { loadApiClientAuthorizationsPanel, apiClientAuthorizationsActions } from 'store/api-client-authorizations/api-client-authorizations-actions';
+import { apiClientAuthorizationPanelColumns } from 'views/api-client-authorization-panel/api-client-authorization-panel-root';
+import * as groupPanelActions from 'store/groups-panel/groups-panel-actions';
+import { groupsPanelColumns } from 'views/groups-panel/groups-panel';
+import * as groupDetailsPanelActions from 'store/group-details-panel/group-details-panel-actions';
+import { groupDetailsPanelColumns } from 'views/group-details-panel/group-details-panel';
+import { DataTableFetchMode } from "components/data-table/data-table";
+import { loadPublicFavoritePanel, publicFavoritePanelActions } from 'store/public-favorites-panel/public-favorites-action';
+import { publicFavoritePanelColumns } from 'views/public-favorites-panel/public-favorites-panel';
+import { loadCollectionsContentAddressPanel, collectionsContentAddressActions } from 'store/collections-content-address-panel/collections-content-address-panel-actions';
+import { collectionContentAddressPanelColumns } from 'views/collection-content-address-panel/collection-content-address-panel';
+import { subprocessPanelActions } from 'store/subprocess-panel/subprocess-panel-actions';
+import { subprocessPanelColumns } from 'views/subprocess-panel/subprocess-panel-root';
import { loadAllProcessesPanel, allProcessesPanelActions } from '../all-processes-panel/all-processes-panel-action';
-import { allProcessesPanelColumns } from '~/views/all-processes-panel/all-processes-panel';
+import { allProcessesPanelColumns } from 'views/all-processes-panel/all-processes-panel';
import { collectionPanelFilesAction } from '../collection-panel/collection-panel-files/collection-panel-files-actions';
-import { createTree } from '~/models/tree';
+import { createTree } from 'models/tree';
export const WORKBENCH_LOADING_SCREEN = 'workbenchLoadingScreen';
//
// SPDX-License-Identifier: AGPL-3.0
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { MiddlewareAPI, Dispatch } from 'redux';
-import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from '~/store/data-explorer/data-explorer-middleware-service';
-import { RootState } from '~/store/store';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { DataExplorer, getDataExplorer } from '~/store/data-explorer/data-explorer-reducer';
-import { updateResources } from '~/store/resources/resources-actions';
-import { FilterBuilder } from '~/services/api/filter-builder';
-import { SortDirection } from '~/components/data-table/data-column';
-import { WorkflowPanelColumnNames } from '~/views/workflow-panel/workflow-panel-view';
-import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
-import { WorkflowResource } from '~/models/workflow';
-import { ListResults } from '~/services/common-service/common-service';
-import { workflowPanelActions } from '~/store/workflow-panel/workflow-panel-actions';
-import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer";
+import { DataExplorerMiddlewareService, dataExplorerToListParams, listResultsToDataExplorerItemsMeta } from 'store/data-explorer/data-explorer-middleware-service';
+import { RootState } from 'store/store';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { DataExplorer, getDataExplorer } from 'store/data-explorer/data-explorer-reducer';
+import { updateResources } from 'store/resources/resources-actions';
+import { FilterBuilder } from 'services/api/filter-builder';
+import { SortDirection } from 'components/data-table/data-column';
+import { WorkflowPanelColumnNames } from 'views/workflow-panel/workflow-panel-view';
+import { OrderDirection, OrderBuilder } from 'services/api/order-builder';
+import { WorkflowResource } from 'models/workflow';
+import { ListResults } from 'services/common-service/common-service';
+import { workflowPanelActions } from 'store/workflow-panel/workflow-panel-actions';
+import { getSortColumn } from "store/data-explorer/data-explorer-reducer";
export class WorkflowMiddlewareService extends DataExplorerMiddlewareService {
constructor(private services: ServiceRepository, id: string) {
//
// SPDX-License-Identifier: AGPL-3.0
-import { API_TOKEN_KEY } from "~/services/auth-service/auth-service";
+import { API_TOKEN_KEY } from "services/auth-service/auth-service";
import 'jest-localstorage-mock';
-import { ServiceRepository, createServices } from "~/services/services";
+import { ServiceRepository, createServices } from "services/services";
import { configureStore, RootStore } from "../store";
import { createBrowserHistory } from "history";
-import { Config, mockConfig } from '~/common/config';
-import { ApiActions } from "~/services/api/api-actions";
-import { ACCOUNT_LINK_STATUS_KEY } from '~/services/link-account-service/link-account-service';
+import { Config, mockConfig } from 'common/config';
+import { ApiActions } from "services/api/api-actions";
+import { ACCOUNT_LINK_STATUS_KEY } from 'services/link-account-service/link-account-service';
import Axios from "axios";
import MockAdapter from "axios-mock-adapter";
import { ImportMock } from 'ts-mock-imports';
-import * as servicesModule from "~/services/services";
-import { SessionStatus } from "~/models/session";
+import * as servicesModule from "services/services";
+import { SessionStatus } from "models/session";
import { openRunProcess } from './workflow-panel-actions';
-import { runProcessPanelActions } from '~/store/run-process-panel/run-process-panel-actions';
+import { runProcessPanelActions } from 'store/run-process-panel/run-process-panel-actions';
import { initialize } from 'redux-form';
-import { RUN_PROCESS_BASIC_FORM } from '~/views/run-process-panel/run-process-basic-form';
-import { RUN_PROCESS_INPUTS_FORM } from '~/views/run-process-panel/run-process-inputs-form';
-import { ResourceKind } from '~/models/resource';
-import { WorkflowResource } from '~/models/workflow';
+import { RUN_PROCESS_BASIC_FORM } from 'views/run-process-panel/run-process-basic-form';
+import { RUN_PROCESS_INPUTS_FORM } from 'views/run-process-panel/run-process-inputs-form';
+import { ResourceKind } from 'models/resource';
+import { WorkflowResource } from 'models/workflow';
describe('workflow-panel-actions', () => {
const axiosInst = Axios.create({ headers: {} });
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { RootState } from '~/store/store';
-import { ServiceRepository } from '~/services/services';
-import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
-import { propertiesActions } from '~/store/properties/properties-actions';
-import { getProperty } from '~/store/properties/properties';
-import { navigateToRunProcess } from '~/store/navigation/navigation-action';
-import { goToStep, runProcessPanelActions, loadPresets, getWorkflowRunnerSettings } from '~/store/run-process-panel/run-process-panel-actions';
-import { snackbarActions } from '~/store/snackbar/snackbar-actions';
+import { RootState } from 'store/store';
+import { ServiceRepository } from 'services/services';
+import { bindDataExplorerActions } from 'store/data-explorer/data-explorer-action';
+import { propertiesActions } from 'store/properties/properties-actions';
+import { getProperty } from 'store/properties/properties';
+import { navigateToRunProcess } from 'store/navigation/navigation-action';
+import { goToStep, runProcessPanelActions, loadPresets, getWorkflowRunnerSettings } from 'store/run-process-panel/run-process-panel-actions';
+import { snackbarActions } from 'store/snackbar/snackbar-actions';
import { initialize } from 'redux-form';
-import { RUN_PROCESS_BASIC_FORM } from '~/views/run-process-panel/run-process-basic-form';
-import { RUN_PROCESS_INPUTS_FORM } from '~/views/run-process-panel/run-process-inputs-form';
-import { RUN_PROCESS_ADVANCED_FORM } from '~/views/run-process-panel/run-process-advanced-form';
+import { RUN_PROCESS_BASIC_FORM } from 'views/run-process-panel/run-process-basic-form';
+import { RUN_PROCESS_INPUTS_FORM } from 'views/run-process-panel/run-process-inputs-form';
+import { RUN_PROCESS_ADVANCED_FORM } from 'views/run-process-panel/run-process-advanced-form';
export const WORKFLOW_PANEL_ID = "workflowPanel";
const UUID_PREFIX_PROPERTY_NAME = 'uuidPrefix';
import { RouteProps } from "react-router";
import * as React from "react";
import { connect, DispatchProp } from "react-redux";
-import { getUrlParameter } from "~/common/url";
-import { navigateToSiteManager } from "~/store/navigation/navigation-action";
-import { addSession } from "~/store/auth/auth-action-session";
+import { getUrlParameter } from "common/url";
+import { navigateToSiteManager } from "store/navigation/navigation-action";
+import { addSession } from "store/auth/auth-action-session";
export const AddSession = connect()(
class extends React.Component<RouteProps & DispatchProp<any>, {}> {
import * as React from "react";
import { Dialog, DialogActions, Button, StyleRulesCallback, WithStyles, withStyles, DialogTitle, DialogContent, Tabs, Tab, DialogContentText } from '@material-ui/core';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { withDialog } from "~/store/dialog/with-dialog";
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { withDialog } from "store/dialog/with-dialog";
import { compose } from 'redux';
-import { ADVANCED_TAB_DIALOG } from "~/store/advanced-tab/advanced-tab";
-import { DefaultCodeSnippet } from "~/components/default-code-snippet/default-code-snippet";
-import { MetadataTab } from '~/views-components/advanced-tab-dialog/metadataTab';
+import { ADVANCED_TAB_DIALOG } from "store/advanced-tab/advanced-tab";
+import { DefaultCodeSnippet } from "components/default-code-snippet/default-code-snippet";
+import { MetadataTab } from 'views-components/advanced-tab-dialog/metadataTab';
type CssRules = 'content' | 'codeSnippet' | 'spacing';
import * as React from "react";
import { Table, TableHead, TableCell, TableRow, TableBody, StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
-import { UserResource, getUserDisplayName } from "~/models/user";
+import { UserResource, getUserDisplayName } from "models/user";
type CssRules = 'cell';
withStyles, Dialog, DialogTitle, DialogContent, DialogActions,
Button, StyleRulesCallback, WithStyles, Grid
} from '@material-ui/core';
-import { WithDialogProps, withDialog } from "~/store/dialog/with-dialog";
-import { API_CLIENT_AUTHORIZATION_ATTRIBUTES_DIALOG } from '~/store/api-client-authorizations/api-client-authorizations-actions';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { ApiClientAuthorization } from '~/models/api-client-authorization';
-import { formatDate } from '~/common/formatters';
+import { WithDialogProps, withDialog } from "store/dialog/with-dialog";
+import { API_CLIENT_AUTHORIZATION_ATTRIBUTES_DIALOG } from 'store/api-client-authorizations/api-client-authorizations-actions';
+import { ArvadosTheme } from 'common/custom-theme';
+import { ApiClientAuthorization } from 'models/api-client-authorization';
+import { formatDate } from 'common/formatters';
type CssRules = 'root';
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
-import { DefaultCodeSnippet } from '~/components/default-code-snippet/default-code-snippet';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
+import { DefaultCodeSnippet } from 'components/default-code-snippet/default-code-snippet';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose } from "redux";
-import { API_CLIENT_AUTHORIZATION_HELP_DIALOG } from '~/store/api-client-authorizations/api-client-authorizations-actions';
+import { API_CLIENT_AUTHORIZATION_HELP_DIALOG } from 'store/api-client-authorizations/api-client-authorizations-actions';
type CssRules = 'codeSnippet';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { API_CLIENT_AUTHORIZATION_REMOVE_DIALOG, removeApiClientAuthorization } from '~/store/api-client-authorizations/api-client-authorizations-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { API_CLIENT_AUTHORIZATION_REMOVE_DIALOG, removeApiClientAuthorization } from 'store/api-client-authorizations/api-client-authorizations-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import { RouteProps } from "react-router";
import * as React from "react";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
import { connect, DispatchProp } from "react-redux";
-import { saveApiToken } from "~/store/auth/auth-action";
-import { getUrlParameter } from "~/common/url";
-import { AuthService } from "~/services/auth-service/auth-service";
-import { navigateToRootProject, navigateToLinkAccount } from "~/store/navigation/navigation-action";
-import { Config } from "~/common/config";
-import { getAccountLinkData } from "~/store/link-account-panel/link-account-panel-actions";
+import { saveApiToken } from "store/auth/auth-action";
+import { getUrlParameter } from "common/url";
+import { AuthService } from "services/auth-service/auth-service";
+import { navigateToRootProject, navigateToLinkAccount } from "store/navigation/navigation-action";
+import { Config } from "common/config";
+import { getAccountLinkData } from "store/link-account-panel/link-account-panel-actions";
import { replace } from "react-router-redux";
-import { User } from "~/models/user";
+import { User } from "models/user";
interface ApiTokenProps {
authService: AuthService;
import { useIdleTimer } from "react-idle-timer";
import { Dispatch } from "redux";
-import { RootState } from "~/store/store";
-import { SnackbarKind, snackbarActions } from "~/store/snackbar/snackbar-actions";
-import { logout } from "~/store/auth/auth-action";
+import { RootState } from "store/store";
+import { SnackbarKind, snackbarActions } from "store/snackbar/snackbar-actions";
+import { logout } from "store/auth/auth-action";
import parse from "parse-duration";
import * as React from "react";
import { min } from "lodash";
// SPDX-License-Identifier: AGPL-3.0
import { connect } from "react-redux";
-import { Breadcrumbs as BreadcrumbsComponent, BreadcrumbsProps } from '~/components/breadcrumbs/breadcrumbs';
-import { RootState } from '~/store/store';
+import { Breadcrumbs as BreadcrumbsComponent, BreadcrumbsProps } from 'components/breadcrumbs/breadcrumbs';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
-import { navigateTo } from '~/store/navigation/navigation-action';
+import { navigateTo } from 'store/navigation/navigation-action';
import { getProperty } from '../../store/properties/properties';
import { ResourceBreadcrumb, BREADCRUMBS } from '../../store/breadcrumbs/breadcrumbs-actions';
-import { openSidePanelContextMenu } from '~/store/context-menu/context-menu-actions';
+import { openSidePanelContextMenu } from 'store/context-menu/context-menu-actions';
type BreadcrumbsDataProps = Pick<BreadcrumbsProps, 'items'>;
type BreadcrumbsActionProps = Pick<BreadcrumbsProps, 'onClick' | 'onContextMenu'>;
import {
CollectionPanelFiles as Component,
CollectionPanelFilesProps
-} from "~/components/collection-panel-files/collection-panel-files";
-import { RootState } from "~/store/store";
-import { TreeItemStatus } from "~/components/tree/tree";
-import { VirtualTreeItem as TreeItem } from "~/components/tree/virtual-tree";
+} from "components/collection-panel-files/collection-panel-files";
+import { RootState } from "store/store";
+import { TreeItemStatus } from "components/tree/tree";
+import { VirtualTreeItem as TreeItem } from "components/tree/virtual-tree";
import {
CollectionPanelDirectory,
CollectionPanelFile,
CollectionPanelFilesState
-} from "~/store/collection-panel/collection-panel-files/collection-panel-files-state";
-import { FileTreeData } from "~/components/file-tree/file-tree-data";
+} from "store/collection-panel/collection-panel-files/collection-panel-files-state";
+import { FileTreeData } from "components/file-tree/file-tree-data";
import { Dispatch } from "redux";
-import { collectionPanelFilesAction } from "~/store/collection-panel/collection-panel-files/collection-panel-files-actions";
+import { collectionPanelFilesAction } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
import { ContextMenuKind } from "../context-menu/context-menu";
-import { getNode, getNodeChildrenIds, Tree, TreeNode, initTreeNode } from "~/models/tree";
-import { CollectionFileType, createCollectionDirectory } from "~/models/collection-file";
-import { openContextMenu, openCollectionFilesContextMenu } from '~/store/context-menu/context-menu-actions';
-import { openUploadCollectionFilesDialog } from '~/store/collections/collection-upload-actions';
-import { ResourceKind } from "~/models/resource";
-import { openDetailsPanel } from '~/store/details-panel/details-panel-action';
+import { getNode, getNodeChildrenIds, Tree, TreeNode, initTreeNode } from "models/tree";
+import { CollectionFileType, createCollectionDirectory } from "models/collection-file";
+import { openContextMenu, openCollectionFilesContextMenu } from 'store/context-menu/context-menu-actions';
+import { openUploadCollectionFilesDialog } from 'store/collections/collection-upload-actions';
+import { ResourceKind } from "models/resource";
+import { openDetailsPanel } from 'store/details-panel/details-panel-action';
const memoizedMapStateToProps = () => {
let prevState: CollectionPanelFilesState;
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { COLLECTION_RESTORE_VERSION_DIALOG, restoreVersion } from '~/store/collections/collection-version-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { COLLECTION_RESTORE_VERSION_DIALOG, restoreVersion } from 'store/collections/collection-version-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
withStyles, Dialog, DialogTitle, DialogContent, DialogActions,
Button, StyleRulesCallback, WithStyles, Grid
} from '@material-ui/core';
-import { WithDialogProps, withDialog } from "~/store/dialog/with-dialog";
-import { COMPUTE_NODE_ATTRIBUTES_DIALOG } from '~/store/compute-nodes/compute-nodes-actions';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { NodeResource, NodeProperties, NodeInfo } from '~/models/node';
+import { WithDialogProps, withDialog } from "store/dialog/with-dialog";
+import { COMPUTE_NODE_ATTRIBUTES_DIALOG } from 'store/compute-nodes/compute-nodes-actions';
+import { ArvadosTheme } from 'common/custom-theme';
+import { NodeResource, NodeProperties, NodeInfo } from 'models/node';
import classnames from "classnames";
type CssRules = 'root' | 'grid';
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { COMPUTE_NODE_REMOVE_DIALOG, removeComputeNode } from '~/store/compute-nodes/compute-nodes-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { COMPUTE_NODE_REMOVE_DIALOG, removeComputeNode } from 'store/compute-nodes/compute-nodes-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import {
openApiClientAuthorizationAttributesDialog,
openApiClientAuthorizationRemoveDialog
-} from '~/store/api-client-authorizations/api-client-authorizations-actions';
-import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab';
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
+} from 'store/api-client-authorizations/api-client-authorizations-actions';
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
export const apiClientAuthorizationActionSet: ContextMenuActionSet = [[{
name: "Attributes",
ContextMenuActionSet
} from "../context-menu-action-set";
import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "~/store/favorites/favorites-actions";
+import { toggleFavorite } from "store/favorites/favorites-actions";
import {
RenameIcon,
ShareIcon,
Link,
RestoreVersionIcon,
FolderSharedIcon
-} from "~/components/icon/icon";
-import { openCollectionUpdateDialog } from "~/store/collections/collection-update-actions";
-import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
-import { openMoveCollectionDialog } from '~/store/collections/collection-move-actions';
-import { openCollectionCopyDialog } from "~/store/collections/collection-copy-actions";
-import { openWebDavS3InfoDialog } from "~/store/collections/collection-info-actions";
-import { ToggleTrashAction } from "~/views-components/context-menu/actions/trash-action";
-import { toggleCollectionTrashed } from "~/store/trash/trash-actions";
-import { openSharingDialog } from '~/store/sharing-dialog/sharing-dialog-actions';
-import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { copyToClipboardAction, openInNewTabAction } from "~/store/open-in-new-tab/open-in-new-tab.actions";
-import { openRestoreCollectionVersionDialog } from "~/store/collections/collection-version-actions";
+} from "components/icon/icon";
+import { openCollectionUpdateDialog } from "store/collections/collection-update-actions";
+import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+import { openMoveCollectionDialog } from 'store/collections/collection-move-actions';
+import { openCollectionCopyDialog } from "store/collections/collection-copy-actions";
+import { openWebDavS3InfoDialog } from "store/collections/collection-info-actions";
+import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action";
+import { toggleCollectionTrashed } from "store/trash/trash-actions";
+import { openSharingDialog } from 'store/sharing-dialog/sharing-dialog-actions';
+import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
+import { copyToClipboardAction, openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions";
+import { openRestoreCollectionVersionDialog } from "store/collections/collection-version-actions";
import { TogglePublicFavoriteAction } from "../actions/public-favorite-action";
-import { togglePublicFavorite } from "~/store/public-favorites/public-favorites-actions";
-import { publicFavoritePanelActions } from "~/store/public-favorites-panel/public-favorites-action";
+import { togglePublicFavorite } from "store/public-favorites/public-favorites-actions";
+import { publicFavoritePanelActions } from "store/public-favorites-panel/public-favorites-action";
const toggleFavoriteAction: ContextMenuAction = {
component: ToggleFavoriteAction,
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { collectionPanelFilesAction, openMultipleFilesRemoveDialog } from "~/store/collection-panel/collection-panel-files/collection-panel-files-actions";
-import { openCollectionPartialCopyDialog, openCollectionPartialCopyToSelectedCollectionDialog } from '~/store/collections/collection-partial-copy-actions';
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { collectionPanelFilesAction, openMultipleFilesRemoveDialog } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
+import { openCollectionPartialCopyDialog, openCollectionPartialCopyToSelectedCollectionDialog } from 'store/collections/collection-partial-copy-actions';
// These action sets are used on the multi-select actions button.
export const readOnlyCollectionFilesActionSet: ContextMenuActionSet = [[
// SPDX-License-Identifier: AGPL-3.0
import { ContextMenuActionSet } from "../context-menu-action-set";
-import { RemoveIcon, RenameIcon } from "~/components/icon/icon";
+import { RemoveIcon, RenameIcon } from "components/icon/icon";
import { DownloadCollectionFileAction } from "../actions/download-collection-file-action";
-import { openFileRemoveDialog, openRenameFileDialog } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
-import { CollectionFileViewerAction } from '~/views-components/context-menu/actions/collection-file-viewer-action';
+import { openFileRemoveDialog, openRenameFileDialog } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { CollectionFileViewerAction } from 'views-components/context-menu/actions/collection-file-viewer-action';
import { CollectionCopyToClipboardAction } from "../actions/collection-copy-to-clipboard-action";
export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [[
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { collectionPanelFilesAction } from "~/store/collection-panel/collection-panel-files/collection-panel-files-actions";
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { collectionPanelFilesAction } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
export const collectionFilesNotSelectedActionSet: ContextMenuActionSet = [[{
name: "Select all",
//
// SPDX-License-Identifier: AGPL-3.0
-import { openComputeNodeRemoveDialog, openComputeNodeAttributesDialog } from '~/store/compute-nodes/compute-nodes-actions';
-import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab';
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
+import { openComputeNodeRemoveDialog, openComputeNodeAttributesDialog } from 'store/compute-nodes/compute-nodes-actions';
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
export const computeNodeActionSet: ContextMenuActionSet = [[{
name: "Attributes",
import { ContextMenuActionSet } from "../context-menu-action-set";
import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "~/store/favorites/favorites-actions";
-import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
+import { toggleFavorite } from "store/favorites/favorites-actions";
+import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
export const favoriteActionSet: ContextMenuActionSet = [[{
component: ToggleFavoriteAction,
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
-import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
-import { openGroupAttributes, openRemoveGroupDialog } from "~/store/groups-panel/groups-panel-actions";
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+import { openGroupAttributes, openRemoveGroupDialog } from "store/groups-panel/groups-panel-actions";
export const groupActionSet: ContextMenuActionSet = [[{
name: "Attributes",
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
-import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
-import { openGroupMemberAttributes, openRemoveGroupMemberDialog } from '~/store/group-details-panel/group-details-panel-actions';
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+import { openGroupMemberAttributes, openRemoveGroupMemberDialog } from 'store/group-details-panel/group-details-panel-actions';
export const groupMemberActionSet: ContextMenuActionSet = [[{
name: "Attributes",
//
// SPDX-License-Identifier: AGPL-3.0
-import { openKeepServiceAttributesDialog, openKeepServiceRemoveDialog } from '~/store/keep-services/keep-services-actions';
-import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab';
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
+import { openKeepServiceAttributesDialog, openKeepServiceRemoveDialog } from 'store/keep-services/keep-services-actions';
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
export const keepServiceActionSet: ContextMenuActionSet = [[{
name: "Attributes",
//
// SPDX-License-Identifier: AGPL-3.0
-import { openLinkAttributesDialog, openLinkRemoveDialog } from '~/store/link-panel/link-panel-actions';
-import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab';
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
+import { openLinkAttributesDialog, openLinkRemoveDialog } from 'store/link-panel/link-panel-actions';
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
export const linkActionSet: ContextMenuActionSet = [[{
name: "Attributes",
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { ToggleFavoriteAction } from "~/views-components/context-menu/actions/favorite-action";
-import { toggleFavorite } from "~/store/favorites/favorites-actions";
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ToggleFavoriteAction } from "views-components/context-menu/actions/favorite-action";
+import { toggleFavorite } from "store/favorites/favorites-actions";
import {
RenameIcon, ShareIcon, MoveToIcon, CopyIcon, DetailsIcon,
AdvancedIcon, RemoveIcon, ReRunProcessIcon, LogIcon, InputIcon, CommandIcon, OutputIcon
-} from "~/components/icon/icon";
-import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
-import { navigateToProcessLogs } from '~/store/navigation/navigation-action';
-import { openMoveProcessDialog } from '~/store/processes/process-move-actions';
-import { openProcessUpdateDialog } from "~/store/processes/process-update-actions";
-import { openCopyProcessDialog } from '~/store/processes/process-copy-actions';
-import { openProcessCommandDialog } from '~/store/processes/process-command-actions';
-import { openSharingDialog } from "~/store/sharing-dialog/sharing-dialog-actions";
-import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
-import { openProcessInputDialog } from "~/store/processes/process-input-actions";
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { openRemoveProcessDialog, reRunProcess } from "~/store/processes/processes-actions";
-import { navigateToOutput } from "~/store/process-panel/process-panel-actions";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
+} from "components/icon/icon";
+import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+import { navigateToProcessLogs } from 'store/navigation/navigation-action';
+import { openMoveProcessDialog } from 'store/processes/process-move-actions';
+import { openProcessUpdateDialog } from "store/processes/process-update-actions";
+import { openCopyProcessDialog } from 'store/processes/process-copy-actions';
+import { openProcessCommandDialog } from 'store/processes/process-command-actions';
+import { openSharingDialog } from "store/sharing-dialog/sharing-dialog-actions";
+import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+import { openProcessInputDialog } from "store/processes/process-input-actions";
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
+import { openRemoveProcessDialog, reRunProcess } from "store/processes/processes-actions";
+import { navigateToOutput } from "store/process-panel/process-panel-actions";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
export const processActionSet: ContextMenuActionSet = [[
{
import { ContextMenuActionSet } from "../context-menu-action-set";
import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "~/store/favorites/favorites-actions";
-import { RenameIcon, ShareIcon, MoveToIcon, CopyIcon, DetailsIcon, RemoveIcon } from "~/components/icon/icon";
-import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
-import { openMoveProcessDialog } from '~/store/processes/process-move-actions';
-import { openProcessUpdateDialog } from "~/store/processes/process-update-actions";
-import { openCopyProcessDialog } from '~/store/processes/process-copy-actions';
-import { openSharingDialog } from "~/store/sharing-dialog/sharing-dialog-actions";
-import { openRemoveProcessDialog } from "~/store/processes/processes-actions";
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
+import { toggleFavorite } from "store/favorites/favorites-actions";
+import { RenameIcon, ShareIcon, MoveToIcon, CopyIcon, DetailsIcon, RemoveIcon } from "components/icon/icon";
+import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+import { openMoveProcessDialog } from 'store/processes/process-move-actions';
+import { openProcessUpdateDialog } from "store/processes/process-update-actions";
+import { openCopyProcessDialog } from 'store/processes/process-copy-actions';
+import { openSharingDialog } from "store/sharing-dialog/sharing-dialog-actions";
+import { openRemoveProcessDialog } from "store/processes/processes-actions";
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [[
{
import { ContextMenuActionSet } from "../context-menu-action-set";
import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "~/store/favorites/favorites-actions";
-import { RenameIcon, ShareIcon, MoveToIcon, CopyIcon, DetailsIcon, RemoveIcon } from "~/components/icon/icon";
-import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
-import { openMoveProcessDialog } from '~/store/processes/process-move-actions';
-import { openProcessUpdateDialog } from "~/store/processes/process-update-actions";
-import { openCopyProcessDialog } from '~/store/processes/process-copy-actions';
-import { openSharingDialog } from "~/store/sharing-dialog/sharing-dialog-actions";
-import { openRemoveProcessDialog } from "~/store/processes/processes-actions";
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { TogglePublicFavoriteAction } from "~/views-components/context-menu/actions/public-favorite-action";
-import { togglePublicFavorite } from "~/store/public-favorites/public-favorites-actions";
-import { publicFavoritePanelActions } from "~/store/public-favorites-panel/public-favorites-action";
+import { toggleFavorite } from "store/favorites/favorites-actions";
+import { RenameIcon, ShareIcon, MoveToIcon, CopyIcon, DetailsIcon, RemoveIcon } from "components/icon/icon";
+import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+import { openMoveProcessDialog } from 'store/processes/process-move-actions';
+import { openProcessUpdateDialog } from "store/processes/process-update-actions";
+import { openCopyProcessDialog } from 'store/processes/process-copy-actions';
+import { openSharingDialog } from "store/sharing-dialog/sharing-dialog-actions";
+import { openRemoveProcessDialog } from "store/processes/processes-actions";
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
+import { TogglePublicFavoriteAction } from "views-components/context-menu/actions/public-favorite-action";
+import { togglePublicFavorite } from "store/public-favorites/public-favorites-actions";
+import { publicFavoritePanelActions } from "store/public-favorites-panel/public-favorites-action";
export const processResourceAdminActionSet: ContextMenuActionSet = [[
{
// SPDX-License-Identifier: AGPL-3.0
import { ContextMenuActionSet } from "../context-menu-action-set";
-import { NewProjectIcon, RenameIcon, MoveToIcon, DetailsIcon, AdvancedIcon, OpenIcon, Link, FolderSharedIcon } from '~/components/icon/icon';
+import { NewProjectIcon, RenameIcon, MoveToIcon, DetailsIcon, AdvancedIcon, OpenIcon, Link, FolderSharedIcon } from 'components/icon/icon';
import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "~/store/favorites/favorites-actions";
-import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
-import { openMoveProjectDialog } from '~/store/projects/project-move-actions';
-import { openProjectCreateDialog } from '~/store/projects/project-create-actions';
-import { openProjectUpdateDialog } from '~/store/projects/project-update-actions';
-import { ToggleTrashAction } from "~/views-components/context-menu/actions/trash-action";
-import { toggleProjectTrashed } from "~/store/trash/trash-actions";
-import { ShareIcon } from '~/components/icon/icon';
-import { openSharingDialog } from "~/store/sharing-dialog/sharing-dialog-actions";
-import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { copyToClipboardAction, openInNewTabAction } from "~/store/open-in-new-tab/open-in-new-tab.actions";
-import { openWebDavS3InfoDialog } from "~/store/collections/collection-info-actions";
+import { toggleFavorite } from "store/favorites/favorites-actions";
+import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+import { openMoveProjectDialog } from 'store/projects/project-move-actions';
+import { openProjectCreateDialog } from 'store/projects/project-create-actions';
+import { openProjectUpdateDialog } from 'store/projects/project-update-actions';
+import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action";
+import { toggleProjectTrashed } from "store/trash/trash-actions";
+import { ShareIcon } from 'components/icon/icon';
+import { openSharingDialog } from "store/sharing-dialog/sharing-dialog-actions";
+import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
+import { copyToClipboardAction, openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions";
+import { openWebDavS3InfoDialog } from "store/collections/collection-info-actions";
export const readOnlyProjectActionSet: ContextMenuActionSet = [[
{
// SPDX-License-Identifier: AGPL-3.0
import { ContextMenuActionSet } from "../context-menu-action-set";
-import { TogglePublicFavoriteAction } from "~/views-components/context-menu/actions/public-favorite-action";
-import { togglePublicFavorite } from "~/store/public-favorites/public-favorites-actions";
-import { publicFavoritePanelActions } from "~/store/public-favorites-panel/public-favorites-action";
+import { TogglePublicFavoriteAction } from "views-components/context-menu/actions/public-favorite-action";
+import { togglePublicFavorite } from "store/public-favorites/public-favorites-actions";
+import { publicFavoritePanelActions } from "store/public-favorites-panel/public-favorites-action";
-import { projectActionSet, filterGroupActionSet } from "~/views-components/context-menu/action-sets/project-action-set";
+import { projectActionSet, filterGroupActionSet } from "views-components/context-menu/action-sets/project-action-set";
export const projectAdminActionSet: ContextMenuActionSet = [[
...projectActionSet.reduce((prev, next) => prev.concat(next), []),
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, ShareIcon, AttributesIcon } from "~/components/icon/icon";
-import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
-import { openRepositoryAttributes, openRemoveRepositoryDialog } from "~/store/repositories/repositories-actions";
-import { openSharingDialog } from "~/store/sharing-dialog/sharing-dialog-actions";
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, ShareIcon, AttributesIcon } from "components/icon/icon";
+import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+import { openRepositoryAttributes, openRemoveRepositoryDialog } from "store/repositories/repositories-actions";
+import { openSharingDialog } from "store/sharing-dialog/sharing-dialog-actions";
export const repositoryActionSet: ContextMenuActionSet = [[{
name: "Attributes",
import { ContextMenuActionSet } from "../context-menu-action-set";
import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "~/store/favorites/favorites-actions";
+import { toggleFavorite } from "store/favorites/favorites-actions";
export const resourceActionSet: ContextMenuActionSet = [[{
component: ToggleFavoriteAction,
// SPDX-License-Identifier: AGPL-3.0
import { ContextMenuActionSet } from "../context-menu-action-set";
-import { openCollectionCreateDialog } from '~/store/collections/collection-create-actions';
-import { NewProjectIcon, CollectionIcon } from "~/components/icon/icon";
-import { openProjectCreateDialog } from '~/store/projects/project-create-actions';
+import { openCollectionCreateDialog } from 'store/collections/collection-create-actions';
+import { NewProjectIcon, CollectionIcon } from "components/icon/icon";
+import { openProjectCreateDialog } from 'store/projects/project-create-actions';
export const rootProjectActionSet: ContextMenuActionSet = [[
{
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
-import { openSshKeyRemoveDialog, openSshKeyAttributesDialog } from '~/store/auth/auth-action-ssh';
-import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab';
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { openSshKeyRemoveDialog, openSshKeyAttributesDialog } from 'store/auth/auth-action-ssh';
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
export const sshKeyActionSet: ContextMenuActionSet = [[{
name: "Attributes",
// SPDX-License-Identifier: AGPL-3.0
import { ContextMenuActionSet } from "../context-menu-action-set";
-import { ToggleTrashAction } from "~/views-components/context-menu/actions/trash-action";
-import { toggleTrashed } from "~/store/trash/trash-actions";
+import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action";
+import { toggleTrashed } from "store/trash/trash-actions";
export const trashActionSet: ContextMenuActionSet = [[
{
// SPDX-License-Identifier: AGPL-3.0
import { ContextMenuActionSet } from "../context-menu-action-set";
-import { DetailsIcon, ProvenanceGraphIcon, AdvancedIcon, RestoreFromTrashIcon } from '~/components/icon/icon';
-import { toggleCollectionTrashed } from "~/store/trash/trash-actions";
-import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
+import { DetailsIcon, ProvenanceGraphIcon, AdvancedIcon, RestoreFromTrashIcon } from 'components/icon/icon';
+import { toggleCollectionTrashed } from "store/trash/trash-actions";
+import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
export const trashedCollectionActionSet: ContextMenuActionSet = [[
{
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, ProjectIcon, AttributesIcon } from "~/components/icon/icon";
-import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab';
-import { openUserAttributes, openUserProjects } from "~/store/users/users-actions";
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, ProjectIcon, AttributesIcon } from "components/icon/icon";
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { openUserAttributes, openUserProjects } from "store/users/users-actions";
export const userActionSet: ContextMenuActionSet = [[{
name: "Attributes",
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "~/components/icon/icon";
-import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab';
-import { openVirtualMachineAttributes, openRemoveVirtualMachineDialog } from "~/store/virtual-machines/virtual-machines-actions";
+import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { openVirtualMachineAttributes, openRemoveVirtualMachineDialog } from "store/virtual-machines/virtual-machines-actions";
export const virtualMachineActionSet: ContextMenuActionSet = [[{
name: "Attributes",
import { connect } from "react-redux";
import { RootState } from "../../../store/store";
-import { getNodeValue } from "~/models/tree";
-import { ContextMenuKind } from '~/views-components/context-menu/context-menu';
+import { getNodeValue } from "models/tree";
+import { ContextMenuKind } from 'views-components/context-menu/context-menu';
import { CopyToClipboardAction } from "./copy-to-clipboard-action";
const mapStateToProps = (state: RootState) => {
import { connect } from "react-redux";
import { RootState } from "../../../store/store";
-import { FileViewerAction } from '~/views-components/context-menu/actions/file-viewer-action';
-import { getNodeValue } from "~/models/tree";
-import { ContextMenuKind } from '~/views-components/context-menu/context-menu';
+import { FileViewerAction } from 'views-components/context-menu/actions/file-viewer-action';
+import { getNodeValue } from "models/tree";
+import { ContextMenuKind } from 'views-components/context-menu/context-menu';
import { getInlineFileUrl, sanitizeToken } from "./helpers";
const mapStateToProps = (state: RootState) => {
import * as React from "react";
import * as copy from 'copy-to-clipboard';
import { ListItemIcon, ListItemText, ListItem } from "@material-ui/core";
-import { Link } from "~/components/icon/icon";
+import { Link } from "components/icon/icon";
import { getClipboardUrl } from "./helpers";
export const CopyToClipboardAction = (props: { href?: any, download?: any, onClick?: () => void, kind?: string, currentCollectionUuid?: string; }) => {
import { DownloadAction } from "./download-action";
import { getNodeValue } from "../../../models/tree";
import { ContextMenuKind } from '../context-menu';
-import { filterCollectionFilesBySelection } from "~/store/collection-panel/collection-panel-files/collection-panel-files-state";
+import { filterCollectionFilesBySelection } from "store/collection-panel/collection-panel-files/collection-panel-files-state";
import { sanitizeToken } from "./helpers";
const mapStateToProps = (state: RootState) => {
import * as React from "react";
import { ListItemIcon, ListItemText, ListItem } from "@material-ui/core";
-import { AddFavoriteIcon, RemoveFavoriteIcon } from "~/components/icon/icon";
+import { AddFavoriteIcon, RemoveFavoriteIcon } from "components/icon/icon";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
const mapStateToProps = (state: RootState, props: { onClick: () => {} }) => ({
isFavorite: state.contextMenu.resource !== undefined && state.favorites[state.contextMenu.resource.uuid] === true,
import * as React from "react";
import { ListItemIcon, ListItemText, ListItem } from "@material-ui/core";
-import { OpenIcon } from "~/components/icon/icon";
+import { OpenIcon } from "components/icon/icon";
export const FileViewerAction = (props: any) => {
return props.href
import * as React from "react";
import { ListItemText, ListItem, ListItemIcon, Icon } from "@material-ui/core";
-import { RootState } from '~/store/store';
-import { getNodeValue } from '~/models/tree';
-import { CollectionDirectory, CollectionFile, CollectionFileType } from '~/models/collection-file';
-import { FileViewerList, FileViewer } from '~/models/file-viewers-config';
-import { getFileViewers } from '~/store/file-viewers/file-viewers-selectors';
+import { RootState } from 'store/store';
+import { getNodeValue } from 'models/tree';
+import { CollectionDirectory, CollectionFile, CollectionFileType } from 'models/collection-file';
+import { FileViewerList, FileViewer } from 'models/file-viewers-config';
+import { getFileViewers } from 'store/file-viewers/file-viewers-selectors';
import { connect } from 'react-redux';
-import { OpenIcon } from '~/components/icon/icon';
+import { OpenIcon } from 'components/icon/icon';
interface FileViewerActionProps {
fileUrl: string;
//
// SPDX-License-Identifier: AGPL-3.0
-import { extractUuidKind, ResourceKind } from "~/models/resource";
+import { extractUuidKind, ResourceKind } from "models/resource";
export const sanitizeToken = (href: string, tokenAsQueryParam = true): string => {
const [prefix, suffix] = href.split('/t=');
import * as React from "react";
import { ListItemIcon, ListItemText, ListItem } from "@material-ui/core";
-import { PublicFavoriteIcon } from "~/components/icon/icon";
+import { PublicFavoriteIcon } from "components/icon/icon";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
const mapStateToProps = (state: RootState, props: { onClick: () => {} }) => ({
isPublicFavorite: state.contextMenu.resource !== undefined && state.publicFavorites[state.contextMenu.resource.uuid] === true,
import * as React from "react";
import { ListItemIcon, ListItemText, ListItem } from "@material-ui/core";
-import { RestoreFromTrashIcon, TrashIcon } from "~/components/icon/icon";
+import { RestoreFromTrashIcon, TrashIcon } from "components/icon/icon";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
const mapStateToProps = (state: RootState, props: { onClick: () => {} }) => ({
isTrashed: state.contextMenu.resource && state.contextMenu.resource.isTrashed,
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from "redux";
-import { ContextMenuItem } from "~/components/context-menu/context-menu";
-import { ContextMenuResource } from "~/store/context-menu/context-menu-actions";
+import { ContextMenuItem } from "components/context-menu/context-menu";
+import { ContextMenuResource } from "store/context-menu/context-menu-actions";
export interface ContextMenuAction extends ContextMenuItem {
execute(dispatch: Dispatch, resource: ContextMenuResource): void;
// SPDX-License-Identifier: AGPL-3.0
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
-import { contextMenuActions, ContextMenuResource } from "~/store/context-menu/context-menu-actions";
-import { ContextMenu as ContextMenuComponent, ContextMenuProps, ContextMenuItem } from "~/components/context-menu/context-menu";
-import { createAnchorAt } from "~/components/popover/helpers";
+import { RootState } from "store/store";
+import { contextMenuActions, ContextMenuResource } from "store/context-menu/context-menu-actions";
+import { ContextMenu as ContextMenuComponent, ContextMenuProps, ContextMenuItem } from "components/context-menu/context-menu";
+import { createAnchorAt } from "components/popover/helpers";
import { ContextMenuActionSet, ContextMenuAction } from "./context-menu-action-set";
import { Dispatch } from "redux";
import { memoize } from 'lodash';
-import { sortByProperty } from "~/common/array-utils";
+import { sortByProperty } from "common/array-utils";
type DataProps = Pick<ContextMenuProps, "anchorEl" | "items" | "open"> & { resource?: ContextMenuResource };
const mapStateToProps = (state: RootState): DataProps => {
const { open, position, resource } = state.contextMenu;
// SPDX-License-Identifier: AGPL-3.0
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
-import { DataExplorer as DataExplorerComponent } from "~/components/data-explorer/data-explorer";
-import { getDataExplorer } from "~/store/data-explorer/data-explorer-reducer";
+import { RootState } from "store/store";
+import { DataExplorer as DataExplorerComponent } from "components/data-explorer/data-explorer";
+import { getDataExplorer } from "store/data-explorer/data-explorer-reducer";
import { Dispatch } from "redux";
-import { dataExplorerActions } from "~/store/data-explorer/data-explorer-action";
-import { DataColumn } from "~/components/data-table/data-column";
-import { DataColumns } from "~/components/data-table/data-table";
-import { DataTableFilters } from '~/components/data-table-filters/data-table-filters-tree';
+import { dataExplorerActions } from "store/data-explorer/data-explorer-action";
+import { DataColumn } from "components/data-table/data-column";
+import { DataColumns } from "components/data-table/data-table";
+import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree';
interface Props {
id: string;
import * as React from 'react';
import { Grid, Typography, withStyles, Tooltip, IconButton, Checkbox } from '@material-ui/core';
import { FavoriteStar, PublicFavoriteStar } from '../favorite-star/favorite-star';
-import { Resource, ResourceKind, TrashableResource } from '~/models/resource';
-import { ProjectIcon, FilterGroupIcon, CollectionIcon, ProcessIcon, DefaultIcon, ShareIcon, CollectionOldVersionIcon, WorkflowIcon } from '~/components/icon/icon';
-import { formatDate, formatFileSize, formatTime } from '~/common/formatters';
-import { resourceLabel } from '~/common/labels';
+import { Resource, ResourceKind, TrashableResource } from 'models/resource';
+import { ProjectIcon, FilterGroupIcon, CollectionIcon, ProcessIcon, DefaultIcon, ShareIcon, CollectionOldVersionIcon, WorkflowIcon } from 'components/icon/icon';
+import { formatDate, formatFileSize, formatTime } from 'common/formatters';
+import { resourceLabel } from 'common/labels';
import { connect, DispatchProp } from 'react-redux';
-import { RootState } from '~/store/store';
-import { getResource } from '~/store/resources/resources';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
-import { getProcess, Process, getProcessStatus, getProcessStatusColor, getProcessRuntime } from '~/store/processes/process';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { RootState } from 'store/store';
+import { getResource } from 'store/resources/resources';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
+import { getProcess, Process, getProcessStatus, getProcessStatusColor, getProcessRuntime } from 'store/processes/process';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose, Dispatch } from 'redux';
-import { WorkflowResource } from '~/models/workflow';
-import { ResourceStatus as WorkflowStatus } from '~/views/workflow-panel/workflow-panel-view';
-import { getUuidPrefix, openRunProcess } from '~/store/workflow-panel/workflow-panel-actions';
-import { openSharingDialog } from '~/store/sharing-dialog/sharing-dialog-actions';
-import { getUserFullname, User, UserResource } from '~/models/user';
-import { toggleIsActive, toggleIsAdmin } from '~/store/users/users-actions';
-import { LinkResource } from '~/models/link';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { withResourceData } from '~/views-components/data-explorer/with-resources';
-import { CollectionResource } from '~/models/collection';
-import { IllegalNamingWarning } from '~/components/warning/warning';
-import { loadResource } from '~/store/resources/resources-actions';
-import { GroupClass } from '~/models/group';
+import { WorkflowResource } from 'models/workflow';
+import { ResourceStatus as WorkflowStatus } from 'views/workflow-panel/workflow-panel-view';
+import { getUuidPrefix, openRunProcess } from 'store/workflow-panel/workflow-panel-actions';
+import { openSharingDialog } from 'store/sharing-dialog/sharing-dialog-actions';
+import { getUserFullname, User, UserResource } from 'models/user';
+import { toggleIsActive, toggleIsAdmin } from 'store/users/users-actions';
+import { LinkResource } from 'models/link';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { withResourceData } from 'views-components/data-explorer/with-resources';
+import { CollectionResource } from 'models/collection';
+import { IllegalNamingWarning } from 'components/warning/warning';
+import { loadResource } from 'store/resources/resources-actions';
+import { GroupClass } from 'models/group';
const renderName = (dispatch: Dispatch, item: GroupContentsResource) =>
<Grid container alignItems="center" wrap="nowrap" spacing={16}>
import * as React from 'react';
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
-import { getResource } from '~/store/resources/resources';
-import { Resource } from '~/models/resource';
+import { RootState } from 'store/store';
+import { getResource } from 'store/resources/resources';
+import { Resource } from 'models/resource';
interface WithResourceProps {
resource?: Resource;
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { CollectionIcon } from '~/components/icon/icon';
-import { CollectionResource } from '~/models/collection';
+import { CollectionIcon } from 'components/icon/icon';
+import { CollectionResource } from 'models/collection';
import { DetailsData } from "./details-data";
-import { CollectionDetailsAttributes } from '~/views/collection-panel/collection-panel';
-import { RootState } from '~/store/store';
-import { filterResources, getResource } from '~/store/resources/resources';
+import { CollectionDetailsAttributes } from 'views/collection-panel/collection-panel';
+import { RootState } from 'store/store';
+import { filterResources, getResource } from 'store/resources/resources';
import { connect } from 'react-redux';
import { Grid, ListItem, StyleRulesCallback, Typography, withStyles, WithStyles } from '@material-ui/core';
-import { formatDate, formatFileSize } from '~/common/formatters';
+import { formatDate, formatFileSize } from 'common/formatters';
import { Dispatch } from 'redux';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { openContextMenu, resourceUuidToContextMenuKind } from '~/store/context-menu/context-menu-actions';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { openContextMenu, resourceUuidToContextMenuKind } from 'store/context-menu/context-menu-actions';
export type CssRules = 'versionBrowserHeader' | 'versionBrowserItem';
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { DetailsResource } from "~/models/details";
+import { DetailsResource } from "models/details";
export abstract class DetailsData<T extends DetailsResource = DetailsResource> {
constructor(protected item: T) { }
import { IconButton, Tabs, Tab, Typography, Grid, Tooltip } from '@material-ui/core';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
import { Transition } from 'react-transition-group';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import classnames from "classnames";
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
-import { CloseIcon } from '~/components/icon/icon';
-import { EmptyResource } from '~/models/empty';
+import { RootState } from 'store/store';
+import { CloseIcon } from 'components/icon/icon';
+import { EmptyResource } from 'models/empty';
import { Dispatch } from "redux";
-import { ResourceKind } from "~/models/resource";
+import { ResourceKind } from "models/resource";
import { ProjectDetails } from "./project-details";
import { CollectionDetails } from "./collection-details";
import { ProcessDetails } from "./process-details";
import { EmptyDetails } from "./empty-details";
import { DetailsData } from "./details-data";
-import { DetailsResource } from "~/models/details";
-import { getResource } from '~/store/resources/resources';
-import { toggleDetailsPanel, SLIDE_TIMEOUT, openDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { FileDetails } from '~/views-components/details-panel/file-details';
-import { getNode } from '~/models/tree';
+import { DetailsResource } from "models/details";
+import { getResource } from 'store/resources/resources';
+import { toggleDetailsPanel, SLIDE_TIMEOUT, openDetailsPanel } from 'store/details-panel/details-panel-action';
+import { FileDetails } from 'views-components/details-panel/file-details';
+import { getNode } from 'models/tree';
type CssRules = 'root' | 'container' | 'opened' | 'headerContainer' | 'headerIcon' | 'tabContainer';
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { DefaultIcon, ProjectsIcon } from '~/components/icon/icon';
-import { EmptyResource } from '~/models/empty';
+import { DefaultIcon, ProjectsIcon } from 'components/icon/icon';
+import { EmptyResource } from 'models/empty';
import { DetailsData } from "./details-data";
-import { DefaultView } from '~/components/default-view/default-view';
+import { DefaultView } from 'components/default-view/default-view';
export class EmptyDetails extends DetailsData<EmptyResource> {
getIcon(className?: string) {
import * as React from 'react';
import { DetailsData } from "./details-data";
-import { CollectionFile, CollectionDirectory, CollectionFileType } from '~/models/collection-file';
-import { getIcon } from '~/components/file-tree/file-tree-item';
-import { DetailsAttribute } from '~/components/details-attribute/details-attribute';
-import { formatFileSize } from '~/common/formatters';
-import { FileThumbnail } from '~/components/file-tree/file-thumbnail';
+import { CollectionFile, CollectionDirectory, CollectionFileType } from 'models/collection-file';
+import { getIcon } from 'components/file-tree/file-tree-item';
+import { DetailsAttribute } from 'components/details-attribute/details-attribute';
+import { formatFileSize } from 'common/formatters';
+import { FileThumbnail } from 'components/file-tree/file-thumbnail';
import isImage from 'is-image';
export class FileDetails extends DetailsData<CollectionFile | CollectionDirectory> {
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { ProcessIcon } from '~/components/icon/icon';
-import { ProcessResource } from '~/models/process';
-import { formatDate } from '~/common/formatters';
-import { ResourceKind } from '~/models/resource';
-import { resourceLabel } from '~/common/labels';
+import { ProcessIcon } from 'components/icon/icon';
+import { ProcessResource } from 'models/process';
+import { formatDate } from 'common/formatters';
+import { ResourceKind } from 'models/resource';
+import { resourceLabel } from 'common/labels';
import { DetailsData } from "./details-data";
-import { DetailsAttribute } from "~/components/details-attribute/details-attribute";
+import { DetailsAttribute } from "components/details-attribute/details-attribute";
import { ResourceOwnerWithName } from '../data-explorer/renderers';
export class ProcessDetails extends DetailsData<ProcessResource> {
import * as React from 'react';
import { connect } from 'react-redux';
-import { openProjectPropertiesDialog } from '~/store/details-panel/details-panel-action';
-import { ProjectIcon, RenameIcon, FilterGroupIcon } from '~/components/icon/icon';
-import { ProjectResource } from '~/models/project';
-import { formatDate } from '~/common/formatters';
-import { ResourceKind } from '~/models/resource';
-import { resourceLabel } from '~/common/labels';
+import { openProjectPropertiesDialog } from 'store/details-panel/details-panel-action';
+import { ProjectIcon, RenameIcon, FilterGroupIcon } from 'components/icon/icon';
+import { ProjectResource } from 'models/project';
+import { formatDate } from 'common/formatters';
+import { ResourceKind } from 'models/resource';
+import { resourceLabel } from 'common/labels';
import { DetailsData } from "./details-data";
-import { DetailsAttribute } from "~/components/details-attribute/details-attribute";
-import { RichTextEditorLink } from '~/components/rich-text-editor-link/rich-text-editor-link';
+import { DetailsAttribute } from "components/details-attribute/details-attribute";
+import { RichTextEditorLink } from 'components/rich-text-editor-link/rich-text-editor-link';
import { withStyles, StyleRulesCallback, WithStyles } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { Dispatch } from 'redux';
import { getPropertyChip } from '../resource-properties-form/property-chip';
import { ResourceOwnerWithName } from '../data-explorer/renderers';
-import { GroupClass } from "~/models/group";
+import { GroupClass } from "models/group";
export class ProjectDetails extends DetailsData<ProjectResource> {
getIcon(className?: string) {
import * as React from "react";
import { memoize } from "lodash/fp";
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { CollectionNameField, CollectionDescriptionField, CollectionProjectPickerField } from '~/views-components/form-fields/collection-form-fields';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { CollectionNameField, CollectionDescriptionField, CollectionProjectPickerField } from 'views-components/form-fields/collection-form-fields';
+import { WithDialogProps } from 'store/dialog/with-dialog';
import { InjectedFormProps } from 'redux-form';
-import { CollectionPartialCopyFormData } from '~/store/collections/collection-partial-copy-actions';
-import { PickerIdProp } from "~/store/tree-picker/picker-id";
+import { CollectionPartialCopyFormData } from 'store/collections/collection-partial-copy-actions';
+import { PickerIdProp } from "store/tree-picker/picker-id";
type DialogCollectionPartialCopyProps = WithDialogProps<string> & InjectedFormProps<CollectionPartialCopyFormData>;
import * as React from "react";
import { memoize } from 'lodash/fp';
import { InjectedFormProps, Field } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { ProjectTreePickerField } from '~/views-components/projects-tree-picker/tree-picker-field';
-import { COPY_NAME_VALIDATION, COPY_FILE_VALIDATION } from '~/validators/validators';
-import { TextField } from "~/components/text-field/text-field";
-import { CopyFormDialogData } from '~/store/copy-dialog/copy-dialog';
-import { PickerIdProp } from '~/store/tree-picker/picker-id';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { ProjectTreePickerField } from 'views-components/projects-tree-picker/tree-picker-field';
+import { COPY_NAME_VALIDATION, COPY_FILE_VALIDATION } from 'validators/validators';
+import { TextField } from "components/text-field/text-field";
+import { CopyFormDialogData } from 'store/copy-dialog/copy-dialog';
+import { PickerIdProp } from 'store/tree-picker/picker-id';
type CopyFormDialogProps = WithDialogProps<string> & InjectedFormProps<CopyFormDialogData>;
import * as React from "react";
import { memoize } from "lodash/fp";
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { WithDialogProps } from 'store/dialog/with-dialog';
import { InjectedFormProps } from 'redux-form';
-import { CollectionPartialCopyToSelectedCollectionFormData } from '~/store/collections/collection-partial-copy-actions';
-import { PickerIdProp } from "~/store/tree-picker/picker-id";
-import { CollectionPickerField } from '~/views-components/form-fields/collection-form-fields';
+import { CollectionPartialCopyToSelectedCollectionFormData } from 'store/collections/collection-partial-copy-actions';
+import { PickerIdProp } from "store/tree-picker/picker-id";
+import { CollectionPickerField } from 'views-components/form-fields/collection-form-fields';
type DialogCollectionPartialCopyProps = WithDialogProps<string> & InjectedFormProps<CollectionPartialCopyToSelectedCollectionFormData>;
import * as React from 'react';
import { InjectedFormProps, Field } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { CollectionCreateFormDialogData } from '~/store/collections/collection-create-actions';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { CollectionNameField, CollectionDescriptionField } from '~/views-components/form-fields/collection-form-fields';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { CollectionCreateFormDialogData } from 'store/collections/collection-create-actions';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { CollectionNameField, CollectionDescriptionField } from 'views-components/form-fields/collection-form-fields';
import { FileUploaderField } from '../file-uploader/file-uploader';
import { ResourceParentField } from '../form-fields/resource-form-fields';
import * as React from 'react';
import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { ProjectCreateFormDialogData } from '~/store/projects/project-create-actions';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { ProjectNameField, ProjectDescriptionField } from '~/views-components/form-fields/project-form-fields';
-import { CreateProjectPropertiesForm } from '~/views-components/project-properties/create-project-properties-form';
-import { CreateProjectPropertiesList } from '~/views-components/project-properties/create-project-properties-list';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { ProjectCreateFormDialogData } from 'store/projects/project-create-actions';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { ProjectNameField, ProjectDescriptionField } from 'views-components/form-fields/project-form-fields';
+import { CreateProjectPropertiesForm } from 'views-components/project-properties/create-project-properties-form';
+import { CreateProjectPropertiesList } from 'views-components/project-properties/create-project-properties-list';
import { ResourceParentField } from '../form-fields/resource-form-fields';
type DialogProjectProps = WithDialogProps<{}> & InjectedFormProps<ProjectCreateFormDialogData>;
import * as React from 'react';
import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { RepositoryNameField } from '~/views-components/form-fields/repository-form-fields';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { RepositoryNameField } from 'views-components/form-fields/repository-form-fields';
type DialogRepositoryProps = WithDialogProps<{}> & InjectedFormProps<any>;
import * as React from 'react';
import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { SshKeyPublicField, SshKeyNameField } from '~/views-components/form-fields/ssh-key-form-fields';
-import { SshKeyCreateFormDialogData } from '~/store/auth/auth-action-ssh';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { SshKeyPublicField, SshKeyNameField } from 'views-components/form-fields/ssh-key-form-fields';
+import { SshKeyCreateFormDialogData } from 'store/auth/auth-action-ssh';
type DialogSshKeyProps = WithDialogProps<{}> & InjectedFormProps<SshKeyCreateFormDialogData>;
import * as React from 'react';
import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { UserEmailField, UserVirtualMachineField, UserGroupsVirtualMachineField } from '~/views-components/form-fields/user-form-fields';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { UserEmailField, UserVirtualMachineField, UserGroupsVirtualMachineField } from 'views-components/form-fields/user-form-fields';
export type DialogUserProps = WithDialogProps<{}> & InjectedFormProps<any>;
import * as React from 'react';
import { compose } from "redux";
import { reduxForm, InjectedFormProps, WrappedFieldArrayProps, FieldArray } from 'redux-form';
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { ParticipantSelect, Participant } from '~/views-components/sharing-dialog/participant-select';
-import { ADD_GROUP_MEMBERS_DIALOG, ADD_GROUP_MEMBERS_FORM, AddGroupMembersFormData, ADD_GROUP_MEMBERS_USERS_FIELD_NAME, addGroupMembers } from '~/store/group-details-panel/group-details-panel-actions';
-import { minLength } from '~/validators/min-length';
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { ParticipantSelect, Participant } from 'views-components/sharing-dialog/participant-select';
+import { ADD_GROUP_MEMBERS_DIALOG, ADD_GROUP_MEMBERS_FORM, AddGroupMembersFormData, ADD_GROUP_MEMBERS_USERS_FIELD_NAME, addGroupMembers } from 'store/group-details-panel/group-details-panel-actions';
+import { minLength } from 'validators/min-length';
export const AddGroupMembersDialog = compose(
withDialog(ADD_GROUP_MEMBERS_DIALOG),
// SPDX-License-Identifier: AGPL-3.0
import { compose } from "redux";
-import { withDialog } from "~/store/dialog/with-dialog";
+import { withDialog } from "store/dialog/with-dialog";
import { reduxForm } from 'redux-form';
-import { COLLECTION_COPY_FORM_NAME } from '~/store/collections/collection-copy-actions';
-import { DialogCopy } from "~/views-components/dialog-copy/dialog-copy";
-import { copyCollection } from '~/store/workbench/workbench-actions';
-import { CopyFormDialogData } from '~/store/copy-dialog/copy-dialog';
-import { pickerId } from '~/store/tree-picker/picker-id';
+import { COLLECTION_COPY_FORM_NAME } from 'store/collections/collection-copy-actions';
+import { DialogCopy } from "views-components/dialog-copy/dialog-copy";
+import { copyCollection } from 'store/workbench/workbench-actions';
+import { CopyFormDialogData } from 'store/copy-dialog/copy-dialog';
+import { pickerId } from 'store/tree-picker/picker-id';
export const CopyCollectionDialog = compose(
withDialog(COLLECTION_COPY_FORM_NAME),
// SPDX-License-Identifier: AGPL-3.0
import { compose } from "redux";
-import { withDialog } from "~/store/dialog/with-dialog";
+import { withDialog } from "store/dialog/with-dialog";
import { reduxForm } from 'redux-form';
-import { PROCESS_COPY_FORM_NAME } from '~/store/processes/process-copy-actions';
-import { DialogCopy } from "~/views-components/dialog-copy/dialog-copy";
-import { copyProcess } from '~/store/workbench/workbench-actions';
-import { CopyFormDialogData } from '~/store/copy-dialog/copy-dialog';
-import { pickerId } from "~/store/tree-picker/picker-id";
+import { PROCESS_COPY_FORM_NAME } from 'store/processes/process-copy-actions';
+import { DialogCopy } from "views-components/dialog-copy/dialog-copy";
+import { copyProcess } from 'store/workbench/workbench-actions';
+import { CopyFormDialogData } from 'store/copy-dialog/copy-dialog';
+import { pickerId } from "store/tree-picker/picker-id";
export const CopyProcessDialog = compose(
withDialog(PROCESS_COPY_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { COLLECTION_CREATE_FORM_NAME, CollectionCreateFormDialogData } from '~/store/collections/collection-create-actions';
-import { DialogCollectionCreate } from "~/views-components/dialog-create/dialog-collection-create";
-import { createCollection } from "~/store/workbench/workbench-actions";
+import { withDialog } from "store/dialog/with-dialog";
+import { COLLECTION_CREATE_FORM_NAME, CollectionCreateFormDialogData } from 'store/collections/collection-create-actions';
+import { DialogCollectionCreate } from "views-components/dialog-create/dialog-collection-create";
+import { createCollection } from "store/workbench/workbench-actions";
export const CreateCollectionDialog = compose(
withDialog(COLLECTION_CREATE_FORM_NAME),
import * as React from 'react';
import { compose } from "redux";
import { reduxForm, InjectedFormProps, Field, WrappedFieldArrayProps, FieldArray } from 'redux-form';
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { CREATE_GROUP_DIALOG, CREATE_GROUP_FORM, createGroup, CreateGroupFormData, CREATE_GROUP_NAME_FIELD_NAME, CREATE_GROUP_USERS_FIELD_NAME } from '~/store/groups-panel/groups-panel-actions';
-import { TextField } from '~/components/text-field/text-field';
-import { maxLength } from '~/validators/max-length';
-import { require } from '~/validators/require';
-import { ParticipantSelect, Participant } from '~/views-components/sharing-dialog/participant-select';
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { CREATE_GROUP_DIALOG, CREATE_GROUP_FORM, createGroup, CreateGroupFormData, CREATE_GROUP_NAME_FIELD_NAME, CREATE_GROUP_USERS_FIELD_NAME } from 'store/groups-panel/groups-panel-actions';
+import { TextField } from 'components/text-field/text-field';
+import { maxLength } from 'validators/max-length';
+import { require } from 'validators/require';
+import { ParticipantSelect, Participant } from 'views-components/sharing-dialog/participant-select';
export const CreateGroupDialog = compose(
withDialog(CREATE_GROUP_DIALOG),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { PROJECT_CREATE_FORM_NAME, ProjectCreateFormDialogData } from '~/store/projects/project-create-actions';
-import { DialogProjectCreate } from '~/views-components/dialog-create/dialog-project-create';
-import { createProject } from "~/store/workbench/workbench-actions";
+import { withDialog } from "store/dialog/with-dialog";
+import { PROJECT_CREATE_FORM_NAME, ProjectCreateFormDialogData } from 'store/projects/project-create-actions';
+import { DialogProjectCreate } from 'views-components/dialog-create/dialog-project-create';
+import { createProject } from "store/workbench/workbench-actions";
export const CreateProjectDialog = compose(
withDialog(PROJECT_CREATE_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { createRepository, REPOSITORY_CREATE_FORM_NAME } from "~/store/repositories/repositories-actions";
-import { DialogRepositoryCreate } from "~/views-components/dialog-create/dialog-repository-create";
+import { withDialog } from "store/dialog/with-dialog";
+import { createRepository, REPOSITORY_CREATE_FORM_NAME } from "store/repositories/repositories-actions";
+import { DialogRepositoryCreate } from "views-components/dialog-create/dialog-repository-create";
export const CreateRepositoryDialog = compose(
withDialog(REPOSITORY_CREATE_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
+import { withDialog } from "store/dialog/with-dialog";
import {
SSH_KEY_CREATE_FORM_NAME,
createSshKey,
SshKeyCreateFormDialogData
-} from '~/store/auth/auth-action-ssh';
-import { DialogSshKeyCreate } from '~/views-components/dialog-create/dialog-ssh-key-create';
+} from 'store/auth/auth-action-ssh';
+import { DialogSshKeyCreate } from 'views-components/dialog-create/dialog-ssh-key-create';
export const CreateSshKeyDialog = compose(
withDialog(SSH_KEY_CREATE_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { USER_CREATE_FORM_NAME, createUser, UserCreateFormDialogData } from "~/store/users/users-actions";
-import { UserRepositoryCreate } from "~/views-components/dialog-create/dialog-user-create";
+import { withDialog } from "store/dialog/with-dialog";
+import { USER_CREATE_FORM_NAME, createUser, UserCreateFormDialogData } from "store/users/users-actions";
+import { UserRepositoryCreate } from "views-components/dialog-create/dialog-user-create";
export const CreateUserDialog = compose(
withDialog(USER_CREATE_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { CollectionCreateFormDialogData } from '~/store/collections/collection-create-actions';
-import { COLLECTION_UPLOAD_FILES_DIALOG, submitCollectionFiles } from '~/store/collections/collection-upload-actions';
-import { DialogCollectionFilesUpload } from '~/views-components/dialog-upload/dialog-collection-files-upload';
+import { withDialog } from "store/dialog/with-dialog";
+import { CollectionCreateFormDialogData } from 'store/collections/collection-create-actions';
+import { COLLECTION_UPLOAD_FILES_DIALOG, submitCollectionFiles } from 'store/collections/collection-upload-actions';
+import { DialogCollectionFilesUpload } from 'views-components/dialog-upload/dialog-collection-files-upload';
export const FilesUploadCollectionDialog = compose(
withDialog(COLLECTION_UPLOAD_FILES_DIALOG),
// SPDX-License-Identifier: AGPL-3.0
import { compose } from "redux";
-import { withDialog } from "~/store/dialog/with-dialog";
+import { withDialog } from "store/dialog/with-dialog";
import { reduxForm } from 'redux-form';
-import { DialogMoveTo } from '~/views-components/dialog-move/dialog-move-to';
-import { COLLECTION_MOVE_FORM_NAME } from '~/store/collections/collection-move-actions';
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { moveCollection } from '~/store/workbench/workbench-actions';
-import { pickerId } from '~/store/tree-picker/picker-id';
+import { DialogMoveTo } from 'views-components/dialog-move/dialog-move-to';
+import { COLLECTION_MOVE_FORM_NAME } from 'store/collections/collection-move-actions';
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { moveCollection } from 'store/workbench/workbench-actions';
+import { pickerId } from 'store/tree-picker/picker-id';
export const MoveCollectionDialog = compose(
withDialog(COLLECTION_MOVE_FORM_NAME),
// SPDX-License-Identifier: AGPL-3.0
import { compose } from 'redux';
-import { withDialog } from "~/store/dialog/with-dialog";
+import { withDialog } from "store/dialog/with-dialog";
import { reduxForm } from 'redux-form';
-import { PROCESS_MOVE_FORM_NAME } from '~/store/processes/process-move-actions';
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { DialogMoveTo } from '~/views-components/dialog-move/dialog-move-to';
-import { moveProcess } from '~/store/workbench/workbench-actions';
-import { pickerId } from '~/store/tree-picker/picker-id';
+import { PROCESS_MOVE_FORM_NAME } from 'store/processes/process-move-actions';
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { DialogMoveTo } from 'views-components/dialog-move/dialog-move-to';
+import { moveProcess } from 'store/workbench/workbench-actions';
+import { pickerId } from 'store/tree-picker/picker-id';
export const MoveProcessDialog = compose(
withDialog(PROCESS_MOVE_FORM_NAME),
// SPDX-License-Identifier: AGPL-3.0
import { compose } from "redux";
-import { withDialog } from "~/store/dialog/with-dialog";
+import { withDialog } from "store/dialog/with-dialog";
import { reduxForm } from 'redux-form';
-import { PROJECT_MOVE_FORM_NAME } from '~/store/projects/project-move-actions';
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { DialogMoveTo } from '~/views-components/dialog-move/dialog-move-to';
-import { moveProject } from '~/store/workbench/workbench-actions';
-import { pickerId } from '~/store/tree-picker/picker-id';
+import { PROJECT_MOVE_FORM_NAME } from 'store/projects/project-move-actions';
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { DialogMoveTo } from 'views-components/dialog-move/dialog-move-to';
+import { moveProject } from 'store/workbench/workbench-actions';
+import { pickerId } from 'store/tree-picker/picker-id';
export const MoveProjectDialog = compose(
withDialog(PROJECT_MOVE_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog, } from '~/store/dialog/with-dialog';
-import { CollectionPartialCopyFormData, copyCollectionPartial, COLLECTION_PARTIAL_COPY_FORM_NAME } from '~/store/collections/collection-partial-copy-actions';
-import { DialogCollectionPartialCopy } from "~/views-components/dialog-copy/dialog-collection-partial-copy";
-import { pickerId } from "~/store/tree-picker/picker-id";
+import { withDialog, } from 'store/dialog/with-dialog';
+import { CollectionPartialCopyFormData, copyCollectionPartial, COLLECTION_PARTIAL_COPY_FORM_NAME } from 'store/collections/collection-partial-copy-actions';
+import { DialogCollectionPartialCopy } from "views-components/dialog-copy/dialog-collection-partial-copy";
+import { pickerId } from "store/tree-picker/picker-id";
export const PartialCopyCollectionDialog = compose(
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog, } from '~/store/dialog/with-dialog';
-import { CollectionPartialCopyToSelectedCollectionFormData, copyCollectionPartialToSelectedCollection, COLLECTION_PARTIAL_COPY_TO_SELECTED_COLLECTION } from '~/store/collections/collection-partial-copy-actions';
-import { DialogCollectionPartialCopyToSelectedCollection } from "~/views-components/dialog-copy/dialog-partial-copy-to-collection";
-import { pickerId } from "~/store/tree-picker/picker-id";
+import { withDialog, } from 'store/dialog/with-dialog';
+import { CollectionPartialCopyToSelectedCollectionFormData, copyCollectionPartialToSelectedCollection, COLLECTION_PARTIAL_COPY_TO_SELECTED_COLLECTION } from 'store/collections/collection-partial-copy-actions';
+import { DialogCollectionPartialCopyToSelectedCollection } from "views-components/dialog-copy/dialog-partial-copy-to-collection";
+import { pickerId } from "store/tree-picker/picker-id";
export const PartialCopyToCollectionDialog = compose(
withDialog(COLLECTION_PARTIAL_COPY_TO_SELECTED_COLLECTION),
import * as React from 'react';
import { compose } from "redux";
import { reduxForm, InjectedFormProps, Field } from 'redux-form';
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { TextField } from '~/components/text-field/text-field';
-import { VirtualMachinesResource } from '~/models/virtual-machines';
-import { USER_LENGTH_VALIDATION, CHOOSE_VM_VALIDATION } from '~/validators/validators';
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { TextField } from 'components/text-field/text-field';
+import { VirtualMachinesResource } from 'models/virtual-machines';
+import { USER_LENGTH_VALIDATION, CHOOSE_VM_VALIDATION } from 'validators/validators';
import { InputLabel } from '@material-ui/core';
-import { NativeSelectField } from '~/components/select-field/select-field';
-import { SetupShellAccountFormDialogData, SETUP_SHELL_ACCOUNT_DIALOG, setupUserVM } from '~/store/users/users-actions';
-import { UserResource } from '~/models/user';
+import { NativeSelectField } from 'components/select-field/select-field';
+import { SetupShellAccountFormDialogData, SETUP_SHELL_ACCOUNT_DIALOG, setupUserVM } from 'store/users/users-actions';
+import { UserResource } from 'models/user';
export const SetupShellAccountDialog = compose(
withDialog(SETUP_SHELL_ACCOUNT_DIALOG),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { DialogCollectionUpdate } from '~/views-components/dialog-update/dialog-collection-update';
-import { COLLECTION_UPDATE_FORM_NAME, CollectionUpdateFormDialogData, updateCollection } from '~/store/collections/collection-update-actions';
+import { withDialog } from "store/dialog/with-dialog";
+import { DialogCollectionUpdate } from 'views-components/dialog-update/dialog-collection-update';
+import { COLLECTION_UPDATE_FORM_NAME, CollectionUpdateFormDialogData, updateCollection } from 'store/collections/collection-update-actions';
export const UpdateCollectionDialog = compose(
withDialog(COLLECTION_UPDATE_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { DialogProcessUpdate } from '~/views-components/dialog-update/dialog-process-update';
-import { PROCESS_UPDATE_FORM_NAME, ProcessUpdateFormDialogData } from '~/store/processes/process-update-actions';
-import { updateProcess } from "~/store/workbench/workbench-actions";
+import { withDialog } from "store/dialog/with-dialog";
+import { DialogProcessUpdate } from 'views-components/dialog-update/dialog-process-update';
+import { PROCESS_UPDATE_FORM_NAME, ProcessUpdateFormDialogData } from 'store/processes/process-update-actions';
+import { updateProcess } from "store/workbench/workbench-actions";
export const UpdateProcessDialog = compose(
withDialog(PROCESS_UPDATE_FORM_NAME),
import { compose } from "redux";
import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { DialogProjectUpdate } from '~/views-components/dialog-update/dialog-project-update';
-import { PROJECT_UPDATE_FORM_NAME, ProjectUpdateFormDialogData } from '~/store/projects/project-update-actions';
-import { updateProject } from '~/store/workbench/workbench-actions';
+import { withDialog } from "store/dialog/with-dialog";
+import { DialogProjectUpdate } from 'views-components/dialog-update/dialog-project-update';
+import { PROJECT_UPDATE_FORM_NAME, ProjectUpdateFormDialogData } from 'store/projects/project-update-actions';
+import { updateProject } from 'store/workbench/workbench-actions';
export const UpdateProjectDialog = compose(
withDialog(PROJECT_UPDATE_FORM_NAME),
import * as React from "react";
import { memoize } from 'lodash/fp';
import { InjectedFormProps, Field } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { ProjectTreePickerField } from '~/views-components/projects-tree-picker/tree-picker-field';
-import { MOVE_TO_VALIDATION } from '~/validators/validators';
-import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
-import { PickerIdProp } from "~/store/tree-picker/picker-id";
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { ProjectTreePickerField } from 'views-components/projects-tree-picker/tree-picker-field';
+import { MOVE_TO_VALIDATION } from 'validators/validators';
+import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
+import { PickerIdProp } from "store/tree-picker/picker-id";
export const DialogMoveTo = (props: WithDialogProps<string> & InjectedFormProps<MoveToFormDialogData> & PickerIdProp) =>
<FormDialog
import * as React from 'react';
import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { CollectionUpdateFormDialogData } from '~/store/collections/collection-update-actions';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { CollectionNameField, CollectionDescriptionField } from '~/views-components/form-fields/collection-form-fields';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { CollectionUpdateFormDialogData } from 'store/collections/collection-update-actions';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { CollectionNameField, CollectionDescriptionField } from 'views-components/form-fields/collection-form-fields';
type DialogCollectionProps = WithDialogProps<{}> & InjectedFormProps<CollectionUpdateFormDialogData>;
import * as React from 'react';
import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { ProcessUpdateFormDialogData } from '~/store/processes/process-update-actions';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { ProcessNameField, ProcessDescriptionField } from '~/views-components/form-fields/process-form-fields';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { ProcessUpdateFormDialogData } from 'store/processes/process-update-actions';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { ProcessNameField, ProcessDescriptionField } from 'views-components/form-fields/process-form-fields';
type DialogProcessProps = WithDialogProps<{}> & InjectedFormProps<ProcessUpdateFormDialogData>;
import * as React from 'react';
import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { ProjectUpdateFormDialogData } from '~/store/projects/project-update-actions';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { ProjectNameField, ProjectDescriptionField } from '~/views-components/form-fields/project-form-fields';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { ProjectUpdateFormDialogData } from 'store/projects/project-update-actions';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { ProjectNameField, ProjectDescriptionField } from 'views-components/form-fields/project-form-fields';
type DialogProjectProps = WithDialogProps<{}> & InjectedFormProps<ProjectUpdateFormDialogData>;
import * as React from 'react';
import { InjectedFormProps, Field } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { CollectionCreateFormDialogData } from '~/store/collections/collection-create-actions';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { require } from '~/validators/require';
-import { FileUploaderField } from '~/views-components/file-uploader/file-uploader';
-import { WarningCollection } from '~/components/warning-collection/warning-collection';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { CollectionCreateFormDialogData } from 'store/collections/collection-create-actions';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import { require } from 'validators/require';
+import { FileUploaderField } from 'views-components/file-uploader/file-uploader';
+import { WarningCollection } from 'components/warning-collection/warning-collection';
type DialogCollectionFilesUploadProps = WithDialogProps<{}> & InjectedFormProps<CollectionCreateFormDialogData>;
// SPDX-License-Identifier: AGPL-3.0
import * as React from "react";
-import { FavoriteIcon, PublicFavoriteIcon } from "~/components/icon/icon";
+import { FavoriteIcon, PublicFavoriteIcon } from "components/icon/icon";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
import { withStyles, StyleRulesCallback, WithStyles, Tooltip } from "@material-ui/core";
type CssRules = "icon";
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from '~/store/dialog/with-dialog';
-import { RootState } from '~/store/store';
-import { removeCollectionFiles, FILE_REMOVE_DIALOG } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from 'store/dialog/with-dialog';
+import { RootState } from 'store/store';
+import { removeCollectionFiles, FILE_REMOVE_DIALOG } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
const mapStateToProps = (state: RootState, props: WithDialogProps<{ filePath: string }>) => ({
filePath: props.data.filePath
import { Dispatch } from "redux";
import { connect } from "react-redux";
import { MULTIPLE_FILES_REMOVE_DIALOG, removeCollectionsSelectedFiles } from "../../store/collection-panel/collection-panel-files/collection-panel-files-actions";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { FileUpload } from '~/components/file-upload/file-upload';
+import { FileUpload } from 'components/file-upload/file-upload';
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { FileUploadProps } from '../../components/file-upload/file-upload';
import { Dispatch } from 'redux';
-import { fileUploaderActions, getFileUploaderState } from '~/store/file-uploader/file-uploader-actions';
+import { fileUploaderActions, getFileUploaderState } from 'store/file-uploader/file-uploader-actions';
import { WrappedFieldProps } from 'redux-form';
import { Typography } from '@material-ui/core';
import * as React from "react";
import { Field, Validator } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
+import { TextField } from "components/text-field/text-field";
import {
COLLECTION_NAME_VALIDATION, COLLECTION_NAME_VALIDATION_ALLOW_SLASH,
COLLECTION_DESCRIPTION_VALIDATION, COLLECTION_PROJECT_VALIDATION
-} from "~/validators/validators";
-import { ProjectTreePickerField, CollectionTreePickerField } from "~/views-components/projects-tree-picker/tree-picker-field";
-import { PickerIdProp } from '~/store/tree-picker/picker-id';
+} from "validators/validators";
+import { ProjectTreePickerField, CollectionTreePickerField } from "views-components/projects-tree-picker/tree-picker-field";
+import { PickerIdProp } from 'store/tree-picker/picker-id';
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
interface CollectionNameFieldProps {
validate: Validator[];
import * as React from "react";
import { Field } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
-import { PROCESS_NAME_VALIDATION, PROCESS_DESCRIPTION_VALIDATION } from "~/validators/validators";
+import { TextField } from "components/text-field/text-field";
+import { PROCESS_NAME_VALIDATION, PROCESS_DESCRIPTION_VALIDATION } from "validators/validators";
export const ProcessNameField = () =>
<Field
import * as React from "react";
import { Field, Validator } from "redux-form";
-import { TextField, RichEditorTextField } from "~/components/text-field/text-field";
-import { PROJECT_NAME_VALIDATION, PROJECT_NAME_VALIDATION_ALLOW_SLASH } from "~/validators/validators";
+import { TextField, RichEditorTextField } from "components/text-field/text-field";
+import { PROJECT_NAME_VALIDATION, PROJECT_NAME_VALIDATION_ALLOW_SLASH } from "validators/validators";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
interface ProjectNameFieldProps {
validate: Validator[];
import * as React from "react";
import { Field } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
-import { REPOSITORY_NAME_VALIDATION } from "~/validators/validators";
+import { TextField } from "components/text-field/text-field";
+import { REPOSITORY_NAME_VALIDATION } from "validators/validators";
import { Grid } from "@material-ui/core";
export const RepositoryNameField = (props: any) =>
import * as React from "react";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
import { Field } from "redux-form";
-import { ResourcesState, getResource } from "~/store/resources/resources";
-import { GroupResource } from "~/models/group";
-import { TextField } from "~/components/text-field/text-field";
-import { getUserUuid } from "~/common/getuser";
+import { ResourcesState, getResource } from "store/resources/resources";
+import { GroupResource } from "models/group";
+import { TextField } from "components/text-field/text-field";
+import { getUserUuid } from "common/getuser";
interface ResourceParentFieldProps {
resources: ResourcesState;
import * as React from "react";
import { Field, WrappedFieldProps, FieldArray } from 'redux-form';
-import { TextField, DateTextField } from "~/components/text-field/text-field";
-import { CheckboxField } from '~/components/checkbox-field/checkbox-field';
-import { NativeSelectField } from '~/components/select-field/select-field';
-import { ResourceKind } from '~/models/resource';
-import { HomeTreePicker } from '~/views-components/projects-tree-picker/home-tree-picker';
-import { SEARCH_BAR_ADVANCED_FORM_PICKER_ID } from '~/store/search-bar/search-bar-actions';
-import { SearchBarAdvancedPropertiesView } from '~/views-components/search-bar/search-bar-advanced-properties-view';
-import { TreeItem } from "~/components/tree/tree";
-import { ProjectsTreePickerItem } from "~/views-components/projects-tree-picker/generic-projects-tree-picker";
-import { PropertyKeyField, } from '~/views-components/resource-properties-form/property-key-field';
-import { PropertyValueField } from '~/views-components/resource-properties-form/property-value-field';
+import { TextField, DateTextField } from "components/text-field/text-field";
+import { CheckboxField } from 'components/checkbox-field/checkbox-field';
+import { NativeSelectField } from 'components/select-field/select-field';
+import { ResourceKind } from 'models/resource';
+import { HomeTreePicker } from 'views-components/projects-tree-picker/home-tree-picker';
+import { SEARCH_BAR_ADVANCED_FORM_PICKER_ID } from 'store/search-bar/search-bar-actions';
+import { SearchBarAdvancedPropertiesView } from 'views-components/search-bar/search-bar-advanced-properties-view';
+import { TreeItem } from "components/tree/tree";
+import { ProjectsTreePickerItem } from "views-components/projects-tree-picker/generic-projects-tree-picker";
+import { PropertyKeyField, } from 'views-components/resource-properties-form/property-key-field';
+import { PropertyValueField } from 'views-components/resource-properties-form/property-value-field';
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
export const SearchBarTypeField = () =>
<Field
import * as React from "react";
import { Field } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
-import { SSH_KEY_PUBLIC_VALIDATION, SSH_KEY_NAME_VALIDATION } from "~/validators/validators";
+import { TextField } from "components/text-field/text-field";
+import { SSH_KEY_PUBLIC_VALIDATION, SSH_KEY_NAME_VALIDATION } from "validators/validators";
export const SshKeyPublicField = () =>
<Field
import * as React from "react";
import { Field } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
-import { USER_EMAIL_VALIDATION, USER_LENGTH_VALIDATION } from "~/validators/validators";
-import { NativeSelectField } from "~/components/select-field/select-field";
+import { TextField } from "components/text-field/text-field";
+import { USER_EMAIL_VALIDATION, USER_LENGTH_VALIDATION } from "validators/validators";
+import { NativeSelectField } from "components/select-field/select-field";
import { InputLabel } from "@material-ui/core";
-import { VirtualMachinesResource } from "~/models/virtual-machines";
+import { VirtualMachinesResource } from "models/virtual-machines";
export const UserEmailField = () =>
<Field
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Grid } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
import { WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose } from "redux";
-import { GroupResource } from "~/models/group";
-import { GROUP_ATTRIBUTES_DIALOG } from "~/store/groups-panel/groups-panel-actions";
+import { GroupResource } from "models/group";
+import { GROUP_ATTRIBUTES_DIALOG } from "store/groups-panel/groups-panel-actions";
type CssRules = 'rightContainer' | 'leftContainer' | 'spacing';
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Grid } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
import { WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose } from "redux";
-import { PermissionResource } from "~/models/permission";
-import { MEMBER_ATTRIBUTES_DIALOG } from '~/store/group-details-panel/group-details-panel-actions';
+import { PermissionResource } from "models/permission";
+import { MEMBER_ATTRIBUTES_DIALOG } from 'store/group-details-panel/group-details-panel-actions';
type CssRules = 'rightContainer' | 'leftContainer' | 'spacing';
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { removeGroupMember, MEMBER_REMOVE_DIALOG } from '~/store/group-details-panel/group-details-panel-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { removeGroupMember, MEMBER_REMOVE_DIALOG } from 'store/group-details-panel/group-details-panel-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { removeGroup, GROUP_REMOVE_DIALOG } from '~/store/groups-panel/groups-panel-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { removeGroup, GROUP_REMOVE_DIALOG } from 'store/groups-panel/groups-panel-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
withStyles, Dialog, DialogTitle, DialogContent, DialogActions,
Button, StyleRulesCallback, WithStyles, Grid
} from '@material-ui/core';
-import { WithDialogProps, withDialog } from "~/store/dialog/with-dialog";
-import { KEEP_SERVICE_ATTRIBUTES_DIALOG } from '~/store/keep-services/keep-services-actions';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { KeepServiceResource } from '~/models/keep-services';
+import { WithDialogProps, withDialog } from "store/dialog/with-dialog";
+import { KEEP_SERVICE_ATTRIBUTES_DIALOG } from 'store/keep-services/keep-services-actions';
+import { ArvadosTheme } from 'common/custom-theme';
+import { KeepServiceResource } from 'models/keep-services';
type CssRules = 'root';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { KEEP_SERVICE_REMOVE_DIALOG, removeKeepService } from '~/store/keep-services/keep-services-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { KEEP_SERVICE_REMOVE_DIALOG, removeKeepService } from 'store/keep-services/keep-services-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import * as React from "react";
import { compose } from 'redux';
import { withStyles, Dialog, DialogTitle, DialogContent, DialogActions, Button, StyleRulesCallback, WithStyles, Grid } from '@material-ui/core';
-import { WithDialogProps, withDialog } from "~/store/dialog/with-dialog";
-import { LINK_ATTRIBUTES_DIALOG } from '~/store/link-panel/link-panel-actions';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { LinkResource } from '~/models/link';
+import { WithDialogProps, withDialog } from "store/dialog/with-dialog";
+import { LINK_ATTRIBUTES_DIALOG } from 'store/link-panel/link-panel-actions';
+import { ArvadosTheme } from 'common/custom-theme';
+import { LinkResource } from 'models/link';
type CssRules = 'root';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { LINK_REMOVE_DIALOG, removeLink } from '~/store/link-panel/link-panel-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { LINK_REMOVE_DIALOG, removeLink } from 'store/link-panel/link-panel-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import { green } from '@material-ui/core/colors';
import { AxiosPromise } from 'axios';
import { DispatchProp } from 'react-redux';
-import { saveApiToken } from '~/store/auth/auth-action';
-import { navigateToRootProject } from '~/store/navigation/navigation-action';
+import { saveApiToken } from 'store/auth/auth-action';
+import { navigateToRootProject } from 'store/navigation/navigation-action';
type CssRules = 'root' | 'loginBtn' | 'card' | 'wrapper' | 'progress';
import * as React from "react";
import { MenuItem, Divider } from "@material-ui/core";
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { User, getUserDisplayName } from "~/models/user";
-import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu";
-import { UserPanelIcon } from "~/components/icon/icon";
+import { User, getUserDisplayName } from "models/user";
+import { DropdownMenu } from "components/dropdown-menu/dropdown-menu";
+import { UserPanelIcon } from "components/icon/icon";
import { DispatchProp, connect } from 'react-redux';
-import { authActions, getNewExtraToken } from '~/store/auth/auth-action';
-import { RootState } from "~/store/store";
-import { openTokenDialog } from '~/store/token-dialog/token-dialog-actions';
-import { openRepositoriesPanel } from "~/store/repositories/repositories-actions";
+import { authActions, getNewExtraToken } from 'store/auth/auth-action';
+import { RootState } from "store/store";
+import { openTokenDialog } from 'store/token-dialog/token-dialog-actions';
+import { openRepositoriesPanel } from "store/repositories/repositories-actions";
import {
navigateToSiteManager,
navigateToSshKeysUser,
navigateToMyAccount,
navigateToLinkAccount
-} from '~/store/navigation/navigation-action';
-import { openUserVirtualMachines } from "~/store/virtual-machines/virtual-machines-actions";
-import { pluginConfig } from '~/plugins';
-import { ElementListReducer } from '~/common/plugintypes';
+} from 'store/navigation/navigation-action';
+import { openUserVirtualMachines } from "store/virtual-machines/virtual-machines-actions";
+import { pluginConfig } from 'plugins';
+import { ElementListReducer } from 'common/plugintypes';
interface AccountMenuProps {
user?: User;
import * as React from "react";
import { MenuItem } from "@material-ui/core";
-import { User } from "~/models/user";
-import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu";
-import { AdminMenuIcon } from "~/components/icon/icon";
+import { User } from "models/user";
+import { DropdownMenu } from "components/dropdown-menu/dropdown-menu";
+import { AdminMenuIcon } from "components/icon/icon";
import { DispatchProp, connect } from 'react-redux';
-import { RootState } from "~/store/store";
-import { openRepositoriesPanel } from "~/store/repositories/repositories-actions";
-import * as NavigationAction from '~/store/navigation/navigation-action';
-import { openAdminVirtualMachines } from "~/store/virtual-machines/virtual-machines-actions";
-import { openUserPanel } from "~/store/users/users-actions";
+import { RootState } from "store/store";
+import { openRepositoriesPanel } from "store/repositories/repositories-actions";
+import * as NavigationAction from 'store/navigation/navigation-action';
+import { openAdminVirtualMachines } from "store/virtual-machines/virtual-machines-actions";
+import { openUserPanel } from "store/users/users-actions";
interface AdminMenuProps {
user?: User;
import * as React from "react";
import { Button } from '@material-ui/core';
import { DispatchProp, connect } from 'react-redux';
-import { login } from '~/store/auth/auth-action';
+import { login } from 'store/auth/auth-action';
export const AnonymousMenu = connect()(
({ dispatch }: DispatchProp<any>) =>
import * as React from "react";
import { MenuItem, Typography } from "@material-ui/core";
-import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu";
-import { ImportContactsIcon, HelpIcon } from "~/components/icon/icon";
-import { ArvadosTheme } from '~/common/custom-theme';
+import { DropdownMenu } from "components/dropdown-menu/dropdown-menu";
+import { ImportContactsIcon, HelpIcon } from "components/icon/icon";
+import { ArvadosTheme } from 'common/custom-theme';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
import { compose } from "redux";
import { connect } from "react-redux";
import { AppBar, Toolbar, Typography, Grid } from "@material-ui/core";
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
import { Link } from "react-router-dom";
-import { User } from "~/models/user";
-import { SearchBar } from "~/views-components/search-bar/search-bar";
-import { Routes } from '~/routes/routes';
-import { NotificationsMenu } from "~/views-components/main-app-bar/notifications-menu";
-import { AccountMenu } from "~/views-components/main-app-bar/account-menu";
-import { HelpMenu } from '~/views-components/main-app-bar/help-menu';
+import { User } from "models/user";
+import { SearchBar } from "views-components/search-bar/search-bar";
+import { Routes } from 'routes/routes';
+import { NotificationsMenu } from "views-components/main-app-bar/notifications-menu";
+import { AccountMenu } from "views-components/main-app-bar/account-menu";
+import { HelpMenu } from 'views-components/main-app-bar/help-menu';
import { ReactNode } from "react";
-import { AdminMenu } from "~/views-components/main-app-bar/admin-menu";
-import { pluginConfig } from '~/plugins';
+import { AdminMenu } from "views-components/main-app-bar/admin-menu";
+import { pluginConfig } from 'plugins';
type CssRules = 'toolbar' | 'link';
import * as React from "react";
import { Badge, MenuItem } from '@material-ui/core';
-import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu";
-import { NotificationIcon } from '~/components/icon/icon';
+import { DropdownMenu } from "components/dropdown-menu/dropdown-menu";
+import { NotificationIcon } from 'components/icon/icon';
export const NotificationsMenu =
() =>
import * as React from "react";
import { Toolbar, StyleRulesCallback, IconButton, Tooltip, Grid, WithStyles, withStyles } from "@material-ui/core";
-import { DetailsIcon } from "~/components/icon/icon";
-import { Breadcrumbs } from "~/views-components/breadcrumbs/breadcrumbs";
+import { DetailsIcon } from "components/icon/icon";
+import { Breadcrumbs } from "views-components/breadcrumbs/breadcrumbs";
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
-import * as Routes from '~/routes/routes';
-import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
-import RefreshButton from "~/components/refresh-button/refresh-button";
+import { RootState } from 'store/store';
+import * as Routes from 'routes/routes';
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
+import RefreshButton from "components/refresh-button/refresh-button";
type CssRules = "infoTooltip";
import * as React from "react";
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { RootState } from '~/store/store';
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { NOT_FOUND_DIALOG_NAME } from '~/store/not-found-panel/not-found-panel-action';
+import { RootState } from 'store/store';
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { NOT_FOUND_DIALOG_NAME } from 'store/not-found-panel/not-found-panel-action';
import { Dialog, DialogContent, DialogActions, Button, withStyles, StyleRulesCallback, WithStyles } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { NotFoundPanel } from "~/views/not-found-panel/not-found-panel";
+import { ArvadosTheme } from 'common/custom-theme';
+import { NotFoundPanel } from "views/not-found-panel/not-found-panel";
type CssRules = 'tag';
import * as React from "react";
import { Dialog, DialogActions, Button, StyleRulesCallback, WithStyles, withStyles, Tooltip, IconButton, CardHeader } from '@material-ui/core';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { PROCESS_COMMAND_DIALOG_NAME } from '~/store/processes/process-command-actions';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { ProcessCommandDialogData } from '~/store/processes/process-command-actions';
-import { DefaultCodeSnippet } from "~/components/default-code-snippet/default-code-snippet";
+import { withDialog } from "store/dialog/with-dialog";
+import { PROCESS_COMMAND_DIALOG_NAME } from 'store/processes/process-command-actions';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { ProcessCommandDialogData } from 'store/processes/process-command-actions';
+import { DefaultCodeSnippet } from "components/default-code-snippet/default-code-snippet";
import { compose } from 'redux';
import * as CopyToClipboard from "react-copy-to-clipboard";
-import { CopyIcon } from '~/components/icon/icon';
+import { CopyIcon } from 'components/icon/icon';
type CssRules = 'codeSnippet' | 'copyToClipboard';
import * as React from "react";
import { Dialog, DialogActions, Button, CardHeader, DialogContent } from '@material-ui/core';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { PROCESS_INPUT_DIALOG_NAME } from '~/store/processes/process-input-actions';
-import { RunProcessInputsForm } from "~/views/run-process-panel/run-process-inputs-form";
-import { MOUNT_PATH_CWL_WORKFLOW, MOUNT_PATH_CWL_INPUT } from "~/models/process";
-import { getWorkflowInputs } from "~/models/workflow";
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { withDialog } from "store/dialog/with-dialog";
+import { PROCESS_INPUT_DIALOG_NAME } from 'store/processes/process-input-actions';
+import { RunProcessInputsForm } from "views/run-process-panel/run-process-inputs-form";
+import { MOUNT_PATH_CWL_WORKFLOW, MOUNT_PATH_CWL_INPUT } from "models/process";
+import { getWorkflowInputs } from "models/workflow";
export const ProcessInputDialog = withDialog(PROCESS_INPUT_DIALOG_NAME)(
(props: WithDialogProps<any>) =>
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { removeProcessPermanently, REMOVE_PROCESS_DIALOG } from '~/store/processes/processes-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { removeProcessPermanently, REMOVE_PROCESS_DIALOG } from 'store/processes/processes-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import * as React from "react";
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { RootState } from '~/store/store';
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { ProjectResource } from '~/models/project';
-import { PROJECT_PROPERTIES_DIALOG_NAME, deleteProjectProperty } from '~/store/details-panel/details-panel-action';
+import { RootState } from 'store/store';
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { ProjectResource } from 'models/project';
+import { PROJECT_PROPERTIES_DIALOG_NAME, deleteProjectProperty } from 'store/details-panel/details-panel-action';
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, withStyles, StyleRulesCallback, WithStyles } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { ProjectPropertiesForm } from '~/views-components/project-properties-dialog/project-properties-form';
-import { getResource } from '~/store/resources/resources';
+import { ArvadosTheme } from 'common/custom-theme';
+import { ProjectPropertiesForm } from 'views-components/project-properties-dialog/project-properties-form';
+import { getResource } from 'store/resources/resources';
import { getPropertyChip } from "../resource-properties-form/property-chip";
type CssRules = 'tag';
// SPDX-License-Identifier: AGPL-3.0
import { reduxForm, reset } from 'redux-form';
-import { PROJECT_PROPERTIES_FORM_NAME, createProjectProperty } from '~/store/details-panel/details-panel-action';
-import { ResourcePropertiesForm, ResourcePropertiesFormData } from '~/views-components/resource-properties-form/resource-properties-form';
+import { PROJECT_PROPERTIES_FORM_NAME, createProjectProperty } from 'store/details-panel/details-panel-action';
+import { ResourcePropertiesForm, ResourcePropertiesFormData } from 'views-components/resource-properties-form/resource-properties-form';
import { withStyles } from '@material-ui/core';
const Form = withStyles(({ spacing }) => ({ container: { marginBottom: spacing.unit * 2 } }))(ResourcePropertiesForm);
StyleRulesCallback,
WithStyles,
} from '@material-ui/core';
-import { RootState } from '~/store/store';
-import { removePropertyFromCreateProjectForm, PROJECT_CREATE_FORM_SELECTOR, ProjectProperties } from '~/store/projects/project-create-actions';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { RootState } from 'store/store';
+import { removePropertyFromCreateProjectForm, PROJECT_CREATE_FORM_SELECTOR, ProjectProperties } from 'store/projects/project-create-actions';
+import { ArvadosTheme } from 'common/custom-theme';
import { getPropertyChip } from '../resource-properties-form/property-chip';
type CssRules = 'tag';
// SPDX-License-Identifier: AGPL-3.0
import { connect } from 'react-redux';
-import { ProjectsTreePicker, ProjectsTreePickerProps } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
+import { ProjectsTreePicker, ProjectsTreePickerProps } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
import { Dispatch } from 'redux';
-import { FavoriteIcon } from '~/components/icon/icon';
-import { loadFavoritesProject } from '~/store/tree-picker/tree-picker-actions';
+import { FavoriteIcon } from 'components/icon/icon';
+import { loadFavoritesProject } from 'store/tree-picker/tree-picker-actions';
export const FavoritesTreePicker = connect(() => ({
rootItemIcon: FavoriteIcon,
import { Dispatch } from "redux";
import { connect } from "react-redux";
import { isEqual } from 'lodash/fp';
-import { TreeItem, TreeItemStatus } from '~/components/tree/tree';
-import { ProjectResource } from "~/models/project";
-import { treePickerActions } from "~/store/tree-picker/tree-picker-actions";
-import { ListItemTextIcon } from "~/components/list-item-text-icon/list-item-text-icon";
-import { ProjectIcon, InputIcon, IconType, CollectionIcon } from '~/components/icon/icon';
-import { loadProject, loadCollection } from '~/store/tree-picker/tree-picker-actions';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
-import { CollectionDirectory, CollectionFile, CollectionFileType } from '~/models/collection-file';
-import { ResourceKind } from '~/models/resource';
-import { TreePickerProps, TreePicker } from "~/views-components/tree-picker/tree-picker";
-import { LinkResource } from "~/models/link";
+import { TreeItem, TreeItemStatus } from 'components/tree/tree';
+import { ProjectResource } from "models/project";
+import { treePickerActions } from "store/tree-picker/tree-picker-actions";
+import { ListItemTextIcon } from "components/list-item-text-icon/list-item-text-icon";
+import { ProjectIcon, InputIcon, IconType, CollectionIcon } from 'components/icon/icon';
+import { loadProject, loadCollection } from 'store/tree-picker/tree-picker-actions';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
+import { CollectionDirectory, CollectionFile, CollectionFileType } from 'models/collection-file';
+import { ResourceKind } from 'models/resource';
+import { TreePickerProps, TreePicker } from "views-components/tree-picker/tree-picker";
+import { LinkResource } from "models/link";
export interface ProjectsTreePickerRootItem {
id: string;
// SPDX-License-Identifier: AGPL-3.0
import { connect } from 'react-redux';
-import { ProjectsTreePicker, ProjectsTreePickerProps } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
+import { ProjectsTreePicker, ProjectsTreePickerProps } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
import { Dispatch } from 'redux';
-import { loadUserProject } from '~/store/tree-picker/tree-picker-actions';
-import { ProjectIcon } from '~/components/icon/icon';
+import { loadUserProject } from 'store/tree-picker/tree-picker-actions';
+import { ProjectIcon } from 'components/icon/icon';
export const HomeTreePicker = connect(() => ({
rootItemIcon: ProjectIcon,
import * as React from 'react';
import { values, memoize, pipe } from 'lodash/fp';
-import { HomeTreePicker } from '~/views-components/projects-tree-picker/home-tree-picker';
-import { SharedTreePicker } from '~/views-components/projects-tree-picker/shared-tree-picker';
-import { FavoritesTreePicker } from '~/views-components/projects-tree-picker/favorites-tree-picker';
-import { getProjectsTreePickerIds, SHARED_PROJECT_ID, FAVORITES_PROJECT_ID } from '~/store/tree-picker/tree-picker-actions';
-import { TreeItem } from '~/components/tree/tree';
+import { HomeTreePicker } from 'views-components/projects-tree-picker/home-tree-picker';
+import { SharedTreePicker } from 'views-components/projects-tree-picker/shared-tree-picker';
+import { FavoritesTreePicker } from 'views-components/projects-tree-picker/favorites-tree-picker';
+import { getProjectsTreePickerIds, SHARED_PROJECT_ID, FAVORITES_PROJECT_ID } from 'store/tree-picker/tree-picker-actions';
+import { TreeItem } from 'components/tree/tree';
import { ProjectsTreePickerItem } from './generic-projects-tree-picker';
import { PublicFavoritesTreePicker } from './public-favorites-tree-picker';
// SPDX-License-Identifier: AGPL-3.0
import { connect } from 'react-redux';
-import { ProjectsTreePicker, ProjectsTreePickerProps } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
+import { ProjectsTreePicker, ProjectsTreePickerProps } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
import { Dispatch } from 'redux';
-import { PublicFavoriteIcon } from '~/components/icon/icon';
-import { loadPublicFavoritesProject } from '~/store/tree-picker/tree-picker-actions';
+import { PublicFavoriteIcon } from 'components/icon/icon';
+import { loadPublicFavoritesProject } from 'store/tree-picker/tree-picker-actions';
export const PublicFavoritesTreePicker = connect(() => ({
rootItemIcon: PublicFavoriteIcon,
// SPDX-License-Identifier: AGPL-3.0
import { connect } from 'react-redux';
-import { ProjectsTreePicker, ProjectsTreePickerProps } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
+import { ProjectsTreePicker, ProjectsTreePickerProps } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
import { Dispatch } from 'redux';
-import { ShareMeIcon } from '~/components/icon/icon';
-import { loadProject } from '~/store/tree-picker/tree-picker-actions';
+import { ShareMeIcon } from 'components/icon/icon';
+import { loadProject } from 'store/tree-picker/tree-picker-actions';
export const SharedTreePicker = connect(() => ({
rootItemIcon: ShareMeIcon,
import * as React from "react";
import { Typography } from "@material-ui/core";
-import { TreeItem } from "~/components/tree/tree";
+import { TreeItem } from "components/tree/tree";
import { WrappedFieldProps } from 'redux-form';
-import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker';
-import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
-import { PickerIdProp } from '~/store/tree-picker/picker-id';
+import { ProjectsTreePicker } from 'views-components/projects-tree-picker/projects-tree-picker';
+import { ProjectsTreePickerItem } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
+import { PickerIdProp } from 'store/tree-picker/picker-id';
export const ProjectTreePickerField = (props: WrappedFieldProps & PickerIdProp) =>
<div style={{ height: '200px', display: 'flex', flexDirection: 'column' }}>
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button } from "@material-ui/core";
-import { withDialog } from "~/store/dialog/with-dialog";
-import { dialogActions } from "~/store/dialog/dialog-actions";
+import { withDialog } from "store/dialog/with-dialog";
+import { dialogActions } from "store/dialog/dialog-actions";
export const REMOVE_DIALOG = 'removeCollectionFilesDialog';
import * as React from 'react';
import { compose } from 'redux';
import { reduxForm, InjectedFormProps, Field } from 'redux-form';
-import { withDialog, WithDialogProps } from '~/store/dialog/with-dialog';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
+import { withDialog, WithDialogProps } from 'store/dialog/with-dialog';
+import { FormDialog } from 'components/form-dialog/form-dialog';
import { DialogContentText } from '@material-ui/core';
-import { TextField } from '~/components/text-field/text-field';
-import { RENAME_FILE_DIALOG, RenameFileDialogData, renameFile } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
-import { WarningCollection } from '~/components/warning-collection/warning-collection';
-import { RENAME_FILE_VALIDATION } from '~/validators/validators';
+import { TextField } from 'components/text-field/text-field';
+import { RENAME_FILE_DIALOG, RenameFileDialogData, renameFile } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { WarningCollection } from 'components/warning-collection/warning-collection';
+import { RENAME_FILE_VALIDATION } from 'validators/validators';
export const RenameFileDialog = compose(
withDialog(RENAME_FILE_DIALOG),
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
-import { REPOSITORIES_SAMPLE_GIT_DIALOG } from "~/store/repositories/repositories-actions";
-import { DefaultCodeSnippet } from '~/components/default-code-snippet/default-code-snippet';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
+import { REPOSITORIES_SAMPLE_GIT_DIALOG } from "store/repositories/repositories-actions";
+import { DefaultCodeSnippet } from 'components/default-code-snippet/default-code-snippet';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose } from "redux";
type CssRules = 'codeSnippet' | 'link' | 'spacing';
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Grid } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
-import { REPOSITORY_ATTRIBUTES_DIALOG } from "~/store/repositories/repositories-actions";
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
+import { REPOSITORY_ATTRIBUTES_DIALOG } from "store/repositories/repositories-actions";
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose } from "redux";
-import { RepositoryResource } from "~/models/repositories";
+import { RepositoryResource } from "models/repositories";
type CssRules = 'rightContainer' | 'leftContainer' | 'spacing';
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { removeRepository, REPOSITORY_REMOVE_DIALOG } from '~/store/repositories/repositories-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { removeRepository, REPOSITORY_REMOVE_DIALOG } from 'store/repositories/repositories-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import * as React from 'react';
import { Chip } from '@material-ui/core';
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import * as CopyToClipboard from 'react-copy-to-clipboard';
-import { getVocabulary } from '~/store/vocabulary/vocabulary-selectors';
+import { getVocabulary } from 'store/vocabulary/vocabulary-selectors';
import { Dispatch } from 'redux';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getTagValueLabel, getTagKeyLabel, Vocabulary } from '~/models/vocabulary';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getTagValueLabel, getTagKeyLabel, Vocabulary } from 'models/vocabulary';
interface PropertyChipComponentDataProps {
propKey: string;
import { connect } from 'react-redux';
import { change, WrappedFieldMetaProps, WrappedFieldInputProps, WrappedFieldProps } from 'redux-form';
-import { Vocabulary, PropFieldSuggestion } from '~/models/vocabulary';
-import { RootState } from '~/store/store';
-import { getVocabulary } from '~/store/vocabulary/vocabulary-selectors';
+import { Vocabulary, PropFieldSuggestion } from 'models/vocabulary';
+import { RootState } from 'store/store';
+import { getVocabulary } from 'store/vocabulary/vocabulary-selectors';
export interface VocabularyProp {
vocabulary: Vocabulary;
import * as React from 'react';
import { WrappedFieldProps, Field, FormName, reset, change, WrappedFieldInputProps, WrappedFieldMetaProps } from 'redux-form';
import { memoize } from 'lodash';
-import { Autocomplete } from '~/components/autocomplete/autocomplete';
-import { Vocabulary, getTags, getTagKeyID } from '~/models/vocabulary';
+import { Autocomplete } from 'components/autocomplete/autocomplete';
+import { Vocabulary, getTags, getTagKeyID } from 'models/vocabulary';
import {
handleSelect,
handleBlur,
VocabularyProp,
ValidationProp,
buildProps
-} from '~/views-components/resource-properties-form/property-field-common';
-import { TAG_KEY_VALIDATION } from '~/validators/validators';
-import { escapeRegExp } from '~/common/regexp.ts';
+} from 'views-components/resource-properties-form/property-field-common';
+import { TAG_KEY_VALIDATION } from 'validators/validators';
+import { escapeRegExp } from 'common/regexp.ts';
import { ChangeEvent } from 'react';
export const PROPERTY_KEY_FIELD_NAME = 'key';
import * as React from 'react';
import { WrappedFieldProps, Field, formValues, FormName, WrappedFieldInputProps, WrappedFieldMetaProps, change } from 'redux-form';
import { compose } from 'redux';
-import { Autocomplete } from '~/components/autocomplete/autocomplete';
-import { Vocabulary, isStrictTag, getTagValues, getTagValueID } from '~/models/vocabulary';
-import { PROPERTY_KEY_FIELD_ID, PROPERTY_KEY_FIELD_NAME } from '~/views-components/resource-properties-form/property-key-field';
+import { Autocomplete } from 'components/autocomplete/autocomplete';
+import { Vocabulary, isStrictTag, getTagValues, getTagValueID } from 'models/vocabulary';
+import { PROPERTY_KEY_FIELD_ID, PROPERTY_KEY_FIELD_NAME } from 'views-components/resource-properties-form/property-key-field';
import {
handleSelect,
handleBlur,
ValidationProp,
connectVocabulary,
buildProps
-} from '~/views-components/resource-properties-form/property-field-common';
-import { TAG_VALUE_VALIDATION } from '~/validators/validators';
-import { escapeRegExp } from '~/common/regexp.ts';
+} from 'views-components/resource-properties-form/property-field-common';
+import { TAG_VALUE_VALIDATION } from 'validators/validators';
+import { escapeRegExp } from 'common/regexp.ts';
import { ChangeEvent } from 'react';
interface PropertyKeyProp {
import { Grid, withStyles, WithStyles } from '@material-ui/core';
import { PropertyKeyField, PROPERTY_KEY_FIELD_NAME, PROPERTY_KEY_FIELD_ID } from './property-key-field';
import { PropertyValueField, PROPERTY_VALUE_FIELD_NAME, PROPERTY_VALUE_FIELD_ID } from './property-value-field';
-import { ProgressButton } from '~/components/progress-button/progress-button';
+import { ProgressButton } from 'components/progress-button/progress-button';
import { GridClassKey } from '@material-ui/core/Grid';
export interface ResourcePropertiesFormData {
WithStyles,
withStyles
} from "@material-ui/core";
-import { ArvadosTheme } from '~/common/custom-theme';
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
-import { RICH_TEXT_EDITOR_DIALOG_NAME } from "~/store/rich-text-editor-dialog/rich-text-editor-dialog-actions";
+import { ArvadosTheme } from 'common/custom-theme';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
+import { RICH_TEXT_EDITOR_DIALOG_NAME } from "store/rich-text-editor-dialog/rich-text-editor-dialog-actions";
import RichTextEditor from 'react-rte';
type CssRules = 'rte';
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { RootState } from '~/store/store';
-import { setWorkflow, SET_WORKFLOW_DIALOG } from '~/store/run-process-panel/run-process-panel-actions';
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { WorkflowResource } from '~/models/workflow';
+import { RootState } from 'store/store';
+import { setWorkflow, SET_WORKFLOW_DIALOG } from 'store/run-process-panel/run-process-panel-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { WorkflowResource } from 'models/workflow';
const mapStateToProps = (state: RootState, props: WithDialogProps<{ workflow: WorkflowResource }>) => ({
workflow: props.data.workflow
import { connect } from 'react-redux';
import { InjectedFormProps, formValueSelector } from 'redux-form';
import { Grid, withStyles, StyleRulesCallback, WithStyles, Button } from '@material-ui/core';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import {
SEARCH_BAR_ADVANCED_FORM_NAME,
changeAdvancedFormProperty,
resetAdvancedFormProperty
-} from '~/store/search-bar/search-bar-actions';
-import { PropertyValue } from '~/models/search-bar';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { SearchBarKeyField, SearchBarValueField } from '~/views-components/form-fields/search-bar-form-fields';
-import { Chips } from '~/components/chips/chips';
-import { formatPropertyValue } from "~/common/formatters";
-import { Vocabulary } from '~/models/vocabulary';
+} from 'store/search-bar/search-bar-actions';
+import { PropertyValue } from 'models/search-bar';
+import { ArvadosTheme } from 'common/custom-theme';
+import { SearchBarKeyField, SearchBarValueField } from 'views-components/form-fields/search-bar-form-fields';
+import { Chips } from 'components/chips/chips';
+import { formatPropertyValue } from "common/formatters";
+import { Vocabulary } from 'models/vocabulary';
import { connectVocabulary } from '../resource-properties-form/property-field-common';
import * as _ from 'lodash';
SEARCH_BAR_ADVANCED_FORM_NAME, SEARCH_BAR_ADVANCED_FORM_PICKER_ID,
searchAdvancedData,
setSearchValueFromAdvancedData
-} from '~/store/search-bar/search-bar-actions';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { CloseIcon } from '~/components/icon/icon';
-import { SearchBarAdvancedFormData } from '~/models/search-bar';
+} from 'store/search-bar/search-bar-actions';
+import { ArvadosTheme } from 'common/custom-theme';
+import { CloseIcon } from 'components/icon/icon';
+import { SearchBarAdvancedFormData } from 'models/search-bar';
import {
SearchBarTypeField, SearchBarClusterField, SearchBarProjectField, SearchBarTrashField,
SearchBarDateFromField, SearchBarDateToField, SearchBarPropertiesField,
SearchBarSaveSearchField, SearchBarQuerySearchField, SearchBarPastVersionsField
-} from '~/views-components/form-fields/search-bar-form-fields';
-import { treePickerActions } from "~/store/tree-picker/tree-picker-actions";
+} from 'views-components/form-fields/search-bar-form-fields';
+import { treePickerActions } from "store/tree-picker/tree-picker-actions";
type CssRules = 'container' | 'closeIcon' | 'label' | 'buttonWrapper'
| 'button' | 'circularProgress' | 'searchView' | 'selectGrid';
import * as React from 'react';
import { Paper, StyleRulesCallback, withStyles, WithStyles, List, ListItem, ListItemText } from '@material-ui/core';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
import Highlighter from "react-highlight-words";
-import { SearchBarSelectedItem } from "~/store/search-bar/search-bar-reducer";
+import { SearchBarSelectedItem } from "store/search-bar/search-bar-reducer";
type CssRules = 'searchView' | 'list' | 'listItem';
import * as React from 'react';
import { withStyles, WithStyles, StyleRulesCallback, List, ListItem, ListItemText } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { SearchBarSelectedItem } from "~/store/search-bar/search-bar-reducer";
+import { ArvadosTheme } from 'common/custom-theme';
+import { SearchBarSelectedItem } from "store/search-bar/search-bar-reducer";
type CssRules = 'root' | 'listItem' | 'listItemText';
import * as React from 'react';
import { withStyles, WithStyles, StyleRulesCallback, List, ListItem, ListItemText, ListItemSecondaryAction, Tooltip, IconButton } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { RemoveIcon, EditSavedQueryIcon } from '~/components/icon/icon';
-import { SearchBarAdvancedFormData } from '~/models/search-bar';
-import { SearchBarSelectedItem } from "~/store/search-bar/search-bar-reducer";
-import { getQueryFromAdvancedData } from "~/store/search-bar/search-bar-actions";
+import { ArvadosTheme } from 'common/custom-theme';
+import { RemoveIcon, EditSavedQueryIcon } from 'components/icon/icon';
+import { SearchBarAdvancedFormData } from 'models/search-bar';
+import { SearchBarSelectedItem } from "store/search-bar/search-bar-reducer";
+import { getQueryFromAdvancedData } from "store/search-bar/search-bar-actions";
type CssRules = 'root' | 'listItem' | 'listItemText' | 'button';
} from '@material-ui/core';
import SearchIcon from '@material-ui/icons/Search';
import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { SearchView } from '~/store/search-bar/search-bar-reducer';
+import { ArvadosTheme } from 'common/custom-theme';
+import { SearchView } from 'store/search-bar/search-bar-reducer';
import {
SearchBarBasicView,
SearchBarBasicViewDataProps,
SearchBarBasicViewActionProps
-} from '~/views-components/search-bar/search-bar-basic-view';
+} from 'views-components/search-bar/search-bar-basic-view';
import {
SearchBarAutocompleteView,
SearchBarAutocompleteViewDataProps,
SearchBarAutocompleteViewActionProps
-} from '~/views-components/search-bar/search-bar-autocomplete-view';
+} from 'views-components/search-bar/search-bar-autocomplete-view';
import {
SearchBarAdvancedView,
SearchBarAdvancedViewDataProps,
SearchBarAdvancedViewActionProps
-} from '~/views-components/search-bar/search-bar-advanced-view';
-import { KEY_CODE_DOWN, KEY_CODE_ESC, KEY_CODE_UP, KEY_ENTER } from "~/common/codes";
+} from 'views-components/search-bar/search-bar-advanced-view';
+import { KEY_CODE_DOWN, KEY_CODE_ESC, KEY_CODE_UP, KEY_ENTER } from "common/codes";
import { debounce } from 'debounce';
-import { Vocabulary } from '~/models/vocabulary';
+import { Vocabulary } from 'models/vocabulary';
import { connectVocabulary } from '../resource-properties-form/property-field-common';
type CssRules = 'container' | 'containerSearchViewOpened' | 'input' | 'view';
// SPDX-License-Identifier: AGPL-3.0
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
import {
goToView,
editSavedQuery,
changeData,
submitData, moveUp, moveDown, setAdvancedDataFromSearchValue, SEARCH_BAR_ADVANCED_FORM_NAME
-} from '~/store/search-bar/search-bar-actions';
-import { SearchBarView, SearchBarActionProps, SearchBarDataProps } from '~/views-components/search-bar/search-bar-view';
-import { SearchBarAdvancedFormData } from '~/models/search-bar';
-import { Vocabulary } from '~/models/vocabulary';
+} from 'store/search-bar/search-bar-actions';
+import { SearchBarView, SearchBarActionProps, SearchBarDataProps } from 'views-components/search-bar/search-bar-view';
+import { SearchBarAdvancedFormData } from 'models/search-bar';
+import { Vocabulary } from 'models/vocabulary';
const mapStateToProps = ({ searchBar, form }: RootState): SearchBarDataProps => {
return {
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { Autocomplete } from '~/components/autocomplete/autocomplete';
+import { Autocomplete } from 'components/autocomplete/autocomplete';
import { connect, DispatchProp } from 'react-redux';
-import { ServiceRepository } from '~/services/services';
+import { ServiceRepository } from 'services/services';
import { FilterBuilder } from '../../services/api/filter-builder';
import { debounce } from 'debounce';
import { ListItemText, Typography } from '@material-ui/core';
import { noop } from 'lodash/fp';
-import { GroupClass, GroupResource } from '~/models/group';
-import { getUserDisplayName, UserResource } from '~/models/user';
-import { ResourceKind } from '~/models/resource';
-import { ListResults } from '~/services/common-service/common-service';
+import { GroupClass, GroupResource } from 'models/group';
+import { getUserDisplayName, UserResource } from 'models/user';
+import { ResourceKind } from 'models/resource';
+import { ListResults } from 'services/common-service/common-service';
export interface Participant {
name: string;
import * as React from 'react';
import { Dialog, DialogTitle, Button, Grid, DialogContent, CircularProgress, Paper } from '@material-ui/core';
-import { DialogActions } from '~/components/dialog-actions/dialog-actions';
+import { DialogActions } from 'components/dialog-actions/dialog-actions';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
import { connect } from 'react-redux';
import * as React from 'react';
-import { connectSharingDialog, saveSharingDialogChanges, connectSharingDialogProgress, sendSharingInvitations } from '~/store/sharing-dialog/sharing-dialog-actions';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { RootState } from '~/store/store';
+import { connectSharingDialog, saveSharingDialogChanges, connectSharingDialogProgress, sendSharingInvitations } from 'store/sharing-dialog/sharing-dialog-actions';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { RootState } from 'store/store';
import SharingDialogComponent, { SharingDialogDataProps, SharingDialogActionProps } from './sharing-dialog-component';
import { SharingDialogContent } from './sharing-dialog-content';
import { connectAdvancedViewSwitch, AdvancedViewSwitchInjectedProps } from './advanced-view-switch';
-import { hasChanges } from '~/store/sharing-dialog/sharing-dialog-types';
-import { WithProgressStateProps } from '~/store/progress-indicator/with-progress';
+import { hasChanges } from 'store/sharing-dialog/sharing-dialog-types';
+import { WithProgressStateProps } from 'store/progress-indicator/with-progress';
type Props = WithDialogProps<string> & AdvancedViewSwitchInjectedProps & WithProgressStateProps;
import { connect } from 'react-redux';
import { compose } from 'redux';
import SharingInvitationFormComponent from './sharing-invitation-form-component';
-import { SHARING_INVITATION_FORM_NAME } from '~/store/sharing-dialog/sharing-dialog-types';
-import { PermissionLevel } from '~/models/permission';
+import { SHARING_INVITATION_FORM_NAME } from 'store/sharing-dialog/sharing-dialog-types';
+import { PermissionLevel } from 'models/permission';
export const SharingInvitationForm = compose(
connect(() => ({
import { PermissionSelect, formatPermissionLevel, parsePermissionLevel } from './permission-select';
import { WithStyles } from '@material-ui/core/styles';
import withStyles from '@material-ui/core/styles/withStyles';
-import { CloseIcon } from '~/components/icon/icon';
+import { CloseIcon } from 'components/icon/icon';
export default () =>
import { reduxForm } from 'redux-form';
import SharingManagementFormComponent from './sharing-management-form-component';
-import { SHARING_MANAGEMENT_FORM_NAME } from '~/store/sharing-dialog/sharing-dialog-types';
+import { SHARING_MANAGEMENT_FORM_NAME } from 'store/sharing-dialog/sharing-dialog-types';
export const SharingManagementForm = reduxForm(
{ form: SHARING_MANAGEMENT_FORM_NAME }
import { WithStyles } from '@material-ui/core/styles';
import withStyles from '@material-ui/core/styles/withStyles';
import { VisibilityLevelSelect } from './visibility-level-select';
-import { VisibilityLevel } from '~/store/sharing-dialog/sharing-dialog-types';
+import { VisibilityLevel } from 'store/sharing-dialog/sharing-dialog-types';
const sharingPublicAccessStyles: StyleRulesCallback<'root'> = theme => ({
root: {
import { compose } from 'redux';
import { connect } from 'react-redux';
import SharingPublicAccessFormComponent from './sharing-public-access-form-component';
-import { SHARING_PUBLIC_ACCESS_FORM_NAME } from '~/store/sharing-dialog/sharing-dialog-types';
-import { RootState } from '~/store/store';
+import { SHARING_PUBLIC_ACCESS_FORM_NAME } from 'store/sharing-dialog/sharing-dialog-types';
+import { RootState } from 'store/store';
import { getSharingPublicAccessFormData } from '../../store/sharing-dialog/sharing-dialog-types';
export const SharingPublicAccessForm = compose(
import { WithStyles } from '@material-ui/core/styles';
import { SelectProps } from '@material-ui/core/Select';
import { SelectItem } from './select-item';
-import { VisibilityLevel } from '~/store/sharing-dialog/sharing-dialog-types';
+import { VisibilityLevel } from 'store/sharing-dialog/sharing-dialog-types';
type VisibilityLevelSelectClasses = 'value';
import * as React from 'react';
import { connect, DispatchProp } from 'react-redux';
-import { RootState } from '~/store/store';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { RootState } from 'store/store';
+import { ArvadosTheme } from 'common/custom-theme';
import { PopoverOrigin } from '@material-ui/core/Popover';
import { StyleRulesCallback, WithStyles, withStyles, Toolbar, Grid, Button, MenuItem, Menu } from '@material-ui/core';
-import { AddIcon, CollectionIcon, ProcessIcon, ProjectIcon } from '~/components/icon/icon';
-import { openProjectCreateDialog } from '~/store/projects/project-create-actions';
-import { openCollectionCreateDialog } from '~/store/collections/collection-create-actions';
-import { navigateToRunProcess } from '~/store/navigation/navigation-action';
-import { runProcessPanelActions } from '~/store/run-process-panel/run-process-panel-actions';
-import { getUserUuid } from '~/common/getuser';
-import { matchProjectRoute } from '~/routes/routes';
-import { GroupClass, GroupResource } from '~/models/group';
-import { ResourcesState, getResource } from '~/store/resources/resources';
-import { extractUuidKind, ResourceKind } from '~/models/resource';
-import { pluginConfig } from '~/plugins';
-import { ElementListReducer } from '~/common/plugintypes';
+import { AddIcon, CollectionIcon, ProcessIcon, ProjectIcon } from 'components/icon/icon';
+import { openProjectCreateDialog } from 'store/projects/project-create-actions';
+import { openCollectionCreateDialog } from 'store/collections/collection-create-actions';
+import { navigateToRunProcess } from 'store/navigation/navigation-action';
+import { runProcessPanelActions } from 'store/run-process-panel/run-process-panel-actions';
+import { getUserUuid } from 'common/getuser';
+import { matchProjectRoute } from 'routes/routes';
+import { GroupClass, GroupResource } from 'models/group';
+import { ResourcesState, getResource } from 'store/resources/resources';
+import { extractUuidKind, ResourceKind } from 'models/resource';
+import { pluginConfig } from 'plugins';
+import { ElementListReducer } from 'common/plugintypes';
import { Location } from 'history';
type CssRules = 'button' | 'menuItem' | 'icon';
import { Dispatch } from "redux";
import { connect } from "react-redux";
import { TreePicker, TreePickerProps } from "../tree-picker/tree-picker";
-import { TreeItem } from "~/components/tree/tree";
-import { ProjectResource } from "~/models/project";
-import { ListItemTextIcon } from "~/components/list-item-text-icon/list-item-text-icon";
-import { ProcessIcon, ProjectIcon, FilterGroupIcon, FavoriteIcon, ProjectsIcon, ShareMeIcon, TrashIcon, PublicFavoriteIcon } from '~/components/icon/icon';
-import { WorkflowIcon } from '~/components/icon/icon';
-import { activateSidePanelTreeItem, toggleSidePanelTreeItemCollapse, SIDE_PANEL_TREE, SidePanelTreeCategory } from '~/store/side-panel-tree/side-panel-tree-actions';
-import { openSidePanelContextMenu } from '~/store/context-menu/context-menu-actions';
+import { TreeItem } from "components/tree/tree";
+import { ProjectResource } from "models/project";
+import { ListItemTextIcon } from "components/list-item-text-icon/list-item-text-icon";
+import { ProcessIcon, ProjectIcon, FilterGroupIcon, FavoriteIcon, ProjectsIcon, ShareMeIcon, TrashIcon, PublicFavoriteIcon } from 'components/icon/icon';
+import { WorkflowIcon } from 'components/icon/icon';
+import { activateSidePanelTreeItem, toggleSidePanelTreeItemCollapse, SIDE_PANEL_TREE, SidePanelTreeCategory } from 'store/side-panel-tree/side-panel-tree-actions';
+import { openSidePanelContextMenu } from 'store/context-menu/context-menu-actions';
import { noop } from 'lodash';
-import { ResourceKind } from "~/models/resource";
-import { IllegalNamingWarning } from "~/components/warning/warning";
-import { GroupClass } from "~/models/group";
+import { ResourceKind } from "models/resource";
+import { IllegalNamingWarning } from "components/warning/warning";
+import { GroupClass } from "models/group";
export interface SidePanelTreeProps {
onItemActivation: (id: string) => void;
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { SidePanelTree, SidePanelTreeProps } from '~/views-components/side-panel-tree/side-panel-tree';
+import { ArvadosTheme } from 'common/custom-theme';
+import { SidePanelTree, SidePanelTreeProps } from 'views-components/side-panel-tree/side-panel-tree';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
-import { navigateFromSidePanel } from '~/store/side-panel/side-panel-action';
+import { navigateFromSidePanel } from 'store/side-panel/side-panel-action';
import { Grid } from '@material-ui/core';
-import { SidePanelButton } from '~/views-components/side-panel-button/side-panel-button';
-import { RootState } from '~/store/store';
+import { SidePanelButton } from 'views-components/side-panel-button/side-panel-button';
+import { RootState } from 'store/store';
const DRAWER_WITDH = 240;
import * as React from "react";
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { RootState } from "~/store/store";
+import { RootState } from "store/store";
import { Button, IconButton, StyleRulesCallback, WithStyles, withStyles, SnackbarContent } from '@material-ui/core';
import MaterialSnackbar, { SnackbarOrigin } from "@material-ui/core/Snackbar";
-import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
-import { navigateTo } from '~/store/navigation/navigation-action';
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
+import { navigateTo } from 'store/navigation/navigation-action';
import WarningIcon from '@material-ui/icons/Warning';
import CheckCircleIcon from '@material-ui/icons/CheckCircle';
import ErrorIcon from '@material-ui/icons/Error';
import InfoIcon from '@material-ui/icons/Info';
import CloseIcon from '@material-ui/icons/Close';
-import { ArvadosTheme } from "~/common/custom-theme";
+import { ArvadosTheme } from "common/custom-theme";
import { amber, green } from "@material-ui/core/colors";
import * as classNames from 'classnames';
import * as React from "react";
import { compose } from 'redux';
import { withStyles, Dialog, DialogTitle, DialogContent, DialogActions, Button, StyleRulesCallback, WithStyles, Grid } from '@material-ui/core';
-import { WithDialogProps, withDialog } from "~/store/dialog/with-dialog";
-import { SSH_KEY_ATTRIBUTES_DIALOG } from '~/store/auth/auth-action-ssh';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { SshKeyResource } from "~/models/ssh-key";
+import { WithDialogProps, withDialog } from "store/dialog/with-dialog";
+import { SSH_KEY_ATTRIBUTES_DIALOG } from 'store/auth/auth-action-ssh';
+import { ArvadosTheme } from 'common/custom-theme';
+import { SshKeyResource } from "models/ssh-key";
type CssRules = 'root';
import * as React from "react";
import { compose } from 'redux';
import { withStyles, Dialog, DialogTitle, DialogContent, DialogActions, Button, StyleRulesCallback, WithStyles } from '@material-ui/core';
-import { WithDialogProps, withDialog } from "~/store/dialog/with-dialog";
-import { SSH_KEY_PUBLIC_KEY_DIALOG } from '~/store/auth/auth-action-ssh';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { DefaultCodeSnippet } from '~/components/default-code-snippet/default-code-snippet';
+import { WithDialogProps, withDialog } from "store/dialog/with-dialog";
+import { SSH_KEY_PUBLIC_KEY_DIALOG } from 'store/auth/auth-action-ssh';
+import { ArvadosTheme } from 'common/custom-theme';
+import { DefaultCodeSnippet } from 'components/default-code-snippet/default-code-snippet';
type CssRules = 'codeSnippet';
// SPDX-License-Identifier: AGPL-3.0
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { SSH_KEY_REMOVE_DIALOG, removeSshKey } from '~/store/auth/auth-action-ssh';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { SSH_KEY_REMOVE_DIALOG, removeSshKey } from 'store/auth/auth-action-ssh';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
Typography
} from '@material-ui/core';
import * as CopyToClipboard from 'react-copy-to-clipboard';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { withDialog } from '~/store/dialog/with-dialog';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
+import { ArvadosTheme } from 'common/custom-theme';
+import { withDialog } from 'store/dialog/with-dialog';
+import { WithDialogProps } from 'store/dialog/with-dialog';
import { connect, DispatchProp } from 'react-redux';
import {
TokenDialogData,
getTokenDialogData,
TOKEN_DIALOG_NAME,
-} from '~/store/token-dialog/token-dialog-actions';
-import { DefaultCodeSnippet } from '~/components/default-code-snippet/default-code-snippet';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getNewExtraToken } from '~/store/auth/auth-action';
-import { DetailsAttributeComponent } from '~/components/details-attribute/details-attribute';
+} from 'store/token-dialog/token-dialog-actions';
+import { DefaultCodeSnippet } from 'components/default-code-snippet/default-code-snippet';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getNewExtraToken } from 'store/auth/auth-action';
+import { DetailsAttributeComponent } from 'components/details-attribute/details-attribute';
import * as moment from 'moment';
type CssRules = 'link' | 'paper' | 'button' | 'actionButton' | 'codeBlock';
// SPDX-License-Identifier: AGPL-3.0
import { connect } from "react-redux";
-import { Tree, TreeProps, TreeItem, TreeItemStatus } from "~/components/tree/tree";
-import { RootState } from "~/store/store";
-import { getNodeChildrenIds, Tree as Ttree, createTree, getNode, TreeNodeStatus } from '~/models/tree';
+import { Tree, TreeProps, TreeItem, TreeItemStatus } from "components/tree/tree";
+import { RootState } from "store/store";
+import { getNodeChildrenIds, Tree as Ttree, createTree, getNode, TreeNodeStatus } from 'models/tree';
import { Dispatch } from "redux";
import { initTreeNode } from '../../models/tree';
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Grid } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
import { WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose } from "redux";
-import { USER_ATTRIBUTES_DIALOG } from "~/store/users/users-actions";
-import { UserResource } from "~/models/user";
+import { USER_ATTRIBUTES_DIALOG } from "store/users/users-actions";
+import { UserResource } from "models/user";
type CssRules = 'rightContainer' | 'leftContainer' | 'spacing';
import { compose, Dispatch } from "redux";
import { connect } from "react-redux";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
import { WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { USER_MANAGEMENT_DIALOG, openSetupShellAccount, loginAs } from "~/store/users/users-actions";
-import { getUserDisplayName } from "~/models/user";
+import { ArvadosTheme } from 'common/custom-theme';
+import { USER_MANAGEMENT_DIALOG, openSetupShellAccount, loginAs } from "store/users/users-actions";
+import { getUserDisplayName } from "models/user";
type CssRules = 'spacing';
import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Grid } from "@material-ui/core";
-import { WithDialogProps } from "~/store/dialog/with-dialog";
-import { withDialog } from '~/store/dialog/with-dialog';
-import { VIRTUAL_MACHINE_ATTRIBUTES_DIALOG } from "~/store/virtual-machines/virtual-machines-actions";
+import { WithDialogProps } from "store/dialog/with-dialog";
+import { withDialog } from 'store/dialog/with-dialog';
+import { VIRTUAL_MACHINE_ATTRIBUTES_DIALOG } from "store/virtual-machines/virtual-machines-actions";
import { WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose } from "redux";
-import { VirtualMachinesResource } from "~/models/virtual-machines";
+import { VirtualMachinesResource } from "models/virtual-machines";
type CssRules = 'rightContainer' | 'leftContainer' | 'spacing';
import { Dispatch, compose } from 'redux';
import { connect } from "react-redux";
-import { ConfirmationDialog } from "~/components/confirmation-dialog/confirmation-dialog";
-import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog";
-import { VIRTUAL_MACHINE_REMOVE_DIALOG, removeVirtualMachine } from '~/store/virtual-machines/virtual-machines-actions';
+import { ConfirmationDialog } from "components/confirmation-dialog/confirmation-dialog";
+import { withDialog, WithDialogProps } from "store/dialog/with-dialog";
+import { VIRTUAL_MACHINE_REMOVE_DIALOG, removeVirtualMachine } from 'store/virtual-machines/virtual-machines-actions';
const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
onConfirm: () => {
import { mount, configure, shallow } from 'enzyme';
import * as Adapter from "enzyme-adapter-react-16";
import { MuiThemeProvider, WithStyles } from '@material-ui/core';
-import { CustomTheme } from '~/common/custom-theme';
+import { CustomTheme } from 'common/custom-theme';
import { WebDavS3InfoDialog, CssRules } from './webdav-s3-dialog';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { WebDavS3InfoDialogData, COLLECTION_WEBDAV_S3_DIALOG_NAME } from '~/store/collections/collection-info-actions';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { WebDavS3InfoDialogData, COLLECTION_WEBDAV_S3_DIALOG_NAME } from 'store/collections/collection-info-actions';
import { Provider } from "react-redux";
import { createStore, combineReducers } from 'redux';
-import { configureStore, RootStore } from '~/store/store';
+import { configureStore, RootStore } from 'store/store';
import { createBrowserHistory } from "history";
-import { createServices } from "~/services/services";
+import { createServices } from "services/services";
configure({ adapter: new Adapter() });
import * as React from "react";
import { Dialog, DialogActions, Button, StyleRulesCallback, WithStyles, withStyles, CardHeader, Tab, Tabs } from '@material-ui/core';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { COLLECTION_WEBDAV_S3_DIALOG_NAME, WebDavS3InfoDialogData } from '~/store/collections/collection-info-actions';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
+import { withDialog } from "store/dialog/with-dialog";
+import { COLLECTION_WEBDAV_S3_DIALOG_NAME, WebDavS3InfoDialogData } from 'store/collections/collection-info-actions';
+import { WithDialogProps } from 'store/dialog/with-dialog';
import { compose } from 'redux';
-import { DetailsAttribute } from "~/components/details-attribute/details-attribute";
-import { DownloadIcon } from "~/components/icon/icon";
+import { DetailsAttribute } from "components/details-attribute/details-attribute";
+import { DownloadIcon } from "components/icon/icon";
export type CssRules = 'details' | 'downloadButton';
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { connect, DispatchProp } from 'react-redux';
-import { DataColumns } from '~/components/data-table/data-table';
+import { DataColumns } from 'components/data-table/data-table';
import { RouteComponentProps } from 'react-router';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ResourceKind } from '~/models/resource';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { ALL_PROCESSES_PANEL_ID } from '~/store/all-processes-panel/all-processes-panel-action';
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
+import { SortDirection } from 'components/data-table/data-column';
+import { ResourceKind } from 'models/resource';
+import { ArvadosTheme } from 'common/custom-theme';
+import { ALL_PROCESSES_PANEL_ID } from 'store/all-processes-panel/all-processes-panel-action';
import {
ProcessStatus,
ResourceName,
ResourceType,
ContainerRunTime,
ResourceCreatedAtDate
-} from '~/views-components/data-explorer/renderers';
-import { ProcessIcon } from '~/components/icon/icon';
-import { openProcessContextMenu } from '~/store/context-menu/context-menu-actions';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { ContainerRequestState } from "~/models/container-request";
-import { RootState } from '~/store/store';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { createTree } from '~/models/tree';
-import { getInitialProcessStatusFilters, getInitialProcessTypeFilters } from '~/store/resource-type-filters/resource-type-filters';
-import { getProcess } from '~/store/processes/process';
-import { ResourcesState } from '~/store/resources/resources';
+} from 'views-components/data-explorer/renderers';
+import { ProcessIcon } from 'components/icon/icon';
+import { openProcessContextMenu } from 'store/context-menu/context-menu-actions';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { ContainerRequestState } from "models/container-request";
+import { RootState } from 'store/store';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { createTree } from 'models/tree';
+import { getInitialProcessStatusFilters, getInitialProcessTypeFilters } from 'store/resource-type-filters/resource-type-filters';
+import { getProcess } from 'store/processes/process';
+import { ResourcesState } from 'store/resources/resources';
type CssRules = "toolbar" | "button";
import {
StyleRulesCallback, WithStyles, withStyles, Card, CardContent, Grid, Tooltip, IconButton
} from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { HelpIcon, ShareMeIcon } from '~/components/icon/icon';
-import { createTree } from '~/models/tree';
-import { DataColumns } from '~/components/data-table/data-table';
-import { SortDirection } from '~/components/data-table/data-column';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
+import { ArvadosTheme } from 'common/custom-theme';
+import { HelpIcon, ShareMeIcon } from 'components/icon/icon';
+import { createTree } from 'models/tree';
+import { DataColumns } from 'components/data-table/data-table';
+import { SortDirection } from 'components/data-table/data-column';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
import { API_CLIENT_AUTHORIZATION_PANEL_ID } from '../../store/api-client-authorizations/api-client-authorizations-actions';
-import { DataExplorer } from '~/views-components/data-explorer/data-explorer';
-import { ResourcesState } from '~/store/resources/resources';
+import { DataExplorer } from 'views-components/data-explorer/data-explorer';
+import { ResourcesState } from 'store/resources/resources';
import {
CommonUuid, TokenApiClientId, TokenApiToken, TokenCreatedByIpAddress, TokenDefaultOwnerUuid, TokenExpiresAt,
TokenLastUsedAt, TokenLastUsedByIpAddress, TokenScopes, TokenUserId
-} from '~/views-components/data-explorer/renderers';
+} from 'views-components/data-explorer/renderers';
type CssRules = 'card' | 'cardContent' | 'helpIconGrid';
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
import {
ApiClientAuthorizationPanelRoot,
ApiClientAuthorizationPanelRootDataProps,
ApiClientAuthorizationPanelRootActionProps
-} from '~/views/api-client-authorization-panel/api-client-authorization-panel-root';
-import { openApiClientAuthorizationContextMenu } from '~/store/context-menu/context-menu-actions';
-import { openApiClientAuthorizationsHelpDialog } from '~/store/api-client-authorizations/api-client-authorizations-actions';
+} from 'views/api-client-authorization-panel/api-client-authorization-panel-root';
+import { openApiClientAuthorizationContextMenu } from 'store/context-menu/context-menu-actions';
+import { openApiClientAuthorizationsHelpDialog } from 'store/api-client-authorizations/api-client-authorizations-actions';
const mapStateToProps = (state: RootState): ApiClientAuthorizationPanelRootDataProps => {
return {
Grid,
Button
} from '@material-ui/core';
-import { CollectionIcon } from '~/components/icon/icon';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { BackIcon } from '~/components/icon/icon';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { COLLECTIONS_CONTENT_ADDRESS_PANEL_ID } from '~/store/collections-content-address-panel/collections-content-address-panel-actions';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
+import { CollectionIcon } from 'components/icon/icon';
+import { ArvadosTheme } from 'common/custom-theme';
+import { BackIcon } from 'components/icon/icon';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { COLLECTIONS_CONTENT_ADDRESS_PANEL_ID } from 'store/collections-content-address-panel/collections-content-address-panel-actions';
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { Dispatch } from 'redux';
import {
resourceUuidToContextMenuKind,
openContextMenu
-} from '~/store/context-menu/context-menu-actions';
-import { ResourceKind } from '~/models/resource';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
+} from 'store/context-menu/context-menu-actions';
+import { ResourceKind } from 'models/resource';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
import { connect } from 'react-redux';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { DataColumns } from '~/components/data-table/data-table';
-import { SortDirection } from '~/components/data-table/data-column';
-import { createTree } from '~/models/tree';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { DataColumns } from 'components/data-table/data-table';
+import { SortDirection } from 'components/data-table/data-column';
+import { createTree } from 'models/tree';
import {
ResourceName,
ResourceOwnerName,
ResourceLastModifiedDate,
ResourceStatus
-} from '~/views-components/data-explorer/renderers';
+} from 'views-components/data-explorer/renderers';
type CssRules = 'backLink' | 'backIcon' | 'card' | 'title' | 'iconHeader' | 'link';
} from '@material-ui/core';
import { connect, DispatchProp } from "react-redux";
import { RouteComponentProps } from 'react-router';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { RootState } from '~/store/store';
-import { MoreOptionsIcon, CollectionIcon, ReadOnlyIcon, ExpandIcon, CollectionOldVersionIcon } from '~/components/icon/icon';
-import { DetailsAttribute } from '~/components/details-attribute/details-attribute';
-import { CollectionResource, getCollectionUrl } from '~/models/collection';
-import { CollectionPanelFiles } from '~/views-components/collection-panel-files/collection-panel-files';
+import { ArvadosTheme } from 'common/custom-theme';
+import { RootState } from 'store/store';
+import { MoreOptionsIcon, CollectionIcon, ReadOnlyIcon, ExpandIcon, CollectionOldVersionIcon } from 'components/icon/icon';
+import { DetailsAttribute } from 'components/details-attribute/details-attribute';
+import { CollectionResource, getCollectionUrl } from 'models/collection';
+import { CollectionPanelFiles } from 'views-components/collection-panel-files/collection-panel-files';
import { CollectionTagForm } from './collection-tag-form';
-import { deleteCollectionTag, navigateToProcess, collectionPanelActions } from '~/store/collection-panel/collection-panel-action';
-import { getResource } from '~/store/resources/resources';
-import { openContextMenu, resourceUuidToContextMenuKind } from '~/store/context-menu/context-menu-actions';
-import { formatDate, formatFileSize } from "~/common/formatters";
-import { openDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
-import { getPropertyChip } from '~/views-components/resource-properties-form/property-chip';
-import { IllegalNamingWarning } from '~/components/warning/warning';
-import { GroupResource } from '~/models/group';
-import { UserResource } from '~/models/user';
-import { getUserUuid } from '~/common/getuser';
-import { getProgressIndicator } from '~/store/progress-indicator/progress-indicator-reducer';
-import { COLLECTION_PANEL_LOAD_FILES, loadCollectionFiles, COLLECTION_PANEL_LOAD_FILES_THRESHOLD } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { deleteCollectionTag, navigateToProcess, collectionPanelActions } from 'store/collection-panel/collection-panel-action';
+import { getResource } from 'store/resources/resources';
+import { openContextMenu, resourceUuidToContextMenuKind } from 'store/context-menu/context-menu-actions';
+import { formatDate, formatFileSize } from "common/formatters";
+import { openDetailsPanel } from 'store/details-panel/details-panel-action';
+import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
+import { getPropertyChip } from 'views-components/resource-properties-form/property-chip';
+import { IllegalNamingWarning } from 'components/warning/warning';
+import { GroupResource } from 'models/group';
+import { UserResource } from 'models/user';
+import { getUserUuid } from 'common/getuser';
+import { getProgressIndicator } from 'store/progress-indicator/progress-indicator-reducer';
+import { COLLECTION_PANEL_LOAD_FILES, loadCollectionFiles, COLLECTION_PANEL_LOAD_FILES_THRESHOLD } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
import { Link } from 'react-router-dom';
import { Link as ButtonLink } from '@material-ui/core';
-import { ResourceOwnerWithName, ResponsiblePerson } from '~/views-components/data-explorer/renderers';
+import { ResourceOwnerWithName, ResponsiblePerson } from 'views-components/data-explorer/renderers';
type CssRules = 'root'
| 'button'
// SPDX-License-Identifier: AGPL-3.0
import { reduxForm, reset } from 'redux-form';
-import { createCollectionTag, COLLECTION_TAG_FORM_NAME } from '~/store/collection-panel/collection-panel-action';
-import { ResourcePropertiesForm, ResourcePropertiesFormData } from '~/views-components/resource-properties-form/resource-properties-form';
+import { createCollectionTag, COLLECTION_TAG_FORM_NAME } from 'store/collection-panel/collection-panel-action';
+import { ResourcePropertiesForm, ResourcePropertiesFormData } from 'views-components/resource-properties-form/resource-properties-form';
import { withStyles } from '@material-ui/core';
const Form = withStyles(({ spacing }) => ({ container: { marginBottom: spacing.unit * 2 } }))(ResourcePropertiesForm);
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { ShareMeIcon } from '~/components/icon/icon';
-import { DataExplorer } from '~/views-components/data-explorer/data-explorer';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { COMPUTE_NODE_PANEL_ID } from '~/store/compute-nodes/compute-nodes-actions';
-import { DataColumns } from '~/components/data-table/data-table';
-import { SortDirection } from '~/components/data-table/data-column';
-import { createTree } from '~/models/tree';
+import { ShareMeIcon } from 'components/icon/icon';
+import { DataExplorer } from 'views-components/data-explorer/data-explorer';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { COMPUTE_NODE_PANEL_ID } from 'store/compute-nodes/compute-nodes-actions';
+import { DataColumns } from 'components/data-table/data-table';
+import { SortDirection } from 'components/data-table/data-column';
+import { createTree } from 'models/tree';
import {
ComputeNodeInfo, ComputeNodeDomain, ComputeNodeHostname, ComputeNodeJobUuid,
ComputeNodeFirstPingAt, ComputeNodeLastPingAt, ComputeNodeIpAddress, CommonUuid
-} from '~/views-components/data-explorer/renderers';
-import { ResourcesState } from '~/store/resources/resources';
+} from 'views-components/data-explorer/renderers';
+import { ResourcesState } from 'store/resources/resources';
export enum ComputeNodePanelColumnNames {
INFO = 'Info',
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
import {
ComputeNodePanelRoot,
ComputeNodePanelRootDataProps,
ComputeNodePanelRootActionProps
-} from '~/views/compute-node-panel/compute-node-panel-root';
-import { openComputeNodeContextMenu } from '~/store/context-menu/context-menu-actions';
+} from 'views/compute-node-panel/compute-node-panel-root';
+import { openComputeNodeContextMenu } from 'store/context-menu/context-menu-actions';
const mapStateToProps = (state: RootState): ComputeNodePanelRootDataProps => {
return {
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { connect, DispatchProp } from 'react-redux';
-import { DataColumns } from '~/components/data-table/data-table';
+import { DataColumns } from 'components/data-table/data-table';
import { RouteComponentProps } from 'react-router';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ResourceKind } from '~/models/resource';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { FAVORITE_PANEL_ID } from "~/store/favorite-panel/favorite-panel-action";
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
+import { SortDirection } from 'components/data-table/data-column';
+import { ResourceKind } from 'models/resource';
+import { ArvadosTheme } from 'common/custom-theme';
+import { FAVORITE_PANEL_ID } from "store/favorite-panel/favorite-panel-action";
import {
ProcessStatus,
ResourceFileSize,
ResourceName,
ResourceOwner,
ResourceType
-} from '~/views-components/data-explorer/renderers';
-import { FavoriteIcon } from '~/components/icon/icon';
+} from 'views-components/data-explorer/renderers';
+import { FavoriteIcon } from 'components/icon/icon';
import {
openContextMenu,
resourceUuidToContextMenuKind
-} from '~/store/context-menu/context-menu-actions';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { ContainerRequestState } from "~/models/container-request";
-import { FavoritesState } from '~/store/favorites/favorites-reducer';
-import { RootState } from '~/store/store';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { createTree } from '~/models/tree';
-import { getSimpleObjectTypeFilters } from '~/store/resource-type-filters/resource-type-filters';
-import { ResourcesState } from '~/store/resources/resources';
+} from 'store/context-menu/context-menu-actions';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { ContainerRequestState } from "models/container-request";
+import { FavoritesState } from 'store/favorites/favorites-reducer';
+import { RootState } from 'store/store';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { createTree } from 'models/tree';
+import { getSimpleObjectTypeFilters } from 'store/resource-type-filters/resource-type-filters';
+import { ResourcesState } from 'store/resources/resources';
type CssRules = "toolbar" | "button";
import * as React from 'react';
import { connect } from 'react-redux';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
-import { DataColumns } from '~/components/data-table/data-table';
-import { ResourceUuid, ResourceFirstName, ResourceLastName, ResourceEmail, ResourceUsername } from '~/views-components/data-explorer/renderers';
-import { createTree } from '~/models/tree';
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
+import { DataColumns } from 'components/data-table/data-table';
+import { ResourceUuid, ResourceFirstName, ResourceLastName, ResourceEmail, ResourceUsername } from 'views-components/data-explorer/renderers';
+import { createTree } from 'models/tree';
import { noop } from 'lodash/fp';
-import { RootState } from '~/store/store';
-import { GROUP_DETAILS_PANEL_ID, openAddGroupMembersDialog } from '~/store/group-details-panel/group-details-panel-actions';
-import { openContextMenu } from '~/store/context-menu/context-menu-actions';
-import { ResourcesState, getResource } from '~/store/resources/resources';
-import { ContextMenuKind } from '~/views-components/context-menu/context-menu';
-import { PermissionResource } from '~/models/permission';
+import { RootState } from 'store/store';
+import { GROUP_DETAILS_PANEL_ID, openAddGroupMembersDialog } from 'store/group-details-panel/group-details-panel-actions';
+import { openContextMenu } from 'store/context-menu/context-menu-actions';
+import { ResourcesState, getResource } from 'store/resources/resources';
+import { ContextMenuKind } from 'views-components/context-menu/context-menu';
+import { PermissionResource } from 'models/permission';
import { Grid, Button } from '@material-ui/core';
-import { AddIcon } from '~/components/icon/icon';
+import { AddIcon } from 'components/icon/icon';
export enum GroupDetailsPanelColumnNames {
FIRST_NAME = "First name",
import * as React from 'react';
import { connect } from 'react-redux';
import { Grid, Button, Typography } from "@material-ui/core";
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
-import { DataColumns } from '~/components/data-table/data-table';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ResourceOwner } from '~/views-components/data-explorer/renderers';
-import { AddIcon } from '~/components/icon/icon';
-import { ResourceName } from '~/views-components/data-explorer/renderers';
-import { createTree } from '~/models/tree';
-import { GROUPS_PANEL_ID, openCreateGroupDialog } from '~/store/groups-panel/groups-panel-actions';
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
+import { DataColumns } from 'components/data-table/data-table';
+import { SortDirection } from 'components/data-table/data-column';
+import { ResourceOwner } from 'views-components/data-explorer/renderers';
+import { AddIcon } from 'components/icon/icon';
+import { ResourceName } from 'views-components/data-explorer/renderers';
+import { createTree } from 'models/tree';
+import { GROUPS_PANEL_ID, openCreateGroupDialog } from 'store/groups-panel/groups-panel-actions';
import { noop } from 'lodash/fp';
-import { ContextMenuKind } from '~/views-components/context-menu/context-menu';
-import { getResource, ResourcesState, filterResources } from '~/store/resources/resources';
-import { GroupResource } from '~/models/group';
-import { RootState } from '~/store/store';
-import { openContextMenu } from '~/store/context-menu/context-menu-actions';
-import { ResourceKind } from '~/models/resource';
-import { LinkClass, LinkResource } from '~/models/link';
-import { navigateToGroupDetails } from '~/store/navigation/navigation-action';
+import { ContextMenuKind } from 'views-components/context-menu/context-menu';
+import { getResource, ResourcesState, filterResources } from 'store/resources/resources';
+import { GroupResource } from 'models/group';
+import { RootState } from 'store/store';
+import { openContextMenu } from 'store/context-menu/context-menu-actions';
+import { ResourceKind } from 'models/resource';
+import { LinkClass, LinkResource } from 'models/link';
+import { navigateToGroupDetails } from 'store/navigation/navigation-action';
export enum GroupsPanelColumnNames {
GROUP = "Name",
import { connect } from 'react-redux';
import { Grid, Typography, Button } from '@material-ui/core';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { navigateToLinkAccount } from '~/store/navigation/navigation-action';
-import { RootState } from '~/store/store';
+import { ArvadosTheme } from 'common/custom-theme';
+import { navigateToLinkAccount } from 'store/navigation/navigation-action';
+import { RootState } from 'store/store';
type CssRules = 'root' | 'ontop' | 'title';
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles, Card, CardContent, Grid, Table, TableHead, TableRow, TableCell, TableBody, Tooltip, IconButton, Checkbox } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { MoreOptionsIcon } from '~/components/icon/icon';
-import { KeepServiceResource } from '~/models/keep-services';
+import { ArvadosTheme } from 'common/custom-theme';
+import { MoreOptionsIcon } from 'components/icon/icon';
+import { KeepServiceResource } from 'models/keep-services';
type CssRules = 'root' | 'tableRow';
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
import {
KeepServicePanelRoot,
KeepServicePanelRootDataProps,
KeepServicePanelRootActionProps
-} from '~/views/keep-service-panel/keep-service-panel-root';
-import { openKeepServiceContextMenu } from '~/store/context-menu/context-menu-actions';
+} from 'views/keep-service-panel/keep-service-panel-root';
+import { openKeepServiceContextMenu } from 'store/context-menu/context-menu-actions';
const mapStateToProps = (state: RootState): KeepServicePanelRootDataProps => {
return {
Select,
CircularProgress
} from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { UserResource } from "~/models/user";
-import { LinkAccountType } from "~/models/link-account";
-import { formatDate } from "~/common/formatters";
-import { LinkAccountPanelStatus, LinkAccountPanelError } from "~/store/link-account-panel/link-account-panel-reducer";
-import { Config } from '~/common/config';
+import { ArvadosTheme } from 'common/custom-theme';
+import { UserResource } from "models/user";
+import { LinkAccountType } from "models/link-account";
+import { formatDate } from "common/formatters";
+import { LinkAccountPanelStatus, LinkAccountPanelError } from "store/link-account-panel/link-account-panel-reducer";
+import { Config } from 'common/config';
type CssRules = 'root';
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
-import { startLinking, linkAccount, linkAccountPanelActions, cancelLinking } from '~/store/link-account-panel/link-account-panel-actions';
-import { LinkAccountType } from '~/models/link-account';
+import { startLinking, linkAccount, linkAccountPanelActions, cancelLinking } from 'store/link-account-panel/link-account-panel-actions';
+import { LinkAccountType } from 'models/link-account';
import {
LinkAccountPanelRoot,
LinkAccountPanelRootDataProps,
LinkAccountPanelRootActionProps
-} from '~/views/link-account-panel/link-account-panel-root';
+} from 'views/link-account-panel/link-account-panel-root';
const mapStateToProps = (state: RootState): LinkAccountPanelRootDataProps => {
return {
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { LINK_PANEL_ID } from '~/store/link-panel/link-panel-actions';
-import { DataExplorer } from '~/views-components/data-explorer/data-explorer';
-import { SortDirection } from '~/components/data-table/data-column';
-import { DataColumns } from '~/components/data-table/data-table';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { ResourcesState } from '~/store/resources/resources';
-import { ShareMeIcon } from '~/components/icon/icon';
-import { createTree } from '~/models/tree';
+import { LINK_PANEL_ID } from 'store/link-panel/link-panel-actions';
+import { DataExplorer } from 'views-components/data-explorer/data-explorer';
+import { SortDirection } from 'components/data-table/data-column';
+import { DataColumns } from 'components/data-table/data-table';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { ResourcesState } from 'store/resources/resources';
+import { ShareMeIcon } from 'components/icon/icon';
+import { createTree } from 'models/tree';
import {
ResourceLinkUuid, ResourceLinkHead, ResourceLinkTail,
ResourceLinkClass, ResourceLinkName }
-from '~/views-components/data-explorer/renderers';
+from 'views-components/data-explorer/renderers';
export enum LinkPanelColumnNames {
NAME = "Name",
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import {
openContextMenu,
resourceUuidToContextMenuKind
-} from '~/store/context-menu/context-menu-actions';
+} from 'store/context-menu/context-menu-actions';
import {
LinkPanelRoot,
LinkPanelRootActionProps,
LinkPanelRootDataProps
-} from '~/views/link-panel/link-panel-root';
-import { ResourceKind } from '~/models/resource';
+} from 'views/link-panel/link-panel-root';
+import { ResourceKind } from 'models/resource';
const mapStateToProps = (state: RootState): LinkPanelRootDataProps => {
return {
import { connect, DispatchProp } from 'react-redux';
import { Grid, Typography, Button, Select } from '@material-ui/core';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { login, authActions } from '~/store/auth/auth-action';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { RootState } from '~/store/store';
-import { LoginForm } from '~/views-components/login-form/login-form';
+import { login, authActions } from 'store/auth/auth-action';
+import { ArvadosTheme } from 'common/custom-theme';
+import { RootState } from 'store/store';
+import { LoginForm } from 'views-components/login-form/login-form';
import Axios from 'axios';
-import { Config } from '~/common/config';
+import { Config } from 'common/config';
type CssRules = 'root' | 'container' | 'title' | 'content' | 'content__bolder' | 'button';
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles, Grid, LinearProgress } from '@material-ui/core';
-import { User } from "~/models/user";
-import { ArvadosTheme } from '~/common/custom-theme';
-import { WorkbenchPanel } from '~/views/workbench/workbench';
-import { LoginPanel } from '~/views/login-panel/login-panel';
-import { InactivePanel } from '~/views/inactive-panel/inactive-panel';
-import { WorkbenchLoadingScreen } from '~/views/workbench/workbench-loading-screen';
-import { MainAppBar } from '~/views-components/main-app-bar/main-app-bar';
+import { User } from "models/user";
+import { ArvadosTheme } from 'common/custom-theme';
+import { WorkbenchPanel } from 'views/workbench/workbench';
+import { LoginPanel } from 'views/login-panel/login-panel';
+import { InactivePanel } from 'views/inactive-panel/inactive-panel';
+import { WorkbenchLoadingScreen } from 'views/workbench/workbench-loading-screen';
+import { MainAppBar } from 'views-components/main-app-bar/main-app-bar';
type CssRules = 'root';
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { connect } from 'react-redux';
import parse from 'parse-duration';
-import { MainPanelRoot, MainPanelRootDataProps } from '~/views/main-panel/main-panel-root';
-import { isSystemWorking } from '~/store/progress-indicator/progress-indicator-reducer';
-import { isWorkbenchLoading } from '~/store/workbench/workbench-actions';
-import { LinkAccountPanelStatus } from '~/store/link-account-panel/link-account-panel-reducer';
-import { matchLinkAccountRoute } from '~/routes/routes';
+import { MainPanelRoot, MainPanelRootDataProps } from 'views/main-panel/main-panel-root';
+import { isSystemWorking } from 'store/progress-indicator/progress-indicator-reducer';
+import { isWorkbenchLoading } from 'store/workbench/workbench-actions';
+import { LinkAccountPanelStatus } from 'store/link-account-panel/link-account-panel-reducer';
+import { matchLinkAccountRoute } from 'routes/routes';
const mapStateToProps = (state: RootState): MainPanelRootDataProps => {
return {
import * as React from 'react';
import { Field, InjectedFormProps, WrappedFieldProps } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
-import { NativeSelectField } from "~/components/select-field/select-field";
+import { TextField } from "components/text-field/text-field";
+import { NativeSelectField } from "components/select-field/select-field";
import {
StyleRulesCallback,
WithStyles,
Grid,
InputLabel
} from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { User } from "~/models/user";
-import { MY_ACCOUNT_VALIDATION } from "~/validators/validators";
+import { ArvadosTheme } from 'common/custom-theme';
+import { User } from "models/user";
+import { MY_ACCOUNT_VALIDATION } from "validators/validators";
type CssRules = 'root' | 'gridItem' | 'label' | 'title' | 'actions';
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { compose } from 'redux';
import { reduxForm, isPristine, isValid } from 'redux-form';
import { connect } from 'react-redux';
-import { saveEditedUser } from '~/store/my-account/my-account-panel-actions';
-import { MyAccountPanelRoot, MyAccountPanelRootDataProps } from '~/views/my-account-panel/my-account-panel-root';
-import { MY_ACCOUNT_FORM } from "~/store/my-account/my-account-panel-actions";
+import { saveEditedUser } from 'store/my-account/my-account-panel-actions';
+import { MyAccountPanelRoot, MyAccountPanelRootDataProps } from 'views/my-account-panel/my-account-panel-root';
+import { MY_ACCOUNT_FORM } from "store/my-account/my-account-panel-actions";
const mapStateToProps = (state: RootState): MyAccountPanelRootDataProps => ({
isPristine: isPristine(MY_ACCOUNT_FORM)(state),
import { mount, configure } from 'enzyme';
import * as Adapter from "enzyme-adapter-react-16";
import { StyledComponentProps, MuiThemeProvider } from '@material-ui/core';
-import { ClusterConfigJSON } from '~/common/config';
-import { CustomTheme } from '~/common/custom-theme';
+import { ClusterConfigJSON } from 'common/config';
+import { CustomTheme } from 'common/custom-theme';
import { NotFoundPanelRoot, NotFoundPanelRootDataProps, CssRules } from './not-found-panel-root';
configure({ adapter: new Adapter() });
import * as React from 'react';
import { Location } from 'history';
import { StyleRulesCallback, WithStyles, withStyles, Paper, Grid } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { ClusterConfigJSON } from '~/common/config';
+import { ArvadosTheme } from 'common/custom-theme';
+import { ClusterConfigJSON } from 'common/config';
export type CssRules = 'root' | 'title' | 'active';
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { connect } from 'react-redux';
-import { NotFoundPanelRoot, NotFoundPanelRootDataProps, NotFoundPanelOwnProps } from '~/views/not-found-panel/not-found-panel-root';
+import { NotFoundPanelRoot, NotFoundPanelRootDataProps, NotFoundPanelOwnProps } from 'views/not-found-panel/not-found-panel-root';
const mapStateToProps = (state: RootState): NotFoundPanelRootDataProps => {
return {
import * as React from 'react';
import { MuiThemeProvider, createMuiTheme, StyleRulesCallback, withStyles, WithStyles } from '@material-ui/core/styles';
-import { CodeSnippet } from '~/components/code-snippet/code-snippet';
+import { CodeSnippet } from 'components/code-snippet/code-snippet';
import grey from '@material-ui/core/colors/grey';
type CssRules = 'codeSnippet';
import * as React from 'react';
import { withStyles, WithStyles, StyleRulesCallback, FormControl, InputLabel, Select, MenuItem, Input } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { FilterOption } from './process-log-panel';
type CssRules = 'formControl';
StyleRulesCallback, WithStyles, withStyles, Card,
CardHeader, IconButton, CardContent, Grid, Typography, Tooltip
} from '@material-ui/core';
-import { Process } from '~/store/processes/process';
-import { ProcessLogCodeSnippet } from '~/views/process-log-panel/process-log-code-snippet';
-import { ProcessLogForm, ProcessLogFormDataProps, ProcessLogFormActionProps } from '~/views/process-log-panel/process-log-form';
-import { MoreOptionsIcon, ProcessIcon } from '~/components/icon/icon';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { CodeSnippetDataProps } from '~/components/code-snippet/code-snippet';
-import { BackIcon } from '~/components/icon/icon';
-import { DefaultView } from '~/components/default-view/default-view';
+import { Process } from 'store/processes/process';
+import { ProcessLogCodeSnippet } from 'views/process-log-panel/process-log-code-snippet';
+import { ProcessLogForm, ProcessLogFormDataProps, ProcessLogFormActionProps } from 'views/process-log-panel/process-log-form';
+import { MoreOptionsIcon, ProcessIcon } from 'components/icon/icon';
+import { ArvadosTheme } from 'common/custom-theme';
+import { CodeSnippetDataProps } from 'components/code-snippet/code-snippet';
+import { BackIcon } from 'components/icon/icon';
+import { DefaultView } from 'components/default-view/default-view';
type CssRules = 'backLink' | 'backIcon' | 'card' | 'title' | 'iconHeader' | 'link';
import * as React from 'react';
import { Grid } from '@material-ui/core';
-import { Process } from '~/store/processes/process';
-import { ProcessLogMainCard } from '~/views/process-log-panel/process-log-main-card';
-import { ProcessLogFormDataProps, ProcessLogFormActionProps } from '~/views/process-log-panel/process-log-form';
-import { DefaultView } from '~/components/default-view/default-view';
-import { ProcessIcon } from '~/components/icon/icon';
-import { CodeSnippetDataProps } from '~/components/code-snippet/code-snippet';
+import { Process } from 'store/processes/process';
+import { ProcessLogMainCard } from 'views/process-log-panel/process-log-main-card';
+import { ProcessLogFormDataProps, ProcessLogFormActionProps } from 'views/process-log-panel/process-log-form';
+import { DefaultView } from 'components/default-view/default-view';
+import { ProcessIcon } from 'components/icon/icon';
+import { CodeSnippetDataProps } from 'components/code-snippet/code-snippet';
import { ProcessLogMainCardActionProps } from './process-log-main-card';
export type ProcessLogPanelRootDataProps = {
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { connect } from 'react-redux';
-import { getProcess } from '~/store/processes/process';
+import { getProcess } from 'store/processes/process';
import { Dispatch } from 'redux';
-import { openProcessContextMenu } from '~/store/context-menu/context-menu-actions';
+import { openProcessContextMenu } from 'store/context-menu/context-menu-actions';
import { ProcessLogPanelRootDataProps, ProcessLogPanelRootActionProps, ProcessLogPanelRoot } from './process-log-panel-root';
-import { getProcessPanelLogs } from '~/store/process-logs-panel/process-logs-panel';
-import { setProcessLogsPanelFilter, navigateToLogCollection } from '~/store/process-logs-panel/process-logs-panel-actions';
-import { getProcessLogsPanelCurrentUuid } from '~/store/process-logs-panel/process-logs-panel';
+import { getProcessPanelLogs } from 'store/process-logs-panel/process-logs-panel';
+import { setProcessLogsPanelFilter, navigateToLogCollection } from 'store/process-logs-panel/process-logs-panel-actions';
+import { getProcessLogsPanelCurrentUuid } from 'store/process-logs-panel/process-logs-panel';
export interface Log {
object_uuid: string;
StyleRulesCallback, WithStyles, withStyles, Card,
CardHeader, IconButton, CardContent, Grid, Chip, Typography, Tooltip
} from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { MoreOptionsIcon, ProcessIcon } from '~/components/icon/icon';
-import { DetailsAttribute } from '~/components/details-attribute/details-attribute';
-import { Process } from '~/store/processes/process';
-import { getProcessStatus, getProcessStatusColor } from '~/store/processes/process';
-import { formatDate } from '~/common/formatters';
+import { ArvadosTheme } from 'common/custom-theme';
+import { MoreOptionsIcon, ProcessIcon } from 'components/icon/icon';
+import { DetailsAttribute } from 'components/details-attribute/details-attribute';
+import { Process } from 'store/processes/process';
+import { getProcessStatus, getProcessStatusColor } from 'store/processes/process';
+import { formatDate } from 'common/formatters';
import * as classNames from 'classnames';
-import { ContainerState } from '~/models/container';
+import { ContainerState } from 'models/container';
type CssRules = 'card' | 'iconHeader' | 'label' | 'value' | 'chip' | 'link' | 'content' | 'title' | 'avatar' | 'cancelButton';
import * as React from 'react';
import { Grid } from '@material-ui/core';
import { ProcessInformationCard } from './process-information-card';
-import { DefaultView } from '~/components/default-view/default-view';
-import { ProcessIcon } from '~/components/icon/icon';
-import { Process } from '~/store/processes/process';
-import { SubprocessPanel } from '~/views/subprocess-panel/subprocess-panel';
-import { SubprocessFilterDataProps } from '~/components/subprocess-filter/subprocess-filter';
+import { DefaultView } from 'components/default-view/default-view';
+import { ProcessIcon } from 'components/icon/icon';
+import { Process } from 'store/processes/process';
+import { SubprocessPanel } from 'views/subprocess-panel/subprocess-panel';
+import { SubprocessFilterDataProps } from 'components/subprocess-filter/subprocess-filter';
export interface ProcessPanelRootDataProps {
process?: Process;
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { connect } from 'react-redux';
-import { getProcess, getSubprocesses, Process, getProcessStatus } from '~/store/processes/process';
+import { getProcess, getSubprocesses, Process, getProcessStatus } from 'store/processes/process';
import { Dispatch } from 'redux';
-import { openProcessContextMenu } from '~/store/context-menu/context-menu-actions';
-import { matchProcessRoute } from '~/routes/routes';
+import { openProcessContextMenu } from 'store/context-menu/context-menu-actions';
+import { matchProcessRoute } from 'routes/routes';
import { ProcessPanelRootDataProps, ProcessPanelRootActionProps, ProcessPanelRoot } from './process-panel-root';
-import { ProcessPanel as ProcessPanelState} from '~/store/process-panel/process-panel';
+import { ProcessPanel as ProcessPanelState} from 'store/process-panel/process-panel';
import { groupBy } from 'lodash';
-import { toggleProcessPanelFilter, navigateToOutput, openWorkflow } from '~/store/process-panel/process-panel-actions';
-import { openProcessInputDialog } from '~/store/processes/process-input-actions';
-import { cancelRunningWorkflow } from '~/store/processes/processes-actions';
+import { toggleProcessPanelFilter, navigateToOutput, openWorkflow } from 'store/process-panel/process-panel-actions';
+import { openProcessInputDialog } from 'store/processes/process-input-actions';
+import { cancelRunningWorkflow } from 'store/processes/processes-actions';
const mapStateToProps = ({ router, resources, processPanel }: RootState): ProcessPanelRootDataProps => {
const pathname = router.location ? router.location.pathname : '';
import { RouteComponentProps } from 'react-router';
import { StyleRulesCallback, WithStyles } from "@material-ui/core";
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
-import { DataColumns } from '~/components/data-table/data-table';
-import { RootState } from '~/store/store';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
-import { ContainerRequestState } from '~/models/container-request';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ResourceKind, Resource } from '~/models/resource';
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
+import { DataColumns } from 'components/data-table/data-table';
+import { RootState } from 'store/store';
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
+import { ContainerRequestState } from 'models/container-request';
+import { SortDirection } from 'components/data-table/data-column';
+import { ResourceKind, Resource } from 'models/resource';
import {
ResourceFileSize,
ResourceLastModifiedDate,
ProcessStatus,
ResourceType,
ResourceOwner
-} from '~/views-components/data-explorer/renderers';
-import { ProjectIcon } from '~/components/icon/icon';
-import { ResourceName } from '~/views-components/data-explorer/renderers';
+} from 'views-components/data-explorer/renderers';
+import { ProjectIcon } from 'components/icon/icon';
+import { ResourceName } from 'views-components/data-explorer/renderers';
import {
ResourcesState,
getResource
-} from '~/store/resources/resources';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
+} from 'store/resources/resources';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
import {
openContextMenu,
resourceUuidToContextMenuKind
-} from '~/store/context-menu/context-menu-actions';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { getProperty } from '~/store/properties/properties';
-import { PROJECT_PANEL_CURRENT_UUID } from '~/store/project-panel/project-panel-action';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { ArvadosTheme } from "~/common/custom-theme";
-import { createTree } from '~/models/tree';
+} from 'store/context-menu/context-menu-actions';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { getProperty } from 'store/properties/properties';
+import { PROJECT_PANEL_CURRENT_UUID } from 'store/project-panel/project-panel-action';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { ArvadosTheme } from "common/custom-theme";
+import { createTree } from 'models/tree';
import {
getInitialResourceTypeFilters,
getInitialProcessStatusFilters
-} from '~/store/resource-type-filters/resource-type-filters';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
-import { GroupClass, GroupResource } from '~/models/group';
+} from 'store/resource-type-filters/resource-type-filters';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
+import { GroupClass, GroupResource } from 'models/group';
type CssRules = 'root' | "button";
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { connect, DispatchProp } from 'react-redux';
-import { DataColumns } from '~/components/data-table/data-table';
+import { DataColumns } from 'components/data-table/data-table';
import { RouteComponentProps } from 'react-router';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ResourceKind } from '~/models/resource';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
+import { SortDirection } from 'components/data-table/data-column';
+import { ResourceKind } from 'models/resource';
+import { ArvadosTheme } from 'common/custom-theme';
import {
ProcessStatus,
ResourceFileSize,
ResourceType,
ResourceName,
ResourceOwner
-} from '~/views-components/data-explorer/renderers';
-import { PublicFavoriteIcon } from '~/components/icon/icon';
+} from 'views-components/data-explorer/renderers';
+import { PublicFavoriteIcon } from 'components/icon/icon';
import { Dispatch } from 'redux';
import {
openContextMenu,
resourceUuidToContextMenuKind
-} from '~/store/context-menu/context-menu-actions';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { ContainerRequestState } from "~/models/container-request";
-import { RootState } from '~/store/store';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { createTree } from '~/models/tree';
-import { getSimpleObjectTypeFilters } from '~/store/resource-type-filters/resource-type-filters';
-import { PUBLIC_FAVORITE_PANEL_ID } from '~/store/public-favorites-panel/public-favorites-action';
-import { PublicFavoritesState } from '~/store/public-favorites/public-favorites-reducer';
+} from 'store/context-menu/context-menu-actions';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { ContainerRequestState } from "models/container-request";
+import { RootState } from 'store/store';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { createTree } from 'models/tree';
+import { getSimpleObjectTypeFilters } from 'store/resource-type-filters/resource-type-filters';
+import { PUBLIC_FAVORITE_PANEL_ID } from 'store/public-favorites-panel/public-favorites-action';
+import { PublicFavoritesState } from 'store/public-favorites/public-favorites-reducer';
type CssRules = "toolbar" | "button";
import { connect } from 'react-redux';
import { Grid, Typography, Button, Card, CardContent, TableBody, TableCell, TableHead, TableRow, Table, Tooltip, IconButton } from '@material-ui/core';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { Link } from 'react-router-dom';
import { Dispatch, compose } from 'redux';
-import { RootState } from '~/store/store';
-import { HelpIcon, AddIcon, MoreOptionsIcon } from '~/components/icon/icon';
-import { loadRepositoriesData, openRepositoriesSampleGitDialog, openRepositoryCreateDialog } from '~/store/repositories/repositories-actions';
-import { RepositoryResource } from '~/models/repositories';
-import { openRepositoryContextMenu } from '~/store/context-menu/context-menu-actions';
-import { Routes } from '~/routes/routes';
+import { RootState } from 'store/store';
+import { HelpIcon, AddIcon, MoreOptionsIcon } from 'components/icon/icon';
+import { loadRepositoriesData, openRepositoriesSampleGitDialog, openRepositoryCreateDialog } from 'store/repositories/repositories-actions';
+import { RepositoryResource } from 'models/repositories';
+import { openRepositoryContextMenu } from 'store/context-menu/context-menu-actions';
+import { Routes } from 'routes/routes';
type CssRules = 'link' | 'button' | 'icon' | 'iconRow' | 'moreOptionsButton' | 'moreOptions' | 'cloneUrls';
import * as React from 'react';
import { memoize } from 'lodash/fp';
-import { BooleanCommandInputParameter } from '~/models/workflow';
+import { BooleanCommandInputParameter } from 'models/workflow';
import { Field } from 'redux-form';
import { Switch } from '@material-ui/core';
import { GenericInputProps, GenericInput } from './generic-input';
DirectoryArrayCommandInputParameter,
Directory,
CWLType
-} from '~/models/workflow';
+} from 'models/workflow';
import { Field } from 'redux-form';
-import { ERROR_MESSAGE } from '~/validators/require';
+import { ERROR_MESSAGE } from 'validators/require';
import { Input, Dialog, DialogTitle, DialogContent, DialogActions, Button, Divider, WithStyles, Typography } from '@material-ui/core';
import { GenericInputProps, GenericInput } from './generic-input';
-import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker';
+import { ProjectsTreePicker } from 'views-components/projects-tree-picker/projects-tree-picker';
import { connect, DispatchProp } from 'react-redux';
-import { initProjectsTreePicker, getSelectedNodes, treePickerActions, getProjectsTreePickerIds, getAllNodes } from '~/store/tree-picker/tree-picker-actions';
-import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
+import { initProjectsTreePicker, getSelectedNodes, treePickerActions, getProjectsTreePickerIds, getAllNodes } from 'store/tree-picker/tree-picker-actions';
+import { ProjectsTreePickerItem } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
import { createSelector, createStructuredSelector } from 'reselect';
-import { ChipsInput } from '~/components/chips-input/chips-input';
+import { ChipsInput } from 'components/chips-input/chips-input';
import { identity, values, noop } from 'lodash';
import { InputProps } from '@material-ui/core/Input';
-import { TreePicker } from '~/store/tree-picker/tree-picker';
-import { RootState } from '~/store/store';
-import { Chips } from '~/components/chips/chips';
+import { TreePicker } from 'store/tree-picker/tree-picker';
+import { RootState } from 'store/store';
+import { Chips } from 'components/chips/chips';
import withStyles, { StyleRulesCallback } from '@material-ui/core/styles/withStyles';
-import { CollectionResource } from '~/models/collection';
-import { ResourceKind } from '~/models/resource';
+import { CollectionResource } from 'models/collection';
+import { ResourceKind } from 'models/resource';
export interface DirectoryArrayInputProps {
input: DirectoryArrayCommandInputParameter;
DirectoryCommandInputParameter,
CWLType,
Directory
-} from '~/models/workflow';
+} from 'models/workflow';
import { GenericInputProps, GenericInput } from './generic-input';
-import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker';
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
-import { TreeItem } from '~/components/tree/tree';
-import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
-import { CollectionResource } from '~/models/collection';
-import { ResourceKind } from '~/models/resource';
-import { ERROR_MESSAGE } from '~/validators/require';
+import { ProjectsTreePicker } from 'views-components/projects-tree-picker/projects-tree-picker';
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
+import { TreeItem } from 'components/tree/tree';
+import { ProjectsTreePickerItem } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
+import { CollectionResource } from 'models/collection';
+import { ResourceKind } from 'models/resource';
+import { ERROR_MESSAGE } from 'validators/require';
export interface DirectoryInputProps {
input: DirectoryCommandInputParameter;
import * as React from 'react';
import { Field } from 'redux-form';
import { Select, MenuItem } from '@material-ui/core';
-import { EnumCommandInputParameter, CommandInputEnumSchema } from '~/models/workflow';
+import { EnumCommandInputParameter, CommandInputEnumSchema } from 'models/workflow';
import { GenericInputProps, GenericInput } from './generic-input';
export interface EnumInputProps {
FileArrayCommandInputParameter,
File,
CWLType
-} from '~/models/workflow';
+} from 'models/workflow';
import { Field } from 'redux-form';
-import { ERROR_MESSAGE } from '~/validators/require';
+import { ERROR_MESSAGE } from 'validators/require';
import { Input, Dialog, DialogTitle, DialogContent, DialogActions, Button, Divider, WithStyles, Typography } from '@material-ui/core';
import { GenericInputProps, GenericInput } from './generic-input';
-import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker';
+import { ProjectsTreePicker } from 'views-components/projects-tree-picker/projects-tree-picker';
import { connect, DispatchProp } from 'react-redux';
-import { initProjectsTreePicker, getSelectedNodes, treePickerActions, getProjectsTreePickerIds } from '~/store/tree-picker/tree-picker-actions';
-import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
-import { CollectionFile, CollectionFileType } from '~/models/collection-file';
+import { initProjectsTreePicker, getSelectedNodes, treePickerActions, getProjectsTreePickerIds } from 'store/tree-picker/tree-picker-actions';
+import { ProjectsTreePickerItem } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
+import { CollectionFile, CollectionFileType } from 'models/collection-file';
import { createSelector, createStructuredSelector } from 'reselect';
-import { ChipsInput } from '~/components/chips-input/chips-input';
+import { ChipsInput } from 'components/chips-input/chips-input';
import { identity, values, noop } from 'lodash';
import { InputProps } from '@material-ui/core/Input';
-import { TreePicker } from '~/store/tree-picker/tree-picker';
-import { RootState } from '~/store/store';
-import { Chips } from '~/components/chips/chips';
+import { TreePicker } from 'store/tree-picker/tree-picker';
+import { RootState } from 'store/store';
+import { Chips } from 'components/chips/chips';
import withStyles, { StyleRulesCallback } from '@material-ui/core/styles/withStyles';
export interface FileArrayInputProps {
FileCommandInputParameter,
File,
CWLType
-} from '~/models/workflow';
+} from 'models/workflow';
import { Field } from 'redux-form';
-import { ERROR_MESSAGE } from '~/validators/require';
+import { ERROR_MESSAGE } from 'validators/require';
import { Input, Dialog, DialogTitle, DialogContent, DialogActions, Button } from '@material-ui/core';
import { GenericInputProps, GenericInput } from './generic-input';
-import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker';
+import { ProjectsTreePicker } from 'views-components/projects-tree-picker/projects-tree-picker';
import { connect, DispatchProp } from 'react-redux';
-import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions';
-import { TreeItem } from '~/components/tree/tree';
-import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
-import { CollectionFile, CollectionFileType } from '~/models/collection-file';
+import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions';
+import { TreeItem } from 'components/tree/tree';
+import { ProjectsTreePickerItem } from 'views-components/projects-tree-picker/generic-projects-tree-picker';
+import { CollectionFile, CollectionFileType } from 'models/collection-file';
export interface FileInputProps {
input: FileCommandInputParameter;
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { isRequiredInput, FloatArrayCommandInputParameter } from '~/models/workflow';
+import { isRequiredInput, FloatArrayCommandInputParameter } from 'models/workflow';
import { Field } from 'redux-form';
-import { ERROR_MESSAGE } from '~/validators/require';
-import { GenericInputProps, GenericInput } from '~/views/run-process-panel/inputs/generic-input';
-import { ChipsInput } from '~/components/chips-input/chips-input';
+import { ERROR_MESSAGE } from 'validators/require';
+import { GenericInputProps, GenericInput } from 'views/run-process-panel/inputs/generic-input';
+import { ChipsInput } from 'components/chips-input/chips-input';
import { createSelector } from 'reselect';
-import { FloatInput } from '~/components/float-input/float-input';
+import { FloatInput } from 'components/float-input/float-input';
export interface FloatArrayInputProps {
input: FloatArrayCommandInputParameter;
import * as React from 'react';
import { memoize } from 'lodash/fp';
-import { FloatCommandInputParameter, isRequiredInput } from '~/models/workflow';
+import { FloatCommandInputParameter, isRequiredInput } from 'models/workflow';
import { Field } from 'redux-form';
-import { isNumber } from '~/validators/is-number';
+import { isNumber } from 'validators/is-number';
import { GenericInputProps, GenericInput } from './generic-input';
-import { FloatInput as FloatInputComponent } from '~/components/float-input/float-input';
+import { FloatInput as FloatInputComponent } from 'components/float-input/float-input';
export interface FloatInputProps {
input: FloatCommandInputParameter;
}
import * as React from 'react';
import { WrappedFieldProps } from 'redux-form';
import { FormGroup, FormLabel, FormHelperText } from '@material-ui/core';
-import { GenericCommandInputParameter, getInputLabel, isRequiredInput } from '~/models/workflow';
+import { GenericCommandInputParameter, getInputLabel, isRequiredInput } from 'models/workflow';
export type GenericInputProps = WrappedFieldProps & {
commandInput: GenericCommandInputParameter<any, any>;
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { isRequiredInput, IntArrayCommandInputParameter } from '~/models/workflow';
+import { isRequiredInput, IntArrayCommandInputParameter } from 'models/workflow';
import { Field } from 'redux-form';
-import { ERROR_MESSAGE } from '~/validators/require';
-import { GenericInputProps, GenericInput } from '~/views/run-process-panel/inputs/generic-input';
-import { ChipsInput } from '~/components/chips-input/chips-input';
+import { ERROR_MESSAGE } from 'validators/require';
+import { GenericInputProps, GenericInput } from 'views/run-process-panel/inputs/generic-input';
+import { ChipsInput } from 'components/chips-input/chips-input';
import { createSelector } from 'reselect';
-import { IntInput } from '~/components/int-input/int-input';
+import { IntInput } from 'components/int-input/int-input';
export interface IntArrayInputProps {
input: IntArrayCommandInputParameter;
import * as React from 'react';
import { memoize } from 'lodash/fp';
-import { IntCommandInputParameter, isRequiredInput } from '~/models/workflow';
+import { IntCommandInputParameter, isRequiredInput } from 'models/workflow';
import { Field } from 'redux-form';
-import { isInteger } from '~/validators/is-integer';
-import { GenericInputProps, GenericInput } from '~/views/run-process-panel/inputs/generic-input';
-import { IntInput as IntInputComponent } from '~/components/int-input/int-input';
+import { isInteger } from 'validators/is-integer';
+import { GenericInputProps, GenericInput } from 'views/run-process-panel/inputs/generic-input';
+import { IntInput as IntInputComponent } from 'components/int-input/int-input';
export interface IntInputProps {
input: IntCommandInputParameter;
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { isRequiredInput, StringArrayCommandInputParameter } from '~/models/workflow';
+import { isRequiredInput, StringArrayCommandInputParameter } from 'models/workflow';
import { Field } from 'redux-form';
-import { ERROR_MESSAGE } from '~/validators/require';
-import { GenericInputProps, GenericInput } from '~/views/run-process-panel/inputs/generic-input';
-import { ChipsInput } from '~/components/chips-input/chips-input';
+import { ERROR_MESSAGE } from 'validators/require';
+import { GenericInputProps, GenericInput } from 'views/run-process-panel/inputs/generic-input';
+import { ChipsInput } from 'components/chips-input/chips-input';
import { identity } from 'lodash';
import { createSelector } from 'reselect';
import { Input } from '@material-ui/core';
import * as React from 'react';
import { memoize } from 'lodash/fp';
-import { isRequiredInput, StringCommandInputParameter } from '~/models/workflow';
+import { isRequiredInput, StringCommandInputParameter } from 'models/workflow';
import { Field } from 'redux-form';
-import { require } from '~/validators/require';
-import { GenericInputProps, GenericInput } from '~/views/run-process-panel/inputs/generic-input';
+import { require } from 'validators/require';
+import { GenericInputProps, GenericInput } from 'views/run-process-panel/inputs/generic-input';
import { Input as MaterialInput } from '@material-ui/core';
export interface StringInputProps {
import { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary } from '@material-ui/core';
import { reduxForm, Field } from 'redux-form';
import { Grid } from '@material-ui/core';
-import { TextField } from '~/components/text-field/text-field';
-import { ExpandIcon } from '~/components/icon/icon';
+import { TextField } from 'components/text-field/text-field';
+import { ExpandIcon } from 'components/icon/icon';
import * as IntInput from './inputs/int-input';
-import { min } from '~/validators/min';
-import { optional } from '~/validators/optional';
+import { min } from 'validators/min';
+import { optional } from 'validators/optional';
export const RUN_PROCESS_ADVANCED_FORM = 'runProcessAdvancedForm';
import * as React from 'react';
import { reduxForm, Field } from 'redux-form';
import { Grid } from '@material-ui/core';
-import { TextField } from '~/components/text-field/text-field';
-import { PROCESS_NAME_VALIDATION } from '~/validators/validators';
+import { TextField } from 'components/text-field/text-field';
+import { PROCESS_NAME_VALIDATION } from 'validators/validators';
export const RUN_PROCESS_BASIC_FORM = 'runProcessBasicForm';
import * as React from 'react';
import { StyleRulesCallback, withStyles, Grid, Button, WithStyles, List, ListItem, ListItemText, ListItemIcon } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { WorkflowResource } from '~/models/workflow';
-import { WorkflowIcon } from '~/components/icon/icon';
-import { WorkflowDetailsCard } from '~/views/workflow-panel/workflow-description-card';
-import { SearchInput } from '~/components/search-input/search-input';
+import { ArvadosTheme } from 'common/custom-theme';
+import { WorkflowResource } from 'models/workflow';
+import { WorkflowIcon } from 'components/icon/icon';
+import { WorkflowDetailsCard } from 'views/workflow-panel/workflow-description-card';
+import { SearchInput } from 'components/search-input/search-input';
type CssRules = 'root' | 'searchGrid' | 'workflowDetailsGrid' | 'list' | 'listItem' | 'itemSelected' | 'listItemText' | 'listItemIcon';
import * as React from 'react';
import { reduxForm, InjectedFormProps } from 'redux-form';
-import { CommandInputParameter, CWLType, IntCommandInputParameter, BooleanCommandInputParameter, FileCommandInputParameter, DirectoryCommandInputParameter, DirectoryArrayCommandInputParameter, FloatArrayCommandInputParameter, IntArrayCommandInputParameter } from '~/models/workflow';
-import { IntInput } from '~/views/run-process-panel/inputs/int-input';
-import { StringInput } from '~/views/run-process-panel/inputs/string-input';
+import { CommandInputParameter, CWLType, IntCommandInputParameter, BooleanCommandInputParameter, FileCommandInputParameter, DirectoryCommandInputParameter, DirectoryArrayCommandInputParameter, FloatArrayCommandInputParameter, IntArrayCommandInputParameter } from 'models/workflow';
+import { IntInput } from 'views/run-process-panel/inputs/int-input';
+import { StringInput } from 'views/run-process-panel/inputs/string-input';
import { StringCommandInputParameter, FloatCommandInputParameter, isPrimitiveOfType, WorkflowInputsData, EnumCommandInputParameter, isArrayOfType, StringArrayCommandInputParameter, FileArrayCommandInputParameter } from '../../models/workflow';
-import { FloatInput } from '~/views/run-process-panel/inputs/float-input';
+import { FloatInput } from 'views/run-process-panel/inputs/float-input';
import { BooleanInput } from './inputs/boolean-input';
import { FileInput } from './inputs/file-input';
import { connect } from 'react-redux';
import * as React from 'react';
import { Stepper, Step, StepLabel, StepContent } from '@material-ui/core';
-import { RunProcessFirstStepDataProps, RunProcessFirstStepActionProps, RunProcessFirstStep } from '~/views/run-process-panel/run-process-first-step';
+import { RunProcessFirstStepDataProps, RunProcessFirstStepActionProps, RunProcessFirstStep } from 'views/run-process-panel/run-process-first-step';
import { RunProcessSecondStepForm } from './run-process-second-step';
export type RunProcessPanelRootDataProps = {
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
-import { RunProcessPanelRootDataProps, RunProcessPanelRootActionProps, RunProcessPanelRoot } from '~/views/run-process-panel/run-process-panel-root';
-import { goToStep, runProcess, searchWorkflows, openSetWorkflowDialog } from '~/store/run-process-panel/run-process-panel-actions';
-import { WorkflowResource } from '~/models/workflow';
+import { RootState } from 'store/store';
+import { RunProcessPanelRootDataProps, RunProcessPanelRootActionProps, RunProcessPanelRoot } from 'views/run-process-panel/run-process-panel-root';
+import { goToStep, runProcess, searchWorkflows, openSetWorkflowDialog } from 'store/run-process-panel/run-process-panel-actions';
+import { WorkflowResource } from 'models/workflow';
const mapStateToProps = ({ runProcessPanel }: RootState): RunProcessPanelRootDataProps => {
return {
import * as React from 'react';
import { Grid, Button } from '@material-ui/core';
import { RunProcessBasicForm, RUN_PROCESS_BASIC_FORM } from './run-process-basic-form';
-import { RunProcessInputsForm } from '~/views/run-process-panel/run-process-inputs-form';
-import { CommandInputParameter, WorkflowResource } from '~/models/workflow';
+import { RunProcessInputsForm } from 'views/run-process-panel/run-process-inputs-form';
+import { CommandInputParameter, WorkflowResource } from 'models/workflow';
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { isValid } from 'redux-form';
import { RUN_PROCESS_INPUTS_FORM } from './run-process-inputs-form';
import { RunProcessAdvancedForm, RUN_PROCESS_ADVANCED_FORM } from './run-process-advanced-form';
import { createStructuredSelector } from 'reselect';
-import { WorkflowPresetSelect } from '~/views/run-process-panel/workflow-preset-select';
-import { selectPreset } from '~/store/run-process-panel/run-process-panel-actions';
+import { WorkflowPresetSelect } from 'views/run-process-panel/workflow-preset-select';
+import { selectPreset } from 'store/run-process-panel/run-process-panel-actions';
export interface RunProcessSecondStepFormDataProps {
inputs: CommandInputParameter[];
import * as React from 'react';
import { Select, FormControl, InputLabel, MenuItem, Tooltip, withStyles, WithStyles } from '@material-ui/core';
-import { WorkflowResource } from '~/models/workflow';
-import { DetailsIcon } from '~/components/icon/icon';
+import { WorkflowResource } from 'models/workflow';
+import { DetailsIcon } from 'components/icon/icon';
export interface WorkflowPresetSelectProps {
workflow: WorkflowResource;
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { SortDirection } from '~/components/data-table/data-column';
-import { DataColumns } from '~/components/data-table/data-table';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
-import { ResourceKind } from '~/models/resource';
-import { ContainerRequestState } from '~/models/container-request';
-import { SEARCH_RESULTS_PANEL_ID } from '~/store/search-results-panel/search-results-panel-actions';
-import { DataExplorer } from '~/views-components/data-explorer/data-explorer';
+import { SortDirection } from 'components/data-table/data-column';
+import { DataColumns } from 'components/data-table/data-table';
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
+import { ResourceKind } from 'models/resource';
+import { ContainerRequestState } from 'models/container-request';
+import { SEARCH_RESULTS_PANEL_ID } from 'store/search-results-panel/search-results-panel-actions';
+import { DataExplorer } from 'views-components/data-explorer/data-explorer';
import {
ResourceCluster,
ResourceFileSize,
ResourceOwner,
ResourceStatus,
ResourceType
-} from '~/views-components/data-explorer/renderers';
-import { createTree } from '~/models/tree';
-import { getInitialResourceTypeFilters } from '~/store/resource-type-filters/resource-type-filters';
+} from 'views-components/data-explorer/renderers';
+import { createTree } from 'models/tree';
+import { getInitialResourceTypeFilters } from 'store/resource-type-filters/resource-type-filters';
import { SearchResultsPanelProps } from "./search-results-panel";
-import { Routes } from '~/routes/routes';
+import { Routes } from 'routes/routes';
import { Link } from 'react-router-dom';
import { StyleRulesCallback, withStyles, WithStyles } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
export enum SearchResultsPanelColumnNames {
CLUSTER = "Cluster",
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { navigateTo } from '~/store/navigation/navigation-action';
-// import { openContextMenu, resourceKindToContextMenuKind } from '~/store/context-menu/context-menu-actions';
-// import { ResourceKind } from '~/models/resource';
-import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
-import { SearchResultsPanelView } from '~/views/search-results-panel/search-results-panel-view';
-import { RootState } from '~/store/store';
-import { SearchBarAdvancedFormData } from '~/models/search-bar';
-import { User } from "~/models/user";
-import { Config } from '~/common/config';
-import { Session } from "~/models/session";
+import { navigateTo } from 'store/navigation/navigation-action';
+// import { openContextMenu, resourceKindToContextMenuKind } from 'store/context-menu/context-menu-actions';
+// import { ResourceKind } from 'models/resource';
+import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
+import { SearchResultsPanelView } from 'views/search-results-panel/search-results-panel-view';
+import { RootState } from 'store/store';
+import { SearchBarAdvancedFormData } from 'models/search-bar';
+import { User } from "models/user";
+import { Config } from 'common/config';
+import { Session } from "models/session";
export interface SearchResultsPanelDataProps {
data: SearchBarAdvancedFormData;
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { connect, DispatchProp } from 'react-redux';
-import { RootState } from '~/store/store';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { ShareMeIcon } from '~/components/icon/icon';
-import { ResourcesState, getResource } from '~/store/resources/resources';
-import { navigateTo } from "~/store/navigation/navigation-action";
-import { loadDetailsPanel } from "~/store/details-panel/details-panel-action";
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { SHARED_WITH_ME_PANEL_ID } from '~/store/shared-with-me-panel/shared-with-me-panel-actions';
+import { RootState } from 'store/store';
+import { ArvadosTheme } from 'common/custom-theme';
+import { ShareMeIcon } from 'components/icon/icon';
+import { ResourcesState, getResource } from 'store/resources/resources';
+import { navigateTo } from "store/navigation/navigation-action";
+import { loadDetailsPanel } from "store/details-panel/details-panel-action";
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { SHARED_WITH_ME_PANEL_ID } from 'store/shared-with-me-panel/shared-with-me-panel-actions';
import {
openContextMenu,
resourceUuidToContextMenuKind
-} from '~/store/context-menu/context-menu-actions';
-import { GroupContentsResource } from '~/services/groups-service/groups-service';
+} from 'store/context-menu/context-menu-actions';
+import { GroupContentsResource } from 'services/groups-service/groups-service';
type CssRules = "toolbar" | "button";
WithStyles,
withStyles
} from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { Session, SessionStatus } from "~/models/session";
+import { ArvadosTheme } from 'common/custom-theme';
+import { Session, SessionStatus } from "models/session";
import Button from "@material-ui/core/Button";
import { compose, Dispatch } from "redux";
import { Field, FormErrors, InjectedFormProps, reduxForm, reset, stopSubmit } from "redux-form";
-import { TextField } from "~/components/text-field/text-field";
-import { addSession } from "~/store/auth/auth-action-session";
-import { SITE_MANAGER_REMOTE_HOST_VALIDATION } from "~/validators/validators";
-import { Config } from '~/common/config';
-import { ResourceCluster } from '~/views-components/data-explorer/renderers';
-import { TrashIcon } from "~/components/icon/icon";
+import { TextField } from "components/text-field/text-field";
+import { addSession } from "store/auth/auth-action-session";
+import { SITE_MANAGER_REMOTE_HOST_VALIDATION } from "validators/validators";
+import { Config } from 'common/config';
+import { ResourceCluster } from 'views-components/data-explorer/renderers';
+import { TrashIcon } from "components/icon/icon";
type CssRules = 'root' | 'link' | 'buttonContainer' | 'table' | 'tableRow' |
'remoteSiteInfo' | 'buttonAdd' | 'buttonLoggedIn' | 'buttonLoggedOut' |
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
import {
SiteManagerPanelRoot, SiteManagerPanelRootActionProps,
SiteManagerPanelRootDataProps
-} from "~/views/site-manager-panel/site-manager-panel-root";
-import { Session } from "~/models/session";
-import { toggleSession, removeSession } from "~/store/auth/auth-action-session";
+} from "views/site-manager-panel/site-manager-panel-root";
+import { Session } from "models/session";
+import { toggleSession, removeSession } from "store/auth/auth-action-session";
const mapStateToProps = (state: RootState): SiteManagerPanelRootDataProps => {
return {
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles, Card, CardContent, Button, Typography, Grid, Table, TableHead, TableRow, TableCell, TableBody, Tooltip, IconButton } from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { SshKeyResource } from '~/models/ssh-key';
-import { AddIcon, MoreOptionsIcon, KeyIcon } from '~/components/icon/icon';
+import { ArvadosTheme } from 'common/custom-theme';
+import { SshKeyResource } from 'models/ssh-key';
+import { AddIcon, MoreOptionsIcon, KeyIcon } from 'components/icon/icon';
type CssRules = 'root' | 'link' | 'buttonContainer' | 'table' | 'tableRow' | 'keyIcon';
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootState } from '~/store/store';
+import { RootState } from 'store/store';
import { Dispatch } from 'redux';
import { connect } from 'react-redux';
-import { openSshKeyCreateDialog, openPublicKeyDialog } from '~/store/auth/auth-action-ssh';
-import { openSshKeyContextMenu } from '~/store/context-menu/context-menu-actions';
-import { SshKeyPanelRoot, SshKeyPanelRootDataProps, SshKeyPanelRootActionProps } from '~/views/ssh-key-panel/ssh-key-panel-root';
+import { openSshKeyCreateDialog, openPublicKeyDialog } from 'store/auth/auth-action-ssh';
+import { openSshKeyContextMenu } from 'store/context-menu/context-menu-actions';
+import { SshKeyPanelRoot, SshKeyPanelRootDataProps, SshKeyPanelRootActionProps } from 'views/ssh-key-panel/ssh-key-panel-root';
const mapStateToProps = (state: RootState): SshKeyPanelRootDataProps => {
return {
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
-import { DataColumns } from '~/components/data-table/data-table';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
-import { ContainerRequestState } from '~/models/container-request';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ResourceKind } from '~/models/resource';
-import { ResourceCreatedAtDate, ProcessStatus, ContainerRunTime } from '~/views-components/data-explorer/renderers';
-import { ProcessIcon } from '~/components/icon/icon';
-import { ResourceName } from '~/views-components/data-explorer/renderers';
-import { SUBPROCESS_PANEL_ID } from '~/store/subprocess-panel/subprocess-panel-actions';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { createTree } from '~/models/tree';
-import { getInitialProcessStatusFilters } from '~/store/resource-type-filters/resource-type-filters';
-import { ResourcesState } from '~/store/resources/resources';
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
+import { DataColumns } from 'components/data-table/data-table';
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
+import { ContainerRequestState } from 'models/container-request';
+import { SortDirection } from 'components/data-table/data-column';
+import { ResourceKind } from 'models/resource';
+import { ResourceCreatedAtDate, ProcessStatus, ContainerRunTime } from 'views-components/data-explorer/renderers';
+import { ProcessIcon } from 'components/icon/icon';
+import { ResourceName } from 'views-components/data-explorer/renderers';
+import { SUBPROCESS_PANEL_ID } from 'store/subprocess-panel/subprocess-panel-actions';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { createTree } from 'models/tree';
+import { getInitialProcessStatusFilters } from 'store/resource-type-filters/resource-type-filters';
+import { ResourcesState } from 'store/resources/resources';
export enum SubprocessPanelColumnNames {
NAME = "Name",
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { openProcessContextMenu } from '~/store/context-menu/context-menu-actions';
-import { SubprocessPanelRoot, SubprocessPanelActionProps, SubprocessPanelDataProps } from '~/views/subprocess-panel/subprocess-panel-root';
-import { RootState } from "~/store/store";
-import { navigateTo } from "~/store/navigation/navigation-action";
-import { loadDetailsPanel } from "~/store/details-panel/details-panel-action";
-import { getProcess } from "~/store/processes/process";
+import { openProcessContextMenu } from 'store/context-menu/context-menu-actions';
+import { SubprocessPanelRoot, SubprocessPanelActionProps, SubprocessPanelDataProps } from 'views/subprocess-panel/subprocess-panel-root';
+import { RootState } from "store/store";
+import { navigateTo } from "store/navigation/navigation-action";
+import { loadDetailsPanel } from "store/details-panel/details-panel-action";
+import { getProcess } from "store/processes/process";
const mapDispatchToProps = (dispatch: Dispatch): SubprocessPanelActionProps => ({
onContextMenu: (event, resourceUuid, resources) => {
import * as React from 'react';
import { IconButton, StyleRulesCallback, WithStyles, withStyles, Tooltip } from '@material-ui/core';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { connect, DispatchProp } from 'react-redux';
-import { DataColumns } from '~/components/data-table/data-table';
-import { RootState } from '~/store/store';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
-import { SortDirection } from '~/components/data-table/data-column';
-import { ResourceKind, TrashableResource } from '~/models/resource';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { RestoreFromTrashIcon, TrashIcon } from '~/components/icon/icon';
-import { TRASH_PANEL_ID } from "~/store/trash-panel/trash-panel-action";
-import { getProperty } from "~/store/properties/properties";
-import { PROJECT_PANEL_CURRENT_UUID } from "~/store/project-panel/project-panel-action";
-import { openContextMenu } from "~/store/context-menu/context-menu-actions";
-import { getResource, ResourcesState } from "~/store/resources/resources";
+import { DataColumns } from 'components/data-table/data-table';
+import { RootState } from 'store/store';
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
+import { SortDirection } from 'components/data-table/data-column';
+import { ResourceKind, TrashableResource } from 'models/resource';
+import { ArvadosTheme } from 'common/custom-theme';
+import { RestoreFromTrashIcon, TrashIcon } from 'components/icon/icon';
+import { TRASH_PANEL_ID } from "store/trash-panel/trash-panel-action";
+import { getProperty } from "store/properties/properties";
+import { PROJECT_PANEL_CURRENT_UUID } from "store/project-panel/project-panel-action";
+import { openContextMenu } from "store/context-menu/context-menu-actions";
+import { getResource, ResourcesState } from "store/resources/resources";
import {
ResourceDeleteDate,
ResourceFileSize,
ResourceName,
ResourceTrashDate,
ResourceType
-} from "~/views-components/data-explorer/renderers";
-import { navigateTo } from "~/store/navigation/navigation-action";
-import { loadDetailsPanel } from "~/store/details-panel/details-panel-action";
-import { toggleTrashed } from "~/store/trash/trash-actions";
-import { ContextMenuKind } from "~/views-components/context-menu/context-menu";
+} from "views-components/data-explorer/renderers";
+import { navigateTo } from "store/navigation/navigation-action";
+import { loadDetailsPanel } from "store/details-panel/details-panel-action";
+import { toggleTrashed } from "store/trash/trash-actions";
+import { ContextMenuKind } from "views-components/context-menu/context-menu";
import { Dispatch } from "redux";
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { createTree } from '~/models/tree';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { createTree } from 'models/tree';
import {
getTrashPanelTypeFilters
-} from '~/store/resource-type-filters/resource-type-filters';
+} from 'store/resource-type-filters/resource-type-filters';
type CssRules = "toolbar" | "button";
import * as React from 'react';
import { WithStyles, withStyles, Tabs, Tab, Paper, Button, Grid } from '@material-ui/core';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { connect, DispatchProp } from 'react-redux';
-import { DataColumns } from '~/components/data-table/data-table';
-import { RootState } from '~/store/store';
-import { SortDirection } from '~/components/data-table/data-column';
-import { openContextMenu } from "~/store/context-menu/context-menu-actions";
-import { getResource, ResourcesState } from "~/store/resources/resources";
+import { DataColumns } from 'components/data-table/data-table';
+import { RootState } from 'store/store';
+import { SortDirection } from 'components/data-table/data-column';
+import { openContextMenu } from "store/context-menu/context-menu-actions";
+import { getResource, ResourcesState } from "store/resources/resources";
import {
ResourceFirstName,
ResourceLastName,
ResourceIsActive,
ResourceIsAdmin,
ResourceUsername
-} from "~/views-components/data-explorer/renderers";
-import { navigateTo } from "~/store/navigation/navigation-action";
-import { ContextMenuKind } from "~/views-components/context-menu/context-menu";
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { createTree } from '~/models/tree';
+} from "views-components/data-explorer/renderers";
+import { navigateTo } from "store/navigation/navigation-action";
+import { ContextMenuKind } from "views-components/context-menu/context-menu";
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { createTree } from 'models/tree';
import { compose, Dispatch } from 'redux';
-import { UserResource } from '~/models/user';
-import { ShareMeIcon, AddIcon } from '~/components/icon/icon';
-import { USERS_PANEL_ID, openUserCreateDialog } from '~/store/users/users-actions';
+import { UserResource } from 'models/user';
+import { ShareMeIcon, AddIcon } from 'components/icon/icon';
+import { USERS_PANEL_ID, openUserCreateDialog } from 'store/users/users-actions';
import { noop } from 'lodash';
type UserPanelRules = "button";
import { connect } from 'react-redux';
import { Grid, Card, CardContent, TableBody, TableCell, TableHead, TableRow, Table, Tooltip, IconButton } from '@material-ui/core';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose, Dispatch } from 'redux';
-import { loadVirtualMachinesAdminData } from '~/store/virtual-machines/virtual-machines-actions';
-import { RootState } from '~/store/store';
-import { ListResults } from '~/services/common-service/common-service';
-import { MoreOptionsIcon } from '~/components/icon/icon';
-import { VirtualMachineLogins, VirtualMachinesResource } from '~/models/virtual-machines';
-import { openVirtualMachinesContextMenu } from '~/store/context-menu/context-menu-actions';
+import { loadVirtualMachinesAdminData } from 'store/virtual-machines/virtual-machines-actions';
+import { RootState } from 'store/store';
+import { ListResults } from 'services/common-service/common-service';
+import { MoreOptionsIcon } from 'components/icon/icon';
+import { VirtualMachineLogins, VirtualMachinesResource } from 'models/virtual-machines';
+import { openVirtualMachinesContextMenu } from 'store/context-menu/context-menu-actions';
type CssRules = 'moreOptionsButton' | 'moreOptions';
import { connect } from 'react-redux';
import { Grid, Typography, Button, Card, CardContent, TableBody, TableCell, TableHead, TableRow, Table, Tooltip } from '@material-ui/core';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { compose, Dispatch } from 'redux';
-import { saveRequestedDate, loadVirtualMachinesUserData } from '~/store/virtual-machines/virtual-machines-actions';
-import { RootState } from '~/store/store';
-import { ListResults } from '~/services/common-service/common-service';
-import { HelpIcon } from '~/components/icon/icon';
+import { saveRequestedDate, loadVirtualMachinesUserData } from 'store/virtual-machines/virtual-machines-actions';
+import { RootState } from 'store/store';
+import { ListResults } from 'services/common-service/common-service';
+import { HelpIcon } from 'components/icon/icon';
// import * as CopyToClipboard from 'react-copy-to-clipboard';
type CssRules = 'button' | 'codeSnippet' | 'link' | 'linkIcon' | 'rightAlign' | 'cardWithoutMachines' | 'icon';
import * as React from 'react';
import { connect } from 'react-redux';
-import { RootState } from '~/store/store';
-import { User } from "~/models/user";
-import { getSaltedToken } from '~/store/auth/auth-action-session';
-import { Config } from '~/common/config';
+import { RootState } from 'store/store';
+import { User } from "models/user";
+import { getSaltedToken } from 'store/auth/auth-action-session';
+import { Config } from 'common/config';
export interface FedLoginProps {
user?: User;
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
-import { ArvadosTheme } from '~/common/custom-theme';
+import { ArvadosTheme } from 'common/custom-theme';
import { Grid, CircularProgress } from '@material-ui/core';
type CssRules = 'root' | 'img';
import * as ReactDOM from 'react-dom';
import { WorkbenchPanel } from './workbench';
import { Provider } from "react-redux";
-import { configureStore } from "~/store/store";
+import { configureStore } from "store/store";
import { createBrowserHistory } from "history";
import { ConnectedRouter } from "react-router-redux";
import { MuiThemeProvider } from '@material-ui/core/styles';
-import { CustomTheme } from '~/common/custom-theme';
-import { createServices } from "~/services/services";
+import { CustomTheme } from 'common/custom-theme';
+import { createServices } from "services/services";
import 'jest-localstorage-mock';
const history = createBrowserHistory();
import * as React from 'react';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
import { Route, Switch } from "react-router";
-import { ProjectPanel } from "~/views/project-panel/project-panel";
-import { DetailsPanel } from '~/views-components/details-panel/details-panel';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { ContextMenu } from "~/views-components/context-menu/context-menu";
+import { ProjectPanel } from "views/project-panel/project-panel";
+import { DetailsPanel } from 'views-components/details-panel/details-panel';
+import { ArvadosTheme } from 'common/custom-theme';
+import { ContextMenu } from "views-components/context-menu/context-menu";
import { FavoritePanel } from "../favorite-panel/favorite-panel";
-import { TokenDialog } from '~/views-components/token-dialog/token-dialog';
-import { RichTextEditorDialog } from '~/views-components/rich-text-editor-dialog/rich-text-editor-dialog';
-import { Snackbar } from '~/views-components/snackbar/snackbar';
+import { TokenDialog } from 'views-components/token-dialog/token-dialog';
+import { RichTextEditorDialog } from 'views-components/rich-text-editor-dialog/rich-text-editor-dialog';
+import { Snackbar } from 'views-components/snackbar/snackbar';
import { CollectionPanel } from '../collection-panel/collection-panel';
-import { RenameFileDialog } from '~/views-components/rename-file-dialog/rename-file-dialog';
-import { FileRemoveDialog } from '~/views-components/file-remove-dialog/file-remove-dialog';
-import { MultipleFilesRemoveDialog } from '~/views-components/file-remove-dialog/multiple-files-remove-dialog';
-import { Routes } from '~/routes/routes';
-import { SidePanel } from '~/views-components/side-panel/side-panel';
-import { ProcessPanel } from '~/views/process-panel/process-panel';
-import { ProcessLogPanel } from '~/views/process-log-panel/process-log-panel';
-import { ChangeWorkflowDialog } from '~/views-components/run-process-dialog/change-workflow-dialog';
-import { CreateProjectDialog } from '~/views-components/dialog-forms/create-project-dialog';
-import { CreateCollectionDialog } from '~/views-components/dialog-forms/create-collection-dialog';
-import { CopyCollectionDialog } from '~/views-components/dialog-forms/copy-collection-dialog';
-import { CopyProcessDialog } from '~/views-components/dialog-forms/copy-process-dialog';
-import { UpdateCollectionDialog } from '~/views-components/dialog-forms/update-collection-dialog';
-import { UpdateProcessDialog } from '~/views-components/dialog-forms/update-process-dialog';
-import { UpdateProjectDialog } from '~/views-components/dialog-forms/update-project-dialog';
-import { MoveProcessDialog } from '~/views-components/dialog-forms/move-process-dialog';
-import { MoveProjectDialog } from '~/views-components/dialog-forms/move-project-dialog';
-import { MoveCollectionDialog } from '~/views-components/dialog-forms/move-collection-dialog';
-import { FilesUploadCollectionDialog } from '~/views-components/dialog-forms/files-upload-collection-dialog';
-import { PartialCopyCollectionDialog } from '~/views-components/dialog-forms/partial-copy-collection-dialog';
-import { ProcessCommandDialog } from '~/views-components/process-command-dialog/process-command-dialog';
-import { RemoveProcessDialog } from '~/views-components/process-remove-dialog/process-remove-dialog';
-import { MainContentBar } from '~/views-components/main-content-bar/main-content-bar';
+import { RenameFileDialog } from 'views-components/rename-file-dialog/rename-file-dialog';
+import { FileRemoveDialog } from 'views-components/file-remove-dialog/file-remove-dialog';
+import { MultipleFilesRemoveDialog } from 'views-components/file-remove-dialog/multiple-files-remove-dialog';
+import { Routes } from 'routes/routes';
+import { SidePanel } from 'views-components/side-panel/side-panel';
+import { ProcessPanel } from 'views/process-panel/process-panel';
+import { ProcessLogPanel } from 'views/process-log-panel/process-log-panel';
+import { ChangeWorkflowDialog } from 'views-components/run-process-dialog/change-workflow-dialog';
+import { CreateProjectDialog } from 'views-components/dialog-forms/create-project-dialog';
+import { CreateCollectionDialog } from 'views-components/dialog-forms/create-collection-dialog';
+import { CopyCollectionDialog } from 'views-components/dialog-forms/copy-collection-dialog';
+import { CopyProcessDialog } from 'views-components/dialog-forms/copy-process-dialog';
+import { UpdateCollectionDialog } from 'views-components/dialog-forms/update-collection-dialog';
+import { UpdateProcessDialog } from 'views-components/dialog-forms/update-process-dialog';
+import { UpdateProjectDialog } from 'views-components/dialog-forms/update-project-dialog';
+import { MoveProcessDialog } from 'views-components/dialog-forms/move-process-dialog';
+import { MoveProjectDialog } from 'views-components/dialog-forms/move-project-dialog';
+import { MoveCollectionDialog } from 'views-components/dialog-forms/move-collection-dialog';
+import { FilesUploadCollectionDialog } from 'views-components/dialog-forms/files-upload-collection-dialog';
+import { PartialCopyCollectionDialog } from 'views-components/dialog-forms/partial-copy-collection-dialog';
+import { ProcessCommandDialog } from 'views-components/process-command-dialog/process-command-dialog';
+import { RemoveProcessDialog } from 'views-components/process-remove-dialog/process-remove-dialog';
+import { MainContentBar } from 'views-components/main-content-bar/main-content-bar';
import { Grid } from '@material-ui/core';
-import { TrashPanel } from "~/views/trash-panel/trash-panel";
-import { SharedWithMePanel } from '~/views/shared-with-me-panel/shared-with-me-panel';
-import { RunProcessPanel } from '~/views/run-process-panel/run-process-panel';
+import { TrashPanel } from "views/trash-panel/trash-panel";
+import { SharedWithMePanel } from 'views/shared-with-me-panel/shared-with-me-panel';
+import { RunProcessPanel } from 'views/run-process-panel/run-process-panel';
import SplitterLayout from 'react-splitter-layout';
-import { WorkflowPanel } from '~/views/workflow-panel/workflow-panel';
-import { SearchResultsPanel } from '~/views/search-results-panel/search-results-panel';
-import { SshKeyPanel } from '~/views/ssh-key-panel/ssh-key-panel';
-import { SiteManagerPanel } from "~/views/site-manager-panel/site-manager-panel";
-import { MyAccountPanel } from '~/views/my-account-panel/my-account-panel';
-import { SharingDialog } from '~/views-components/sharing-dialog/sharing-dialog';
-import { NotFoundDialog } from '~/views-components/not-found-dialog/not-found-dialog';
-import { AdvancedTabDialog } from '~/views-components/advanced-tab-dialog/advanced-tab-dialog';
-import { ProcessInputDialog } from '~/views-components/process-input-dialog/process-input-dialog';
-import { VirtualMachineUserPanel } from '~/views/virtual-machine-panel/virtual-machine-user-panel';
-import { VirtualMachineAdminPanel } from '~/views/virtual-machine-panel/virtual-machine-admin-panel';
-import { ProjectPropertiesDialog } from '~/views-components/project-properties-dialog/project-properties-dialog';
-import { RepositoriesPanel } from '~/views/repositories-panel/repositories-panel';
-import { KeepServicePanel } from '~/views/keep-service-panel/keep-service-panel';
-import { ComputeNodePanel } from '~/views/compute-node-panel/compute-node-panel';
-import { ApiClientAuthorizationPanel } from '~/views/api-client-authorization-panel/api-client-authorization-panel';
-import { LinkPanel } from '~/views/link-panel/link-panel';
-import { RepositoriesSampleGitDialog } from '~/views-components/repositories-sample-git-dialog/repositories-sample-git-dialog';
-import { RepositoryAttributesDialog } from '~/views-components/repository-attributes-dialog/repository-attributes-dialog';
-import { CreateRepositoryDialog } from '~/views-components/dialog-forms/create-repository-dialog';
-import { RemoveRepositoryDialog } from '~/views-components/repository-remove-dialog/repository-remove-dialog';
-import { CreateSshKeyDialog } from '~/views-components/dialog-forms/create-ssh-key-dialog';
-import { PublicKeyDialog } from '~/views-components/ssh-keys-dialog/public-key-dialog';
-import { RemoveApiClientAuthorizationDialog } from '~/views-components/api-client-authorizations-dialog/remove-dialog';
-import { RemoveComputeNodeDialog } from '~/views-components/compute-nodes-dialog/remove-dialog';
-import { RemoveKeepServiceDialog } from '~/views-components/keep-services-dialog/remove-dialog';
-import { RemoveLinkDialog } from '~/views-components/links-dialog/remove-dialog';
-import { RemoveSshKeyDialog } from '~/views-components/ssh-keys-dialog/remove-dialog';
-import { RemoveVirtualMachineDialog } from '~/views-components/virtual-machines-dialog/remove-dialog';
-import { AttributesApiClientAuthorizationDialog } from '~/views-components/api-client-authorizations-dialog/attributes-dialog';
-import { AttributesComputeNodeDialog } from '~/views-components/compute-nodes-dialog/attributes-dialog';
-import { AttributesKeepServiceDialog } from '~/views-components/keep-services-dialog/attributes-dialog';
-import { AttributesLinkDialog } from '~/views-components/links-dialog/attributes-dialog';
-import { AttributesSshKeyDialog } from '~/views-components/ssh-keys-dialog/attributes-dialog';
-import { VirtualMachineAttributesDialog } from '~/views-components/virtual-machines-dialog/attributes-dialog';
-import { UserPanel } from '~/views/user-panel/user-panel';
-import { UserAttributesDialog } from '~/views-components/user-dialog/attributes-dialog';
-import { CreateUserDialog } from '~/views-components/dialog-forms/create-user-dialog';
-import { HelpApiClientAuthorizationDialog } from '~/views-components/api-client-authorizations-dialog/help-dialog';
-import { UserManageDialog } from '~/views-components/user-dialog/manage-dialog';
-import { SetupShellAccountDialog } from '~/views-components/dialog-forms/setup-shell-account-dialog';
-import { GroupsPanel } from '~/views/groups-panel/groups-panel';
-import { CreateGroupDialog } from '~/views-components/dialog-forms/create-group-dialog';
-import { RemoveGroupDialog } from '~/views-components/groups-dialog/remove-dialog';
-import { GroupAttributesDialog } from '~/views-components/groups-dialog/attributes-dialog';
-import { GroupDetailsPanel } from '~/views/group-details-panel/group-details-panel';
-import { RemoveGroupMemberDialog } from '~/views-components/groups-dialog/member-remove-dialog';
-import { GroupMemberAttributesDialog } from '~/views-components/groups-dialog/member-attributes-dialog';
-import { AddGroupMembersDialog } from '~/views-components/dialog-forms/add-group-member-dialog';
-import { PartialCopyToCollectionDialog } from '~/views-components/dialog-forms/partial-copy-to-collection-dialog';
-import { PublicFavoritePanel } from '~/views/public-favorites-panel/public-favorites-panel';
-import { LinkAccountPanel } from '~/views/link-account-panel/link-account-panel';
+import { WorkflowPanel } from 'views/workflow-panel/workflow-panel';
+import { SearchResultsPanel } from 'views/search-results-panel/search-results-panel';
+import { SshKeyPanel } from 'views/ssh-key-panel/ssh-key-panel';
+import { SiteManagerPanel } from "views/site-manager-panel/site-manager-panel";
+import { MyAccountPanel } from 'views/my-account-panel/my-account-panel';
+import { SharingDialog } from 'views-components/sharing-dialog/sharing-dialog';
+import { NotFoundDialog } from 'views-components/not-found-dialog/not-found-dialog';
+import { AdvancedTabDialog } from 'views-components/advanced-tab-dialog/advanced-tab-dialog';
+import { ProcessInputDialog } from 'views-components/process-input-dialog/process-input-dialog';
+import { VirtualMachineUserPanel } from 'views/virtual-machine-panel/virtual-machine-user-panel';
+import { VirtualMachineAdminPanel } from 'views/virtual-machine-panel/virtual-machine-admin-panel';
+import { ProjectPropertiesDialog } from 'views-components/project-properties-dialog/project-properties-dialog';
+import { RepositoriesPanel } from 'views/repositories-panel/repositories-panel';
+import { KeepServicePanel } from 'views/keep-service-panel/keep-service-panel';
+import { ComputeNodePanel } from 'views/compute-node-panel/compute-node-panel';
+import { ApiClientAuthorizationPanel } from 'views/api-client-authorization-panel/api-client-authorization-panel';
+import { LinkPanel } from 'views/link-panel/link-panel';
+import { RepositoriesSampleGitDialog } from 'views-components/repositories-sample-git-dialog/repositories-sample-git-dialog';
+import { RepositoryAttributesDialog } from 'views-components/repository-attributes-dialog/repository-attributes-dialog';
+import { CreateRepositoryDialog } from 'views-components/dialog-forms/create-repository-dialog';
+import { RemoveRepositoryDialog } from 'views-components/repository-remove-dialog/repository-remove-dialog';
+import { CreateSshKeyDialog } from 'views-components/dialog-forms/create-ssh-key-dialog';
+import { PublicKeyDialog } from 'views-components/ssh-keys-dialog/public-key-dialog';
+import { RemoveApiClientAuthorizationDialog } from 'views-components/api-client-authorizations-dialog/remove-dialog';
+import { RemoveComputeNodeDialog } from 'views-components/compute-nodes-dialog/remove-dialog';
+import { RemoveKeepServiceDialog } from 'views-components/keep-services-dialog/remove-dialog';
+import { RemoveLinkDialog } from 'views-components/links-dialog/remove-dialog';
+import { RemoveSshKeyDialog } from 'views-components/ssh-keys-dialog/remove-dialog';
+import { RemoveVirtualMachineDialog } from 'views-components/virtual-machines-dialog/remove-dialog';
+import { AttributesApiClientAuthorizationDialog } from 'views-components/api-client-authorizations-dialog/attributes-dialog';
+import { AttributesComputeNodeDialog } from 'views-components/compute-nodes-dialog/attributes-dialog';
+import { AttributesKeepServiceDialog } from 'views-components/keep-services-dialog/attributes-dialog';
+import { AttributesLinkDialog } from 'views-components/links-dialog/attributes-dialog';
+import { AttributesSshKeyDialog } from 'views-components/ssh-keys-dialog/attributes-dialog';
+import { VirtualMachineAttributesDialog } from 'views-components/virtual-machines-dialog/attributes-dialog';
+import { UserPanel } from 'views/user-panel/user-panel';
+import { UserAttributesDialog } from 'views-components/user-dialog/attributes-dialog';
+import { CreateUserDialog } from 'views-components/dialog-forms/create-user-dialog';
+import { HelpApiClientAuthorizationDialog } from 'views-components/api-client-authorizations-dialog/help-dialog';
+import { UserManageDialog } from 'views-components/user-dialog/manage-dialog';
+import { SetupShellAccountDialog } from 'views-components/dialog-forms/setup-shell-account-dialog';
+import { GroupsPanel } from 'views/groups-panel/groups-panel';
+import { CreateGroupDialog } from 'views-components/dialog-forms/create-group-dialog';
+import { RemoveGroupDialog } from 'views-components/groups-dialog/remove-dialog';
+import { GroupAttributesDialog } from 'views-components/groups-dialog/attributes-dialog';
+import { GroupDetailsPanel } from 'views/group-details-panel/group-details-panel';
+import { RemoveGroupMemberDialog } from 'views-components/groups-dialog/member-remove-dialog';
+import { GroupMemberAttributesDialog } from 'views-components/groups-dialog/member-attributes-dialog';
+import { AddGroupMembersDialog } from 'views-components/dialog-forms/add-group-member-dialog';
+import { PartialCopyToCollectionDialog } from 'views-components/dialog-forms/partial-copy-to-collection-dialog';
+import { PublicFavoritePanel } from 'views/public-favorites-panel/public-favorites-panel';
+import { LinkAccountPanel } from 'views/link-account-panel/link-account-panel';
import { FedLogin } from './fed-login';
-import { CollectionsContentAddressPanel } from '~/views/collection-content-address-panel/collection-content-address-panel';
+import { CollectionsContentAddressPanel } from 'views/collection-content-address-panel/collection-content-address-panel';
import { AllProcessesPanel } from '../all-processes-panel/all-processes-panel';
import { NotFoundPanel } from '../not-found-panel/not-found-panel';
-import { AutoLogout } from '~/views-components/auto-logout/auto-logout';
-import { RestoreCollectionVersionDialog } from '~/views-components/collections-dialog/restore-version-dialog';
-import { WebDavS3InfoDialog } from '~/views-components/webdav-s3-dialog/webdav-s3-dialog';
-import { pluginConfig } from '~/plugins';
-import { ElementListReducer } from '~/common/plugintypes';
+import { AutoLogout } from 'views-components/auto-logout/auto-logout';
+import { RestoreCollectionVersionDialog } from 'views-components/collections-dialog/restore-version-dialog';
+import { WebDavS3InfoDialog } from 'views-components/webdav-s3-dialog/webdav-s3-dialog';
+import { pluginConfig } from 'plugins';
+import { ElementListReducer } from 'common/plugintypes';
type CssRules = 'root' | 'container' | 'splitter' | 'asidePanel' | 'contentWrapper' | 'content';
TableBody,
TableRow
} from '@material-ui/core';
-import { ArvadosTheme } from '~/common/custom-theme';
-import { WorkflowIcon } from '~/components/icon/icon';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { WorkflowResource, parseWorkflowDefinition, getWorkflowInputs, getInputLabel, stringifyInputType } from '~/models/workflow';
-import { WorkflowGraph } from "~/views/workflow-panel/workflow-graph";
+import { ArvadosTheme } from 'common/custom-theme';
+import { WorkflowIcon } from 'components/icon/icon';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { WorkflowResource, parseWorkflowDefinition, getWorkflowInputs, getInputLabel, stringifyInputType } from 'models/workflow';
+import { WorkflowGraph } from "views/workflow-panel/workflow-graph";
export type CssRules = 'root' | 'tab' | 'inputTab' | 'graphTab' | 'graphTabWithChosenWorkflow' | 'descriptionTab' | 'inputsTable';
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { WorkflowResource } from "~/models/workflow";
+import { WorkflowResource } from "models/workflow";
import { WorkflowFactory } from "cwlts/models";
import * as yaml from 'js-yaml';
-import "~/lib/cwl-svg/assets/styles/themes/rabix-dark/theme.css";
-import "~/lib/cwl-svg/plugins/port-drag/theme.dark.css";
-import "~/lib/cwl-svg/plugins/selection/theme.dark.css";
+import "lib/cwl-svg/assets/styles/themes/rabix-dark/theme.css";
+import "lib/cwl-svg/plugins/port-drag/theme.dark.css";
+import "lib/cwl-svg/plugins/selection/theme.dark.css";
import {
SelectionPlugin,
SVGArrangePlugin,
SVGNodeMovePlugin,
SVGPortDragPlugin, Workflow,
ZoomPlugin
-} from "~/lib/cwl-svg";
+} from "lib/cwl-svg";
interface WorkflowGraphProps {
workflow: WorkflowResource;
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
-import { WorkflowIcon } from '~/components/icon/icon';
-import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
-import { WORKFLOW_PANEL_ID } from '~/store/workflow-panel/workflow-panel-actions';
+import { DataExplorer } from "views-components/data-explorer/data-explorer";
+import { WorkflowIcon } from 'components/icon/icon';
+import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
+import { WORKFLOW_PANEL_ID } from 'store/workflow-panel/workflow-panel-actions';
import {
ResourceLastModifiedDate,
ResourceWorkflowName,
ResourceWorkflowStatus,
ResourceShare,
ResourceRunProcess
-} from "~/views-components/data-explorer/renderers";
-import { SortDirection } from '~/components/data-table/data-column';
-import { DataColumns } from '~/components/data-table/data-table';
-import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
+} from "views-components/data-explorer/renderers";
+import { SortDirection } from 'components/data-table/data-column';
+import { DataColumns } from 'components/data-table/data-table';
+import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters';
import { Grid, Paper } from '@material-ui/core';
import { WorkflowDetailsCard } from './workflow-description-card';
-import { WorkflowResource } from '~/models/workflow';
-import { createTree } from '~/models/tree';
+import { WorkflowResource } from 'models/workflow';
+import { createTree } from 'models/tree';
export enum WorkflowPanelColumnNames {
NAME = "Name",
import { Dispatch } from "redux";
import { connect } from "react-redux";
-import { navigateTo } from '~/store/navigation/navigation-action';
-import { WorkflowPanelView } from '~/views/workflow-panel/workflow-panel-view';
+import { navigateTo } from 'store/navigation/navigation-action';
+import { WorkflowPanelView } from 'views/workflow-panel/workflow-panel-view';
import { WorfklowPanelActionProps, WorkflowPanelDataProps } from './workflow-panel-view';
-import { showWorkflowDetails, getWorkflowDetails } from '~/store/workflow-panel/workflow-panel-actions';
-import { RootState } from '~/store/store';
+import { showWorkflowDetails, getWorkflowDetails } from 'store/workflow-panel/workflow-panel-actions';
+import { RootState } from 'store/store';
const mapStateToProps = (state: RootState): WorkflowPanelDataProps => ({
workflow: getWorkflowDetails(state)
//
// SPDX-License-Identifier: AGPL-3.0
-import { AuthService } from '~/services/auth-service/auth-service';
+import { AuthService } from 'services/auth-service/auth-service';
import { ResourceEventMessage } from './resource-event-message';
import { camelCase } from 'lodash';
-import { CommonResourceService } from "~/services/common-service/common-resource-service";
+import { CommonResourceService } from "services/common-service/common-resource-service";
type MessageListener = (message: ResourceEventMessage) => void;
//
// SPDX-License-Identifier: AGPL-3.0
-import { RootStore } from '~/store/store';
-import { AuthService } from '~/services/auth-service/auth-service';
-import { Config } from '~/common/config';
+import { RootStore } from 'store/store';
+import { AuthService } from 'services/auth-service/auth-service';
+import { Config } from 'common/config';
import { WebSocketService } from './websocket-service';
import { ResourceEventMessage } from './resource-event-message';
-import { ResourceKind } from '~/models/resource';
-import { loadProcess } from '~/store/processes/processes-actions';
-import { LogEventType } from '~/models/log';
-import { addProcessLogsPanelItem } from '../store/process-logs-panel/process-logs-panel-actions';
-import { subprocessPanelActions } from "~/store/subprocess-panel/subprocess-panel-actions";
-import { projectPanelActions } from "~/store/project-panel/project-panel-action";
-import { getProjectPanelCurrentUuid } from '~/store/project-panel/project-panel-action';
-import { allProcessesPanelActions } from '~/store/all-processes-panel/all-processes-panel-action';
+import { ResourceKind } from 'models/resource';
+import { loadProcess } from 'store/processes/processes-actions';
+import { LogEventType } from 'models/log';
+import { addProcessLogsPanelItem } from 'store/process-logs-panel/process-logs-panel-actions';
+import { subprocessPanelActions } from "store/subprocess-panel/subprocess-panel-actions";
+import { projectPanelActions } from "store/project-panel/project-panel-action";
+import { getProjectPanelCurrentUuid } from 'store/project-panel/project-panel-action';
+import { allProcessesPanelActions } from 'store/all-processes-panel/all-processes-panel-action';
export const initWebSocket = (config: Config, authService: AuthService, store: RootStore) => {
if (config.websocketUrl) {