diff --git a/lib/rollout_ui/engine/app/controllers/rollout_ui/features/current_users_controller.rb b/lib/rollout_ui/engine/app/controllers/rollout_ui/features/current_users_controller.rb new file mode 100644 index 0000000..40d8ac4 --- /dev/null +++ b/lib/rollout_ui/engine/app/controllers/rollout_ui/features/current_users_controller.rb @@ -0,0 +1,21 @@ +module RolloutUi + class Features::CurrentUsersController < ApplicationController + before_filter :load_feature + + def create + @feature.user_ids = @feature.user_ids + [current_user.id.to_s] + redirect_to features_path + end + + def destroy + @feature.user_ids = @feature.user_ids - [current_user.id.to_s] + redirect_to features_path + end + + private + + def load_feature + @feature = RolloutUi::Feature.new(params[:feature_id]) + end + end +end diff --git a/lib/rollout_ui/engine/app/views/rollout_ui/features/_feature.html.erb b/lib/rollout_ui/engine/app/views/rollout_ui/features/_feature.html.erb index 68716cd..c5ff6a0 100644 --- a/lib/rollout_ui/engine/app/views/rollout_ui/features/_feature.html.erb +++ b/lib/rollout_ui/engine/app/views/rollout_ui/features/_feature.html.erb @@ -1,4 +1,15 @@ -

<%= feature.name %>

+

+ <%= feature.name %> + <% if defined?(current_user) && current_user %> +
+ <% if feature.user_ids.include?(current_user.id.to_s) %> + <%= link_to 'Remove Me', feature_current_user_path(feature.name), method: :delete %> + <% else %> + <%= link_to 'Add Me', feature_current_user_path(feature.name), method: :post %> + <% end %> +
+ <% end %> +

<%= form_tag feature_path(feature.name), :class => "percentage_form", :method => :put, :remote => true do %> diff --git a/lib/rollout_ui/engine/config/routes.rb b/lib/rollout_ui/engine/config/routes.rb index 121c161..bfa49e1 100644 --- a/lib/rollout_ui/engine/config/routes.rb +++ b/lib/rollout_ui/engine/config/routes.rb @@ -1,5 +1,7 @@ RolloutUi::Engine.routes.draw do - resources :features, :only => [:index, :update] + resources :features, :only => [:index, :update] do + resource :current_user, :only => [:create, :destroy], :controller => 'features/current_users' + end root :to => "features#index" end