Commit Graph
12006 Commits
Author SHA1 Message Date
Dannon Baker f19e19c8f2 In workflow step insertion from saved workflow, swap to browser standard (jquery-free, whew) confirmation for now, as a bugfix -- we eventually want this to be a proper vue-confirm modal. 2022-08-09 10:49:43 -04:00
Dannon Baker 55bb5e0f6f Fix number of jobs submitted display in tool success. 2022-08-09 08:54:27 -04:00
davelopez 9c63cb6ad7 Avoid possible empty IDs in expanded datasets
In some unknown situations, the expanded items IDs contains just blank spaces and provoke a Bad Request.
2022-08-09 12:05:04 +02:00
Dannon 1238d29de0 Merge pull request #14403 from dannon/backport-fix-dataset-links
[22.05] Fix dataset list operation to switch between histories
2022-08-05 16:48:52 -04:00
guerler f2742831e3 Fix dataset list operation to switch between histories 2022-08-04 14:59:18 -04:00
David López 954012abb4 Merge pull request #14402 from dannon/copy-datasets-always-available
[22.05] Always allow 'copy datasets' action in history, even when empty.
2022-08-04 19:13:01 +02:00
Dannon Baker 0c6c93949f Allow 'Copy Datasets' action in history even when the current history is empty. This action can be used to copy datasets *into* the history as well, so is appropriate. 2022-08-04 09:21:25 -04:00
davelopez d66bbe23de Avoid requesting details for invalid item IDs
In some circumstances the item ID might be undefined or empty and the request will fail with a rather cryptic validation error.

```
Aug 03 10:44:54 sn06.galaxyproject.eu gunicorn[2458098]: pydantic.error_wrappers.ValidationError: 2 validation errors for HistoryContentsIndexParams
Aug 03 10:44:54 sn06.galaxyproject.eu gunicorn[2458098]: dataset_details -> 1
Aug 03 10:44:54 sn06.galaxyproject.eu gunicorn[2458098]:   Invalid characters in encoded ID (type=value_error)
Aug 03 10:44:54 sn06.galaxyproject.eu gunicorn[2458098]: dataset_details
Aug 03 10:44:54 sn06.galaxyproject.eu gunicorn[2458098]:   unhashable type: 'set' (type=type_error)
```
2022-08-04 11:29:42 +02:00
Dannon 38b820736a Merge pull request #14375 from davelopez/history_contents_detailed_only_for_expanded
[22.05] Optimize History watcher to request detailed information only for expanded items
2022-07-28 21:59:12 -04:00
Nicola Soranzo e383e593e0 Merge branch 'release_22.01' into release_22.05 2022-07-27 15:38:19 +01:00
Dannon Baker c0b80f3cf2 Fix incorrect history swapping / see more in #14173 2022-07-26 11:07:33 -04:00
davelopez fc940e11f7 Optimize history watcher for detailed contents
This will requests the detailed view only for those items that are currently expanded in the history panel instead of all of them.
2022-07-26 13:57:14 +02:00
davelopez 9b3bfe02f0 Refactor history watcher to use axios params 2022-07-26 13:53:47 +02:00
davelopez 8ec4fa4bf4 Allow to optionally set axios params in urlData 2022-07-26 13:48:18 +02:00
Marius van den Beek 1b5ba6045b Merge pull request #14325 from davelopez/22.05_allow_dataset_actions_in_new_tab
[22.05] Add HREF links to some history item actions
2022-07-24 11:19:16 -05:00
davelopez f2bdee41f6 Display correct description in Manage Information 2022-07-22 18:11:14 +02:00
davelopez b004c32ccb Display Manage Cloud Auth user preferences always 2022-07-22 18:10:19 +02:00
davelopez e775648d03 Disable only specific inputs in user information 2022-07-22 18:09:23 +02:00
davelopez eb604cabb6 Keep current history details on list update
The incoming list of histories contains only summary information for all of them and the current history has additional details that we need.
Since the current history gets updated regularly, there is no harm in skipping the update from the incoming list.
2022-07-21 12:14:46 +02:00
davelopez 398f77317b Add mixin to reuse extended history properties
The computed properties in the mixin avoid console errors when the history properties haven't been loaded yet.
2022-07-19 18:34:35 +02:00
davelopez c88e1a15b6 Load only summary view for all histories
The extended (and potentially expensive) properties will be requested only for particular histories, like the current history.
2022-07-19 18:34:35 +02:00
davelopez 5695e75e4f Reload histories when the user 'really' changes
The user prop watcher may trigger more times than the actual user changes.
2022-07-19 17:56:24 +02:00
Nicola Soranzo edd05bab4b Update yarn.lock file
Some changes were missing in commit 651221510a .
2022-07-15 12:43:37 +01:00
davelopez 95c2efb83b Fix prefix duplication in absPath function
Also enhance code documentation a bit
2022-07-15 13:22:35 +02:00
davelopez 23f190bd24 Fix history item action URLs with prefix
Declare relative URLs only and then prefix the root when necessary.
2022-07-15 13:18:38 +02:00
davelopez 9feebb88cb Fix tours selectors
The buttons are now considered links so better use the class to select them since it will be less prone to change than the title.
2022-07-14 17:07:18 +02:00
davelopez 1638dc0210 Add HREF to dataset download 2022-07-14 11:58:51 +02:00
Dannon 46e41ba381 Merge pull request #14328 from mvdbeek/use_client_build_epoch_for_cache_busting
[22.05] Attempt to use epoch of client build time for cache busting
2022-07-13 21:48:59 -04:00
Dannon Baker 057b877f1c Use same Date object for internal and external timestamps (was probably close enough, but...) 2022-07-13 15:19:53 -04:00
mvdbeek 651221510a Attempt to use epoch of client build time for cache busting
Store webpack build hash in meta.json file, and use that to setup
the cache busting.
This should prevent clients from unnecessarily reloading client bundles
when the server restarts and/or when individual workers finish booting
at staggered intervals.
This became more important with usegalaxy.org not forking off workers
from a preloaded master (so all workers would have the same starttime).
2022-07-13 22:16:14 +03:00
davelopez 7d93f386d7 Add href links to some history item actions
This will allow to right click and open the action in a new tab or window.
2022-07-13 13:05:12 +02:00
Dannon Baker b308b9fc04 Merge remote-tracking branch 'upstream/release_22.01' into release_22.05 2022-07-12 22:25:46 -04:00
Dannon 48487c5689 Merge pull request #14296 from mvdbeek/deleted_discarded_file_not_found_tweaks
[22.05] Deleted, discarded and deferred file not found tweaks
2022-07-12 22:12:59 -04:00
mvdbeek 3e08160102 Fix local version switching
Fixes https://github.com/galaxyproject/galaxy/issues/14311.
Problem is that we use `:key` in
https://github.com/mvdbeek/galaxy/blob/9e4563d9eb5d8f38a48e1f01466d4fcd1fc66502/client/src/components/Form/FormDisplay.vue#L3,
so that doesn't re-render when the tool id doesn't change (which is the
case for local tools, but not toolshed tools).
2022-07-13 00:04:28 +03:00
guerler 3fd8541a1b Prevent iframe from snatching drag and drop events from uploader 2022-07-12 14:50:21 -04:00
Dannon decc3cb0c2 Merge pull request #14307 from davelopez/22.05_fix_history_switch_defaul_sorting
[22.05] Sort histories in history switcher by most recently updated
2022-07-12 13:06:46 -04:00
davelopez c87a9a373c Make current history appear always first 2022-07-11 20:50:43 +02:00
davelopez afa92aeb66 Make Storage Dashboard link bold 2022-07-11 18:37:15 +02:00
davelopez fa27e77fc4 Sort history switcher by most recently updated 2022-07-11 18:04:20 +02:00
davelopez 9ec07c9815 Increase contrast of Beta label (accessibility) 2022-07-11 15:57:11 +02:00
mvdbeek 66180e2a85 Do URL encoding of workflow slug 2022-07-11 14:07:47 +03:00
David López fd2dbf51ee Merge pull request #14288 from mvdbeek/fix_tag_autocomplete
[22.05] Fix tag autocomplete for strings that need url encoding
2022-07-11 10:50:19 +02:00
mvdbeek e52130b012 Urlencode parameters in tagService.js
Fixes
https://sentry.galaxyproject.org/share/issue/ff9f4891f34e4308b8183ef604970761/:
```
TypeError: tag_autocomplete_data() got an unexpected keyword argument 'd'
  File "uvicorn/protocols/http/h11_impl.py", line 366, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "uvicorn/middleware/proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
  File "fastapi/applications.py", line 269, in __call__
    await super().__call__(scope, receive, send)
  File "starlette/applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "starlette/middleware/errors.py", line 184, in __call__
    raise exc
  File "starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "starlette/middleware/base.py", line 69, in __call__
    await response(scope, receive, send)
  File "starlette/responses.py", line 260, in __call__
    await wrap(partial(self.listen_for_disconnect, receive))
  File "anyio/_backends/_asyncio.py", line 662, in __aexit__
    raise exceptions[0]
  File "starlette/responses.py", line 256, in wrap
    await func()
  File "starlette/responses.py", line 245, in stream_response
    async for chunk in self.body_iterator:
  File "starlette/middleware/base.py", line 58, in body_stream
    raise app_exc
  File "starlette/middleware/base.py", line 36, in coro
    await self.app(scope, request.receive, send_stream.send)
  File "starlette_context/middleware/raw_middleware.py", line 96, in __call__
    await self.app(scope, receive, send_wrapper)
  File "starlette/middleware/base.py", line 69, in __call__
    await response(scope, receive, send)
  File "starlette/responses.py", line 260, in __call__
    await wrap(partial(self.listen_for_disconnect, receive))
  File "anyio/_backends/_asyncio.py", line 662, in __aexit__
    raise exceptions[0]
  File "starlette/responses.py", line 256, in wrap
    await func()
  File "starlette/responses.py", line 245, in stream_response
    async for chunk in self.body_iterator:
  File "starlette/middleware/base.py", line 58, in body_stream
    raise app_exc
  File "starlette/middleware/base.py", line 36, in coro
    await self.app(scope, request.receive, send_stream.send)
  File "starlette/middleware/base.py", line 69, in __call__
    await response(scope, receive, send)
  File "starlette/responses.py", line 260, in __call__
    await wrap(partial(self.listen_for_disconnect, receive))
  File "anyio/_backends/_asyncio.py", line 662, in __aexit__
    raise exceptions[0]
  File "starlette/responses.py", line 256, in wrap
    await func()
  File "starlette/responses.py", line 245, in stream_response
    async for chunk in self.body_iterator:
  File "starlette/middleware/base.py", line 58, in body_stream
    raise app_exc
  File "starlette/middleware/base.py", line 36, in coro
    await self.app(scope, request.receive, send_stream.send)
  File "starlette/exceptions.py", line 93, in __call__
    raise exc
  File "starlette/exceptions.py", line 82, in __call__
    await self.app(scope, receive, sender)
  File "fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "starlette/routing.py", line 670, in __call__
    await route.handle(scope, receive, send)
  File "starlette/routing.py", line 418, in handle
    await self.app(scope, receive, send)
  File "a2wsgi/wsgi.py", line 140, in __call__
    return await responder(scope, receive, send)
  File "a2wsgi/wsgi.py", line 179, in __call__
    raise self.exc_info[0].with_traceback(
  File "galaxy/web/framework/middleware/error.py", line 165, in __call__
    app_iter = self.application(environ, sr_checker)
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/recursive.py", line 85, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/middleware/statsd.py", line 29, in __call__
    req = self.application(environ, start_response)
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/httpexceptions.py", line 640, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/base.py", line 159, in __call__
    return self.handle_request(environ, start_response)
  File "galaxy/web/framework/base.py", line 244, in handle_request
    body = method(trans, **kwargs)
  File "galaxy/web/framework/decorators.py", line 84, in decorator
    return func(self, trans, *args, **kwargs)
```

You can test this by editing a history tag in the history menu, by
writing `tag;d`, there should be no 500 error on the Galaxy logs.
2022-07-11 10:20:45 +03:00
Marius van den Beek 881ed5c7f7 Merge pull request #14269 from guerler/hide_delete_list_view
[22.05] Allow delete option when history items are shown outside of panel
2022-07-10 17:52:04 +03:00
Marius van den Beek 31e1c3d104 Merge pull request #14280 from jmchilton/fix_tour_requirements
[22.05] Small tour fixes.
2022-07-10 17:51:34 +03:00
Marius van den Beek 16508ca1c9 Merge pull request #14287 from mvdbeek/drop_dataset_error_controller_method
[22.05] Drop dataset error controller method
2022-07-10 17:50:50 +03:00
mvdbeek 457a627586 Drop dataset controller errors method
The mako is gone, this is all client-side. Also updates the link
generated in the legacy history. Fixes
https://sentry.galaxyproject.org/share/issue/99796552da0246ae982c33e2559fb1f7/:
```
TopLevelLookupException: Can't locate template for uri 'dataset/errors.mako'
  File "uvicorn/protocols/http/h11_impl.py", line 366, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "uvicorn/middleware/proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
  File "fastapi/applications.py", line 269, in __call__
    await super().__call__(scope, receive, send)
  File "starlette/applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "starlette/middleware/errors.py", line 184, in __call__
    raise exc
  File "starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "starlette/middleware/base.py", line 69, in __call__
    await response(scope, receive, send)
  File "starlette/responses.py", line 260, in __call__
    await wrap(partial(self.listen_for_disconnect, receive))
  File "anyio/_backends/_asyncio.py", line 662, in __aexit__
    raise exceptions[0]
  File "starlette/responses.py", line 256, in wrap
    await func()
  File "starlette/responses.py", line 245, in stream_response
    async for chunk in self.body_iterator:
  File "starlette/middleware/base.py", line 58, in body_stream
    raise app_exc
  File "starlette/middleware/base.py", line 36, in coro
    await self.app(scope, request.receive, send_stream.send)
  File "starlette_context/middleware/raw_middleware.py", line 96, in __call__
    await self.app(scope, receive, send_wrapper)
  File "starlette/middleware/base.py", line 69, in __call__
    await response(scope, receive, send)
  File "starlette/responses.py", line 260, in __call__
    await wrap(partial(self.listen_for_disconnect, receive))
  File "anyio/_backends/_asyncio.py", line 662, in __aexit__
    raise exceptions[0]
  File "starlette/responses.py", line 256, in wrap
    await func()
  File "starlette/responses.py", line 245, in stream_response
    async for chunk in self.body_iterator:
  File "starlette/middleware/base.py", line 58, in body_stream
    raise app_exc
  File "starlette/middleware/base.py", line 36, in coro
    await self.app(scope, request.receive, send_stream.send)
  File "starlette/middleware/base.py", line 69, in __call__
    await response(scope, receive, send)
  File "starlette/responses.py", line 260, in __call__
    await wrap(partial(self.listen_for_disconnect, receive))
  File "anyio/_backends/_asyncio.py", line 662, in __aexit__
    raise exceptions[0]
  File "starlette/responses.py", line 256, in wrap
    await func()
  File "starlette/responses.py", line 245, in stream_response
    async for chunk in self.body_iterator:
  File "starlette/middleware/base.py", line 58, in body_stream
    raise app_exc
  File "starlette/middleware/base.py", line 36, in coro
    await self.app(scope, request.receive, send_stream.send)
  File "starlette/exceptions.py", line 93, in __call__
    raise exc
  File "starlette/exceptions.py", line 82, in __call__
    await self.app(scope, receive, sender)
  File "fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "starlette/routing.py", line 670, in __call__
    await route.handle(scope, receive, send)
  File "starlette/routing.py", line 418, in handle
    await self.app(scope, receive, send)
  File "a2wsgi/wsgi.py", line 140, in __call__
    return await responder(scope, receive, send)
  File "a2wsgi/wsgi.py", line 179, in __call__
    raise self.exc_info[0].with_traceback(
  File "galaxy/web/framework/middleware/error.py", line 165, in __call__
    app_iter = self.application(environ, sr_checker)
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/recursive.py", line 85, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/middleware/statsd.py", line 29, in __call__
    req = self.application(environ, start_response)
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/httpexceptions.py", line 640, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/base.py", line 159, in __call__
    return self.handle_request(environ, start_response)
  File "galaxy/web/framework/base.py", line 244, in handle_request
    body = method(trans, **kwargs)
  File "galaxy/webapps/galaxy/controllers/dataset.py", line 99, in errors
    return trans.fill_template("dataset/errors.mako", hda=hda)
  File "galaxy/webapps/base/webapp.py", line 1095, in fill_template
    return self.fill_template_mako(filename, **kwargs)
  File "galaxy/webapps/base/webapp.py", line 1099, in fill_template_mako
    template = template_lookup.get_template(filename)
  File "mako/lookup.py", line 254, in get_template
    raise exceptions.TopLevelLookupException(
```
2022-07-09 17:46:19 +03:00
John Chilton 2b70db9cf7 Fixes to have deferred data tour work a bit better. 2022-07-08 06:59:37 -04:00
guerler 6b4c7c8aa3 Allow deletion, undelete and unhide for datasets displayed as generic items? 2022-07-07 00:42:37 +03:00
Marius van den Beek 5bf875e12a Merge pull request #14270 from davelopez/22.05_replace_preferences_quota_faq
[22.05] Replace old storage FAQ in preferences
2022-07-06 16:41:30 +02:00