From 4d648534f7287c6f6050ebbc872d8b5b37c2ae12 Mon Sep 17 00:00:00 2001 From: farhatahmad <35435341+farhatahmad@users.noreply.github.com> Date: Wed, 10 Apr 2019 16:32:28 -0400 Subject: [PATCH] Fixed #398 Fixed issue with recording length and sort (GRN-83) (#426) * Fixed issue with recording length and sort * Made js run on any page with a table element on it * Scrutinizer fix --- app/assets/javascripts/rename.js | 20 ++++--------------- app/assets/javascripts/sort.js | 20 ++++++++++++------- app/helpers/recordings_helper.rb | 6 +++++- .../components/_public_recording_row.html.erb | 4 ++-- .../shared/components/_recording_row.html.erb | 2 +- 5 files changed, 25 insertions(+), 27 deletions(-) diff --git a/app/assets/javascripts/rename.js b/app/assets/javascripts/rename.js index 3cf80d64..02e6eb0d 100644 --- a/app/assets/javascripts/rename.js +++ b/app/assets/javascripts/rename.js @@ -121,7 +121,7 @@ $(document).on('turbolinks:load', function(){ submit_update_request({ setting: "rename_header", room_name: element.find('#user-text').text(), - }); + }, element.data('path')); } else if(element.is('#recording-title')){ submit_update_request({ @@ -129,27 +129,15 @@ $(document).on('turbolinks:load', function(){ record_id: element.data('recordid'), record_name: element.find('text').text(), room_uid: element.data('room-uid'), - }); + }, element.data('path')); } } // Helper for submitting ajax requests - var submit_update_request = function(data){ - var update_path = window.location.pathname - - if ('room_uid' in data) { - update_path = $("body").data('relative-root') - - if (!update_path.endsWith("/")) { - update_path += "/" - } - - update_path += data.room_uid - } - + var submit_update_request = function(data, path){ // Send ajax request for update $.ajax({ - url: update_path, + url: path, type: "PATCH", data: data, }); diff --git a/app/assets/javascripts/sort.js b/app/assets/javascripts/sort.js index 175138e2..35ed9d1d 100644 --- a/app/assets/javascripts/sort.js +++ b/app/assets/javascripts/sort.js @@ -15,16 +15,14 @@ // with BigBlueButton; if not, see . $(document).on('turbolinks:load', function(){ - var controller = $("body").data('controller'); - var action = $("body").data('action'); - - if(controller == "rooms" && action == "show" || controller == "rooms" && action == "update"){ + // Check if there is a table on this page + if ($("table").length) { // Choose active header // (Name, Length or Users) $('th').each(function(){ if($(this).data("header")){ - $(this).on('click', function(){ + $(this).on('click', function(){ set_active_header($(this).data("header")); sort_by($(this).data("header"), $(this).data('order')); }); @@ -80,8 +78,14 @@ $(document).on('turbolinks:load', function(){ // Generalized function for sorting recordings var sort_recordings = function(recording_list_tbody, order, recording_id){ recording_list_tbody.find('tr').sort(function(a, b){ - var a_val = $.trim($(a).find(recording_id).text()); - var b_val = $.trim($(b).find(recording_id).text()); + var a_val, b_val; + if (recording_id == "#recording-length") { + a_val = $.trim($(a).find(recording_id).data("full-length")); + b_val = $.trim($(b).find(recording_id).data("full-length")); + } else { + a_val = $.trim($(a).find(recording_id).text()); + b_val = $.trim($(b).find(recording_id).text()); + } if(order === "asc"){ return a_val.localeCompare(b_val); @@ -89,6 +93,8 @@ $(document).on('turbolinks:load', function(){ else if(order === "desc"){ return b_val.localeCompare(a_val); } + + }).appendTo(recording_list_tbody); } } diff --git a/app/helpers/recordings_helper.rb b/app/helpers/recordings_helper.rb index 1ae463e1..51fee958 100644 --- a/app/helpers/recordings_helper.rb +++ b/app/helpers/recordings_helper.rb @@ -30,7 +30,7 @@ module RecordingsHelper len = valid_playbacks.first[:length] if len > 60 - "#{(len / 60).round} hrs" + "#{(len / 60).to_i} hrs #{len % 60} mins" elsif len == 0 "< 1 min" else @@ -42,4 +42,8 @@ module RecordingsHelper def safe_recording_images(images) Array.wrap(images) end + + def room_uid_from_bbb(bbb_id) + Room.find_by(bbb_id: bbb_id)[:uid] + end end diff --git a/app/views/shared/components/_public_recording_row.html.erb b/app/views/shared/components/_public_recording_row.html.erb index 3d13ad68..c48c3ed8 100644 --- a/app/views/shared/components/_public_recording_row.html.erb +++ b/app/views/shared/components/_public_recording_row.html.erb @@ -15,7 +15,7 @@ -
+
<% if recording[:metadata][:name] %> <%= recording[:metadata][:name] %> @@ -38,7 +38,7 @@ <% end %> <% end %> - +
<%= t("recording.table.length") %>
diff --git a/app/views/shared/components/_recording_row.html.erb b/app/views/shared/components/_recording_row.html.erb index 7d1ab090..52f47279 100644 --- a/app/views/shared/components/_recording_row.html.erb +++ b/app/views/shared/components/_recording_row.html.erb @@ -15,7 +15,7 @@ -
+
<% if recording[:metadata][:name] %> <%= recording[:metadata][:name] %>