From 238fba1fc3958b0cd7cd7c3d33e135de974353ab Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 19 Feb 2014 20:04:06 -0500 Subject: [PATCH 1/5] fix bug with recording link/hover bubble in landing page sidebar --- web/app/views/shared/_landing_sidebar.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/app/views/shared/_landing_sidebar.html.erb b/web/app/views/shared/_landing_sidebar.html.erb index c7ddd78d4..ab14d09fc 100644 --- a/web/app/views/shared/_landing_sidebar.html.erb +++ b/web/app/views/shared/_landing_sidebar.html.erb @@ -10,7 +10,7 @@
RECORDING: - Test + Test
<% elsif history_record.instance_of? MusicSessionHistory %> From f388f1c7e261902bb62192e96e33d942bbfcc4dc Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 19 Feb 2014 20:06:40 -0500 Subject: [PATCH 2/5] add likes and play count back to model...not sure how it got deleted --- ruby/lib/jam_ruby/models/recording.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ruby/lib/jam_ruby/models/recording.rb b/ruby/lib/jam_ruby/models/recording.rb index 8fc666e0f..7e8ea3ac9 100644 --- a/ruby/lib/jam_ruby/models/recording.rb +++ b/ruby/lib/jam_ruby/models/recording.rb @@ -40,6 +40,14 @@ module JamRuby self.band_id = nil if self.band_id == '' end + def like_count + self.likes.size + end + + def play_count + self.plays.size + end + def comment_count self.comments.size end From c95a650cdcb9f6fbc99b03f2c907a4e8d5206938 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 19 Feb 2014 20:31:44 -0500 Subject: [PATCH 3/5] add POST button to landing pages for comments, add like_count back to session model --- .../jam_ruby/models/music_session_history.rb | 5 ++++- web/app/assets/javascripts/web/recordings.js | 12 +++++----- web/app/assets/javascripts/web/sessions.js | 22 +++++++++---------- web/app/assets/stylesheets/web/main.css.scss | 13 +++++++++++ web/app/views/shared/_comments.html.erb | 3 +++ 5 files changed, 36 insertions(+), 19 deletions(-) diff --git a/ruby/lib/jam_ruby/models/music_session_history.rb b/ruby/lib/jam_ruby/models/music_session_history.rb index 29be1f4e1..b98d1d106 100644 --- a/ruby/lib/jam_ruby/models/music_session_history.rb +++ b/ruby/lib/jam_ruby/models/music_session_history.rb @@ -39,11 +39,14 @@ module JamRuby feed.music_session_history = self end + def like_count + self.likes.size + end + def comment_count self.comments.size end - def tracks tracks = [] self.music_session_user_histories.each do |msuh| diff --git a/web/app/assets/javascripts/web/recordings.js b/web/app/assets/javascripts/web/recordings.js index e942bcd5f..4644d5beb 100644 --- a/web/app/assets/javascripts/web/recordings.js +++ b/web/app/assets/javascripts/web/recordings.js @@ -53,12 +53,12 @@ shareDialog.showDialog(); }); - $("#txtRecordingComment", $scope).keypress(function(e) { - if (e.which === 13) { - addComment(); - $(this).val(''); - $(this).blur(); - } + $("#btnPostComment").click(function(e) { + if ($.trim($("#txtRecordingComment").val()).length > 0) { + addComment(); + $("#txtRecordingComment").val(''); + $("#txtRecordingComment").blur(); + } }); } else { diff --git a/web/app/assets/javascripts/web/sessions.js b/web/app/assets/javascripts/web/sessions.js index 05e79e7db..19f01c8d7 100644 --- a/web/app/assets/javascripts/web/sessions.js +++ b/web/app/assets/javascripts/web/sessions.js @@ -36,20 +36,18 @@ sessionId = musicSessionId; if (JK.currentUserId) { - var shareDialog = new JK.ShareDialog(context.JK.app, sessionId, "session"); - shareDialog.initialize(JK.FacebookHelperInstance); + var shareDialog = new JK.ShareDialog(context.JK.app, sessionId, "session"); + shareDialog.initialize(JK.FacebookHelperInstance); - $("#btnShare").click(function(e) { - shareDialog.showDialog(); - }); + $("#btnShare").click(function(e) { + shareDialog.showDialog(); + }); - $("#txtSessionComment").keypress(function(e) { - if (e.which === 13) { - addComment(); - $(this).val(''); - $(this).blur(); - } - }); + $("#btnPostComment").click(function(e) { + addComment(); + $(this).val(''); + $(this).blur(); + }); } else { $("#txtSessionComment").attr("disabled", "disabled"); diff --git a/web/app/assets/stylesheets/web/main.css.scss b/web/app/assets/stylesheets/web/main.css.scss index 7942f386d..c2ba9e1be 100644 --- a/web/app/assets/stylesheets/web/main.css.scss +++ b/web/app/assets/stylesheets/web/main.css.scss @@ -159,6 +159,19 @@ body.web { font-weight:bold; color:#ED3618; } + + .button-orange { + margin: 0px 8px 0px 8px; + background-color: #ED3618; + border: solid 1px #F27861; + outline: solid 2px #ED3618; + padding: 3px 10px; + font-size: 12px; + font-weight: 300; + cursor: pointer; + color: #FC9; + text-decoration: none; + } } .landing-comment-scroller { diff --git a/web/app/views/shared/_comments.html.erb b/web/app/views/shared/_comments.html.erb index 116c6bf51..c13f3559a 100644 --- a/web/app/views/shared/_comments.html.erb +++ b/web/app/views/shared/_comments.html.erb @@ -6,6 +6,9 @@
+
+ POST +

From 76d8e84a620408087e9983e0b18e5a0dc1745b9a Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 19 Feb 2014 20:35:34 -0500 Subject: [PATCH 4/5] check for empty comment before posting --- web/app/assets/javascripts/web/sessions.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/web/app/assets/javascripts/web/sessions.js b/web/app/assets/javascripts/web/sessions.js index 19f01c8d7..7a95a05e8 100644 --- a/web/app/assets/javascripts/web/sessions.js +++ b/web/app/assets/javascripts/web/sessions.js @@ -36,18 +36,20 @@ sessionId = musicSessionId; if (JK.currentUserId) { - var shareDialog = new JK.ShareDialog(context.JK.app, sessionId, "session"); - shareDialog.initialize(JK.FacebookHelperInstance); + var shareDialog = new JK.ShareDialog(context.JK.app, sessionId, "session"); + shareDialog.initialize(JK.FacebookHelperInstance); - $("#btnShare").click(function(e) { - shareDialog.showDialog(); - }); + $("#btnShare").click(function(e) { + shareDialog.showDialog(); + }); - $("#btnPostComment").click(function(e) { - addComment(); - $(this).val(''); - $(this).blur(); - }); + $("#btnPostComment").click(function(e) { + if ($.trim($("#txtSessionComment").val()).length > 0) { + addComment(); + $("#txtSessionComment").val(''); + $("#txtSessionComment").blur(); + } + }); } else { $("#txtSessionComment").attr("disabled", "disabled"); From 9bd673e67d85e10cbfffc791816bbafb8812f958 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 19 Feb 2014 21:07:03 -0500 Subject: [PATCH 5/5] VRFS-1185 fix piano and upright bass icons --- .../images/content/icon_instrument_piano24.png | Bin 0 -> 758 bytes .../images/content/icon_instrument_piano45.png | Bin 0 -> 1335 bytes .../content/icon_instrument_upright_bass24.png | Bin 0 -> 961 bytes .../content/icon_instrument_upright_bass45.png | Bin 0 -> 1990 bytes web/app/assets/images/shared/icon_piano_256.png | Bin 0 -> 3884 bytes .../images/shared/icon_upright_bass_256.png | Bin 0 -> 14033 bytes web/app/assets/javascripts/utils.js | 4 ++-- 7 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 web/app/assets/images/content/icon_instrument_piano24.png create mode 100644 web/app/assets/images/content/icon_instrument_piano45.png create mode 100644 web/app/assets/images/content/icon_instrument_upright_bass24.png create mode 100644 web/app/assets/images/content/icon_instrument_upright_bass45.png create mode 100644 web/app/assets/images/shared/icon_piano_256.png create mode 100644 web/app/assets/images/shared/icon_upright_bass_256.png diff --git a/web/app/assets/images/content/icon_instrument_piano24.png b/web/app/assets/images/content/icon_instrument_piano24.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5761df97ebde69203dd88e4fb83609c329fff5 GIT binary patch literal 758 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877l!}s{b%+Ad7K3vkswhI zFm^kcZ3k2#?CIhdVsU!vWPgv#i89CR_m}S%Q#tGFY9yPy)pLu|2Y$EKjMP9uxkb%) z*Ek0p*Nb&~-dC#8v!c8G1V`5fo?vIsiCt`|x6Zf;J9SL_!XBCJ-yR?RPkY<*51;<- zd;i?BX8!kD-A_UhES4U|jMo^sRU{t@7H$fgx9O9?m4YrYJHultnl1fNvp5V+nc6)G zWS_p&?CWapuTjd!-@VzrC3d>Wk}^r%Ll+BsU#~fpa(Z#l&ZiT@^VUue&#Sz$Qrzlg zgbw4I<=vWE9>xyRZFW%_3;W%)Bo<7|stY(-`L2mEtK-sH-lipz$C8xKcLuvN``+N0 zl*Vow^Gqi3_yy0F+dQ9pGk^U&Vbk2hoG|05VxiHVCDQuo25kzm64Opc1#%bmbR^0r zZW39fQ^zMAwUPUf>{h95VvUEzoGSy_=0_UEF&ZuDdi0!k@@lyk@?WhF3rJoo>ad-% zVdmZ+noDQ4**k_6Hwc)0l{v_6N>sVv96UfPS}YNvmRh*#;&@Vm4kO+_^{ zz2ma;JG0`|Ta~z$?{`1LaJ_TwCyQz4Q!37j)=4TjPC5VMU-k->!>notwh7oQ=;`i= zO!Ii8$ddV`s!7_CD`%j(~0qnl_5)gvo84Vy~uep%A`lQ zwBxeLr)lX&JQeq}+&F3$S3I?I>CPuUdP*{>=AkRdP`(kYX@0Ff`URFw-?O3o)>?GBUCDSr1<%~X^wgl##FWay Slc_d9MGT&j#v6BB`XM zP$9Hd0&OjA13`Z~Fc&W++pd8AqMDtCxHK=XcLL_uP+T5v2(X3n*bF#T1ZD3J$|u z<0740V1OwrinSFH3Yk<>$2yiW50^XsTaE(U`^}N24SFYOh zl2Q}{I9u;)NE7-_&nWd_=nN%F(rWFOPovtayvW+1c!`=crHiW9+$hp;n`G6gO|DLA zRRjwmv|O!nbwow6V8iV4v`>C@YE8JE6}EJR?B^-Ir->mvxSR({F@T?6c!VOr!pB*b zlaH_%j)Pcn^97*8O6rNVIJZR9&FOdV?G9( zF~*or01q~XG1|GwTHa;O%xG=Ukgn)yEmV#^mn1c6zH;=ABj zDqk7eF2AIHRVq`ZI;}}<3;JycZjiUg<_c{LFvJJ|UT!ml7l2{zaD%~z)^>!e__&FH z0E3Kho@SES#bN*>fX&oIO#>_DQ3qH_JqQD2vX$f*b1k;Eg@Rx}s;P`C7>cM3qBoHi zXSAV?R6{On;|vBUXPKdx!UUjmsW7Y}BLV1S$_>SM5`czc!=i+MA4GEZPR1NxMzS!B=nozf&-LwKWN&gX?OaahEBg4TC z8^A(vja__6F`54g_~3a{z#{tC#fAHwCQQ-6>vWSp{d2ys`1=@}j^!{Dq3=m<;SZ^k z7~~C(KbS4-Q6+#fK4u*Oj&XwHzWclrP&%ZPgUBjOOh^Y zr?O^)Bh`%s)KkxL#_8e=?eyYhlmH&)l0zY7tf7<)`uK(~=ti?ak*i&cd}^tql3Wa9 z+?__JlLp-8Jk1=V7dPf=cZT<=EagcmC?=mQY^LyWogUgbOAq&=0saOQ9~eM0DPbr8 z001R)MObuXVRU6WV{&C-bY%cCFflVNFg7hQHdHV%i@wvUXW)L^=g_0(akRf|(XwO@7bU+QLlL2=%jAu7cNV{| zJ^#4L$XImV+1(ZO&*!K=pYy$R%hbfcEpr98ck{Y57#^N-ZpE`G$Js^Z{nB3+os}tR z-t|N+wET02P->gx6aTpvSVhW;j_a^|Tc!492k(-`_p2nW@2*c?b*s^2e(8tT=k_Ot zR$Fo!|6AXZnX`QE=H$$C%qD_i8&{QeUd#Pqe#GQ+_xB&$-)@o>(Ead({cZGZ<)pmp z;wd`zvt+-||Iy|9OTAa&z}x3ZMOKTy^D*iR?3$OGH#au!*QE1zqwV^0w|)M{d48_R z@p#9ukM5WLEqQSA-R8n-v!dOly1OMx5;cngZ`v-(UNt=~G27}{T6M?EovY^G<@j}m zul)CX#~*=z7rKO(UOINkSCX57L;B+P6sOe$(xbN5?JV+7 z*euUXF#eS(6udWMJ6{WVhf2K!vlvcs%4bF$JY+$s0Uv6S{=)fdJN0Z759~cw@{PGo|91JlNp@-J zf0xhNY1#Ot^y1154Ij=&Ty5it;*j2Y^3BmDNzYY0KP`XO-5a`jJEQb=XKm?=izHw8 z?tb9@=kPCwk@T z><9aYdb27{@9~}oO!BHFt`Q|Ei6yC4$wjF^iowXh&{)^NOxMsX#K6+Z$jHjT2*|ZE zFxcun^*D-#-29Zxv`VN3Bd7*LGbgTe~DWM4f`-Zc! literal 0 HcmV?d00001 diff --git a/web/app/assets/images/content/icon_instrument_upright_bass45.png b/web/app/assets/images/content/icon_instrument_upright_bass45.png new file mode 100644 index 0000000000000000000000000000000000000000..7c2b8e1d13194b2c8a4495620a6db2fbfecfee5a GIT binary patch literal 1990 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 literal 0 HcmV?d00001 diff --git a/web/app/assets/images/shared/icon_upright_bass_256.png b/web/app/assets/images/shared/icon_upright_bass_256.png new file mode 100644 index 0000000000000000000000000000000000000000..c5373a2156c71f73d2e0495347015f70117908af GIT binary patch literal 14033 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