From 876ceb4d8b9449947c9a7608a1616de4d9ca1818 Mon Sep 17 00:00:00 2001 From: Colin Megill Date: Wed, 21 Apr 2021 16:50:29 -0700 Subject: [PATCH] Create / edit geneset description (#2139) * geneset description add * edit geneset description * default state for desc * remove log * naming, todo * check for both dup name and desc * fixes * do not store gene set modal state in history stack * Update createGenesetDialogue.js * Update editGenesetNameDialogue.js Co-authored-by: bkmartinjr --- client/__tests__/reducers/genesets.test.js | 2 +- client/src/components/annoDialog.js | 2 + .../src/components/geneExpression/geneSet.js | 20 ++- client/src/components/geneExpression/index.js | 1 + .../menus/createGenesetDialogue.js | 148 ++++++++++++------ .../menus/editGenesetNameDialogue.js | 48 ++++-- .../geneExpression/menus/genesetMenus.js | 2 +- client/src/reducers/genesets.js | 15 +- client/src/reducers/index.js | 1 - 9 files changed, 170 insertions(+), 69 deletions(-) diff --git a/client/__tests__/reducers/genesets.test.js b/client/__tests__/reducers/genesets.test.js index 7df76c6c..ad377f6c 100644 --- a/client/__tests__/reducers/genesets.test.js +++ b/client/__tests__/reducers/genesets.test.js @@ -276,7 +276,7 @@ describe("geneset: update", () => { }, } ); - }).toThrow("update specified existing name"); + }).toThrow("update specified existing name and description"); }); }); diff --git a/client/src/components/annoDialog.js b/client/src/components/annoDialog.js index e3842611..8064b146 100644 --- a/client/src/components/annoDialog.js +++ b/client/src/components/annoDialog.js @@ -48,6 +48,7 @@ class AnnoDialog extends React.PureComponent { > {errorMessage}

+ {/* we might rename, secondary button and secondary input are not related */} {secondaryInstructions && (

{secondaryInstructions} @@ -62,6 +63,7 @@ class AnnoDialog extends React.PureComponent { + {/* we might rename, secondary button and secondary input are not related */} {handleSecondaryButtonSubmit && secondaryButtonText ? ( + + + + + + ); } diff --git a/client/src/components/geneExpression/menus/editGenesetNameDialogue.js b/client/src/components/geneExpression/menus/editGenesetNameDialogue.js index c4dc321d..276492d4 100644 --- a/client/src/components/geneExpression/menus/editGenesetNameDialogue.js +++ b/client/src/components/geneExpression/menus/editGenesetNameDialogue.js @@ -14,14 +14,16 @@ class RenameGeneset extends React.PureComponent { constructor(props) { super(props); this.state = { - genesetName: props.parentGeneset, + newGenesetName: props.parentGeneset, + newGenesetDescription: props.parentGenesetDescription, }; } disableEditGenesetNameMode = (e) => { const { dispatch } = this.props; this.setState({ - genesetName: "", + newGenesetName: "", + newGenesetDescription: "", }); dispatch({ type: "geneset: disable rename geneset mode", @@ -31,12 +33,15 @@ class RenameGeneset extends React.PureComponent { renameGeneset = (e) => { const { dispatch, genesetsUI } = this.props; - const { genesetName } = this.state; + const { newGenesetName, newGenesetDescription } = this.state; dispatch({ type: "geneset: update", genesetName: genesetsUI.isEditingGenesetName, - update: { genesetName }, + update: { + genesetName: newGenesetName, + genesetDescription: newGenesetDescription, + }, }); dispatch({ type: "geneset: disable rename geneset mode", @@ -49,12 +54,16 @@ class RenameGeneset extends React.PureComponent { }; handleChange = (e) => { - this.setState({ genesetName: e }); + this.setState({ newGenesetName: e }); + }; + + handleChangeDescription = (e) => { + this.setState({ newGenesetDescription: e }); }; render() { - const { genesetName } = this.state; - const { genesetsUI, parentGeneset } = this.props; + const { newGenesetName, newGenesetDescription } = this.state; + const { genesetsUI, parentGeneset, parentGenesetDescription } = this.props; return ( <> @@ -66,15 +75,19 @@ class RenameGeneset extends React.PureComponent { primaryButtonProps={{ "data-testid": `${genesetsUI.isEditingGenesetName}:submit-geneset`, }} - title="Rename gene set" + title="Edit gene set name and description" instruction={`Rename ${genesetsUI.isEditingGenesetName}`} cancelTooltipContent="Close this dialog without renaming the gene set." - primaryButtonText="Rename gene set" - text={genesetName} - validationError={genesetsUI.isEditingGenesetName === genesetName} + primaryButtonText="Edit gene set name and description" + text={newGenesetName} + secondaryText={newGenesetDescription} + validationError={ + genesetsUI.isEditingGenesetName === newGenesetName && + parentGenesetDescription === newGenesetDescription + } annoInput={ + } + secondaryInstructions="Edit description" + secondaryInput={ + } handleSubmit={this.renameGeneset} diff --git a/client/src/components/geneExpression/menus/genesetMenus.js b/client/src/components/geneExpression/menus/genesetMenus.js index 7f48948d..129098d6 100644 --- a/client/src/components/geneExpression/menus/genesetMenus.js +++ b/client/src/components/geneExpression/menus/genesetMenus.js @@ -82,7 +82,7 @@ class GenesetMenus extends React.PureComponent { data-testclass="activateEditGenesetNameMode" data-testid={`${geneset}:edit-genesetName-mode`} onClick={this.activateEditGenesetNameMode} - text="Edit gene set name" + text="Edit gene set name and description" />