openSUSE/osem

View on GitHub
app/views/admin/conferences/show.html.haml

Summary

Maintainability
Test Coverage
%h1
  %span.fa-solid.fa-gauge-high
  Dashboard for #{@conference.title}
%hr
.row
  .col-sm-3.col-xs-3
    = render "big_statistic",
      icon: "user", subtitle: "Registration", value: @total_reg, delta: @new_reg
  .col-sm-3.col-xs-3
    = render "big_statistic",
      icon: "square-check", subtitle: "Submission", value: @total_submissions, delta: @new_submissions
  .col-sm-3.col-xs-3
    = render "big_statistic",
      icon: "file-lines", subtitle: "Hour", value: @program_length, delta: @new_program_length
  .col-sm-3.col-xs-3
    = render "big_statistic",
      icon: "box-archive", subtitle: "Withdrawn", value: @total_withdrawn, delta: @new_withdrawn

.row
  .col-md-12
    .row
      .col-md-8
        .row#registrations
          .col-md-12
            = render 'line_chart',
              title: 'Registrations per week', data: @registrations
        .row#submissions
          .col-md-12
            = render 'line_chart',
              title: 'Submissions per week', data: @submissions
      .col-md-4
        = render 'todo_list',
          conference_progress: @conference_progress, conference: @conference
      .row#tickets
        .col-md-8
          = render 'line_chart',
            title: 'Tickets sold per week', data: @tickets
%br
.row
  .col-md-12#doughnut
    %ul.nav.nav-tabs#doughnut_tabs
      %li.active
        %a{ href: '#distribution_all', 'data-toggle' => 'tab' }
          %span.fa-solid.fa-star
          All
      %li
        %a{ href: '#distribution_confirmed', 'data-toggle' => 'tab' }
          %span.fa-solid.fa-comment
          Confirmed
      %li
        %a{ href: '#distribution_withdrawn', 'data-toggle' => 'tab' }
          %span.fa-solid.fa-box-archive
          Withdrawn
    .tab-content
      .tab-pane.active#distribution_all
        .row
          .col-md-4
            = render 'donut_chart', title: 'Event types',
              combined_data: @event_type_distribution
          .col-md-4
            = render 'donut_chart', title: 'Difficulty levels',
              combined_data: @difficulty_levels_distribution
          .col-md-4
            = render 'donut_chart', title: 'Tracks',
              combined_data: @tracks_distribution
      .tab-pane#distribution_confirmed
        .row
          .col-md-4
            = render 'donut_chart', title: 'Event types',
              combined_data: @event_type_distribution_confirmed
          .col-md-4
            = render 'donut_chart', title: 'Difficulty levels',
              combined_data: @difficulty_levels_distribution_confirmed
          .col-md-4
            = render 'donut_chart', title: 'Tracks',
              combined_data: @tracks_distribution_confirmed
      .tab-pane#distribution_withdrawn
        .row
          .col-md-4
            = render 'donut_chart', title: 'Event types',
              combined_data: @event_type_distribution_withdrawn
          .col-md-4
            = render 'donut_chart', title: 'Difficulty levels',
              combined_data: @difficulty_levels_distribution_withdrawn
          .col-md-4
            = render 'donut_chart', title: 'Tracks',
              combined_data: @tracks_distribution_withdrawn

.row
  .col-md-8
    %ul.nav.nav-tabs#recentTable
      %li{ 'class' => "active #{hidden_if_conference_over(@conference)}" }
        %a{ href: '#recent_reg', 'data-toggle' => 'tab' }
          %span.fa-solid.fa-user
          Recent Registrations
      %li{ 'class' => "#{hidden_if_conference_over(@conference)}" }
        %a{ href: '#recent_submissions', 'data-toggle' => 'tab' }
          %span.fa-solid.fa-file-lines
          Recent Submissions
    .tab-content
      .tab-pane.active#recent_reg
        = render partial: 'recent_registrations', locals: {recent_registrations: @recent_registrations}
      .tab-pane#recent_submissions
        = render partial: 'recent_submissions', locals: {recent_events: @recent_events}
  .col-md-4
    = render partial: 'top_submitter', locals: {top_submitter: @top_submitter}

:javascript
  $('#recentTable a').click(function (e) {
    e.preventDefault();
    $(this).tab('show');
  })