From da80fb55c7671a3da194ce911676cc18f5f7fc07 Mon Sep 17 00:00:00 2001 From: Ahmad Farhat Date: Fri, 1 Nov 2019 14:37:38 -0400 Subject: [PATCH] Errors with recordings no longer cause the page to 500 (#849) --- .../admins/components/_recordings.html.erb | 14 ++++++++++++- app/views/shared/_sessions.html.erb | 20 +++++++++++++++---- config/locales/en.yml | 1 + 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/views/admins/components/_recordings.html.erb b/app/views/admins/components/_recordings.html.erb index 2ffa9ee958..76e8ed1787 100644 --- a/app/views/admins/components/_recordings.html.erb +++ b/app/views/admins/components/_recordings.html.erb @@ -75,8 +75,20 @@ <% else %> + <% failed_recordings = 0 %> <% @recordings.each do |recording| %> - <%= render "admins/components/server_recording_row", recording: recording %> + <% begin %> + <%= render "admins/components/server_recording_row", recording: recording %> + <% rescue => e %> + <% logger.error "Error retrieving recording #{recording[:meetingID]}: #{e} -> #{e.backtrace[0]}" %> + <% failed_recordings += 1 %> + <% end %> + <% end %> + + <% if failed_recordings > 0 %> +
+ <%= t("recording.error", count: failed_recordings) %> +
<% end %> <% end %> diff --git a/app/views/shared/_sessions.html.erb b/app/views/shared/_sessions.html.erb index 2b6932c5ea..372aece924 100644 --- a/app/views/shared/_sessions.html.erb +++ b/app/views/shared/_sessions.html.erb @@ -91,13 +91,25 @@ <% else %> + <% failed_recordings = 0 %> <% recordings.each do |recording| %> - <% if only_public %> - <%= render "shared/components/public_recording_row", recording: recording %> - <% else %> - <%= render "shared/components/recording_row", recording: recording %> + <% begin %> + <% if only_public %> + <%= render "shared/components/public_recording_row", recording: recording %> + <% else %> + <%= render "shared/components/recording_row", recording: recording %> + <% end %> + <% rescue => e %> + <% logger.error "Error retrieving recording #{recording[:meetingID]}: #{e} -> #{e.backtrace[0]}" %> + <% failed_recordings += 1 %> <% end %> <% end %> + + <% if failed_recordings > 0 %> +
+ <%= t("recording.error", count: failed_recordings) %> +
+ <% end %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index c13114dfc7..2fef1df010 100755 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -365,6 +365,7 @@ en: recording: all_recordings: All Recordings email: Email Recording + error: There was an error retrieving %{count} recording(s) no_recordings: This room has no %{inject}recordings. no_user_recordings: You currently have no recordings. no_matched_recordings: No %{inject} recordings match your search.