From 4bd961f703ee815cb5da910d63b5ef6917bb7bd9 Mon Sep 17 00:00:00 2001 From: James Mason Date: Fri, 23 Feb 2018 00:00:25 -0800 Subject: [PATCH] Move events index datatable row to a partial - clean up columns - tag unregistered submitters & speakers - implement caching --- app/views/admin/events/_datatable_row.haml | 62 ++++++++++++++++++++++ app/views/admin/events/index.html.haml | 61 ++++----------------- 2 files changed, 73 insertions(+), 50 deletions(-) create mode 100644 app/views/admin/events/_datatable_row.haml diff --git a/app/views/admin/events/_datatable_row.haml b/app/views/admin/events/_datatable_row.haml new file mode 100644 index 00000000..17cf7560 --- /dev/null +++ b/app/views/admin/events/_datatable_row.haml @@ -0,0 +1,62 @@ +- cache ['admin/events/index', conference_id, event, event.submitter, event.speakers, event_types, tracks, difficulty_levels] do + %tr{id: "event-#{event.id}"} + %td + = event.id + + %td + = link_to event.title, + admin_conference_program_event_path(conference_id, event) + + - if rating_enabled + %td.col-md-1{ data: { order: event.average_rating } } + = render 'datatable_row_rating', + event: event, + show_votes: show_votes, + max_rating: max_rating + + - if event.submitter + %td + = link_to event.submitter.name, admin_user_path(event.submitter) + - unless event.submitter.registrations.for_conference(event.conference) + %span.label.label-warning Unregistered + - else + %td.bg-danger + Unknown submitter + + %td + - event.speakers_ordered.each do |speaker| + .speaker + = link_to speaker.name, admin_user_path(speaker) + - unless speaker.registrations.for_conference(event.conference) + %span.label.label-danger Unregistered + + - if @program.languages.present? + %td + = event.language + + %td.text-center{ data: { order: event.require_registration.to_s } } + = event_switch_checkbox(event, :require_registration, conference_id) + - if event.require_registration + = link_to registered_text(event), + registrations_admin_conference_program_event_path(conference_id, event), + class: 'btn btn-xs btn-default' + + %td.text-center{ data: { order: event.is_highlight.to_s } } + = event_switch_checkbox(event, :is_highlight, conference_id) + + %td + = event_type_dropdown(event, event_types, conference_id) + + %td + = track_dropdown(event, tracks, conference_id) + + %td + = difficulty_dropdown(event, difficulty_levels, conference_id) + + %td + = state_dropdown(event, conference_id, email_settings) + + %td.text-center + = link_to "#{event.comments_count}", + admin_conference_program_event_path(conference_id, event), + anchor: 'comments-div' diff --git a/app/views/admin/events/index.html.haml b/app/views/admin/events/index.html.haml index 7867d0b4..3088539c 100644 --- a/app/views/admin/events/index.html.haml +++ b/app/views/admin/events/index.html.haml @@ -90,53 +90,14 @@ %th .fa.fa-comment - @events.each do |event| - %tr - %td - = event.id - %td - = link_to event.title, admin_conference_program_event_path(@conference.short_title, event) - - - if @program.rating_enabled? - %td.col-md-1{ data: { order: event.average_rating } } - = render 'datatable_row_rating', - event: event, - show_votes: @program.show_voting?, - max_rating: @program.rating - - - if event.submitter && event.submitter.registrations && event.submitter.registrations.count < 1 - - bgcolor = '#F7819F' - - else - - bgcolor = '' - %td{ style: "background-color: #{bgcolor}" } - - unless event.submitter.nil? - = link_to event.submitter.name, admin_user_path(event.submitter) - - if event.submitter.registrations.count < 1 - (Unregistered!) - - else - Unknown submitter - %td - - event.speakers_ordered.each do |speaker| - .speaker - = link_to speaker.name, admin_user_path(speaker) - - - if @program.languages.present? - %td - = event.language - - %td.text-center{ 'data-order' => "#{event.require_registration}" } - = event_switch_checkbox(event, :require_registration, @conference.short_title) - - if event.require_registration - = link_to registered_text(event), registrations_admin_conference_program_event_path(@conference.short_title, event), class: 'btn btn-xs btn-default' - - %td.text-center{ 'data-order' => "#{event.is_highlight}" } - = event_switch_checkbox(event, :is_highlight, @conference.short_title) - %td - = event_type_dropdown(event, @event_types, @conference.short_title) - %td - = track_dropdown(event, @tracks, @conference.short_title) - %td - = difficulty_dropdown(event, @difficulty_levels, @conference.short_title) - %td - = state_dropdown(event, @conference.short_title, @conference.email_settings) - %td.text-center - = link_to "#{event.comments_count}", admin_conference_program_event_path(@conference.short_title, event), anchor: 'comments-div' + = render 'datatable_row', + event: event, + conference_id: @conference.short_title, + program: @program, + rating_enabled: @program.rating_enabled?, + show_votes: @program.show_voting?, + max_rating: @program.rating, + event_types: @event_types, + tracks: @tracks, + difficulty_levels: @difficulty_levels, + email_settings: @conference.email_settings