Skip to content
Snippets Groups Projects
Commit 54a1193d authored by Mike Greiling's avatar Mike Greiling
Browse files

add scope filters to project snippets page

parent b65d3e11
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -19,10 +19,12 @@ class Projects::SnippetsController < Projects::ApplicationController
respond_to :html
 
def index
@snippets = SnippetsFinder.new.execute(current_user, {
@snippets = SnippetsFinder.new.execute(
current_user,
filter: :by_project,
project: @project
})
project: @project,
scope: params[:scope]
)
@snippets = @snippets.page(params[:page])
end
 
Loading
Loading
Loading
Loading
@@ -8,7 +8,7 @@ class SnippetsFinder
when :by_user then
by_user(current_user, params[:user], params[:scope])
when :by_project
by_project(current_user, params[:project])
by_project(current_user, params[:project], params[:scope])
end
end
 
Loading
Loading
@@ -47,14 +47,30 @@ class SnippetsFinder
end
end
 
def by_project(current_user, project)
def by_project(current_user, project, scope)
snippets = project.snippets.fresh
 
if current_user
if project.team.member?(current_user) || current_user.admin?
snippets
case scope
when 'are_internal' then
snippets.are_internal
when 'are_private' then
snippets.are_private
when 'are_public' then
snippets.are_public
else
snippets
end
else
snippets.public_and_internal
case scope
when 'are_internal' then
snippets.are_internal
when 'are_public' then
snippets.are_public
else
snippets.public_and_internal
end
end
else
snippets.are_public
Loading
Loading
- page_title "Snippets"
 
- if current_user
.nav-links.snippet-scope-menu
%li{ class: ("active" unless params[:scope]) }
= link_to namespace_project_snippets_path(@project.namespace, @project) do
All
%span.badge
= @project.snippets.count
- if @project.team.member?(current_user) || current_user.admin?
%li{ class: ("active" if params[:scope] == "are_private") }
= link_to namespace_project_snippets_path(@project.namespace, @project, scope: 'are_private') do
Private
%span.badge
= @project.snippets.are_private.count
%li{ class: ("active" if params[:scope] == "are_internal") }
= link_to namespace_project_snippets_path(@project.namespace, @project, scope: 'are_internal') do
Internal
%span.badge
= @project.snippets.are_internal.count
%li{ class: ("active" if params[:scope] == "are_public") }
= link_to namespace_project_snippets_path(@project.namespace, @project, scope: 'are_public') do
Public
%span.badge
= @project.snippets.are_public.count
.sub-header-block
- if can?(current_user, :create_project_snippet, @project)
= link_to new_namespace_project_snippet_path(@project.namespace, @project), class: "btn btn-new btn-wide-on-sm pull-right", title: "New snippet" do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment