From 59f6e10e5584f063b20730e7ebba6ff6a5bcc715 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 14 Jan 2014 02:49:21 -0500 Subject: [PATCH 01/15] VRFS-986 recording landing page work --- .gitignore | 3 +- db/manifest | 2 +- db/up/ms_recording_anonymous_likes.sql | 23 ++ .../jam_ruby/models/music_session_comment.rb | 2 + ruby/lib/jam_ruby/models/recording_comment.rb | 2 + web/app/assets/images/content/icon_like.png | Bin 0 -> 1127 bytes web/app/assets/javascripts/user_dropdown.js | 1 + web/app/assets/javascripts/web/recordings.js | 8 + web/app/assets/javascripts/web/sessions.js | 0 web/app/assets/javascripts/web/web.js | 4 +- .../stylesheets/client/user_dropdown.css.scss | 18 +- web/app/assets/stylesheets/web/main.css.scss | 384 +++++++++++------- .../stylesheets/web/recordings.css.scss | 56 +++ .../assets/stylesheets/web/sessions.css.scss | 2 + web/app/assets/stylesheets/web/web.css | 2 + .../api_music_sessions_controller.rb | 4 +- .../controllers/api_recordings_controller.rb | 8 +- web/app/controllers/recordings_controller.rb | 10 + .../views/api_claimed_recordings/show.rabl | 25 +- web/app/views/layouts/web.erb | 39 +- web/app/views/recordings/show.html.erb | 211 ++++++++++ web/app/views/users/_user_dropdown.html.erb | 15 +- web/config/routes.rb | 7 +- 23 files changed, 623 insertions(+), 203 deletions(-) create mode 100644 db/up/ms_recording_anonymous_likes.sql create mode 100644 web/app/assets/images/content/icon_like.png create mode 100644 web/app/assets/javascripts/web/recordings.js create mode 100644 web/app/assets/javascripts/web/sessions.js create mode 100644 web/app/assets/stylesheets/web/recordings.css.scss create mode 100644 web/app/assets/stylesheets/web/sessions.css.scss create mode 100644 web/app/controllers/recordings_controller.rb create mode 100644 web/app/views/recordings/show.html.erb diff --git a/.gitignore b/.gitignore index 8927de757..9a18ea4cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea *~ *.swp -HTML \ No newline at end of file +HTML +.DS_Store diff --git a/db/manifest b/db/manifest index 5a9d3c4c8..978cee1ae 100755 --- a/db/manifest +++ b/db/manifest @@ -88,4 +88,4 @@ icecast.sql home_page_promos.sql mix_job_watch.sql music_session_constraints.sql -mixes_drop_manifest_add_retry.sql \ No newline at end of file +ms_recording_anonymous_likes.sql \ No newline at end of file diff --git a/db/up/ms_recording_anonymous_likes.sql b/db/up/ms_recording_anonymous_likes.sql new file mode 100644 index 000000000..ad9e765b6 --- /dev/null +++ b/db/up/ms_recording_anonymous_likes.sql @@ -0,0 +1,23 @@ +alter table music_sessions_comments +add column ip_address inet; + +alter table music_sessions_likers +add column ip_address inet; + +alter table music_sessions_likers +alter column liker_id drop not null; + +alter table recordings_comments +add column ip_address inet; + +alter table recordings_likers +add column ip_address inet; + +alter table recordings_likers +alter column liker_id drop not null; + +alter table recordings_plays +add column ip_address inet; + +alter table recordings_plays +alter column player_id drop not null; diff --git a/ruby/lib/jam_ruby/models/music_session_comment.rb b/ruby/lib/jam_ruby/models/music_session_comment.rb index cda5589bd..71fa8ae9a 100644 --- a/ruby/lib/jam_ruby/models/music_session_comment.rb +++ b/ruby/lib/jam_ruby/models/music_session_comment.rb @@ -5,6 +5,8 @@ module JamRuby self.primary_key = 'id' + default_scope order('created_at DESC') + belongs_to :music_session, :class_name => "JamRuby::MusicSessionHistory", :foreign_key => "music_session_id" belongs_to :user, :class_name => "JamRuby::User", :foreign_key => "creator_id" diff --git a/ruby/lib/jam_ruby/models/recording_comment.rb b/ruby/lib/jam_ruby/models/recording_comment.rb index 8b7e5ae62..5747da52f 100644 --- a/ruby/lib/jam_ruby/models/recording_comment.rb +++ b/ruby/lib/jam_ruby/models/recording_comment.rb @@ -5,6 +5,8 @@ module JamRuby self.primary_key = 'id' + default_scope order('created_at DESC') + belongs_to :recording, :class_name => "JamRuby::Recording", :foreign_key => "recording_id" belongs_to :user, :class_name => "JamRuby::User", :foreign_key => "creator_id" diff --git a/web/app/assets/images/content/icon_like.png b/web/app/assets/images/content/icon_like.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec7ebb66a03f7fc1db9d8ed2504fb9a631b7a63 GIT binary patch literal 1127 zcmaJ=O=#0l9M3+iS~@KQ4^G5K++b7Ne5@a9XkEKza|JU-SG1slY4Wy)nY@_1+H4|r zdhi1e6U3W1K~NBNf*|NY)E)HT(V?OThbW@r$3gTU^JT8ngEb_1@BR7xe*e#RVsKzv zlefi7QB+f=U(Ax#=YA_ZOmHwl}f;@yrZE29vD0vyqd1pVpGT^eX=g5DXHSjkMoqSild z!J+YioH9PD#8kR_D~LM+5zrx)furv;Y{5y;3%UZ?yJm(43lKb-pnnIImj*!^SrCMS zodJdAI1q^hxllL~;kE#t<#>iAZzRBlgm6UQqhRr&i8o6f7P4aBqAzkv&_#?*fnmz! zaC)0(%&iQ=8~*o zFP4cEjB#X>;exE2QWYpk|A*@O657UD_$S_f3fs9c6Eaz7qmreN#tmEXw3e1QJnrH+yO%=Eh7ww63g<`36 zFUR%rDLxhLVWY8hR19_X@#!j8L`q4A2Cj0|KiqIlt~(66Nj!_t(hfki&q6v_NLtWp z$HLdtTjZ*>W9h8PWk@iL+uFZcT{V&Uakoo@OAbq;4-GQ!78&f1chAg{OYtltrgF~n zLfn4iYiOQaHn%PL!ZY&(Ow7;Ecd|Txe+|n`9bwxK9j#lQoCS3=rNM7)yIb;8vsV4p zJs$OI>fEGPz1~L$xBkD%YQsj z@s=t#TgTh$zGz_G>vxAi)7y#ff`2o0qr?BcuC1+dvT@>jbn>UKA2rOK2WhI_NBx-I V{^8#BmZE$0Gra@iwVu64egV@4ZP5S# literal 0 HcmV?d00001 diff --git a/web/app/assets/javascripts/user_dropdown.js b/web/app/assets/javascripts/user_dropdown.js index 71d700f94..b003f2d76 100644 --- a/web/app/assets/javascripts/user_dropdown.js +++ b/web/app/assets/javascripts/user_dropdown.js @@ -71,6 +71,7 @@ // initially show avatar function showAvatar() { var photoUrl = context.JK.resolveAvatarUrl(userMe.photo_url); + logger.debug("photoUrl=" + photoUrl); $('#header-avatar').attr('src', photoUrl); } diff --git a/web/app/assets/javascripts/web/recordings.js b/web/app/assets/javascripts/web/recordings.js new file mode 100644 index 000000000..7f4a5b478 --- /dev/null +++ b/web/app/assets/javascripts/web/recordings.js @@ -0,0 +1,8 @@ +(function(context,$) { + + "use strict"; + + context.JK = context.JK || {}; + + +})(window, jQuery) \ No newline at end of file diff --git a/web/app/assets/javascripts/web/sessions.js b/web/app/assets/javascripts/web/sessions.js new file mode 100644 index 000000000..e69de29bb diff --git a/web/app/assets/javascripts/web/web.js b/web/app/assets/javascripts/web/web.js index d5407b2fe..c45b117d4 100644 --- a/web/app/assets/javascripts/web/web.js +++ b/web/app/assets/javascripts/web/web.js @@ -15,4 +15,6 @@ //= require landing/init //= require landing/signup //= require web/downloads -//= require web/congratulations \ No newline at end of file +//= require web/congratulations +//= require web/recordings +//= require web/sessions \ No newline at end of file diff --git a/web/app/assets/stylesheets/client/user_dropdown.css.scss b/web/app/assets/stylesheets/client/user_dropdown.css.scss index 471883c4c..42e8081af 100644 --- a/web/app/assets/stylesheets/client/user_dropdown.css.scss +++ b/web/app/assets/stylesheets/client/user_dropdown.css.scss @@ -7,12 +7,18 @@ } #profile { - width:auto; - float:right; - height:64px; + float: right; + height: 54px; + margin-top: 30px; + text-align: right; + + ul { + margin-bottom:0; + } + .signin { - position:relative; - margin-top:40px; + text-decoration: underline; + cursor: auto; } } @@ -35,7 +41,7 @@ border-radius:26px; } -#user { +.user { margin:18px 0px 0px 10px; font-size:20px; font-weight:200; diff --git a/web/app/assets/stylesheets/web/main.css.scss b/web/app/assets/stylesheets/web/main.css.scss index fb3b8f142..5ce2dbb42 100644 --- a/web/app/assets/stylesheets/web/main.css.scss +++ b/web/app/assets/stylesheets/web/main.css.scss @@ -2,6 +2,10 @@ html { height:100%; } +p, div { + white-space: normal; +} + body.web { background-repeat: repeat-x; margin:0 !important; @@ -10,165 +14,240 @@ body.web { overflow: visible !important; width:auto !important; - #web-container { - padding:3% 0; + .logo-home { + width: 298px; + margin-top: 30px; + display: inline-block; + } + + .landing-tag { + display:inline-block; + margin-left:70px; + width:400px; + } + + .landing-tag h1 { + color:#ed3718; + font-size:26px; + font-weight:300; + } + + .landing-content { + background-color:black; + width:100%; + padding-bottom:15px; + /*position:relative; + width:100%; + min-height: 366px; + background-color:black; + padding-top:20px;*/ } div.wrapper { - white-space: nowrap; - - p, ul { - color:#999; - line-height:160%; - margin-bottom:20px; - width:90%; - white-space:normal; - font-size:16px; - } - - h2 { - font-weight:300; - } - - .content-wrapper { - border-bottom: medium none; - padding: 0; - } - - .black-bar{ - position:relative; - width:100%; - min-height: 366px; - background-color:black; - padding-top:20px; - } - - .black-bar-inner { - width:1100px; - margin: 0 auto; - - position:relative; - - // all custom CSS for the register page goes here - .register-page { - - .register-container { - padding:10px; - } - - input.register-musician { - - } - - .actions { - margin-top:20px; - - a.button-grey { - line-height:15px; // WHY is this not universal - } - } - - - .error { - padding: 5px 12px 5px 5px; - margin-left:-5px; - margin-right:-12px; - } - - input.register-fan { - margin-left:20px; - } - - input[type=text], input[type=password] { - margin-top:1px; - width:100%; - } - - select { - width:100%; - } - - - .right-side { - margin-left:25px; - } - - - .register-left { - - select { - width:104%; - } - - div.field { - margin-top:31px; - width:43%; - float:left; - } - } - - .register-right { - - margin-top:40px; - - table { - border-collapse:separate; - border-spacing:6px; - } - - label.instruments { - margin-bottom:2px; - } - - div.field { - margin-top:15px; - } - - a.tos { - text-decoration: underline; - } - - .ftue-instrumentlist { - width:100%; - } - } - } - } - - .after-black-bar { - position:relative; - background-color:#262626; - width:1100px; - margin:0 auto; - - .after-black-bar-inner { - background-color:#262626; - position:absolute; - left:0; - right:0; - } - } - } - - .header { width:1100px; margin:0 auto; - - .logo-home { - width: 298px; - margin-top: 30px; - display: inline-block; - float:left; - } + white-space:nowrap; + position:relative; } - #profile { + .landing-sidebar { + width:350px; + background:#353535; + border:solid 1px #ed3718; position:absolute; - top:-80px; - right:0; + top:30px; + right:0px; + padding:25px; + padding-top:0px; + line-height:130%; + } - ul { - margin-bottom:0; + .landing-sidebar h2 { + font-size:18px !important; + line-height:normal; + color:#fff; + } + + .landing-band { + float:left; + text-align:center; + width: 115px; + margin-right:25px; + font-size:17px; + color:#fff; + } + + .landing-avatar { + padding:2px; + width:110px; + height:110px; + background-color:#ed3618; + -webkit-border-radius:57px; + -moz-border-radius:57px; + border-radius:57px; + margin-bottom:10px; + } + + .landing-avatar img { + width:110px; + height:110px; + -webkit-border-radius:55px; + -moz-border-radius:55px; + border-radius:55px; + } + + .landing-details { + float:left; + width:515px; + font-size:14px; + font-weight:400; + color:#666; + } + + .landing-details a { + text-decoration:none; + color:#ccc; + } + + .landing-details a:hover { + color:#fff; + } + + .landing-content h2 { + font-size:24px; + color:#ccc; + font-weight:200; + } + + .landing-comments { + margin-left:140px; + width:515px; + } + + .landing-comments a { + text-decoration:none; + font-weight:bold; + color:#ED3618; + } + + .landing-comment-scroller { + height:470px; + overflow:auto; + } + + .landing .cta { + margin-top:25px; + } + + .cta { + margin-top:40px; + text-align:center; + width:345px; + font-size:12px; + } + + white-space: nowrap; + + p, ul { + color:#999; + line-height:160%; + margin-bottom:20px; + width:90%; + white-space:normal; + font-size:16px; + } + + h2 { + font-weight:300; + } + + .content-wrapper { + border-bottom: medium none; + padding: 0; + } + + + // all custom CSS for the register page goes here + .register-page { + + .register-container { + padding:10px; + } + + input.register-musician { + + } + + .actions { + margin-top:20px; + + a.button-grey { + line-height:15px; // WHY is this not universal + } + } + + .error { + padding: 5px 12px 5px 5px; + margin-left:-5px; + margin-right:-12px; + } + + input.register-fan { + margin-left:20px; + } + + input[type=text], input[type=password] { + margin-top:1px; + width:100%; + } + + select { + width:100%; + } + + + .right-side { + margin-left:25px; + } + + + .register-left { + + select { + width:104%; + } + + div.field { + margin-top:31px; + width:43%; + float:left; + } + } + + .register-right { + + margin-top:40px; + + table { + border-collapse:separate; + border-spacing:6px; + } + + label.instruments { + margin-bottom:2px; + } + + div.field { + margin-top:15px; + } + + a.tos { + text-decoration: underline; + } + + .ftue-instrumentlist { + width:100%; + } } } @@ -215,11 +294,6 @@ body.web { } } -#landing-container { - padding: 3% 0; - position:relative; - text-align: center; -} .signin-overlay { position:relative; diff --git a/web/app/assets/stylesheets/web/recordings.css.scss b/web/app/assets/stylesheets/web/recordings.css.scss new file mode 100644 index 000000000..c5dbef4b7 --- /dev/null +++ b/web/app/assets/stylesheets/web/recordings.css.scss @@ -0,0 +1,56 @@ +.feed-entry .recording-controls, .feed-entry .session-controls, .landing-details .recording-controls { + margin-top:0px; + margin-bottom:5px; + padding:8px 5px 8px 10px; + width:98%; +} + +.recording-position { + display:inline-block; + width:80%; + margin-left:-20px; + font-family:Arial, Helvetica, sans-serif; + font-size:11px; + height:18px; + vertical-align:top; +} + +.landing-details .recording-position { + width:100%; +} + +.recording-time { + display:inline-block; + height:16px; + vertical-align:top; + margin-top:4px; +} + +.landing-details .recording-current { + top:8px; +} + +.recording-playback { + display:inline-block; + background-image:url(../images/content/bkg_playcontrols.png); + background-repeat:repeat-x; + position:relative; + width:70%; + height:16px; + margin-top:2px; +} + +.recording-slider { + position:absolute; + left:25%; + top:0px; +} + +.recording-current { + font-family:Arial, Helvetica, sans-serif; + display:inline-block; + font-size:18px; + position:absolute; + top:3px; + right:4px; +} \ No newline at end of file diff --git a/web/app/assets/stylesheets/web/sessions.css.scss b/web/app/assets/stylesheets/web/sessions.css.scss new file mode 100644 index 000000000..139597f9c --- /dev/null +++ b/web/app/assets/stylesheets/web/sessions.css.scss @@ -0,0 +1,2 @@ + + diff --git a/web/app/assets/stylesheets/web/web.css b/web/app/assets/stylesheets/web/web.css index eee7082da..59db0c313 100644 --- a/web/app/assets/stylesheets/web/web.css +++ b/web/app/assets/stylesheets/web/web.css @@ -9,4 +9,6 @@ *= require client/invitationDialog *= require web/main *= require web/footer +*= require web/recordings +#= require web/sessions */ \ No newline at end of file diff --git a/web/app/controllers/api_music_sessions_controller.rb b/web/app/controllers/api_music_sessions_controller.rb index 79b8cfe84..d727f94ae 100644 --- a/web/app/controllers/api_music_sessions_controller.rb +++ b/web/app/controllers/api_music_sessions_controller.rb @@ -3,7 +3,7 @@ require 'aws-sdk' class ApiMusicSessionsController < ApiController # have to be signed in currently to see this screen - before_filter :api_signed_in_user + before_filter :api_signed_in_user, :except => [ :add_like ] before_filter :lookup_session, only: [:show, :update, :delete, :claimed_recording_start, :claimed_recording_stop] skip_before_filter :api_signed_in_user, only: [:perf_upload] @@ -251,6 +251,7 @@ class ApiMusicSessionsController < ApiController comment.music_session_id = params[:id] comment.creator_id = params[:user_id] comment.comment = params[:comment] + comment.ip_address = request.remote_ip comment.save if comment.errors.any? @@ -272,6 +273,7 @@ class ApiMusicSessionsController < ApiController liker = MusicSessionLiker.new liker.music_session_id = params[:id] liker.liker_id = params[:user_id] + liker.ip_address = request.remote_ip liker.save if liker.errors.any? diff --git a/web/app/controllers/api_recordings_controller.rb b/web/app/controllers/api_recordings_controller.rb index 3a8986fb2..ce06547c6 100644 --- a/web/app/controllers/api_recordings_controller.rb +++ b/web/app/controllers/api_recordings_controller.rb @@ -1,6 +1,6 @@ class ApiRecordingsController < ApiController - before_filter :api_signed_in_user + before_filter :api_signed_in_user, :except => [ :add_like, :add_play ] before_filter :look_up_recording, :only => [ :show, :stop, :claim, :discard, :keep ] before_filter :parse_filename, :only => [ :download, :upload_next_part, :upload_sign, :upload_part_complete, :upload_complete ] @@ -97,6 +97,7 @@ class ApiRecordingsController < ApiController comment.recording_id = params[:id] comment.creator_id = params[:user_id] comment.comment = params[:comment] + comment.ip_address = request.remote_ip comment.save if comment.errors.any? @@ -118,6 +119,7 @@ class ApiRecordingsController < ApiController liker = RecordingLiker.new liker.recording_id = params[:id] liker.liker_id = params[:user_id] + liker.ip_address = request.remote_ip liker.save if liker.errors.any? @@ -139,6 +141,7 @@ class ApiRecordingsController < ApiController play = RecordingPlay.new play.recording_id = params[:id] play.player_id = params[:user_id] + play.ip_address = request.remote_ip play.save if play.errors.any? @@ -209,10 +212,7 @@ class ApiRecordingsController < ApiController end end - - private - def parse_filename @recorded_track = RecordedTrack.find_by_recording_id_and_client_track_id!(params[:id], params[:track_id]) raise PermissionError, ValidationMessages::PERMISSION_VALIDATION_ERROR unless @recorded_track.recording.has_access?(current_user) diff --git a/web/app/controllers/recordings_controller.rb b/web/app/controllers/recordings_controller.rb new file mode 100644 index 000000000..650c6971f --- /dev/null +++ b/web/app/controllers/recordings_controller.rb @@ -0,0 +1,10 @@ +class RecordingsController < ApplicationController + + respond_to :html + + def show + @claimed_recording = ClaimedRecording.find(params[:id]) + render :layout => "web" + end + +end \ No newline at end of file diff --git a/web/app/views/api_claimed_recordings/show.rabl b/web/app/views/api_claimed_recordings/show.rabl index cb46530cd..36c020610 100644 --- a/web/app/views/api_claimed_recordings/show.rabl +++ b/web/app/views/api_claimed_recordings/show.rabl @@ -1,13 +1,13 @@ # I'm not sure this is right at all. The idea is to bring in all the stuff you would need to play the tracks. -# I don't think I need to include URLs since that's handled by syncing. This is jsut to make the metadata +# I don't think I need to include URLs since that's handled by syncing. This is just to make the metadata # depictable. object @claimed_recording -attributes :id, :name, :description, :is_public, :is_downloadable +attributes :id, :name, :description, :is_public, :is_downloadable, :genre_id child(:recording => :recording) { - attributes :id, :created_at, :duration + attributes :id, :created_at, :duration, :comment_count, :like_count, :play_count child(:band => :band) { attributes :id, :name } @@ -19,9 +19,20 @@ child(:recording => :recording) { child(:recorded_tracks => :recorded_tracks) { attributes :id, :fully_uploaded, :url, :client_track_id, :client_id, :instrument_id - child(:user => :user) { - attributes :id, :first_name, :last_name, :city, :state, :country, :photo_url - } + child(:user => :user) { + attributes :id, :first_name, :last_name, :city, :state, :country, :photo_url + } } -} + child(:band => :band) { + attributes :id, :name, :photo_url + } + + child(:comments => :comments) { + attributes :comment, :created_at + + child(:user => :creator) { + attributes :id, :first_name, :last_name, :photo_url + } + } +} \ No newline at end of file diff --git a/web/app/views/layouts/web.erb b/web/app/views/layouts/web.erb index 6d439faf6..d76e02611 100644 --- a/web/app/views/layouts/web.erb +++ b/web/app/views/layouts/web.erb @@ -19,30 +19,33 @@ <%= javascript_include_tag "web/web" %> -
-
-
-
- <%= link_to root_path do %> - <%= image_tag("web/logo_home.png", :alt => "JamKazam logo", :size => "298x54") %> - <% end %> -
+
+ <%= link_to root_path do %> + <%= image_tag("web/logo_home.png", :alt => "JamKazam logo", :size => "298x54") %> + <% end %>
-
- -
-
- <%= render "users/user_dropdown" %> - <%= yield %> -
+
+

Play music together over the Internet as if in the same room

-
- <%= yield(:after_black_bar) %> + <%= render "users/user_dropdown" %> + +


+
+ +
+
+

+ <%= yield %>
+
+ +
+ <%= yield(:after_black_bar) %> +
- <%= render "shared/ga" %> diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb new file mode 100644 index 000000000..4482b731e --- /dev/null +++ b/web/app/views/recordings/show.html.erb @@ -0,0 +1,211 @@ +<% provide(:title, "#{@claimed_recording.name}") %> + +
+
+ +
+ Raven & The Blackbirds +
+ +
+
RECORDING
+
Yesterday, 11:10 am
+

+

You Hurt Me Bad

+ +
+ A sweet and sexy ballad about broken hearts and bad girls.
+
+ + +
+ +
+ + + + + +
+ + +
0:00
+ + +
+
+
+ + +
4:59
+
+ + + +
+ 1:23 +
+ +
+ + + +
Blues
+
80     12     35
+
+

+ + + + + + + + + + + + + + + + + + + +
Jimmy Johnson
Perry Jon Blazinsky
Knox Pitzer
Coby Jones
+
+
+ + + + +

+

More by Raven & The Blackbirds:


+ +
Now:
+ +
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis.
+

+
Yesterday:
+
RECORDING: You Hurt Me Bad
+
Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi.
+

+
Dec. 18th:
+
SESSION: Session Ended. Unavailable.
+
Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum.
+

+
Dec. 12th:
+
RECORDING: Bustin' My Chops
+
Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis. Nam magna enim, accumsan eu, blandit sed, blandit a, eros.
+

+
Dec. 10th:
+
SESSION: Session Ended. Unavailable.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim.
+

+
Nov. 29th:
+
SESSION: Session Ended. Unavailable.
+
Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer.
+
+ + + +<% content_for :after_black_bar do %> +
+
+

Comments:

+ + +
+
+ +
+
+ + + +
+ + +
+
+ + Jeremy Jones Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. +
+
5 minutes ago
+
+
+ + +
+
+ + Johnny Cameroon Fusce consectetuer luctus ipsum. +
+
30 minutes ago
+
+
+ + +
+
+ + Perry Gaberdeen Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. +
+
2 hours ago
+
+
+ + +
+
+ + Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. +
+
Yesterday, 2:45 pm
+
+
+ + +
+
+ + Jeremy Jones Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. +
+
5 minutes ago
+
+
+ + +
+
+ + Johnny Cameroon Fusce consectetuer luctus ipsum. +
+
30 minutes ago
+
+
+ + +
+
+ + Perry Gaberdeen Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. +
+
2 hours ago
+
+
+ + +
+
+ + Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. +
+
Yesterday, 2:45 pm
+
+
+
+
+
+<% end %> diff --git a/web/app/views/users/_user_dropdown.html.erb b/web/app/views/users/_user_dropdown.html.erb index 558e8d25c..a42194440 100644 --- a/web/app/views/users/_user_dropdown.html.erb +++ b/web/app/views/users/_user_dropdown.html.erb @@ -1,14 +1,15 @@
+ + + + + <% if signed_in? %> - -
- -
-
+
+
diff --git a/web/config/routes.rb b/web/config/routes.rb index 990ca7426..16f7be727 100644 --- a/web/config/routes.rb +++ b/web/config/routes.rb @@ -6,7 +6,6 @@ SampleApp::Application.routes.draw do end resources :users - resources :sessions, only: [:new, :create, :destroy] #root to: 'static_pages#home' @@ -24,10 +23,14 @@ SampleApp::Application.routes.draw do match '/signin', to: 'sessions#new' match '/signout', to: 'sessions#destroy', via: :delete + # oauth match '/auth/:provider/callback', :to => 'sessions#oauth_callback' match '/auth/failure', :to => 'sessions#failure' + # session / recording landing pages + match '/sessions/:id' => 'music_sessions#show', :via => :get, :as => 'music_session_detail' + match '/recordings/:id' => 'recordings#show', :via => :get, :as => 'recording_detail' match '/isp', :to => 'users#isp' match '/isp/ping.jar', :to => redirect('/ping.jar') @@ -296,6 +299,8 @@ SampleApp::Application.routes.draw do match '/claimed_recordings/:id' => 'api_claimed_recordings#update', :via => :put match '/claimed_recordings/:id' => 'api_claimed_recordings#delete', :via => :delete + # Mixes + match '/mixes/schedule' => 'api_mixes#schedule', :via => :post match '/mixes/next' => 'api_mixes#next', :via => :get match '/mixes/:id/finish' => 'api_mixes#finish', :via => :put match '/mixes/:id/download' => 'api_mixes#download', :via => :get From ccdad1c81ae0f36c8be289e4b35348e2e59b5b33 Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Tue, 14 Jan 2014 14:06:43 -0600 Subject: [PATCH 02/15] vrfs1008: fixed failing test --- .../controllers/api_invitations_controller.rb | 42 ++++++++----------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/web/app/controllers/api_invitations_controller.rb b/web/app/controllers/api_invitations_controller.rb index ac487c8a9..58a3965e6 100644 --- a/web/app/controllers/api_invitations_controller.rb +++ b/web/app/controllers/api_invitations_controller.rb @@ -37,34 +37,26 @@ class ApiInvitationsController < ApiController sender = current_user join_request = JoinRequest.find(params[:join_request]) unless params[:join_request].nil? - @invitation = Invitation.limit(1) - .where(:receiver_id => params[:receiver], - :sender_id => current_user.id, - :music_session_id => params[:music_session]) - .first - if @invitation + @invitation = Invitation.new + @invitation.music_session = music_session + @invitation.sender = sender + @invitation.receiver = receiver + @invitation.join_request = join_request + @invitation.save + + unless @invitation.errors.any? + User.save_session_settings(current_user, music_session) + + # send notification + Notification.send_session_invitation(receiver, current_user, music_session.id) respond_with @invitation, :responder => ApiResponder, :location => api_invitation_detail_url(@invitation) + else - @invitation = Invitation.new - @invitation.music_session = music_session - @invitation.sender = sender - @invitation.receiver = receiver - @invitation.join_request = join_request - @invitation.save - - unless @invitation.errors.any? - User.save_session_settings(current_user, music_session) - - # send notification - Notification.send_session_invitation(receiver, current_user, music_session.id) - respond_with @invitation, :responder => ApiResponder, :location => api_invitation_detail_url(@invitation) - - else - # we have to do this because api_invitation_detail_url will fail with a bad @invitation - response.status = :unprocessable_entity - respond_with @invitation - end + # we have to do this because api_invitation_detail_url will fail with a bad @invitation + response.status = :unprocessable_entity + respond_with @invitation end + end def show From 703da937e8cdd9fcca961a29e2038deb23108274 Mon Sep 17 00:00:00 2001 From: Daniel Weigh Date: Thu, 23 Jan 2014 06:10:40 -0500 Subject: [PATCH 03/15] VRFS-930 Musician fixes --- web/app/assets/javascripts/findMusician.js | 2 +- .../stylesheets/client/musician.css.scss | 29 ++++++++++++-- .../stylesheets/client/screen_common.css.scss | 3 ++ web/app/views/clients/_musicians.html.erb | 39 +++++++++---------- 4 files changed, 48 insertions(+), 25 deletions(-) diff --git a/web/app/assets/javascripts/findMusician.js b/web/app/assets/javascripts/findMusician.js index 52a44c077..3599826ed 100644 --- a/web/app/assets/javascripts/findMusician.js +++ b/web/app/assets/javascripts/findMusician.js @@ -98,7 +98,7 @@ if (mm['instruments'][jj].instrument_id in instrument_logo_map) { instr = instrument_logo_map[mm['instruments'][jj].instrument_id]; } - instr_logos += ' '; + instr_logos += ''; } follows = ''; followVals = {}; diff --git a/web/app/assets/stylesheets/client/musician.css.scss b/web/app/assets/stylesheets/client/musician.css.scss index b9e47e290..49556f110 100644 --- a/web/app/assets/stylesheets/client/musician.css.scss +++ b/web/app/assets/stylesheets/client/musician.css.scss @@ -34,8 +34,29 @@ padding-top: 5px; padding-right: 5px; padding-left: 5px; -} - -.musician-following { - overflow: auto; + + #result_instruments { + font-weight: normal; + > img { + margin-right: 4px; + height:24px; + width:24px; + } + } + .result-name { + font-size: 12px; + font-weight: bold; + } + .stats { + margin-top: 4px; + img { + vertical-align: middle; + } + } + .lcol { + width: 148px; + } + table.musicians { + margin-top:12px; + } } diff --git a/web/app/assets/stylesheets/client/screen_common.css.scss b/web/app/assets/stylesheets/client/screen_common.css.scss index 98fd15a4b..d744fdb8f 100644 --- a/web/app/assets/stylesheets/client/screen_common.css.scss +++ b/web/app/assets/stylesheets/client/screen_common.css.scss @@ -233,6 +233,9 @@ a img { .clearall { clear:both; } +.clearleft { + clear:left; +} .left { float:left; diff --git a/web/app/views/clients/_musicians.html.erb b/web/app/views/clients/_musicians.html.erb index 2b4c565de..be715a293 100644 --- a/web/app/views/clients/_musicians.html.erb +++ b/web/app/views/clients/_musicians.html.erb @@ -20,45 +20,44 @@ <% end -%> - @@ -74,7 +73,7 @@ - <% end %> - <%= include_gon(:init => true) %> - <%= csrf_meta_tags %> - - -<%= javascript_include_tag "web/web" %> - + + + <%= stylesheet_link_tag "web/web", media: "all" %> + <% if bugsnag? %> + + + <% end %> + <%= include_gon(:init => true) %> + <%= csrf_meta_tags %> + + + <%= javascript_include_tag "web/web" %> + -
- -
- <%= link_to root_path do %> - <%= image_tag("web/logo_home.png", :alt => "JamKazam logo", :size => "298x54") %> - <% end %> -
- -
-

Play music together over the Internet as if in the same room

-
- - <%= render "users/user_dropdown" %> - -


-
- -
-

- <%= yield %> -
-
-
- <%= yield(:after_black_bar) %> -
+
+ <%= link_to root_path do %> + <%= image_tag("web/logo_home.png", :alt => "JamKazam logo", :size => "298x54") %> + <% end %> +
+ +
+

Play music together over the Internet as if in the same room

+
+ + <%= render "users/user_dropdown" %> + +


+
+ +
+
+

+ <%= yield %> +
+
+ +
+ <%= yield(:after_black_bar) %> +
-
- <%= render "clients/invitationDialog" %> + <%= render "clients/invitationDialog" %> - + var userDropdown = new JK.UserDropdown(JK.app); + userDropdown.initialize(invitationDialog); + } + }) + -<%= render "shared/ga" %> - - + <%= render "shared/ga" %> + + diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb index 4482b731e..875d9919b 100644 --- a/web/app/views/recordings/show.html.erb +++ b/web/app/views/recordings/show.html.erb @@ -1,211 +1,137 @@ <% provide(:title, "#{@claimed_recording.name}") %> -
-
- -
- Raven & The Blackbirds +
+ <% unless @claimed_recording.recording.band.nil? %> +
+ <% unless @claimed_recording.recording.band.photo_url.blank? %> + <%= image_tag "#{@claimed_recording.recording.band.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic_band.png", {:alt => ""} %> + <% end %> +
+ <%= @claimed_recording.recording.band.name %> + <% else %> +
+ <% unless @claimed_recording.recording.owner.photo_url.blank? %> + <%= image_tag "#{@claimed_recording.recording.owner.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> + <% end %> +
+ <%= @claimed_recording.recording.owner.name %> + <% end %> +
+ +
+
RECORDING
+
<%= @claimed_recording.recording.created_at %>
+

+

<%= @claimed_recording.name %>

+ +
TODO: Which field is this in the database??

+
+
+ <%= image_tag "content/icon_playbutton.png", {:width => 20, :height => 20} %> +
+
0:00
+
+
<%= image_tag "content/slider_playcontrols.png", {:width => 5, :height => 16} %>
- -
-
RECORDING
-
Yesterday, 11:10 am
-

-

You Hurt Me Bad

- -
- A sweet and sexy ballad about broken hearts and bad girls.
-
- - -
- -
- - - - - -
- - -
0:00
- - -
-
-
- - -
4:59
-
- - - -
- 1:23 -
- -
- - - -
Blues
-
80     12     35
-
-

- - - - - - - - - - - - - - - - - - - -
Jimmy Johnson
Perry Jon Blazinsky
Knox Pitzer
Coby Jones
-
-
+
4:59
+
+
1:23
+
+ +
<%= @claimed_recording.genre_id.capitalize %>
+
+ <%= @claimed_recording.recording.play_count %> + <%= image_tag "content/icon_arrow.png", {:width => 7, :height => 12, :align => "absmiddle"} %>     + <%= @claimed_recording.recording.comment_count %> + <%= image_tag "content/icon_comment.png", {:width => 13, :height => 12, :align => "absmiddle"} %>     + <%= @claimed_recording.recording.like_count %> + <%= image_tag "content/icon_like.png", {:width => 12, :height => 12, :align => "absmiddle"} %> +
+
+

+ + <% @claimed_recording.recording.recorded_tracks.each_with_index do |track, index| %> + <% if index % 2 == 0 %> + + <% end %> + + + + <% if index % 2 == 0 %> + + <% else %> + + <% end %> + <% end %> +
+
+ <% unless track.user.photo_url.blank? %> + <%= image_tag "#{track.user.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> + <% end %> +
+
<%= track.user.name %>
+
+ <%= image_tag "shared/icon_instrument_#{track.instrument_id}45.png", {:width => 32, :alt => ""} %> +
+
+
+
- - - -

-

More by Raven & The Blackbirds:


- -
Now:
- -
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis.
-

-
Yesterday:
-
RECORDING: You Hurt Me Bad
-
Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi.
-

-
Dec. 18th:
-
SESSION: Session Ended. Unavailable.
-
Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum.
-

-
Dec. 12th:
-
RECORDING: Bustin' My Chops
-
Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis. Nam magna enim, accumsan eu, blandit sed, blandit a, eros.
-

-
Dec. 10th:
-
SESSION: Session Ended. Unavailable.
-
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim.
-

-
Nov. 29th:
-
SESSION: Session Ended. Unavailable.
-
Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer.
-
+

+

More by Raven & The Blackbirds:


+
Now:
+ +
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis.
+

+
Yesterday:
+
RECORDING: You Hurt Me Bad
+
Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi.
+

+
Dec. 18th:
+
SESSION: Session Ended. Unavailable.
+
Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum.
+

+
Dec. 12th:
+
RECORDING: Bustin' My Chops
+
Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis. Nam magna enim, accumsan eu, blandit sed, blandit a, eros.
+

+
Dec. 10th:
+
SESSION: Session Ended. Unavailable.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim.
+

+
Nov. 29th:
+
SESSION: Session Ended. Unavailable.
+
Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer.
+
- <% content_for :after_black_bar do %> -
-
-

Comments:

- - -
-
- -
-
- - - -
- - -
-
- - Jeremy Jones Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. -
-
5 minutes ago
-
-
- - -
-
- - Johnny Cameroon Fusce consectetuer luctus ipsum. -
-
30 minutes ago
-
-
- - -
-
- - Perry Gaberdeen Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. -
-
2 hours ago
-
-
- - -
-
- - Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. -
-
Yesterday, 2:45 pm
-
-
- - -
-
- - Jeremy Jones Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. -
-
5 minutes ago
-
-
- - -
-
- - Johnny Cameroon Fusce consectetuer luctus ipsum. -
-
30 minutes ago
-
-
- - -
-
- - Perry Gaberdeen Nulla facilisi. In vel sem. Morbi id urna in diam dignissim feugiat. Proin molestie tortor eu velit. -
-
2 hours ago
-
-
- - -
-
- - Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. -
-
Yesterday, 2:45 pm
-
-
-
+
+
+

Comments:

+
+
+ +
+
+ +
+
+
+ Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. +
+
Yesterday, 2:45 pm
+
+
<% end %> diff --git a/web/app/views/users/_user_dropdown.html.erb b/web/app/views/users/_user_dropdown.html.erb index a42194440..842219322 100644 --- a/web/app/views/users/_user_dropdown.html.erb +++ b/web/app/views/users/_user_dropdown.html.erb @@ -12,7 +12,7 @@
-
    +
    • <%= link_to "Identity", '/client#/account/identity' %>
    • From 6d482a034d02231208edb9693287c18ffd0bb3ec Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Thu, 16 Jan 2014 02:50:13 -0500 Subject: [PATCH 06/15] VRFS-986 more landing page work --- ... => icon_instrument_acoustic_guitar24.png} | Bin ... => icon_instrument_acoustic_guitar45.png} | Bin ....png => icon_instrument_bass_guitar24.png} | Bin ....png => icon_instrument_bass_guitar45.png} | Bin ... => icon_instrument_electric_guitar24.png} | Bin ... => icon_instrument_electric_guitar45.png} | Bin ....png => icon_instrument_french_horn24.png} | Bin ....png => icon_instrument_french_horn45.png} | Bin web/app/assets/javascripts/utils.js | 8 ++-- web/app/views/recordings/show.html.erb | 42 ++++++++++-------- web/app/views/shared/_cta_sidebar.html.erb | 0 .../views/shared/_landing_sidebar.html.erb | 0 web/config/environments/development.rb | 2 +- 13 files changed, 29 insertions(+), 23 deletions(-) rename web/app/assets/images/content/{icon_instrument_acoustic24.png => icon_instrument_acoustic_guitar24.png} (100%) rename web/app/assets/images/content/{icon_instrument_acoustic45.png => icon_instrument_acoustic_guitar45.png} (100%) rename web/app/assets/images/content/{icon_instrument_bass24.png => icon_instrument_bass_guitar24.png} (100%) rename web/app/assets/images/content/{icon_instrument_bass45.png => icon_instrument_bass_guitar45.png} (100%) rename web/app/assets/images/content/{icon_instrument_guitar24.png => icon_instrument_electric_guitar24.png} (100%) rename web/app/assets/images/content/{icon_instrument_guitar45.png => icon_instrument_electric_guitar45.png} (100%) rename web/app/assets/images/content/{icon_instrument_frenchhorn24.png => icon_instrument_french_horn24.png} (100%) rename web/app/assets/images/content/{icon_instrument_frenchhorn45.png => icon_instrument_french_horn45.png} (100%) create mode 100644 web/app/views/shared/_cta_sidebar.html.erb create mode 100644 web/app/views/shared/_landing_sidebar.html.erb diff --git a/web/app/assets/images/content/icon_instrument_acoustic24.png b/web/app/assets/images/content/icon_instrument_acoustic_guitar24.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_acoustic24.png rename to web/app/assets/images/content/icon_instrument_acoustic_guitar24.png diff --git a/web/app/assets/images/content/icon_instrument_acoustic45.png b/web/app/assets/images/content/icon_instrument_acoustic_guitar45.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_acoustic45.png rename to web/app/assets/images/content/icon_instrument_acoustic_guitar45.png diff --git a/web/app/assets/images/content/icon_instrument_bass24.png b/web/app/assets/images/content/icon_instrument_bass_guitar24.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_bass24.png rename to web/app/assets/images/content/icon_instrument_bass_guitar24.png diff --git a/web/app/assets/images/content/icon_instrument_bass45.png b/web/app/assets/images/content/icon_instrument_bass_guitar45.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_bass45.png rename to web/app/assets/images/content/icon_instrument_bass_guitar45.png diff --git a/web/app/assets/images/content/icon_instrument_guitar24.png b/web/app/assets/images/content/icon_instrument_electric_guitar24.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_guitar24.png rename to web/app/assets/images/content/icon_instrument_electric_guitar24.png diff --git a/web/app/assets/images/content/icon_instrument_guitar45.png b/web/app/assets/images/content/icon_instrument_electric_guitar45.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_guitar45.png rename to web/app/assets/images/content/icon_instrument_electric_guitar45.png diff --git a/web/app/assets/images/content/icon_instrument_frenchhorn24.png b/web/app/assets/images/content/icon_instrument_french_horn24.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_frenchhorn24.png rename to web/app/assets/images/content/icon_instrument_french_horn24.png diff --git a/web/app/assets/images/content/icon_instrument_frenchhorn45.png b/web/app/assets/images/content/icon_instrument_french_horn45.png similarity index 100% rename from web/app/assets/images/content/icon_instrument_frenchhorn45.png rename to web/app/assets/images/content/icon_instrument_french_horn45.png diff --git a/web/app/assets/javascripts/utils.js b/web/app/assets/javascripts/utils.js index 2d9ec36a1..a55e396f5 100644 --- a/web/app/assets/javascripts/utils.js +++ b/web/app/assets/javascripts/utils.js @@ -42,18 +42,18 @@ // available, and allowing the browser to resize offers better quality. var icon_map_base = { "accordion":"accordion", - "acoustic guitar":"acoustic", + "acoustic guitar":"acoustic_guitar", "banjo":"banjo", - "bass guitar":"bass", + "bass guitar":"bass_guitar", "cello":"cello", "clarinet":"clarinet", "computer":"computer", "default":"default", "drums":"drums", - "electric guitar":"guitar", + "electric guitar":"electric_guitar", "euphonium":"euphonium", "flute":"flute", - "french horn":"frenchhorn", + "french horn":"french_horn", "harmonica":"harmonica", "keyboard":"keyboard", "mandolin":"mandolin", diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb index 875d9919b..9cf20c28f 100644 --- a/web/app/views/recordings/show.html.erb +++ b/web/app/views/recordings/show.html.erb @@ -59,27 +59,33 @@ <% @claimed_recording.recording.recorded_tracks.each_with_index do |track, index| %> <% if index % 2 == 0 %> + <% end %> - - - - <% if index % 2 == 0 %> + <% if index % 2 > 0 %> - <% else %> - <% end %> <% end %>
       
      -
      - <% unless track.user.photo_url.blank? %> - <%= image_tag "#{track.user.photo_url}", {:alt => ""} %> - <% else %> - <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> - <% end %> -
      +
      + + + + + + + +
      +
      + <% unless track.user.photo_url.blank? %> + <%= image_tag "#{track.user.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> + <% end %> +
      +
      <%= track.user.name %>
      +
      + <%= image_tag "content/icon_instrument_#{track.instrument_id.tr(" ", "_")}45.png", {:width => 32, :alt => ""} %> +
      +
      <%= track.user.name %>
      -
      - <%= image_tag "shared/icon_instrument_#{track.instrument_id}45.png", {:width => 32, :alt => ""} %> -
      -
      @@ -117,7 +123,7 @@ <% content_for :after_black_bar do %>
      -

      Comments:

      +

      Comments:


      diff --git a/web/app/views/shared/_cta_sidebar.html.erb b/web/app/views/shared/_cta_sidebar.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/web/app/views/shared/_landing_sidebar.html.erb b/web/app/views/shared/_landing_sidebar.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/web/config/environments/development.rb b/web/config/environments/development.rb index 6aec3027a..0fa697e0d 100644 --- a/web/config/environments/development.rb +++ b/web/config/environments/development.rb @@ -48,7 +48,7 @@ SampleApp::Application.configure do config.assets.debug = false # Set the logging destination(s) - config.log_to = %w[stdout file] + # config.log_to = %w[stdout file] # Show the logging configuration on STDOUT config.show_log_configuration = true From 09d84b4c11a6504f038715684d93606d3c726e3b Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sat, 18 Jan 2014 15:32:39 -0500 Subject: [PATCH 07/15] VRFS-986 landing page work --- web/app/views/recordings/show.html.erb | 53 +++---------------- web/app/views/shared/_comments.html.erb | 22 ++++++++ web/app/views/shared/_cta_sidebar.html.erb | 10 ++++ .../views/shared/_landing_sidebar.html.erb | 26 +++++++++ 4 files changed, 65 insertions(+), 46 deletions(-) create mode 100644 web/app/views/shared/_comments.html.erb diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb index 9cf20c28f..b7f2c811e 100644 --- a/web/app/views/recordings/show.html.erb +++ b/web/app/views/recordings/show.html.erb @@ -91,53 +91,14 @@

      - -

      -

      More by Raven & The Blackbirds:


      -
      Now:
      - -
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis.
      -

      -
      Yesterday:
      -
      RECORDING: You Hurt Me Bad
      -
      Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi.
      -

      -
      Dec. 18th:
      -
      SESSION: Session Ended. Unavailable.
      -
      Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum.
      -

      -
      Dec. 12th:
      -
      RECORDING: Bustin' My Chops
      -
      Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis. Nam magna enim, accumsan eu, blandit sed, blandit a, eros.
      -

      -
      Dec. 10th:
      -
      SESSION: Session Ended. Unavailable.
      -
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim.
      -

      -
      Nov. 29th:
      -
      SESSION: Session Ended. Unavailable.
      -
      Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer.
      -
      - + +<% if !signed_in? %> + <%= render "shared/landing_sidebar" %> +<% else %> + <%= render "shared/cta_sidebar" %> +<% end %> <% content_for :after_black_bar do %>
      -
      -

      Comments:


      -
      -
      - -
      -
      - -
      -
      -
      - Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. -
      -
      Yesterday, 2:45 pm
      -
      -
      -
      -
      + <%= render "shared/comments", :locals => {:comments => @claimed_recording.recording.comments} %> <% end %> diff --git a/web/app/views/shared/_comments.html.erb b/web/app/views/shared/_comments.html.erb new file mode 100644 index 000000000..024273321 --- /dev/null +++ b/web/app/views/shared/_comments.html.erb @@ -0,0 +1,22 @@ +
      +

      Comments:


      +
      + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> +
      +
      + +
      +
      + +
      +
      + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> +
      +
      + Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. +
      +
      Yesterday, 2:45 pm
      +
      +
      +
      +
      \ No newline at end of file diff --git a/web/app/views/shared/_cta_sidebar.html.erb b/web/app/views/shared/_cta_sidebar.html.erb index e69de29bb..7742e983b 100644 --- a/web/app/views/shared/_cta_sidebar.html.erb +++ b/web/app/views/shared/_cta_sidebar.html.erb @@ -0,0 +1,10 @@ +
      + +

      + <%= image_tag "web/carousel_musicians.jpg", {:width => 350, :alt => ""} %>

      + <%= image_tag "web/carousel_fans.jpg", {:width => 350, :alt => ""} %>

      + <%= image_tag "web/carousel_bands.jpg", {:width => 350, :alt => ""} %> +
      \ No newline at end of file diff --git a/web/app/views/shared/_landing_sidebar.html.erb b/web/app/views/shared/_landing_sidebar.html.erb index e69de29bb..01b80d4e2 100644 --- a/web/app/views/shared/_landing_sidebar.html.erb +++ b/web/app/views/shared/_landing_sidebar.html.erb @@ -0,0 +1,26 @@ +

      +

      More by Raven & The Blackbirds:


      +
      Now:
      + +
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis.
      +

      +
      Yesterday:
      +
      RECORDING: You Hurt Me Bad
      +
      Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi.
      +

      +
      Dec. 18th:
      +
      SESSION: Session Ended. Unavailable.
      +
      Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum.
      +

      +
      Dec. 12th:
      +
      RECORDING: Bustin' My Chops
      +
      Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis. Nam magna enim, accumsan eu, blandit sed, blandit a, eros.
      +

      +
      Dec. 10th:
      +
      SESSION: Session Ended. Unavailable.
      +
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim.
      +

      +
      Nov. 29th:
      +
      SESSION: Session Ended. Unavailable.
      +
      Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer.
      +
      \ No newline at end of file From cdb47bdd75ee4155213c81ebf0c741c8fe1f2382 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sat, 18 Jan 2014 21:03:15 -0500 Subject: [PATCH 08/15] fix band_session_join protobuf message --- pb/src/client_container.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pb/src/client_container.proto b/pb/src/client_container.proto index 9e16de1f4..4c9ebfa21 100644 --- a/pb/src/client_container.proto +++ b/pb/src/client_container.proto @@ -102,7 +102,6 @@ message ClientMessage { optional SessionJoin session_join = 190; optional SessionDepart session_depart = 195; optional MusicianSessionJoin musician_session_join = 196; - optional BandSessionJoin band_session_join = 197; // recording notifications optional MusicianRecordingSaved musician_recording_saved = 200; @@ -115,6 +114,7 @@ message ClientMessage { // band notifications optional BandInvitation band_invitation = 225; optional BandInvitationAccepted band_invitation_accepted = 230; + optional BandSessionJoin band_session_join = 235; optional MusicianSessionFresh musician_session_fresh = 240; optional MusicianSessionStale musician_session_stale = 245; From eea5cc781ead1413058db1ebbb3e9cc50101f54f Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sun, 19 Jan 2014 17:23:10 -0500 Subject: [PATCH 09/15] VRFS-986 landing page work --- ruby/lib/jam_ruby/models/track.rb | 4 + web/app/views/music_sessions/show.html.erb | 90 ++++++++++++++----- web/app/views/recordings/show.html.erb | 46 ++-------- web/app/views/shared/_comments.html.erb | 24 +++-- .../views/shared/_landing_sidebar.html.erb | 2 +- web/app/views/shared/_track_details.html.erb | 33 +++++++ 6 files changed, 129 insertions(+), 70 deletions(-) create mode 100644 web/app/views/shared/_track_details.html.erb diff --git a/ruby/lib/jam_ruby/models/track.rb b/ruby/lib/jam_ruby/models/track.rb index 76b428b09..2413028eb 100644 --- a/ruby/lib/jam_ruby/models/track.rb +++ b/ruby/lib/jam_ruby/models/track.rb @@ -14,6 +14,10 @@ module JamRuby validates :sound, :inclusion => {:in => SOUND} + def user + self.connection.user + end + def self.index(current_user, music_session_id) query = Track .joins( diff --git a/web/app/views/music_sessions/show.html.erb b/web/app/views/music_sessions/show.html.erb index d60140bb3..43c318db5 100644 --- a/web/app/views/music_sessions/show.html.erb +++ b/web/app/views/music_sessions/show.html.erb @@ -1,24 +1,72 @@ -<% provide(:title, "Now Playing: #{@music_session.description}") %> -
      - -
      -

      Internal Session Activity

      -
      -

      Wait a moment...

      -
      -
      +<% provide(:title, "#{@claimed_recording.name}") %> + +
      + <% unless @claimed_recording.recording.band.nil? %> +
      + <% unless @claimed_recording.recording.band.photo_url.blank? %> + <%= image_tag "#{@claimed_recording.recording.band.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic_band.png", {:alt => ""} %> + <% end %> +
      + <%= @claimed_recording.recording.band.name %> + <% else %> +
      + <% unless @claimed_recording.recording.owner.photo_url.blank? %> + <%= image_tag "#{@claimed_recording.recording.owner.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> + <% end %> +
      + <%= @claimed_recording.recording.owner.name %> + <% end %>
      -<% content_for :post_scripts do %> - +
      +
      RECORDING
      +
      <%= @claimed_recording.recording.created_at.strftime("%b %e %Y, %l:%M %p") %>
      +

      +

      <%= @claimed_recording.name %>

      + +
      TODO: Which field is this in the database??

      +
      +
      + <%= image_tag "content/icon_playbutton.png", {:width => 20, :height => 20} %> +
      +
      0:00
      +
      +
      <%= image_tag "content/slider_playcontrols.png", {:width => 5, :height => 16} %>
      +
      +
      4:59
      +
      +
      1:23
      +
      + +
      <%= @claimed_recording.genre_id.capitalize %>
      +
      + <%= @claimed_recording.recording.play_count %> + <%= image_tag "content/icon_arrow.png", {:width => 7, :height => 12, :align => "absmiddle"} %>     + <%= @claimed_recording.recording.comment_count %> + <%= image_tag "content/icon_comment.png", {:width => 13, :height => 12, :align => "absmiddle"} %>     + <%= @claimed_recording.recording.like_count %> + <%= image_tag "content/icon_like.png", {:width => 12, :height => 12, :align => "absmiddle"} %> +
      +
      +

      + <%= render :partial => "shared/track_details", :locals => {:tracks => @claimed_recording.recording.recorded_tracks} %> +
      +
      + +<% if signed_in? %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner} %> +<% else %> + <%= render :partial => "shared/cta_sidebar" %> +<% end %> + +<% content_for :after_black_bar do %> +
      + <%= render :partial => "shared/comments", :locals => {:comments => @claimed_recording.recording.comments} %> <% end %> diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb index b7f2c811e..43c318db5 100644 --- a/web/app/views/recordings/show.html.erb +++ b/web/app/views/recordings/show.html.erb @@ -24,7 +24,7 @@
      RECORDING
      -
      <%= @claimed_recording.recording.created_at %>
      +
      <%= @claimed_recording.recording.created_at.strftime("%b %e %Y, %l:%M %p") %>


      <%= @claimed_recording.name %>

      @@ -36,7 +36,7 @@
      <%= image_tag "content/icon_playbutton.png", {:width => 20, :height => 20} %>
      -
      0:00
      +
      0:00
      <%= image_tag "content/slider_playcontrols.png", {:width => 5, :height => 16} %>
      @@ -56,49 +56,17 @@


      - - <% @claimed_recording.recording.recorded_tracks.each_with_index do |track, index| %> - <% if index % 2 == 0 %> - - - <% end %> - - <% if index % 2 > 0 %> - - <% end %> - <% end %> -
       
      - - - - - - - -
      -
      - <% unless track.user.photo_url.blank? %> - <%= image_tag "#{track.user.photo_url}", {:alt => ""} %> - <% else %> - <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> - <% end %> -
      -
      <%= track.user.name %>
      -
      - <%= image_tag "content/icon_instrument_#{track.instrument_id.tr(" ", "_")}45.png", {:width => 32, :alt => ""} %> -
      -
      -
      + <%= render :partial => "shared/track_details", :locals => {:tracks => @claimed_recording.recording.recorded_tracks} %>

      -<% if !signed_in? %> - <%= render "shared/landing_sidebar" %> +<% if signed_in? %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner} %> <% else %> - <%= render "shared/cta_sidebar" %> + <%= render :partial => "shared/cta_sidebar" %> <% end %> <% content_for :after_black_bar do %>
      - <%= render "shared/comments", :locals => {:comments => @claimed_recording.recording.comments} %> + <%= render :partial => "shared/comments", :locals => {:comments => @claimed_recording.recording.comments} %> <% end %> diff --git a/web/app/views/shared/_comments.html.erb b/web/app/views/shared/_comments.html.erb index 024273321..955d8baae 100644 --- a/web/app/views/shared/_comments.html.erb +++ b/web/app/views/shared/_comments.html.erb @@ -9,14 +9,20 @@
      -
      - <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> -
      -
      - Billy Saban Ut eu ligula. Etiam ligula enim, tempor ut, blandit nec, mollis eu, lectus. -
      -
      Yesterday, 2:45 pm
      -
      -
      + <% comments.each do |c| %> +
      + <% unless c.user.photo_url.blank? %> + <%= image_tag "#{c.user.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> + <% end %> +
      +
      + <%= c.user.name %> <%= c.comment %> +
      +
      <%= c.created_at.strftime("%b %e %Y, %l:%M %p") %>
      +
      +
      + <% end %>
      \ No newline at end of file diff --git a/web/app/views/shared/_landing_sidebar.html.erb b/web/app/views/shared/_landing_sidebar.html.erb index 01b80d4e2..36cb3abfb 100644 --- a/web/app/views/shared/_landing_sidebar.html.erb +++ b/web/app/views/shared/_landing_sidebar.html.erb @@ -1,5 +1,5 @@

      -

      More by Raven & The Blackbirds:


      +

      More by <%= user.name %>:


      Now:
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis.
      diff --git a/web/app/views/shared/_track_details.html.erb b/web/app/views/shared/_track_details.html.erb new file mode 100644 index 000000000..9921c2807 --- /dev/null +++ b/web/app/views/shared/_track_details.html.erb @@ -0,0 +1,33 @@ + + <% tracks.each_with_index do |track, index| %> + <% if index % 2 == 0 %> + + + <% end %> + + <% if index % 2 > 0 %> + + <% end %> + <% end %> +
       
      + + + + + + + +
      +
      + <% unless track.user.photo_url.blank? %> + <%= image_tag "#{track.user.photo_url}", {:alt => ""} %> + <% else %> + <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> + <% end %> +
      +
      <%= track.user.name %>
      +
      + <%= image_tag "content/icon_instrument_#{track.instrument_id.tr(" ", "_")}45.png", {:width => 32, :alt => "", :title => "#{track.instrument_id}"} %> +
      +
      +
      \ No newline at end of file From 6660102982630544c281b22254cbc13beede0326 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Mon, 20 Jan 2014 09:28:06 -0500 Subject: [PATCH 10/15] VRFS-986 landing page work --- .../jam_ruby/models/music_session_history.rb | 1 + .../models/music_session_user_history.rb | 4 ++ .../controllers/music_sessions_controller.rb | 44 +------------------ web/app/views/music_sessions/show.html.erb | 38 +++++++--------- web/app/views/recordings/show.html.erb | 2 +- 5 files changed, 23 insertions(+), 66 deletions(-) diff --git a/ruby/lib/jam_ruby/models/music_session_history.rb b/ruby/lib/jam_ruby/models/music_session_history.rb index 1a6fd8418..a793cdad8 100644 --- a/ruby/lib/jam_ruby/models/music_session_history.rb +++ b/ruby/lib/jam_ruby/models/music_session_history.rb @@ -15,6 +15,7 @@ module JamRuby :foreign_key => :band_id, :inverse_of => :music_session_history) + has_many :music_session_history_users, :class_name => "JamRuby::MusicSessionUserHistory", :foreign_key => "music_session_id" has_many :comments, :class_name => "JamRuby::MusicSessionComment", :foreign_key => "music_session_id" has_many :likes, :class_name => "JamRuby::MusicSessionLiker", :foreign_key => "music_session_id" diff --git a/ruby/lib/jam_ruby/models/music_session_user_history.rb b/ruby/lib/jam_ruby/models/music_session_user_history.rb index 4e7a294b9..5bad18773 100644 --- a/ruby/lib/jam_ruby/models/music_session_user_history.rb +++ b/ruby/lib/jam_ruby/models/music_session_user_history.rb @@ -12,6 +12,10 @@ module JamRuby :foreign_key => "user_id", :inverse_of => :music_session_user_histories) + belongs_to(:music_session_history, + :class_name => "MusicSessionHistory", + :foreign_key => "music_session_id") + validates_inclusion_of :rating, :in => 0..2, :allow_nil => true after_save :track_user_progression diff --git a/web/app/controllers/music_sessions_controller.rb b/web/app/controllers/music_sessions_controller.rb index c72f6f22f..7087fdaad 100644 --- a/web/app/controllers/music_sessions_controller.rb +++ b/web/app/controllers/music_sessions_controller.rb @@ -1,50 +1,10 @@ class MusicSessionsController < ApplicationController - # have to be signed in currently to see this screen - before_filter :signed_in_user - respond_to :html - def index - @music_sessions = MusicSession.paginate(page: params[:page]) - end - def show - @music_session = MusicSession.find(params[:id]) - - # use gon to pass variables into javascript - gon.websocket_gateway_uri = Rails.application.config.websocket_gateway_uri - gon.music_session_id = @music_session.id - end - - def new - @music_session = MusicSession.new - end - - def create - @music_session = MusicSession.new() - @music_session.creator = current_user - @music_session.description = params[:jam_ruby_music_session][:description] - if @music_session.save - flash[:success] = "Music Session created" - redirect_to @music_session - else - render 'new' - end - end - - - def edit - end - - def update - - end - - def destroy - MusicSession.find(params[:id]).destroy - flash[:success] = "Jam Session deleted." - redirect_to music_sessions_url + @music_session = MusicSessionHistory.find_by_music_session_id(params[:id]) + render :layout => "web" end end diff --git a/web/app/views/music_sessions/show.html.erb b/web/app/views/music_sessions/show.html.erb index 43c318db5..5751dd68c 100644 --- a/web/app/views/music_sessions/show.html.erb +++ b/web/app/views/music_sessions/show.html.erb @@ -1,32 +1,32 @@ -<% provide(:title, "#{@claimed_recording.name}") %> +<% provide(:title, "#{@music_session.description}") %>
      - <% unless @claimed_recording.recording.band.nil? %> + <% unless @music_session.band.nil? %>
      - <% unless @claimed_recording.recording.band.photo_url.blank? %> - <%= image_tag "#{@claimed_recording.recording.band.photo_url}", {:alt => ""} %> + <% unless @music_session.band.photo_url.blank? %> + <%= image_tag "#{@music_session.band.photo_url}", {:alt => ""} %> <% else %> <%= image_tag "shared/avatar_generic_band.png", {:alt => ""} %> <% end %>
      - <%= @claimed_recording.recording.band.name %> + <%= @music_session.band.name %> <% else %>
      - <% unless @claimed_recording.recording.owner.photo_url.blank? %> - <%= image_tag "#{@claimed_recording.recording.owner.photo_url}", {:alt => ""} %> + <% unless @music_session.creator.photo_url.blank? %> + <%= image_tag "#{@music_session.creator.photo_url}", {:alt => ""} %> <% else %> <%= image_tag "shared/avatar_generic.png", {:alt => ""} %> <% end %>
      - <%= @claimed_recording.recording.owner.name %> + <%= @music_session.creator.name %> <% end %>
      -
      RECORDING
      -
      <%= @claimed_recording.recording.created_at.strftime("%b %e %Y, %l:%M %p") %>
      +
      SESSION: Live Session in Progress
      +
      <%= @cmusic_session.created_at.strftime("%b %e %Y, %l:%M %p") %>


      -

      <%= @claimed_recording.name %>

      +

      <%= @music_session.name %>

      <%= image_tag "content/icon_like.png", {:width => 12, :height => 12} %> LIKE    <%= image_tag "content/icon_share.png", {:width => 13, :height => 15} %> SHARE @@ -34,22 +34,14 @@
      TODO: Which field is this in the database??

      - <%= image_tag "content/icon_playbutton.png", {:width => 20, :height => 20} %> -
      -
      0:00
      -
      -
      <%= image_tag "content/slider_playcontrols.png", {:width => 5, :height => 16} %>
      -
      -
      4:59
      -
      + <%= image_tag "content/icon_playbutton.png", {:width => 20, :height => 20} %> +
      LIVE SESSION IN PROGRESS
      1:23
      -
      <%= @claimed_recording.genre_id.capitalize %>
      +
      <%= @music_session.genres.split('|').first.id.capitalize %>
      - <%= @claimed_recording.recording.play_count %> - <%= image_tag "content/icon_arrow.png", {:width => 7, :height => 12, :align => "absmiddle"} %>     - <%= @claimed_recording.recording.comment_count %> + <%= @music_session.comment_count %> <%= image_tag "content/icon_comment.png", {:width => 13, :height => 12, :align => "absmiddle"} %>     <%= @claimed_recording.recording.like_count %> <%= image_tag "content/icon_like.png", {:width => 12, :height => 12, :align => "absmiddle"} %> diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb index 43c318db5..8e3173d52 100644 --- a/web/app/views/recordings/show.html.erb +++ b/web/app/views/recordings/show.html.erb @@ -61,7 +61,7 @@
      <% if signed_in? %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner, :recent_events => ""} %> <% else %> <%= render :partial => "shared/cta_sidebar" %> <% end %> From f4f54f579e0b80df7b9c7e9b31e85bb6f80ff394 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 21 Jan 2014 01:49:45 -0500 Subject: [PATCH 11/15] VRFS-986 pass recent_history to partial --- web/app/views/music_sessions/show.html.erb | 4 ++-- web/app/views/recordings/show.html.erb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web/app/views/music_sessions/show.html.erb b/web/app/views/music_sessions/show.html.erb index 426e4452c..1894612a5 100644 --- a/web/app/views/music_sessions/show.html.erb +++ b/web/app/views/music_sessions/show.html.erb @@ -54,9 +54,9 @@ <% if signed_in? %> <% unless @music_session.band.nil? %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.band, :recent_history => ""} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.band, :recent_history => @music_session.band.recent_history} %> <% else %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.user, :recent_history => ""} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.user, :recent_history => @music_session.user.recent_history} %> <% end %> <% else %> <%= render :partial => "shared/cta_sidebar" %> diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb index f3ba82f57..2fe3092b4 100644 --- a/web/app/views/recordings/show.html.erb +++ b/web/app/views/recordings/show.html.erb @@ -62,9 +62,9 @@ <% if signed_in? %> <% unless @claimed_recording.recording.band.nil? %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.band, :recent_history => ""} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.band, :recent_history => @claimed_recording.recording.band.recent_history} %> <% else %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner, :recent_events => ""} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner, :recent_history => @claimed_recording.recording.owner.recent_history} %> <% end %> <% else %> <%= render :partial => "shared/cta_sidebar" %> From d6a38f6bee4c253e1537689e8a41134f6cfcdb33 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Thu, 23 Jan 2014 21:43:49 -0500 Subject: [PATCH 12/15] VRFS-986 bug fixes --- db/up/music_session_constraints.sql | 2 +- ruby/lib/jam_ruby/models/music_session_user_history.rb | 2 +- web/config/environments/development.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/db/up/music_session_constraints.sql b/db/up/music_session_constraints.sql index 72f2bccd4..f070bc571 100644 --- a/db/up/music_session_constraints.sql +++ b/db/up/music_session_constraints.sql @@ -6,4 +6,4 @@ ON UPDATE NO ACTION ON DELETE CASCADE; alter table music_sessions_likers drop constraint music_sessions_likers_music_session_id_fkey; alter table music_sessions_likers add constraint ms_likers_ms_history_fkey foreign key (music_session_id) references music_sessions_history(music_session_id) match simple -ON UPDATE NO ACTION ON DELETE CASCADE; +ON UPDATE NO ACTION ON DELETE CASCADE; \ No newline at end of file diff --git a/ruby/lib/jam_ruby/models/music_session_user_history.rb b/ruby/lib/jam_ruby/models/music_session_user_history.rb index 5a8e43f8d..5939f8bff 100644 --- a/ruby/lib/jam_ruby/models/music_session_user_history.rb +++ b/ruby/lib/jam_ruby/models/music_session_user_history.rb @@ -35,7 +35,7 @@ module JamRuby session_user_history.music_session_id = music_session_id session_user_history.user_id = user_id session_user_history.client_id = client_id - session_user_history.instruments = tracks.map {|t| t.instrument_id}.join("|") + session_user_history.instruments = tracks.map {|t| t[:instrument_id]}.join("|") session_user_history.save end diff --git a/web/config/environments/development.rb b/web/config/environments/development.rb index 0fa697e0d..6aec3027a 100644 --- a/web/config/environments/development.rb +++ b/web/config/environments/development.rb @@ -48,7 +48,7 @@ SampleApp::Application.configure do config.assets.debug = false # Set the logging destination(s) - # config.log_to = %w[stdout file] + config.log_to = %w[stdout file] # Show the logging configuration on STDOUT config.show_log_configuration = true From dcea2386312787bbf9857ba75f6fb803dbbe0232 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sat, 25 Jan 2014 10:37:15 -0500 Subject: [PATCH 13/15] VRFS-1020 share dialog work --- web/app/assets/javascripts/session.js | 1 + web/app/assets/javascripts/shareDialog.js | 102 +++++++++ web/app/assets/javascripts/web/recordings.js | 26 +-- web/app/assets/javascripts/web/sessions.js | 26 +-- web/app/assets/javascripts/web/web.js | 3 + web/app/assets/stylesheets/client/client.css | 2 + .../stylesheets/client/screen_common.css.scss | 201 +++++++----------- .../stylesheets/client/shareDialog.css.scss | 11 + .../assets/stylesheets/client/widget.css.scss | 185 ++++++++++++++++ web/app/assets/stylesheets/web/web.css | 2 + web/app/views/clients/_session.html.erb | 3 +- web/app/views/clients/_shareDialog.html.erb | 120 +++++++++++ web/app/views/clients/index.html.erb | 3 + web/app/views/music_sessions/show.html.erb | 2 + 14 files changed, 516 insertions(+), 171 deletions(-) create mode 100644 web/app/assets/javascripts/shareDialog.js create mode 100644 web/app/assets/stylesheets/client/shareDialog.css.scss create mode 100644 web/app/assets/stylesheets/client/widget.css.scss create mode 100644 web/app/views/clients/_shareDialog.html.erb diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index e017d1de6..d85a15b30 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -1319,6 +1319,7 @@ configureTrackDialog.showVoiceChatPanel(true); configureTrackDialog.showMusicAudioPanel(true); }); + $('#close-playback-recording').on('click', closeRecording); $(playbackControls) .on('pause', onPause) diff --git a/web/app/assets/javascripts/shareDialog.js b/web/app/assets/javascripts/shareDialog.js new file mode 100644 index 000000000..ddf0640ce --- /dev/null +++ b/web/app/assets/javascripts/shareDialog.js @@ -0,0 +1,102 @@ +(function(context,$) { + + "use strict"; + context.JK = context.JK || {}; + context.JK.ShareDialog = function(app) { + var logger = context.JK.logger; + var rest = context.JK.Rest(); + + function registerEvents(onOff) { + + } + + /*function showEmailDialog() { + $('#invitation-dialog').show(); + $('#invitation-textarea-container').show(); + $('#invitation-checkbox-container').hide(); + $('#btn-send-invitation').show(); + $('#btn-next-invitation').hide(); + clearTextFields(); + app.layout.showDialog('inviteUsers') + } + + function showGoogleDialog() { + $('#invitation-dialog').show(); + $('#invitation-textarea-container').hide(); + $('#invitation-checkbox-container').show(); + $('#btn-send-invitation').hide(); + $('#btn-next-invitation').show(); + clearTextFields(); + + app.layout.showDialog('inviteUsers') + + $('#invitation-checkboxes').html('
      Loading your contacts...
      '); + window._oauth_callback = function() { + window._oauth_win.close(); + window._oauth_win = null; + window._oauth_callback = null; + $.ajax({ + type: "GET", + url: "/gmail_contacts", + success: function(response) { + $('#invitation-checkboxes').html(''); + for (var i in response) { + $('#invitation-checkboxes').append(""); + } + + $('.invitation-checkbox').change(function() { + var checkedBoxes = $('.invitation-checkbox:checkbox:checked'); + var emails = ''; + for (var i = 0; i < checkedBoxes.length; i++) { + emails += $(checkedBoxes[i]).data('email') + ', '; + } + emails = emails.replace(/, $/, ''); + // track how many of these came from google + $('#txt-emails').val(emails).data('google_invite_count', checkedBoxes.length); + }); + }, + error: function() { + $('#invitation-checkboxes').html("Load failed!"); + } + }); + + }; + window._oauth_win = window.open("/auth/google_login", "_blank", "height=500,width=500,menubar=no,resizable=no,status=no"); + } + + function showFacebookDialog() { + window._oauth_callback = function() { + window._oauth_win.close(); + window._oauth_win = null; + window._oauth_callback = null; + }; + window._oauth_win = window.open("/auth/facebook_login", "_blank", "height=500,width=500,menubar=no,resizable=no,status=no"); + }*/ + + function clearTextFields() { + + } + + function beforeShow() { + registerEvents(true); + } + + function afterHide() { + registerEvents(false); + } + + function initialize(){ + var dialogBindings = { + 'beforeShow' : beforeShow, + 'afterHide': afterHide + }; + + app.bindDialog('shareSessionRecording', dialogBindings); + }; + + + this.initialize = initialize; + } + + return this; +})(window,jQuery); \ No newline at end of file diff --git a/web/app/assets/javascripts/web/recordings.js b/web/app/assets/javascripts/web/recordings.js index a6e6d51eb..2ab8ba2bf 100644 --- a/web/app/assets/javascripts/web/recordings.js +++ b/web/app/assets/javascripts/web/recordings.js @@ -1,32 +1,10 @@ $(function() { - function search() { - var locationQuery = $('#location').val().length > 0 ? $('#location').val() : ''; + function like() { - var searchUrl = "/search"; - if (locationQuery.length > 0) { - searchUrl = searchUrl + "?location=" + encodeURIComponent(locationQuery); - - if ($('#activity').val().length > 0) { - searchUrl = searchUrl + "&activity=" + encodeURIComponent($('#activity').val()); - } - } - else { - if ($('#activity').val().length > 0) { - searchUrl = searchUrl + "?activity=" + encodeURIComponent($('#activity').val()); - } - } - - window.location.href = searchUrl; } // search click handler - $('#btnSearch').click(search); + $('#btnlike').click(like); - $("#location").keypress(function(evt) { - if (evt.which === 13) { - evt.preventDefault(); - search(); - } - }); }); \ No newline at end of file diff --git a/web/app/assets/javascripts/web/sessions.js b/web/app/assets/javascripts/web/sessions.js index a6e6d51eb..2ab8ba2bf 100644 --- a/web/app/assets/javascripts/web/sessions.js +++ b/web/app/assets/javascripts/web/sessions.js @@ -1,32 +1,10 @@ $(function() { - function search() { - var locationQuery = $('#location').val().length > 0 ? $('#location').val() : ''; + function like() { - var searchUrl = "/search"; - if (locationQuery.length > 0) { - searchUrl = searchUrl + "?location=" + encodeURIComponent(locationQuery); - - if ($('#activity').val().length > 0) { - searchUrl = searchUrl + "&activity=" + encodeURIComponent($('#activity').val()); - } - } - else { - if ($('#activity').val().length > 0) { - searchUrl = searchUrl + "?activity=" + encodeURIComponent($('#activity').val()); - } - } - - window.location.href = searchUrl; } // search click handler - $('#btnSearch').click(search); + $('#btnlike').click(like); - $("#location").keypress(function(evt) { - if (evt.which === 13) { - evt.preventDefault(); - search(); - } - }); }); \ No newline at end of file diff --git a/web/app/assets/javascripts/web/web.js b/web/app/assets/javascripts/web/web.js index f1e3438e6..0cde1c7d7 100644 --- a/web/app/assets/javascripts/web/web.js +++ b/web/app/assets/javascripts/web/web.js @@ -6,6 +6,7 @@ //= require AAC_underscore //= require globals //= require invitationDialog +//= require shareDialog //= require layout //= require user_dropdown //= require jamkazam @@ -16,3 +17,5 @@ //= require landing/signup //= require web/downloads //= require web/congratulations +//= require web/sessions +//= require web/recordings diff --git a/web/app/assets/stylesheets/client/client.css b/web/app/assets/stylesheets/client/client.css index a852d46bf..77fa35555 100644 --- a/web/app/assets/stylesheets/client/client.css +++ b/web/app/assets/stylesheets/client/client.css @@ -32,6 +32,8 @@ *= require ./search *= require ./ftue *= require ./invitationDialog + *= require ./shareDialog + *= require ./widget *= require ./recordingFinishedDialog *= require ./localRecordingsDialog *= require ./createSession diff --git a/web/app/assets/stylesheets/client/screen_common.css.scss b/web/app/assets/stylesheets/client/screen_common.css.scss index 98fd15a4b..8b7b259d0 100644 --- a/web/app/assets/stylesheets/client/screen_common.css.scss +++ b/web/app/assets/stylesheets/client/screen_common.css.scss @@ -169,8 +169,8 @@ a { display:inline-block; } -small { - font-size:11px; +small, .small { + font-size:11px; } .button-grey { @@ -207,6 +207,11 @@ small { text-decoration:none; } +.smallbutton { + font-size:10px; + padding:2px 8px; +} + .button-orange:hover { background-color:#f16750; color:#FFF; @@ -230,49 +235,24 @@ a img { border:none; } -.clearall { - clear:both; -} +.clearall {clear:both;} +.left {float:left;} +.right {float:right;} +.center {text-align:center !important;} -.left { - float:left; -} - -.right { - float:right; -} - -.f8 { - font-size: 8px !important; -} - -.f9 { - font-size: 9px !important; -} - -.f10 { - font-size: 10px !important; -} - -.f11 { - font-size: 11px !important; -} - -.f12 { - font-size: 12px !important; -} - -.f13 { - font-size: 13px !important; -} - -.f14 { - font-size: 14px !important; -} - -.f15 { - font-size: 15px !important; -} +.f8 {font-size:8px !important} +.f9 {font-size:9px !important} +.f10 {font-size:10px !important} +.f11 {font-size:11px !important} +.f12 {font-size:12px !important} +.f13 {font-size:13px !important} +.f14 {font-size:14px !important} +.f15 {font-size:15px !important} +.f16 {font-size:16px !important} +.f17 {font-size:17px !important} +.f18 {font-size:18px !important} +.f19 {font-size:19px !important} +.f20 {font-size:20px !important} .m0 { margin: 0 !important; @@ -322,73 +302,54 @@ a img { margin-left:25px; } -.ml30 { - margin-left:30px; -} +.ml30 {margin-left:30px;} +.ml35 {margin-left:35px;} +.ml45 {margin-left:45px;} -.ml35 { - margin-left:35px; -} +.mt5 {margin-top:5px;} +.mt10 {margin-top:10px;} +.mt15 {margin-top:15px;} +.mt20 {margin-top:20px;} +.mt25 {margin-top:25px;} +.mt30 {margin-top:30px;} +.mt35 {margin-top:35px;} +.mt40 {margin-top:40px;} +.mt45 {margin-top:45px;} +.mt50 {margin-top:50px;} +.mt55 {margin-top:55px;} +.mt65 {margin-top:65px;} -.ml45 { - margin-left:45px; -} +.mb5 {margin-bottom:5px;} +.mb15 {margin-bottom:15px;} -.mt5 { - margin-top:5px; -} +.w0 {width:0% !important} +.w5 {width:5% !important} +.w10 {width:10% !important} +.w15 {width:15% !important} +.w20 {width:20% !important} +.w25 {width:25% !important} +.w30 {width:30% !important} +.w35 {width:35% !important} +.w40 {width:40% !important} +.w45 {width:45% !important} +.w50 {width:50% !important} +.w55 {width:55% !important} +.w60 {width:60% !important} +.w65 {width:65% !important} +.w70 {width:70% !important} +.w75 {width:75% !important} +.w80 {width:80% !important} +.w85 {width:85% !important} +.w90 {width:90% !important} +.w95 {width:95% !important} +.w100 {width:100% !important} -.mt10 { - margin-top:10px; -} - -.mt15 { - margin-top:15px; -} - -.mt20 { - margin-top:20px; -} - -.mt25 { - margin-top:25px; -} - -.mt30 { - margin-top:30px; -} - -.mt35 { - margin-top:35px; -} - -.mt40 { - margin-top:40px; -} - -.mt45 { - margin-top:45px; -} - -.mt50 { - margin-top:50px; -} - -.mt55 { - margin-top:55px; -} - -.mt65 { - margin-top:65px; -} - -.mb5 { - margin-bottom:5px; -} - -.mb15 { - margin-bottom:15px; -} +.p5 {padding:5px !important} +.p10 {padding:10px !important} +.p15 {padding:15px !important} +.p20 {padding:20px !important} +.p25 {padding:25px !important} +.p30 {padding:30px !important} .op50 { opacity: .5; @@ -443,20 +404,16 @@ a img { width:239px; } -.white { - color:#fff; -} - -.lightgrey { - color:#ccc; -} - -.grey { - color:#999; -} - -.darkgrey { - color:#333; -} +.white {color:#fff;} +.lightgrey {color:#ccc;} +.grey {color:#999;} +.darkgrey {color:#333;} +.orange {color:#ED3618 !important;} +.teal {color:#2b8897;} +.green-fill {background-color:#72a43b;} +.gold-fill {background-color:#cc9900;} +.red-fill {background-color:#660000;} +.orange-fill {background-color:#ed3618;} +.teal-fill {background-color:#0b6672;} /* End of Jeff's common.css file */ diff --git a/web/app/assets/stylesheets/client/shareDialog.css.scss b/web/app/assets/stylesheets/client/shareDialog.css.scss new file mode 100644 index 000000000..7a7d32c3e --- /dev/null +++ b/web/app/assets/stylesheets/client/shareDialog.css.scss @@ -0,0 +1,11 @@ +@import 'widget.css.scss' + +h3 { + display: block; + font-size: 1.17em !important; + -webkit-margin-before: 1em; + -webkit-margin-after: 1em; + -webkit-margin-start: 0px; + -webkit-margin-end: 0px; + font-weight: bold; +} \ No newline at end of file diff --git a/web/app/assets/stylesheets/client/widget.css.scss b/web/app/assets/stylesheets/client/widget.css.scss new file mode 100644 index 000000000..23c82020d --- /dev/null +++ b/web/app/assets/stylesheets/client/widget.css.scss @@ -0,0 +1,185 @@ +body.widgets { + background:#fff; + padding:20px; +} + +.widget { + width:430px; + height:180px; + background:#353535; + border:solid 1px; + text-align:left; +} + +.widget.session { + border-color:#0b6672; +} + +.widget.recording { + border-color:#ed3618; +} + +.widget-header { + color:#fff; + font-size:17px; + padding:8px; +} + +.widget-content { + width:100%; + color:#ccc; + position:relative; +} + +.widget-avatar { + top:15px; + left:15px; + position:absolute; + padding:2px; + width:110px; + height:110px; + background-color:#ed3618; + -webkit-border-radius:57px; + -moz-border-radius:57px; + border-radius:57px; + margin-bottom:10px; +} + +.widget-avatar img { + width:110px; + height:110px; + -webkit-border-radius:55px; + -moz-border-radius:55px; + border-radius:55px; +} + +.widget-playbutton { + position:absolute; + top:55px; + left:55px; + width:35px; + height:31px; + background-image:url(../images/shared/play_button.png); + background-repeat:no-repeat; +} + +.widget-pausebutton { + position:absolute; + top:55px; + left:55px; + width:35px; + height:31px; + background-image:url(../images/shared/pause_button.png); + background-repeat:no-repeat; +} + +.widget-title { + font-size:18px; + position:absolute; + top:20px; + left:153px; + width:260px; + height:22px; + overflow:hidden; + white-space:nowrap; + text-overflow:ellipsis; +} + +.widget-description { + font-size:13px; + position:absolute; + top:15px; + left:153px; + width:260px; + height:32px; + overflow:hidden; + text-overflow:ellipsis; +} + +.widget-controls { + position:absolute; + top:25px; + left:153px; + width:270px; + height:32px; +} + +.widget-members { + position:absolute; + left:153px; + top:60px; + width:280px; + height:38px; + overflow:hidden; +} + +.widget-social { + position:absolute; + top:75px; + left:153px; + width:270px; + height:20px; + font-size:13px; +} + +.widget-branding { + position: absolute; + top: 110px; + right: 8px; + width: 270px; + height: 34px; + font-size: 13px; + text-align:right; +} + +.widget .recording-controls { + margin-top:0px; + height:22px; + padding:8px 5px; +} + +.widget .recording-playback { + width:65%; +} + +.widget .recording-position { + margin-left:-30px; + width:95%; +} + +.widget .recording-current { + top:8px; +} + +.widget a { + color:#ccc; + text-decoration:none; +} + +img.space { + margin-left:28px; +} + +.widget a:hover { + color:#fff; +} + +.widget-avatar-small { + float:left; + padding:1px; + width: 36px; + height:36px; + background-color:#ed3618; + -webkit-border-radius:18px; + -moz-border-radius:18px; + border-radius:18px; + margin-right:15px; +} + +.widget-avatar-small img { + width: 36px; + height: 36px; + -webkit-border-radius:18px; + -moz-border-radius:18px; + border-radius:18px; +} diff --git a/web/app/assets/stylesheets/web/web.css b/web/app/assets/stylesheets/web/web.css index 59db0c313..fb5b53926 100644 --- a/web/app/assets/stylesheets/web/web.css +++ b/web/app/assets/stylesheets/web/web.css @@ -7,6 +7,8 @@ *= require client/user_dropdown *= require client/dialog *= require client/invitationDialog +*= require client/shareDialog +*= require client/widget *= require web/main *= require web/footer *= require web/recordings diff --git a/web/app/views/clients/_session.html.erb b/web/app/views/clients/_session.html.erb index 308178ef1..43085a35b 100644 --- a/web/app/views/clients/_session.html.erb +++ b/web/app/views/clients/_session.html.erb @@ -18,7 +18,7 @@ <%= image_tag "content/icon_settings_sm.png", {:align => "texttop", :height => 12, :width => 12} %> SETTINGS - + <%= image_tag "content/icon_share.png", {:align => "texttop", :height => 12, :width => 12} %> SHARE @@ -137,6 +137,7 @@ <%= render "addNewGear" %> <%= render "error" %> <%= render "sessionSettings" %> +<%= render "shareDialog" %>