summaryrefslogtreecommitdiff
path: root/app/views/admin/projects/index.html.haml
blob: cf8d438670bc6b2ac0d07ce94e86fa2b999da919 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
- @no_container = true
- page_title "Projects"
- params[:visibility_level] ||= []

= render "admin/dashboard/head"

%div{ class: container_class }
  .top-area
    .prepend-top-default
      = form_tag admin_projects_path, method: :get do |f|
        .search-holder
          .search-field-holder
            = search_field_tag :name, params[:name], class: "form-control search-text-input js-search-input", id: "dashboard_search", autofocus: true, spellcheck: false, placeholder: 'Search by name'

            - if params[:visibility_level].present?
              = hidden_field_tag 'visibility_level', params[:visibility_level]

            - if params[:sort].present?
              = hidden_field_tag 'sort', params[:sort]

            - if params[:personal].present?
              = hidden_field_tag 'visibility_level', 'true'

            - if params[:archived].present?
              = hidden_field_tag 'archived', 'true'

            = icon("search", class: "search-icon")

          .dropdown
            - toggle_text = 'Namespace'
            - if params[:namespace_id].present?
              - namespace = Namespace.find(params[:namespace_id])
              - toggle_text = "#{namespace.kind}: #{namespace.path}"
            = dropdown_toggle(toggle_text, { toggle: 'dropdown' }, { toggle_class: 'js-namespace-select large' })
            .dropdown-menu.dropdown-select.dropdown-menu-align-right
              = dropdown_title('Namespaces')
              = dropdown_filter("Search for Namespace")
              = dropdown_content
              = dropdown_loading
          = render 'shared/projects/dropdown'
          = link_to new_project_path, class: 'btn btn-new' do
            New Project
          = button_tag "Search", class: "btn btn-primary btn-search hide"

    %ul.nav-links
      - opts = params[:visibility_level].present? ? {} : { page: admin_projects_path }
      = nav_link(opts) do
        = link_to admin_projects_path do
          All

      = nav_link(html_options: { class: params[:visibility_level] == Gitlab::VisibilityLevel::PRIVATE.to_s ? 'active' : '' }) do
        = link_to admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PRIVATE) do
          Private
      = nav_link(html_options: { class: params[:visibility_level] == Gitlab::VisibilityLevel::INTERNAL.to_s ? 'active' : '' }) do
        = link_to admin_projects_path(visibility_level: Gitlab::VisibilityLevel::INTERNAL) do
          Internal
      = nav_link(html_options: { class: params[:visibility_level] == Gitlab::VisibilityLevel::PUBLIC.to_s ? 'active' : '' }) do
        = link_to admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PUBLIC) do
          Public

  .projects-list-holder
    - if @projects.any?
      %ul.projects-list.content-list
        - @projects.each_with_index do |project|
          %li.project-row
            .controls
              - if project.archived
                %span.label.label-warning archived
              %span.badge
                = storage_counter(project.statistics.storage_size)
              = link_to 'Edit', edit_namespace_project_path(project.namespace, project), id: "edit_#{dom_id(project)}", class: "btn"
              = link_to 'Delete', [project.namespace.becomes(Namespace), project], data: { confirm: remove_project_message(project) }, method: :delete, class: "btn btn-remove"
            .title
              = link_to [:admin, project.namespace.becomes(Namespace), project] do
                .dash-project-avatar
                  .avatar-container.s40
                    = project_icon(project, alt: '', class: 'avatar project-avatar s40')
                %span.project-full-name
                  %span.namespace-name
                    - if project.namespace
                      = project.namespace.human_name
                      \/
                  %span.project-name.filter-title
                    = project.name

            - if project.description.present?
              .description
                = markdown_field(project, :description)

      = paginate @projects, theme: 'gitlab'
    - else
      .nothing-here-block No projects found