diff --git a/db/up/find_sessions_2020.sql b/db/up/find_sessions_2020.sql index 8d136bf5c..d426e29cc 100644 --- a/db/up/find_sessions_2020.sql +++ b/db/up/find_sessions_2020.sql @@ -140,4 +140,6 @@ UPDATE users set stored_credit_card = true where recurly_code is not null; -- alreday on WWW CREATE INDEX msuh_user_id ON music_sessions_user_history USING btree (user_id); -CREATE INDEX msuh_created_at ON music_sessions_user_history USING btree (created_at); \ No newline at end of file +CREATE INDEX msuh_created_at ON music_sessions_user_history USING btree (created_at); + +CREATE INDEX bands_musicians_user_id_idx ON bands_musicians USING btree (user_id); \ No newline at end of file diff --git a/ruby/lib/jam_ruby/models/feed.rb b/ruby/lib/jam_ruby/models/feed.rb index befdc900a..f4da3cd80 100644 --- a/ruby/lib/jam_ruby/models/feed.rb +++ b/ruby/lib/jam_ruby/models/feed.rb @@ -31,6 +31,11 @@ module JamRuby target_user = params[:user] target_band = params[:band] + # TODO: SPEED UP QUERY. CURRENTLY TAKES FOR EVER. + if target_user or target_band + return { query: [], next_page: nil} + end + #query = Feed.includes([:recording]).includes([:music_session]).limit(limit) query = Feed.joins("LEFT OUTER JOIN recordings ON recordings.id = feeds.recording_id") .joins("LEFT OUTER JOIN music_sessions ON music_sessions.id = feeds.music_session_id") diff --git a/web/app/assets/javascripts/react-components/AccountSubscriptionScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/AccountSubscriptionScreen.js.jsx.coffee index ec602c3ed..49ecf9920 100644 --- a/web/app/assets/javascripts/react-components/AccountSubscriptionScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/AccountSubscriptionScreen.js.jsx.coffee @@ -18,8 +18,10 @@ profileUtils = context.JK.ProfileUtils Reflux.listenTo(SubscriptionStore, "onSubscriptionChanged") ] + subRef: null + onAppInit: (@app) -> - @app.bindScreen('account/subscription', {beforeShow: @beforeShow, afterShow: @afterShow, beforeHide: @beforeHide}) + @app.bindScreen('account/subscription', {beforeShow: @beforeShow, afterShow: @afterShow, beforeHide: @beforeHide, beforeLeave: @beforeLeave}) onUserChanged: (userState) -> @setState({user: userState?.user}) @@ -32,8 +34,44 @@ profileUtils = context.JK.ProfileUtils return true beforeShow: (e) -> + + @allowLeave = false + SubscriptionActions.updateSubscription() + forceUpdate: () -> + this.refs.sub.onSubmit() + + userMustLeave: (location) -> + @allowLeave = true + window.location.href = '/client' + location + + beforeLeave: (data) -> + console.debug("subscription beforeLeave", @allowLeave) + + if !this.refs.sub? || @allowLeave + return true + else + + if this.refs.sub? + if !this.refs.sub.state.selectedPlan? + console.log("no selected plan; can leave") + return true + + buttons = [] + buttons.push({name: 'LEAVE ANYWAY', buttonStyle: 'button-grey', click: (() => (@userMustLeave(data.hash)))}) + buttons.push({ + name: 'UPDATE PLAN', + buttonStyle: 'button-orange', + click: (() => (@forceUpdate())) + }) + context.JK.Banner.show({ + title: "Subscription Not Updated", + html: '