- breadcrumb_title _("Dashboard") - page_title _("Dashboard") - billable_users_url = help_page_path('subscriptions/self_managed/index', anchor: 'billable-users') - billable_users_link_start = ''.html_safe % { url: billable_users_url } - if @notices - @notices.each do |notice| .js-vue-alert{ 'v-cloak': true, data: { variant: notice[:type], dismissible: true.to_s } } = notice[:message].html_safe - if @license.present? .license-panel.gl-mt-5 = render_if_exists 'admin/licenses/summary' = render_if_exists 'admin/licenses/breakdown' .admin-dashboard.gl-mt-3 .h3.gl-mb-5.gl-mt-0= _('Instance overview') .row .col-md-4.gl-mb-6 .gl-card .gl-card-body.d-flex.justify-content-between.align-items-center.gl-p-6 %span .d-flex.align-items-center = sprite_icon('project', size: 16, css_class: 'gl-text-gray-700') %h3.gl-m-0.gl-ml-3= approximate_count_with_delimiters(@counts, Project) .gl-mt-3.text-uppercase= s_('AdminArea|Projects') = link_to(s_('AdminArea|New project'), new_project_path, class: "btn gl-button btn-default") .gl-card-footer.gl-bg-transparent .d-flex.align-items-center = link_to(s_('AdminArea|View latest projects'), admin_projects_path) = sprite_icon('angle-right', size: 12, css_class: 'gl-text-gray-700 gl-ml-2') .col-md-4.gl-mb-6 .gl-card .gl-card-body.d-flex.justify-content-between.align-items-center.gl-p-6 %span .d-flex.align-items-center = sprite_icon('users', size: 16, css_class: 'gl-text-gray-700') %h3.gl-m-0.gl-ml-3= approximate_count_with_delimiters(@counts, User) %span.gl-outline-0.gl-ml-3{ tabindex: "0", data: { container: "body", toggle: "popover", placement: "top", html: "true", trigger: "focus", content: s_("AdminArea|All users created in the instance, including users who are not %{billable_users_link_start}billable users%{billable_users_link_end}.").html_safe % { billable_users_link_start: billable_users_link_start, billable_users_link_end: ''.html_safe }, } } = sprite_icon('question', size: 16, css_class: 'gl-text-gray-700') .gl-mt-3.text-uppercase = s_('AdminArea|Users') = link_to(s_('AdminArea|Users statistics'), admin_dashboard_stats_path, class: "text-capitalize gl-ml-2") = link_to(s_('AdminArea|New user'), new_admin_user_path, class: "btn gl-button btn-default") .gl-card-footer.gl-bg-transparent .d-flex.align-items-center = link_to(s_('AdminArea|View latest users'), admin_users_path) = sprite_icon('angle-right', size: 12, css_class: 'gl-text-gray-700 gl-ml-2') .col-md-4.gl-mb-6 .gl-card .gl-card-body.d-flex.justify-content-between.align-items-center.gl-p-6 %span .d-flex.align-items-center = sprite_icon('group', size: 16, css_class: 'gl-text-gray-700') %h3.gl-m-0.gl-ml-3= approximate_count_with_delimiters(@counts, Group) .gl-mt-3.text-uppercase= s_('AdminArea|Groups') = link_to(s_('AdminArea|New group'), new_admin_group_path, class: "btn gl-button btn-default") .gl-card-footer.gl-bg-transparent .d-flex.align-items-center = link_to(s_('AdminArea|View latest groups'), admin_groups_path) = sprite_icon('angle-right', size: 12, css_class: 'gl-text-gray-700 gl-ml-2') .row .col-md-4.gl-mb-6 #js-admin-statistics-container .col-md-4.gl-mb-6 .gl-card .gl-card-body %h4= s_('AdminArea|Features') = feature_entry(_('Sign up'), href: general_admin_application_settings_path(anchor: 'js-signup-settings'), enabled: allow_signup?) = feature_entry(_('LDAP'), enabled: Gitlab.config.ldap.enabled, doc_href: help_page_path('administration/auth/ldap/index.md')) = feature_entry(_('Gravatar'), href: general_admin_application_settings_path(anchor: 'js-account-settings'), enabled: gravatar_enabled?) = feature_entry(_('OmniAuth'), href: general_admin_application_settings_path(anchor: 'js-signin-settings'), enabled: Gitlab::Auth.omniauth_enabled?, doc_href: help_page_path('integration/omniauth')) = feature_entry(_('Reply by email'), enabled: Gitlab::IncomingEmail.enabled?, doc_href: help_page_path('administration/reply_by_email')) = render_if_exists 'admin/dashboard/elastic_and_geo' = feature_entry(_('Container Registry'), href: ci_cd_admin_application_settings_path(anchor: 'js-registry-settings'), enabled: Gitlab.config.registry.enabled, doc_href: help_page_path('user/packages/container_registry/index')) = feature_entry(_('Gitlab Pages'), enabled: Gitlab.config.pages.enabled, doc_href: help_instance_configuration_url) = feature_entry(_('Shared Runners'), href: admin_runners_path, enabled: Gitlab.config.gitlab_ci.shared_runners_enabled) .col-md-4.gl-mb-6 .gl-card .gl-card-body %h4 = s_('AdminArea|Components') - if Gitlab::CurrentSettings.version_check_enabled .float-right = version_status_badge %p = link_to _('GitLab'), general_admin_application_settings_path %span.float-right = Gitlab::VERSION = "(#{Gitlab.revision})" %p = _('GitLab Shell') %span.float-right = Gitlab::Shell.version %p = _('GitLab Workhorse') %span.float-right = gitlab_workhorse_version %p = _('GitLab API') %span.float-right = API::API::version - if Gitlab.config.pages.enabled %p = _('GitLab Pages') %span.float-right = Gitlab::Pages::VERSION = render_if_exists 'admin/dashboard/geo' %p = _('Ruby') %span.float-right #{RUBY_VERSION}p#{RUBY_PATCHLEVEL} %p = _('Rails') %span.float-right #{Rails::VERSION::STRING} %p = Gitlab::Database.human_adapter_name %span.float-right = Gitlab::Database.version %p = _('Redis') %span.float-right = @redis_versions&.join(", ") %p = link_to _("Gitaly Servers"), admin_gitaly_servers_path .row .col-md-4.gl-mb-6 .gl-card .gl-card-body %h4= s_('AdminArea|Latest projects') - @projects.each do |project| %p = link_to project.full_name, admin_project_path(project), class: 'str-truncated-60' %span.light.float-right #{time_ago_with_tooltip(project.created_at)} .col-md-4.gl-mb-6 .gl-card .gl-card-body %h4= s_('AdminArea|Latest users') - @users.each do |user| %p = link_to [:admin, user], class: 'str-truncated-60' do = user.name %span.light.float-right #{time_ago_with_tooltip(user.created_at)} .col-md-4.gl-mb-6 .gl-card .gl-card-body %h4= s_('AdminArea|Latest groups') - @groups.each do |group| %p = link_to [:admin, group], class: 'str-truncated-60' do = group.full_name %span.light.float-right #{time_ago_with_tooltip(group.created_at)}