[ARVADOS-WORKBENCH2] created: 1.2.0-820-g994434c
Git user
git at public.curoverse.com
Wed Nov 7 07:07:05 EST 2018
at 994434ce0881e5e4f309982790352e9af66cdb05 (commit)
commit 994434ce0881e5e4f309982790352e9af66cdb05
Author: Janicki Artur <artur.janicki at contractors.roche.com>
Date: Wed Nov 7 13:06:13 2018 +0100
fix browse the contents of a Project in Trash and tooltips around button
Feature #14319_loaded_contents_for_project_in_trash
Arvados-DCO-1.1-Signed-off-by: Janicki Artur <artur.janicki at contractors.roche.com>
diff --git a/src/components/collection-panel-files/collection-panel-files.tsx b/src/components/collection-panel-files/collection-panel-files.tsx
index c3cb4ac..9a534e4 100644
--- a/src/components/collection-panel-files/collection-panel-files.tsx
+++ b/src/components/collection-panel-files/collection-panel-files.tsx
@@ -63,7 +63,7 @@ export const CollectionPanelFiles =
<CardHeader
className={classes.cardSubheader}
action={
- <Tooltip title="More options">
+ <Tooltip title="More options" disableFocusListener>
<IconButton onClick={onOptionsMenuOpen}>
<CustomizeTableIcon />
</IconButton>
diff --git a/src/components/data-explorer/data-explorer.tsx b/src/components/data-explorer/data-explorer.tsx
index fcb10af..08f52d0 100644
--- a/src/components/data-explorer/data-explorer.tsx
+++ b/src/components/data-explorer/data-explorer.tsx
@@ -125,7 +125,7 @@ export const DataExplorer = withStyles(styles)(
renderContextMenuTrigger = (item: T) =>
<Grid container justify="center">
- <Tooltip title="More options">
+ <Tooltip title="More options" disableFocusListener>
<IconButton className={this.props.classes.moreOptionsButton} onClick={event => this.props.onContextMenu(event, item)}>
<MoreVertIcon />
</IconButton>
diff --git a/src/components/file-tree/file-tree-item.tsx b/src/components/file-tree/file-tree-item.tsx
index 98164ad..89bf43c 100644
--- a/src/components/file-tree/file-tree-item.tsx
+++ b/src/components/file-tree/file-tree-item.tsx
@@ -50,7 +50,7 @@ export const FileTreeItem = withStyles(fileTreeItemStyle)(
<Typography
className={classes.sizeInfo}
variant="caption">{formatFileSize(item.data.size)}</Typography>
- <Tooltip title="More options">
+ <Tooltip title="More options" disableFocusListener>
<IconButton
className={classes.button}
onClick={this.handleClick}>
diff --git a/src/store/project-panel/project-panel-action.ts b/src/store/project-panel/project-panel-action.ts
index 6e63901..e094cb1 100644
--- a/src/store/project-panel/project-panel-action.ts
+++ b/src/store/project-panel/project-panel-action.ts
@@ -10,6 +10,7 @@ import { RootState } from '~/store/store';
import { getProperty } from "~/store/properties/properties";
export const PROJECT_PANEL_ID = "projectPanel";
export const PROJECT_PANEL_CURRENT_UUID = "projectPanelCurrentUuid";
+export const IS_PROJECT_PANEL_TRASHED = 'isProjectPanelTrashed';
export const projectPanelActions = bindDataExplorerActions(PROJECT_PANEL_ID);
export const openProjectPanel = (projectUuid: string) =>
@@ -20,3 +21,7 @@ export const openProjectPanel = (projectUuid: string) =>
export const getProjectPanelCurrentUuid = (state: RootState) => getProperty<string>(PROJECT_PANEL_CURRENT_UUID)(state.properties);
+export const setIsProjectPanelTrashed = (isTrashed: boolean) =>
+ (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+ dispatch(propertiesActions.SET_PROPERTY({ key: IS_PROJECT_PANEL_TRASHED, value: isTrashed }));
+ };
diff --git a/src/store/project-panel/project-panel-middleware-service.ts b/src/store/project-panel/project-panel-middleware-service.ts
index 0da669a..a641b31 100644
--- a/src/store/project-panel/project-panel-middleware-service.ts
+++ b/src/store/project-panel/project-panel-middleware-service.ts
@@ -17,7 +17,7 @@ import { OrderBuilder, OrderDirection } from "~/services/api/order-builder";
import { FilterBuilder } from "~/services/api/filter-builder";
import { GroupContentsResource, GroupContentsResourcePrefix } from "~/services/groups-service/groups-service";
import { updateFavorites } from "../favorites/favorites-actions";
-import { PROJECT_PANEL_CURRENT_UUID, projectPanelActions } from './project-panel-action';
+import { PROJECT_PANEL_CURRENT_UUID, IS_PROJECT_PANEL_TRASHED, projectPanelActions } from './project-panel-action';
import { Dispatch, MiddlewareAPI } from "redux";
import { ProjectResource } from "~/models/project";
import { updateResources } from "~/store/resources/resources-actions";
@@ -41,6 +41,7 @@ export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService
const state = api.getState();
const dataExplorer = getDataExplorer(state.dataExplorer, this.getId());
const projectUuid = getProperty<string>(PROJECT_PANEL_CURRENT_UUID)(state.properties);
+ const isProjectTrashed = getProperty<string>(IS_PROJECT_PANEL_TRASHED)(state.properties);
if (!projectUuid) {
api.dispatch(projectPanelCurrentUuidIsNotSet());
} else if (!dataExplorer) {
@@ -48,7 +49,7 @@ export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService
} else {
try {
api.dispatch(progressIndicatorActions.START_WORKING(this.getId()));
- const response = await this.services.groupsService.contents(projectUuid, getParams(dataExplorer));
+ const response = await this.services.groupsService.contents(projectUuid, getParams(dataExplorer, !!isProjectTrashed));
api.dispatch(progressIndicatorActions.PERSIST_STOP_WORKING(this.getId()));
const resourceUuids = response.items.map(item => item.uuid);
api.dispatch<any>(updateFavorites(resourceUuids));
@@ -105,10 +106,11 @@ export const setItems = (listResults: ListResults<GroupContentsResource>) =>
items: listResults.items.map(resource => resource.uuid),
});
-export const getParams = (dataExplorer: DataExplorer) => ({
+export const getParams = (dataExplorer: DataExplorer, isProjectTrashed: boolean) => ({
...dataExplorerToListParams(dataExplorer),
order: getOrder(dataExplorer),
filters: getFilters(dataExplorer),
+ includeTrash: isProjectTrashed
});
export const getFilters = (dataExplorer: DataExplorer) => {
diff --git a/src/store/workbench/workbench-actions.ts b/src/store/workbench/workbench-actions.ts
index f86ea78..400264c 100644
--- a/src/store/workbench/workbench-actions.ts
+++ b/src/store/workbench/workbench-actions.ts
@@ -7,7 +7,7 @@ import { RootState } from "../store";
import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
import { snackbarActions } from '../snackbar/snackbar-actions';
import { loadFavoritePanel } from '../favorite-panel/favorite-panel-action';
-import { openProjectPanel, projectPanelActions } from '~/store/project-panel/project-panel-action';
+import { openProjectPanel, projectPanelActions, setIsProjectPanelTrashed } from '~/store/project-panel/project-panel-action';
import { activateSidePanelTreeItem, initSidePanelTree, SidePanelTreeCategory, loadSidePanelTreeProjects } from '../side-panel-tree/side-panel-tree-actions';
import { loadResource, updateResources } from '../resources/resources-actions';
import { favoritePanelActions } from '~/store/favorite-panel/favorite-panel-action';
@@ -53,7 +53,6 @@ import { collectionPanelActions } from "~/store/collection-panel/collection-pane
import { CollectionResource } from "~/models/collection";
import { searchResultsPanelActions, loadSearchResultsPanel } from '~/store/search-results-panel/search-results-panel-actions';
import { searchResultsPanelColumns } from '~/views/search-results-panel/search-results-panel-view';
-import * as uuid from 'uuid/v4';
export const WORKBENCH_LOADING_SCREEN = 'workbenchLoadingScreen';
@@ -123,6 +122,7 @@ export const loadProject = (uuid: string) =>
handleFirstTimeLoad(
async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
const userUuid = services.authService.getUuid();
+ dispatch(setIsProjectPanelTrashed(false));
if (userUuid) {
if (userUuid !== uuid) {
const match = await loadGroupContentsResource({ uuid, userUuid, services });
@@ -139,6 +139,7 @@ export const loadProject = (uuid: string) =>
},
TRASHED: project => {
dispatch<any>(setTrashBreadcrumbs(uuid));
+ dispatch(setIsProjectPanelTrashed(true));
dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH));
dispatch(finishLoadingProject(project));
}
diff --git a/src/views/process-log-panel/process-log-main-card.tsx b/src/views/process-log-panel/process-log-main-card.tsx
index 397f037..42df2d9 100644
--- a/src/views/process-log-panel/process-log-main-card.tsx
+++ b/src/views/process-log-panel/process-log-main-card.tsx
@@ -73,7 +73,7 @@ export const ProcessLogMainCard = withStyles(styles)(
<CardHeader
avatar={<ProcessIcon className={classes.iconHeader} />}
action={
- <Tooltip title="More options">
+ <Tooltip title="More options" disableFocusListener>
<IconButton onClick={event => onContextMenu(event, process)} aria-label="More options">
<MoreOptionsIcon />
</IconButton>
diff --git a/src/views/process-panel/process-information-card.tsx b/src/views/process-panel/process-information-card.tsx
index 9b21ce5..7fcabcb 100644
--- a/src/views/process-panel/process-information-card.tsx
+++ b/src/views/process-panel/process-information-card.tsx
@@ -87,7 +87,7 @@ export const ProcessInformationCard = withStyles(styles, { withTheme: true })(
<Chip label={getProcessStatus(process)}
className={classes.chip}
style={{ backgroundColor: getProcessStatusColor(getProcessStatus(process), theme as ArvadosTheme) }} />
- <Tooltip title="More options">
+ <Tooltip title="More options" disableFocusListener>
<IconButton
aria-label="More options"
onClick={event => onContextMenu(event)}>
diff --git a/src/views/process-panel/process-subprocesses-card.tsx b/src/views/process-panel/process-subprocesses-card.tsx
index be4ad90..7a1901f 100644
--- a/src/views/process-panel/process-subprocesses-card.tsx
+++ b/src/views/process-panel/process-subprocesses-card.tsx
@@ -86,7 +86,7 @@ export const ProcessSubprocessesCard = withStyles(styles, { withTheme: true })(
<Typography noWrap variant="body2" className={classes.status}>
{getProcessStatus(subprocess)}
</Typography>
- <Tooltip title="More options">
+ <Tooltip title="More options" disableFocusListener>
<IconButton
className={classes.options}
aria-label="More options"
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list