diff --git a/ruby/lib/jam_ruby/models/band.rb b/ruby/lib/jam_ruby/models/band.rb index 716d869a8..4cb495bcb 100644 --- a/ruby/lib/jam_ruby/models/band.rb +++ b/ruby/lib/jam_ruby/models/band.rb @@ -23,8 +23,11 @@ module JamRuby validate :validate_photo_info validate :require_at_least_one_genre, :unless => :skip_genre_validation validate :limit_max_genres - validates_numericality_of :hourly_rate, greater_than:0, less_than:100000, :if => :paid_gigs - validates_numericality_of :gig_minimum, greater_than:0, less_than:200000, :if => :paid_gigs + #validates_numericality_of :hourly_rate, greater_than:0, less_than:100000, :if => :paid_gigs, allow_blank: true + validates :hourly_rate, numericality: { greater_than:0, less_than:100000 }, :if => :paid_gigs + + #validates_numericality_of :gig_minimum, greater_than:0, less_than:200000, :if => :paid_gigs, allow_blank: true + validates :gig_minimum, numericality: { greater_than:0, less_than:200000 }, :if => :paid_gigs before_save :check_lat_lng before_save :check_website_url diff --git a/web/app/assets/javascripts/bandProfile.js b/web/app/assets/javascripts/bandProfile.js index 668154b78..6a95f50be 100644 --- a/web/app/assets/javascripts/bandProfile.js +++ b/web/app/assets/javascripts/bandProfile.js @@ -153,7 +153,7 @@ // refreshes the currently active tab function renderActive() { - + console.log("_DEBUG_ renderActive isAdmin: " + isAdmin + " isMember: " + isMember); if (isMember) { $("#btn-follow-band").hide(); $("#btn-edit-band-profile").show(); @@ -549,6 +549,7 @@ error: app.ajaxError }) .done(function(response) { + console.log("_DEBUG_ determineMembership response: " + JSON.stringify(response)); isAdmin = isMember = false; $.each(response, function(index, val) { if (val.id === context.JK.currentUserId) { diff --git a/web/app/assets/javascripts/band_setup.js b/web/app/assets/javascripts/band_setup.js index 1147538a0..cac3632df 100644 --- a/web/app/assets/javascripts/band_setup.js +++ b/web/app/assets/javascripts/band_setup.js @@ -197,7 +197,7 @@ } function renderErrors(errors) { - logger.debug("Band setup errors: ", errors) + console.log("Band setup errors: ", errors) var name = context.JK.format_errors("name", errors); var country = context.JK.format_errors("country", errors); var state = context.JK.format_errors("state", errors); @@ -205,6 +205,8 @@ var biography = context.JK.format_errors("biography", errors); var website = context.JK.format_errors("website", errors); var genres = context.JK.format_errors("genres", errors); + var hourly_rate = context.JK.format_errors("hourly_rate", errors); + var gig_minimum = context.JK.format_errors("gig_minimum", errors); if(name) $("#band-name").closest('div.field').addClass('error').end().after(name); if(country) $("#band-country").closest('div.field').addClass('error').end().after(country); @@ -213,6 +215,8 @@ if(biography) $("#band-biography").closest('div.field').addClass('error').end().after(biography); if(website) $("#band-website").closest('div.field').addClass('error').end().after(website); if(genres) $("#band-genres").closest('div.field').addClass('error').end().after(genres); + if(hourly_rate) $("#hourly-rate").closest('div.field').addClass('error').end().after(hourly_rate); + if(gig_minimum) $("#gig-minimum").closest('div.field').addClass('error').end().after(gig_minimum); } function buildBand() { @@ -402,6 +406,7 @@ function loadBandDetails() { rest.getBand(bandId).done(function (band) { + console.log("Band details: ", band) $("#band-name").val(band.name); $("#band-website").val(band.website); $("#band-biography").val(band.biography); @@ -411,21 +416,27 @@ concertCount.val(band.concert_count) if (band.add_new_members){ - $("#new-member-no").iCheck('check').attr('checked', 'checked') - } else { $("#new-member-yes").iCheck('check').attr('checked', 'checked') + $("#new-member-no").iCheck('uncheck').removeAttr('checked') + } else { + $("#new-member-no").iCheck('check').attr('checked', 'checked') + $("#new-member-yes").iCheck('uncheck').removeAttr('checked') } if (band.paid_gigs) { - $("#paid-gigs-no").iCheck('check').attr('checked', 'checked') - } else { $("#paid-gigs-yes").iCheck('check').attr('checked', 'checked') + $("#paid-gigs-no").iCheck('uncheck').removeAttr('checked') + } else { + $("#paid-gigs-no").iCheck('check').attr('checked', 'checked') + $("#paid-gigs-yes").iCheck('uncheck').removeAttr('checked') } if (band.free_gigs) { - $("#free-gigs-no").iCheck('check').attr('checked', 'checked') - } else { $("#free-gigs-yes").iCheck('check').attr('checked', 'checked') + $("#free-gigs-no").iCheck('uncheck').removeAttr('checked') + } else { + $("#free-gigs-no").iCheck('check').attr('checked', 'checked') + $("#free-gigs-yes").iCheck('uncheck').removeAttr('checked') } $('#touring-option').val(band.touring_option ? 'yes' : 'no') diff --git a/web/app/views/api_bands/musician_index.rabl b/web/app/views/api_bands/musician_index.rabl index 2c6cef6b2..d8936aa33 100644 --- a/web/app/views/api_bands/musician_index.rabl +++ b/web/app/views/api_bands/musician_index.rabl @@ -3,7 +3,7 @@ collection @musicians attributes :id, :first_name, :last_name, :name, :city, :state, :country, :location, :online, :photo_url, :musician, :gender, :birth_date, :internet_service_provider, :friend_count, :liker_count, :like_count, :follower_count, :following_count, :recording_count, :session_count, :biography node :band_admin do |musician| - musician.respond_to?(:band_admin) && 't' == musician.band_admin ? true : false + musician.respond_to?(:band_admin) && musician.band_admin ? true : false end node :invitation_id do |musician| diff --git a/web/app/views/api_users/band_index.rabl b/web/app/views/api_users/band_index.rabl index 6641afa61..ee3910e32 100644 --- a/web/app/views/api_users/band_index.rabl +++ b/web/app/views/api_users/band_index.rabl @@ -3,31 +3,44 @@ collection @bands # do not retrieve all child collections when showing a list of bands attributes :id, :name, :city, :state, :country, :location, :website, :biography, :photo_url, :logo_url, :liker_count, :follower_count, :recording_count, :session_count -node :musicians do |band| - unless band.users.nil? || band.users.size == 0 - child :users => :musicians do - attributes :id, :first_name, :last_name, :name, :photo_url, :biography +# node :musicians do |band| +# unless band.users.nil? || band.users.size == 0 +# child :users => :musicians do +# attributes :id, :first_name, :last_name, :name, :photo_url, :biography - # TODO: figure out how to omit empty arrays - node :instruments do |user| - unless user.instruments.nil? || user.instruments.size == 0 - child :musician_instruments => :instruments do - attributes :instrument_id, :description, :proficiency_level, :priority - end - end - end - end +# # TODO: figure out how to omit empty arrays +# node :instruments do |user| +# unless user.instruments.nil? || user.instruments.size == 0 +# child :musician_instruments => :instruments do +# attributes :instrument_id, :description, :proficiency_level, :priority +# end +# end +# end +# end +# end +# end + +child :users => :musicians do + attributes :id, :first_name, :last_name, :name, :photo_url, :biography + child :musician_instruments => :instruments do + attributes :instrument_id, :description, :proficiency_level, :priority end end -node :genres do |band| - unless band.genres.nil? || band.genres.size == 0 - child :genres => :genres do - attributes :id, :description - end - end +# node :genres do |band| +# unless band.genres.nil? || band.genres.size == 0 +# child :genres => :genres do +# attributes :id, :description +# end +# end +# end + + +child :genres do + attributes :id, :description end + node :biography do |band| band.biography.nil? ? "" : band.biography end diff --git a/web/app/views/clients/_band_setup.html.slim b/web/app/views/clients/_band_setup.html.slim index e1b2740f0..33fdc9f0d 100644 --- a/web/app/views/clients/_band_setup.html.slim +++ b/web/app/views/clients/_band_setup.html.slim @@ -149,9 +149,11 @@ input#paid-gigs-no.iradio-inline.dependent-master type="radio" name="paid_gigs" value='no' label.radio-label for="paid-gigs-no" No td.paid-gigs-dependent - input#hourly-rate name="hourly_rate" + .field + input#hourly-rate name="hourly_rate" td.paid-gigs-dependent - input#gig-minimum name="gig_minimum" + .field + input#gig-minimum name="gig_minimum" tr td label for="free-gigs" diff --git a/web/spec/features/bands_spec.rb b/web/spec/features/bands_spec.rb index d07121ba7..97945c82c 100644 --- a/web/spec/features/bands_spec.rb +++ b/web/spec/features/bands_spec.rb @@ -4,9 +4,9 @@ describe "Bands", :js => true, :type => :feature, :capybara_feature => true do subject { page } - before(:all) do - Capybara.default_max_wait_time = 15 - end + # before(:all) do + # Capybara.default_max_wait_time = 15 + # end let(:fan) { FactoryGirl.create(:fan) } let(:user) { FactoryGirl.create(:user) }