From c3fd48d0728c140fbe0ab038ad148cfae8104c97 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Tue, 6 May 2014 17:10:04 -0400 Subject: [PATCH] Almost working sharing button. --- .../app/controllers/collections_controller.rb | 21 +++++++++++ .../views/collections/_sharing_popup.html.erb | 29 ++++++++++++++- .../views/collections/_show_files.html.erb | 9 ++++- apps/workbench/config/routes.rb | 2 ++ .../api_client_authorizations_controller.rb | 2 ++ services/api/app/models/arvados_model.rb | 36 ++++++++++--------- 6 files changed, 80 insertions(+), 19 deletions(-) diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb index ce72d6201e..a9cc1c6cbe 100644 --- a/apps/workbench/app/controllers/collections_controller.rb +++ b/apps/workbench/app/controllers/collections_controller.rb @@ -110,6 +110,10 @@ class CollectionsController < ApplicationController self.response_body = file_enumerator opts end + def search_scopes + ApiClientAuthorization.where(filters: [['scopes', '=', "/arvados/v1/collections/#{@object.uuid}"]]) + end + def show return super if !@object @provenance = [] @@ -117,6 +121,7 @@ class CollectionsController < ApplicationController @output2colorindex = {} @sourcedata = {params[:uuid] => {uuid: params[:uuid]}} @protected = {} + @search_sharing = search_scopes.select { |s| s.scopes != ['all'] } colorindex = -1 any_hope_left = true @@ -172,12 +177,28 @@ class CollectionsController < ApplicationController end def sharing_popup + @search_sharing = search_scopes.select { |s| s.scopes != ['all'] } respond_to do |format| format.html format.js end end + def share + a = ApiClientAuthorization.create(scopes: ["/arvados/v1/collections/#{@object.uuid}"]) + @search_sharing = search_scopes.select { |s| s.scopes != ['all'] } + render 'sharing_popup' + end + + def unshare + @search_sharing = search_scopes.select { |s| s.scopes != ['all'] } + @search_sharing.each do |s| + s.destroy + end + @search_sharing = search_scopes.select { |s| s.scopes != ['all'] } + render 'sharing_popup' + end + protected def find_usable_token diff --git a/apps/workbench/app/views/collections/_sharing_popup.html.erb b/apps/workbench/app/views/collections/_sharing_popup.html.erb index b19cb6f029..b88cd58bfe 100644 --- a/apps/workbench/app/views/collections/_sharing_popup.html.erb +++ b/apps/workbench/app/views/collections/_sharing_popup.html.erb @@ -1,10 +1,37 @@ -