[ARVADOS] updated: 17c73c85f302fca9a1b426f9105dd999ad465f28
git at public.curoverse.com
git at public.curoverse.com
Fri May 9 14:45:47 EDT 2014
Summary of changes:
.gitignore | 2 +
apps/workbench/.gitignore | 3 +
apps/workbench/Gemfile | 5 +
apps/workbench/Gemfile.lock | 90 ++--
.../app/assets/javascripts/application.js | 1 -
apps/workbench/app/assets/javascripts/editable.js | 55 +-
apps/workbench/app/assets/javascripts/folders.js | 12 +
..._authorizations.js.coffee => folders.js.coffee} | 0
.../app/assets/javascripts/keep_disks.js.coffee | 29 +
apps/workbench/app/assets/javascripts/selection.js | 18 +-
apps/workbench/app/assets/javascripts/sizing.js | 2 +-
.../app/assets/stylesheets/application.css.scss | 72 +--
.../app/assets/stylesheets/cards.css.scss | 85 +++
.../{jobs.css.scss => folders.css.scss} | 2 +-
.../app/assets/stylesheets/keep_disks.css.scss | 8 +
.../app/assets/stylesheets/sb-admin.css.scss | 164 ++++++
.../workbench/app/assets/stylesheets/selection.css | 22 +-
.../app/controllers/actions_controller.rb | 42 +-
.../api_client_authorizations_controller.rb | 2 +-
.../app/controllers/application_controller.rb | 132 +++--
.../app/controllers/collections_controller.rb | 77 ++-
.../app/controllers/folders_controller.rb | 99 ++++
.../workbench/app/controllers/groups_controller.rb | 7 +-
.../app/controllers/keep_disks_controller.rb | 47 ++
apps/workbench/app/helpers/application_helper.rb | 21 +-
apps/workbench/app/helpers/folders_helper.rb | 2 +
.../app/helpers/pipeline_instances_helper.rb | 1 -
apps/workbench/app/models/arvados_api_client.rb | 26 +-
apps/workbench/app/models/arvados_base.rb | 48 +-
apps/workbench/app/models/arvados_resource_list.rb | 42 +-
apps/workbench/app/models/collection.rb | 5 +
apps/workbench/app/models/group.rb | 20 +-
apps/workbench/app/models/log.rb | 5 +
apps/workbench/app/models/pipeline_instance.rb | 2 +-
apps/workbench/app/models/user.rb | 5 -
.../app/views/application/_content.html.erb | 2 +-
.../application/_delete_object_button.html.erb | 2 +-
.../app/views/application/_show_metadata.html.erb | 4 +-
.../views/application/_show_object_button.html.erb | 3 +
.../app/views/application/_show_recent.html.erb | 21 +-
.../workbench/app/views/application/index.html.erb | 6 +-
.../app/views/folders/_show_my_folders.html.erb | 2 +
.../views/folders/_show_shared_with_me.html.erb | 2 +
.../workbench/app/views/folders/remove_item.js.erb | 5 +
apps/workbench/app/views/folders/show.html.erb | 193 +++++++
.../app/views/keep_disks/_content_layout.html.erb | 21 +
.../app/views/layouts/application.html.erb | 321 +++++------
apps/workbench/app/views/logs/show.html.erb | 1 -
apps/workbench/app/views/users/_tables.html.erb | 2 +-
apps/workbench/config/routes.rb | 3 +
.../test/functional/collections_controller_test.rb | 130 +++++
.../folders_controller_test.rb} | 2 +-
.../workbench/test/integration/collections_test.rb | 9 +
apps/workbench/test/integration/folders_test.rb | 48 ++
apps/workbench/test/integration/smoke_test.rb | 2 +-
apps/workbench/test/integration/users_test.rb | 51 +-
.../test/integration/virtual_machines_test.rb | 4 +-
apps/workbench/test/integration_helper.rb | 26 +
apps/workbench/test/test_helper.rb | 41 +-
.../test/unit/arvados_resource_list_test.rb | 55 ++
apps/workbench/test/unit/group_test.rb | 29 +-
.../test/unit/helpers/folders_helper_test.rb | 4 +
apps/workbench/test/unit/user_test.rb | 12 -
doc/_config.yml | 5 +-
doc/api/index.html.textile.liquid | 2 -
doc/api/methods.html.textile.liquid | 39 +-
doc/api/methods/groups.html.textile.liquid | 26 +-
doc/api/methods/logs.html.textile.liquid | 22 +-
doc/api/methods/users.html.textile.liquid | 12 -
doc/api/schema/Collection.html.textile.liquid | 2 +-
doc/api/schema/Job.html.textile.liquid | 1 +
doc/install/client.html.textile.liquid | 43 +-
doc/install/index.html.md.liquid | 18 -
doc/install/index.html.textile.liquid | 18 +
doc/install/install-api-server.html.textile.liquid | 5 +-
.../install-crunch-dispatch.html.textile.liquid | 44 +-
doc/install/install-sso.html.textile.liquid | 3 +-
.../install-workbench-app.html.textile.liquid | 30 +-
doc/sdk/index.html.textile.liquid | 3 +-
doc/sdk/java/index.html.textile.liquid | 140 +++++
doc/sdk/perl/index.html.textile.liquid | 2 +-
doc/sdk/python/sdk-python.html.textile.liquid | 15 +-
doc/sdk/ruby/index.html.textile.liquid | 2 +-
docker/build_tools/Makefile | 10 +
docker/jobs/Dockerfile | 20 +
sdk/cli/bin/arv-run-pipeline-instance | 44 +-
sdk/cli/bin/crunch-job | 70 ++-
sdk/cli/test/test_arv-run-pipeline-instance.rb | 33 ++
sdk/java/.classpath | 21 +
sdk/java/.project | 14 +
sdk/java/.settings/org.eclipse.jdt.core.prefs | 5 +
sdk/java/ArvadosSDKJavaExample.java | 80 +++
sdk/java/ArvadosSDKJavaExampleWithPrompt.java | 123 +++++
sdk/java/README | 4 +
sdk/java/pom.xml | 106 ++++
.../main/java/org/arvados/sdk/java/Arvados.java | 403 ++++++++++++++
.../java/org/arvados/sdk/java/MethodDetails.java | 22 +
sdk/java/src/main/resources/log4j.properties | 11 +
.../java/org/arvados/sdk/java/ArvadosTest.java | 420 +++++++++++++++
sdk/java/src/test/resources/first_pipeline.json | 16 +
sdk/python/.gitignore | 1 -
sdk/python/MANIFEST.in | 1 +
sdk/python/arvados/api.py | 7 +-
sdk/python/arvados/events.py | 33 ++
sdk/python/arvados/fuse.py | 317 -----------
sdk/python/arvados/fuse/__init__.py | 585 +++++++++++++++++++++
sdk/python/bin/arv-mount | 51 +-
sdk/python/build.sh | 16 -
sdk/python/requirements.txt | 3 +
sdk/python/run_test_server.py | 212 ++++++++
sdk/python/{setup.py.src => setup.py} | 9 +-
sdk/python/setup.py.src | 8 +-
sdk/python/setup_fuse.py | 21 +
sdk/python/setup_header.py | 19 +
sdk/python/test_keep_client.py | 23 +-
sdk/python/test_mount.py | 247 +++++++--
sdk/python/test_pipeline_template.py | 18 +-
sdk/python/test_websockets.py | 32 ++
sdk/ruby/.gitignore | 1 +
sdk/ruby/Gemfile.lock | 58 --
services/api/.gitignore | 2 +
services/api/Gemfile | 9 +-
services/api/Gemfile.lock | 14 +-
services/api/Rakefile | 6 +
.../api/app/controllers/application_controller.rb | 75 +--
.../controllers/arvados/v1/groups_controller.rb | 68 +++
.../controllers/arvados/v1/schema_controller.rb | 15 +-
.../app/controllers/user_sessions_controller.rb | 3 +-
services/api/app/models/arvados_model.rb | 124 +++--
services/api/app/models/group.rb | 1 +
services/api/app/models/link.rb | 11 +
services/api/app/models/node.rb | 2 +-
services/api/app/models/pipeline_instance.rb | 89 ++--
services/api/app/models/user.rb | 4 +
services/api/config/application.default.yml | 10 +
services/api/config/application.yml.example | 7 -
services/api/config/initializers/eventbus.rb | 6 +-
services/api/config/routes.rb | 3 +-
...0140501165548_add_unique_name_index_to_links.rb | 13 +
services/api/db/schema.rb | 6 +-
services/api/lib/current_api_client.rb | 4 +-
services/api/lib/load_param.rb | 2 +-
services/api/lib/record_filters.rb | 13 +-
services/api/script/import_commits.rb | 9 -
services/api/test/fixtures/api_clients.yml | 2 +
services/api/test/fixtures/groups.yml | 22 +-
services/api/test/fixtures/links.yml | 68 ++-
services/api/test/fixtures/pipeline_instances.yml | 3 +
services/api/test/fixtures/repositories.yml | 4 +-
services/api/test/fixtures/specimens.yml | 30 +-
.../arvados/v1/groups_controller_test.rb | 129 ++++-
.../functional/arvados/v1/jobs_controller_test.rb | 34 ++
.../functional/arvados/v1/links_controller_test.rb | 13 +
.../functional/arvados/v1/users_controller_test.rb | 76 ---
.../api/test/integration/user_sessions_test.rb | 28 +
services/api/test/test_helper.rb | 21 +
services/api/test/unit/group_test.rb | 61 ++-
services/api/test/unit/link_test.rb | 47 +-
services/api/test/unit/pipeline_instance_test.rb | 26 +-
services/keep/src/keep/perms.go | 104 ++++
services/keep/src/keep/perms_test.go | 104 ++++
161 files changed, 5561 insertions(+), 1357 deletions(-)
create mode 100644 apps/workbench/app/assets/javascripts/folders.js
copy apps/workbench/app/assets/javascripts/{api_client_authorizations.js.coffee => folders.js.coffee} (100%)
create mode 100644 apps/workbench/app/assets/stylesheets/cards.css.scss
copy apps/workbench/app/assets/stylesheets/{jobs.css.scss => folders.css.scss} (64%)
create mode 100644 apps/workbench/app/assets/stylesheets/sb-admin.css.scss
create mode 100644 apps/workbench/app/controllers/folders_controller.rb
create mode 100644 apps/workbench/app/helpers/folders_helper.rb
create mode 100644 apps/workbench/app/views/application/_show_object_button.html.erb
create mode 100644 apps/workbench/app/views/folders/_show_my_folders.html.erb
create mode 100644 apps/workbench/app/views/folders/_show_shared_with_me.html.erb
create mode 100644 apps/workbench/app/views/folders/remove_item.js.erb
create mode 100644 apps/workbench/app/views/folders/show.html.erb
create mode 100644 apps/workbench/app/views/keep_disks/_content_layout.html.erb
delete mode 100644 apps/workbench/app/views/logs/show.html.erb
copy apps/workbench/test/{unit/job_task_test.rb => functional/folders_controller_test.rb} (57%)
create mode 100644 apps/workbench/test/integration/folders_test.rb
create mode 100644 apps/workbench/test/unit/arvados_resource_list_test.rb
create mode 100644 apps/workbench/test/unit/helpers/folders_helper_test.rb
delete mode 100644 doc/install/index.html.md.liquid
create mode 100644 doc/install/index.html.textile.liquid
create mode 100644 doc/sdk/java/index.html.textile.liquid
create mode 100644 docker/jobs/Dockerfile
create mode 100644 sdk/cli/test/test_arv-run-pipeline-instance.rb
create mode 100644 sdk/java/.classpath
create mode 100644 sdk/java/.project
create mode 100644 sdk/java/.settings/org.eclipse.jdt.core.prefs
create mode 100644 sdk/java/ArvadosSDKJavaExample.java
create mode 100644 sdk/java/ArvadosSDKJavaExampleWithPrompt.java
create mode 100644 sdk/java/README
create mode 100644 sdk/java/pom.xml
create mode 100644 sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java
create mode 100644 sdk/java/src/main/java/org/arvados/sdk/java/MethodDetails.java
create mode 100644 sdk/java/src/main/resources/log4j.properties
create mode 100644 sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
create mode 100644 sdk/java/src/test/resources/first_pipeline.json
create mode 100644 sdk/python/MANIFEST.in
create mode 100644 sdk/python/arvados/events.py
delete mode 100644 sdk/python/arvados/fuse.py
create mode 100644 sdk/python/arvados/fuse/__init__.py
delete mode 100755 sdk/python/build.sh
create mode 100644 sdk/python/run_test_server.py
copy sdk/python/{setup.py.src => setup.py} (82%)
create mode 100644 sdk/python/setup_fuse.py
create mode 100644 sdk/python/setup_header.py
create mode 100644 sdk/python/test_websockets.py
delete mode 100644 sdk/ruby/Gemfile.lock
create mode 100644 services/api/db/migrate/20140501165548_add_unique_name_index_to_links.rb
delete mode 100755 services/api/script/import_commits.rb
create mode 100644 services/api/test/integration/user_sessions_test.rb
create mode 100644 services/keep/src/keep/perms.go
create mode 100644 services/keep/src/keep/perms_test.go
via 17c73c85f302fca9a1b426f9105dd999ad465f28 (commit)
via 568d941d3fe4bc554af0bca6c1dc4d9fc66ce999 (commit)
via 179c431787943f3711f2127d127c33a831378b06 (commit)
via 4556f61d8f4ec294afa7980d1b00882e2a1ffdfa (commit)
via dc068f04e966c35eee87af8da280bbbeb9ba3595 (commit)
via 8fa8b34bcc334388d8c885e3f0e192503fdb7616 (commit)
via 1ca9c477ffa476305a920a0df7ae1e8d5b69c8b2 (commit)
via bfd037dee4c82f355816c449dd25921fc2923837 (commit)
via ef47dfeb871015d9da6d5e2e0a04100c2e9e8eee (commit)
via 383aa9f906c32876a71599024084283627070adb (commit)
via f990e6880050eafaf3b6bfd063e36aa016e8682a (commit)
via 28fe4303b1c04142bf0939b05280749e590673f0 (commit)
via f900ccf514a3653a64002fe07d9ce5b16adcfd51 (commit)
via a87ad3026e4f7e1cc2e22082a523fa7143388c88 (commit)
via b2a8e117cd2a02851c69136f76a1e63005386f1d (commit)
via 97d8fa64264069fe6d8ae6c8131fd3cc2f347189 (commit)
via c501af3c5d3216c2ca56ab77f4f05bd74198c622 (commit)
via 5a977746e6df04e3ce1578299e98ed7ec645fcdd (commit)
via 0c1af8806516569044c7354ff58f7371a510594d (commit)
via 16af0b22def5b80a1861788907a2fc45b14e3273 (commit)
via 15945ebab4fc71980b2c6ddceb149a3d7365c29e (commit)
via a9eaabb02fe7110f0e16bcd7f27d1a0cd5eab08b (commit)
via 3aaf11c2dd372b5d34ba317a1a4b761d263f86d6 (commit)
via eed7af8f901adb263c870a2277ec166467a28d77 (commit)
via d97e3de81c48673b0e1d3927edaaf0e560a9a2ba (commit)
via 14c312c452e0e010d617c02a33b94a178632ac26 (commit)
via 5c3c04ad25cfabaa860bb0ea3f3dc078a9562008 (commit)
via 5e968d7875c62a6145b7aefc39f070d14f4c97e8 (commit)
via eff3277fa6800bbc4ac81654f8883bbfd3a85d30 (commit)
via 002f863605469cee7e112f4c16a78e3b6278672c (commit)
via 6c2a704b7a2d721087976b2b8ec4f22cdaf44178 (commit)
via cdf7b162906cb37d4ecf88ff6c72433bcdd8fc84 (commit)
via 722862465129f1f30cbb2432132140883d31b4ca (commit)
via 27fa0d391eb95008acf41ba207bc13b8c4fe794c (commit)
via f7f61eca36d66a723b02ac34db888f5fbdc63fc8 (commit)
via 2de827e57ae9ba1b0d322199d071ae900a5b7e0c (commit)
via d9aa5decc6edce30285df049277de2cf2c138c26 (commit)
via 222ce386e36b3d146e718a5d2f64a95fb30996bb (commit)
via 26d69329e87e343b84a132a4754068aca66ad132 (commit)
via 036a701b45399e0114eed5b0e1ce6b478c614534 (commit)
via b4516edf0a7cd1b584442953a8c965fc65104906 (commit)
via a3cd0039e84373541d6648b76647457be5a7e098 (commit)
via 8fcba3783d9a79bb18a00d339f9b3222f1eccd7f (commit)
via 1c6bc4bcac86195a120e6be564703e7d2133dbe7 (commit)
via 71143e41dbc8755d5ccb97990525bbb05aad69e9 (commit)
via 31c711afc4ff8a1728aeb3e5f405a131047671c9 (commit)
via 88590483c4d24904267b550cbb3af7d5a11d8953 (commit)
via 5b252752cdfd8b129d10913f7e2ec7b47f544ead (commit)
via 2376147b3d039acf08456a53015d59f04eabbf82 (commit)
via fde1e4f00e82c7a776892c1ab9c5edacf05dc1c3 (commit)
via 97252f1f34486073c778c0a1c9de25f2f275cacd (commit)
via ff6a6fb89b42d17693786be6405c267bee445c4d (commit)
via 7fb83a3380e62721801a4980c48ba78208c7b2e2 (commit)
via 45938e41f983ce41d8b55c3f980b7f31bc269124 (commit)
via f91c73aba940adf1e9fbd530d102931af45a63c5 (commit)
via 11b48e1b182cef419918d4df1a4998001d665a9a (commit)
via d70ff3d064c9a6da8b8678b249abf7f4b93b6370 (commit)
via 1d5b46697b5d7c68b0bb159fc570ed63c1e3acc3 (commit)
via 9736526e7abfd50eb8f18293f8ac312bf61937e4 (commit)
via 52a3016af3ff21b8fb5402bf70d0aab07f5ee486 (commit)
via 69141a18be1821daf4816046e65b2aea75a975be (commit)
via e65b2e685833e1d850c8d671fd1df9d4e4fea4a3 (commit)
via fdbea9e3c225a3184f8f7c2fac52abde643603c6 (commit)
via a04d67ef0823d6c87e8515cfe6cf88793ef5e3bb (commit)
via df2ce01533175ff7190a5d13fdca4b61f22befd3 (commit)
via 638d136057f4d9ed19f132075079da396217d6fd (commit)
via f493dd4dfab89c228fab05e2b46851211c7fc586 (commit)
via ba764a7a0878b9cf0dd8d22ad4e12774d8e5f550 (commit)
via facf07110e28fe552342fbad623d621b43e22b99 (commit)
via 6f3853aef989e8c2243159bbf0ea352948ae4878 (commit)
via 67b4630e47e0f70e3cdbcaa8a7d039543e3c6a34 (commit)
via 7e049a91425a51398f38e6b1ee839a4070483267 (commit)
via b2979b0db0b6b5ee7ad3001ffcc8f76ff4d96f05 (commit)
via 733269172b6b9802c2a00a8f8d19d6a520546a67 (commit)
via a2104e385abe47470dd42836a66360bf62afa57b (commit)
via 17b0eecaa5dd1e0ac006b6ba757f6aee251a139e (commit)
via f45ce8083a98e29720cfba01e8043f6465327c40 (commit)
via 7276cc563eb93589279f58b045f893a7c3b83835 (commit)
via fc4428224984cb71b961d17410205b535153c7f2 (commit)
via 385ce6601ff872a0a4124071ef39869a4d3cfd53 (commit)
via 32ca1dc4da9100a1a698d33a46c2919cf53fe606 (commit)
via a848b6ea430ee2b2c1daee80e846d4d3bd594920 (commit)
via 35fb8a1cd59d1dc0ad4be89c64e8b48c750faaeb (commit)
via 0ab985ff1da223e4065273fd1a549284ff3454ee (commit)
via e6aa5b48be1209d74c4c69be3eeca549f02418f3 (commit)
via 2e524eb008f8b70ca1263ccde460365109c66a90 (commit)
via 3ac9fd0c91fe202a59e7c3611156bb1a9b8118fe (commit)
via 01436e8b76300759ef4bfea30d7798445d50bf60 (commit)
via eee2c981d6a29eb7f15b8957570bbf8515d3d947 (commit)
via b5f193aa657134822d4df67cabc25c631926395b (commit)
via ff1e29f702d4f3036f5af014ad6e423b886ed0bb (commit)
via f8ba79b88683be984913e28677c4522ca21019aa (commit)
via 66f1ae7a9be590461592199c6d3646dbc4eba786 (commit)
via 4bd14ccfa216fe1d115772508ac7d7c64ec59a48 (commit)
via 16c58b75712ad4332d55e490d20b3946d2e05008 (commit)
via 722e0c17507cc1fd21df7fafa43cc88965c092d8 (commit)
via 79f70f03efbfca59ea80b344e56aa29ac1e72c47 (commit)
via 1b1ddccffecf6e3d44aa2e1a632b54601ce282b6 (commit)
via aa0e6250280b5ac587b816f92127bae079d62dbc (commit)
via db1e389b74e37ecf4915168acdc72ea9ef624d9c (commit)
via 43bcfeaa2d9953ff03f34c65b95be9e386152362 (commit)
via 06c00e72091d7c058cbc607ed863a9444d26156c (commit)
via 1b8120689041941db937883c3132a9c6819b56c5 (commit)
via 7fc412308bcb4d853e6f9aeb9e7d45e5ab76b11f (commit)
via 58242491cbdb85f19342a2ca04b499b9bed98a2d (commit)
via 5845d196105cc4676847695833b7ef3658c8a180 (commit)
via d8de76141cbe9a9af10dfc408b6d656cc727bbe5 (commit)
via 6b21bd450e8b8ed968a965290e641a75660cd695 (commit)
via cbf0429a8a5edd2f8a8d9b01ce39334e07e56bf8 (commit)
via 121fb6bdcdf3731903ce3d21c0a284c20e6a6fca (commit)
via 7871e324112f24527031f4100e4131ff2c6ab245 (commit)
via 8370640cef5110b65ba6c3a2bf9d7f56541b4c7f (commit)
via e76d4b556f07bbeab0998ca0332dad187bb119ee (commit)
via 5af51b564ca9d805f8e61b4bb3c37ed813b3bd16 (commit)
via 6abcf1f6bdb82b176a9fbb48b6c7cefa64970a9d (commit)
via 8dbf8bd4d53c200ca81494556326c03abae74581 (commit)
via 3398985fa7f0997c225b55efaa97dc000a8234fa (commit)
via 5ab27a2c4889609669f6b04bd9dfd2e403e43441 (commit)
via 256142bddd532e2834b4e7f79c3146009e23059e (commit)
via c47ada5e06a91a0283bd779d17ad7e6403e1c223 (commit)
via 8624ad6e91ed73876bd4f12fe8df2387e3e6330e (commit)
via 77f1f9eb6f2d03b53c0bb4567ef07718b934e8ea (commit)
via 395b4e72d33c5b4df931c029a45870d354c32312 (commit)
via cbcb69fcbf73a1bde0ae78be8c0ad25f84c3f7c3 (commit)
via 611223d58fcdf5cc6ba434efed2c1ee9234b29a7 (commit)
via c6c3d3d23d1cca50381570d0558470d47e71fd95 (commit)
via 2b03b05de753509c026b4c67857cd49a11f44dcf (commit)
via c52a78b386adeebf33c618b669f33ca87c466eee (commit)
via 3e9576ef93a4d86882147b34ef9a28016375b865 (commit)
via 546687a7c95109a57efdf7cecbc3f795bc3e72f1 (commit)
via ec56622b42f85aef2b4e8811378f8c99a6df24ea (commit)
via c6ad75e4241247ac18f5a5a8c397537dc6be1e3c (commit)
via 02b233b2eb80de1b234f3658d86a0e446e33a032 (commit)
via 428abec08e6ec59c38b7dc640396db950d42702b (commit)
via 6ada98b925a7b82a87446aacd0f6cca28df1b510 (commit)
via 11c6f1d759040f2af8a68d80ae78dd57a9b2d976 (commit)
via ccdaeb4b5b55c0e97e4fccc21445e5b9cc53dbe2 (commit)
via 17d83fff53eea039e1483f86efd4a66056fed647 (commit)
via 67fef1f4bec2d314c9d37bb05c55ff1067ba7b49 (commit)
via a998a520deb859216271567f1bf3623f310cf2d6 (commit)
via 51928265eaf8ca6b6319dd231d74604ceb3af287 (commit)
via 181fead894b660893e0e09274e609ec8ee4230a1 (commit)
via 51af13e97bc4725e8cc010c72bbedb667b0a0e0f (commit)
via e9359f96365d629a688cbbc2f7d063fabf535a9f (commit)
via 228f1ecbb98438fcd5bbe59465c830be637d38ce (commit)
via ee056b0ceb9ce569e0ee9a64b41ead728636772a (commit)
via 3e237c89424489bad02cde9be33f715269e0c6b8 (commit)
via 00ba956a67072f8b4a77fe71d3dc1e4dd8f70e98 (commit)
via 76e20e694fbe708e17e57a2e0b1c36aca6e8d7d0 (commit)
via 4e05647f7a5b3971771c5a928634c6b2a41aa591 (commit)
via 98fd371d846022d8ccc25e8234d913e436ecce69 (commit)
via 9c444153e80d3a872e11ca5898491c747a881a4d (commit)
via 0f7fa46c1311ddd2aa6e7f0c280b98a6d69d4ec8 (commit)
via 2e04dd8e9f872506922744dd449cccb99b55a847 (commit)
via 752bd0d292c7fd6eb55b39cdc9d7373c7f35e0ec (commit)
via 67c754c065dbe79e14a3c60640e6e604af32d0bd (commit)
via 77c4def0b319e3720dba05a3c1fb0ab78323f227 (commit)
via 65c155b7f691ce6a885125618bde3c9d68f6b47e (commit)
via d433ba0f548414219b3d976125e1ea530e1ba9ef (commit)
via d17ef1d036b4262f6c6c40324cc56d04d26581d3 (commit)
via c436da861845723ab18f56dba96052cf2569e539 (commit)
via 6a7ffd91ec95950588b95d3f29599d07d8447c16 (commit)
via f263c987ad0b144393edd28f281c5b19e84fdf0b (commit)
via 22233bfa18060d000e303d7734ec3016f7e80c8e (commit)
via ebddfbe7fbca80ecf852bbb20af9c6b584394691 (commit)
via 10d03fd3b09ec9f2eaea62cc665a1022f3744b89 (commit)
via 3ea6744bcf9cc4812ab24913286c3bc8e123b76a (commit)
via af3a38d81374f70d15134813563b7371e8e4127c (commit)
via 8c5b4f6d87cec17f915802e3c5f14695611eba7f (commit)
via 603bccd66ac868c2accf9dff9c3ca6b7feeed962 (commit)
via b8dc9c22c0a76b5ed8b36a42d06c45bd3069b6f5 (commit)
via a8fd97bee8b0d194a7013dffa0c8bfb8533e669b (commit)
via 1f763a5b1ad5c65a3265b4284958ecc0fe336f50 (commit)
via aeff59bfaf199eec6884ccf3ff60968bec81f581 (commit)
via 8023ae393e2c9ce115bf67bbcf632798a3d17b87 (commit)
via 20cbe1178d370b71e7df2650afa7d6dc7e8c73b8 (commit)
via 9143c3ec039d6c89512055f70c2fcc6e1065f1d7 (commit)
via 4b9281d9e47bf308d229ca4dde8af499a6674c9c (commit)
via 415347a3354031b48c22cae56c7bbfdcb76d607c (commit)
via a8918e636507200148758302dc6b9a081dc2f206 (commit)
via 7f3b351ccea1beee195c1176be229ffa6d104d3e (commit)
via bcc477ed88c04b3200a70d16f1fc99da11c670f8 (commit)
via c19ef999c3b938e6d3cdc3746fab5bad8aba3403 (commit)
via c8444a1f49cb77bc32f62135247f12301f4927d7 (commit)
via 70fa68ef9087dd85d6e18fba2ef11f94ddeb95a4 (commit)
via 4aee1d7246e344099fe7e10264d009e49aeafee0 (commit)
via 2bb2789ff129b4112d81ba343fadfb7ad362ecd1 (commit)
via d02c4efcfdbe8f21fba895749988b14b7db41310 (commit)
via 1c9ae7e8c8d7920602250958333751b769fb3a72 (commit)
via b93c1cd880d8367d11bd3fd7574e55f4545a34c5 (commit)
via ccce5e8ad71ed2e50ecd57c0f73f1aaafc468539 (commit)
via 70fddd1f7cacaa0db92b3b76a0baeeddf6f0d9b6 (commit)
via 83dcc2c95eeb38c6b0f6f7509338aa729f14d762 (commit)
via 3bd5f6c3f353059c15eeea51b16b2fdee694d504 (commit)
via 6a53a3c5d97d33586567f8df082a725f7d229327 (commit)
via ec824d69dee0696b1ca4748fbe5b912634940d53 (commit)
via 76b9eebf07b424ec2a8fde9b7760b8ce499063bc (commit)
via ac317fea1f11179b33eae7e06a60ba60df218f1c (commit)
via 568ea04cdde8988a675754372f618d937d3757e0 (commit)
via a74ae790b5a0682fa00423626103482c145e1b91 (commit)
via 66d12ae6dc72d45cc3cb3fcc007cb41371371616 (commit)
via fca1b2bd47910761f0c2603e72681670443e4be8 (commit)
via 4c19fb79d7b96bc18a1843182d3675c7a4de683d (commit)
via f23a72b89383c797663b5ec77d342bab20f239f4 (commit)
via 6177a6474c312d5d5b9c1f0eaa3ebd089a64b5f1 (commit)
via 9820178bf518d9ddace8c27ea383e5c37d86c8fe (commit)
via b7161fff2cb2fdd2bc0975c75f1fbc32f625343b (commit)
via 5d5c69bb5a60127aa509fac4bdfb8ea915eacadc (commit)
via 0e69f5346c474da7b2244546db4476f8ca21946f (commit)
via 3063c6106a83102214deb9d86ec621c0bb85d4b7 (commit)
via c623120453858c2ce47ab135f250c33a627a344d (commit)
via 20347d900fb2d75a3f3eef91d4da17a559b0ecd6 (commit)
via da67c81ff6cc5fd540c0725de1c8208c2d8933be (commit)
via f107a5232d5e8788ae19daf1c5f6639f0c3cdb68 (commit)
via 7df1885cee1d6eb0f65a010f13ca7e9ff59c80d9 (commit)
via c66afecd36cf7d91223b5db79f3e120954f8217d (commit)
via 8ee3fe6685a716918a403f559c626c3b38e411f2 (commit)
via 2e273679fbf3f73ac7b7cfcf9ef8380047e959a0 (commit)
via ab5ded7cdf302ad156c58d47f59ab07e3a14ec69 (commit)
via abcde4a0bed9e80fc0925e70d151c7893043bc82 (commit)
via cc22cd28f536fa6fd95732372177d36a94a4c08d (commit)
via c13b9d5300b7f778e2fc05f9d043db4122d15aa1 (commit)
via d39470cbc160b9d51033a564e0b8867388a5a1d3 (commit)
via 1c45ed6a43b01a4f216cf8877b35d9ad18e1c5b5 (commit)
via 9cfbcdf804974812b1a4ec514f5dc7902fce6137 (commit)
via c7fed8bfbd8a0e6edf83142b50bed4fe53c10c5c (commit)
via d28bf64e878b8d45e1ace6409e94027a039d3909 (commit)
via 72493a2fef971fc685ecef42c2b697338da69d2c (commit)
via 4d1481ed38e238e2e39d37775cb8cd86150bd04e (commit)
via c4fcddbe2a01ebbc3a4898dfa8744eb6fc45227e (commit)
via 84c471b1cfb20116b2d7d26215c2517cb57ba53f (commit)
via a5034fccf4a829a36d6e2670a9f62e4f7a545f2f (commit)
via 72c312b352a88740a44fba9e274d72bbabb489a7 (commit)
via ba4693cda66632d3da1a711b6910441958ecee01 (commit)
via 2e5fef753892523984f18c26fc16cfd599115f34 (commit)
via 420949e37a2903ab87f64f57278dfdc6a261a7f3 (commit)
via 34350a8b802a8c48b534673a712614d36a5b97ac (commit)
via 2943d9c3622e2c5bca081dc48fd5d8d148dac386 (commit)
via bd240259a9d95a4da53eb0ff8a3644d7acd7705d (commit)
via e35fb48f1485a92a64a30efe8b1c43a179b70260 (commit)
via 7e8f99556391cc81c014b517a9fa6efed8fe8113 (commit)
via 2f3e496712802324e5d184f9ae59866df1772ef0 (commit)
via bf15373590e21dafd696fa0c10906eb653610d1d (commit)
via 8086f73aca674d7533e88bdd3850042553487d2b (commit)
via 8b77f66275fd87f70dd79075a71d8062311541bc (commit)
via 57dc9e64bb38f186e2b235a98d7437a5f986bc83 (commit)
via d7ccebe29c68df51633f6a18eba6aa6a982c3739 (commit)
via d649a716392760cd394e18a628dc23aaec5fa3b3 (commit)
via 50b746d9246c19c1ad2cf506bb18a0eb8ddd0755 (commit)
via 520d80f58ab4358dfce0233fe6880794c819760c (commit)
via f8cc86219281026b2867c543524f8e7fa23da291 (commit)
from 647c8b8c47ef521046bea7675af84b621c235e0f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 17c73c85f302fca9a1b426f9105dd999ad465f28
Merge: 568d941 647c8b8
Author: Tom Clegg <tom at curoverse.com>
Date: Fri May 9 14:38:39 2014 -0400
Merge branch 'master'
Conflicts:
apps/workbench/Gemfile.lock
apps/workbench/app/controllers/application_controller.rb
apps/workbench/app/models/arvados_api_client.rb
apps/workbench/app/models/group.rb
apps/workbench/app/models/user.rb
apps/workbench/app/views/layouts/application.html.erb
diff --cc apps/workbench/Gemfile.lock
index 8e74832,ca9afb1..4cdd3fc
--- a/apps/workbench/Gemfile.lock
+++ b/apps/workbench/Gemfile.lock
@@@ -2,36 -10,33 +10,33 @@@ GE
remote: https://rubygems.org/
specs:
RedCloth (4.2.9)
- actionmailer (3.2.15)
- actionpack (= 3.2.15)
- actionmailer (4.0.4)
- actionpack (= 4.0.4)
++ actionmailer (4.0.5)
++ actionpack (= 4.0.5)
mail (~> 2.5.4)
- actionpack (3.2.15)
- activemodel (= 3.2.15)
- activesupport (= 3.2.15)
- builder (~> 3.0.0)
- actionpack (4.0.4)
- activesupport (= 4.0.4)
++ actionpack (4.0.5)
++ activesupport (= 4.0.5)
+ builder (~> 3.1.0)
erubis (~> 2.7.0)
- journey (~> 1.0.4)
- rack (~> 1.4.5)
- rack-cache (~> 1.2)
- rack-test (~> 0.6.1)
- sprockets (~> 2.2.1)
- activemodel (3.2.15)
- activesupport (= 3.2.15)
- builder (~> 3.0.0)
- activerecord (3.2.15)
- activemodel (= 3.2.15)
- activesupport (= 3.2.15)
- arel (~> 3.0.2)
- tzinfo (~> 0.3.29)
- activeresource (3.2.15)
- activemodel (= 3.2.15)
- activesupport (= 3.2.15)
- activesupport (3.2.15)
- i18n (~> 0.6, >= 0.6.4)
- multi_json (~> 1.0)
+ rack (~> 1.5.2)
+ rack-test (~> 0.6.2)
- activemodel (4.0.4)
- activesupport (= 4.0.4)
++ activemodel (4.0.5)
++ activesupport (= 4.0.5)
+ builder (~> 3.1.0)
- activerecord (4.0.4)
- activemodel (= 4.0.4)
++ activerecord (4.0.5)
++ activemodel (= 4.0.5)
+ activerecord-deprecated_finders (~> 1.0.2)
- activesupport (= 4.0.4)
++ activesupport (= 4.0.5)
+ arel (~> 4.0.0)
+ activerecord-deprecated_finders (1.0.3)
- activesupport (4.0.4)
++ activesupport (4.0.5)
+ i18n (~> 0.6, >= 0.6.9)
+ minitest (~> 4.2)
+ multi_json (~> 1.3)
+ thread_safe (~> 0.1)
+ tzinfo (~> 0.3.37)
andand (1.3.3)
- arel (3.0.2)
+ arel (4.0.2)
- bootstrap-sass (3.1.1.1)
+ bootstrap-sass (3.1.0.1)
sass (~> 3.2)
bootstrap-x-editable-rails (1.5.1.1)
railties (>= 3.0)
@@@ -48,29 -53,28 +53,28 @@@
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
- childprocess (0.5.3)
+ childprocess (0.5.1)
ffi (~> 1.0, >= 1.0.11)
cliver (0.3.2)
- coffee-rails (3.2.2)
+ coffee-rails (4.0.1)
coffee-script (>= 2.2.0)
- railties (~> 3.2.0)
+ railties (>= 4.0.0, < 5.0)
coffee-script (2.2.0)
coffee-script-source
execjs
- coffee-script-source (1.6.3)
+ coffee-script-source (1.7.0)
commonjs (0.2.7)
- daemon_controller (1.2.0)
+ daemon_controller (1.1.7)
deep_merge (1.0.1)
erubis (2.7.0)
execjs (2.0.2)
ffi (1.9.3)
headless (1.0.1)
- highline (1.6.21)
+ highline (1.6.20)
hike (1.2.3)
httpclient (2.3.4.1)
- i18n (0.6.5)
- journey (1.0.4)
+ i18n (0.6.9)
- jquery-rails (3.1.0)
+ jquery-rails (3.0.4)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
json (1.8.1)
@@@ -83,10 -87,11 +87,11 @@@
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
- mime-types (1.25)
+ mime-types (1.25.1)
- mini_portile (0.5.3)
+ mini_portile (0.5.2)
- multi_json (1.8.2)
+ minitest (4.7.5)
- multi_json (1.9.3)
- net-scp (1.2.1)
++ multi_json (1.10.0)
+ net-scp (1.1.2)
net-ssh (>= 2.6.5)
net-sftp (2.1.2)
net-ssh (>= 2.6.5)
@@@ -109,70 -114,60 +114,66 @@@
cliver (~> 0.3.1)
multi_json (~> 1.0)
websocket-driver (>= 0.2.0)
- polyglot (0.3.3)
- rack (1.4.5)
- rack-cache (1.2)
- rack (>= 0.4)
- rack-ssl (1.3.3)
- rack
+ polyglot (0.3.4)
+ rack (1.5.2)
rack-test (0.6.2)
rack (>= 1.0)
- rails (3.2.15)
- actionmailer (= 3.2.15)
- actionpack (= 3.2.15)
- activerecord (= 3.2.15)
- activeresource (= 3.2.15)
- activesupport (= 3.2.15)
- bundler (~> 1.0)
- railties (= 3.2.15)
- railties (3.2.15)
- actionpack (= 3.2.15)
- activesupport (= 3.2.15)
- rack-ssl (~> 1.3.2)
- rails (4.0.4)
- actionmailer (= 4.0.4)
- actionpack (= 4.0.4)
- activerecord (= 4.0.4)
- activesupport (= 4.0.4)
++ rails (4.0.5)
++ actionmailer (= 4.0.5)
++ actionpack (= 4.0.5)
++ activerecord (= 4.0.5)
++ activesupport (= 4.0.5)
+ bundler (>= 1.3.0, < 2.0)
- railties (= 4.0.4)
++ railties (= 4.0.5)
+ sprockets-rails (~> 2.0.0)
- railties (4.0.4)
- actionpack (= 4.0.4)
- activesupport (= 4.0.4)
++ railties (4.0.5)
++ actionpack (= 4.0.5)
++ activesupport (= 4.0.5)
rake (>= 0.8.7)
- rdoc (~> 3.4)
- thor (>= 0.14.6, < 2.0)
- rake (10.1.0)
- rdoc (3.12.2)
- json (~> 1.4)
+ thor (>= 0.18.1, < 2.0)
+ rake (10.3.1)
ref (1.0.5)
- rubyzip (1.1.3)
+ rubyzip (1.1.0)
rvm-capistrano (1.5.1)
capistrano (~> 2.15.4)
- sass (3.2.19)
+ sass (3.2.12)
- sass-rails (3.2.6)
- railties (~> 3.2.0)
- sass (>= 3.1.10)
- tilt (~> 1.3)
+ sass-rails (4.0.3)
+ railties (>= 4.0.0, < 5.0)
+ sass (~> 3.2.0)
+ sprockets (~> 2.8, <= 2.11.0)
+ sprockets-rails (~> 2.0)
- selenium-webdriver (2.41.0)
+ selenium-webdriver (2.40.0)
childprocess (>= 0.5.0)
multi_json (~> 1.0)
rubyzip (~> 1.0)
websocket (~> 1.0.4)
+ simplecov (0.7.1)
+ multi_json (~> 1.0)
+ simplecov-html (~> 0.7.1)
+ simplecov-html (0.7.1)
+ simplecov-rcov (0.2.3)
+ simplecov (>= 0.4.1)
- sprockets (2.2.2)
+ sprockets (2.11.0)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
+ sprockets-rails (2.0.1)
+ actionpack (>= 3.0)
+ activesupport (>= 3.0)
+ sprockets (~> 2.8)
- sqlite3 (1.3.9)
- therubyracer (0.12.1)
+ sqlite3 (1.3.8)
- themes_for_rails (0.5.1)
- rails (>= 3.0.0)
+ therubyracer (0.12.0)
libv8 (~> 3.16.14.0)
ref
- thor (0.18.1)
+ thor (0.19.1)
+ thread_safe (0.3.3)
tilt (1.4.1)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
- tzinfo (0.3.38)
+ tzinfo (0.3.39)
- uglifier (2.5.0)
+ uglifier (2.3.1)
execjs (>= 0.3.0)
json (>= 1.8.0)
websocket (1.0.7)
@@@ -201,14 -196,12 +202,14 @@@ DEPENDENCIE
passenger
piwik_analytics
poltergeist
- rails (~> 3.2.0)
+ rails (~> 4.0.0)
rvm-capistrano
sass
- sass-rails (~> 3.2.0)
+ sass-rails (~> 4.0.0)
selenium-webdriver
+ simplecov (~> 0.7.1)
+ simplecov-rcov
sqlite3
- themes_for_rails
+ themes_for_rails!
therubyracer
uglifier (>= 1.0.3)
diff --cc apps/workbench/app/controllers/application_controller.rb
index a3576bc,4ed6187..dfb9e89
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@@ -1,18 -1,14 +1,20 @@@
class ApplicationController < ActionController::Base
+ include ArvadosApiClientHelper
+
respond_to :html, :json, :js
protect_from_forgery
+
+ ERROR_ACTIONS = [:render_error, :render_not_found]
+
around_filter :thread_clear
- around_filter :thread_with_mandatory_api_token, :except => [:render_exception, :render_not_found]
+ around_filter(:thread_with_mandatory_api_token,
+ except: [:index, :show] + ERROR_ACTIONS)
around_filter :thread_with_optional_api_token
- before_filter :find_object_by_uuid, :except => [:index, :render_exception, :render_not_found]
- before_filter :check_user_agreements, :except => [:render_exception, :render_not_found]
- before_filter :check_user_notifications, :except => [:render_exception, :render_not_found]
+ before_filter :check_user_agreements, except: ERROR_ACTIONS
+ before_filter :check_user_notifications, except: ERROR_ACTIONS
+ around_filter :using_reader_tokens, only: [:index, :show]
+ before_filter :find_object_by_uuid, except: [:index] + ERROR_ACTIONS
+ before_filter :check_my_folders, :except => ERROR_ACTIONS
theme :select_theme
begin
@@@ -194,56 -185,7 +196,56 @@@
end
protected
-
+
+ def redirect_to_login
+ respond_to do |f|
+ f.html {
+ if request.method == 'GET'
- redirect_to $arvados_api_client.arvados_login_url(return_to: request.url)
++ redirect_to arvados_api_client.arvados_login_url(return_to: request.url)
+ else
+ flash[:error] = "Either you are not logged in, or your session has timed out. I can't automatically log you in and re-attempt this request."
+ redirect_to :back
+ end
+ }
+ f.json {
+ @errors = ['You do not seem to be logged in. You did not supply an API token with this request, and your session (if any) has timed out.']
+ self.render_error status: 422
+ }
+ end
+ false # For convenience to return from callbacks
+ end
+
+ def using_reader_tokens(login_optional=false)
+ if params[:reader_tokens].is_a?(Array) and params[:reader_tokens].any?
+ Thread.current[:reader_tokens] = params[:reader_tokens]
+ end
+ begin
+ yield
+ rescue ArvadosApiClient::NotLoggedInException
+ if login_optional
+ raise
+ else
+ return redirect_to_login
+ end
+ ensure
+ Thread.current[:reader_tokens] = nil
+ end
+ end
+
+ def using_specific_api_token(api_token)
+ start_values = {}
+ [:arvados_api_token, :user].each do |key|
+ start_values[key] = Thread.current[key]
+ end
+ Thread.current[:arvados_api_token] = api_token
+ Thread.current[:user] = nil
+ begin
+ yield
+ ensure
+ start_values.each_key { |key| Thread.current[key] = start_values[key] }
+ end
+ end
+
def find_object_by_uuid
if params[:id] and params[:id].match /\D/
params[:uuid] = params.delete :id
diff --cc apps/workbench/app/models/arvados_base.rb
index 1a0da64,47a9d6d..aea6b77
--- a/apps/workbench/app/models/arvados_base.rb
+++ b/apps/workbench/app/models/arvados_base.rb
@@@ -21,27 -29,28 +29,34 @@@ class ArvadosBase < ActiveRecord::Bas
end
end
- def initialize(*args)
- super(*args)
+ def initialize raw_params={}
+ begin
+ super self.class.permit_attribute_params(raw_params)
+ rescue Exception => e
+ logger.debug raw_params
+ logger.debug self.class.permit_attribute_params(raw_params).inspect
+ logger.debug self.class.attribute_info.inspect
+ raise e
+ end
@attribute_sortkey ||= {
'id' => nil,
- 'uuid' => '000',
- 'owner_uuid' => '001',
- 'created_at' => '002',
- 'modified_at' => '003',
- 'modified_by_user_uuid' => '004',
- 'modified_by_client_uuid' => '005',
- 'name' => '050',
- 'tail_uuid' => '100',
- 'head_uuid' => '101',
- 'info' => 'zzz-000',
- 'updated_at' => 'zzz-999'
+ 'name' => '000',
+ 'owner_uuid' => '002',
+ 'event_type' => '100',
+ 'link_class' => '100',
+ 'group_class' => '100',
+ 'tail_uuid' => '101',
+ 'head_uuid' => '102',
+ 'object_uuid' => '102',
+ 'summary' => '104',
+ 'description' => '104',
+ 'properties' => '150',
+ 'info' => '150',
+ 'created_at' => '200',
+ 'modified_at' => '201',
+ 'modified_by_user_uuid' => '202',
+ 'modified_by_client_uuid' => '203',
+ 'uuid' => '999',
}
end
diff --cc apps/workbench/app/models/arvados_resource_list.rb
index 3f74407,1e2e720..dedd18c
--- a/apps/workbench/app/models/arvados_resource_list.rb
+++ b/apps/workbench/app/models/arvados_resource_list.rb
@@@ -1,7 -1,8 +1,8 @@@
class ArvadosResourceList
+ include ArvadosApiClientHelper
include Enumerable
- def initialize(resource_class)
+ def initialize resource_class=nil
@resource_class = resource_class
end
diff --cc apps/workbench/app/models/group.rb
index dde6019,da8fe60..8d8d390
--- a/apps/workbench/app/models/group.rb
+++ b/apps/workbench/app/models/group.rb
@@@ -1,20 -1,6 +1,20 @@@
class Group < ArvadosBase
- def self.owned_items
- res = arvados_api_client.api self, "/#{self.uuid}/owned_items", {}
- arvados_api_client.unpack_api_response(res)
+ def contents params={}
- res = $arvados_api_client.api self.class, "/#{self.uuid}/contents", {
++ res = arvados_api_client.api self.class, "/#{self.uuid}/contents", {
+ _method: 'GET'
+ }.merge(params)
+ ret = ArvadosResourceList.new
- ret.results = $arvados_api_client.unpack_api_response(res)
++ ret.results = arvados_api_client.unpack_api_response(res)
+ ret
+ end
+
+ def class_for_display
+ group_class == 'folder' ? 'Folder' : super
+ end
+
+ def editable?
+ respond_to?(:writable_by) and
+ writable_by and
+ writable_by.index(current_user.uuid)
end
end
diff --cc apps/workbench/app/models/user.rb
index 44d615b,59ab1ba..c1656bd
--- a/apps/workbench/app/models/user.rb
+++ b/apps/workbench/app/models/user.rb
@@@ -11,12 -11,17 +11,12 @@@ class User < ArvadosBas
end
def self.system
- $arvados_system_user ||= begin
- res = $arvados_api_client.api self, '/system'
- $arvados_api_client.unpack_api_response(res)
- end
+ @@arvados_system_user ||= begin
+ res = arvados_api_client.api self, '/system'
+ arvados_api_client.unpack_api_response(res)
+ end
end
- def owned_items
- res = arvados_api_client.api self.class, "/#{self.uuid}/owned_items"
- arvados_api_client.unpack_api_response(res)
- end
-
def full_name
(self.first_name || "") + " " + (self.last_name || "")
end
diff --cc apps/workbench/app/views/layouts/application.html.erb
index 2b5ec88,2652565..f5aca0c
--- a/apps/workbench/app/views/layouts/application.html.erb
+++ b/apps/workbench/app/views/layouts/application.html.erb
@@@ -59,189 -68,167 +59,189 @@@
<a class="navbar-brand" href="/"><%= Rails.configuration.site_name rescue Rails.application.class.parent_name %></a>
</div>
- <div class="collapse navbar-collapse" id="workbench-navbar">
- <ul class="nav navbar-nav navbar-left breadcrumbs">
- <% if current_user %>
- <% if content_for?(:breadcrumbs) %>
- <%= yield(:breadcrumbs) %>
- <% else %>
- <li class="nav-separator"><span class="glyphicon glyphicon-arrow-right"></span></li>
- <li>
- <%= link_to(
- controller.model_class.to_s.pluralize.underscore.gsub('_', ' '),
- url_for({controller: params[:controller]})) %>
- </li>
- <% if params[:action] != 'index' %>
- <li class="nav-separator">
- <span class="glyphicon glyphicon-arrow-right"></span>
+ <div class="collapse navbar-collapse">
+ <% if current_user.andand.is_active %>
+ <ul class="nav navbar-nav side-nav">
+
+ <li class="<%= 'arvados-nav-active' if params[:action] == 'home' %>">
+ <a href="/"><i class="fa fa-lg fa-dashboard fa-fw"></i> Dashboard</a>
</li>
- <li>
- <%= link_to_if_arvados_object @object %>
+
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-lg fa-hand-o-up fa-fw"></i> Help <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
+ <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
+ <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
+ </ul>
</li>
- <li style="padding: 14px 0 14px">
- <%= form_tag do |f| %>
- <%= render :partial => "selection_checkbox", :locals => {:object => @object} %>
- <% end %>
+
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-lg fa-folder-o fa-fw"></i> Folders <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><%= link_to raw('<i class="fa fa-plus fa-fw"></i> Create new folder'), folders_path, method: :post %></li>
+ <% @my_top_level_folders.call[0..7].each do |folder| %>
+ <li><%= link_to raw('<i class="fa fa-folder-open fa-fw"></i> ') + folder.name, folder_path(folder) %></li>
+ <% end %>
+ <li><a href="/folders">
+ <i class="fa fa-ellipsis-h fa-fw"></i> Show all folders
+ </a></li>
+ </ul>
</li>
- <% end %>
- <% end %>
- <% end %>
- </ul>
-
- <ul class="nav navbar-nav navbar-right">
-
- <li>
- <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
- </li>
-
- <% if current_user %>
- <!-- XXX placeholder for this when search is implemented
- <li>
- <form class="navbar-form" role="search">
- <div class="input-group" style="width: 220px">
- <input type="text" class="form-control" placeholder="search">
- <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
- </div>
- </form>
- </li>
- -->
-
- <li class="dropdown notification-menu">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="collections-menu">
- <span class="glyphicon glyphicon-paperclip"></span>
- <span class="badge" id="persistent-selection-count"></span>
- <span class="caret"></span>
- </a>
- <ul class="dropdown-menu" role="menu" id="persistent-selection-list">
- <%= form_tag '/actions' do %>
- <div id="selection-form-content"></div>
- <% end %>
- </ul>
- </li>
-
- <% if current_user.is_active %>
- <li class="dropdown notification-menu">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
- <span class="glyphicon glyphicon-envelope"></span>
- <span class="badge badge-alert notification-count"><%= @notification_count %></span>
- <span class="caret"></span>
- </a>
- <ul class="dropdown-menu" role="menu">
- <% if (@notifications || []).length > 0 %>
- <% @notifications.each_with_index do |n, i| %>
- <% if i > 0 %><li class="divider"></li><% end %>
- <li class="notification"><%= n.call(self) %></li>
- <% end %>
- <% else %>
- <li class="notification empty">No notifications.</li>
+ <li><a href="/collections">
+ <i class="fa fa-lg fa-briefcase fa-fw"></i> Collections (data files)
+ </a></li>
+ <li><a href="/pipeline_instances">
+ <i class="fa fa-lg fa-tasks fa-fw"></i> Pipeline instances
+ </a></li>
+ <li><a href="/pipeline_templates">
+ <i class="fa fa-lg fa-gears fa-fw"></i> Pipeline templates
+ </a></li>
+ <li> </li>
+ <li><a href="/repositories">
+ <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
+ </a></li>
+ <li><a href="/virtual_machines">
+ <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
+ </a></li>
+ <li><a href="/humans">
+ <i class="fa fa-lg fa-male fa-fw"></i> Humans
+ </a></li>
+ <li><a href="/specimens">
+ <i class="fa fa-lg fa-flask fa-fw"></i> Specimens
+ </a></li>
+ <li><a href="/traits">
+ <i class="fa fa-lg fa-clipboard fa-fw"></i> Traits
+ </a></li>
+ <li><a href="/links">
+ <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links
+ </a></li>
+ <% if current_user.andand.is_admin %>
+ <li><a href="/users">
+ <i class="fa fa-lg fa-user fa-fw"></i> Users
+ </a></li>
<% end %>
+ <li><a href="/groups">
+ <i class="fa fa-lg fa-users fa-fw"></i> Groups
+ </a></li>
+ <li><a href="/nodes">
+ <i class="fa fa-lg fa-cogs fa-fw"></i> Compute nodes
+ </a></li>
+ <li><a href="/keep_disks">
+ <i class="fa fa-lg fa-hdd-o fa-fw"></i> Keep disks
+ </a></li>
</ul>
- </li>
<% end %>
- <li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="user-menu">
- <span class="glyphicon glyphicon-user"></span><span class="caret"></span>
- </a>
- <ul class="dropdown-menu" role="menu">
- <li role="presentation" class="dropdown-header"><%= current_user.email %></li>
- <% if current_user.is_active %>
- <li role="presentation" class="divider"></li>
- <li role="presentation"><a href="/authorized_keys" role="menuitem">Manage ssh keys</a></li>
- <li role="presentation"><a href="/api_client_authorizations" role="menuitem">Manage API tokens</a></li>
- <li role="presentation" class="divider"></li>
+ <ul class="nav navbar-nav navbar-left breadcrumbs">
+ <% if current_user %>
+ <% if content_for?(:breadcrumbs) %>
+ <%= yield(:breadcrumbs) %>
+ <% else %>
+ <li class="nav-separator"><span class="glyphicon glyphicon-arrow-right"></span></li>
+ <li>
+ <%= link_to(
+ controller.controller_name.humanize.downcase,
+ url_for({controller: params[:controller]})) %>
+ </li>
+ <% if params[:action] != 'index' %>
+ <li class="nav-separator">
+ <span class="glyphicon glyphicon-arrow-right"></span>
+ </li>
+ <li>
+ <%= link_to_if_arvados_object @object, {friendly_name: true}, {data: {object_uuid: @object.andand.uuid, name: 'name'}} %>
+ </li>
+ <li style="padding: 14px 0 14px">
+ <%= form_tag do |f| %>
+ <%= render :partial => "selection_checkbox", :locals => {:object => @object} %>
+ <% end %>
+ </li>
+ <% end %>
<% end %>
- <li role="presentation"><a href="<%= logout_path %>" role="menuitem">Log out</a></li>
- </ul>
- </li>
- <% else -%>
- <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
- <% end -%>
- </ul>
- </div><!-- /.navbar-collapse -->
- </div><!-- /.container-fluid -->
- </div>
+ <% end %>
+ </ul>
- <div class="container-fluid">
- <div class="col-sm-9 col-sm-offset-3">
- <div id="content" class="body-content">
- <%= yield %>
- </div>
- </div>
- <div class="col-sm-3 left-nav">
- <div class="arvados-nav-container">
- <% if current_user.andand.is_active %>
- <div class="well">
- <ul class="arvados-nav">
- <li class="<%= 'arvados-nav-active' if params[:action] == 'home' %>">
- <a href="/">Dashboard</a>
+ <ul class="nav navbar-nav navbar-right">
+
+ <li>
+ <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
</li>
- <% [['Data', [['collections', 'Collections (data files)'],
- ['humans'],
- ['traits'],
- ['specimens'],
- ['links']]],
- ['Activity', [['pipeline_instances', 'Recent pipeline instances'],
- ['jobs', 'Recent jobs']]],
- ['Compute', [['pipeline_templates'],
- ['repositories', 'Code repositories'],
- ['virtual_machines']]],
- ['System', [['users'],
- ['groups'],
- ['nodes', 'Compute nodes'],
- ['keep_disks']]]].each do |j| %>
- <li><%= j[0] %>
- <ul>
- <% j[1].each do |k| %>
- <% unless k[0] == 'users' and !current_user.andand.is_admin %>
- <li class="<%= 'arvados-nav-active' if (params[:controller] == k[0] && params[:action] != 'home') %>">
- <a href="/<%= k[0] %>">
- <%= if k[1] then k[1] else k[0].capitalize.gsub('_', ' ') end %>
- </a>
- </li>
+ <% if current_user %>
+ <!-- XXX placeholder for this when search is implemented
+ <li>
+ <form class="navbar-form" role="search">
+ <div class="input-group" style="width: 220px">
+ <input type="text" class="form-control" placeholder="search">
+ <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
+ </div>
+ </form>
+ </li>
+ -->
+
+ <li class="dropdown notification-menu">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="collections-menu">
+ <span class="glyphicon glyphicon-paperclip"></span>
+ <span class="badge" id="persistent-selection-count"></span>
+ <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu" role="menu" id="persistent-selection-list">
+ <%= form_tag '/actions' do %>
+ <%= hidden_field_tag 'uuid', @object.andand.uuid %>
+ <div id="selection-form-content"></div>
<% end %>
+ </ul>
+ </li>
+
+ <% if current_user.is_active %>
+ <li class="dropdown notification-menu">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
+ <span class="glyphicon glyphicon-envelope"></span>
+ <span class="badge badge-alert notification-count"><%= @notification_count %></span>
+ <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu" role="menu">
+ <% if (@notifications || []).length > 0 %>
+ <% @notifications.each_with_index do |n, i| %>
+ <% if i > 0 %><li class="divider"></li><% end %>
+ <li class="notification"><%= n.call(self) %></li>
+ <% end %>
+ <% else %>
+ <li class="notification empty">No notifications.</li>
<% end %>
- </ul>
- </li>
+ </ul>
+ </li>
<% end %>
- <li>Help
- <ul>
- <li><%= link_to 'Tutorials and User guide', "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
- <li><%= link_to 'API Reference', "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
- <li><%= link_to 'SDK Reference', "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="user-menu">
+ <span class="glyphicon glyphicon-user"></span><span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu" role="menu">
+ <li role="presentation" class="dropdown-header"><%= current_user.email %></li>
+ <% if current_user.is_active %>
+ <li role="presentation" class="divider"></li>
+ <li role="presentation"><a href="/authorized_keys" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage ssh keys</a></li>
+ <li role="presentation"><a href="/api_client_authorizations" role="menuitem"><i class="fa fa-ticket fa-fw"></i> Manage API tokens</a></li>
+ <li role="presentation" class="divider"></li>
+ <% end %>
+ <li role="presentation"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-sign-out fa-fw"></i> Log out</a></li>
</ul>
</li>
+ <% else %>
- <li><a href="<%= $arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
++ <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
+ <% end %>
</ul>
- </div>
- <% end %>
- </div>
- </div>
+ </div><!-- /.navbar-collapse -->
+ </nav>
+
+ <div id="page-wrapper">
+ <%= yield %>
+ </div>
</div>
+</div>
+
<%= yield :footer_html %>
<%= piwik_tracking_tag %>
<%= javascript_tag do %>
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list