151 Commits
Author SHA1 Message Date
Dannon Baker 9044e614f0 Upgrade concurrently; this fixes a 'null' return from webpack run vi aconcurrently, which can fail the build in some situations. 2018-10-07 20:30:59 -04:00
Nicola Soranzo 4ce8086c20 Merge branch 'release_18.05' into release_18.09 2018-09-19 16:58:46 +01:00
Nicola Soranzo 18d99deb95 Decode tool id and version in the client, not in the API
using `decodeUriComponent` from `decode-uri-component` JS package.

Revert https://github.com/galaxyproject/galaxy/pull/6707

Remove unused `_get_tool()` method in
`lib/galaxy/webapps/galaxy/api/workflows.py` .

Rebuild client with:
```
make client-production-maps
```
2018-09-19 10:17:26 +01:00
James Taylor 0ea09e4dd6 Merge pull request #6400 from dannon/vue-loader-v15
Client library upgrades.
2018-06-29 15:25:58 -04:00
James Taylor fb4895d91e Merge pull request #6381 from dannon/hash_on_watch
Create client build hash on toplevel concurrent watch in addition to individual builds.
2018-06-29 15:25:05 -04:00
Dannon Baker 8964523a6e Upgrade more misc compatible client libraries. 2018-06-26 14:32:44 -07:00
Dannon Baker 7e3095aa9f Upgrade Prettier, reformat (looks like it fixed some formatting issues) 2018-06-25 14:54:29 -07:00
Dannon Baker 8b84c77929 Upgrade gulp and related components. 2018-06-25 14:52:26 -07:00
Dannon Baker 3420e88542 Upgrade babel and related components. 2018-06-25 14:46:46 -07:00
Dannon Baker 7aa83f33aa Upgrade underscore // supports existing API, just performance improvements and a few new methods 2018-06-25 14:42:40 -07:00
Dannon Baker 2083ddeae2 Upgrade vue-loader to v15 (not backwards compatible, needed minor changes -- this silences the scary warnings on client build) 2018-06-25 12:38:59 -07:00
James Taylor 6cf034ef6f Some style cleanup.
- Split the Galaxy components of the styleguide into multiple documents
  to make things more manageable and get a better table of contents. Add
  some additional examples for masthead and panels.

- Use flexbox for layout of panels and masthead. This eliminates a lot
  of absolute positioning from the panels and allows the masthead and
  panel headers to layour correctly regardles of height.

- Unify the set of gray levels we are using (to those from Bootstrap 4)

- Add some additional SCSS variables and (small amount of) general
  cleanup to styles.
2018-06-22 13:43:28 -04:00
Dannon Baker 455b2deb6e Swap hash save outside the concurrent builds, just do it before kicking off after staging. 2018-06-22 10:54:22 -04:00
Dannon Baker c07ac639fe Create client build hash on toplevel concurrent watch, in addition to individual builds. 2018-06-22 10:36:29 -04:00
Dannon Baker 6a2c678dce Bump bootstrap from 4.1.0 to 4.1.1 -- has a few bugfixes and hides the chatty and irrelevant (for us) deprecation warning on client build. 2018-05-03 10:05:52 -04:00
John Chilton 7fd12ec7b8 Rev handsontable client dep - fixes global style contamination of that component. 2018-04-23 15:49:15 -04:00
John Chilton 1df00bfb51 Add bootstrap vue as a dependency. 2018-04-20 15:03:53 -04:00
Dannon Baker 4ea51e9fc4 Merge remote-tracking branch 'upstream/dev' into bs4 2018-04-16 09:01:14 -04:00
John Chilton 1b90d89814 Mocha based client unit testing of rule tests. 2018-04-13 12:21:29 -04:00
Dannon Baker a3a472cdba Bump to bootstrap 4.1 (second try -- sorry for the rebase) 2018-04-10 13:02:28 -04:00
John Chilton b3f589cc93 For rule builder, use Python-like regular expressions in-browser.
Leverages the [pyre-to-regexp](https://github.com/jmchilton/pyre-to-regexp) that I recently published for this purpose.
2018-04-07 09:17:37 -04:00
Dannon Baker 679edd1661 Go off-yarn to github's master branch for bs4-compatible bootstrap-tour. 2018-04-03 12:24:58 -04:00
Dannon Baker 9094a86f63 Upgrade bootstrap-tour and use from npm 2018-04-03 12:00:22 -04:00
Dannon Baker bbabf30ba8 Upgrade vue to 2.5.16, lock alongside vue-template-compiler 2018-04-02 11:13:57 -04:00
Dannon Baker 035a063e99 Merge remote-tracking branch 'upstream/dev' into bs4 2018-04-02 11:07:00 -04:00
Dannon Baker 45559e29fa Upgrade prettier (now handles .scss well), apply to style sources. 2018-04-02 11:02:05 -04:00
Dannon Baker d51d25fca2 Update and re-lock vue-loader/vue-template-compiler to fix incompatible versions in build. 2018-04-02 08:06:48 -04:00
James Taylor 241c273e01 Style: Adding vue-stylguidest.
In `client`, run `yarn styleguide` to serve the styleguide on localhost.
Currently this only include bootstrap buttons and no actual vue
components, but it is useful for editing the styles. I will flesh this
out with more of the bootstrap components we actually use and some
Galaxy styles.
2018-03-31 11:14:18 -04:00
Dannon Baker 1c04bbe9f6 Add babel plugin for vue template preprocessing. This allows precompilation without a vue runtime for nested local components in vue SFCs, and other situations. 2018-03-29 11:07:06 -04:00
John Chilton 083bdcbdd8 Rule-based Collection Builder
Vue-based component for defining collections by applying rules to a list of files or more general spreadsheet style information (e.g. sample sheets or tabular data from data sources containing URL or FTP file paths for files along with metadata). The widget is fairly complex but very broadly is broken into two panes - one to preview how rules are applied to build up tabular data defining collections (each row corresponding to a file with columns for metadata and such) and one that displays defined rules and allows for editing of these rules and creation of new ones.

The goal behind defining rules this way instead of allowing the user to interact with the spreadsheet display directly is to enable scaling up collection creation. If a user wishes to upload hundreds of datasets - interacting with a widget directly for each input doesn't scale well and would be error prone. If a user wishes to upload hundreds of thousands of datasets - even loading this information in the GUI may not scale (though I've been impressed with the performance so far of this approach) and so we can potentially just display a preview of some of the rows and process the final set of rules on the backend.

Since we can handle an arbitrary number of columns this way, we can define multiple list identifiers per file and so we can easily construct nested lists. Hence this allows creation of not just potentially larger collections but arbitrarily complex lists as well. Paired identifiers via indicator columns are also implemented.

In order to operate over lists of datasets directly - the multi-select history widget now has a new option "Build Collection from Rules" along side the other collection builders. This mode uses the well established dataset collection API to build collections from HDAs.

In order to operate on lists of FTP files or URLs - the upload widget has a new tab "Rule-based" tab that allows users to paste in tabular data or select a history dataset and then send this tabular data to the new builder widget. This will be extended to include FTP directories for instance over time. This mode uses the new data fetch API to build collections and handle uploads of arbitrary collections of files.

The preview of the tabular data generated via rules is done via [Handsontable](https://handsontable.com/) - a JavaScript spreadsheet widget with a VueJS [wrapper component](https://github.com/handsontable/vue-handsontable-official). This turns out to be a fairly nice application for reactive components - as rules are added or modified the spreadsheet just naturally updates. In my hands the widget scales very nicely - I've uploaded files with tens of thousands of rows and rules modifying the data and changing the spreadsheet do not seem to cause siignificant delays in the web browser.
2018-03-29 11:07:06 -04:00
Dannon Baker efb830241d Fix popper.js/popper discrepancy. 2018-03-28 13:12:27 -04:00
Dannon Baker d4c318bfa0 Explicitly add popper (necessary due to peer dependency) 2018-03-20 14:16:39 -04:00
Dannon Baker 8330bbfe99 Drop old charts building from makefile/package scripts -- this is no longer necessary and charts are individually packed. 2018-03-20 11:50:01 -04:00
Dannon Baker 67842142ea Refactor file staging a bit, combine libs/font staging into a single task that always runs.
TODO: Drop these artifacts from repo
2018-03-15 10:51:00 -04:00
Dannon Baker 718ab56c05 Add fontawesome composite package; we can use resources straight from here. 2018-03-14 13:47:00 -04:00
Dannon Baker 6cf50ecec1 Fix style building package scripts; add style watching gulp task. 2018-03-14 13:46:59 -04:00
Dannon Baker f9e4e0bc18 DevDependency overhaul to trim to what we actually need of Grunt currently. 2018-03-14 13:46:59 -04:00
Dannon Baker fcaf1cc691 Add fontawesome dep 2018-03-14 13:44:51 -04:00
Dannon Baker 17e7066539 Add gulp-sass 2018-03-14 13:44:51 -04:00
Dannon Baker 2086960bdf Add bootstrap4 and peer dependency popper. 2018-03-14 13:44:51 -04:00
Nicola Soranzo eba3fb4b35 Fix common_startup.sh for galaxy tarballs
Do not assume git is installed and the `.git` directory is present.

Fix https://github.com/galaxyproject/galaxy/issues/5466
2018-02-08 11:52:24 -05:00
Dannon Baker e88706c282 Prettier now supports Vue SFCs 2018-01-10 11:30:41 -05:00
Dannon Baker 823d07d41a Prettier upgrade to 1.10 2018-01-10 11:30:16 -05:00
Martin Cech bb29444edf Merge pull request #5128 from dannon/check_for_client_build
Client build check
2018-01-03 17:11:13 -05:00
Dannon Baker 4dbe7c420e Upgrade prettier 1.7->1.9 2017-12-11 11:16:14 -05:00
Dannon Baker 8cd62168d8 Upgrade minor devDependencies. 2017-12-11 11:14:39 -05:00
Dannon Baker 0a92f5b80b Update vue-template-compiler 2017-12-11 11:09:35 -05:00
Dannon Baker 2ca7b90262 Upgrade webpack to 3.10 2017-12-11 11:08:59 -05:00
Dannon Baker 662f35df49 Upgrade vue. 2017-12-11 11:08:06 -05:00
Dannon Baker 45a25a1b8b Rudimentary build checking for -dev only. 2017-12-04 18:03:27 -05:00