From 973ab33e961c1f6e0d1c3cb9b2a802100bf50645 Mon Sep 17 00:00:00 2001 From: Garrett Date: Tue, 26 Sep 2023 09:25:42 -0700 Subject: [PATCH] Update based on suggestions --- paths.config.json | 2 +- pyflask/app.py | 4 +-- pyflask/manageNeuroconv/info/urls.py | 2 +- schemas/json/project/globals.json | 4 +-- src/renderer/src/dependencies/simple.js | 4 +-- src/renderer/src/progress/index.js | 4 +-- src/renderer/src/progress/operations.js | 6 ++-- src/renderer/src/stories/Main.js | 4 ++- src/renderer/src/stories/pages/Page.js | 4 +-- .../guided-mode/data/GuidedSourceData.js | 2 +- .../pages/guided-mode/data/GuidedStructure.js | 2 +- .../options/GuidedInspectorPage.js | 2 +- .../guided-mode/options/GuidedStubPreview.js | 2 +- .../guided-mode/setup/GuidedNewDatasetInfo.js | 4 +-- .../pages/guided-mode/setup/GuidedSubjects.js | 2 +- .../src/stories/pages/inspect/InspectPage.js | 1 + .../src/stories/pages/preview/PreviewPage.js | 1 + src/renderer/src/stories/preview/Neurosift.js | 2 +- .../src/stories/preview/inspector/test.json | 32 +++++++++---------- src/renderer/src/validation/validation.json | 2 +- 20 files changed, 44 insertions(+), 42 deletions(-) diff --git a/paths.config.json b/paths.config.json index 1051492e7..86631532e 100644 --- a/paths.config.json +++ b/paths.config.json @@ -3,7 +3,7 @@ "subfolders": { "progress": ["pipelines"], "conversions": ["conversions"], - "stubs": ["stubs"], + "preview": ["preview"], "tutorial": ["tutorial"] } } diff --git a/pyflask/app.py b/pyflask/app.py index 890d9bede..edd60db62 100644 --- a/pyflask/app.py +++ b/pyflask/app.py @@ -84,8 +84,8 @@ def send_conversions(path): return send_from_directory(CONVERSION_SAVE_FOLDER_PATH, path) -@app.route("/stubs/") -def send_stubs(path): +@app.route("/preview/") +def send_preview(path): return send_from_directory(STUB_SAVE_FOLDER_PATH, path) diff --git a/pyflask/manageNeuroconv/info/urls.py b/pyflask/manageNeuroconv/info/urls.py index ef9a4bd8c..9672160e6 100644 --- a/pyflask/manageNeuroconv/info/urls.py +++ b/pyflask/manageNeuroconv/info/urls.py @@ -20,7 +20,7 @@ def resource_path(relative_path): ) # NOTE: Must have pyflask for running the GUIDE as a whole, but errors for just the server f = path_config.open() data = json.load(f) -STUB_SAVE_FOLDER_PATH = Path(Path.home(), data["root"], *data["subfolders"]["stubs"]) +STUB_SAVE_FOLDER_PATH = Path(Path.home(), data["root"], *data["subfolders"]["preview"]) CONVERSION_SAVE_FOLDER_PATH = Path(Path.home(), data["root"], *data["subfolders"]["conversions"]) TUTORIAL_SAVE_FOLDER_PATH = Path(Path.home(), data["root"], *data["subfolders"]["tutorial"]) diff --git a/schemas/json/project/globals.json b/schemas/json/project/globals.json index 226ecf4f2..66280e879 100644 --- a/schemas/json/project/globals.json +++ b/schemas/json/project/globals.json @@ -6,10 +6,10 @@ "description": "Provide a custom output location for your NWB files. Will default to ~/NWB_GUIDE/conversions" }, - "stub_output_folder": { + "preview_output_folder": { "type": "string", "format": "directory", - "description": "Provide a custom output location for your NWB stub files. Will default to ~/NWB_GUIDE/stubs" + "description": "Provide a custom output location for your NWB stub files. Will default to ~/NWB_GUIDE/preview. These files are expected to much smaller than the conversion files (only ~MB in scale)." } } } diff --git a/src/renderer/src/dependencies/simple.js b/src/renderer/src/dependencies/simple.js index 97f8d2148..e51ca67fb 100644 --- a/src/renderer/src/dependencies/simple.js +++ b/src/renderer/src/dependencies/simple.js @@ -12,8 +12,8 @@ export const homeDirectory = app?.getPath("home") ?? ""; export const appDirectory = homeDirectory ? joinPath(homeDirectory, paths.root) : ""; export const guidedProgressFilePath = homeDirectory ? joinPath(appDirectory, ...paths.subfolders.progress) : ""; -export const stubSaveFolderPath = homeDirectory - ? joinPath(homeDirectory, paths["root"], ...paths.subfolders.stubs) +export const previewSaveFolderPath = homeDirectory + ? joinPath(homeDirectory, paths["root"], ...paths.subfolders.preview) : ""; export const conversionSaveFolderPath = homeDirectory ? joinPath(homeDirectory, paths["root"], ...paths.subfolders.conversions) diff --git a/src/renderer/src/progress/index.js b/src/renderer/src/progress/index.js index 212954f47..f2b1fb3a4 100644 --- a/src/renderer/src/progress/index.js +++ b/src/renderer/src/progress/index.js @@ -4,9 +4,7 @@ import { guidedProgressFilePath, reloadPageToHome, isStorybook, - appDirectory, - stubSaveFolderPath, - conversionSaveFolderPath, + appDirectory } from "../dependencies/simple.js"; import { fs } from "../electron/index.js"; import { joinPath, runOnLoad } from "../globals.js"; diff --git a/src/renderer/src/progress/operations.js b/src/renderer/src/progress/operations.js index 20ec92b2c..3e0e70fa4 100644 --- a/src/renderer/src/progress/operations.js +++ b/src/renderer/src/progress/operations.js @@ -1,5 +1,5 @@ import { joinPath } from "../globals"; -import { conversionSaveFolderPath, guidedProgressFilePath, stubSaveFolderPath } from "../dependencies/simple"; +import { conversionSaveFolderPath, guidedProgressFilePath, previewSaveFolderPath } from "../dependencies/simple"; import { fs } from "../electron"; export const remove = (name) => { @@ -11,8 +11,8 @@ export const remove = (name) => { else localStorage.removeItem(progressFilePathToDelete); if (fs) { - // delete default stub location - fs.rmSync(joinPath(stubSaveFolderPath, name), { recursive: true, force: true }); + // delete default preview location + fs.rmSync(joinPath(previewSaveFolderPath, name), { recursive: true, force: true }); // delete default conversion location fs.rmSync(joinPath(conversionSaveFolderPath, name), { recursive: true, force: true }); diff --git a/src/renderer/src/stories/Main.js b/src/renderer/src/stories/Main.js index 9a505cabd..78ce1f2be 100644 --- a/src/renderer/src/stories/Main.js +++ b/src/renderer/src/stories/Main.js @@ -4,6 +4,8 @@ import { GuidedFooter } from "./pages/guided-mode/GuidedFooter"; import { GuidedCapsules } from "./pages/guided-mode/GuidedCapsules.js"; import { GuidedHeader } from "./pages/guided-mode/GuidedHeader.js"; +import { unsafeHTML } from "lit/directives/unsafe-html.js"; + const componentCSS = ` :host { display: grid; @@ -147,7 +149,7 @@ export class Main extends LitElement { >

${title}

- ${subtitle} + ${unsafeHTML(subtitle)}
${controls}
diff --git a/src/renderer/src/stories/pages/Page.js b/src/renderer/src/stories/pages/Page.js index 49b22071b..b540e4ed4 100644 --- a/src/renderer/src/stories/pages/Page.js +++ b/src/renderer/src/stories/pages/Page.js @@ -151,7 +151,7 @@ export class Page extends LitElement { const { subject, session, globalState = this.info.globalState } = info; const file = `sub-${subject}/sub-${subject}_ses-${session}.nwb`; - const { conversion_output_folder, stub_output_folder, name } = globalState.project; + const { conversion_output_folder, preview_output_folder, name } = globalState.project; // Resolve the correct session info from all of the metadata for this conversion const sessionInfo = { @@ -161,7 +161,7 @@ export class Page extends LitElement { const result = await runConversion( { - output_folder: conversionOptions.stub_test ? stub_output_folder : conversion_output_folder, + output_folder: conversionOptions.stub_test ? preview_output_folder : conversion_output_folder, project_name: name, nwbfile_path: file, overwrite: true, // We assume override is true because the native NWB file dialog will not allow the user to select an existing file (unless they approve the overwrite) diff --git a/src/renderer/src/stories/pages/guided-mode/data/GuidedSourceData.js b/src/renderer/src/stories/pages/guided-mode/data/GuidedSourceData.js index ad0938a9f..06cf19393 100644 --- a/src/renderer/src/stories/pages/guided-mode/data/GuidedSourceData.js +++ b/src/renderer/src/stories/pages/guided-mode/data/GuidedSourceData.js @@ -20,7 +20,7 @@ export class GuidedSourceDataPage extends ManagedPage { }; header = { - subtitle: "Essential information about the source files for this conversion", + subtitle: "Specify the file and folder locations on your local system for each interface, as well as any additional details that might be required", }; footer = { diff --git a/src/renderer/src/stories/pages/guided-mode/data/GuidedStructure.js b/src/renderer/src/stories/pages/guided-mode/data/GuidedStructure.js index ad0ddb440..7d6fe9bbe 100644 --- a/src/renderer/src/stories/pages/guided-mode/data/GuidedStructure.js +++ b/src/renderer/src/stories/pages/guided-mode/data/GuidedStructure.js @@ -30,7 +30,7 @@ export class GuidedStructurePage extends Page { } header = { - subtitle: "Required interfaces for this conversion", + subtitle: "Select all interfaces which apply to this experiment", }; search = new Search({ diff --git a/src/renderer/src/stories/pages/guided-mode/options/GuidedInspectorPage.js b/src/renderer/src/stories/pages/guided-mode/options/GuidedInspectorPage.js index 075f5d4f7..e17b0a74d 100644 --- a/src/renderer/src/stories/pages/guided-mode/options/GuidedInspectorPage.js +++ b/src/renderer/src/stories/pages/guided-mode/options/GuidedInspectorPage.js @@ -33,7 +33,7 @@ export class GuidedInspectorPage extends Page { } header = { - subtitle: () => `${getStubArray(this.info.globalState.preview.stubs).length} Files`, + subtitle: `The NWB Inspector has scanned your files for adherence to best practices`, controls: () => html` `${getStubArray(this.info.globalState.preview.stubs).length} Files`, + subtitle: `Preview file contents on truncated files using the Neurosift application`, controls: () => html` { page.header = { - subtitle: `Uniform ${page.info.label} metadata across all sessions`, + subtitle: `Enter any ${page.info.label}-level metadata that can serve as the common default across each experiment session`, }; this.addPage(page.info.label, page); }); diff --git a/src/renderer/src/stories/pages/guided-mode/setup/GuidedSubjects.js b/src/renderer/src/stories/pages/guided-mode/setup/GuidedSubjects.js index 239e67c91..ef3e71889 100644 --- a/src/renderer/src/stories/pages/guided-mode/setup/GuidedSubjects.js +++ b/src/renderer/src/stories/pages/guided-mode/setup/GuidedSubjects.js @@ -13,7 +13,7 @@ export class GuidedSubjectsPage extends Page { } header = { - subtitle: "Uniform metadata for the subjects included in this conversion", + subtitle: "Enter all metadata known about each experiment subject", }; beforeSave = () => { diff --git a/src/renderer/src/stories/pages/inspect/InspectPage.js b/src/renderer/src/stories/pages/inspect/InspectPage.js index 5b5164a2c..0aad886ed 100644 --- a/src/renderer/src/stories/pages/inspect/InspectPage.js +++ b/src/renderer/src/stories/pages/inspect/InspectPage.js @@ -14,6 +14,7 @@ export class InspectPage extends Page { super(...args); } + showReport = async (value) => { if (!value) { const message = "Please provide a folder to inspect."; diff --git a/src/renderer/src/stories/pages/preview/PreviewPage.js b/src/renderer/src/stories/pages/preview/PreviewPage.js index 13fea6714..269db3bcb 100644 --- a/src/renderer/src/stories/pages/preview/PreviewPage.js +++ b/src/renderer/src/stories/pages/preview/PreviewPage.js @@ -6,6 +6,7 @@ import { Neurosift } from "../../preview/Neurosift.js"; import { baseUrl } from "../../../globals.js"; export class PreviewPage extends Page { + constructor(...args) { super(...args); } diff --git a/src/renderer/src/stories/preview/Neurosift.js b/src/renderer/src/stories/preview/Neurosift.js index cc5374af3..622148da9 100644 --- a/src/renderer/src/stories/preview/Neurosift.js +++ b/src/renderer/src/stories/preview/Neurosift.js @@ -5,7 +5,7 @@ import { Loader } from "../Loader"; export function getURLFromFilePath(file, projectName) { const regexp = new RegExp(`.+(${projectName}.+)`); - return `${baseUrl}/stubs/${file.match(regexp)[1]}`; + return `${baseUrl}/preview/${file.match(regexp)[1]}`; } export class Neurosift extends LitElement { diff --git a/src/renderer/src/stories/preview/inspector/test.json b/src/renderer/src/stories/preview/inspector/test.json index aa7f9d4dc..65e6c36d7 100644 --- a/src/renderer/src/stories/preview/inspector/test.json +++ b/src/renderer/src/stories/preview/inspector/test.json @@ -7,7 +7,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" }, { "message": "Experiment description is missing.", @@ -17,7 +17,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" }, { "message": "Metadata /general/institution is missing.", @@ -27,7 +27,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" }, { "message": "Metadata /general/keywords is missing.", @@ -37,7 +37,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-070623.nwb" }, { "message": "Experimenter is missing.", @@ -47,7 +47,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" }, { "message": "Experiment description is missing.", @@ -57,7 +57,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" }, { "message": "Metadata /general/institution is missing.", @@ -67,7 +67,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" }, { "message": "Metadata /general/keywords is missing.", @@ -77,7 +77,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-070623.nwb" }, { "message": "Experimenter is missing.", @@ -87,7 +87,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" }, { "message": "Experiment description is missing.", @@ -97,7 +97,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" }, { "message": "Metadata /general/institution is missing.", @@ -107,7 +107,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" }, { "message": "Metadata /general/keywords is missing.", @@ -117,7 +117,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse2/sub-mouse2_ses-060623.nwb" }, { "message": "Experimenter is missing.", @@ -127,7 +127,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" }, { "message": "Experiment description is missing.", @@ -137,7 +137,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" }, { "message": "Metadata /general/institution is missing.", @@ -147,7 +147,7 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" }, { "message": "Metadata /general/keywords is missing.", @@ -157,6 +157,6 @@ "object_type": "NWBFile", "object_name": "root", "location": "/", - "file_path": "/Users/garrettflynn/NWB_GUIDE/stubs/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" + "file_path": "/Users/garrettflynn/NWB_GUIDE/preview/NWB GUIDE Tutorial Data/sub-mouse1/sub-mouse1_ses-060623.nwb" } ] diff --git a/src/renderer/src/validation/validation.json b/src/renderer/src/validation/validation.json index d3cfb6d9b..e128942d4 100644 --- a/src/renderer/src/validation/validation.json +++ b/src/renderer/src/validation/validation.json @@ -3,7 +3,7 @@ "name": false, "conversion_output_folder": false, - "stub_output_folder": false, + "preview_output_folder": false, "NWBFile": { "identifier": false,