Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop
This commit is contained in:
commit
e4ed571dcb
|
|
@ -0,0 +1,86 @@
|
|||
ActiveAdmin.register JamRuby::User, :as => 'User Progression' do
|
||||
DATE_FORMAT = '%Y-%m-%d %H:%M'
|
||||
|
||||
menu :label => 'User Progression'
|
||||
|
||||
config.sort_order = 'updated_at DESC'
|
||||
config.batch_actions = false
|
||||
config.clear_action_items!
|
||||
config.filters = false
|
||||
|
||||
index do
|
||||
column :email do |user| link_to(truncate(user.email, {:length => 12}), resource_path(user), {:title => "#{user.first_name} #{user.last_name} (#{user.email})"}) end
|
||||
column :updated_at do |uu| uu.updated_at.strftime(DATE_FORMAT) end
|
||||
column :created_at do |uu| uu.created_at.strftime(DATE_FORMAT) end
|
||||
column :city
|
||||
column :musician
|
||||
column 'Client DL' do |uu|
|
||||
if dd = uu.first_downloaded_client_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Client Run' do |uu|
|
||||
if dd = uu.first_ran_client_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Certified Gear' do |uu|
|
||||
if dd = uu.first_certified_gear_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Any Session' do |uu|
|
||||
if dd = uu.first_music_session_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Real Session' do |uu|
|
||||
if dd = uu.first_real_music_session_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Good Session' do |uu|
|
||||
if dd = uu.first_good_music_session_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Invited' do |uu|
|
||||
if dd = uu.first_invited_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Friended' do |uu|
|
||||
if dd = uu.first_friended_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Promoted' do |uu|
|
||||
if dd = uu.first_social_promoted_at
|
||||
dd.strftime(DATE_FORMAT)
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
column 'Recorded' do |uu|
|
||||
uu.first_recording_at
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -1 +1 @@
|
|||
ruby-2.0.0-p247
|
||||
2.0.0-p247
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ruby-2.0.0-p247
|
||||
2.0.0-p247
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ruby-2.0.0-p247
|
||||
2.0.0-p247
|
||||
|
|
|
|||
|
|
@ -1006,6 +1006,10 @@ module JamRuby
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
def first_recording_at
|
||||
Recording.where(:owner_id => self.id).order('created_at ASC').first.try(:created_at)
|
||||
end
|
||||
|
||||
# devise compatibility
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ruby-2.0.0-p247
|
||||
2.0.0-p247
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ gem 'ruby-protocol-buffers', '1.2.2'
|
|||
gem 'pg', '0.15.1'
|
||||
gem 'compass-rails'
|
||||
gem 'rabl' # for JSON API development
|
||||
gem 'gon' # for passthrough of Ruby variables to Javascript variables
|
||||
gem 'gon', '~>4.1.0' # for passthrough of Ruby variables to Javascript variables
|
||||
gem 'eventmachine', '1.0.3'
|
||||
gem 'amqp', '0.9.8'
|
||||
gem 'logging-rails', :require => 'logging/rails'
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
@import 'common.css.scss';
|
||||
|
||||
.account-content-scroller {
|
||||
.account-content-scroller,
|
||||
#account-identity-content-scroller {
|
||||
|
||||
.content-wrapper {
|
||||
padding:10px 35px;
|
||||
padding:10px 30px;
|
||||
}
|
||||
|
||||
.content-wrapper.account {
|
||||
|
|
@ -16,6 +17,7 @@
|
|||
}
|
||||
|
||||
h4 {
|
||||
margin-top:8px;
|
||||
margin-bottom: 10px;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
|
@ -114,6 +116,7 @@
|
|||
|
||||
.button-orange, .button-grey {
|
||||
line-height:14px;
|
||||
margin-top:6px;
|
||||
margin-right:0;
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +125,7 @@
|
|||
}
|
||||
|
||||
div.field {
|
||||
margin-bottom:27px;
|
||||
margin-bottom:21px;
|
||||
}
|
||||
|
||||
div.profile-instrumentlist table {
|
||||
|
|
|
|||
|
|
@ -213,13 +213,15 @@ class ApiMusicSessionsController < ApiController
|
|||
:secret_access_key => SampleApp::Application.config.aws_secret_access_key)
|
||||
bucket = s3.buckets[SampleApp::Application.config.aws_bucket]
|
||||
|
||||
expire = Time.now + 20.years
|
||||
read_url = bucket.objects[uri].url_for(:read,
|
||||
:expires => Time.now + 25.years,
|
||||
:expires => expire,
|
||||
:'response_content_type' => 'text/csv').to_s
|
||||
@perfdata.update_attribute(:uri, read_url)
|
||||
logger.debug("*** client can read url #{read_url}")
|
||||
|
||||
write_url = bucket.objects[uri].url_for(:write,
|
||||
:expires => SampleApp::Application.config.perf_data_signed_url_timeout,
|
||||
:expires => expire,
|
||||
:'response_content_type' => 'text/csv').to_s
|
||||
logger.debug("*** client can upload to url #{write_url}")
|
||||
redirect_to write_url
|
||||
|
|
|
|||
|
|
@ -12,11 +12,13 @@
|
|||
</div>
|
||||
<!-- end header -->
|
||||
|
||||
<!-- profile scrolling area -->
|
||||
<div id="account-profile-avatar-content-scroller" class="content-scroller account-content-scroller">
|
||||
<div class="content-body">
|
||||
<!-- profile scrolling area -->
|
||||
<div id="account-profile-avatar-content-scroller" class="content-scroller account-content-scroller">
|
||||
|
||||
</div>
|
||||
<!-- end content scrolling area -->
|
||||
</div>
|
||||
<!-- end content scrolling area -->
|
||||
</div>
|
||||
|
||||
<script type="text/template" id="template-account-profile-avatar">
|
||||
|
|
@ -31,7 +33,12 @@
|
|||
</form>
|
||||
|
||||
<br clear="all" />
|
||||
<div class="right"><a id="account-edit-avatar-cancel" href="#" class="button-grey">CANCEL</a> <a id="account-edit-avatar-delete" href="#" class="button-orange">DELETE AVATAR</a> <a id="account-edit-avatar-submit" href="#" class="button-orange">UPDATE AVATAR</a></div>
|
||||
<div class="right">
|
||||
<a id="account-edit-avatar-cancel" href="#" class="button-grey">CANCEL</a>
|
||||
<a id="account-edit-avatar-delete" href="#" class="button-orange">DELETE AVATAR</a>
|
||||
<a id="account-edit-avatar-submit" href="#" class="button-orange">UPDATE AVATAR</a>
|
||||
</div>
|
||||
<div class="clearall"></div>
|
||||
</div>
|
||||
<!-- end content wrapper -->
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
</div>
|
||||
<div class="clearall"></div>
|
||||
</div>
|
||||
<div class="content-scroller" style="height:350px;">
|
||||
<div class="content-scroller">
|
||||
<div id="profile-about" class="profile-wrapper">
|
||||
<!-- stats & location -->
|
||||
<div class="profile-about-left">
|
||||
|
|
|
|||
|
|
@ -7,116 +7,118 @@
|
|||
<h1>session</h1>
|
||||
</div>
|
||||
|
||||
<div class="content-body">
|
||||
<!-- session controls -->
|
||||
<div id="session-controls">
|
||||
<a class="button-grey resync left" id="session-resync">
|
||||
<%= image_tag "content/icon_resync.png", {:align => "texttop", :height => 14, :width => 12} %>
|
||||
RESYNC
|
||||
</a>
|
||||
<a class="button-grey left" layout-link="session-settings" id="session-settings-button">
|
||||
<%= image_tag "content/icon_settings_sm.png", {:align => "texttop", :height => 12, :width => 12} %>
|
||||
SETTINGS
|
||||
</a>
|
||||
<a class="button-grey left">
|
||||
<%= image_tag "content/icon_share.png", {:align => "texttop", :height => 12, :width => 12} %>
|
||||
SHARE
|
||||
</a>
|
||||
<div id="session-controls">
|
||||
<a class="button-grey resync left" id="session-resync">
|
||||
<%= image_tag "content/icon_resync.png", {:align => "texttop", :height => 14, :width => 12} %>
|
||||
RESYNC
|
||||
</a>
|
||||
<a class="button-grey left" layout-link="session-settings" id="session-settings-button">
|
||||
<%= image_tag "content/icon_settings_sm.png", {:align => "texttop", :height => 12, :width => 12} %>
|
||||
SETTINGS
|
||||
</a>
|
||||
<a class="button-grey left">
|
||||
<%= image_tag "content/icon_share.png", {:align => "texttop", :height => 12, :width => 12} %>
|
||||
SHARE
|
||||
</a>
|
||||
|
||||
<!-- Volume Slider -->
|
||||
<div class="block">
|
||||
<div class="label">VOLUME:</div>
|
||||
<div id="volume" class="fader lohi" mixer-id=""></div>
|
||||
<!-- Volume Slider -->
|
||||
<div class="block">
|
||||
<div class="label">VOLUME:</div>
|
||||
<div id="volume" class="fader lohi" mixer-id=""></div>
|
||||
</div>
|
||||
|
||||
<!-- Mix: Me versus Others -->
|
||||
<div class="block">
|
||||
<div class="label">MIX:</div>
|
||||
<div class="label"><small>others</small></div>
|
||||
<div id="l2m" class="fader flat" mixer-id="__L2M__"></div>
|
||||
<div class="label"><small>me</small></div>
|
||||
</div>
|
||||
|
||||
<!-- Leave Button -->
|
||||
<a class="button-grey right leave" href="#/home" id="session-leave">X LEAVE</a>
|
||||
</div>
|
||||
<!-- end session controls -->
|
||||
|
||||
<!-- Mix: Me versus Others -->
|
||||
<div class="block">
|
||||
<div class="label">MIX:</div>
|
||||
<div class="label"><small>others</small></div>
|
||||
<div id="l2m" class="fader flat" mixer-id="__L2M__"></div>
|
||||
<div class="label"><small>me</small></div>
|
||||
</div>
|
||||
<!-- content scrolling area -->
|
||||
<div id="tracks">
|
||||
<div class="content-scroller">
|
||||
|
||||
<!-- Leave Button -->
|
||||
<a class="button-grey right leave" href="#/home" id="session-leave">X LEAVE</a>
|
||||
</div>
|
||||
<!-- end session controls -->
|
||||
<!-- content wrapper -->
|
||||
<div class="content-wrapper">
|
||||
|
||||
<!-- content scrolling area -->
|
||||
<div id="tracks">
|
||||
<div class="content-scroller">
|
||||
<!-- my tracks -->
|
||||
<div class="session-mytracks">
|
||||
<h2>my tracks</h2>
|
||||
<div id="track-settings" class="session-add" style="display:block;" layout-link="configure-audio">
|
||||
<%= image_tag "content/icon_settings_lg.png", {:width => 18, :height => 18} %> Settings
|
||||
</div>
|
||||
|
||||
<!-- content wrapper -->
|
||||
<div class="content-wrapper">
|
||||
|
||||
<!-- my tracks -->
|
||||
<div class="session-mytracks">
|
||||
<h2>my tracks</h2>
|
||||
<div id="track-settings" class="session-add" style="display:block;" layout-link="configure-audio">
|
||||
<%= image_tag "content/icon_settings_lg.png", {:width => 18, :height => 18} %> Settings
|
||||
</div>
|
||||
|
||||
<div class="session-tracks-scroller">
|
||||
<div id="session-mytracks-container"></div>
|
||||
<div id="voice-chat" class="voicechat" style="display:none;" mixer-id="">
|
||||
<div class="voicechat-label">CHAT</div>
|
||||
<div class="voicechat-gain"></div>
|
||||
<div class="voicechat-mute enabled" control="mute" mixer-id=""></div>
|
||||
<div class="session-tracks-scroller">
|
||||
<div id="session-mytracks-container"></div>
|
||||
<div id="voice-chat" class="voicechat" style="display:none;" mixer-id="">
|
||||
<div class="voicechat-label">CHAT</div>
|
||||
<div class="voicechat-gain"></div>
|
||||
<div class="voicechat-mute enabled" control="mute" mixer-id=""></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- live tracks -->
|
||||
<div class="session-livetracks">
|
||||
<h2>live tracks</h2>
|
||||
<div class="session-add">
|
||||
<a>
|
||||
<%= image_tag "content/icon_add.png", {:width => 19, :height => 19, :align => "texttop"} %> Invite Musicians
|
||||
</a>
|
||||
<!-- live tracks -->
|
||||
<div class="session-livetracks">
|
||||
<h2>live tracks</h2>
|
||||
<div class="session-add">
|
||||
<a>
|
||||
<%= image_tag "content/icon_add.png", {:width => 19, :height => 19, :align => "texttop"} %> Invite Musicians
|
||||
</a>
|
||||
</div>
|
||||
<div class="session-tracks-scroller">
|
||||
<div id="session-livetracks-container">
|
||||
<p class="when-empty">
|
||||
No Live Tracks:<br/>
|
||||
<a>Invite Other Musicians</a> to<br/>
|
||||
Add Live Tracks
|
||||
</p>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
<div class="recording" id="recording-start-stop">
|
||||
<a>
|
||||
<%= image_tag "content/recordbutton-off.png", {:width => 20, :height => 20, :align => "absmiddle"} %> <span id="recording-status">Make a Recording</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="session-tracks-scroller">
|
||||
<div id="session-livetracks-container">
|
||||
<p class="when-empty">
|
||||
No Live Tracks:<br/>
|
||||
<a>Invite Other Musicians</a> to<br/>
|
||||
Add Live Tracks
|
||||
|
||||
<!-- recordings -->
|
||||
<div class="session-recordings">
|
||||
<h2>recordings</h2>
|
||||
<div class="session-add">
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<p class="when-empty recordings">
|
||||
No Recordings:<br/><a>Open a Recording</a>
|
||||
</p>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
<div class="recording" id="recording-start-stop">
|
||||
<a>
|
||||
<%= image_tag "content/recordbutton-off.png", {:width => 20, :height => 20, :align => "absmiddle"} %> <span id="recording-status">Make a Recording</span>
|
||||
</a>
|
||||
|
||||
<!-- recording name and close button -->
|
||||
<!--
|
||||
<div class="session-recording-name-wrapper">
|
||||
<div class="session-recording-name left">(No recording loaded)</div>
|
||||
<div class="session-add right">
|
||||
<a>
|
||||
<%= image_tag "content/icon_close.png", {:width => 18, :height => 20, :align => "texttop"} %> Close
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
<div class="session-tracks-scroller">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- recordings -->
|
||||
<div class="session-recordings">
|
||||
<h2>recordings</h2>
|
||||
<div class="session-add">
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<p class="when-empty recordings">
|
||||
No Recordings:<br/><a>Open a Recording</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- recording name and close button -->
|
||||
<!--
|
||||
<div class="session-recording-name-wrapper">
|
||||
<div class="session-recording-name left">(No recording loaded)</div>
|
||||
<div class="session-add right">
|
||||
<a>
|
||||
<%= image_tag "content/icon_close.png", {:width => 18, :height => 20, :align => "texttop"} %> Close
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
<div class="session-tracks-scroller">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ruby-2.0.0-p247
|
||||
2.0.0-p247
|
||||
|
|
|
|||
Loading…
Reference in New Issue