Skip to content

Commit

Permalink
Merge branch 'release_24.1' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
mvdbeek committed Jul 3, 2024
2 parents 45bc009 + ed81681 commit 68b37d2
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 31 deletions.
49 changes: 22 additions & 27 deletions client/src/components/Workflow/Editor/Actions/stepActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,22 @@ export class LazyMutateStepAction<K extends keyof Step> extends LazyUndoRedoActi
}
}

function onLabelSet(
classInstance: LazySetLabelAction | LazySetOutputLabelAction,
from: string | null | undefined,
to: string | null | undefined
) {
const markdown = classInstance.stateStore.report.markdown ?? "";
const newMarkdown = replaceLabel(markdown, classInstance.labelType, from, to);

if (markdown !== newMarkdown) {
classInstance.stateStore.report.markdown = newMarkdown;
classInstance.success(
`${classInstance.labelTypeTitle} label updated from "${from}" to "${to}" in workflow report.`
);
}
}

export class LazySetLabelAction extends LazyMutateStepAction<"label"> {
labelType: "input" | "step";
labelTypeTitle: "Input" | "Step";
Expand All @@ -80,24 +96,13 @@ export class LazySetLabelAction extends LazyMutateStepAction<"label"> {
this.success = useToast().success;
}

private toast(from: string, to: string) {
this.success(`${this.labelTypeTitle} label updated from "${from}" to "${to}" in workflow report.`);
}

run() {
const markdown = this.stateStore.report.markdown ?? "";
const newMarkdown = replaceLabel(markdown, this.labelType, this.fromValue as string, this.toValue as string);
this.stateStore.report.markdown = newMarkdown;
this.toast(this.fromValue ?? "", this.toValue ?? "");
onLabelSet(this, this.fromValue, this.toValue);
}

undo() {
super.undo();

const markdown = this.stateStore.report.markdown ?? "";
const newMarkdown = replaceLabel(markdown, this.labelType, this.toValue as string, this.fromValue as string);
this.stateStore.report.markdown = newMarkdown;
this.toast(this.toValue ?? "", this.fromValue ?? "");
onLabelSet(this, this.toValue, this.fromValue);
}

redo() {
Expand All @@ -111,6 +116,8 @@ export class LazySetOutputLabelAction extends LazyMutateStepAction<"workflow_out
fromLabel;
toLabel;
stateStore;
labelType = "output" as const;
labelTypeTitle = "Output" as const;

constructor(
stepStore: WorkflowStepStore,
Expand All @@ -132,25 +139,13 @@ export class LazySetOutputLabelAction extends LazyMutateStepAction<"workflow_out
this.success = useToast().success;
}

private toast(from: string, to: string) {
this.success(`Output label updated from "${from}" to "${to}" in workflow report.`);
}

run() {
const markdown = this.stateStore.report.markdown ?? "";
const newMarkdown = replaceLabel(markdown, "output", this.fromLabel, this.toLabel);
this.stateStore.report.markdown = newMarkdown;
this.toast(this.fromLabel ?? "", this.toLabel ?? "");
onLabelSet(this, this.fromLabel, this.toLabel);
}

undo() {
super.undo();

const markdown = this.stateStore.report.markdown ?? "";
const newMarkdown = replaceLabel(markdown, "output", this.toLabel, this.fromLabel);
this.stateStore.report.markdown = newMarkdown;

this.toast(this.toLabel ?? "", this.fromLabel ?? "");
onLabelSet(this, this.toLabel, this.fromLabel);
}

redo() {
Expand Down
1 change: 1 addition & 0 deletions lib/galaxy/config/schemas/config_schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2903,6 +2903,7 @@ mapping:
type: str
default: default
required: false
per_host: true
desc: |
Default tool panel view for the current Galaxy configuration. This should refer to an id of
a panel view defined using the panel_views or panel_views_dir configuration options or an
Expand Down
14 changes: 11 additions & 3 deletions lib/galaxy/tool_util/toolbox/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def __init__(
Create a toolbox from the config files named by `config_filenames`, using
`tool_root_dir` as the base directory for finding individual tool config files.
"""
self._default_panel_view = default_panel_view
self.__default_panel_view = default_panel_view
# The _dynamic_tool_confs list contains dictionaries storing
# information about the tools defined in each shed-related
# shed_tool_conf.xml file.
Expand Down Expand Up @@ -238,6 +238,14 @@ def to_model(self) -> ToolPanelViewModel:
if save_integrated_tool_panel:
self._save_integrated_tool_panel()

def _default_panel_view(self, trans):
config = self.app.config
if hasattr(config, "config_value_for_host"):
config_value = config.config_value_for_host("default_panel_view", trans.host)
else:
config_value = getattr(config, "default_panel_view", None)
return config_value or self.__default_panel_view

def create_tool(self, config_file, tool_shed_repository=None, guid=None, **kwds):
raise NotImplementedError()

Expand Down Expand Up @@ -1275,7 +1283,7 @@ def find_section_id(self, tool_panel_section_id):
def tool_panel_contents(self, trans, view=None, **kwds):
"""Filter tool_panel contents for displaying for user."""
if view is None:
view = self._default_panel_view
view = self._default_panel_view(trans)
if view not in self._tool_panel_view_rendered:
raise RequestParameterInvalidException(f"No panel view {view} found.")
filter_method = self._build_filter_method(trans)
Expand Down Expand Up @@ -1338,7 +1346,7 @@ def to_panel_view(self, trans, view="default_panel_view", **kwds):
{section_id: { section but with .tools=List[all tool ids] }, ...}}
"""
if view == "default_panel_view":
view = self._default_panel_view
view = self._default_panel_view(trans)
view_contents: Dict[str, Dict] = {}
panel_elts = self.tool_panel_contents(trans, view=view, **kwds)
for elt in panel_elts:
Expand Down
2 changes: 1 addition & 1 deletion lib/galaxy/webapps/galaxy/api/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ def panel_views(self, trans: GalaxyWebTransaction, **kwds):
"""

rval = {}
rval["default_panel_view"] = self.app.toolbox._default_panel_view
rval["default_panel_view"] = self.app.toolbox._default_panel_view(trans)
rval["views"] = self.app.toolbox.panel_view_dicts()
return rval

Expand Down

0 comments on commit 68b37d2

Please sign in to comment.