mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 13:50:20 +08:00
Merge branch 'release_24.0' into dev
This commit is contained in:
@@ -14,10 +14,18 @@ export class DatatypesMapperModel {
|
||||
this.datatypesMapping = typesAndMapping.datatypes_mapping;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a given child datatype is a subtype of a parent datatype.
|
||||
* @param child - The child datatype extension as registered in the datatypes registry.
|
||||
* @param parent - The parent datatype, which can be an extension or explicit class name
|
||||
* Can also be used with extensionless abstract datatypes (e.g. "galaxy.datatypes.images.Image")
|
||||
* @returns A boolean indicating whether the child is a subtype of the parent.
|
||||
*/
|
||||
isSubType(child: string, parent: string): boolean {
|
||||
const mapping = this.datatypesMapping;
|
||||
const childClassName = mapping.ext_to_class_name[child];
|
||||
const parentClassName = mapping.ext_to_class_name[parent];
|
||||
const parentClassName = mapping.ext_to_class_name[parent] || parent;
|
||||
|
||||
if (!childClassName || !parentClassName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -65,6 +65,9 @@
|
||||
type="iframe"
|
||||
aspect="16by9"
|
||||
:src="displayUrl" />
|
||||
<HistoryDatasetAsImage
|
||||
v-else-if="isSubTypeOfAny(datasetType, ['galaxy.datatypes.images.Image'], datatypesModel)"
|
||||
:args="args" />
|
||||
<div v-else-if="itemContent.item_data">
|
||||
<div v-if="isSubTypeOfAny(datasetType, ['tabular'], datatypesModel)">
|
||||
<UrlDataProvider
|
||||
@@ -81,8 +84,8 @@
|
||||
</UrlDataProvider>
|
||||
</div>
|
||||
<pre v-else>
|
||||
<code class="word-wrap-normal">{{ itemContent.item_data }}</code>
|
||||
</pre>
|
||||
<code class="word-wrap-normal">{{ itemContent.item_data }}</code>
|
||||
</pre>
|
||||
</div>
|
||||
<div v-else>No content found.</div>
|
||||
<b-link v-if="itemContent.truncated" :href="itemContent.item_url"> Show More... </b-link>
|
||||
@@ -99,10 +102,13 @@ import LoadingSpan from "components/LoadingSpan";
|
||||
import { UrlDataProvider } from "components/providers/UrlDataProvider";
|
||||
import { getAppRoot } from "onload/loadConfig";
|
||||
|
||||
import HistoryDatasetAsImage from "./HistoryDatasetAsImage.vue";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
LoadingSpan,
|
||||
UrlDataProvider,
|
||||
HistoryDatasetAsImage,
|
||||
},
|
||||
props: {
|
||||
args: {
|
||||
|
||||
@@ -37,7 +37,7 @@ function getNotificationExpirationTitle(notification: UserNotification) {
|
||||
<div v-if="notification" class="notification-actions">
|
||||
<div class="notification-actions-body">
|
||||
<BBadge v-b-tooltip pill>
|
||||
<UtcDate :date="notification.create_time" mode="elapsed" />
|
||||
<UtcDate :date="notification.publication_time ?? notification.create_time" mode="elapsed" />
|
||||
</BBadge>
|
||||
|
||||
<BButtonGroup class="notification-actions-buttons">
|
||||
|
||||
@@ -32,7 +32,7 @@ export class Services {
|
||||
async createWorkflow(workflow) {
|
||||
const url = withPrefix("/api/workflows");
|
||||
try {
|
||||
const { data } = await axios.post(url, { workflow: toSimple(workflow.id, workflow) });
|
||||
const { data } = await axios.post(url, { workflow: toSimple(workflow.id, workflow), from_tool_form: true });
|
||||
return data;
|
||||
} catch (e) {
|
||||
rethrowSimple(e);
|
||||
|
||||
@@ -153,7 +153,8 @@ async function sendNewNotification() {
|
||||
:optional="false"
|
||||
help="The message can be written in markdown."
|
||||
placeholder="Enter message"
|
||||
required />
|
||||
required
|
||||
area />
|
||||
|
||||
<FormElement
|
||||
id="notification-variant"
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
To stay up to date with Galaxy's progress, watch our `screencasts <https://www.youtube.com/@GalaxyProject>`__,
|
||||
visit our community `Hub <https://galaxyproject.org/>`__, and follow
|
||||
`@galaxyproject@mstdn.science <https://mstdn.science/@galaxyproject>`__ on Mastodon or
|
||||
`@galaxyproject <https://twitter.com/galaxyproject>`__ on Twitter.
|
||||
To stay up to date with Galaxy's progress, watch our `screencasts <https://www.youtube.com/@GalaxyProject>`__;
|
||||
visit our community `Hub <https://galaxyproject.org/>`__; and follow us on `Bluesky <https://bsky.app/profile/galaxyproject.bsky.social>`__, `Mastodon <https://mstdn.science/@galaxyproject>`__, and `LinkedIn <https://linkedin.com/company/galaxy-project>`__.
|
||||
|
||||
You can always chat with us on `Matrix <https://matrix.to/#/#galaxyproject_Lobby:gitter.im>`__.
|
||||
|
||||
|
||||
@@ -1558,7 +1558,7 @@ class NavigatesGalaxy(HasDriver):
|
||||
workflow_run.expand_form_link.wait_for_and_click()
|
||||
workflow_run.expanded_form.wait_for_visible()
|
||||
|
||||
def workflow_create_new(self, annotation=None, clear_placeholder=False):
|
||||
def workflow_create_new(self, annotation=None, clear_placeholder=False, save_workflow=True):
|
||||
self.workflow_index_open()
|
||||
self.sleep_for(self.wait_types.UX_RENDER)
|
||||
self.click_button_new_workflow()
|
||||
@@ -1570,11 +1570,12 @@ class NavigatesGalaxy(HasDriver):
|
||||
name_component.wait_for_and_send_keys(name)
|
||||
annotation = annotation or self._get_random_name()
|
||||
self.components.workflow_editor.edit_annotation.wait_for_and_send_keys(annotation)
|
||||
save_button = self.components.workflow_editor.save_button
|
||||
save_button.wait_for_visible()
|
||||
assert not save_button.has_class("disabled")
|
||||
save_button.wait_for_and_click()
|
||||
self.sleep_for(self.wait_types.UX_RENDER)
|
||||
if save_workflow:
|
||||
save_button = self.components.workflow_editor.save_button
|
||||
save_button.wait_for_visible()
|
||||
assert not save_button.has_class("disabled")
|
||||
save_button.wait_for_and_click()
|
||||
self.sleep_for(self.wait_types.UX_RENDER)
|
||||
return name
|
||||
|
||||
def invocation_index_table_elements(self):
|
||||
|
||||
@@ -224,7 +224,7 @@ steps:
|
||||
def test_integer_input(self):
|
||||
editor = self.components.workflow_editor
|
||||
|
||||
name = self.workflow_create_new()
|
||||
name = self.workflow_create_new(save_workflow=False)
|
||||
self.workflow_editor_add_input(item_name="parameter_input")
|
||||
self.screenshot("workflow_editor_parameter_input_new")
|
||||
editor.label_input.wait_for_and_send_keys("input1")
|
||||
|
||||
Reference in New Issue
Block a user