From 76a1d01a66d22fcacd03aff1a4085bb340790eea Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 7 Jan 2014 22:05:36 -0500 Subject: [PATCH 01/19] reformatting --- web/app/assets/javascripts/findMusician.js | 230 +++++++++++---------- web/app/assets/javascripts/profile.js | 6 - 2 files changed, 117 insertions(+), 119 deletions(-) diff --git a/web/app/assets/javascripts/findMusician.js b/web/app/assets/javascripts/findMusician.js index 16742bafe..cdd36acb0 100644 --- a/web/app/assets/javascripts/findMusician.js +++ b/web/app/assets/javascripts/findMusician.js @@ -1,15 +1,15 @@ (function(context,$) { - "use strict"; + "use strict"; - context.JK = context.JK || {}; - context.JK.FindMusicianScreen = function(app) { + context.JK = context.JK || {}; + context.JK.FindMusicianScreen = function(app) { var logger = context.JK.logger; var musicians = {}; var musicianList; var instrument_logo_map = context.JK.getInstrumentIconMap24(); - var did_show_musician_page = false; - var page_num=1, page_count=0; + var did_show_musician_page = false; + var page_num=1, page_count=0; function loadMusicians(queryString) { // squelch nulls and undefines @@ -24,157 +24,165 @@ } function search() { - did_show_musician_page = true; + did_show_musician_page = true; var queryString = 'srch_m=1&page='+page_num+'&'; // order by - var orderby = $('#musician_order_by').val(); + var orderby = $('#musician_order_by').val(); if (typeof orderby != 'undefined' && orderby.length > 0) { queryString += "orderby=" + orderby + '&'; } + // instrument filter - var instrument = $('#musician_instrument').val(); + var instrument = $('#musician_instrument').val(); if (typeof instrument != 'undefined' && !(instrument === '')) { queryString += "instrument=" + instrument + '&'; } + // distance filter var query_param = $('#musician_query_distance').val(); if (query_param !== null && query_param.length > 0) { - var matches = query_param.match(/(\d+)/); - if (0 < matches.length) { - var distance = matches[0]; - queryString += "distance=" + distance + '&'; - } + var matches = query_param.match(/(\d+)/); + if (0 < matches.length) { + var distance = matches[0]; + queryString += "distance=" + distance + '&'; + } } loadMusicians(queryString); } function refreshDisplay() { - clearResults(); - search(); + clearResults(); + search(); } function afterLoadMusicians(mList) { // display the 'no musicians' banner if appropriate var $noMusiciansFound = $('#musicians-none-found'); - musicianList = mList; + musicianList = mList; if(musicianList.length == 0) { $noMusiciansFound.show(); - musicians = []; - } else { + musicians = []; + } + else { $noMusiciansFound.hide(); - musicians = musicianList['musicians']; - if (!(typeof musicians === 'undefined')) { - $('#musician-filter-city').text(musicianList['city']); - if (0 == page_count) { - page_count = musicianList['page_count']; - } - renderMusicians(); - } + musicians = musicianList['musicians']; + if (!(typeof musicians === 'undefined')) { + $('#musician-filter-city').text(musicianList['city']); + if (0 == page_count) { + page_count = musicianList['page_count']; + } + renderMusicians(); + } } } - /** - * Render a list of musicians - */ function renderMusicians() { var ii, len; - var mTemplate = $('#template-find-musician-row').html(); - var fTemplate = $('#template-musician-follow-info').html(); - var aTemplate = $('#template-musician-action-btns').html(); - var mVals, mm, renderings=''; - var instr_logos, instr; - var follows, followVals, aFollow; - - for (ii=0, len=musicians.length; ii < len; ii++) { - mm = musicians[ii]; - instr_logos = ''; - for (var jj=0, ilen=mm['instruments'].length; jj '; - } - follows = ''; - followVals = {}; - for (var jj=0, ilen=mm['followings'].length; jj= $(this)[0].scrollHeight) { - if (page_num < page_count) { - page_num += 1; - search(); - } + if (page_num < page_count) { + page_num += 1; + search(); + } } }); } - /** - * Initialize, - */ function initialize() { var screenBindings = { 'beforeShow': beforeShow, @@ -231,5 +236,4 @@ return this; }; - })(window,jQuery); diff --git a/web/app/assets/javascripts/profile.js b/web/app/assets/javascripts/profile.js index e0d281fe6..00273a333 100644 --- a/web/app/assets/javascripts/profile.js +++ b/web/app/assets/javascripts/profile.js @@ -375,12 +375,6 @@ $('.profile-nav a.active').removeClass('active'); $('.profile-nav a.#profile-social-link').addClass('active'); - /*if (isMusician()) { - $('.profile-social-left').show(); - } else { - $('.profile-social-left').hide(); - }*/ - bindSocial(); } From 89fd0c29956296bbc065d48af9973f93b6da20d9 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 8 Jan 2014 03:28:15 +0000 Subject: [PATCH 02/19] * VRFS-971- fixed duplicate recorded_tracks being sent as a result of list_downloads; query much more efficient too --- ruby/lib/jam_ruby/models/recorded_track.rb | 10 +-- ruby/lib/jam_ruby/models/recording.rb | 70 ++++++++----------- ruby/spec/jam_ruby/models/mix_spec.rb | 3 +- .../jam_ruby/models/recorded_track_spec.rb | 2 +- ruby/spec/jam_ruby/models/recording_spec.rb | 1 + 5 files changed, 40 insertions(+), 46 deletions(-) diff --git a/ruby/lib/jam_ruby/models/recorded_track.rb b/ruby/lib/jam_ruby/models/recorded_track.rb index f56bbd335..53302a141 100644 --- a/ruby/lib/jam_ruby/models/recorded_track.rb +++ b/ruby/lib/jam_ruby/models/recorded_track.rb @@ -86,7 +86,7 @@ module JamRuby recorded_track.next_part_to_upload = 0 recorded_track.file_offset = 0 recorded_track.save - recorded_track.url = construct_filename(recording.id, track.id) + recorded_track.url = construct_filename(recording.id, track.client_track_id) recorded_track.save recorded_track end @@ -160,12 +160,12 @@ module JamRuby def filename # construct a path for s3 - RecordedTrack.construct_filename(self.recording.id, self.track_id) + RecordedTrack.construct_filename(self.recording.id, self.client_track_id) end - def self.construct_filename(recording_id, track_id) - raise "unknown ID" unless track_id - "recordings/#{recording_id}/track-#{track_id}.ogg" + def self.construct_filename(recording_id, client_track_id) + raise "unknown ID" unless client_track_id + "recordings/#{recording_id}/track-#{client_track_id}.ogg" end end end diff --git a/ruby/lib/jam_ruby/models/recording.rb b/ruby/lib/jam_ruby/models/recording.rb index ac1fa2f29..f96d4e23d 100644 --- a/ruby/lib/jam_ruby/models/recording.rb +++ b/ruby/lib/jam_ruby/models/recording.rb @@ -163,53 +163,45 @@ module JamRuby # ":recordings =>" part, you'll just get the recorded_tracks that I played. Very different! # we also only allow you to be told about downloads if you have claimed the recording - User.joins(:recordings).joins(:recordings => :recorded_tracks).joins(:recordings => :claimed_recordings) - .order(%Q{ recorded_tracks.id }) - .where(%Q{ recorded_tracks.fully_uploaded = TRUE }) + #User.joins(:recordings).joins(:recordings => :recorded_tracks).joins(:recordings => :claimed_recordings) + RecordedTrack.joins(:recording).joins(:recording => :claimed_recordings) + .order('recorded_tracks.id') + .where('recorded_tracks.fully_uploaded = TRUE') .where('recorded_tracks.id > ?', since) - .where('claimed_recordings.user_id = ?', user) - .where(:id => user.id).limit(limit).each do |theuser| - theuser.recordings.each do |recording| - recording.recorded_tracks.each do |recorded_track| - downloads.push( - { - :type => "recorded_track", - :id => recorded_track.client_track_id, - :recording_id => recording.id, - :length => recorded_track.length, - :md5 => recorded_track.md5, - :url => recorded_track.url, - :next => recorded_track.id - } - ) - end - end + .where('claimed_recordings.user_id = ?', user).limit(limit).each do |recorded_track| + downloads.push( + { + :type => "recorded_track", + :id => recorded_track.client_track_id, + :recording_id => recorded_track.recording_id, + :length => recorded_track.length, + :md5 => recorded_track.md5, + :url => recorded_track.url, + :next => recorded_track.id + } + ) end latest_recorded_track = downloads[-1][:next] if downloads.length > 0 - User.joins(:recordings).joins(:recordings => :mixes) + Mix.joins(:recording).joins(:recording => :claimed_recordings) .order('mixes.id') .where('mixes.completed_at IS NOT NULL') .where('mixes.id > ?', since) - .where(:id => user.id) - .limit(limit).each do |theuser| - theuser.recordings.each do |recording| - recording.mixes.each do |mix| - downloads.push( - { - :type => "mix", - :id => mix.id, - :recording_id => recording.id, - :length => mix.length, - :md5 => mix.md5, - :url => mix.url, - :created_at => mix.created_at, - :next => mix.id - } - ) - end - end + .where('claimed_recordings.user_id = ?', user) + .limit(limit).each do |mix| + downloads.push( + { + :type => "mix", + :id => mix.id, + :recording_id => mix.recording_id, + :length => mix.length, + :md5 => mix.md5, + :url => mix.url, + :created_at => mix.created_at, + :next => mix.id + } + ) end latest_mix = downloads[-1][:next] if downloads.length > 0 diff --git a/ruby/spec/jam_ruby/models/mix_spec.rb b/ruby/spec/jam_ruby/models/mix_spec.rb index 3c902b492..2053bf1c8 100755 --- a/ruby/spec/jam_ruby/models/mix_spec.rb +++ b/ruby/spec/jam_ruby/models/mix_spec.rb @@ -11,7 +11,8 @@ describe Mix do @music_session.save @recording = Recording.start(@music_session, @user) @recording.stop - @recording.claim(@user, "name", "description", Genre.first, true, true) + @recording.claim(@user, "name", "description", Genre.first, true, true) + @recording.errors.any?.should be_false @mix = Mix.schedule(@recording, "{}") end diff --git a/ruby/spec/jam_ruby/models/recorded_track_spec.rb b/ruby/spec/jam_ruby/models/recorded_track_spec.rb index e77ae5e92..ed2b74701 100644 --- a/ruby/spec/jam_ruby/models/recorded_track_spec.rb +++ b/ruby/spec/jam_ruby/models/recorded_track_spec.rb @@ -42,7 +42,7 @@ describe RecordedTrack do it "gets a url for the track" do @recorded_track = RecordedTrack.create_from_track(@track, @recording) @recorded_track.save.should be_true - @recorded_track.url.should == "recordings/#{@recording.id}/track-#{@track.id}.ogg" + @recorded_track.url.should == "recordings/#{@recording.id}/track-#{@track.client_track_id}.ogg" end it "signs url" do diff --git a/ruby/spec/jam_ruby/models/recording_spec.rb b/ruby/spec/jam_ruby/models/recording_spec.rb index 6cbb0147c..7f34bb2c3 100644 --- a/ruby/spec/jam_ruby/models/recording_spec.rb +++ b/ruby/spec/jam_ruby/models/recording_spec.rb @@ -230,6 +230,7 @@ describe Recording do downloads["downloads"].length.should == 1 end + it "should return a file list for a user properly" do pending stub_const("APP_CONFIG", app_config) From 010f41fed0a8590554014a6c2bdcd8d3493b594c Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 8 Jan 2014 03:58:08 +0000 Subject: [PATCH 03/19] * marking other icecast test as failing --- ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb b/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb index d5cd83588..87e32f27f 100644 --- a/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb +++ b/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb @@ -9,6 +9,7 @@ describe IcecastAdminAuthentication do end it "save" do + pending admin.save.should be_true end From bffe453a6a79cb05deea44be40584f68f3abcaa8 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 8 Jan 2014 04:27:56 +0000 Subject: [PATCH 04/19] * marking sign url test as pending until credentials are provided, and bringing back icecast test --- ruby/spec/jam_ruby/lib/s3_util_spec.rb | 1 + ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/spec/jam_ruby/lib/s3_util_spec.rb b/ruby/spec/jam_ruby/lib/s3_util_spec.rb index d0dbb07d9..a991f5334 100644 --- a/ruby/spec/jam_ruby/lib/s3_util_spec.rb +++ b/ruby/spec/jam_ruby/lib/s3_util_spec.rb @@ -5,6 +5,7 @@ describe S3Util do describe "sign_url" do pending it "returns something" do + pending "until it uses jamkazam-test credentials" S3Util.sign_url("jamkazam-dev", "avatar-tmp/user/image.png").should_not be_nil end end diff --git a/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb b/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb index 87e32f27f..d5cd83588 100644 --- a/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb +++ b/ruby/spec/jam_ruby/models/icecast_admin_authentication_spec.rb @@ -9,7 +9,6 @@ describe IcecastAdminAuthentication do end it "save" do - pending admin.save.should be_true end From 6f66f4219c519193ef48501b284cd0d1a7600424 Mon Sep 17 00:00:00 2001 From: Daniel Weigh Date: Wed, 8 Jan 2014 05:07:56 -0500 Subject: [PATCH 05/19] VRFS-929 Double Scroll Bars. --- .../stylesheets/client/content.css.scss | 49 ++++++++ web/app/views/clients/_profile.html.erb | 105 +++++++++++------- 2 files changed, 114 insertions(+), 40 deletions(-) diff --git a/web/app/assets/stylesheets/client/content.css.scss b/web/app/assets/stylesheets/client/content.css.scss index 38794f276..88550ab29 100644 --- a/web/app/assets/stylesheets/client/content.css.scss +++ b/web/app/assets/stylesheets/client/content.css.scss @@ -99,6 +99,55 @@ box-sizing: border-box; padding-top: 49px; } + + .profile-head { + position: absolute; + box-sizing: border-box; + width:100%; + } + .profile-body { + height:100%; + width:100%; + box-sizing: border-box; + padding-top: 157px; + > * { + box-sizing:border-box; + } + } + .profile-body-content { + height: inherit; + overflow:auto; + &.outer { + overflow:hidden; + } + &.padded { + padding:10px 25px; + } + } + + .profile-social-head { + position: absolute; + width:100%; + padding:0 25px; + line-height:25px; + box-sizing:border-box; + + +.profile-wrapper { + padding-top: 0; + } + } + .profile-social-body { + height:100%; + width:100%; + box-sizing:border-box; + padding-top:25px; + .profile-social-body-wrapper { + height:inherit; + } + .profile-social-content { + padding:0 25px; + } + } } .result-list-button-wrapper { diff --git a/web/app/views/clients/_profile.html.erb b/web/app/views/clients/_profile.html.erb index 1b1ae6e66..029292e0c 100644 --- a/web/app/views/clients/_profile.html.erb +++ b/web/app/views/clients/_profile.html.erb @@ -10,9 +10,8 @@ <%= render "screen_navigation" %>
-
-
-
+ +

@@ -45,57 +44,83 @@
-
-
+ +
+
-
-

Location:


-


-

Stats:


-
-
-
-
-
-
-
-
-


-
+
+
+

Location:


+


+

Stats:


+
+
+
+
+
+
+
+


+
+
+
-
+
+
+
+
+

-
-
-
-
-
-

Friends

-
+
+
+
+

Friends

+
+
+

Following

+
+
+

Followers

+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
-
-

Following

-
+
+
+
+
-
-

Followers

-
-
-
-
-
-
-
+
-
From a97472503df24382af3d9e8503b619a0035bbabb Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 8 Jan 2014 10:22:33 +0000 Subject: [PATCH 06/19] * adding some prints to debug failing tests --- web/spec/features/recordings_spec.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/web/spec/features/recordings_spec.rb b/web/spec/features/recordings_spec.rb index c28ef056a..4e25a48b1 100644 --- a/web/spec/features/recordings_spec.rb +++ b/web/spec/features/recordings_spec.rb @@ -160,7 +160,8 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature claim_recording(name, desc) music_session = MusicSession.first() recording = music_session.recordings.first() - claimed_recording = ClaimedRecording.find_by_user_id(user.id) + puts recording.claimed_recordings.inspect + claimed_recording = recording.claimed_recordings.where(:user_id => user.id).first claimed_recording.name.should == name claimed_recording.description.should == desc claimed_recording.is_public.should be_true @@ -189,7 +190,8 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature claim_recording("my recording", '') music_session = MusicSession.first() recording = music_session.recordings.first() - claimed_recording = ClaimedRecording.find_by_user_id(user.id) + puts recording.claimed_recordings.inspect + claimed_recording = recording.claimed_recordings.where(:user_id => user.id).first claimed_recording.name.should == "my recording" claimed_recording.description.should == '' claimed_recording.is_public.should be_true From ee5eccfdc3580c187c50f9d4a3f2a8070db60327 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 8 Jan 2014 05:10:40 -0600 Subject: [PATCH 07/19] VRFS-923 'jamkazam-testing' s3 bucket is emptied after tests --- ruby/spec/support/utilities.rb | 4 +--- web/spec/support/utilities.rb | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/ruby/spec/support/utilities.rb b/ruby/spec/support/utilities.rb index 9a22c1b8d..5876e3583 100644 --- a/ruby/spec/support/utilities.rb +++ b/ruby/spec/support/utilities.rb @@ -23,9 +23,7 @@ def wipe_s3_test_bucket s3 = AWS::S3.new(:access_key_id => test_config.aws_access_key_id, :secret_access_key => test_config.aws_secret_access_key) test_bucket = s3.buckets[JAMKAZAM_TESTING_BUCKET] - if test_bucket.name == JAMKAZAM_TESTING_BUCKET - puts "Ruby - Pretending to delete all contents of #{test_bucket.name}" - #test_bucket.delete_all + test_bucket.delete_all end end \ No newline at end of file diff --git a/web/spec/support/utilities.rb b/web/spec/support/utilities.rb index a4578efa4..661bfe292 100644 --- a/web/spec/support/utilities.rb +++ b/web/spec/support/utilities.rb @@ -37,8 +37,7 @@ def wipe_s3_test_bucket :secret_access_key => Rails.application.config.aws_secret_access_key) test_bucket = s3.buckets[JAMKAZAM_TESTING_BUCKET] if test_bucket.name == JAMKAZAM_TESTING_BUCKET - puts "Web - Pretending to delete all contents of #{test_bucket.name}" - #test_bucket.delete_all + test_bucket.delete_all end end From f63135131507f08603dba89ed5d0aae5269265fe Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 8 Jan 2014 05:11:05 -0600 Subject: [PATCH 08/19] minor refactor in recordings spec --- web/spec/features/recordings_spec.rb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/web/spec/features/recordings_spec.rb b/web/spec/features/recordings_spec.rb index 4e25a48b1..ab6e20888 100644 --- a/web/spec/features/recordings_spec.rb +++ b/web/spec/features/recordings_spec.rb @@ -12,6 +12,7 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature let(:creator) { FactoryGirl.create(:user) } let(:joiner1) { FactoryGirl.create(:user) } + let(:joiner2) { FactoryGirl.create(:user) } let(:some_genre) { random_genre } before(:each) do @@ -21,18 +22,14 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature # creates a recording, and stops it, and confirms the 'Finished Recording' dialog shows for both it "creator start/stop" do start_recording_with(creator, [joiner1]) - in_client(creator) { stop_recording } - check_recording_finished_for([creator, joiner1]) end # confirms that anyone can start/stop a recording it "creator starts and other stops" do start_recording_with(creator, [joiner1]) - in_client(joiner1) { stop_recording } - check_recording_finished_for([creator, joiner1]) end @@ -64,8 +61,6 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature end it "creator starts/stops, with 3 total participants" do - joiner2 = FactoryGirl.create(:user) - start_recording_with(creator, [joiner1, joiner2]) in_client(creator) do @@ -76,7 +71,6 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature end it "creator starts with session leave to stop, with 3 total participants" do - joiner2 = FactoryGirl.create(:user) start_recording_with(creator, [joiner1, joiner2]) in_client(creator) do @@ -90,7 +84,6 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature # confirms that if someone leaves 'ugly' (without calling 'Leave' REST API), that the recording is junked with 3 participants it "creator starts and then abruptly leave with 3 participants" do - joiner2 = FactoryGirl.create(:user) start_recording_with(creator, [joiner1, joiner2]) in_client(creator) do From a973a370a3b9fa08f5352c116cf739bab7ea098c Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 8 Jan 2014 11:30:54 +0000 Subject: [PATCH 09/19] * removing print because tests passed on build server --- web/spec/features/recordings_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/spec/features/recordings_spec.rb b/web/spec/features/recordings_spec.rb index 4e25a48b1..3a561f74a 100644 --- a/web/spec/features/recordings_spec.rb +++ b/web/spec/features/recordings_spec.rb @@ -160,7 +160,7 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature claim_recording(name, desc) music_session = MusicSession.first() recording = music_session.recordings.first() - puts recording.claimed_recordings.inspect + #puts recording.claimed_recordings.inspect claimed_recording = recording.claimed_recordings.where(:user_id => user.id).first claimed_recording.name.should == name claimed_recording.description.should == desc @@ -190,7 +190,7 @@ describe "Session Recordings", :js => true, :type => :feature, :capybara_feature claim_recording("my recording", '') music_session = MusicSession.first() recording = music_session.recordings.first() - puts recording.claimed_recordings.inspect + #puts recording.claimed_recordings.inspect claimed_recording = recording.claimed_recordings.where(:user_id => user.id).first claimed_recording.name.should == "my recording" claimed_recording.description.should == '' From 273495698a7af4e2468a7584933ffb3b0b254393 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 8 Jan 2014 05:51:55 -0600 Subject: [PATCH 10/19] VRFS-923 wrong sdk/method --- ruby/spec/support/utilities.rb | 2 +- web/spec/support/utilities.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/spec/support/utilities.rb b/ruby/spec/support/utilities.rb index 5876e3583..778cc3dab 100644 --- a/ruby/spec/support/utilities.rb +++ b/ruby/spec/support/utilities.rb @@ -24,6 +24,6 @@ def wipe_s3_test_bucket :secret_access_key => test_config.aws_secret_access_key) test_bucket = s3.buckets[JAMKAZAM_TESTING_BUCKET] if test_bucket.name == JAMKAZAM_TESTING_BUCKET - test_bucket.delete_all + test_bucket.clear! end end \ No newline at end of file diff --git a/web/spec/support/utilities.rb b/web/spec/support/utilities.rb index 661bfe292..cbfe10d3d 100644 --- a/web/spec/support/utilities.rb +++ b/web/spec/support/utilities.rb @@ -37,7 +37,7 @@ def wipe_s3_test_bucket :secret_access_key => Rails.application.config.aws_secret_access_key) test_bucket = s3.buckets[JAMKAZAM_TESTING_BUCKET] if test_bucket.name == JAMKAZAM_TESTING_BUCKET - test_bucket.delete_all + test_bucket.clear! end end From fedea2cdc34a012bb32f590be3bf0d2a8674ee87 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 8 Jan 2014 07:04:23 -0600 Subject: [PATCH 11/19] VRFS-923 --- ruby/spec/support/utilities.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ruby/spec/support/utilities.rb b/ruby/spec/support/utilities.rb index 778cc3dab..29d558fe5 100644 --- a/ruby/spec/support/utilities.rb +++ b/ruby/spec/support/utilities.rb @@ -24,6 +24,10 @@ def wipe_s3_test_bucket :secret_access_key => test_config.aws_secret_access_key) test_bucket = s3.buckets[JAMKAZAM_TESTING_BUCKET] if test_bucket.name == JAMKAZAM_TESTING_BUCKET - test_bucket.clear! + puts "test_bucket name = #{test_bucket.name}" + test_bucket.acl.grants each do |grant| + puts "test_bucket ACL grant: #{grant.to_s}" + end + #test_bucket.clear! end end \ No newline at end of file From a400c0f2893ea7e335b1739fd7c849672e2d25c0 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 8 Jan 2014 18:04:11 +0000 Subject: [PATCH 12/19] * VRFS-971 adding progress at bottom of fotor --- ruby/lib/jam_ruby/lib/s3_manager.rb | 4 +- ruby/spec/jam_ruby/lib/s3_util_spec.rb | 14 -- web/app/assets/javascripts/fakeJamClient.js | 5 + .../assets/javascripts/playbackControls.js | 2 +- .../assets/javascripts/recordingManager.js | 123 ++++++++++++++++++ web/app/assets/javascripts/session.js | 2 +- web/app/assets/stylesheets/client/client.css | 1 + .../stylesheets/client/clientUpdate.css.scss | 61 ++++----- .../client/recordingManager.css.scss | 42 ++++++ web/app/views/clients/_footer.html.erb | 3 +- .../views/clients/_recordingManager.html.erb | 11 ++ web/app/views/clients/index.html.erb | 2 + 12 files changed, 221 insertions(+), 49 deletions(-) delete mode 100644 ruby/spec/jam_ruby/lib/s3_util_spec.rb create mode 100644 web/app/assets/javascripts/recordingManager.js create mode 100644 web/app/assets/stylesheets/client/recordingManager.css.scss create mode 100644 web/app/views/clients/_recordingManager.html.erb diff --git a/ruby/lib/jam_ruby/lib/s3_manager.rb b/ruby/lib/jam_ruby/lib/s3_manager.rb index 66a882ebd..a5c543755 100644 --- a/ruby/lib/jam_ruby/lib/s3_manager.rb +++ b/ruby/lib/jam_ruby/lib/s3_manager.rb @@ -19,8 +19,8 @@ module JamRuby "s3://#{@aws_bucket}/#{filename}" end - def url(filename) - "https://s3.amazonaws.com/#{@aws_bucket}/#{filename}" + def url(filename, options = @@def_opts) + "http#{options[:secure] ? "s" : ""}://s3.amazonaws.com/#{@aws_bucket}/#{filename}" end def upload_sign(filename, content_md5, part_number, upload_id) diff --git a/ruby/spec/jam_ruby/lib/s3_util_spec.rb b/ruby/spec/jam_ruby/lib/s3_util_spec.rb deleted file mode 100644 index a991f5334..000000000 --- a/ruby/spec/jam_ruby/lib/s3_util_spec.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'spec_helper' - -describe S3Util do - - describe "sign_url" do - pending - it "returns something" do - pending "until it uses jamkazam-test credentials" - S3Util.sign_url("jamkazam-dev", "avatar-tmp/user/image.png").should_not be_nil - end - end - -end - diff --git a/web/app/assets/javascripts/fakeJamClient.js b/web/app/assets/javascripts/fakeJamClient.js index 6adcc1c96..b48d10242 100644 --- a/web/app/assets/javascripts/fakeJamClient.js +++ b/web/app/assets/javascripts/fakeJamClient.js @@ -283,6 +283,10 @@ ]; } + function RegisterRecordingManagerCallbacks(commandStart, commandProgress, commandStop, commandsChanged) { + + } + function RegisterRecordingCallbacks(startRecordingCallbackName, stopRecordingCallbackName, startedRecordingCallbackName, stoppedRecordingCallbackName, abortedRecordingCallbackName) { fakeJamClientRecordings.RegisterRecordingCallbacks(startRecordingCallbackName, stopRecordingCallbackName, startedRecordingCallbackName,stoppedRecordingCallbackName, abortedRecordingCallbackName); } @@ -633,6 +637,7 @@ this.SessionAddTrack = SessionAddTrack; this.SessionGetControlState = SessionGetControlState; this.SessionGetIDs = SessionGetIDs; + this.RegisterRecordingManagerCallbacks = RegisterRecordingManagerCallbacks; this.RegisterRecordingCallbacks = RegisterRecordingCallbacks; this.SessionRegisterCallback = SessionRegisterCallback; this.SessionSetAlertCallback = SessionSetAlertCallback; diff --git a/web/app/assets/javascripts/playbackControls.js b/web/app/assets/javascripts/playbackControls.js index 79282670d..cf1df1323 100644 --- a/web/app/assets/javascripts/playbackControls.js +++ b/web/app/assets/javascripts/playbackControls.js @@ -1,5 +1,5 @@ /** - * Static functions for creating pagination + * Playback widget (play, pause , etc) */ (function(context, $) { diff --git a/web/app/assets/javascripts/recordingManager.js b/web/app/assets/javascripts/recordingManager.js new file mode 100644 index 000000000..54c8bc6e7 --- /dev/null +++ b/web/app/assets/javascripts/recordingManager.js @@ -0,0 +1,123 @@ +/** + * Recording Manager viewer + * Although multiple instances could be made, only one should be + */ +(function(context, $) { + + "use strict"; + + context.JK = context.JK || {}; + + context.JK.RecordingManager = function(){ + + var $parentElement = $('#recording-manager-viewer'); + + var logger = context.JK.logger; + if($parentElement.length == 0) { + logger.debug("no $parentElement specified in RecordingManager"); + } + + var $downloadCommand = $('#recording-manager-download', $parentElement); + var $downloadPercent = $('#recording-manager-download .percent', $parentElement); + var $uploadCommand = $('#recording-manager-upload', $parentElement); + var $uploadPercent = $('#recording-manager-upload .percent', $parentElement); + var $convertCommand = $('#recording-manager-convert', $parentElement); + var $convertPercent = $('#recording-manager-convert .percent', $parentElement); + + // keys come from backend + var lookup = { + SyncDownload: { command: $downloadCommand, percent: $downloadPercent }, + SyncUpload: { command: $uploadCommand, percent: $uploadPercent }, + SyncConvert: { command: $convertCommand, percent: $convertPercent } + } + + var $self = $(this); + + + function renderStartCommand($command) { + $command.css('visibility', 'visible'); + } + + function renderEndCommand($command) { + $command.css('visibility', 'hidden'); + } + + function renderPercentage($percent, value) { + $percent.text(Math.round(value * 100)); + } + + function onStartCommand(id, type) { + var command = lookup[type]; + if(!command) { return } + + var existingCommandId = command.command.data('command-id'); + + if(existingCommandId && existingCommandId != id) { + renderEndCommand(command.command); + } + + command.command.data('command-id', id); + renderStartCommand(command.command); + renderPercentage(command.percent, 0); + } + + function onStopCommand(id, type, success, reason, detail) { + var command = lookup[type]; + if(!command) { return } + + var existingCommandId = command.command.data('command-id'); + + if(!existingCommandId) { + command.command.data('command-id', id); + renderStartCommand(command.command); + } + else if(existingCommandId && existingCommandId != id) { + renderEndCommand(command.command); + command.command.data('command-id', id); + renderStartCommand(command.command); + } + + renderPercentage(command.percent, 1); + renderEndCommand(command.command); + command.command.data('command-id', null); + } + + function onCommandProgress(id, type, progress) { + var command = lookup[type]; + if(!command) { return } + + var existingCommandId = command.command.data('command-id'); + + if(!existingCommandId) { + command.command.data('command-id', id); + renderStartCommand(command.command); + } + else if(existingCommandId && existingCommandId != id) { + renderEndCommand(command.command); + command.command.data('command-id', id); + renderStartCommand(command.command); + } + + renderPercentage(command.percent, progress); + } + + function onCommandsChanged(id, type) { + + } + + context.JK.RecordingManagerCommandStart = onStartCommand; + context.JK.RecordingManagerCommandStop = onStopCommand; + context.JK.RecordingManagerCommandProgress = onCommandProgress; + context.JK.RecordingManagerCommandsChanged = onCommandsChanged; + + context.jamClient.RegisterRecordingManagerCallbacks( + "JK.RecordingManagerCommandStart", + "JK.RecordingManagerCommandProgress", + "JK.RecordingManagerCommandStop", + "JK.RecordingManagerCommandsChanged" + + ) + + return this; + } +})(window, jQuery); \ No newline at end of file diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index 49264de6f..58b91c470 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -590,7 +590,7 @@ var recordedTracks = sessionModel.recordedTracks(); - console.log("recorded tracks=%o local_media_mixers=%o", recordedTracks, localMediaMixers); + console.log("recorded tracks=%o local media=%o", recordedTracks, localMediaMixers); if(recordedTracks && localMediaMixers.length == 0) { // if we are the creator, then rather than raise an error, tell the server the recording is over. diff --git a/web/app/assets/stylesheets/client/client.css b/web/app/assets/stylesheets/client/client.css index 4a66584e2..a852d46bf 100644 --- a/web/app/assets/stylesheets/client/client.css +++ b/web/app/assets/stylesheets/client/client.css @@ -18,6 +18,7 @@ *= require ./header #= require ./user_dropdown *= require ./footer + *= require ./recordingManager *= require ./screen_common *= require ./notify *= require ./dialog diff --git a/web/app/assets/stylesheets/client/clientUpdate.css.scss b/web/app/assets/stylesheets/client/clientUpdate.css.scss index 82f037af4..2b799b8da 100644 --- a/web/app/assets/stylesheets/client/clientUpdate.css.scss +++ b/web/app/assets/stylesheets/client/clientUpdate.css.scss @@ -1,34 +1,35 @@ #client_update { display:none; + + .progress-bar { + width:100%; + background-color:#000; + border: solid 1px #ED3618; + height:22px; + } + + #progress-bar { + width:0%; + } + + .progress-bar-progress { + background-color:#ED3618; + border:solid 1px #000; + height:20px; + display:block; + } + + h2 { + font-weight:bold; + font-size:x-large; + } + + #client-updater-updating #update-steps { + margin-top:20px; + } + + #client-updater-updating span.status { + color:white; + } } -.progress-bar { - width:100%; - background-color:#000; - border: solid 1px #ED3618; - height:22px; -} - -#progress-bar { - width:0%; -} - -.progress-bar-progress { - background-color:#ED3618; - border:solid 1px #000; - height:20px; - display:block; -} - -#client_update h2 { - font-weight:bold; - font-size:x-large; -} - -#client-updater-updating #update-steps { - margin-top:20px; -} - -#client-updater-updating span.status { - color:white; -} \ No newline at end of file diff --git a/web/app/assets/stylesheets/client/recordingManager.css.scss b/web/app/assets/stylesheets/client/recordingManager.css.scss new file mode 100644 index 000000000..8ed92305e --- /dev/null +++ b/web/app/assets/stylesheets/client/recordingManager.css.scss @@ -0,0 +1,42 @@ +#recording-manager-viewer { + + color: #CCCCCC; + font-size: 11px; + margin: 0 auto; + position: absolute; + text-align: center; + left: 25%; + width: 50%; + + .recording-manager-command { + box-sizing: border-box; + width:33%; + margin:5px 10px; + visibility: hidden; + + .percent { + margin-left:3px; + } + + .percent:after { + content:"%"; + } + + .progress-bar { + width:100%; + background-color:#000; + border: solid 1px #ED3618; + height:22px; + display:inline; + } + + .progress-bar-progress { + background-color:#ED3618; + border:solid 1px #000; + height:20px; + display:block; + width:0%; + display:inline; + } + } +} \ No newline at end of file diff --git a/web/app/views/clients/_footer.html.erb b/web/app/views/clients/_footer.html.erb index adb4012d0..48167d948 100644 --- a/web/app/views/clients/_footer.html.erb +++ b/web/app/views/clients/_footer.html.erb @@ -1,11 +1,12 @@