From 023976c99243e999ef8a2457cb19ddf7306b7f36 Mon Sep 17 00:00:00 2001 From: bkmartinjr Date: Fri, 22 Jan 2021 14:06:43 -0800 Subject: [PATCH] client/src/actions/ --- client/src/reducers/autosave.js | 56 +++++++++++++++++++++++---- client/src/reducers/genesets.js | 8 +++- server/common/config/client_config.py | 1 + 3 files changed, 57 insertions(+), 8 deletions(-) diff --git a/client/src/reducers/autosave.js b/client/src/reducers/autosave.js index 929be152..98116e29 100644 --- a/client/src/reducers/autosave.js +++ b/client/src/reducers/autosave.js @@ -1,17 +1,26 @@ const Autosave = ( state = { - saveInProgress: false, - error: false, + // cell labels + obsAnnotationSaveInProgress: false, lastSavedAnnoMatrix: null, + + // gene sets + genesetSaveInProgress: false, + lastSavedGenesets: null, + + // error state + error: false, }, - action + action, + nextSharedState ) => { + console.log("autosave", action); switch (action.type) { case "annoMatrix: init complete": { return { ...state, error: false, - saveInProgress: false, + obsAnnotationSaveInProgress: false, lastSavedAnnoMatrix: action.annoMatrix, }; } @@ -19,7 +28,7 @@ const Autosave = ( case "writable obs annotations - save started": { return { ...state, - saveInProgress: true, + obsAnnotationSaveInProgress: true, }; } @@ -27,7 +36,7 @@ const Autosave = ( return { ...state, error: action.message, - saveInProgress: false, + obsAnnotationSaveInProgress: false, }; } @@ -35,12 +44,45 @@ const Autosave = ( const { lastSavedAnnoMatrix } = action; return { ...state, - saveInProgress: false, + obsAnnotationSaveInProgress: false, error: false, lastSavedAnnoMatrix, }; } + case "geneset: initial load": { + return { + ...state, + genesetSaveInProgress: false, + lastSavedGenesets: nextSharedState.genesets, + }; + } + + case "autosave: genesets started": { + return { + ...state, + genesetSaveInProgress: true, + }; + } + + case "autosave: genesets error": { + return { + ...state, + genesetSaveInProgress: false, + error: action.message, + }; + } + + case "autosave: genesets complete": { + const { lastSavedGenesets } = action; + return { + ...state, + genesetSaveInProgess: false, + error: false, + lastSavedGenesets, + }; + } + default: return { ...state }; } diff --git a/client/src/reducers/genesets.js b/client/src/reducers/genesets.js index e79839d5..ec06a4dd 100644 --- a/client/src/reducers/genesets.js +++ b/client/src/reducers/genesets.js @@ -9,6 +9,7 @@ */ const GeneSets = ( state = { + initialized: false, genesets: new Map(), }, action @@ -23,7 +24,7 @@ const GeneSets = ( */ case "geneset: initial load": { const { init } = action; - const genesets = new Map(state.genesets); + const genesets = new Map(); for (const gs of init) { const genes = new Set(); for (const gene of gs[1]) { @@ -33,6 +34,7 @@ const GeneSets = ( } return { genesets, + initialized: true, }; } @@ -51,6 +53,7 @@ const GeneSets = ( const genesets = new Map(state.genesets); // clone genesets.set(name, new Set(genes || [])); return { + ...state, genesets, }; } @@ -69,6 +72,7 @@ const GeneSets = ( const genesets = new Map(state.genesets); // clone genesets.delete(name); return { + ...state, genesets, }; } @@ -92,6 +96,7 @@ const GeneSets = ( } genesets.set(name, newGenes); return { + ...state, genesets, }; } @@ -115,6 +120,7 @@ const GeneSets = ( } genesets.set(name, newGenes); return { + ...state, genesets, }; } diff --git a/server/common/config/client_config.py b/server/common/config/client_config.py index c7578d7a..311d159e 100644 --- a/server/common/config/client_config.py +++ b/server/common/config/client_config.py @@ -44,6 +44,7 @@ def get_client_config(app_config, data_adaptor): "annotations": False, "annotations_file": None, "annotations_dir": None, + "annotations_genesets": True, # feature flag "annotations_genesets_readonly": dataset_config.user_annotations__genesets__readonly, "annotations_cell_ontology_enabled": False, "annotations_cell_ontology_obopath": None,