[ARVADOS-WORKBENCH2] created: 1.2.0-872-g02e7791
Git user
git at public.curoverse.com
Wed Nov 14 09:27:28 EST 2018
at 02e77918141f173e5a61b17623c8cad0e8a1bae3 (commit)
commit 02e77918141f173e5a61b17623c8cad0e8a1bae3
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Wed Nov 14 15:27:20 2018 +0100
Disable activation of shared and favoriets project in projects tree picker
Feature #14470
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views-components/projects-tree-picker/projects-tree-picker.tsx b/src/views-components/projects-tree-picker/projects-tree-picker.tsx
index 6c66d1a..ae98cf0 100644
--- a/src/views-components/projects-tree-picker/projects-tree-picker.tsx
+++ b/src/views-components/projects-tree-picker/projects-tree-picker.tsx
@@ -3,11 +3,11 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { values, memoize, pipe } from 'lodash/fp';
+import { values, memoize, pipe, pick } 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 } from '~/store/tree-picker/tree-picker-actions';
+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';
@@ -23,11 +23,17 @@ export interface ProjectsTreePickerProps {
export const ProjectsTreePicker = ({ pickerId, ...props }: ProjectsTreePickerProps) => {
const { home, shared, favorites } = getProjectsTreePickerIds(pickerId);
const relatedTreePickers = getRelatedTreePickers(pickerId);
+ const p = {
+ ...props,
+ relatedTreePickers,
+ disableActivation
+ };
return <div>
- <HomeTreePicker pickerId={home} {...props} {...{ relatedTreePickers }} />
- <SharedTreePicker pickerId={shared} {...props} {...{ relatedTreePickers }} />
- <FavoritesTreePicker pickerId={favorites} {...props} {...{ relatedTreePickers }} />
+ <HomeTreePicker pickerId={home} {...p} />
+ <SharedTreePicker pickerId={shared} {...p} />
+ <FavoritesTreePicker pickerId={favorites} {...p} />
</div>;
};
const getRelatedTreePickers = memoize(pipe(getProjectsTreePickerIds, values));
+const disableActivation = [SHARED_PROJECT_ID, FAVORITES_PROJECT_ID];
commit 807660c78edbb1672af8b60348961896e48487b6
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Wed Nov 14 15:26:55 2018 +0100
Extract constants from shared and favorites projects ids
Feature #14470
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/store/tree-picker/tree-picker-actions.ts b/src/store/tree-picker/tree-picker-actions.ts
index a381635..657d65b 100644
--- a/src/store/tree-picker/tree-picker-actions.ts
+++ b/src/store/tree-picker/tree-picker-actions.ts
@@ -137,7 +137,7 @@ export const loadCollection = (id: string, pickerId: string) =>
if (node && 'kind' in node.value && node.value.kind === ResourceKind.COLLECTION) {
const filesTree = await services.collectionService.files(node.value.portableDataHash);
-
+
dispatch(
treePickerActions.APPEND_TREE_PICKER_NODE_SUBTREE({
id,
@@ -175,13 +175,13 @@ export const loadUserProject = (pickerId: string, includeCollections = false, in
}
};
-
+export const SHARED_PROJECT_ID = 'Shared with me';
export const initSharedProject = (pickerId: string) =>
async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
dispatch(receiveTreePickerData({
id: '',
pickerId,
- data: [{ uuid: 'Shared with me', name: 'Shared with me' }],
+ data: [{ uuid: SHARED_PROJECT_ID, name: SHARED_PROJECT_ID }],
extractNodeData: value => ({
id: value.uuid,
status: TreeNodeStatus.INITIAL,
@@ -190,12 +190,13 @@ export const initSharedProject = (pickerId: string) =>
}));
};
+export const FAVORITES_PROJECT_ID = 'Favorites';
export const initFavoritesProject = (pickerId: string) =>
async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
dispatch(receiveTreePickerData({
id: '',
pickerId,
- data: [{ uuid: 'Favorites', name: 'Favorites' }],
+ data: [{ uuid: FAVORITES_PROJECT_ID, name: FAVORITES_PROJECT_ID }],
extractNodeData: value => ({
id: value.uuid,
status: TreeNodeStatus.INITIAL,
commit 61eb34ae0ce62f67769baeba02b4e15971873e34
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Wed Nov 14 15:26:28 2018 +0100
Add property for disabling certain items activation
Feature #14470
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx b/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx
index d8a5d49..fafb050 100644
--- a/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx
+++ b/src/views-components/projects-tree-picker/generic-projects-tree-picker.tsx
@@ -5,6 +5,7 @@
import * as React from "react";
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";
@@ -30,6 +31,7 @@ export interface ProjectsTreePickerDataProps {
rootItemIcon: IconType;
showSelection?: boolean;
relatedTreePickers?: string[];
+ disableActivation?: string[];
loadRootItem: (item: TreeItem<ProjectsTreePickerRootItem>, pickerId: string, includeCollections?: boolean, inlcudeFiles?: boolean) => void;
}
@@ -43,6 +45,12 @@ const mapStateToProps = (_: any, { rootItemIcon, showSelection }: ProjectsTreePi
const mapDispatchToProps = (dispatch: Dispatch, { loadRootItem, includeCollections, includeFiles, relatedTreePickers, ...props }: ProjectsTreePickerProps): PickedTreePickerProps => ({
onContextMenu: () => { return; },
toggleItemActive: (event, item, pickerId) => {
+
+ const { disableActivation = [] } = props;
+ if(disableActivation.some(isEqual(item.id))){
+ return;
+ }
+
dispatch(treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id: item.id, pickerId, relatedTreePickers }));
if (props.toggleItemActive) {
props.toggleItemActive(event, item, pickerId);
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list