Compare commits

...

2317 Commits

Author SHA1 Message Date
Seth Call 64a93dd42f support beta 2026-02-28 20:39:34 -06:00
Seth Call eb52813822 defaut beta to true 2026-02-21 08:56:52 -06:00
Seth Call 8613a03d00 ok fix the API more 2026-02-16 09:05:12 -06:00
Seth Call 8f0b8929ba ars apis 2026-02-15 22:04:17 -06:00
Seth Call 08e1c5274d track utm_id 2026-02-04 21:53:19 -06:00
Seth Call 5f347ccfac handle All 2026-02-04 21:31:23 -06:00
Seth Call ca2bf19b7a cleanup query 2026-02-04 20:58:16 -06:00
Seth Call fad1f9d6d9 Add paid = cpc on jammers cohots 2026-02-04 19:53:00 -06:00
Seth Call 51838fb413 Remove test drive 2026-02-03 19:05:12 -06:00
Seth Call 45cb401112 Controls for user source 2026-02-01 14:15:41 -06:00
Seth Call 9078515984 user source update 2026-01-31 12:20:37 -06:00
Seth Call 52ae83e2f4 Addtocart instead 2026-01-31 12:15:26 -06:00
Seth Call b454cf9ead AddToCart 2026-01-28 20:04:40 -06:00
Seth Call 65f5624ff9 add array support for facebook ad source 2026-01-24 00:02:44 -06:00
Seth Call e82450dfe9 Support more utm tracking 2026-01-23 23:17:35 -06:00
Seth Call f1992eaa78 build this 2026-01-22 22:36:22 -06:00
Seth Call bdeecc76c6 fix reporting 2026-01-22 21:21:17 -06:00
Seth Call 8c8024c12b event test code 2026-01-19 13:48:26 -06:00
Seth Call c183af3d6b remove rails logger ref 2026-01-19 13:21:26 -06:00
Seth Call ab424c21d2 use puts 2026-01-19 12:49:37 -06:00
Seth Call 753f35b24d click signup redirects to the right place in jam-ui 2026-01-19 12:34:30 -06:00
Seth Call 624853c868 Store UTM cookies 2026-01-16 22:15:36 -06:00
Seth Call 71d8571eb9 JKLayout adding Meta Tracking 2026-01-16 16:44:46 -06:00
Seth Call fae16c7483 better logging on CAPI 2026-01-15 08:00:34 -06:00
Seth Call 253a6c566b Bettor logging 2026-01-15 07:59:27 -06:00
Seth Call ed561be4b5 meta_tracking included 2026-01-14 19:56:42 -06:00
Seth Call eb69640667 fix utm source 2026-01-14 14:54:56 -06:00
Seth Call 9b0a9d1f32 cleanup around app-config 2026-01-14 14:42:22 -06:00
Seth Call e1cc5483a2 facebook pixel id and access token 2026-01-14 12:17:39 -06:00
Seth Call 73d2a7a020 more changes for event rework 2026-01-14 10:30:33 -06:00
Seth Call eb298d6859 fix 2026-01-14 09:20:57 -06:00
Seth Call 93c4154648 add capi transmitter and missing event type 2026-01-14 08:58:37 -06:00
Seth Call fbd871d204 reviewing 2026-01-14 08:52:19 -06:00
Seth Call 0d82f6ee16 allow video tokens to last a long time 2026-01-08 06:03:58 -06:00
Seth Call 1279b16ec0 Update manifest maker 2025-10-26 14:33:00 -05:00
Seth Call e3cff0a825 Uncomment TrialReminders 2025-10-18 17:40:46 -05:00
Nuwan Chaturanga 6a6e4cde09 Merged in fix_plg_email_delivery_timeing_issue (pull request #70)
fix PLG email timing

Approved-by: Seth Call
2025-10-17 13:16:50 +00:00
Seth Call 1dd15fb0aa Add tests for all PLG emails 2025-10-17 08:15:46 -05:00
Seth Call 9282369e54 VRFS-5690 - tag jamtrack and jammers separetly on admin report - fix jammers view 2025-10-13 15:23:01 -05:00
Seth Call 828191d683 VRFS-5690 - tag jamtrack and jammers separetly on admin report - fix jammers view 2025-10-13 15:16:41 -05:00
Seth Call c0031cfe3d VRFS-5690 - tag jamtrack and jammers separetly on admin report 2025-10-13 14:33:45 -05:00
Seth Call 9b17546082 omit trial send reminders for now 2025-10-13 12:02:44 -05:00
Seth Call eed3d51f4b VRFS-5691 - fix both the jamtrack flow and the inability to sign out - take 2 2025-10-13 11:44:17 -05:00
Seth Call 4eac68b645 VRFS-5691 - fix both the jamtrack flow and the inability to sign out 2025-10-12 11:55:50 -05:00
Nuwan fe6157e8cf ensure not to send email 2 and 3 tighltly behind email 1 in this sequence 2025-09-30 13:14:39 +05:30
Nuwan 675bf2b69c fix PLG email timing
do not send emails if the date has passed
2025-09-22 00:07:16 +05:30
Nuwan 4ffc0d9b3b Merge branch 'develop' of ssh://altssh.bitbucket.org:443/jamkazam/jam-cloud into develop 2025-08-20 20:36:18 +05:30
Nuwan 7b665325f7 unsubscribe/change email confirmation fixes 2025-08-20 20:34:52 +05:30
Nuwan eab17b3340 uncomment the lines
uncomment the lines which were disabled for debug purposes in the
prev. commit
2025-08-20 20:34:52 +05:30
Nuwan 4fafe30141 add more changes which were missed in prev. commit 2025-08-20 20:34:52 +05:30
Nuwan 7f85c91601 trail end reminderd
send emails when the trail perieod expired.
2025-08-20 20:34:52 +05:30
Nuwan d424026f17 fix payment method page element loading
this resolves the race condition issue when loading recurly payment element
and hence sometimes it wasn't showing
2025-08-20 20:31:44 +05:30
Nuwan Chaturanga a4f8935b3a Merged in fix_403_errors_in_public_pages (pull request #69)
unsubscribe/change email confirmation fixes

Approved-by: Seth Call
2025-08-19 16:19:12 +00:00
Nuwan Chaturanga 4f837ae67f Merged in 5662-trial_end_reminder_emails (pull request #68)
trail end reminderd

Approved-by: Seth Call
2025-08-19 16:07:57 +00:00
Nuwan 0053775c7e uncomment the lines
uncomment the lines which were disabled for debug purposes in the
prev. commit
2025-08-19 21:04:28 +05:30
Nuwan 9d6c71829f unsubscribe/change email confirmation fixes 2025-08-19 20:39:39 +05:30
Nuwan d00a0c08f7 add more changes which were missed in prev. commit 2025-08-19 02:13:16 +05:30
Nuwan 7e2c917ca0 trail end reminderd
send emails when the trail perieod expired.
2025-08-19 00:07:09 +05:30
Nuwan Chaturanga a84a55f178 Merged in 5661-PLG-play-with-others (pull request #67)
PLG email for 2+ session

Approved-by: Seth Call
2025-08-16 23:50:48 +00:00
Nuwan 25ecab2c65 fix billing details + card data processing
remove saving billing address details to database in the first place
before sending to recurly. Now the backend handles address data saving
after success response from recurly.
2025-08-15 18:31:03 +05:30
Nuwan b2f344fd30 PLG email for 2+ session
email reminders for the users to have 2+ session
VRFS-5661
2025-08-14 22:06:18 +05:30
Nuwan 3bba9ec619 fix error in user_observer 2025-08-13 14:37:31 +05:30
Nuwan 86e03e0ba7 change email confirm page 2025-08-13 14:26:58 +05:30
Nuwan 67fd15c75c wip after changing email show confirmation page within new website 2025-08-13 13:51:54 +05:30
Nuwan b7a41c6465 unsubscribe page
add page in new website to be shown to the users
when they follow unsubscribe link (in email footer)
2025-08-06 20:30:12 +05:30
Nuwan a8d5b8e735 update in the front end showing user payment details persistance 2025-07-29 22:37:54 +05:30
Nuwan f977b7298e fix error when showing if user has stored card
fix the issue of showing this information incorrectly on payment method
page. also this comment disables front end validation of card details
2025-07-28 18:47:02 +05:30
Seth Call 9a41e8a236 Fix cutoff_date not being passed in and requirees of TestGearSetup 2025-07-25 20:06:47 -05:00
Nuwan Chaturanga 3d113e3877 Merged in 5646-test_session_reminder (pull request #66)
PLG feature for Test Session reminder emails

* PLG feature for Test Session reminder emails

Implement the Test Session reminder emails VRFS-5646

* cutoff date for test gear reminder email

add cutoff date config to limit the selection after a certain date
add batch_size:100 to loops


Approved-by: Seth Call
2025-07-25 23:13:21 +00:00
Nuwan Chaturanga c7e80a0694 Merged in 5645-payment_method_page (pull request #65)
5645 payment method page

* wip payment method in new site

* payment method page

new page to add user's payment method (credit card / paypal) alone
with billing address details

* Update recurly/braintree tokens


Approved-by: Seth Call
2025-07-24 03:25:55 +00:00
Nuwan 9058c8af1d load jamserver.js
instead of jamserver.js instead of jamserver_copy.js when loading
react.js front end. jamserver_copy for some reason desn not load
all of the javascripts needed to get for example subscription messages
to be captured in the front end.
2025-07-18 19:38:14 +05:30
Seth Call 08008a6dc3 Fix the determination about profile_completed_at 2025-06-23 19:56:36 -05:00
Seth Call 8645328cce Oops. missed images for obs plugin site 2025-06-15 15:18:37 -05:00
Seth Call 38388d2afb Unblock pkg uploading in admin web 2025-06-15 13:13:05 -05:00
Seth Call e4d5fccdf5 Merged in seth/obs-download (pull request #63)
Seth/obs download

* wip

* Merge branch 'develop' into seth/obs-download

* Working. Waiting on final UI approval

* Merge branch 'develop' into seth/obs-download
2025-06-15 00:44:11 +00:00
Seth Call 5f3a327d35 Enable send reminders code, because saving profile_completed_at now 2025-06-14 17:37:34 -05:00
Seth Call 51ed748013 DB updates after actually updating prod 2025-06-14 10:02:18 -05:00
Seth Call dcdf9e55a3 Fix develop 2025-06-14 01:14:35 -05:00
Seth Call 7c9e449c4b Hookup gear reminder emails 2025-06-14 00:33:03 -05:00
Seth Call e7923dca9b Updated both background jobs to not break HourlyJob 2025-06-14 00:22:02 -05:00
Nuwan Chaturanga 55372bf83d Merged in 5631-signup-survey (pull request #61)
signup survey email sending

* signup survey email sending

Send new user survey email 24 hours after signup to all new users

* add config parameters

add config.signup_survey_url, config.signup_survey_cutoff_date
2025-06-13 12:02:21 +00:00
Seth Call 0f556bfad4 Only allow stopping a recording if you are the owner 2025-06-11 22:00:42 -05:00
Nuwan 817719d539 show pointer cursor on download app links 2025-05-29 16:15:43 +05:30
Nuwan cd229a0b42 fix legacy app client download links 2025-05-29 15:52:31 +05:30
Nuwan b6e2fe7494 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2025-05-27 06:54:49 +05:30
Nuwan ad1d8ea373 client downloads - fix download link for legacy clients 2025-05-27 06:54:27 +05:30
Nuwan Chaturanga 2d5d93787f Merged in 5539-gear_setup_reminders (pull request #59)
gear setup reminder emails

* gear setup reminder emails

email reminders to setup audio gear


Approved-by: Seth Call
2025-05-23 12:53:49 +00:00
Nuwan 676cbaa656 include subscription_utils script 2025-05-23 16:19:18 +05:30
Nuwan d4e0e41186 fix duplicate sessions in browse sessions page 2025-05-22 19:17:21 +05:30
Nuwan 49d3e2a4ac list sessions according to the fetch status 2025-05-21 13:56:49 +05:30
Nuwan 97d23a6bcb do not show upcoming events in event listing 2025-05-21 12:07:16 +05:30
Nuwan 0f7b9b2884 fix null value error in session list 2025-05-20 18:27:43 +05:30
Nuwan 0d25814e6e list current sessions 2025-05-20 14:24:28 +05:30
Nuwan 1e0faa7309 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2025-05-19 00:41:21 +05:30
Nuwan 10e6fedb5c revert to list all sesions 2025-05-19 00:40:53 +05:30
Nuwan d6dc79b478 fix data reference error 2025-05-19 00:40:40 +05:30
Nuwan 1071dec044 revert to list all sesions 2025-05-18 20:23:11 +05:30
Nuwan 403a830157 list friends, public and inactive sessions in browse session page 2025-05-18 19:54:12 +05:30
Nuwan Chaturanga c3bd62c0cc Merged in 5534-profile-reminder-emails (pull request #58)
5534 profile reminder emails

* Profile prompts & reminders

3 email reminders to for new users who have not completed their
jamkazam profile

* PR change requests. moved email sernding job to hourly job tasks. and add database table index


Approved-by: Seth Call
2025-05-13 12:02:46 +00:00
Nuwan Chaturanga 71716b2240 Merged in 5534-profile-reminder-emails (pull request #54)
Profile prompts & reminders

* Profile prompts & reminders

3 email reminders to for new users who have not completed their
jamkazam profile

* PR change requests. moved email sernding job to hourly job tasks. and add database table index


Approved-by: Seth Call
2025-04-05 20:18:38 +00:00
Seth Call 3a6d86e23c Fix real session check 2025-04-01 20:15:23 -05:00
Seth Call d1b9c8b19a Fix issue with actually saving the jamtrack right 2025-03-30 10:15:33 -05:00
Seth Call 615158baf2 only search on email when it's clear user is putting in an email 2025-03-30 08:49:28 -05:00
Seth Call a392d59df4 limit users autocomplete to 40 2025-03-29 11:35:27 -05:00
Seth Call 8bfb339fd5 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2025-03-28 23:27:35 -05:00
Seth Call 15f9beecf6 Fix jamtrack right field 2025-03-28 23:27:27 -05:00
Nuwan fcc49c52a1 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2025-03-27 12:25:57 +05:30
Seth Call e9d2ed7617 Ooops, missed brace 2025-03-27 12:25:28 +05:30
Seth Call 685a566c85 Stop double-counting page vies 2025-03-27 12:25:28 +05:30
Seth Call 4c95ad58ac Remove extra pageView hit 2025-03-27 12:25:28 +05:30
Seth Call 8519b56c5a Remove public URL from router basename 2025-03-27 12:25:28 +05:30
Seth Call 62d66fac75 Add GA to landing pages and fix build constant 2025-03-27 12:25:28 +05:30
Seth Call f4b1ab59e0 Cleaned up BrowserRouter, and added GA 2025-03-27 12:25:28 +05:30
Seth Call 0b60c8d0cc Load iframe later 2025-03-27 12:25:28 +05:30
Seth Call d4fcb0c19f fix signup path 2025-03-27 12:25:28 +05:30
Seth Call 98b70724a4 sitemap location fix 2025-03-27 12:25:28 +05:30
Seth Call 8f9f7d90fa Convert large pngs to webp, and create sitemap.xml 2025-03-27 12:25:28 +05:30
Seth Call 81627fc37f Add some useful filters 2025-03-27 12:25:28 +05:30
Seth Call 49888b9b5b Update indexs and speed up partner page 2025-03-27 12:25:28 +05:30
Seth Call b2c2129d42 Better reporting for quarterly payments 2025-03-27 12:25:28 +05:30
Seth Call 35a5f9f17c Add more partner fields to affiliate_traffic_total 2025-03-27 12:25:28 +05:30
Seth Call b942265652 Update Referral Admin-web page to be more useful 2025-03-27 12:25:28 +05:30
Seth Call b657511310 Revert "Update Referrals page to list more partner info"
This reverts commit a2c607b449.
2025-03-27 12:25:28 +05:30
Seth Call a687356d72 Update Referrals page to list more partner info 2025-03-27 12:25:28 +05:30
Seth Call f4c71f9778 Why can't I figure this PUBLIC_URL process env out 2025-03-27 12:25:28 +05:30
Seth Call 1120d8be31 add public url 2025-03-27 12:25:28 +05:30
Seth Call 5fba0f8d97 Fix base url 2025-03-27 12:25:28 +05:30
Seth Call ab1575365d Re-attempt build with correct URL 2025-03-27 12:25:28 +05:30
Nuwan 3369b39341 fix error on paypal redirect after checkout 2025-03-26 16:53:35 +05:30
Seth Call f5b090a20b Ooops, missed brace 2025-03-25 07:14:10 -05:00
Seth Call cc664889f8 Stop double-counting page vies 2025-03-25 07:03:51 -05:00
Seth Call cfe0129a6d Remove extra pageView hit 2025-03-24 23:06:45 -05:00
Seth Call a525082f26 Remove public URL from router basename 2025-03-24 22:46:49 -05:00
Seth Call 7f5b6152f0 Add GA to landing pages and fix build constant 2025-03-24 22:01:49 -05:00
Seth Call 0df9beb786 Cleaned up BrowserRouter, and added GA 2025-03-24 21:36:28 -05:00
Seth Call 85c0c5812f Load iframe later 2025-03-23 22:27:27 -05:00
Seth Call 4ede79ba51 fix signup path 2025-03-23 22:12:27 -05:00
Seth Call 155ee69863 sitemap location fix 2025-03-23 21:59:18 -05:00
Seth Call 8d49ea0368 Convert large pngs to webp, and create sitemap.xml 2025-03-23 21:36:36 -05:00
Seth Call 93dc5ccd35 Add some useful filters 2025-03-23 15:38:02 -05:00
Seth Call 7b6a571550 Update indexs and speed up partner page 2025-03-23 15:05:41 -05:00
Seth Call 0db6bac749 Better reporting for quarterly payments 2025-03-23 13:54:53 -05:00
Seth Call c23305634f Add more partner fields to affiliate_traffic_total 2025-03-22 09:41:49 -05:00
Nuwan 481f8099af incorporate paypal checking out
change paypal checkout and confirm screens load inside new website
and not redirecting users to old site.
2025-03-22 20:08:51 +05:30
Seth Call 23ce65d0bd Update Referral Admin-web page to be more useful 2025-03-21 19:05:07 -05:00
Seth Call ce1c4673b2 Revert "Update Referrals page to list more partner info"
This reverts commit a2c607b449.
2025-03-21 19:03:49 -05:00
Seth Call a2c607b449 Update Referrals page to list more partner info 2025-03-21 18:45:29 -05:00
Seth Call e4f6444d35 Why can't I figure this PUBLIC_URL process env out 2025-03-19 19:34:42 -06:00
Seth Call dbdc5e5296 add public url 2025-03-19 19:22:48 -06:00
Seth Call 3b45014af0 Fix base url 2025-03-19 19:07:19 -06:00
Seth Call 55c532b44f Re-attempt build with correct URL 2025-03-19 18:53:54 -06:00
Nuwan c73e78d6e6 fix checkout total not showing correctly 2025-03-13 12:17:00 +05:30
Nuwan 488aa4c03d fix showing 0.00 for cart total 2025-03-12 11:06:01 +05:30
Seth Call 2cc56f7ad7 Fix fee in cents 2025-03-10 23:24:59 -05:00
Seth Call e6046f74b6 Merged in feature/affiliate-testing (pull request #56)
Update signups aggressively as they occur (realtime), and fix some affiliate and jamtrack flows
2025-03-10 20:38:02 +00:00
Seth Call aa9555aa1e Update signups aggressively as they occur (realtime), and fix some affiliate and jamtrack flows 2025-03-10 15:36:25 -05:00
Seth Call 39dfbadbd8 Add affiliate code to backing track pages 2025-03-05 07:46:17 -06:00
Seth Call b7732c11f8 Try force full page redirect of marketing site 2025-03-04 21:46:52 -06:00
Seth Call 7faac7b61b Back to profile 2025-03-04 21:35:08 -06:00
Seth Call 98cae96d5d logout go to marketing site 2025-03-04 21:30:56 -06:00
Seth Call 0f30107481 Revert back the REACT_APP_BASE_URL 2025-03-04 21:05:49 -06:00
Seth Call 42c77a8049 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2025-03-04 21:02:36 -06:00
Seth Call 69f4bc837a Profile default on logout 2025-03-04 21:02:01 -06:00
Nuwan 89411738cb save affiliate_visitor cookie when there is affiliate param when accessing pages 2025-03-04 23:40:08 +05:30
Seth Call 9d7fea284a Redirect to profile 2025-03-04 08:26:54 -06:00
Seth Call 198adfe395 Make /profile be the default location 2025-03-04 07:36:39 -06:00
Seth Call 383d9deeb3 Fix welcome email links 2025-03-04 07:04:13 -06:00
Seth Call 7945c52cbb Fix links for knowledge-base, help-desk, and forum 2025-03-03 22:55:30 -06:00
Seth Call 9e84bcc0df Fix move of domains 2025-03-03 20:10:02 -06:00
Seth Call 6007abd6a8 Fix broken download links to bad /downloads 2025-03-03 19:58:14 -06:00
Seth Call be5a127b4c Fix bad REACT_ vars in backing-track pages 2025-03-03 19:48:25 -06:00
Nuwan 93a824501b Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2025-03-03 22:32:39 +05:30
Seth Call 3309c7f69a Guard production pushes behind manual step 2025-03-03 22:31:38 +05:30
Seth Call b04bb0c55b Merged in VRFS-5512-jamtrack-landing-pages-2 (pull request #55)
Getting in the artist pages

* Add in artist pages

* Update bitbucket yml to push on both develop
2025-03-03 22:31:38 +05:30
Nuwan 8cafb23b3e change authenticate routes
authentication related routes are scoped in /auth/... namespace with was
earlier /authntication/...
2025-03-03 22:27:43 +05:30
Seth Call 2c76628926 Guard production pushes behind manual step 2025-03-03 07:25:01 -06:00
Seth Call b678bfd70d Merged in VRFS-5512-jamtrack-landing-pages-2 (pull request #55)
Getting in the artist pages

* Add in artist pages

* Update bitbucket yml to push on both develop
2025-03-03 13:18:54 +00:00
Seth Call 9d63882e69 Merged in seth/VRFS-5512-jamtrack-landing-pages (pull request #53)
jamtrack landing pages
2025-02-28 03:03:22 +00:00
Seth Call d4546c6975 MR is ready for review 2025-02-27 07:55:08 -06:00
Seth Call a9b9e592bb resolved 2025-02-27 07:47:12 -06:00
Nuwan dcb842035f fix removing all shopping cart items when removing one item 2025-02-22 02:11:58 +05:30
Nuwan 9c0e643b23 prevent user avatar refresh
prevent referesing the user avatar on every page navigation
2025-02-22 01:47:26 +05:30
Nuwan 94747d9fe0 fix autocomplete artist search for affiliate links 2025-02-21 18:45:52 +05:30
Nuwan 81cf0dadb0 change affiliate links format 2025-02-20 19:19:27 +05:30
Nuwan 254d1ecac7 fix reset password email link 2025-02-14 19:44:20 +05:30
Nuwan 754be7877e remove showing audioUrl 2025-02-14 19:07:06 +05:30
Nuwan 8a8f1d14f9 fix fingerprint loading issue in jamtrack page 2025-02-14 17:00:42 +05:30
Nuwan bd2d9410b5 fix jamtrack autocomplete component
add debouncing technique to fetch data when fetching the data
move the FingerprintJS initialization to the appDataContext so it is not
instantiate eveytime
2025-02-13 17:52:14 +05:30
Nuwan 1e623e77de affiliate links fix artist_name_slug 2025-02-12 15:07:57 +05:30
Nuwan a0b255a5d5 change to affiliate link format
affiliate links points to the landing page and they have now
name_slug and original_artist_slug embeded
2025-02-12 07:53:10 +05:30
Nuwan 342960e57b refactor jamtracks loading
reduce the nertwork calls it had when loading jamtracks on
jamtacks listing which increases the loading time.
2025-02-12 06:14:12 +05:30
Nuwan 36a184638f remove unwanted web/venv/ directory which was added mistakenly 2025-02-09 22:57:29 +05:30
Nuwan 1ce4d4f4e6 rename the migration files to comply with the order and naming 2025-02-09 21:07:54 +05:30
Seth Call 810ae15769 Merged in mc/sluggarize-fixes (pull request #52)
Update sluggarization and sluggarize existing jamtracks

* wip

* sluggarize script

* comment out copy/pastable sql

* add readme
2025-02-09 05:09:54 +00:00
Seth Call f26733fa46 Merged in seth/jamtrack-lambda-importer (pull request #51)
Lambda & local importer for jamtracks

* # This is a combination of 9 commits.
# This is the 1st commit message:

inital attempt before upgrading Rails in lambda

# The commit message #2 will be skipped:

# unzip works

# The commit message #3 will be skipped:

# wip

# The commit message #4 will be skipped:

# Add in gemspec

# The commit message #5 will be skipped:

# wip

# The commit message #6 will be skipped:

# imported one locally

# The commit message #7 will be skipped:

# Add in jmep

# The commit message #8 will be skipped:

# add in some baked in env vars

# The commit message #9 will be skipped:

#  ran a local container build finally

* inital attempt before upgrading Rails in lambda

* Minor tweak for docker usage case of lambda running in AWS/lambda
2025-02-08 17:20:26 +00:00
Nuwan 55f6839521 chage menu items order under account submenu 2025-02-08 18:51:08 +05:30
Nuwan 4a3630f786 user_pref change
recording_pref chage from enum to normal integer values in user.rb
2025-02-06 09:17:10 +05:30
Nuwan 71458e3983 add tooltips to the recording options in preferences page 2025-02-03 12:35:26 +05:30
Nuwan 5ff152233b account preferences page
new page to change user's recording preferences
2025-02-03 12:25:21 +05:30
Nuwan 3677181e09 add jamtrack and artist landing pages 2025-01-30 11:57:01 +05:30
Nuwan 46111f041d fix joinSession custom URL param name 2025-01-29 14:38:16 +05:30
Nuwan 1dd160e19f customURL - show modal popup instead of redirecting to a new page 2025-01-29 12:55:14 +05:30
Nuwan f07a96165d change email layout
change to the new layout of the emails
reset password and after reset password
2025-01-24 08:10:27 +05:30
Nuwan 3e9d2e371e change mailer layouts
change the layout of the updating_email and updated_email templates
2025-01-22 09:53:15 +05:30
Nuwan 3d14ddbe74 affiliate links page changes 2025-01-18 22:42:30 +05:30
Nuwan 28487f271e add fields to capture venmo details
* add new field: venmo_user_id
* add new field: phone_last_4

changed the forms to replace paypal with venmo
2025-01-18 19:14:28 +05:30
Nuwan 51f1a7e58e jamtracks: force to new site
force the user to the new (beta) website jamtracks page
if they click the jamtracks tile on home page or they
load the url of that page directly in browser
2025-01-18 07:24:13 +05:30
Nuwan a027ed7096 change favicon 2025-01-17 22:42:53 +05:30
Nuwan 70dd62606b remove debug recaptcha 2025-01-16 14:27:28 +05:30
Nuwan 21301017ca debug recaptcha 2025-01-16 13:48:30 +05:30
Nuwan 1772f5a46f fixes & improvements in signup and downloads pages 2025-01-16 13:17:25 +05:30
Nuwan 4804877452 fix the size of the play/pause buttons in JamTracks listings 2025-01-09 13:35:26 +05:30
Nuwan 1d0a01c7ee signup & download pages
signup and download pages behave the same way to the legacy site
2025-01-09 08:21:26 +05:30
Nuwan 04a45394a0 wip new signup and download pages 2025-01-02 08:38:37 +05:30
Nuwan 2c6f1ef0de discard - FULL from jamtrack name in listings 2024-12-29 23:45:21 +05:30
Nuwan 2786c74175 my jamtracks page - increase the content size to be 75% in desktop window 2024-12-29 22:01:31 +05:30
Nuwan 8835455795 UI improments in JamTrack player 2024-12-29 18:47:55 +05:30
Nuwan 2d7a6db541 debug js uninitialized val in audio player 2024-12-28 00:24:35 +05:30
Nuwan 9b427b7a24 fix audio player js ref error 2024-12-28 00:11:13 +05:30
Nuwan 315f532719 fix audio player js ref error 2024-12-27 23:29:50 +05:30
Nuwan 04a7445f68 fix js variable reference error on loading the audio player component 2024-12-27 13:21:38 +05:30
Nuwan 6368897b21 fix ref error in audio player 2024-12-27 02:12:27 +05:30
Nuwan d7eef09946 custom audio player
change the defaut html audio player to a custom player
2024-12-27 01:47:08 +05:30
Nuwan f8462dbb84 fix jamTrack query params: page 2024-12-25 20:16:38 +05:30
Nuwan 8ddb4ce80d changes in locale file 2024-12-25 19:18:33 +05:30
Nuwan 6b66764082 improvements to JamTracks pages 2024-12-25 18:56:16 +05:30
Nuwan 5673d9b21e jamtracks related misc fixes 2024-12-25 00:04:11 +05:30
Nuwan c163d6b0ba UI layout fixes in checkout and shopping cart pages 2024-12-23 15:35:16 +05:30
Nuwan 61eddbb2bc prevent calling /shopping_carts api multiple times in jamtracks listing 2024-12-22 21:59:28 +05:30
Nuwan 48547d2cb1 JamTracks related ui fixes 2024-12-22 02:11:08 +05:30
Nuwan c3563a9197 wip jamtrack page creating and playing custom jamtracks 2024-12-17 16:22:31 +05:30
Nuwan 08fafbf2de work on JamTrack player 2024-12-10 11:23:02 +05:30
Nuwan cbaf1ea4f9 fix links in the jamtrack help resources section 2024-12-07 09:36:58 +05:30
Nuwan d9004980e6 fix presentation styles of jamtracks in jamtracks list page 2024-12-07 09:19:23 +05:30
Nuwan 5d87d1a358 handle purchasing a JamTrack
handle adding to cart of redeemable vs paid jamtracks
2024-12-05 20:01:56 +05:30
Nuwan 3245024925 more JamTrack page fixes 2024-12-03 19:35:38 +05:30
Nuwan d3a9a7c1e5 jamtracks related UI fixes 2024-12-03 19:03:21 +05:30
Nuwan f389250aa8 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-12-02 09:52:09 +05:30
Nuwan d5dcc71e35 fix error showing user affiliate agreement status and date 2024-12-02 09:46:01 +05:30
Seth Call 67241e7be7 Fix URLs in welcome email 2024-12-01 22:00:24 -06:00
Seth Call 5ab863bc33 Fix extra styles added to beta footer 2024-12-01 17:15:45 -06:00
Seth Call 89c4df9650 Align footer images better 2024-12-01 16:54:31 -06:00
Seth Call e6ac929303 Switch to pngs from svg for new beta email footer 2024-12-01 15:53:06 -06:00
Seth Call fb3cf004b9 once more with the asset paths 2024-12-01 14:14:45 -06:00
Seth Call 531bf25376 Fix svg paths 2024-12-01 13:38:29 -06:00
Seth Call 27b66783c1 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-12-01 10:01:21 -06:00
Seth Call 2402cf6992 Fix social urls 2024-12-01 10:01:14 -06:00
Nuwan 387a9b141d Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-12-01 06:07:16 +05:30
Nuwan 625a9dc0e4 fix app launching using custom URL scheme 2024-12-01 06:06:50 +05:30
Seth Call a09f922463 Force build 2024-11-30 13:21:49 -06:00
Seth Call 9b6f6f74e9 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-11-30 13:17:28 -06:00
Nuwan db9ad36627 debug console print custom mix audio url 2024-11-29 08:41:24 +05:30
Nuwan ea0131cb4e add help links in JamTracks page 2024-11-28 23:25:51 +05:30
Nuwan c5439f7a18 change the order of the affiliates menu items 2024-11-26 19:14:01 +05:30
Nuwan 78debaa8ab fix errors in JamTracks page and shopping cart page 2024-11-26 18:55:09 +05:30
Nuwan 8bbdedd082 fix affiliate link: use the correct id 2024-11-25 13:39:24 +05:30
Nuwan 3c4e59faa9 fix useHistory reference error 2024-11-23 18:59:44 +05:30
Nuwan b532308e28 custom url scheme: add ability to suppoer different type of custom actions. ex: createSession, joinSession 2024-11-23 18:42:12 +05:30
Nuwan 63289a29af change paramater names in joinSession custom Url 2024-11-22 22:56:25 +05:30
Nuwan 5d60c3db81 remove leading ? in the custom url query string 2024-11-22 22:13:18 +05:30
Nuwan 8f58fe4017 fixes in affiliate section - more textual and style fixes 2024-11-21 20:01:43 +05:30
Nuwan 82007bb41c minor textual and style updates to affiliate pages 2024-11-21 13:15:01 +05:30
Nuwan 358f42bba2 affliate page tweeks wip 2024-11-21 08:04:08 +05:30
Nuwan ab5b6a5fb5 enable forgot password form
make available the forgot password link so forgot password flow
is handled within the app. previously it redirected to the legacy site
2024-11-19 12:59:14 +05:30
Nuwan b04b8cfee2 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-11-19 12:53:04 +05:30
Nuwan 45e6122439 more tweaks to email template 2024-11-19 01:24:39 +05:30
Nuwan d0115a8cd9 new mailer template update 2024-11-19 01:24:39 +05:30
Nuwan ec7a79c8bb forgot password feature 2024-11-19 01:24:36 +05:30
Nuwan df9cbf3ba7 forgot password feature wip 2024-11-19 01:24:06 +05:30
Nuwan 33d0de6f0c wip forgot password 2024-11-19 01:24:06 +05:30
Nuwan 8b350ca3b6 wip forgot password 2024-11-19 01:24:06 +05:30
Nuwan abade1915e more tweaks to email template 2024-11-17 21:58:41 +05:30
Nuwan eba86ccdd5 new mailer template update 2024-11-17 21:19:29 +05:30
Nuwan a388d5e1d0 open jamkazam:// custom url in same window 2024-11-14 19:15:01 +05:30
Nuwan 98dbb358bd change the format of custom Url scheme 2024-11-14 18:41:07 +05:30
Nuwan 93961806eb skip showing latency badge if user is currentUser 2024-11-13 21:35:27 +05:30
Nuwan 6366bc5c6e fix type in showing instruments in session history 2024-11-13 21:13:21 +05:30
Nuwan ae138b79c0 session history latency not showing
includes fix for showing unknown latency badge for all sessions
and reformat the session time
2024-11-13 20:48:41 +05:30
Nuwan ed9887f9e9 add timezone to format session history date 2024-11-13 19:55:34 +05:30
Nuwan 3dc4af65e0 format session history date 2024-11-13 16:16:10 +05:30
Nuwan ab5947d94a error fix in sessions listing page
prevent errors that caused by null created_at values
when rendering session details
2024-11-13 07:31:13 +05:30
Seth Call 8979d732f2 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-11-11 18:40:42 -06:00
Nuwan b9eff8dac0 debug session history participat letancy 2024-11-11 00:42:34 +05:30
Nuwan c42dfdbb30 session history pagination 2024-11-10 21:10:08 +05:30
Nuwan 94ac48c8b5 fix images on beta email template 2024-11-08 16:40:20 +05:30
Nuwan ac469c2741 remove mailcatcher gem from Gemfile.alt 2024-11-08 13:03:47 +05:30
Nuwan d7a4e46355 add murali, bob & jorge to the jamkazam users that get the new_musicians_match email 2024-11-07 20:50:40 +05:30
Nuwan 051477d19f new user match email - jamkazam team only
add a config to restrict new_musicians_match email to be sent only
to jamkazam team users
2024-11-07 20:45:51 +05:30
Seth Call 47fd0cb68d Clean up load_history in terms of list all unique participants for a session 2024-11-07 07:35:51 -06:00
Nuwan 371f68a616 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-11-06 18:00:34 +05:30
Nuwan 69a37495b5 new user confirm email
update user confirm email contents and change to the new layout
2024-11-06 17:58:40 +05:30
Seth Call 78ae753d87 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-11-05 20:04:35 -06:00
Seth Call 4944c5983d Use current user to scope history 2024-11-05 20:04:28 -06:00
Nuwan 182deaa177 fix missing file error 2024-11-06 01:04:36 +05:30
Nuwan 1281caccf2 change welcome_message email to the new email layout and update content 2024-11-06 00:59:23 +05:30
Nuwan 604b6f6b59 localize matched new users email 2024-11-04 17:27:23 +05:30
Nuwan 996fbe51d0 new email template chages
this email template is used for the emails with the new design
which is used in the beta site.
2024-11-01 20:18:05 +05:30
Nuwan d4b412e223 change svg of other instrument icon 2024-10-30 08:36:52 +05:30
Nuwan 2d408eb3a7 show generic icon image for instruments which we do not have an icon 2024-10-29 22:32:20 +05:30
Nuwan c8a8ecc40d fix minor css issue in instrument list 2024-10-29 09:22:55 +05:30
Nuwan b51207dd3e UI style fixes in find friends page 2024-10-29 09:04:58 +05:30
Nuwan f2f6b978f8 hide 'from_location' checkbox
hide this checkbox in find friends feature. Just remove the UI
element without changing any logic
2024-10-28 21:29:24 +05:30
Nuwan b8b1146320 change format of custom URL schema according to the new way of handling it in the back end 2024-10-23 11:55:47 +05:30
Nuwan 541bca6b28 message modal - scroll to bottom
on the initial loading of messages, scroll to the bottom of the
message modal.
2024-10-23 08:22:06 +05:30
Nuwan c1a2e76186 fix profile avatar not showing
use src parameter when passing photo_url to the JKProfileAvatar
2024-10-23 08:00:50 +05:30
Nuwan 79ba0ebc70 use var instead of const
In layout.js. use var instead of const/let. because consts or let keywords are
not been supported in legacy client
2024-10-22 22:11:39 +05:30
Nuwan 8718ac4588 improvement to friend connect button 2024-10-22 21:57:56 +05:30
Nuwan 0dd8e90a7f edit profile button - make it a component with tooltip 2024-10-22 21:00:10 +05:30
Nuwan 3b0c2d1a42 fix musician filter
change instruments parameter names that are been passed to
the lambda function to be matched with the expected parameters in
labda function
2024-10-22 08:28:56 +05:30
Nuwan ccfb48459d improvements in friend connect/disconect function 2024-10-22 04:43:40 +05:30
Nuwan 6d1ad051fe fix alignment issues inside message modal contents 2024-10-19 16:03:02 +05:30
Nuwan 652b33ec51 prevent message modal scrolling on message arrive 2024-10-18 23:29:27 +05:30
Nuwan ca615eb9d9 misc fixes related to friends page 2024-10-18 22:48:11 +05:30
Nuwan 8e3272c7d5 fix data loading related to pagination in /friends page 2024-10-18 12:06:13 +05:30
Seth Call 5831e7d709 Make the previously-slow query target feed query configurable. Default to on 2024-10-14 11:18:50 -05:00
Nuwan 3c3ea6cbba custom URL scheme: use window.document.href instead of window.open 2024-10-11 11:55:12 +05:30
Nuwan 3db0a30fef styling change on join session button 2024-10-08 02:27:36 +05:30
Nuwan 7ed94b5dc0 useUserProfile hook - ability to turn on/off cache 2024-10-08 01:01:46 +05:30
Nuwan b83dfb2114 fix syntax error in browse sessions mobile view 2024-10-07 13:34:47 +05:30
Nuwan 29d64b7d0f debug browse session mobile view 2024-10-07 13:26:46 +05:30
Nuwan 36bd2788b2 another fix for managing profile edit page user genres 2024-10-07 11:24:37 +05:30
Nuwan 119a180a82 display only genres with type = profile in edit profile 2024-10-07 10:48:09 +05:30
Nuwan 91c85d5e59 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-10-07 08:49:45 +05:30
Nuwan 5d171ec016 prevent duplicated genres are being sent when updating user profile 2024-10-07 08:49:32 +05:30
Seth Call 4732138cbd Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-10-05 15:54:26 -05:00
Seth Call d07cff3721 Fix recurly bug where updated 2x from a RJS token 'ruins' the account until the user re-deploys 2024-10-05 15:54:20 -05:00
Nuwan 2afd8500bd change browse session no records alert 2024-10-05 02:58:48 +05:30
Nuwan 0377f73b9f show notification on friend request accept 2024-10-03 19:00:27 +05:30
Nuwan 47b1e843ed Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-10-03 04:38:41 +05:30
Nuwan 77359f7fc2 friends page state
use a separate redux slice for friends page
add musician slice to prevent mess up with the other user objects
fetched globally. people redux slice would serve
as global store having user records that can be referenced
elsewhere
2024-10-03 04:34:03 +05:30
Seth Call d603dd2911 bump paypayl recurly gem 2024-10-01 20:45:32 -05:00
Seth Call eea46feb5d Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-09-29 11:24:51 -05:00
Seth Call 7dbd061a86 Fix latency url 2024-09-29 11:24:39 -05:00
Nuwan db6a94ded1 forgot password: redirect to current site forgot password page 2024-09-23 20:16:03 +05:30
Nuwan 15af2d7469 fix for genres and instruments loading in profile edit page 2024-09-22 10:15:18 +05:30
Nuwan 9a0b4f4ddb profile edit: fix genres select edge case on when the user does not already have selected any genres 2024-09-21 09:38:26 +05:30
Nuwan c779277b4d change help desk page url 2024-09-20 20:24:12 +05:30
Nuwan a0dc7fa92d force user to login when accessed from email message link 2024-09-19 18:18:24 +05:30
Nuwan 0993c9a6b6 fix for genres and instrument loading in profile page 2024-09-19 13:50:34 +05:30
Nuwan b876e1e253 open help pages on new tab 2024-09-19 04:56:21 +05:30
Nuwan 3300b5a37a edit profile page: fixing genres and instrument loading issue 2024-09-18 03:12:51 +05:30
Nuwan 3695b2f5d4 help links: redirect to relevent external urls 2024-09-14 12:05:47 +05:30
Nuwan d976cdf866 remove redundent association keys
In the api_users_controller#profile_show remove :genres, :instruments
keys from the association includes
2024-09-13 08:02:34 +05:30
Nuwan fa35930c75 fix for user instruements and genres are not been loaded on edit profile page load 2024-09-10 19:28:44 +05:30
Nuwan cd1930a2bc fix for user instruements and genres are not been loaded on edit profile page load 2024-09-10 18:10:18 +05:30
Nuwan b5a18f6501 trying to figure out why user instruements and genres are not being loaded on edit profile page load 2024-09-10 15:46:27 +05:30
Nuwan fd1c0714d3 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-09-09 15:27:21 +05:30
Nuwan 4f6bf663dd fix for instruments and genres initial loading in profile edit form 2024-09-09 15:26:56 +05:30
Seth Call 0c2102b308 clean it up again 2024-09-08 14:46:16 -05:00
Seth Call ba59e7b20b Newer build 2024-09-08 14:19:44 -05:00
Seth Call 3f1a3402d8 Merged in feature/all-clients-are-modern (pull request #49)
Move all clients to the 'modern' track.

* Force old client website to upgrade to new client

* Also add

* wording fix
2024-09-08 18:18:02 +00:00
Nuwan c60959126c Flip positions of Instruments and Genres UI cards on Profile pag 2024-09-08 07:22:01 +05:30
Nuwan c404cc0bb1 add filestack-js in package.json 2024-09-07 23:35:51 +05:30
Nuwan ef79d3a8c0 now notifications in header drawer scrollable 2024-09-06 23:15:48 +05:30
Nuwan 499cd7e16b header notifications
show number of unread notifiacation count on header
allow user to scroll through the notification in header notificaton
drawer
2024-09-03 00:11:36 +05:30
Nuwan 727147ffee Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-08-29 17:10:01 +05:30
Nuwan 3175f77b7f implement profile photo upload 2024-08-29 17:08:19 +05:30
Seth Call 6833c68e40 Merge branch 'develop' into feature/legacy-download 2024-08-28 06:23:41 -05:00
Nuwan 9668b59e23 integration with filestack for profile avatar image uploading - wip 2024-08-27 00:50:01 +05:30
Nuwan 8aa463c054 in header show notification number badge 2024-08-23 16:03:23 +05:30
Nuwan 136a3c399d edit profile page ui changes 2024-08-21 00:49:58 +05:30
Nuwan e973a5f55c add control to prevent unsaved changes
in profile edit if user tries to navigate away from the site
show native confirmation message asking user's consent
2024-08-19 19:53:04 +05:30
Nuwan 5a00f45d5c profile edit page ui improvements 2024-08-18 16:41:48 +05:30
Nuwan 39be8f2955 adujest the width of instrument selection section 2024-08-16 21:49:44 +05:30
Nuwan bca4f17c8f profile edit - make the profile photo bigger and fix alignments 2024-08-16 12:05:55 +05:30
Nuwan f9aee04dd5 add missing api call to rest.js 2024-08-15 13:58:36 +05:30
Nuwan 3945e97319 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-08-15 13:55:43 +05:30
Nuwan be1cca46b1 my jam tracks loading fixes 2024-08-14 08:44:46 +05:30
Nuwan 898154a775 fix my jam track filtering 2024-08-14 08:44:46 +05:30
Nuwan 94308e9c1d fix my jam track filtering 2024-08-14 08:44:46 +05:30
Nuwan 828939ff68 fix my jam track filtering 2024-08-14 08:44:46 +05:30
Nuwan 7d7dc7a620 fix not loading next page results in my jam tracks 2024-08-14 08:44:46 +05:30
Nuwan 3b451427fc jamtrack player, cusmtom mixes and download mixes 2024-08-14 08:44:43 +05:30
Nuwan f904bdfc1c wip jamtrack player 2024-08-14 08:44:08 +05:30
Nuwan faecb69db9 jamtrack player WIP 2024-08-14 08:43:29 +05:30
Nuwan 2cc14be759 WIP: jamtracks, shopping cart and checkout pages 2024-08-14 08:43:18 +05:30
Nuwan 6e29efd307 jamtracks pages
includes jamtrack listing, my jamtracks, jamtrack details pages
2024-08-14 08:40:38 +05:30
Nuwan fb537806ca my jam tracks loading fixes 2024-08-13 23:43:34 +05:30
Nuwan 22d4553f6f fix my jam track filtering 2024-08-13 01:19:24 +05:30
Nuwan a0e4c5fc33 fix my jam track filtering 2024-08-13 00:46:27 +05:30
Nuwan 44f78edc63 fix my jam track filtering 2024-08-13 00:11:26 +05:30
Nuwan 4a09e56d8b fix not loading next page results in my jam tracks 2024-08-12 14:15:37 +05:30
Nuwan 7cf5648b78 jamtrack player, cusmtom mixes and download mixes 2024-08-12 11:48:04 +05:30
Seth Call e55ad12b61 missed files 2024-08-11 22:10:47 -05:00
Seth Call c907d9c3ba Be sure to use the same product names as in the database 2024-08-11 20:12:33 -05:00
Seth Call c44db20385 Create /downloads-legacy, and update /downloads for the 3 clients 2024-08-11 19:39:56 -05:00
Nuwan 7af01a6c61 wip jamtrack player 2024-07-31 11:27:56 +05:30
Nuwan 5b750cc3d9 jamtrack player WIP 2024-07-19 21:03:28 +05:30
Nuwan 106ea91361 make login compulsory to access the other pages 2024-07-17 18:14:18 +05:30
Nuwan 041ebccaf1 active admin CRUD for app feature 2024-07-17 15:27:50 +05:30
Nuwan 86d77df2c9 app features on/off
add ability to control the visibility of beta site menu items.
the visibility state is stored in the back end api and the front
end menu items are been shown accordingly.
2024-07-16 17:26:48 +05:30
Nuwan a3c511d2b0 WIP: jamtracks, shopping cart and checkout pages 2024-07-13 15:17:13 +05:30
Nuwan adafcb8569 work in progress on jamtracks shopping 2024-06-21 18:16:29 +05:30
Nuwan 48335a9d9c add spaces between artists list items 2024-06-10 23:02:41 +05:30
Nuwan 5fd4015ee2 fix track preview alignment issue 2024-06-10 22:57:57 +05:30
Nuwan e2b4c901dc Jamtrack shopping page 2024-06-10 21:28:34 +05:30
Nuwan 176ba1febe JamTracks
includes JamTrack filter page
2024-06-10 13:45:15 +05:30
Nuwan 24aab60556 add cypress tests for affiliates pages 2024-05-23 17:22:41 +05:30
Nuwan 8868ff718f add tests for affiliate earnings 2024-05-23 00:55:03 +05:30
Nuwan bbe83a008f affiliate earnings page 2024-05-17 14:15:19 +05:30
Nuwan e878c64c3c affiliate signups and links pages 2024-05-17 10:03:36 +05:30
Nuwan 8f63547f34 affiliate program and payee pages 2024-05-09 18:42:55 +05:30
Nuwan 97e0a8d36a session history page:
list all the sessions in decending order they were created
2024-05-05 18:38:29 +05:30
Nuwan 7176fecd7b sessions history page wip 2024-05-03 10:31:57 +05:30
Nuwan 37ed2dddd4 beta site sessions history page wip 2024-05-03 08:25:51 +05:30
Nuwan cb0cb654c8 limit CORS only to /api/* 2024-04-26 16:35:45 +05:30
Nuwan 40fbc7b430 fix error when unmounting paymemnt page 2024-04-25 20:48:06 +05:30
Nuwan 81c1c17a2f add more tests for payment history page, responsive mobile view 2024-04-24 20:44:00 +05:30
Nuwan c2ffbff216 account payments page and cypress tests 2024-04-24 08:28:02 +05:30
Nuwan 4dd95af2fa tweaks to subscription page 2024-04-20 17:27:30 +05:30
Nuwan 20eb17b044 initial release of my friends page 2024-04-20 16:44:24 +05:30
Nuwan 703309aa65 add more tests for subscription page 2024-04-17 11:33:52 +05:30
Nuwan 3ae52098c6 fix for subscription display error 2024-04-16 18:30:37 +05:30
Nuwan bd45275107 prevent duplicate entries in friends page 2024-04-12 19:39:55 +05:30
Nuwan edb6bd0b90 fix friends page related cypress tests 2024-04-11 00:21:53 +05:30
Nuwan cdd12d621d Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-04-10 13:46:51 +05:30
Nuwan cb1a8f54c5 fix default plan selection in account subscription 2024-04-10 13:39:37 +05:30
Nuwan 05d8db9cfa add cypress tests for subscription page 2024-04-10 13:39:00 +05:30
Nuwan af1140fa05 fix default plan selection in account subscription 2024-04-05 19:36:44 +05:30
Nuwan 7b0d6c153e fix null value error 2024-04-05 11:11:13 +05:30
Nuwan dbb5c4a520 account subscription
let user to change subscription
2024-04-05 10:52:06 +05:30
Nuwan ee95d07dfc fix style of join session button 2024-03-21 19:22:44 +05:30
Nuwan 884203844b Join session link
add link under the join button in browse sessions page
2024-03-21 08:13:56 +05:30
Nuwan a420767446 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2024-03-21 00:31:47 +05:30
Nuwan 4ff3d2d83c enter.svg - change css color attribute 2024-03-21 00:31:35 +05:30
Nuwan Chaturanga d80627b5d4 Merged in develop-promise (pull request #46)
Develop promise

Approved-by: Seth Call
2024-03-20 14:00:10 +00:00
Seth Call 73c566fa9e Merged develop into develop-promise 2024-03-20 13:59:21 +00:00
Nuwan e305898a74 resize the join button icon in browser sessions page 2024-03-20 09:12:26 +05:30
Nuwan 2a31e81c65 remove whitespace 2024-03-18 08:52:18 +05:30
Nuwan 6ad9aed71f use var instead of let/const
let and const keywords in javascript can not use because the code based
is also been used in the production client.
2024-03-18 08:44:40 +05:30
Nuwan 2459b3d447 websocket-gateway copy updates to init 2024-03-16 22:53:15 +05:30
Nuwan 0476e5ebb6 set default for accept_desktop_notifications 2024-03-16 22:47:15 +05:30
Nuwan e5dc8b57ec fix syntax typo in websocket-gateway router.rb 2024-03-16 16:38:33 +05:30
Nuwan 52c8b48d81 merge websocket-gateway changes
from promised branch get the changes on router file and apply
on develop branch
2024-03-16 14:34:03 +05:30
Nuwan 4144d6d123 extract changes to artifacts from promised based branch 2024-03-16 14:18:31 +05:30
Nuwan 1c0a6b2138 change default value setting
change users migration not to lock the table by directly setting
the default value of the accept_desktop_notifications colums
when running the migration
2024-03-16 10:52:32 +05:30
Nuwan 17b0ea6111 fix errors while selecting country, region and city 2024-03-11 22:23:12 +05:30
Nuwan 95008f49e6 debug error on profile edit (in server) 2024-03-11 16:38:22 +05:30
Nuwan 9164a1058d debug error on profile edit (in server) 2024-03-11 07:57:30 +05:30
Nuwan 23830144d8 debug error on profile edit (in server) 2024-03-11 07:50:49 +05:30
Nuwan eb488e374b profile page update synchronously.
making this chage to fetch all the data that need to be present
for the page on initial loading
2024-03-11 07:27:00 +05:30
Nuwan 8f84e5d12d disable filestack code in image upload for now 2024-02-28 22:19:29 +05:30
Nuwan 238fc8a382 fix error on creating database index: wrong table 2024-02-28 21:58:03 +05:30
Nuwan 9dc101d3f6 fix instrument proficiency chage
update the state correctly of the instrument list when
proficiency is changed
2024-02-28 19:48:52 +05:30
Nuwan 1a11cc331c add e2e test cases for account/identity and profile edit pages 2024-02-23 16:22:55 +05:30
Nuwan 8cf7048b7f fixes related to beta site profile edit and lobby page 2024-02-19 19:00:53 +05:30
Nuwan 4c161025e8 profile image upload wip 2024-02-16 18:25:05 +05:30
Nuwan 6546cc08bc add language translation keys to session pages 2024-02-14 17:31:30 +05:30
Nuwan fd9632a26c add translations 2024-02-14 11:37:01 +05:30
Nuwan 861722e5d4 includes fixes in profile edit form and lobby page 2024-02-12 19:11:11 +05:30
Nuwan 30aa9eeed2 merge conflicts fix 2024-02-05 19:10:40 +05:30
Nuwan 1de7a1f2f2 fix merge conflicts 2024-02-05 19:07:10 +05:30
Nuwan 963cc238e8 remove duplicate method call in rest.js 2024-02-05 19:03:42 +05:30
Nuwan dd4239f1f3 account identity update
allow users to update their JamKazam email and password securly.
2024-02-05 18:26:01 +05:30
Nuwan fe6c372d3d wip: profile edit 2024-02-05 18:26:01 +05:30
Nuwan df90496d30 change session enter button icon 2024-02-05 18:24:08 +05:30
Nuwan b85a2b236c fix instrument icon size in mobile view 2024-02-05 18:23:51 +05:30
Nuwan 0406a64531 fix: validate latency badge props 2024-02-05 18:22:39 +05:30
Nuwan 3fed41899a fix /filter api - prevent error on exception conditions 2024-02-05 18:22:39 +05:30
Nuwan 6e131f6b5d fix query string construction when fetching user latencies 2024-02-05 18:22:39 +05:30
Nuwan c29d3459e6 fix lobby users query 2024-02-05 18:21:18 +05:30
Nuwan c16be14207 fix errors due to null values 2024-02-04 23:39:54 +05:30
Nuwan aeb2e50692 account identity update
allow users to update their JamKazam email and password securly.
2024-02-03 18:29:57 +05:30
Nuwan d2c525f498 more updates to lobby page
includes showing chat notifications. also ui improvements
2024-01-22 11:28:16 +05:30
Nuwan b563f22a32 wip: profile edit 2024-01-14 13:32:15 +05:30
Nuwan 4accb2296f merge conflict resolved 2024-01-02 02:28:36 +05:30
Nuwan 23e0a7096c change session enter button icon 2024-01-02 02:23:48 +05:30
Nuwan 3bf694d816 fix instrument icon size in mobile view 2024-01-02 02:23:48 +05:30
Nuwan b4200a1b87 fix: validate latency badge props 2024-01-02 02:23:48 +05:30
Nuwan 286841c3d0 fix /filter api - prevent error on exception conditions 2024-01-02 02:23:48 +05:30
Nuwan 9b59ef6121 fix query string construction when fetching user latencies 2024-01-02 02:23:48 +05:30
Nuwan 5a8c85e765 session lobby with global chat feature 2024-01-02 02:23:21 +05:30
Nuwan c07bf115e6 change session enter button icon 2023-12-27 20:44:15 +05:30
Nuwan 06e085fd13 fix instrument icon size in mobile view 2023-12-27 18:15:50 +05:30
Nuwan 9b72852a54 wip session lobby 2023-12-22 15:27:26 +05:30
Nuwan 0f25b00571 wip session lobby 2023-12-20 21:32:01 +05:30
Nuwan 8e792d1658 fix: validate latency badge props 2023-12-14 20:02:39 +05:30
Nuwan 84481a4fec fix /filter api - prevent error on exception conditions 2023-12-14 11:34:42 +05:30
Nuwan cff277d437 session lobby wip 2023-12-14 04:19:25 +05:30
Nuwan b0672a9cb3 fix query string construction when fetching user latencies 2023-12-06 04:51:17 +05:30
Nuwan 4fed7cbb1a wip session lobby 2023-12-06 04:23:17 +05:30
Nuwan 684fff910c wip session lobby 2023-12-05 15:04:19 +05:30
Nuwan 64c42b5de3 update cypress e2e tests 2023-12-05 12:07:19 +05:30
Nuwan 38f9d4869b fix UI related alignment issues in browse sessions page 2023-12-03 15:56:11 +05:30
Nuwan 317fdb2171 Instrument icon convered as a react component 2023-12-01 01:25:43 +05:30
Nuwan 6d5edf93bf tweek styles in use selection 2023-11-30 23:34:56 +05:30
Nuwan 335d7667b5 fix latency badge and avatar image 2023-11-30 09:59:11 +05:30
Nuwan 0a871c738a add condition to display latency badge only 2023-11-29 09:37:53 +05:30
Nuwan 1d355a3a96 hide latency numbers in latency badge in sessions page 2023-11-29 09:13:07 +05:30
Nuwan c1a4481bf2 latency badge - fix data 2023-11-29 08:59:04 +05:30
Nuwan 5315d88903 fix api response of latency data 2023-11-29 08:36:37 +05:30
Nuwan e5afb83f81 fix rest api getLatencyToUsers parameter 2023-11-29 08:04:14 +05:30
Nuwan 812cedb0e1 fix for latency badge in browse sessions page 2023-11-29 01:23:50 +05:30
Nuwan a07ff74dc0 fix musician avatar image src in large browser views 2023-11-28 17:26:08 +05:30
Nuwan 27a3b3c09b tweek ui and styles in browse sessions page 2023-11-28 16:48:55 +05:30
Nuwan 21d6801185 fix styles in browse sessions 2023-11-26 00:22:44 +05:30
Nuwan 66a7f81317 show instrument icons in profile details side panel 2023-11-25 23:10:50 +05:30
Nuwan 6fed528e84 fix styles in browse session page 2023-11-25 11:16:16 +05:30
Nuwan 2b96b4d8ef Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2023-11-24 20:03:55 +05:30
Nuwan d8685a00bd fix errornious src value to profile avatar image 2023-11-24 20:03:31 +05:30
Nuwan d0d2a41e96 change firends autocomplete default avatar 2023-11-24 20:03:31 +05:30
Nuwan 2edfccda87 browse sessions page ui improvements 2023-11-24 20:03:11 +05:30
Nuwan 3062238465 fix errornious src value to profile avatar image 2023-11-17 22:35:40 +05:30
Nuwan 67fbf932ee change firends autocomplete default avatar 2023-11-17 18:53:41 +05:30
Nuwan 5598b2ef17 fix responsive view of new session window in small and medium size windows 2023-11-15 19:43:36 +05:30
Nuwan 60ef40a51b fix styles in mobile view of create new session screen 2023-11-15 18:23:38 +05:30
Nuwan fcd9dd15f4 show native app unavailable modal
show this modal if the native JamKazam app is not available on user's computer.
occurs on submission of new session form and on clicking join session in
browse session page.
2023-11-09 16:19:15 +05:30
Nuwan b7615c3fcd hide preview session button 2023-11-05 19:49:34 +05:30
Nuwan 10e67e4cbb fix merge conflicts 2023-11-03 09:22:09 +05:30
Nuwan fef31f097f merge new beta site features to develop branch 2023-11-02 17:51:42 +05:30
Nuwan c108bdd058 fixes to cypress test of friends list 2023-11-02 17:00:45 +05:30
Seth Call f42383f0b4 build bump 2023-11-02 08:41:35 +05:30
Seth Call 2102f8807a Rollback pg 2023-11-02 08:41:35 +05:30
Seth Call c8a111f5f5 Beta download page 2023-11-02 08:41:35 +05:30
Seth Call e491461f64 notes 2023-11-02 08:41:35 +05:30
Nuwan 9b94ea6351 limits musicians in weekly email
this limits the number of users in weekly email to be 20
2023-11-02 08:41:35 +05:30
Nuwan 7149392fe2 Limits weekly email entries
this limits number of musician to be listed in weekly email to be 20
2023-11-02 08:41:35 +05:30
Nuwan 20c8df7121 show last active time in words
in user recommendation email show the last active time using
action_view time_ago_in_words helper
2023-11-02 08:41:35 +05:30
Nuwan 1ca3f5f245 improvements to sending weekly emails
- optimize user filtering sql
- dealing with default values
- eliminate null value errors in mailer templates
2023-11-02 08:41:35 +05:30
Nuwan 1e988931a4 sending weekly email to users about new users joined in 2023-11-02 08:41:29 +05:30
Nuwan f75d2c8c46 send weekly email to users about new musicians 2023-11-02 08:39:16 +05:30
Nuwan fad3b73d67 wip new user recommendation email 2023-11-02 08:33:48 +05:30
Nuwan 46202a2373 sip on user match mailer 2023-11-02 08:33:48 +05:30
Nuwan bbab6cdb9f user recom email wip 2023-11-02 08:33:48 +05:30
Nuwan 6a57530a8b beta site current session listing with e2e tests 2023-11-01 18:58:08 +05:30
Nuwan b3922ec025 wip browse music sessions 2023-10-26 17:25:02 +05:30
Nuwan dd03c215c4 new session opening jamkazam app
submit the form to open jamkazam app in to
new session window with the selected privacy level.
also contains e2e tests
2023-10-19 17:09:02 +05:30
Nuwan 20c02f0f2a wip on session create in beta site 2023-10-17 08:30:23 +05:30
Nuwan 02f3201cb2 wip new session form 2023-10-14 06:56:39 +05:30
Nuwan 65bc188af1 wip beta create session 2023-10-03 00:40:53 +05:30
Nuwan 484482e5bd modificaions to the leve side navigation and new sessions page 2023-09-29 22:45:26 +05:30
Nuwan 036d982ab7 package lock updated 2023-09-28 16:52:45 +05:30
Seth Call fb7e4a287e build bump 2023-09-08 06:48:18 -05:00
Seth Call 0a32c1fac9 Rollback pg 2023-09-01 17:53:20 -05:00
Seth Call c5767efbaa Beta download page 2023-09-01 17:18:41 -05:00
Seth Call 3981c47f9f notes 2023-02-17 12:32:34 -06:00
Seth Call 84e3609602 Merged in feature/user_recommendations_email (pull request #41)
WIP: Feature/user recommendations email
2023-02-14 15:56:01 +00:00
Nuwan 199086d06b add prop-types validations and cypress e2e tests 2023-02-14 01:59:55 +05:30
Nuwan fa082230b8 create new session page for beta site 2023-02-12 12:06:16 +05:30
Nuwan b589ad8553 working on new session screen 2023-02-09 09:35:29 +05:30
Nuwan 981b83cea2 wip jam-ui new session window 2023-02-07 10:05:03 +05:30
Nuwan e25b88d062 wip jam-ui session 2023-02-03 00:24:26 +05:30
Nuwan 550a458c8d limits musicians in weekly email
this limits the number of users in weekly email to be 20
2023-01-27 17:36:07 +05:30
Nuwan 100e14cad0 Limits weekly email entries
this limits number of musician to be listed in weekly email to be 20
2023-01-27 17:11:06 +05:30
Nuwan 529d3fc891 show last active time in words
in user recommendation email show the last active time using
action_view time_ago_in_words helper
2023-01-26 00:30:17 +05:30
Nuwan 6ea439b435 improvements to sending weekly emails
- optimize user filtering sql
- dealing with default values
- eliminate null value errors in mailer templates
2023-01-25 22:50:07 +05:30
Nuwan 2b80e277c9 sending weekly email to users about new users joined in 2023-01-24 09:53:04 +05:30
Nuwan 96a93c7daf send weekly email to users about new musicians 2023-01-20 04:50:27 +05:30
Nuwan 6ff25ad1b7 wip new user recommendation email 2023-01-13 11:10:50 +05:30
Nuwan 4405e08c0a sip on user match mailer 2023-01-04 21:41:57 +05:30
Nuwan db7525ad64 user recom email wip 2023-01-02 16:39:05 +05:30
Nuwan 50ed5116f7 fix for pagination 2022-10-27 12:16:02 +05:30
Nuwan 17207fc0b8 fix for offset var 2022-10-27 11:53:47 +05:30
Nuwan 2de5f3a3c2 improve cypress integration test for filter musicians 2022-10-27 11:29:20 +05:30
Nuwan e943a3235e use offset for pagination instead of page number 2022-10-26 22:44:20 +05:30
Nuwan 957c5dc3e9 clean up musician filter codes 2022-10-26 12:46:27 +05:30
Nuwan 5c0ed0d773 remove currentPage and NextPage variables and just use page variable for pagination 2022-10-26 12:15:11 +05:30
Nuwan 6fd7a6531b fix for pagination. just show what ever data received from api without checking unique 2022-10-26 10:45:09 +05:30
Nuwan a9c0315697 fixes for pagination people filter component 2022-10-25 23:27:58 +05:30
Nuwan 0cac99e407 friends list pagination fix 2022-10-25 21:42:30 +05:30
Nuwan f8eca9d538 fixes to musicians list filter prefetcing records 2022-10-25 18:45:48 +05:30
Nuwan 6e78f61f9c improve prefetching
Only fetch the 'next set of records that aren't yet shown' once the
initial request is done. When you click 'Load', it should be only making one request at that point -- which would be the next page after the current set being shown
2022-10-23 16:19:57 +05:30
Nuwan Chaturanga 78b9cd0156 Merged in improve/musician_filter_api (pull request #39)
Improve/musician filter api

Approved-by: Seth Call
2022-10-20 15:03:49 +00:00
Nuwan 295d613165 reduce number of sql queries in musicians filter
default last active option is set to 30 days
make it 5ms when neo4j returns 0 for audio latency
2022-10-20 17:53:23 +05:30
Nuwan 1080ac4a47 add pg_data directory to gitignore 2022-10-18 22:12:12 +05:30
Nuwan c2f7fe7c32 change to api musician filter to minimize the database queries 2022-10-18 22:11:09 +05:30
Nuwan 5bd67d431c change to api musician filter to minimize the database queries 2022-10-18 22:07:15 +05:30
Nuwan ee54464cfc jam-ui: fix pagination in musician listing 2022-03-18 19:27:48 +05:30
Nuwan 245b39f67d enable test for active_within_days and joined_within_days filter options 2022-02-17 20:17:20 +05:30
Nuwan 3606b4f281 enable joined_within_days and active_within_days to musician filter option 2022-02-17 19:37:23 +05:30
Nuwan 0fcd8bc873 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2022-02-15 12:21:36 +05:30
Nuwan 84e984a549 .gitignore 2022-02-15 12:21:11 +05:30
Nuwan Chaturanga e30aacc91d Merged in jam-ui-search-fixes (pull request #38)
more filter parameters to neo4j

Approved-by: Seth Call
2022-02-10 03:29:44 +00:00
Nuwan 22e207c9cc fix errors related to filter tests 2022-02-09 13:20:37 +05:30
Nuwan bffab7564d enable commented out lines (added for debugging) 2022-02-08 21:06:22 +05:30
Nuwan 3f5cceb031 more filter parameters to neo4j
* pass genres and instrument parameters to neo4j
* remove filtering based on these params using rails and pg data
* pass pagination offset to neo4j
2022-02-08 20:55:00 +05:30
Nuwan a4d8bc70b0 fix js errors when loading jamserver.js 2022-01-18 20:20:45 +05:30
Nuwan 87278e6adb fetch musicians - from_location parameter
when fetching musicians records for the first time if there is no
results been received then fetch again by turning on from_location
filter option
2022-01-13 18:24:01 +05:30
Nuwan 7f4947a590 ui related improvements and fixes 2022-01-11 16:19:39 +05:30
Nuwan c0b9b66b9d disable load more button when data are been loaded 2021-12-24 10:57:48 +05:30
Nuwan d19756b537 reverse filter debug 2021-12-23 16:24:10 +05:30
Nuwan d35778f5e2 fix pagination errors 2021-12-23 15:58:53 +05:30
Nuwan edab0fe9fc fix error in sorting musicians 2021-12-22 18:56:13 +05:30
Nuwan ef823df8eb change header dropdown behaviour 2021-12-21 19:53:34 +05:30
Nuwan 15bd48ce3b sort filtered musicians by latency order from neo4j 2021-12-18 22:34:34 +05:30
Nuwan 505f2d5592 paginate by more button
add "load more" button on bottom of musician listing that renders the records prefetched
2021-12-18 20:11:28 +05:30
Nuwan 961183bd47 minor fix 2021-12-13 20:18:13 +05:30
Nuwan 8d99f362a2 adding missing files 2021-12-13 19:56:45 +05:30
Nuwan 6c179d3220 refactor musican filter
restureture react components so that fiter component is now
a parent to the liast component. This way it is much easy to
have the commiunication between these two components
2021-12-13 19:46:07 +05:30
Nuwan caef794231 fix for latency data not showing. found a problem in react component structrue of JKPeople and JKPeopleSearch 2021-12-11 10:24:05 +05:30
Nuwan 178d4fcb3f remove cypress test artifacts 2021-12-08 23:03:23 +05:30
Nuwan 1717fc1a15 fix null error in JKProfilePerformanceSamples component 2021-12-08 22:59:54 +05:30
Nuwan 9e718cccdc diable musicians sort by score
'scores' as a table is useless & dead. therefore this sort is no longer
valuable
2021-12-07 21:35:19 +05:30
Nuwan 5bbc5999d7 change of logging to bugsnag /search_users 2021-12-07 19:35:32 +05:30
Nuwan 4eb009d76d benchmark neo4j /search_users 2021-12-07 19:21:05 +05:30
Nuwan cb344665cb after login redirect the user to the page he requeted 2021-12-06 19:00:48 +05:30
Victor Barba Martin c6c1e96e85 setup staging variables 2021-12-03 16:25:42 +01:00
Victor Barba 80fb8b2fce bitbucket-pipelines.yml edited online with Bitbucket 2021-12-01 20:22:22 +00:00
Nuwan 7a86300755 change latency values of FAIR category 2021-11-30 19:28:09 +05:30
Nuwan 97b1b03946 checking issue in staging attempt 2 2021-11-24 17:32:18 +05:30
Nuwan a63b5cd61f checking issue in staging 2021-11-24 17:08:45 +05:30
Nuwan 362d0a7ba9 fix error 2021-11-24 16:28:32 +05:30
Nuwan 08a69da490 new pages 2021-11-24 12:39:55 +05:30
Nuwan 480de3e89f fix cypress tests 2021-11-24 10:03:47 +05:30
Nuwan 2110c4b1ce UI changes as per the requests by David 2021-11-24 09:51:28 +05:30
Nuwan e769eb0531 force https in production 2021-11-13 12:05:27 +05:30
Nuwan 4ef2dcdc04 fix issues related to user login and logout 2021-11-11 16:54:00 +05:30
Nuwan 2438e45a1b merge confict fix 2021-11-11 08:02:36 +05:30
Nuwan 2ec02ee436 change user auth to have a login page for the users to sign in to the site 2021-11-11 07:55:17 +05:30
Nuwan 4dcb1c4dd8 add link to footer 2021-11-11 07:55:17 +05:30
Nuwan e88cf16702 setup i18n with locale switcher in header 2021-11-11 07:55:17 +05:30
Seth Call 56b49d4790 Initial Bitbucket Deployments configuration 2021-11-11 02:15:06 +00:00
Nuwan Chaturanga f5def534fe Merged in VRFS-5281-admin_latency_recommendation (pull request #36)
VRFS-5281 admin latency recommendation
2021-11-04 19:49:07 +00:00
Nuwan d4a517ab7c admin page for getting latency recommendation 2021-11-04 19:26:13 +05:30
Nuwan 5cc9868f4d admin page for getting latencies between users 2021-11-02 18:49:29 +05:30
Nuwan 690219e60e wip admin latency api 2021-10-29 15:07:40 +05:30
Nuwan 4f98bb7644 add bitbucket build vars to react env 2021-10-27 16:47:07 +05:30
Nuwan dc7469d400 Merge branch 'show_ci_build_number' into develop 2021-10-27 16:12:26 +05:30
Nuwan 9fe595e523 show ci/cd build meta data in layout 2021-10-27 16:05:51 +05:30
Victor Barba Martin 0f67c4f041 add deploy to staging 2021-10-26 17:10:47 +02:00
Victor Barba Martin 5535a44393 add deploy to staging 2021-10-26 16:48:45 +02:00
Nuwan cf21f61985 add env.staging file 2021-10-26 17:05:31 +05:30
Victor Barba Martin b4a94f596b add deploy to staging 2021-10-26 09:58:39 +02:00
Nuwan 8c5bba305c add link to footer 2021-10-25 01:22:08 +05:30
Nuwan e577d71d5d setup i18n with locale switcher in header 2021-10-25 00:50:23 +05:30
Seth Call 72092edf2b build bump 2021-10-22 14:36:29 -05:00
Nuwan 8e725686f9 add rack-cors gem to Gemfile 2021-10-22 22:32:06 +05:30
Nuwan e36385b41d go to bottom of the chat window on first load 2021-10-22 20:08:08 +05:30
Nuwan f95ed1ac0c refactor code related to send friend request functionality 2021-10-22 14:13:30 +05:30
Victor Barba 4d4cbde465 bitbucket-pipelines.yml edited online with Bitbucket 2021-10-21 18:38:16 +00:00
Seth Call 6c35c02bdf Merged in VRFS-5232-new_react_frontend (pull request #34)
New UI mvp1
2021-10-21 16:36:59 +00:00
Nuwan 20faef891c Merge branch 'VRFS-5232-new_react_frontend' of bitbucket.org:jamkazam/jam-cloud into VRFS-5232-new_react_frontend 2021-10-21 21:51:25 +05:30
Nuwan d9e91d2a2f fixes in redux stores. also dismiss warnning messages raised when building 2021-10-21 21:45:19 +05:30
Victor Barba Martin b2beb8db74 add pipeline for ui deploy 2021-10-19 22:21:05 +02:00
Victor Barba Martin 9721833ab8 add pipeline for ui deploy 2021-10-19 22:16:35 +02:00
Victor Barba Martin e26b713943 Merge branch 'VRFS-5232-new_react_frontend' of https://bitbucket.org/jamkazam/jam-cloud into VRFS-5232-new_react_frontend 2021-10-19 22:12:07 +02:00
Victor Barba Martin 35726ec8d5 add pipeline for ui deploy 2021-10-19 21:42:38 +02:00
Nuwan 053bc5f78a Merge branch 'VRFS-5232-new_react_frontend' of bitbucket.org:jamkazam/jam-cloud into VRFS-5232-new_react_frontend 2021-10-19 22:08:46 +05:30
Victor Barba Martin 0a85d4a1f5 add pipeline for ui deploy 2021-10-19 18:15:39 +02:00
Nuwan 1faf1ab722 add test for search filter 2021-10-19 19:19:44 +05:30
Victor Barba Martin a9a42ae62a add pipeline for ui deploy 2021-10-19 15:07:07 +02:00
Victor Barba Martin 05651ca74c add pipeline for ui deploy 2021-10-19 15:06:04 +02:00
Nuwan 8350d8793a remove unwanted ui elements 2021-10-18 18:55:54 +05:30
Nuwan b8e058396e signout functionality 2021-10-18 17:55:31 +05:30
Nuwan 97f26e5e13 setup playwright e2e tests 2021-10-15 17:36:58 +05:30
Nuwan Chathuranga 918788f643 auth e2e test 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 697ac3e74d add notifications page 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 803e9d4014 add infinite scroll to people list 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 2f4107ce68 rename conflict files 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 8e1e281d21 ability to reply for text message notifications 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga b2fe71e482 show notifications in header as a drawer dropdown 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 6dae6ba53c write README for setting up app in dev 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 791f536c8b use redux for people state
reate redux store to manage state related to
fetching musicians and showing them on friends page
2021-10-13 22:51:30 +05:30
Nuwan Chathuranga cb35148876 fix responsive issues in people list page 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 6e4432feb1 remove only guard in friends-list.spec 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 0af1efe8b2 add integration test cases for chat messages 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 89b3273125 showing incoming text mesages in chat window 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 7c60153c21 adding redux toolkit for state management 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 4c69f76e42 import jk js scripts in to reactjs app for interacting with websocket messages 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 13175f64f1 integrating websocket api
reduce javascripts in application.js bundle and
other related scripts/markup in templates of
legacy app and keep what is nedded for intracting
with websocket api. The stripped version of the javascript
endpoint /client_scripts can be referenced by the react app.
2021-10-13 22:51:30 +05:30
Nuwan Chathuranga b67af9d847 nav and latenvy changes
includes ui improvements to nagigation, showing latency details
of user and other ui related improments
2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 6c88cd1215 wip - react components related to musician listing and filtering 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga eb4c327eff wip new react ui 2021-10-13 22:51:29 +05:30
Nuwan Chathuranga 4ee649c7f1 added updated files 2021-10-13 22:51:29 +05:30
Nuwan Chathuranga 35a9c945db rename "jam-ui" directory to "ui" 2021-10-13 22:51:28 +05:30
Nuwan Chathuranga fa8cd2fa7c Initial changes to falcon package
* include changes to the templates to match new ui design.
* musician listing and filtering (initial phase)
* showing current logged in user in header
2021-10-13 22:51:27 +05:30
Nuwan Chathuranga ea4fc496a1 initial falcon react package 2021-10-13 22:51:27 +05:30
Nuwan Chathuranga bab8d14798 wip - filter musician records 2021-10-13 22:51:27 +05:30
Nuwan Chathuranga f57218f429 enable CORS on web - allowing to connect by client app 2021-10-13 22:51:27 +05:30
Seth Call ec8a481b42 Secret room token 2021-09-29 09:44:09 -05:00
Seth Call b9941da0a5 fix options 2021-09-21 15:36:41 -05:00
Seth Call ea8baaaa82 push 2021-09-21 15:18:52 -05:00
Seth Call dbe1cc9644 update to N/A 2021-08-30 16:00:25 -05:00
Seth Call a1ab88f641 Add session video beta button 2021-08-24 08:54:16 -05:00
Seth Call 24b4a80853 Fix latency + scheduled sessions 2021-08-18 13:30:42 -05:00
Seth Call b160b4fffb Fix scheduled 2021-08-18 07:46:04 -05:00
Nuwan Chaturanga 4b8861b9c5 Merged in VRFS-5251-admin_user_latency_info (pull request #32)
show user latency json data in admin

Approved-by: Seth Call
2021-06-24 13:02:30 +00:00
Nuwan Chaturanga 091117bfe3 Merged in VRFS-5196_find_sessions_screen_latency_info (pull request #33)
VRFS-5196 find sessions screen latency info

Approved-by: Seth Call
2021-06-24 13:01:40 +00:00
Nuwan Chathuranga 5da62ebd40 change latency badge text
show HIGH instead of POOR and UNACCEPTABLE
2021-06-23 14:54:56 +05:30
Nuwan Chathuranga 6fd1c2ce3b show user latency json data in admin 2021-06-23 12:51:44 +05:30
Nuwan Chathuranga d8fa7efdae show latency badge in find session screen 2021-06-19 22:17:28 +05:30
Nuwan 6483c40f82 latency badge showing in find sessions screen wip 2021-06-19 22:17:28 +05:30
Nuwan Chathuranga 18c735b098 WIP latency badge in find sessions 2021-06-19 22:17:28 +05:30
Nuwan Chathuranga 98898dd60e wip 2021-06-19 22:17:27 +05:30
Nuwan Chathuranga 85d5044622 wip find session latency 2021-06-19 22:17:27 +05:30
Nuwan Chathuranga 20376500b5 wip - find sessions latency badge 2021-06-19 22:17:27 +05:30
Nuwan Chathuranga 65cfa7c0fc wip 2021-06-19 22:17:27 +05:30
Nuwan Chathuranga 8ab287ed73 wip find session latency 2021-06-19 22:17:27 +05:30
Nuwan Chathuranga 4b1fb8b1ed wip - find sessions latency badge 2021-06-19 22:17:27 +05:30
Nuwan Chaturanga fc624115b5 Merged in VRFS-5222-asset_upload_api (pull request #29)
VRFS-5222 asset upload api

* migration file

* asset upload api wip

* /api/user_assets

this api endpoint is used to upload and query user_assets.
for uploads send following parameters..
- asset_type
- filename
- recording_id (optional)
- session_id (optional)
- ext_id (optional)
the api provides json response with signed url to aws s3

the same api endpoint is used to query uploaded user assets.
Following query parameters are supported.
- id
- ext_id
- recording_id + asset_type
- session_id + asset_type

* delete unused asset_uploader

* for user_asset uploads use aws_bucket

* db migration to add index on user_id of user_assets table

Approved-by: Seth Call
2021-06-17 02:20:55 +00:00
Seth Call 06e0852ee5 Merged in VRFS-5181_latency_in_musician_hover_bubble (pull request #31)
Hover fixes
2021-06-16 20:57:04 +00:00
Nuwan Chathuranga fb1d18ce6b fix error showing latency badge
this fixes the issue of not showing the correct
latency badge on when hover over more than one user
2021-06-17 00:47:53 +05:30
Nuwan Chathuranga 724b76709a Merge branch 'VRFS-5181_latency_in_musician_hover_bubble' of bitbucket.org:jamkazam/jam-cloud into VRFS-5181_latency_in_musician_hover_bubble 2021-06-17 00:18:50 +05:30
Nuwan 714853dc68 merge fix 2021-06-17 00:13:52 +05:30
Nuwan b15a62cd4e wip musiian latency badge fix 2021-06-17 00:08:57 +05:30
Nuwan ebc9c2692c musiian latency badge error fixing 2021-06-17 00:08:57 +05:30
Nuwan Chathuranga 280b8bc4ae discard decimal palces in latency values in musician hover bubble 2021-06-17 00:08:57 +05:30
Nuwan Chathuranga 1906e9a110 Merge branch 'VRFS-5181_latency_in_musician_hover_bubble' of bitbucket.org:jamkazam/jam-cloud into VRFS-5181_latency_in_musician_hover_bubble 2021-06-16 22:45:25 +05:30
Nuwan 7627b39925 musiian latency badge error fixing 2021-06-16 22:30:54 +05:30
Nuwan Chathuranga 4b21aa68e0 discard decimal palces in latency values in musician hover bubble 2021-06-15 23:49:04 +05:30
Seth Call 29e23548f0 revert 2021-06-15 11:15:58 -05:00
Seth Call de6e20c21c forec no email 2021-06-15 11:10:58 -05:00
Nuwan Chathuranga 1d0e33fdc1 discard decimal palces in latency values in musician hover bubble 2021-06-15 17:26:10 +05:30
Nuwan Chaturanga a0b7581c80 Merged in VRFS-5181_latency_in_musician_hover_bubble (pull request #30)
VRFS-5181 latency in musician hover bubble

Approved-by: Seth Call
2021-06-11 14:56:43 +00:00
Nuwan Chathuranga a3a34d4afe show latency scores alone with latency badge
in musician hover bubble show internet and audio latency
scores next to latency badge
2021-06-09 23:28:59 +05:30
Nuwan e7d89ecf30 fix for latency badge not showing
This fixes latency badge only working on one musician hover bubble.
2021-06-08 20:09:55 +05:30
Seth Call 1c71ead045 bring back fpm for now 2021-06-04 14:20:35 -05:00
Nuwan Chaturanga 4a296825e3 Merged in VRFS-5181_latency_in_musician_hover_bubble (pull request #28)
VRFS-5181 show latency score badge on musician hover

Approved-by: Seth Call
2021-06-03 18:53:02 +00:00
Nuwan Chathuranga 87a01bcd66 remove "unknown" parameters in get_latencies api call to latency server 2021-06-04 00:21:30 +05:30
Nuwan Chathuranga 047ae3ebb2 specify latency server url correctly 2021-06-04 00:16:07 +05:30
Nuwan 1ee14dd01a fix small spelling mistake 2021-06-01 21:39:09 +05:30
Nuwan c7547405f8 Musician hover latency badge
show latency score badge on hover over musician.
fetches data from new resolve latency data API
2021-06-01 20:15:13 +05:30
Nuwan 11d8af22bb fixes to musicion hover latency badge spec 2021-05-30 22:10:34 +05:30
Nuwan 4f9ffa6a80 testing hover latency badge 2021-05-30 07:14:54 +05:30
Nuwan Chathuranga 683e93e75e testing latency badge 2021-05-29 18:43:48 +05:30
Nuwan 307444431a wip sepcs for musician latency badge 2021-05-29 14:38:34 +05:30
Nuwan Chathuranga 10908623a4 wip musician latency badge 2021-05-27 15:58:34 +05:30
Nuwan 5144309ff4 show latency badge
on musician hover bubble show latency score badge by querying
resolve latency api
2021-05-27 04:59:34 +05:30
Nuwan Chathuranga bcbd36a221 showing latency badge wip 2021-05-26 00:54:53 +05:30
Nuwan Chaturanga 18a0681f9f Merged in modern_os_gemfile_amendment_1 (pull request #27)
Modern os gemfile amendment 1

Approved-by: Seth Call
2021-05-24 12:34:18 +00:00
Nuwan Chathuranga 8f09bdce5b musician latency badge wip 2021-05-23 18:27:53 +05:30
Nuwan Chathuranga a027a75b1d for modern O/S setup use Gemfile.alt instead of default Gemfile
configure bundler to use Gemfile.alt when bundling gems specifically
in newer OSs like apple m1. for thiw one can use BUNDLER_GEMFILE env variable
or add gemfile config entry to ./bundle/config
2021-05-22 15:24:00 +05:30
Nuwan Chathuranga eb6750d92d Gemfile changes for moden computers
use MODEN_OS env variable to selectively install
a version of pg gem that runs under newer O/S (ex: apple M1 Big sur)
2021-05-22 15:24:00 +05:30
Nuwan Chaturanga 04d42c1ad8 Merged in VRFS-5180_neo4j_serverless_setup-a1 (pull request #25)
fix default install path
2021-05-21 20:29:02 +00:00
Nuwan 34f8413861 fix default install path 2021-05-20 07:05:38 +05:30
Seth Call 128e9c6bb4 hotfix for bad installer 2021-05-18 17:42:18 -05:00
Nuwan Chaturanga fa9a976895 Merged in VRFS-5180_neo4j_serverless_setup (pull request #24)
handler to install serverless framework and neo4j to facilitate serveing latency data requests

Approved-by: Seth Call
2021-05-13 13:43:04 +00:00
Nuwan 06ec910cfe handler to install serverless framework and neo4j to facilitate serveing latency data requests 2021-05-13 15:39:24 +05:30
Nuwan Chaturanga 96f40aed76 Merged in VRFS-5179_resolve_latency_rest_api (pull request #23)
add api endpoint to fetch latency data

Approved-by: Seth Call
2021-05-12 14:53:48 +00:00
Nuwan 34bf811453 add response.body to bugsnag call of failed latency requests 2021-05-12 20:03:28 +05:30
Nuwan 2567292580 change bugsnag severity for failed latency requests 2021-05-12 19:56:21 +05:30
Nuwan 9dac3fdb56 on error in get_latencies send details to bugsnag 2021-05-12 19:51:29 +05:30
Nuwan 93b848c2d8 remove unused code bits 2021-05-12 19:09:21 +05:30
Nuwan 2421a4bc03 add api endpoint to fetch latency data
this api method fetches latency data for the current user from the
latency graph database service
2021-05-12 16:07:23 +05:30
Seth Call 65125e04ca Fix for ARS subscription 2021-04-29 14:13:32 -05:00
Seth Call 6862bb0f65 force ars_id even when new ARS 2021-04-27 15:07:56 -05:00
Seth Call 1f913071bc emit something even if no referred 2021-04-27 14:19:34 -05:00
Seth Call e2a60eda07 emit something even if no referred 2021-04-27 14:19:13 -05:00
Nuwan Chaturanga a89bc7f5d2 Merged in VRFS-5123_video_button_remember_token_fix (pull request #22)
skip api_signed_in_user for auth in api_music_sessions_controller

Approved-by: Seth Call
2021-04-27 18:28:39 +00:00
Nuwan f1f64aedb1 skip api_signed_in_user for auth in api_music_sessions_controller 2021-04-27 23:52:31 +05:30
Seth Call 849169e3c7 Remove duplicate definitions in select for ad campaign 2021-04-27 12:44:15 -05:00
Seth Call bf83538a2d Add RAILS_RELATIVE_URL_ROOT 2021-04-27 12:37:33 -05:00
Nuwan Chaturanga 9f924fee3c Merged in VRFS-5166-ad_campaigns_report_fixes_3 (pull request #21)
ad_campaigns.rb fixes

Approved-by: Seth Call
2021-04-27 16:57:18 +00:00
Nuwan eb3064f8aa ad_campaigns.rb fixes 2021-04-27 22:21:34 +05:30
Nuwan Chaturanga f9e3e644f1 Merged in VRFS-5147-user_view_edit_improvements (pull request #17)
changes to user show and edit pages ref: VRFS-5147

* changes to user show and edit pages ref: VRFS-5147

Approved-by: Seth Call
2021-04-26 12:19:08 +00:00
Nuwan Chaturanga 316cbdab83 Merged in VRFS-5146-school_user_form (pull request #16)
new admin form to quickly add school user

* new admin form to quickly add school user

* add required: true to all form fields in quick add school user
2021-04-23 17:10:01 +00:00
Nuwan Chaturanga 3a248df971 Merged in VRFS-5144-deleted_user_improvements (pull request #15)
exclude deleted users from search

Approved-by: Seth Call
2021-04-22 21:55:17 +00:00
Nuwan 37c5cab83f exclude deleted users from search
exclude deleted musicians and fans from search results
2021-04-22 17:14:35 +05:30
Nuwan Chaturanga c2fe4ffb98 Merged in VRFS-5128_report_for_ad_campaigns (pull request #14)
VRFS-5128 report for ad campaigns

* Ad campaign report

add new admin report for monitor and analyze the results
from a variety of paid campaigns

* reload report after updating values using best_in_place

* add users first_subscribed_plan_code

use this new column in ad campaigns report to filter by
subscription plan

* set first_subscribed_plan_code in recurly subscription creation

* set correct value for first_subscribed_plan_code
2021-04-21 21:27:55 +00:00
Nuwan Chaturanga 253d82a32c Merged in VRFS-5099_clean_up_dump_paths (pull request #12)
VRFS-5099 clean up dump paths

Approved-by: Seth Call
2021-04-16 21:24:10 +00:00
Nuwan 098e828d0f refactor crash_dump 2021-04-16 05:16:22 +05:30
Nuwan Chaturanga da8133bd8f Merged in VRFS-5123_change_video_button_url (pull request #13)
change video_btn url generation

Approved-by: Seth Call
2021-04-15 10:51:50 +00:00
Nuwan e3fb76cb54 change video_btn url generation
directly call the video conferencing server url API
and bind that value to the button click handler
2021-04-15 14:02:18 +05:30
Nuwan ba9a91eb1f crash_dump fix test error in content_type 2021-04-13 01:19:03 +05:30
Seth Call 714dab3e8d default conf host 2021-04-12 13:51:32 -05:00
Nuwan eae35db92d refactor crash_dump in users api 2021-04-13 00:20:46 +05:30
Seth Call 95483b759f fix bundler 2021-04-11 14:01:49 -05:00
Nuwan Chaturanga dccd971d2e Merged in VRFS-5004-revamp_notification (pull request #11)
VRFS-5004 revamp notification
2021-04-11 18:50:51 +00:00
Seth Call 940470dbc3 done 2021-04-11 13:33:59 -05:00
Nuwan Chaturanga f42fc31c03 Merged in VRFS-5005-open_video_conf_page (pull request #10)
VRFS-5005 open video conf page

Approved-by: Seth Call
2021-04-11 16:44:01 +00:00
Nuwan b574b5e0c6 Support optional video server 2021-04-11 11:42:01 -05:00
Seth Call 43aae66fb2 add in wp changes 2021-04-10 20:49:49 -05:00
Nuwan 9711a9a666 change to notification toast and sidebar
* show 3 notification toasts instead of one
* open notification tray automatically for for priority notifications
2021-04-10 08:15:51 +05:30
Seth Call c6d1e0b466 add exception 2021-04-03 09:40:41 -05:00
Seth Call 2000dc0663 more debugging 2021-04-02 17:05:48 -05:00
Seth Call 09233022ac debug print 2021-04-02 13:26:01 -05:00
Seth Call 2b229f0409 still confused 2021-04-02 11:55:05 -05:00
Seth Call 4d797c48a1 remoove ver qualifier 2021-04-02 11:23:03 -05:00
Seth Call 421e335315 check 2021-04-01 23:15:10 -05:00
Nuwan 4db1c3b686 for testing enable video capability of the client 2021-03-29 14:44:02 +05:30
Seth Call 6f27f40962 Fix the notification highlighter tests 2021-03-28 23:29:42 -05:00
Seth Call cf4f5c89e0 session_video_spec 2021-03-28 17:34:32 -05:00
Seth Call dcbf52a88b ignore extra args when test env 2021-03-24 20:18:18 -05:00
Seth Call 1f862baccf make tests go a little faster 2021-03-24 20:12:38 -05:00
Nuwan f6074d75d8 more fixes to spec 2021-03-24 19:23:33 +05:30
Nuwan 5db2cdeca4 fixing test driver related errors in notification_highlighter_spec 2021-03-24 18:47:16 +05:30
Seth Call 49ab06180d skip_repatcha pass through to method 2021-03-19 15:27:51 -05:00
Seth Call bb0de9570d skip recaptcha 2021-03-19 11:57:52 -05:00
Nuwan Chaturanga b1484f0a71 Merged in VRFS-5011-fix_landing_signup_error (pull request #9)
VRFS-5011 fix landing signup error

Approved-by: Seth Call
2021-03-19 15:29:18 +00:00
Nuwan 69d4a01298 Update landing page to match spec 2021-03-19 10:22:31 -05:00
Seth Call fc7a685423 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2021-03-17 20:51:38 -05:00
Seth Call 7a5c731b25 Fix bug with affiliate links and also move paypal.me text 2021-03-17 20:51:32 -05:00
Nuwan Chaturanga b9b62f1661 Merged in VRFS-5012_fix_nil_error_in_admin_affiliate_cohorts (pull request #8)
fix error cause by nil partner_user in admin affiliate_cohorts

Approved-by: Seth Call
2021-03-17 22:18:03 +00:00
Nuwan c5e7b37420 fix error cause by nil partner_user in admin affiliate_cohorts 2021-03-17 15:05:33 +05:30
Seth Call 8b94c17d0e Remove bugsnag hit 2021-03-16 15:23:56 -05:00
Seth Call 86a7994d02 don't count refunds 2021-03-16 13:34:50 -05:00
Seth Call 30a3fce222 fix affiliate rate cut 2021-03-16 10:09:55 -05:00
Nuwan Chaturanga d8f7582790 Merged in VRFS-4993_signup_and_download_page_changes (pull request #6)
VRFS-4993 signup and download page changes

Approved-by: Seth Call
2021-03-16 14:00:51 +00:00
Seth Call ad7a02746b advance time better 2021-03-16 08:35:47 -05:00
Nuwan c00d75b032 fixing merge conflicts 2021-03-16 18:40:46 +05:30
Nuwan 6e51f57bff new landing pages for signup and download pages 2021-03-16 17:10:58 +05:30
Nuwan c2a3cd3cc1 remove musician radio buttons in signup form 2021-03-16 17:10:58 +05:30
Nuwan 29a4491a38 add download_spec to bin/test 2021-03-16 17:10:58 +05:30
Nuwan 9ab8cb276c change layout/template of signup and downloads
change to new layout for user signup and download pages.
2021-03-16 17:10:58 +05:30
Seth Call 9a0c70517b add rake_util 2021-03-15 08:59:46 -05:00
Nuwan c99d8e2dd3 remove musician radio buttons in signup form 2021-03-15 11:50:17 +05:30
Seth Call 4dbf9fa17c Bug fixes for affiliate syncing 2021-03-14 16:23:43 -05:00
Seth Call f58be87187 turn crash emails off by default 2021-03-14 09:29:29 -05:00
Seth Call 0aac1329e2 Add wordpress plugin and fix one link 2021-03-13 17:40:31 -06:00
Nuwan 8f7f7b4b68 add download_spec to bin/test 2021-03-13 12:03:32 +05:30
Nuwan 9315a3f01a change layout/template of signup and downloads
change to new layout for user signup and download pages.
2021-03-13 11:46:20 +05:30
Seth Call deadc2fd68 Update test xml and mocks to match real API 2021-03-11 20:26:15 -06:00
Nuwan Chaturanga 95dea2c6f3 Merged in change_to_affiliate_program (pull request #5)
Update affiliate program to 2021 spec.

Includes modifications to showing affiliate signups and earnings in client and affiliate cohorts in admin
2021-03-12 01:37:55 +00:00
Seth Call cf47777115 Update Affliate Code and Reports to 2021 spec
Add support to account for subscriptions
Change rate to 30%.  JamTracks 25cents
Reports updated for end users and admin
2021-03-11 19:36:14 -06:00
Seth Call c07e799fdb turn off personal feed again 2021-02-22 09:04:02 -06:00
Seth Call 201bc94947 build bump 2021-02-22 08:29:39 -06:00
Seth Call cecd09b726 Merge in develop 2021-02-21 15:09:10 -06:00
Seth Call 03fab14ef3 Add more test cases and logic changes 2021-02-21 15:07:31 -06:00
Seth Call ad2f29fe01 add executable 2021-02-14 12:10:55 -06:00
Seth Call 13b230a247 run working tests with bin/test 2021-02-14 12:10:46 -06:00
Seth Call 2058631c50 Merged VRFS-4950-add_rails_db_migrations into develop 2021-02-13 20:39:50 -06:00
Nuwan 48dfb68f89 change database migrations to be natural rails db migrations. 2021-02-13 20:17:18 -06:00
Seth Call d52755876f remove extra bullet 2021-02-13 15:26:18 -06:00
Seth Call 6f39421c74 new welcome email 2021-02-13 15:04:28 -06:00
Nuwan e8d74a119c fix session overlapped duration with other users
change calculation of MusicSessionUserHistory.duration_minutes to
exactly get the number of minutes overlapped with other user sessions.

previously it returned the entire music session time if a other user
joined in and left without staying compleyely within the session.

this commit also fixs an edge case of the query in
MusicSessionUserHistory.overlapping_connections
2021-02-11 20:17:36 +05:30
Seth Call 1e00b9b44e force false because only used by client path 2021-02-09 10:49:12 -06:00
Seth Call 6d14054310 http for natve client 2021-02-09 09:19:48 -06:00
Seth Call 7f6198299a use HTTP to sign 2021-02-08 22:58:53 -06:00
Seth Call 005e54f80b Add back in correct true check for email 2021-02-08 11:38:57 -06:00
Seth Call dc7c7a0c33 Slightly bigger 2021-02-08 10:52:01 -06:00
Seth Call 7d56d644ba fix hover 2021-02-07 22:08:51 -06:00
Seth Call e1d0fe2760 Fix notify bug; bette crash dump subject 2021-02-03 10:57:44 -06:00
Seth Call 877ea031d1 Pin sass/sass-rails 2021-02-02 08:29:30 -06:00
Seth Call a452b2216c monthly cohorts 2021-02-01 23:20:11 -06:00
Seth Call 6bd6958df1 Always close rating dialog on submit 2021-02-01 18:59:47 -06:00
Seth Call f98f34d5fe Pin more gems, fix CSS bugs, and fix many tests 2021-02-01 17:24:08 -06:00
Seth Call 36c25b7b49 fix websocket-gateway 2021-02-01 01:53:22 -06:00
Seth Call 839081f076 pinning more gems 2021-02-01 01:48:19 -06:00
Seth Call 1c2e96b359 more pinning 2021-02-01 01:42:02 -06:00
Seth Call a520def1c5 older bundler 2021-02-01 01:40:01 -06:00
Seth Call aa9abd6019 Updating Gemfile/locks for 2.4.1 2021-02-01 00:10:01 -06:00
Seth Call e97b19564c more changes 2021-01-31 21:25:09 -06:00
Seth Call e01d623e28 Send email control, and db gemfile 2021-01-31 14:14:29 -06:00
Seth Call a329167f05 shorten 2021-01-31 12:57:47 -06:00
Seth Call ef9f2d3441 generalize descirption for crash upload 2021-01-31 10:06:41 -06:00
Seth Call f43d6728f8 Add Nuwan to dev_users bootstrap 2021-01-31 09:29:01 -06:00
Seth Call d156d7f606 Allow longer signing and fix importer 2021-01-31 09:27:37 -06:00
Seth Call 823720f217 make websocket-gateway happy 2021-01-18 17:16:14 -06:00
Seth Call 416f615768 name 2021-01-18 10:55:52 -06:00
Seth Call 209cb891c7 crash dump tweaok 2021-01-17 12:16:09 -06:00
Seth Call ebf8e39b5c bump 2021-01-17 08:12:11 -06:00
Seth Call 1262b9fd60 ARS vs P2P, subscription fixes, no block on max time 2021-01-16 19:37:34 -06:00
Seth Call ba22761222 bump 2021-01-13 08:19:51 -06:00
Seth Call ad1e784adb update existing users 2021-01-11 17:51:06 -06:00
Seth Call 1eaaf8d4bf try new sync 2021-01-11 12:15:15 -06:00
Seth Call ee1dc427ce build 2021-01-10 23:44:49 -06:00
Seth Call 3e953b1b4c music session ratingsl 2021-01-09 16:15:56 -06:00
Seth Call 270f28be9e check if builds 2021-01-09 13:25:39 -06:00
Seth Call 67e7e8e8ed revert back again 2021-01-07 22:39:09 -06:00
Seth Call a9f1a2a422 fix typos 2021-01-06 09:14:30 -06:00
Seth Call a6f798c99a force student 2021-01-05 23:59:10 -06:00
Seth Call a0c08cf601 fix change plan to silver 2021-01-05 23:46:26 -06:00
Seth Call 88892c7e9f use plan code not derised code 2021-01-05 23:38:12 -06:00
Seth Call 900ca24c40 change asio defaults 2021-01-05 22:40:54 -06:00
Seth Call 38213a68fd try 2021-01-05 21:45:35 -06:00
Seth Call 3bc73afb88 stonk 2021-01-05 09:22:45 -06:00
Seth Call 0841409e50 let trials in 2021-01-05 08:55:37 -06:00
Seth Call 185d3e0b16 protect against uclient 2021-01-04 23:41:49 -06:00
Seth Call 9dff16d26f apply 2021-01-04 18:38:15 -06:00
Seth Call fa38b05cb9 fixes 2021-01-04 07:40:49 -06:00
Seth Call 339d63f374 try with bug snag 2021-01-01 15:33:34 -06:00
Seth Call 57c3217768 remove trial buffer 2021-01-01 12:42:05 -06:00
Seth Call 0fe8ac3330 use desired plan code while in trial 2021-01-01 10:32:13 -06:00
Seth Call 7ac66f9f0f ebui 2021-01-01 10:03:48 -06:00
Seth Call 95a4eb4ec8 better help desk check 2021-01-01 10:00:38 -06:00
Seth Call a09e33a083 push 2021-01-01 09:02:49 -06:00
Seth Call 8b3cb159ae clean up 2020-12-30 16:27:35 -06:00
Seth Call 4de066e505 done 2020-12-29 19:02:08 -06:00
Seth Call 48fc8152a4 indexes 2020-12-28 22:21:18 -06:00
Seth Call 9c7014f853 optimize slow rsvp query 2020-12-27 23:44:17 -06:00
Seth Call 965d224a0e update stats to once a minute 2020-12-27 22:35:07 -06:00
Seth Call 2d805516ff websocket optimization 2020-12-27 17:58:31 -06:00
Seth Call 8393506f52 connection policy 2020-12-18 17:22:12 -06:00
Seth Call e451e765f5 better paypal 2020-12-15 13:56:16 -06:00
Seth Call 4554d88c89 fixpaypal 2020-12-14 18:38:22 -06:00
Seth Call df4e8fc61b push 2020-12-13 14:49:44 -06:00
Seth Call 8f49337072 paypal 2020-12-13 12:22:57 -06:00
Seth Call cdd9b9df4f trying fix 2020-12-11 16:53:05 -06:00
Seth Call 84ef9d188b done 2020-12-08 09:59:29 -06:00
Seth Call 4df1fe9ce1 push 2020-12-07 23:25:32 -06:00
Seth Call e3ec5b0434 metron mifxe 2020-12-07 22:39:26 -06:00
Seth Call 3c21550c3b open stuff 2020-12-07 22:27:50 -06:00
Seth Call fdb6a35541 fix 2020-12-07 21:04:10 -06:00
Seth Call 10d932a88e ability to send welcome email 2020-12-07 15:22:15 -06:00
Seth Call 48a144744a fix 2020-12-07 10:19:39 -06:00
Seth Call 96a55d9894 15 minutels and only if > 1 person 2020-12-06 12:25:39 -06:00
Seth Call c572b0ac27 done 2020-12-05 14:45:44 -06:00
Seth Call ca933f6445 fix https avatars 2020-12-05 14:15:43 -06:00
Seth Call adf5c7afe0 debug and admin override UI 2020-12-05 13:53:04 -06:00
Seth Call 01bf30b4ce admin override 2020-12-05 12:16:38 -06:00
Seth Call 14a3851458 fix record 2020-12-04 08:28:09 -06:00
Seth Call c9577b2bb2 fix hardcoded gold 2020-12-03 16:53:39 -06:00
Seth Call 7a490c4baf fix redericet 2020-12-03 15:33:08 -06:00
Seth Call 9ebadb709f fix scan 2020-12-03 12:23:31 -06:00
Seth Call efbd49ee76 fix scan 2020-12-03 12:22:24 -06:00
Seth Call d42d23705b doh 2020-12-03 11:47:50 -06:00
Seth Call 2aa8cc351a http 2020-12-03 10:48:10 -06:00
Seth Call 7ed6f576ca fix for http 2020-12-03 10:34:59 -06:00
Seth Call 5b7ba2f99d refinements for payment and ASIO link problem 2020-12-02 09:30:58 -06:00
Seth Call 9a49ab5baa fix pro_audio 2020-11-29 23:24:48 -06:00
Seth Call 67d0a3858c fix pro_audio 2020-11-29 23:24:14 -06:00
Seth Call 0ce953280a remove certain js files 2020-11-29 22:55:16 -06:00
Seth Call 73c48fb534 pass through subscription 2020-11-29 22:28:47 -06:00
Seth Call 6c865de3e0 other fields 2020-11-29 21:22:00 -06:00
Seth Call 642a82f36a add subdomain 2020-11-29 20:15:31 -06:00
Seth Call cf00671123 code-complete minus a few features 2020-11-29 18:24:28 -06:00
Seth Call 64fdf3028a remove testi 2020-11-21 16:14:47 -06:00
Seth Call ce301fd145 session limits done 2020-11-21 16:14:37 -06:00
Seth Call 9da0b37aeb merged 2020-11-07 19:00:02 -06:00
Seth Call 695d95ecac wait until after transaction for track changes 2020-11-03 13:50:35 -06:00
Seth Call 3b5b3608b1 get a little chattier 2020-11-03 13:24:00 -06:00
Seth Call d68e8fc4f5 Remove brackets 2020-10-25 12:13:03 -05:00
Seth Call 42a958774c Policies updated 2020-10-24 23:10:27 -05:00
Seth Call 510465c9a3 add conditional redirect 2020-10-24 15:11:17 -05:00
Seth Call a367f0a376 remove s 2020-10-19 10:31:25 -05:00
Seth Call 7b664d8968 remove print 2020-10-18 15:44:59 -05:00
Seth Call a26715b932 admin build 2020-10-18 15:39:23 -05:00
Seth Call 5073c4757d check 2020-10-18 13:57:32 -05:00
Seth Call 0dee648c04 no global chat for fgetching 2020-10-17 15:59:54 -05:00
Seth Call 8911c8ed65 done 2020-10-17 12:30:42 -05:00
Seth Call c8b49e9c36 Merge branch 'develop' into feature/k1 2020-10-16 19:17:41 -05:00
Seth Call bc7c59068e more UI finessing 2020-10-14 09:35:20 -05:00
Seth Call ec449479fa create sessioen updates 2020-10-13 21:31:47 -05:00
Seth Call 168515f1bf wip 2020-10-13 21:05:08 -05:00
Seth Call 2ec522a366 pause 2020-10-09 17:22:20 -05:00
Seth Call 9476141a6c Merge branch 'develop' into feature/subscriptions 2020-09-27 20:31:21 -05:00
Seth Call d41ceaffc6 better help 2020-09-27 13:51:31 -05:00
Seth Call 01bd2c79e4 fix broken mute in jamtracks and suppress non-opener VU meddling 2020-09-27 13:08:34 -05:00
Seth Call 3b0ac0c465 fixed welocme email 2020-09-27 12:27:50 -05:00
Seth Call 8ca8c37763 Merge branch 'develop' into feature/mixer-change 2020-09-27 11:25:03 -05:00
Seth Call 9b9460be71 mixer change and help instructions 2020-09-27 11:24:22 -05:00
Seth Call 39c00d23d6 stop hiding on listed 2020-09-19 16:34:17 -05:00
Seth Call 2ebe700a9c configurable event page logo 2020-09-19 11:52:31 -05:00
Seth Call bdd44985fa wip 2020-09-19 10:57:18 -05:00
Seth Call 41f8480190 wip 2020-09-14 19:51:54 -05:00
Seth Call 2ba44ff145 pause 2020-09-14 19:51:01 -05:00
Seth Call 46c18610e6 relax io check 2020-09-01 19:24:25 -05:00
Seth Call 0d0b36d59c still got it 2020-09-01 13:56:13 -05:00
Seth Call 16c5ee9c78 ftue changes 2020-09-01 13:33:04 -05:00
Seth Call cc69aa098e typo 2020-08-22 16:19:15 -05:00
Seth Call b1ae94db1a fix beta feature 2020-08-22 15:35:42 -05:00
Seth Call c595d8158e better session ratings and prep for AKS test 2020-08-22 09:30:20 -05:00
Seth Call 16da5e8918 restrict out empty IP 2020-08-13 13:42:59 -05:00
Seth Call f790ee996a fix for privacey 2020-07-14 18:39:47 -05:00
Seth Call da8c11e83f fix privacy of the feed 2020-07-14 18:35:14 -05:00
Seth Call a15ba945fd do it 2020-06-05 17:56:17 -05:00
Seth Call ce69b1204c ars get or create 2020-06-02 23:14:39 -05:00
Seth Call 3357243f7d gcp host 2020-06-02 22:39:25 -05:00
Seth Call 20804ff389 switch to AMZ SES, add bad audio 2020-05-26 23:19:50 -05:00
Seth Call d569338f8f img 2020-05-26 19:02:51 -05:00
Seth Call 8b8dd600d6 press release page 2020-05-26 18:36:53 -05:00
Seth Call 0233d45874 fix double bass, reduce emails 2020-05-11 20:45:32 -05:00
Seth Call 634dd07769 fix message route 2020-05-09 12:04:44 -05:00
Seth Call cd05d269bd invited user spam faker 2020-05-09 09:17:00 -05:00
Seth Call 9446de49d4 gofundme link 2020-05-09 08:22:19 -05:00
Seth Call 1ccb6c8a6e ars stuff 2020-05-07 23:40:57 -05:00
Seth Call 466b4e5092 Audio Settings 2020-05-06 22:27:43 -05:00
Seth Call 51a16da559 Merge branch 'develop' into feature/ars 2020-05-06 22:12:47 -05:00
Seth Call 7dcce46dc1 let in friends 2020-05-06 22:12:16 -05:00
Seth Call a81c659851 wip 2020-05-06 22:04:17 -05:00
Seth Call 842dc7dda1 Merge branch 'develop' into feature/ars 2020-05-06 21:55:21 -05:00
Seth Call 27c966b128 remove bogus listen link text 2020-05-06 21:45:32 -05:00
Seth Call 15b7cd8ece fix hover, limit 20, better keyword search, and video tutorial link 2020-05-06 21:18:22 -05:00
Seth Call cfc786ca9f build 2020-05-06 18:25:10 -05:00
Seth Call 6982376dc4 wip 2020-05-06 18:24:29 -05:00
Seth Call 20d7be5c8f comment out problematic query for www 2020-05-06 16:10:57 -05:00
Seth Call 9ef0b24be2 remove bade line 2020-05-06 16:02:18 -05:00
Seth Call 0df6a04cd0 move genre to it's own spot 2020-05-06 14:53:47 -05:00
Seth Call 4d9e8d2847 done 2020-05-06 14:42:52 -05:00
Seth Call 77232d9e0a Merge branch 'develop' into feature/find 2020-05-01 14:12:19 -05:00
Seth Call 981e7d2636 fix who sent to 2020-05-01 14:12:08 -05:00
Seth Call b8f9f18363 merged 2020-05-01 14:06:27 -05:00
Seth Call dd4de62f8d cleanup notifies 2020-05-01 13:59:48 -05:00
Seth Call 484454caae wip 2020-04-30 12:05:59 -05:00
Seth Call 18e321dc55 Merge branch 'develop' into feature/find 2020-04-29 16:11:30 -05:00
Seth Call 715f550acf ugly 2020-04-29 16:08:41 -05:00
Seth Call 10543665ee wip 2020-04-29 15:51:50 -05:00
Seth Call 702a39ef3c fix link 2020-04-22 11:50:25 -05:00
Seth Call 072ed30ed6 expand chat window link 2020-04-22 11:40:54 -05:00
Seth Call 28f4d70360 remove count 2020-04-21 15:58:20 -05:00
Seth Call 2756f763ba speed up feeds 2020-04-21 11:21:23 -05:00
Seth Call 7266464d57 smaller feed 2020-04-21 09:47:28 -05:00
Seth Call 3e34a28588 feed fix 2020-04-21 09:04:30 -05:00
Seth Call 3e74386345 autostraip 2020-04-19 23:44:07 -05:00
Seth Call 72bbff8cfc get image in 2020-04-19 18:44:38 -05:00
Seth Call 46c6f4c286 remove listig 2020-04-19 18:40:48 -05:00
Seth Call fffcad9eee bump 2020-04-19 17:53:30 -05:00
Seth Call 37546df1d3 powered by 2020-04-19 16:40:08 -05:00
Seth Call d72aeb489c attempt one 2020-04-19 13:35:19 -05:00
Seth Call 2ea0e4760b add events to precompile 2020-04-19 09:39:42 -05:00
Seth Call 745ed8c914 live chat 2020-04-18 20:51:43 -05:00
Seth Call 8d29fd74e1 another pass at mobile 2020-04-18 20:34:29 -05:00
Seth Call ec7651c8a7 looking OK without whitelabel support 2020-04-18 15:12:45 -05:00
Seth Call a088d73b22 image assets 2020-04-16 22:18:27 -05:00
Seth Call f9ae6206e6 fix 2020-04-16 12:29:01 -05:00
Seth Call b9681fd418 livestream beta commit 2020-04-16 11:26:18 -05:00
Seth Call 9691d815cd Fixed password reset and trim of signup 2020-04-05 23:59:55 -05:00
Seth Call 4758357bc8 simplified signup 2020-04-04 20:27:22 -05:00
Seth Call e7df37c157 fix title too 2020-04-04 19:37:24 -05:00
Seth Call ddb5ba42fa deal with invites to existing users 2020-04-04 19:31:00 -05:00
Seth Call 0294761079 invite actually working 2020-04-04 17:51:36 -05:00
Seth Call f4e4b4dd16 fix find Session 2020-04-02 23:35:00 -05:00
Seth Call c0bb24fb57 fix links 2020-04-02 09:45:01 -05:00
Seth Call 5a658c2d5f remove jamblaster link, cleanup some links, debug latency-tester, turn down test to 4 2020-03-29 22:34:03 -05:00
Seth Call 1aba7ff35a Fix more links 2020-03-27 23:03:54 -05:00
Seth Call 70485aaaa3 clean up links 2020-03-27 22:14:26 -05:00
Seth Call 196f5fd009 disable listen in 2020-03-26 15:12:49 -05:00
Seth Call 22d52a73e8 looks good 2020-03-26 12:29:24 -05:00
Seth Call 988fa276b1 beter logging to debug this damn thing 2020-03-26 10:24:54 -05:00
Seth Call ff21cc8746 test 2020-03-25 07:35:28 -05:00
Seth Call fbc472b054 Remove desk URLs from welcome email, FTUE, and most web pages 2020-03-21 20:16:18 -05:00
Seth Call b6184bd355 remove nocaptcha from client interface 2019-01-20 08:13:29 -06:00
Seth Call 52ccb2c611 log beforeunload too 2019-01-19 22:14:07 -06:00
Seth Call 2de825f064 Additional logs 2019-01-19 22:08:11 -06:00
Seth Call 0f0995a567 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2019-01-19 19:59:50 -06:00
Seth Call b6d2e6e150 add some more dbug to see original of crose 2019-01-19 19:59:41 -06:00
Peter Walker 46e44ad49a track details in rating attempt 2018-08-12 11:49:48 -05:00
Seth Call 8a9eb794b7 allow teachers/students to always get in 2018-07-29 13:26:09 -05:00
Seth Call 753cc8e4d9 backend_details attempt #2 2018-07-29 12:39:40 -05:00
Seth Call bc4e5607ee configs 2018-07-29 11:09:03 -05:00
Seth Call 98bde49131 put in backend details 2018-07-22 14:19:21 -05:00
Seth Call cb0375bc32 Add first name 2018-06-14 21:39:52 -05:00
Seth Call cf652ba63a tweak url 2018-06-14 21:23:29 -05:00
Seth Call ffa93a8427 fix 2018-06-03 14:11:29 -05:00
Seth Call 65c8981f61 fix timing of email 2018-05-27 09:46:06 -05:00
Seth Call db27ff7d38 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2018-05-26 12:20:16 -05:00
Seth Call 57764a3aba emails ready to go for amazonv2 2018-05-26 12:19:59 -05:00
Peter Walker 2b153ce09c reject crashuploads that don't have client version field 2018-05-25 08:12:50 -05:00
Seth Call b0ccb5202e VRFS-4748 - 3 differet email reminders 2018-05-20 21:57:53 -05:00
Seth Call 88c23d3f8a some first traunch of improveents for amazon prom 2018-05-05 12:05:52 -05:00
Seth Call b65d04c384 add in the AMZ cards 2018-05-01 20:38:57 -05:00
Seth Call fd38e1ab4e fix shutdown prompt 2018-04-22 16:29:22 -05:00
Seth Call c6054e1e1c VRFS-4741 - kill vanilla, bugsnag, olark 2018-04-21 11:33:18 -05:00
Seth Call 563a22ea9c fix bad Url in user.rb 2018-03-29 06:55:11 -05:00
Seth Call c9fbb8e5dc fix crash dump urls 2018-03-28 21:30:07 -05:00
Seth Call dc8cde7618 fix email bug 2018-03-21 18:59:53 -05:00
Seth Call bc406ed5e4 fix backend updates 2018-03-19 20:25:09 -05:00
Seth Call 897c94cce5 VRFS-4733 - touch up lesson coupon redeem page 2018-03-19 07:04:27 -05:00
Seth Call 35a1fd07fa VRFS-4730 and VRFS-4732 - notifications of user activity 2018-03-18 16:41:40 -05:00
Seth Call eac7a77ff7 fix teacher distributions page 2018-03-13 06:57:07 -05:00
Seth Call d5783eb99d fix for bad onboarding time set 2018-03-12 21:53:24 -05:00
Seth Call efe1ee5d7d VRFS-4721 - Links in lesson chat should not require you to log in when external browser shows 2018-03-10 07:56:56 -06:00
Seth Call 6e8e509108 remove name from onboarder email 2018-03-10 07:13:59 -06:00
Seth Call d9c375df83 send out email on onboarder assignment: VRFS-4717 2018-03-09 18:27:27 -06:00
Seth Call c6486b82bf Allow whitespace on signin. Fix bug in session messaging 2018-03-08 07:23:39 -06:00
Seth Call 6a4e099a18 send emails for each message in lesson chat 2018-03-05 21:07:30 -06:00
Seth Call 16d8e0fffe Merged in VRFS-3936 (pull request #2)
VRFS-3936 jamtracks json send contents string, not a file proper; tweaking mobile.rake
2018-03-05 04:24:48 +00:00
Seth Call f00949b414 only show WASAPI 2018-03-04 18:12:18 -06:00
Seth Call 3c071f1cc3 don't whack wasapi 2018-03-04 18:03:56 -06:00
Seth Call f00814fad8 jamtracks gifted fix in admin 2018-03-04 09:30:52 -06:00
Seth Call 8cb9db9971 show non-WASAPI in chat. fix survey 2018-03-03 15:39:55 -06:00
Seth Call 698e643996 onboarding survey 2018-02-25 21:44:02 -06:00
Seth Call 89f69cfdca send survey db stuff 2018-02-25 20:54:02 -06:00
Seth Call 715e790bf6 clean up presentation 2018-02-25 18:01:19 -06:00
Seth Call afecb2e369 randomize order 2018-02-25 17:55:00 -06:00
Seth Call 48360fbaec intclude mark lost feature 2018-02-25 16:49:04 -06:00
Seth Call fce2c68f4f engagement emails 2018-02-25 16:28:12 -06:00
Seth Call 13f22abaa8 Best_inPlace no git 2018-02-22 16:33:34 -06:00
Seth Call 314d69e82d onboarding settings done 2018-02-17 10:12:38 -06:00
Seth Call 19a9e9aa8b timezone feature 2018-02-14 22:16:32 -06:00
Seth Call 91da29088f teacher search and cancel powers for slow teacher responsens 2018-01-27 16:18:04 -06:00
Seth Call badea60021 VRFS-4663 email pingpong done; not admin view 2018-01-23 21:48:23 -06:00
Seth Call 778e89e01f fix activeadmin filter 2018-01-23 20:59:45 -06:00
Seth Call 70781c85f3 make form batch proc 2018-01-23 06:59:15 -06:00
Seth Call 42205d4d87 first attempt at onboarder interface 2018-01-22 21:50:45 -06:00
Seth Call dacfc1abd3 add updated at to students 2018-01-16 22:07:02 -06:00
Seth Call e27d645485 allow marking session ready/not ready on students page 2018-01-16 22:01:07 -06:00
Seth Call 46f15568bf nav change in top-right to JamClass (kill band setup). Also fix right-navs 2018-01-16 21:29:43 -06:00
Seth Call 8727f4224d chage label 2018-01-16 19:59:42 -06:00
Seth Call 8c27f82cf4 allow filter lessons by posa card type 2018-01-16 19:59:22 -06:00
Seth Call 98620efdde files button always present 2018-01-16 14:27:20 -06:00
Seth Call e8ec5820a0 searches 2018-01-14 21:50:44 -06:00
Seth Call 210f112845 searchers on admin 2018-01-14 21:50:26 -06:00
Seth Call d0bbf92dd1 booking prices in 2018-01-14 10:12:15 -06:00
Seth Call 2324a5d309 clarify billed state 2018-01-12 15:09:00 -06:00
Seth Call b17eee5936 fix bug with admin 2018-01-11 06:00:32 -06:00
Seth Call bd12388d9a VRFS-4624 remove birth dates 2018-01-09 20:57:03 -06:00
Seth Call 30f1906cc7 allow mark not checked 2018-01-09 20:18:29 -06:00
Seth Call c30dbea2be two free 2017-12-26 14:38:32 -06:00
Seth Call a510b3bf84 json 1.8.6 2017-12-22 17:54:31 -06:00
Seth Call 55cd878e28 put in locks 2017-12-17 20:30:54 -06:00
Seth Call 4f5bedd22c use Gemfile.lock 2017-12-17 20:26:20 -06:00
Seth Call f3f888156b amazon-promo splash page 2017-12-16 17:33:45 -06:00
Seth Call 138353c212 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2017-11-06 10:40:15 -06:00
Seth Call a94c74a43f fix crash dump 2017-11-06 10:40:05 -06:00
Seth Call 2e80a14854 README.md edited online with Bitbucket 2017-11-06 14:01:15 +00:00
Seth Call 14f3c89512 crash dump change 2017-10-31 17:00:18 -05:00
Peter Walker 237dc0e6aa add extra fields to crash reports 2017-10-26 08:22:06 -05:00
Peter Walker d4f1c44fc1 add extra fields to crash reports 2017-10-25 22:54:22 -05:00
Seth Call d60871382f fix typo 2017-10-19 13:31:38 -05:00
Seth Call 628295e8ed fix cleanup 2017-10-19 09:42:08 -05:00
Seth Call 251873face Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2017-10-19 07:38:24 -05:00
Seth Call 560bd05da6 remix 2017-10-19 07:38:20 -05:00
Seth Call aaee08d4f3 fix popup in JB config and also fix musician instruments 2017-10-19 07:30:09 -05:00
Peter Walker 74b64698ee fields for crash support 2017-10-18 23:58:55 -05:00
Seth Call c097c037f5 done 2017-10-18 21:28:11 -05:00
Seth Call a447b0ecfc fix list of recordable things 2017-10-18 21:11:26 -05:00
Seth Call 0e428c9922 youtube chat association and more bug fixes 2017-10-17 21:36:53 -05:00
Seth Call 7e2268e9ce fix scheduled rsvp old query 2017-10-16 17:30:35 -05:00
Seth Call 77268fd218 refine logic to cleanup old sessions 2017-10-16 15:36:27 -05:00
Seth Call 6ca148b515 cleanup old sessions 2017-10-16 07:41:30 -05:00
Seth Call cd7d28c819 fix session rating and signup url 2017-10-15 21:32:51 -05:00
Seth Call 951a271089 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2017-10-15 20:57:48 -05:00
Seth Call 447edb6e68 cleanup shutdown dialog 2017-10-15 20:56:25 -05:00
Peter Walker e56e07e6d9 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2017-10-15 20:17:59 -05:00
Peter Walker 85c020d6b4 disable send button until user selects up/down 2017-10-15 20:17:42 -05:00
Seth Call 55e9387bd5 skip recaptcha 2017-10-15 18:15:58 -05:00
Seth Call c7804aebf1 allow posa-cards to indicate if are test cards. not used; just tracked atm 2017-10-15 17:26:00 -05:00
Seth Call 175d6d458e update email for amazon users 2017-10-15 17:07:35 -05:00
Seth Call 21c294de59 add images 2017-10-15 16:43:03 -05:00
Seth Call eff69dd44d new landing pages 2017-10-15 16:42:45 -05:00
Seth Call 297967ebd7 optimize the heck out of some terrible queries 2017-10-12 11:13:54 -05:00
Seth Call b82c9c4504 reconnect automatically in resque; kill self for websocket gateway 2017-10-10 11:08:18 -05:00
Seth Call d3e787fb2a optimize session query and catch dead connection in websocket gateway; heal dbconn 2017-10-08 10:43:33 -05:00
Seth Call 779b8e5c92 log out expected latency 2017-09-17 09:42:02 -05:00
Seth Call f339da1227 shorten shutdown options 2017-09-16 11:29:23 -05:00
Seth Call 26b4c8e60e drop Default Input/Default Output 2017-09-15 11:41:28 -05:00
Seth Call e2ec56f2df check for null data 2017-09-15 11:14:43 -05:00
Seth Call d76c7a15de oops prevent next if WDM 2017-09-15 10:40:28 -05:00
Seth Call 0e2874ae67 show 20/40 for WDM 2017-09-15 08:41:45 -05:00
Seth Call 37c7550a08 pin back hamlrails 2017-07-19 07:38:39 -05:00
Seth Call f44783efdd pin carrierwave before 1.0 breaking change 2017-07-16 20:20:28 -05:00
Seth Call 41e1ef7083 amazon readiness complete 2017-07-16 19:38:40 -05:00
Seth Call 7f18c6b056 get background-image check in there 2017-07-09 21:22:08 -05:00
Seth Call 7ff7327ef8 lots of progress on amazon-readiness 2017-07-09 21:21:29 -05:00
Seth Call cd9525ac2b Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2017-06-26 15:00:47 -05:00
Seth Call 5f1536f809 hide phantom teachers that teach guitars 2017-06-26 14:59:13 -05:00
Peter Walker 3f4f411eb6 add logic to show network test dialog 2017-06-26 12:10:58 -05:00
Seth Call 3aee4f8f28 did it 2017-06-23 18:39:22 -05:00
Seth Call eec6cc0988 fix silly bug 2017-06-15 22:51:20 -05:00
Seth Call 1b9e0011e1 fix interval bug 2017-06-15 21:23:50 -05:00
Seth Call 1318a55fc0 missing image 2017-06-10 15:35:01 -05:00
Seth Call 408c6d447f Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2017-06-10 15:34:18 -05:00
Seth Call 4d7712093a working on livestream 2017-06-10 15:34:08 -05:00
Jonathan Kolyer d1be7947af VRFS-3936 merging remote 2017-05-26 19:10:09 -07:00
Jonathan Kolyer ceb2527f56 VRFS-3936 fine-tuning mobile jtx json format some more 2017-05-26 17:09:31 -07:00
Jonathan Kolyer 65cb581d3b VRFS-3936 more reformating of jtx mobile json 2017-05-26 13:34:11 -07:00
Seth Call b9f9856541 build push 2017-05-26 14:47:37 -05:00
Jonathan Kolyer f04e0b0c8c VRFS-3936 mobile jtx json formating 2017-05-26 12:42:18 -07:00
Jonathan Kolyer f07465f372 VRFS-3936 merging develop 2017-05-24 21:33:58 -07:00
Jonathan Kolyer 34b6887a79 VRFS-3936
tweaking mobile jamtracks json formatting
2017-05-24 21:31:29 -07:00
Jonathan Kolyer cc6da7127a VRFS-3936 creating mobile jamtrack list json 2017-05-24 18:44:08 -07:00
Jonathan Kolyer 5c87e38022 VRFS-3936 rake task to generate mobile jtx json file 2017-05-18 23:33:03 -07:00
Seth Call ce02ba8664 fix vide orecording options 2017-05-12 08:03:59 -05:00
Seth Call de3869ca2c merge 2017-05-12 07:10:39 -05:00
Seth Call f4ee0be3b7 clevie tracks and fix for detecting some sort of open window 2017-05-11 21:38:27 -05:00
Jonathan Kolyer af4678cbed VRFS-3936 mobile purchase sync fixes 2017-04-24 11:21:11 -07:00
Jonathan Kolyer afe8380280 VRFS-3936 had to tweak mobile recording uploads 2017-04-20 01:06:25 -07:00
Seth Call a1fd8c3d10 add cors for real 2017-04-14 14:34:18 -05:00
Jonathan Kolyer cd762dcd15 VRFS-3936 conflict fixed merging develop 2017-03-22 12:49:58 -07:00
Jonathan Kolyer a6f9413fae VRFS-3936 fixed typo in mobile_update method 2017-03-22 12:48:36 -07:00
Seth Call 2eaa59a6d4 guitarcenter tweaks and fix accept lesson on counter recurring 2017-03-22 07:39:06 -05:00
Jonathan Kolyer 368030eedc VRFS-3936 mobile_recording_upload 2017-03-16 17:22:54 -07:00
Jonathan Kolyer 7dcbadb75f VRFS-3936 mobile recording json saves 2017-03-16 11:23:30 -07:00
Jonathan Kolyer 4f4757c946 VRFS-3936 index on json_stores.type column 2017-03-16 11:21:53 -07:00
Jonathan Kolyer cbfb8f35c1 VRFS-3936 using Recording.create_immediately 2017-02-24 15:32:02 -08:00
Jonathan Kolyer 81979ba4bb VRFS-3936 merging develop 2017-02-24 14:05:57 -08:00
Seth Call fdd046e15f allow ios through 2017-02-13 07:21:36 -06:00
Seth Call 9ad22b35ae cancel fix 2017-02-12 21:13:31 -06:00
Seth Call f80c8014dd fix bad chat history 2017-02-12 20:56:41 -06:00
Seth Call 67facaec4a fix display of session time 2017-02-12 20:49:33 -06:00
Seth Call a79b44a88c remove 403 check from jamblaster 2017-02-12 10:52:06 -06:00
Seth Call 8285781688 serial no removal 2017-02-08 08:27:06 -06:00
Seth Call 220ab8ee1b serial no removal 2017-02-08 08:25:07 -06:00
Seth Call 1b8a6dd01b fix ios_placed_order 2017-02-05 22:07:08 -06:00
Seth Call cf553009bf jamtrack price change 2017-02-05 14:42:51 -06:00
Seth Call 063cbd27ee allow multiple users to control same jb 2017-01-29 21:41:33 -06:00
Seth Call 1491e9026e fix teacher payment code 2017-01-17 21:22:49 -06:00
Seth Call fb70455829 mark_lesson added 2017-01-17 12:24:49 -06:00
Seth Call ec0b203177 carrierwave pin 2017-01-06 06:44:02 -06:00
Seth Call 575abf01e5 pin carrier wave in web 2017-01-06 06:43:38 -06:00
Seth Call 19b2edcefa fix URI encode of download of JT from ap 2017-01-05 21:21:30 -06:00
Seth Call 4a702b46fd fix URI encode of download of JT from ap 2017-01-05 21:15:03 -06:00
Seth Call ea7ed8c65e fix 2016-12-19 17:09:17 -06:00
Seth Call c43b6cb1b9 allow serialno pinning of jamblaster artifacts 2016-12-18 22:23:05 -06:00
Seth Call edcd297092 fix paypal gem reference 2016-12-17 11:08:26 -06:00
Seth Call a4eea05a84 hello 2016-12-17 08:02:55 -06:00
Seth Call 6b878cf119 try to pin coffeescriptsource 2016-12-15 20:57:08 -06:00
Seth Call 5e04f72d8e paypal support 2016-12-15 12:47:08 -06:00
Seth Call 458637b1de VRFS-3993 - better nav/help on jamtrack player 2016-12-06 08:01:10 -06:00
Seth Call 79f6649602 fix bad asset compile 2016-12-05 10:25:37 -06:00
Seth Call 7ea80fa26f default to default samplerate 2016-12-05 09:00:49 -06:00
Seth Call 80145a09da Merge branch 'feature/jbmvp' into develop 2016-11-04 11:19:14 -05:00
Seth Call ffd0469f09 working recordings 2016-11-04 11:18:58 -05:00
Seth Call 1bfdba6ca4 seo 2016-11-01 20:27:32 -05:00
Seth Call d58330d8da add 2 simple static landing pages 2016-10-27 20:28:21 -05:00
Seth Call a8b181394c wip 2016-10-27 18:24:54 -05:00
Jonathan Kolyer cd843f300c VRFS-3936 merging develop 2016-10-08 19:08:17 +00:00
Jonathan Kolyer c23944607c merging origin 2016-10-08 19:06:38 +00:00
Seth Call abf3c6f0f5 fix jamclass posa cards 2016-10-07 11:56:48 -05:00
Seth Call a2fd9cb87a allow upload of giftcards 2016-10-07 11:11:06 -05:00
Seth Call de8324e87d posa/retailer fixes 2016-10-07 09:55:16 -05:00
Seth Call 1652dabb53 fixes for retailer 2016-10-07 08:28:17 -05:00
Seth Call 2d1c4bc507 fix bug in signup plus posa claim 2016-10-02 22:26:47 -05:00
Seth Call 60543897d4 VRFS-4287 - retail partner program done 2016-10-02 21:51:34 -05:00
Seth Call 345007f110 merged 2016-09-27 15:39:45 -05:00
Seth Call 9bdc4bb394 fix for missing checkboxs 2016-09-26 22:01:07 -05:00
Seth Call 3117c7ed3e posa2wip 2016-09-26 21:56:12 -05:00
Seth Call eb89ea0a43 better education interest screen 2016-09-23 08:24:42 -05:00
Seth Call 8760924e59 fix for jamtrack open twice bug 2016-09-13 04:36:18 -05:00
Seth Call 493ac18650 re-open jamtrack 2016-09-12 22:25:13 -05:00
Seth Call 57b1bebf44 VRFS-4306 - more improvements for second ed 2016-09-09 13:17:46 -05:00
Seth Call e0f470fdcc fix space issue 2016-09-09 10:04:55 -05:00
Seth Call bbe6b50489 workaround for lack of rabl behavior 2016-09-09 09:56:13 -05:00
Seth Call b781902f7d many more school fixes 2016-09-09 09:53:38 -05:00
Seth Call bca4356e43 many school fixes 2016-09-09 09:06:02 -05:00
Seth Call 2173a8821d various fixes for emails for second ed program 2016-09-08 18:06:04 -05:00
Seth Call 222b9ea9c6 fix for montlies 2016-09-08 06:06:28 -05:00
Seth Call fd4d21ae78 school education working 2016-09-08 05:59:58 -05:00
Seth Call 5353b75c2e posa wip 2016-08-31 04:19:16 -05:00
Jonathan Kolyer 1037ad3841 VRFS-3936 merging remote develop branch 2016-08-14 22:57:48 +00:00
Seth Call c5f7711850 VRFS-4189 - non free jamtrack support 2016-08-02 20:46:15 -05:00
Seth Call d32cecaa03 fix typo 2016-07-19 07:30:41 -05:00
Seth Call 834d308647 stop having browsers say that they are a jamblaster, and also fix icheck assets 2016-07-18 20:58:43 -05:00
Seth Call 0aba92650c remove is jamblaster check for now 2016-07-18 18:09:01 -05:00
Jonathan Kolyer de7b3121e2 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-07-18 06:01:58 +00:00
Seth Call 88f796faed activeadmin set to real build 2016-07-17 22:23:07 -05:00
Seth Call cb35f75dcc non-stupid assets 2016-07-17 21:56:29 -05:00
Seth Call 510d157262 * upgrade to Rails 4 as well as support JjamBlaster 2016-07-17 10:16:27 -05:00
Seth Call 61368ae20d lessons.rake fix 2016-07-12 21:26:08 -05:00
Seth Call 23300f22a2 fix recurring lessons 2016-07-11 21:38:08 -05:00
Seth Call 7083cf7477 VRFS-4249 - fix for stripe error handling in charge method 2016-07-09 20:48:22 -05:00
Seth Call 611420e9c4 more completed elesson hover improvements 2016-07-09 13:51:44 -05:00
Seth Call e2ae17755a fix issue where complete lessons have messed up hover 2016-07-09 13:31:06 -05:00
Seth Call cdd78f1b94 jamblaster bootstrap 2016-07-09 06:20:42 -05:00
Seth Call 10632c35c0 jamblaster bootstrapping 2016-07-09 06:06:54 -05:00
Seth Call 01736de147 recording API 2016-07-06 22:28:32 -05:00
Seth Call 9ad5a97733 return 2016-06-24 17:14:38 -05:00
Seth Call 116597cd67 Hello 2016-06-24 16:40:09 -05:00
Seth Call 48635fe669 Add JamBlasterKernel to allowed product types 2016-06-24 15:53:00 -05:00
Seth Call 526b11e0d1 fix for bug 2016-06-24 15:25:36 -05:00
Seth Call 0f9c02f5f1 initial cut at jamblaster managemente config 2016-06-24 13:42:54 -05:00
Seth Call bd0dc40a4c initial version of jamblaster management page 2016-06-24 09:15:04 -05:00
Jonathan Kolyer 8592894f7a Merge branch 'develop' into VRFS-3936 2016-06-19 22:10:30 +00:00
Jonathan Kolyer 4f7c494ace Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-06-18 14:25:04 +00:00
Jonathan Kolyer ce4dfa4261 VRFS-3936 recording api 2016-06-18 13:57:39 +00:00
Seth Call e95c7fe8e5 Working on Jazz imports Stockton Helbing 2016-06-17 20:59:58 -05:00
Seth Call 17322eab1d cohort reportin 2016-06-09 13:23:32 -05:00
Jonathan Kolyer 192948b8fe Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-06-08 21:24:45 +00:00
Seth Call 9db218d518 VRFS-4193 - pop open system browser for Stripe Connect when in app 2016-06-03 10:14:29 -05:00
Seth Call c6b11e64ad VRFS-4142 - works with logged in user 2016-06-03 09:45:11 -05:00
Seth Call d2f478395e VRFS-4142 - fix indentation issue 2016-06-03 08:46:42 -05:00
Seth Call 7d182e6153 VRFS-4142 - more fixes after more testing (test drive packages) 2016-06-03 08:41:14 -05:00
Seth Call 8b8aa08ac0 VRFS-4142 - a few fixes for test drive packages 2016-06-03 08:06:47 -05:00
Seth Call 88ebada41c VRFS-4142 - test drive packaging feature 2016-06-02 23:32:09 -05:00
Seth Call ece81a2c9b yellow-ify link 2016-06-02 09:40:07 -05:00
Seth Call d4aa3bef2b bunch of jamclass fixes 2016-06-02 09:04:56 -05:00
Seth Call 1abacf0ec6 Merge branch 'develop' into feature/packages 2016-05-31 19:43:52 -05:00
Seth Call 920d648a2b slew of jamclass fixes 2016-05-31 19:20:03 -05:00
Seth Call e449139b63 alpha the list of FTUE instruments VRFS-4172 2016-05-31 11:54:20 -05:00
Seth Call 8793c77033 ftue fixes VRFS-4171, VRFS-4172 2016-05-31 11:13:49 -05:00
Seth Call e8843bfd64 ready for release JamClass 2016-05-31 08:35:04 -05:00
Seth Call 55a53325dd slew of fixes for recurring sessions, canceling sessions, and minor UI issues 2016-05-30 16:43:55 -05:00
Seth Call 197313dfc9 VRFS-4158, VRFS-4159 - audio/notation attachments work better 2016-05-30 00:32:55 -05:00
Seth Call c6a5321601 VRFS-4160 - add checkbox styling and pop external in recording selector dialog 2016-05-29 22:50:57 -05:00
Seth Call ad28d8d55d VRFS-4157 - don't wipe out sessions when considering scheduling 2016-05-29 22:30:33 -05:00
Seth Call 01a096d6c3 VRFS-4151 - checkboxes fixed on search screen 2016-05-29 20:17:18 -05:00
Seth Call d30b5326bc get dark image up 2016-05-29 19:31:19 -05:00
Seth Call f20d011e40 wip 2016-05-29 19:30:51 -05:00
Seth Call 3252d2cbd2 screenshots add to student anding page 2016-05-29 14:37:54 -05:00
Seth Call 4c199661bf VRFS-4128 - refactoring of UserMailer done, but more testing needed 2016-05-29 11:17:26 -05:00
Seth Call ae9249532b ACH payment consideration in teacher payments 2016-05-28 18:48:40 -05:00
Seth Call 5d68fe322a VRFS-4126 - update teacher rating/student ratig post session dialog 2016-05-27 21:33:26 -05:00
Seth Call 9d160bfd7c VRFS-4125 - icheckbox ify teacher profile page 2016-05-27 16:23:58 -05:00
Seth Call b4bf6319fd VRFS-4145 - remove extra dollar sign 2016-05-27 13:35:33 -05:00
Seth Call 0a9078f94e fix display of missed in jam class screen 2016-05-26 20:32:58 -05:00
Seth Call ea049068e0 lesson fixes 2016-05-26 18:10:05 -05:00
Seth Call cc3576f70f attach notations, audio, and recordings done 2016-05-26 16:25:51 -05:00
Seth Call 5939079a89 fix bug with connection manager disconnect 2016-05-25 15:26:45 -05:00
Seth Call 9212804eae VRFS-4118 - pulse side box 2016-05-24 21:05:31 -05:00
Seth Call 782f329947 VRFS-4130 - update welcome email 2016-05-24 18:03:26 -05:00
Seth Call bc63407bb7 VRFS-4127 - clean up msuh after disconnect 2016-05-24 17:31:14 -05:00
Seth Call 6ab4775f96 let join now link stay for duration of lesson 2016-05-24 15:19:11 -05:00
Seth Call 61314002b2 fix cancel of lessons 2016-05-24 15:17:42 -05:00
Seth Call 0528f09e27 VRFS-4123 put disconnected msg above broadcast 2016-05-24 14:25:50 -05:00
Seth Call af897048ad lesson actions fix 2016-05-24 13:02:14 -05:00
Seth Call 0ff71ff551 VRFS-4117 - fixed up special case no show emails and post-testdrive emails 2016-05-24 11:45:04 -05:00
Seth Call 1528de57a4 clean up no bill email 2016-05-24 10:45:15 -05:00
Seth Call 4545b9b273 VRFS-4124 - use user-auth, not stripe_account_id 2016-05-24 10:14:53 -05:00
Seth Call d71ecdecc2 dump analysis 2016-05-23 16:45:35 -05:00
Seth Call 021dc47d89 VRFS-4113 - lesson analysis error dealt with 2016-05-23 15:55:28 -05:00
Seth Call 2dafc8288a VRFS-4115 - update text of student dialog 2016-05-23 14:54:19 -05:00
Seth Call 1944832c96 VRFS-4112 login redirect on client/ signin 2016-05-23 14:49:24 -05:00
Seth Call f8c88dc225 VRFS-4111 lesson coming up soon has time data 2016-05-23 13:51:58 -05:00
Seth Call 8ad0e3ca14 VRFS-4109 - remove teach 2016-05-23 13:24:20 -05:00
Seth Call fd85736a32 VRFS-4110 - Shouldn't offer TestDrive lesson to student who already took one from this teacher 2016-05-23 13:22:26 -05:00
Seth Call e2073b49b9 user origin tracking VRFS-4072 2016-05-23 12:26:32 -05:00
Seth Call a3c4b12b50 VRFS-4107 - fake break removed 2016-05-22 12:08:04 -05:00
Seth Call 2c6e3cac92 VRFS-4107 - more tweaks to jamclass student page 2016-05-22 08:29:59 -05:00
Seth Call f9cecdd0f0 VRFS-4108 fix links on www for jamclass 2016-05-21 15:34:48 -05:00
Seth Call 2ba3655191 VRFS-4108 - student landing page updates 2016-05-21 15:18:34 -05:00
Seth Call 3deaa205d5 dont allow accepting slots in the past 2016-05-20 22:13:39 -05:00
Seth Call f9aec0526d Fix bug where 2nd test drive wouldn't work 2016-05-20 15:33:44 -05:00
Seth Call 7a4be8292f fix more issues with recent changes 2016-05-20 14:31:05 -05:00
Seth Call 7737f0977e VRFS-4091 VRFS-4089 VRFS-4088 - test drive payment screen is correct now, student can always join session 2016-05-20 10:31:43 -05:00
Seth Call 6652808f86 VRFS-4087 implement cancel button on booking screen 2016-05-19 21:49:54 -05:00
Seth Call 87eb29da11 VRFS-4086 decline to cancel 2016-05-19 21:42:27 -05:00
Seth Call cdadc8bff4 VRFS-4083 - switched sender name in email 2016-05-19 14:45:26 -05:00
Seth Call a8e367041e VRFS-4082 - weird flow issue fixed when confirming a lesson 2016-05-19 14:12:43 -05:00
Seth Call a4f7e28acc * get lesson booking screen cleaned up (better states at end) 2016-05-19 13:26:37 -05:00
Seth Call 397be9ab14 VRFS-4066 VRFS-4044 bugs fixed 2016-05-18 23:03:22 -05:00
Seth Call 94397136d3 search options url fix for VRFS-4062 2016-05-18 20:49:57 -05:00
Seth Call e458d65a12 VRFS-4062 - search teacher button goes to correct search page 2016-05-18 20:49:33 -05:00
Seth Call b8ba4eb7f9 more refinement for timer on jamclass screen 2016-05-18 20:43:07 -05:00
Seth Call a9e346ffb3 VRFS-4061 - Implement more obvious way to join a lesson when it's time to join 2016-05-18 15:18:38 -05:00
Seth Call 5214f36fc9 VRFS-4060 - timezone finagling 2016-05-17 22:11:20 -05:00
Seth Call 9725667e2a VRFS-4058 - update search ordering for teachers 2016-05-17 21:35:09 -05:00
Seth Call f9429f8712 VRFS-4094 - clip avatar name if too long 2016-05-17 21:05:47 -05:00
Seth Call 0690e30a32 add a little border to phone call-to-action 2016-05-17 20:59:14 -05:00
Seth Call fb0c96e6b4 VRFS-4052 - more connectstripe form defaults 2016-05-17 20:52:25 -05:00
Seth Call 0c0e22df8c VRFS-4041 - side bubble for teacher help reach out 2016-05-17 20:29:56 -05:00
Seth Call 22bd49b16b * fix for URI rewrite 2016-05-17 13:34:14 -05:00
Seth Call 141736ad2f * add rating dialogs for teacher/students and have them pop at end of lesson, be accessible from teacher rating profile pgae, and also from link in email 2016-05-17 13:31:53 -05:00
Seth Call 92b2e13ee8 jamclass enabled 2016-05-16 11:39:20 -05:00
Jonathan Kolyer 481bc36133 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-05-15 04:35:53 +00:00
Jonathan Kolyer fc84d5454c error handling for JamTrackImporter 2016-05-15 04:35:12 +00:00
Seth Call 5d82f555c5 Fix query 2016-05-12 20:13:25 -05:00
Seth Call 166647d112 VRFS-4074 - cloud uri/storage for jamblaster 2016-05-12 18:54:00 -05:00
Seth Call 94128e7115 * relax user id on charges 2016-05-12 17:41:25 -05:00
Seth Call cfb8e27850 VRFS-3967 - backend teacher/school code working. needs test and some more edge cases 2016-05-12 16:29:27 -05:00
Seth Call 309ebb4e5a VRFS-3965 - manage payment features for students 2016-05-11 16:03:55 -05:00
Seth Call 15d968dff5 VRFS-3964 - manage payment features for teacher 2016-05-10 21:10:24 -05:00
Seth Call fe16d513be session controller 2016-05-10 12:59:01 -05:00
Seth Call ef153ad4b7 make a school if user shows school interest 2016-05-09 21:32:34 -05:00
Seth Call 4f35d5ce0f VRFS-3896 - update email for store owners 2016-05-09 20:13:06 -05:00
Seth Call 0d564b1b83 take up full width 2016-05-09 16:57:36 -05:00
Seth Call 6f9d39ef16 VRFS-4050 - countdown timer 2016-05-09 16:47:55 -05:00
Seth Call 30aec92512 VRFS-4070 - fix cha by fix PostPrecossorMixin 2016-05-07 21:17:19 -05:00
Seth Call 5ce780f03b Fix easydropdown oopsies 2016-05-07 13:45:02 -05:00
Seth Call abf34bcd5d VRFS-4049 jamclass menu UI cleaned up 2016-05-05 07:59:18 -05:00
Seth Call e46a4b01cd 3 versions of test drive available now 2016-05-04 21:20:38 -05:00
Seth Call 0d8341c2d8 * bring back bubbles 2016-05-01 20:35:51 -05:00
Seth Call 2c51334966 teacher profile improvements 2016-04-30 22:12:45 -05:00
Seth Call 2e7e4dccf9 teacher profile improvements 2016-04-30 22:12:25 -05:00
Seth Call 4abc2f81ff Remove influxdb dependency from other projects 2016-04-27 05:46:35 -05:00
Seth Call dd84a3ebf7 remove influxdb as dependency to ruby project 2016-04-26 22:22:49 -05:00
Seth Call 5c246dc182 Update background image for JamClass VRFS-4018 2016-04-26 12:36:06 -05:00
Seth Call b0ac61fbea VRFS-4037 - no title wrap 2016-04-26 10:06:02 -05:00
Seth Call 5479e27216 VRFS-4037 - fix mailing problemg 2016-04-26 10:01:53 -05:00
Seth Call e27a3130c1 Fix positioning of school kudos 2016-04-26 06:58:14 -05:00
Seth Call fea26d82f5 VRFS-4037 - create a interested in school landing page 2016-04-25 22:01:15 -05:00
Seth Call 2835941834 * fix global chat 2016-04-25 11:00:59 -05:00
Seth Call f8c62631f6 Fix bad dialog when you have test drive already 2016-04-25 10:15:23 -05:00
Seth Call c7ca2ca974 Remove guard 2016-04-25 09:27:49 -05:00
Seth Call 6bcfe3ada3 Remove guard dependency 2016-04-25 09:01:19 -05:00
Seth Call 56cfe11e19 Removing some text from teacher landing page 2016-04-25 08:14:54 -05:00
Seth Call 872bcd2582 Better tests 2016-04-25 08:09:00 -05:00
Seth Call a14b58f2fe Home screen and session create screen re-worked 2016-04-22 15:00:08 -05:00
Seth Call b13ffe2d32 Refresh user after booking 2016-04-21 15:29:40 -05:00
Seth Call 71df46a6ca Fix bad test drive count on booking page and add nav 2016-04-21 10:51:04 -05:00
Seth Call a4a869535e * force pg_migrate version- 2016-04-21 09:51:28 -05:00
Seth Call 5701e888a8 Updating lessons with barely working version 2016-04-21 09:23:29 -05:00
Seth Call 3a6e7f2072 pg_migrate bump to fix RAISE EXCEPTION syntax command 2016-04-19 22:34:23 -05:00
Seth Call d46e8ed874 * fix teacher signup page 2016-04-13 17:14:05 -05:00
Seth Call e07bc21d2a * cause dependency added 2016-04-13 12:38:32 -05:00
Seth Call fc465a1b68 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-04-13 12:07:37 -05:00
Seth Call 10c3571cd8 * make network test optional, add help for no audio 2016-04-13 12:05:04 -05:00
Jonathan Kolyer f8ee7b693d VRFS-3855 use :head param to emulate head request through get 2016-04-10 21:22:52 +00:00
Seth Call 90c167fb91 * disable influx 2016-04-06 13:35:38 -05:00
Seth Call 9e4105a391 * VRFS-4004 and VRFS-4005 - student/teacher welcome emails 2016-04-06 13:01:40 -05:00
Seth Call adf0274b73 * fixes for some tests, and also some broken functionality in the school maangement page 2016-04-06 07:06:52 -05:00
Seth Call 399d010310 * lessons 90% done, but still mostly hidden 2016-04-05 21:23:15 -05:00
Seth Call 557bdc42db * more debug 2016-04-04 09:44:07 -05:00
Seth Call 7bdf9ddd5e * dont hide output 2016-04-04 09:41:04 -05:00
Seth Call 40df9eed6f * better error reporting for bad connections on join session 2016-03-29 05:50:14 -05:00
Seth Call a6c054635d * remove crazy debugging from base manager 2016-03-28 20:13:17 -05:00
Seth Call c9c384cbf0 * no filters 2016-03-28 10:43:25 -05:00
Seth Call 7f2db12071 * error logging better 2016-03-25 13:49:53 -05:00
Seth Call 12d8310dc6 * update teacher dump admin page and add new URL 2016-03-25 12:08:23 -05:00
Seth Call a82181b63d * mored ebugs 2016-03-25 09:09:03 -05:00
Seth Call c4f691b6d0 * teacher admin tweaks 2016-03-22 11:14:32 -05:00
Seth Call 378af99e14 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-03-21 21:42:24 -05:00
Seth Call 584b4b347f * sorting corrected on teachers list 2016-03-21 16:52:44 -05:00
Seth Call 2e3f47e9b2 * student page 2016-03-21 16:37:13 -05:00
Seth Call 5c14d283ab * teacher profile pgae 2016-03-21 15:39:15 -05:00
Jonathan Kolyer bf59f4ac62 jtx ios batch purchase loading 2016-03-17 12:30:44 +00:00
Jonathan Kolyer 97f0d58f2e batch purchase loading 2016-03-16 23:14:43 +00:00
Jonathan Kolyer 3d9bc9f541 jamtracks ios performance 2016-03-16 21:11:10 +00:00
Seth Call b3e2943599 * fix minor drumma boy import issues 2016-03-16 10:10:23 -05:00
Seth Call 22ca511681 * add a bunch of traces for debugging VRFS-3986 2016-03-14 13:42:14 -05:00
Seth Call dbf4ae777b * support for drumma boy storage jamtracks 2016-03-13 16:46:09 -05:00
Seth Call df4c0fba26 * sessionId fix 2016-03-11 08:00:17 -06:00
Seth Call 72e3ed165b * move to session screen 2016-03-10 23:03:41 -06:00
Seth Call 19223e96e6 * fix login problem 2016-03-10 21:56:42 -06:00
Seth Call 2cc7a3646b * pin reflux 2016-03-10 16:09:46 -06:00
Seth Call bc80fd1325 fix minor issue 2016-03-10 14:58:26 -06:00
Seth Call 349e9027a3 * try different way of referencing broadcast actions 2016-03-10 14:57:14 -06:00
Seth Call 2ad2531f6b * a little debugging info 2016-03-10 13:10:13 -06:00
Seth Call 98d29965a0 * pass back in username and also leave/join 2016-03-10 08:10:43 -06:00
Seth Call d61f5f28da * add diagnostic info messaging 2016-03-04 10:44:39 -06:00
Seth Call 0a3d1016a1 * VRFS-3973 - websocket gateway to allow jamblasters to connect with no connection info 2016-03-04 09:06:13 -06:00
Seth Call 8c805f0378 * VRFS-3973 - event into backend on session join/leave events 2016-03-03 16:08:01 -06:00
Seth Call f6652fa180 * dont use email blacklist ban 2016-03-01 14:24:31 -06:00
Seth Call 54cbfc69f0 * blacklist email feature 2016-03-01 13:49:58 -06:00
Seth Call 1d532cc305 * fix heartbeat disconnect 2016-03-01 09:27:33 -06:00
Seth Call 51977c7cc3 * VRFS-3968 - remove puts 2016-02-29 11:36:34 -06:00
Seth Call 681b27a4b4 * VRFS-3968 - refine responses for jamblaster pairing API 2016-02-29 11:35:18 -06:00
Jonathan Kolyer 4c3c23606a VRFS-3957 fixed cryptic sql query bug in UserBlacklist#banned 2016-02-26 18:37:54 +00:00
Seth Call 78c00604f3 * jamblaster user API VRFS-3918 2016-02-26 09:04:00 -06:00
Seth Call 39a240551a * more font sizin 2016-02-24 21:27:56 -06:00
Seth Call 0cc2aca908 * bump up sizes 2016-02-24 06:56:58 -06:00
Seth Call 18a92e4cc1 * iphone/mobile optimzation of landing pagse 2016-02-23 15:48:55 -06:00
Seth Call 8942ed4ccf * itunes links 2016-02-23 05:55:15 -06:00
Seth Call 0cd19e6725 * update jmep logic 2016-02-22 20:05:44 -06:00
Seth Call 0cebcb1e29 * dry run working with all timtracks 2016-02-21 13:59:35 -06:00
Seth Call 04234eef27 * improvements for bpm + silence detection 2016-02-21 12:49:16 -06:00
Seth Call 865e8201e0 * source added to jam-admin 2016-02-19 05:28:36 -06:00
Seth Call f225a85484 * remove puts 2016-02-18 11:47:08 -06:00
Seth Call 9cc2ee4f4f * VRFS-3912 - more jamblaster tweaking 2016-02-18 11:22:50 -06:00
Seth Call 7f6b41d8b1 * jamblaster apis VRFS-3912 2016-02-18 06:12:28 -06:00
Jonathan Kolyer 95c534623e VRFS-3928 fixed bug on JamTrack.latestPurchase, handling null case 2016-02-12 11:13:42 +00:00
Jonathan Kolyer 04a7a9dea4 VRFS-3800 use constants for static strings 2016-02-09 15:17:52 +00:00
Seth Call 534b4f0e6c * duh. backwards logic 2016-02-09 15:17:52 +00:00
Seth Call 0aecf7345f * code review time\! 2016-02-09 15:17:52 +00:00
Jonathan Kolyer b8a190c889 VRFS-3800 removed comment 2016-02-09 15:17:52 +00:00
Jonathan Kolyer 7e32ffcdf8 VRFS-3800 save ios receipt json 2016-02-09 15:17:52 +00:00
Jonathan Kolyer fab38451cd VRFS-3800 go-right receipt validation 2016-02-09 15:17:52 +00:00
Jonathan Kolyer 8c6d553823 VRFS-3800 ios receipt validation 2016-02-09 15:17:52 +00:00
Seth Call e446c3ff44 * mark user as teacher better 2016-02-10 21:09:45 -06:00
Seth Call 1652aa4bd3 * VRFS-3922 - update ip blacklist/whitelist behavior to offer more admin flexibilyt 2016-02-09 12:58:54 -06:00
Seth Call 1da6749d70 * allow BACK button to work even if invalid state VRFS-3924 2016-02-09 10:14:37 -06:00
Seth Call d7ddff9bb7 * fix validation 2016-02-08 20:47:01 -06:00
Seth Call 01aae26e80 * chat help 2016-02-08 16:48:12 -06:00
Seth Call d62526d087 * update teacher landing page to work at all 2016-02-08 16:42:08 -06:00
Seth Call dfa423a1a3 * check jamblaster serial no better 2016-02-08 12:33:39 -06:00
Seth Call 1467b2b0e7 * disconnect working again VRFS-3454 2016-02-08 11:45:11 -06:00
Seth Call eb8e330073 * limit total msgs 2016-02-08 11:31:33 -06:00
Seth Call 0f8e607390 * fix check for if is websocket gateway 2016-02-08 07:42:48 -06:00
Seth Call 2e81bafb01 * try out chat blast with no inactivity. fix 5 instrument validation pain 2016-02-08 06:56:54 -06:00
Seth Call 853d359a7e * VRFS-3919 - teacher testdrive settings in on pricing profile 2016-02-06 17:32:20 -06:00
Seth Call 7fc4376236 * VRFS-3914 - update jamblaster serial no if present 2016-02-03 11:18:47 -06:00
Seth Call ce6377377b * serial no set to nil if blank 2016-02-03 10:57:11 -06:00
Seth Call 599d26f883 * VRFS-3912 - apis for jamblaster pairing 2016-02-03 10:56:14 -06:00
Seth Call 48be48caf5 * ban downloaders on second download 2016-02-02 05:44:18 -06:00
Seth Call 8f36304c26 * chat mesages by scope in admin 2016-02-01 15:44:31 -06:00
Seth Call c8179ccbcc Merge branch 'feature/global_chat' into develop 2016-02-01 14:16:46 -06:00
Seth Call 2e95682b10 * wip 2016-02-01 14:14:06 -06:00
Seth Call 8900af5196 * wip 2016-01-31 08:01:33 -06:00
Seth Call 5bd36e3731 * fix feed 2016-01-30 16:09:17 -06:00
Seth Call 0f4be88677 * wip 2016-01-30 16:08:54 -06:00
Seth Call 9e9c2819dd * update how click track is determined for jamtracks 2016-01-29 17:37:28 -06:00
Seth Call 13b58dbaa4 * issue rollback to heal connection 2016-01-29 16:00:00 -06:00
Seth Call a49729041d * fix syntax error in admin 2016-01-28 14:26:40 -06:00
Seth Call 641a553dcc merged teacher search 2016-01-28 13:55:17 -06:00
Seth Call 50e2090f25 * slowley beefing up chat 2016-01-28 13:34:59 -06:00
Seth Call e451c4be3d * ios purchase finalization 2016-01-28 11:31:57 -06:00
Seth Call a9d92b2250 * don't count unstarted sessions 2016-01-28 08:08:21 -06:00
Seth Call 3243abf837 * started at now set on jamtrack sessions 2016-01-28 06:28:56 -06:00
Seth Call a7dfe55d3c * custom error when opening free JamTrack when email not verified 2016-01-25 20:25:30 -06:00
Seth Call 8638cdda92 * VRFS-2035 allow static port config in UI 2016-01-25 10:29:27 -06:00
Seth Call 8138f11701 * JamClass teacher landing page VRFS-3872 2016-01-21 11:49:40 -06:00
Seth Call 5a0259aa54 * VRFS-3865 - initial version of jam class student landing page 2016-01-21 06:14:13 -06:00
Seth Call d93f64c2e5 * fix easy dropdown silliness 2016-01-20 05:37:13 -06:00
Seth Call 4d8b8a38b6 * VRF-3880 many teacher profile fixes 2016-01-19 21:54:55 -06:00
Seth Call 86ea959972 * fix padding issue 2016-01-18 18:41:53 -06:00
Seth Call 491bc8cda5 * fix null mark by specifying client = true 2016-01-16 20:54:22 -06:00
Seth Call 2283317719 * count in fix 2016-01-16 20:49:22 -06:00
Seth Call 1154a83dae * dump and correction of download tracker 2016-01-16 20:37:44 -06:00
Seth Call ba6a7af851 * VRFS-3873 browser fingerprinting being tracked 2016-01-16 19:56:29 -06:00
Seth Call 01405618ae * more styling of profile 2016-01-16 12:44:04 -06:00
Seth Call 7adfb3a6b9 * part way through size testing of profile 2016-01-16 12:12:15 -06:00
Seth Call 4e63b2e1d8 * more button alignment 2016-01-15 20:49:13 -06:00
Seth Call ca246fc95e * music profile styling tweaks 2016-01-15 20:44:37 -06:00
Seth Call 35839c1b4d * fix alignment/scroll issues on samples page 2016-01-15 20:18:58 -06:00
Seth Call e14484164f * fix hugely empty dialog 2016-01-15 14:55:49 -06:00
Seth Call 5e7ba5bd8a * fix tile bug and validate bug 2016-01-15 14:51:22 -06:00
Seth Call e40442af15 * hide bogus profiles on profile page 2016-01-15 13:21:51 -06:00
Seth Call c2f4cd0c56 * correct search on filter 2016-01-15 12:39:43 -06:00
Seth Call 33b02c0f55 * add jamtrack linkability for artist 2016-01-15 12:35:04 -06:00
Seth Call d7e949885d Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-01-15 12:04:21 -06:00
Seth Call 37417708b3 * merged 2016-01-15 12:04:06 -06:00
Seth Call 0d49744a7a * teacher profile musician profile QA'ed some 2016-01-15 11:59:55 -06:00
Seth Call 88afc1c272 * reviews working 2016-01-14 15:33:23 -06:00
Seth Call 1869ee021d * reviews displaying 2016-01-14 15:23:11 -06:00
Seth Call cb422a498f * fix weird alignment issue with search button 2016-01-14 20:14:13 +00:00
Seth Call b9dd872be0 * fix issue where search bar doesn't show for users with over 20 jamtracks 2016-01-14 12:54:59 -06:00
Seth Call 7fe1824085 * fix review API 2016-01-14 12:45:55 -06:00
Seth Call e3b6c7b894 * crash dump reporting with date 2016-01-14 07:27:08 -06:00
Seth Call 9dfb04613d * fix scroll issues with front page 2016-01-14 06:52:18 -06:00
Seth Call e22218b163 * olark added VRFS-3853 2016-01-14 04:49:02 -06:00
Seth Call 5773ba6e57 * autofollow behavior 2016-01-13 08:04:02 -06:00
Seth Call 40c260b2ba * make other participnat show 2016-01-13 07:44:33 -06:00
Seth Call 31e8d6a26c * reviews 2016-01-13 07:15:58 -06:00
Seth Call 48a54b812c * merged ratings 2016-01-12 21:06:23 -06:00
Seth Call 69c05a3e0a * reviews updated 2016-01-12 21:01:39 -06:00
Seth Call 14643531dc * working minus ratings 2016-01-12 20:37:00 -06:00
Seth Call 1764a3e306 fix signin link text 2016-01-09 03:37:20 +00:00
Seth Call d136401529 * update nav to scroll 2016-01-08 21:26:12 -06:00
Seth Call 48bd7ae2da * wip 2016-01-08 20:59:18 -06:00
Seth Call 57550d292e Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-01-08 17:32:25 -06:00
Seth Call fcf4a0b566 * fix some more ui issues on home page 2016-01-08 17:32:19 -06:00
Seth Call 7a7d7c0829 * wip 2016-01-08 17:29:58 -06:00
Seth Call 77abf33332 fix url to jamtracks 2016-01-08 23:27:04 +00:00
Seth Call 40de0ef04f * precompile modern 2016-01-08 16:46:50 -06:00
Seth Call c05c706455 * support news 2016-01-08 16:13:59 -06:00
Seth Call 96ffaedb1a * homepage 2016-01-08 15:40:10 -06:00
Seth Call fc38c9ec50 * VRFS-3822 - allow follow me behavior and client nodes to get in 2016-01-07 06:52:27 -06:00
Seth Call 6344e14f7d * wip 2016-01-07 05:12:11 -06:00
Seth Call 4beac54df5 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-01-04 20:44:47 -06:00
Seth Call 427bcd6e56 * treat risky users differently 2016-01-04 20:44:14 -06:00
Seth Call 521eac693d * wip 2016-01-04 20:02:20 -06:00
Seth Call a5016efec5 Correct Gemfile for websocket-gateway 2016-01-05 01:58:45 +00:00
Seth Call 1fd2679cbf daily_job.rb edited online with Bitbucket - save singleton state 2016-01-05 00:32:24 +00:00
Seth Call 3a95b22762 * add specific configs for sendgrid 2016-01-04 17:37:41 -06:00
Seth Call 0b8a792af7 * wip 2016-01-04 17:25:29 -06:00
Seth Call 20e5650baa * add ruby gemfile deps to admni 2016-01-04 16:15:07 -06:00
Seth Call a2b8f3062a * bounce check added as daily job 2016-01-04 15:19:23 -06:00
Seth Call c5b8465012 * crash dum 2016-01-04 14:44:45 -06:00
Seth Call 4d41e2278d * screen emails 2016-01-04 13:42:11 -06:00
Seth Call 854d7caab9 * jamtrack session stats VRFS-3835 2016-01-04 12:01:55 -06:00
Seth Call 922cfc4540 * finish out crash notification 2016-01-04 11:28:10 -06:00
Seth Call 7ca4de12d7 * email alert 2016-01-03 22:13:01 -06:00
Seth Call 4ef76abcf9 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2016-01-03 21:39:00 -06:00
Seth Call 70f22f8601 * track em 2016-01-03 21:38:30 -06:00
Seth Call e2b98284ae * remove owner to postgres statements in .sql manifest 2016-01-03 20:24:10 -06:00
Jonathan Kolyer adecb8fc20 VRFS-3784 refactored free credit decrementing from sale into user for ios 2016-01-03 17:38:30 +00:00
Seth Call 718668b5d2 * alert on USB 1.1 being too old 2015-12-30 14:23:24 -06:00
Jonathan Kolyer 8d28efde62 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-12-30 18:07:31 +00:00
Jonathan Kolyer e76ab54738 VRFS-3784 added user.id to login json response 2015-12-30 18:07:03 +00:00
Seth Call 00f69ecc01 fix user sync check 2015-12-29 14:28:04 -06:00
Seth Call b20f79af3f * fix sync bug 2015-12-29 11:37:06 -06:00
Seth Call 18be9f69a1 * width of p important 2015-12-29 11:02:43 -06:00
Seth Call 712f1c90f3 * update arrow 2015-12-29 11:02:10 -06:00
Seth Call e558554324 * wip 2015-12-29 10:59:37 -06:00
Seth Call afa4ff3182 JamBlaster product page finalization 2015-12-28 22:23:16 -06:00
Seth Call 0416ad01f1 * hover over vst instead of click, and fix placement of midi help link 2015-12-28 12:43:50 -06:00
Seth Call 0fcdb708fc * working on basic 2015-12-28 10:43:14 -06:00
Seth Call fb24f3beae merged from master 2015-12-28 07:19:40 -06:00
Seth Call d62655cbd2 * update resync audio 2015-12-28 05:32:54 -06:00
Seth Call 565544f357 * VRFS-3814 - update jamblaster product page for post-KS 2015-12-28 04:57:15 -06:00
Seth Call f7ec3df32d * bring back scan help, and pass in vst type ID based on win vs mac 2015-12-27 10:11:22 -06:00
Seth Call 190b43bd60 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-12-27 10:04:09 -06:00
Seth Call 89b48619a6 * working on new jamblaster landing page 2015-12-27 10:03:56 -06:00
Jonathan Kolyer 5411a3bbf9 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-12-26 02:49:30 +00:00
Jonathan Kolyer ce1e735750 VRFS-3784 use ILIKE for search on original_artist 2015-12-26 02:47:39 +00:00
Seth Call 4208391c44 * reload if trying to load while loading due to howler bug 2015-12-24 21:28:04 -06:00
Seth Call 2ad519fc90 * fix bug with one track and count-in 2015-12-24 21:23:52 -06:00
Seth Call a23703fb09 * remove extra print 2015-12-23 12:37:10 -06:00
Seth Call def24616f3 * VRFS-3816 - tell user VST enable is coming in session 2015-12-23 12:35:57 -06:00
Seth Call 5ee54adc7c * VRFS-3815 - select instrument before device requirement fixed for midi 2015-12-23 11:36:05 -06:00
Seth Call a1774320ce * fix show of midi track 2015-12-23 11:31:10 -06:00
Seth Call 133cc2806a * fix update track while in session 2015-12-23 09:51:43 -06:00
Seth Call 0305369944 * midi working for the most part 2015-12-22 21:28:19 -06:00
Seth Call 1908d82012 * always show help 2015-12-22 09:34:40 -06:00
Seth Call 8d69a804e8 * fix up initial scan info 2015-12-22 09:32:22 -06:00
Seth Call 39d72e83bb * no scan done unless user asks. scan paths 2015-12-21 16:42:18 -06:00
Seth Call 76920f97c0 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-12-19 21:22:10 -06:00
Seth Call 7a8775cbf6 * allow null parts on instrument assignment 2015-12-19 21:21:59 -06:00
Jonathan Kolyer 474f147892 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-12-19 05:35:43 +00:00
Seth Call 15e1e757dd * skip paris songs without metadata 2015-12-18 18:11:22 -06:00
Seth Call 3aadfaaedb * strip out whitespace from csv 2015-12-18 15:57:27 -06:00
Seth Call b48ea1cc59 * more fixing logic for paris tracks 2015-12-18 15:32:40 -06:00
Seth Call ff6f133620 * import fixes for Paris 2015-12-18 11:35:56 -06:00
Jonathan Kolyer d6500449da VRFS-3784 added layout for jamtracks app viewing of corp pages 2015-12-17 20:32:37 +00:00
Seth Call 8c7c345859 * fix importer 2015-12-15 11:26:58 -06:00
Seth Call fc84b2657a * update bandwidth notice 2015-12-14 15:21:14 -06:00
Seth Call 09483f219a * paris music importing locally, stats refinement 2015-12-14 15:05:23 -06:00
Seth Call 11a8ee55f0 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-12-11 21:24:58 -06:00
Seth Call 3707a3abd6 * stats working decently 2015-12-11 21:14:00 -06:00
Jonathan Kolyer 48f85fecfa VRFS-3728 comment 2015-12-11 20:02:09 +00:00
Jonathan Kolyer 153ed88a79 VRFS-3728 head call for ios app; mixdown checksum; simulate purchase 2015-12-11 20:02:09 +00:00
Seth Call 37929de36e * fix bad coffeescript syntax 2015-12-11 07:02:37 -06:00
Seth Call 03d71b0678 * disable midi via config 2015-12-11 06:45:30 -06:00
Seth Call f69aadbe20 * get rid of print 2015-12-10 22:20:28 -06:00
Seth Call f82f64f2db Merge branch 'feature/stats' into develop 2015-12-10 22:09:44 -06:00
Seth Call 8e73c5bb80 * stats and vst together 2015-12-10 22:07:56 -06:00
Seth Call b07aedc9cc * merged 2015-12-10 20:54:09 -06:00
Seth Call 0376b206cf * stats workip 2015-12-10 20:52:13 -06:00
Seth Call 6a7e321142 * commit in knock files 2015-12-10 14:03:06 -06:00
Seth Call 3388ec14db * stats wip 2015-12-10 05:21:59 -06:00
Seth Call 69363e6fd6 * revert back how free jamtracks are made 2015-12-09 12:02:22 -06:00
Seth Call 6314748225 * wip 2015-12-09 11:32:24 -06:00
Seth Call a5e9ca18b5 * set initial tap-in silence to 0 2015-12-08 21:02:33 -06:00
Seth Call 3bc0b18968 * fix misnamed active music sessions var 2015-12-08 13:37:35 -06:00
Seth Call 1d3548cdf9 * fix misnamed active music sessions var 2015-12-08 13:37:18 -06:00
Seth Call 34dcc27641 Merge branch 'develop' into feature/vst 2015-12-07 21:05:10 -06:00
Seth Call 9afc3155ef * remove log 2015-12-07 21:05:05 -06:00
Seth Call 886df5d092 * master mix controls for creator or delegated 2015-12-07 20:25:43 -06:00
Seth Call 6d5db83aea * midi not working still 2015-12-04 15:29:59 -06:00
Seth Call dd8e375766 * scan weirdness 2015-12-04 12:08:40 -06:00
Seth Call d9f1becb9b * merge 2015-12-04 11:37:59 -06:00
Seth Call 949ce8a513 * VRFS-3756 - webcam audio 2015-12-04 11:16:40 -06:00
Seth Call 223988f421 * better align 2015-12-04 09:39:33 -06:00
Seth Call 8e72a9833a Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-12-04 09:29:04 -06:00
Seth Call 3adeef4dee * csv/pdf links in place in the UI 2015-12-04 09:27:28 -06:00
Seth Call 5049e3f813 * generate CSV and PDF for jamtracks 2015-12-04 08:32:18 -06:00
Jonathan Kolyer bcca86da8f VRFS-3728 merge 2015-12-04 05:29:04 +00:00
Jonathan Kolyer 53f7f29c06 VRFS-3728 ios client sync api tweaks 2015-12-04 05:26:26 +00:00
Seth Call 54a437d6e1 * VRFS-3725 - frontend support for click tracks and tap-in creation 2015-12-03 14:21:07 -06:00
Seth Call ebdde28f85 * add more info to ip blacklist dump 2015-12-02 16:58:56 -06:00
Seth Call 4cb737761a * add download trakcer page 2015-12-02 16:53:09 -06:00
Seth Call c1402e2777 * VRFS-3757 - Fix jamtrack search bugs 2015-12-02 15:01:18 -06:00
Seth Call 819e87079e * click track import working 2015-11-30 21:21:27 -06:00
Seth Call e3b4b2324b * clicktrack support 2015-11-30 17:54:17 -06:00
Seth Call b7cbb86e3b * tweak gift card landing 2015-11-30 11:03:32 -06:00
Seth Call 32d32b3393 * click track import working 2015-11-30 08:03:38 -06:00
Seth Call d6d3ef4299 * fix formatting 2015-11-30 05:28:10 -06:00
Seth Call 7f0fd988ce * add gift card image 2015-11-30 05:07:47 -06:00
Seth Call 6f488d4692 * make nice display for admin 2015-11-29 14:30:34 -06:00
Seth Call 7432b50438 * fix some minor display issues 2015-11-29 14:15:53 -06:00
Seth Call bd02774db9 GiftCards are purchable 2015-11-29 13:58:10 -06:00
Seth Call 6d514c3df2 * api for marking purchase from ios 2015-11-28 19:38:39 -06:00
Jonathan Kolyer 50c3731dff VRFS-3728 check for purchases and mixes outside of ios 2015-11-25 03:47:22 +00:00
Seth Call 5e754a7096 * update video Url 2015-11-24 07:45:17 -06:00
Seth Call b9a7bd6e09 * fix JS error 2015-11-24 06:49:35 -06:00
Seth Call becf0a82b1 * updatin landing pages for JamBlaster on Kickstarter 2015-11-24 06:03:23 -06:00
Seth Call 143506afd5 * wip 2015-11-21 15:29:15 -06:00
Seth Call 83b7009c51 * wip 2015-11-20 16:18:08 -06:00
Seth Call 826f53ce84 * add in more onboarding helpers 2015-11-20 10:07:18 -06:00
Seth Call 049a90445b * return meta 2015-11-20 08:39:01 -06:00
Seth Call c329912527 *remove AAC generation warning 2015-11-20 07:07:56 -06:00
Seth Call 51429e8b5a * import of timtracks working 2015-11-20 06:57:32 -06:00
Seth Call 184bf2ba4d * merge 2015-11-19 22:09:11 -06:00
Seth Call c2772398a8 * importer 2015-11-19 22:07:38 -06:00
Seth Call 1da8cfd4a1 * support abort signal 2015-11-19 16:58:55 -06:00
Seth Call 2a74d7ec9a * record crash dump description 2015-11-19 11:22:41 -06:00
Seth Call 86b7327eca * unpin fog 2015-11-18 20:06:30 -06:00
Seth Call 4aa5842deb * change to 8 ticks 2015-11-18 15:59:12 -06:00
Seth Call 086f555bbf * add finish 2015-11-18 15:42:14 -06:00
Seth Call d3d2fbb210 * generate jmep automatically 2015-11-18 15:22:06 -06:00
Seth Call d4cdab8d6b * VRFS-3715 - filepicker fixed by taking out signature and policy 2015-11-17 06:26:37 -06:00
Seth Call cd6bf55a1a * VRFS-3719 - dont show update dialog more than one at a time 2015-11-17 05:28:02 -06:00
Seth Call 38a64a3dde * VRFS-3711 - push video button brings to front 2015-11-16 20:46:44 -06:00
Seth Call bec9388aae * vst fixems 2015-11-13 15:35:13 -06:00
Seth Call 5fad4953bc * vst working 2015-11-13 14:00:37 -06:00
Seth Call 021db62539 Merge branch 'develop' into feature/vst 2015-11-13 11:06:07 -06:00
Seth Call efb4214e9a * fix path in admin gift card upload 2015-11-13 10:48:39 -06:00
Seth Call e8cb399692 * fix some tests 2015-11-13 10:00:46 -06:00
Seth Call 7fbb215fca * VRFS-3708 - allow redemption of gift cards 2015-11-13 07:12:58 -06:00
Seth Call c3626ebe22 * wip 2015-11-11 05:39:28 -06:00
Seth Call bb9beb9cab Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-11-09 15:33:14 -06:00
Seth Call 1da8c73721 * wip 2015-11-09 15:33:04 -06:00
Jonathan Kolyer 9df947097f VRFS-3681 develop branch merge review 2015-11-08 23:05:34 +00:00
Jonathan Kolyer fb9a7c01af VRFS-3681 develop branch merge tweaks 2015-11-08 23:02:18 +00:00
Jonathan Kolyer f41aced15f VRFS-3681 reverted changes for develop branch merge 2015-11-08 22:44:15 +00:00
Jonathan Kolyer 0f4fb0816e VRFS-3681 removed files added by bundler 2015-11-08 22:25:59 +00:00
Jonathan Kolyer 57314a9b1c VRFS-3681 reverting edits prior to develop branch merge 2015-11-08 22:24:31 +00:00
Jonathan Kolyer d7a6bdaaba VRFS-3681 mobile load preview image 2015-11-08 22:15:01 +00:00
Jonathan Kolyer 70f047dd3c VRFS-3681 removed git merge artifcats 2015-11-08 22:06:19 +00:00
Jonathan Kolyer 7fc646babe VRFS-3681 test run for develop merge 2015-11-08 21:31:38 +00:00
Seth Call 99cd31ea78 * whitespace change 2015-11-01 16:22:43 -06:00
Seth Call 38109c8b61 * update deliverable csv for jamtrack users 2015-11-01 06:40:17 -06:00
Seth Call 022fd60b3c * wip 2015-11-01 06:39:51 -06:00
Jonathan Kolyer 958bb9346e Merge branch 'feature/mobile' of bitbucket.org:jamkazam/jam-cloud into feature/mobile 2015-11-01 02:32:55 +00:00
Jonathan Kolyer 1bcee2e60c Merge branch 'develop' into feature/mobile 2015-11-01 02:28:10 +00:00
Jonathan Kolyer c27ed06455 VRFS-3681 add year and counter 2015-11-01 02:27:18 +00:00
Seth Call 9e461c61dd * update deliverable csv for jamtrack users 2015-10-30 14:43:59 -05:00
Seth Call f7267d38c6 * wip 2015-10-30 09:59:50 -05:00
Jonathan Kolyer 61e93b7d1d VRFS-3681 fixed artist pagination 2015-10-29 03:17:47 +00:00
Seth Call b0c8c88524 * fix display issues with sales 2015-10-28 16:32:55 -05:00
Seth Call 9d8c46ca7c * sale line items 2015-10-28 08:10:03 -05:00
Seth Call 76e3bb3284 * affilate quarterly payments 2015-10-27 16:21:16 -05:00
Seth Call a84f344335 * disable resizing 2015-10-27 13:06:33 -05:00
Seth Call 68d165427c * bump 2015-10-27 12:11:40 -05:00
Seth Call 806308ac01 * bump from top 2015-10-27 09:51:39 -05:00
Seth Call 86d33c0f79 * create mix not working; fixed 2015-10-27 09:48:07 -05:00
Seth Call 8d026a3fdb * fix bug with stemId downoad 2015-10-27 09:20:37 -05:00
Seth Call 52524c774d * wip 2015-10-27 09:19:14 -05:00
Seth Call b686020b49 * wip 2015-10-26 20:20:26 -05:00
Seth Call d52f6b570a * add scroll and my mixes on by default 2015-10-26 16:49:55 -05:00
Seth Call fbc2e9498f * fix iphone/ipad actions, also stop doing popups anywhere 2015-10-26 16:03:43 -05:00
Seth Call 73a04d4d95 * typo added in video_upload 2015-10-24 05:13:33 -05:00
Jonathan Kolyer 1fe20d6c2b merging develop 2015-10-24 01:58:49 +00:00
Jonathan Kolyer 2a0e733b84 VRFS-3672 adding :duration 2015-10-24 01:57:35 +00:00
Seth Call af1da5ead4 * add pointers to admin 2015-10-23 15:08:54 -05:00
Seth Call f002864a08 * most of VRFS-3674 (detect browser-based fraud) done 2015-10-23 14:42:51 -05:00
Seth Call 150c5da5b3 * remove rails react img 2015-10-23 07:52:33 -05:00
Seth Call b2fca8cc0b * VRFS-2818 - control both master/personal mix for volume/mute controls of media tracks 2015-10-22 11:08:34 -05:00
Seth Call 95ec9ce66e * VRFS-3667 - put download buttons in client app view 2015-10-22 09:04:49 -05:00
Seth Call 0c5dbe2c68 * VRFS-3647 - add search capability to jamtrack page, and VRFS-3676 - poke redeem users 2015-10-22 05:51:49 -05:00
Jonathan Kolyer 8e88e7fe7e Merge branch 'develop' into feature/mobile 2015-10-22 09:02:42 +00:00
Jonathan Kolyer 8e21fb1fe7 merging develop 2015-10-22 01:00:34 +00:00
Seth Call d3d9a2db49 * VRFS-3668 - show download errors in popup player, VRFS-3659 - cache tracks in popup player 2015-10-21 10:44:02 -05:00
Seth Call f086ff74c3 * fix how player occurs in native client 2015-10-21 08:36:41 -05:00
Seth Call 023648a5be * VRFS-3673 - normalize non-jkz files 2015-10-21 06:45:30 -05:00
Seth Call 27328a7c65 * VRFS-3670 - affiliate rate usage 2015-10-20 21:09:58 -05:00
Jonathan Kolyer ffa5fe1798 Merge branch 'develop' into feature/mobile 2015-10-20 00:40:05 +00:00
Jonathan Kolyer 93d11d6b3b VRFS-3459 removed errand git merge inserts 2015-10-20 00:38:46 +00:00
Seth Call 9dbcdb2436 * help doc tweak 2015-10-19 17:53:50 -05:00
Seth Call 93e0be7bdd * bump 2015-10-19 15:40:55 -05:00
Jonathan Kolyer bfa3b0b8c9 VRFS-3459 accidental file adding 2015-10-19 20:00:09 +00:00
Jonathan Kolyer 7a2dd6ea0b VRFS-3459 merging develop 2015-10-19 19:58:41 +00:00
Seth Call 5073c2d4e7 * show daily status 2015-10-19 14:34:06 -05:00
Seth Call 2b81276e1b * sort by referrals 2015-10-19 14:06:18 -05:00
Seth Call 53f5c6d4df * fix help doc link 2015-10-19 13:54:33 -05:00
Seth Call 515704898c * make player list not be dynamic, and fix context.stats write 2015-10-19 13:42:39 -05:00
Seth Call f0ece5f894 * allow custom mixes to be made even if full jamtrack not selected 2015-10-19 13:04:17 -05:00
Seth Call 993e12995c * track redeem correctly; also try and fix admin 2015-10-19 12:56:52 -05:00
Seth Call a63f9085f4 * VRFS-3664 - dont say dear anonymous in emails 2015-10-19 10:07:53 -05:00
Seth Call fa586d878d * force width to be 450 VRFS-3663 2015-10-19 09:44:58 -05:00
Seth Call 813e8b2fbe * VRFS-3665 - move download icon to the right of folder icon 2015-10-19 08:24:09 -05:00
Seth Call e7f8e2fed1 * fix nil crash in importer, and make referral page display friendlier 2015-10-18 09:05:24 -05:00
Seth Call 25bda4de4d * skip tracks that are messing audio path 2015-10-18 08:48:17 -05:00
Seth Call 0b6b2e1b86 * node number/node count support 2015-10-17 06:48:26 -05:00
Seth Call 1ecb17d2a7 * only need params affiliate to be present 2015-10-17 06:30:45 -05:00
Seth Call d2d1b8facc * anonymous check is correct now, as well as video in landing page 2015-10-16 16:50:08 -05:00
Seth Call 9a8aeced51 * VRFS-3660 - fix issue with jamtrack tile page not refreshing when user buys free jamtrack 2015-10-16 15:59:29 -05:00
Seth Call 801504be2b * fixing bug when referencing name instead of first/last for feed 2015-10-16 14:56:54 -05:00
Seth Call 7d5edc298d * updated video links for JamTracks 2015-10-16 14:26:23 -05:00
Seth Call 58b8a29f51 * VRFS-3630 - jamtrack landing page revamp
* VRFS-3637 - jamtrack landing tile updated
* VRFS-3638 - jamtrack web player
2015-10-16 14:01:18 -05:00
Seth Call 55007e9619 * use closure to caputer video true/false 2015-10-15 11:16:12 -05:00
Seth Call e01634285a * make sure upload to youtube popup is only shown for video dialogs 2015-10-15 06:10:21 -05:00
Seth Call 29f3b52120 * VRFS-3651 - dont show upload to youtube checkbox for audio sessions 2015-10-15 06:03:03 -05:00
Jonathan Kolyer c700f856e5 Merge branch 'develop' into feature/mobile 2015-10-13 17:34:12 +00:00
Jonathan Kolyer 325768e5e1 VRFS-3459 added plan_code to jam_track_search json 2015-10-13 17:33:12 +00:00
Jonathan Kolyer 538f7e75a1 VRFS-3459 added :year, :plan_code 2015-10-13 17:31:15 +00:00
Seth Call 2d54b03a07 * VRFS-3633 - fix metronome visualization in popup 2015-10-09 07:20:29 -05:00
Seth Call 70b3a2f5de * translate enum ids into framerates for start video recording - VRFS-3631 2015-10-09 06:37:18 -05:00
Seth Call eba43cf228 * translate enum ids into framerates for start video recording - VRFS-3631 2015-10-09 06:32:53 -05:00
Seth Call 6ecf591520 * VRFS-3629 - deal with upload failure correctly 2015-10-08 15:07:51 -05:00
Seth Call c3097d4436 * VRFS-3625 - tell backend correctly abot keeping video if user discards, and filter out recordingId of video 2015-10-08 12:18:18 -05:00
Seth Call 4bdf555409 * make height of google prompt bigger because we ask for more 2015-10-08 11:45:18 -05:00
Seth Call aa51114e8a * deal with no refresh token better 2015-10-08 11:36:16 -05:00
Seth Call 509cc56cdb * dont let refresh attempt bust API 2015-10-08 07:50:20 -05:00
Seth Call 276442a9b4 * VRFS-3512 - upload videos to youtube 2015-10-07 21:12:26 -05:00
Steven Miers 8f20da7567 VRFS-3359 : Currency field behavior
* Formats on blur only
* Render pulls currency value from local cache if field has focus
* Save to cache on initial focus, even if not changed
2015-10-05 15:37:54 -05:00
Jonathan Kolyer 0c25d0e40b merging develop 2015-10-05 14:06:39 +00:00
Jonathan Kolyer 830dd4595c merging 2015-10-03 03:21:32 +00:00
Jonathan Kolyer 47def5113b VRFS-3459 config.middleware.use Rack::Deflater 2015-10-03 03:20:25 +00:00
Jonathan Kolyer 09432cea1c VRFS-3459 tweaks for mobile mixdowns 2015-10-03 03:19:56 +00:00
Jonathan Kolyer 5d5ea51a16 VRFS-3459 mixdown ios 2015-10-03 03:17:43 +00:00
Seth Call 4290d449ed * default to full avail 2015-09-30 12:26:24 -05:00
Seth Call 9abee035be * VRFS-3513 - start/stop video possible from frontentd 2015-09-30 11:26:03 -05:00
Seth Call cb76a6e28f * VRFS-3588 generating AAC's for master previews 2015-09-29 19:57:31 -05:00
Seth Call 38aa35765d * allow someone to make a replica of the master mix if the boolean 'full' is passed with true 2015-09-26 14:37:05 -05:00
Seth Call c0d78c9d26 * VRFS-3586 up 40 from 20 for the jamtrack account screen 2015-09-26 14:01:51 -05:00
Seth Call 8e67d6d9b8 * fix help alignment 2015-09-25 13:28:48 -05:00
Seth Call aaa450f14e * add help article link to popup for JamTracks 2015-09-25 10:53:53 -05:00
Seth Call 3fdf835942 * hide custom mix controls when custom mix is active 2015-09-25 08:36:25 -05:00
Seth Call 5018be71dd * fix sample rate issue typo in keys.rabl 2015-09-23 18:30:38 -05:00
Seth Call a5e4c2dfce * VRFS-3519 - prevent play click when JamTrack is loading 2015-09-23 15:27:41 -05:00
Seth Call 49dc6890fc * VRFS-3579 - dont try to kick off 2 downloads 2015-09-23 14:39:34 -05:00
Seth Call 0aa2f215b6 * VRFS-3580 - empty windows shouldn't show 2015-09-23 13:57:14 -05:00
Seth Call 6c5c4731ed * VRFS-3577 - hide open media controls while JamTrack mixdown is downloading 2015-09-23 12:03:40 -05:00
Seth Call c379c6dc44 * VRFS-3576 - deal with case that mixdown is not yet created 2015-09-23 10:38:38 -05:00
Seth Call 284e671b01 * VRFS-3571 - fixes to temp ban user if they are spamming server 2015-09-23 09:18:00 -05:00
Seth Call 0f9b1c3f07 * don't find against notifications for a blank notify 2015-09-22 21:34:34 -05:00
Seth Call e4e65f8c04 * add timings for websocket-gateway health issues 2015-09-22 20:57:01 -05:00
Seth Call 1dce984247 * VRFS-3519 - 2-player sessions working with custom mix 2015-09-22 15:25:48 -05:00
Seth Call 1733c8689d * fix typo in JamTrackCleaner 2015-09-22 09:42:53 -05:00
Seth Call 032d30c3f3 * fix query in db cleaner 2015-09-22 06:03:55 -05:00
Seth Call a0feb09509 * check in missing images 2015-09-22 05:48:00 -05:00
Seth Call de9856b5be * pin back react-select 2015-09-21 21:11:01 -05:00
Seth Call d3ca53672b * remove react_rails_img 2015-09-21 20:30:51 -05:00
Seth Call 4a647b8bd1 * VRFS-3519 - client and server jamtrack mixdown support 2015-09-21 20:01:39 -05:00
Steven Miers ae854d858f VRFS-3359 : Fix several errors related to syntax, property usage, etc. 2015-09-21 13:00:06 -05:00
Jonathan Kolyer 5534ec0224 VRFS-3459 mixdown merging 2015-09-21 01:00:38 +00:00
Jonathan Kolyer 23bf15eb50 VRFS-3390 fixed quoting issue and text search 2015-09-21 01:00:38 +00:00
Jonathan Kolyer c1b8bf9ff7 VRFS-3391 fixing glitches from mobile tests 2015-09-21 01:00:38 +00:00
Jonathan Kolyer 5c0178df8f VRFS-3393 jam_track has_many genres support 2015-09-21 01:00:37 +00:00
Jonathan Kolyer 4b01097c97 VRFS-3393 register api--first draft 2015-09-21 01:00:37 +00:00
Jonathan Kolyer 7e911bdb32 VRFS-3393 added KEY_RESULTS field to filter 2015-09-21 01:00:37 +00:00
Jonathan Kolyer 3c16949615 VRFS-3389 changed results schema 2015-09-21 01:00:37 +00:00
Jonathan Kolyer dd420527c0 VRFS-3398 fixing queries, api integration 2015-09-21 01:00:37 +00:00
Jonathan Kolyer af662fa714 VRFS-3389 jamtrack search 2015-09-21 01:00:37 +00:00
Jonathan Kolyer 10d4d99953 VRFS-3389 fetch genres/instrumnets only with jamtracks; initial search impl 2015-09-21 01:00:37 +00:00
Seth Call 077b5a700d * allow jamblaster to fetch http 2015-09-21 01:00:37 +00:00
Seth Call 468b0c4998 * adding guess code and fixing importer 2015-09-20 15:14:45 -05:00
Steven Miers b3b3e46dc9 VRFS-3359 : Fix page not loading due to input tag formatting 2015-09-19 18:37:33 -05:00
Jonathan Kolyer 4e57f50271 VRFS-3459 mixdown merging 2015-09-19 21:55:02 +00:00
Jonathan Kolyer 5a61b3584c VRFS-3390 fixed quoting issue and text search 2015-09-19 21:54:25 +00:00
Jonathan Kolyer f01532804d VRFS-3391 fixing glitches from mobile tests 2015-09-19 21:54:25 +00:00
Jonathan Kolyer 56f0725006 VRFS-3393 jam_track has_many genres support 2015-09-19 21:54:25 +00:00
Jonathan Kolyer 5d434e0020 VRFS-3393 register api--first draft 2015-09-19 21:54:25 +00:00
Jonathan Kolyer e18e6ed81f VRFS-3393 added KEY_RESULTS field to filter 2015-09-19 21:54:25 +00:00
Jonathan Kolyer 2030b0fd00 VRFS-3389 changed results schema 2015-09-19 21:54:25 +00:00
Jonathan Kolyer 36db710b4b VRFS-3398 fixing queries, api integration 2015-09-19 21:54:25 +00:00
Jonathan Kolyer efd5ffd4ed VRFS-3389 jamtrack search 2015-09-19 21:54:25 +00:00
Jonathan Kolyer 074facfd30 VRFS-3389 fetch genres/instrumnets only with jamtracks; initial search impl 2015-09-19 21:54:25 +00:00
Seth Call e97d2eec89 * allow jamblaster to fetch http 2015-09-19 21:54:24 +00:00
Steven Miers 2e4dfaa728 Squashed commit of the following:
commit 30965c6351
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Sep 15 05:23:27 2015 -0500

    * allow jamblaster to fetch http

commit 5c8fb6b01e
Author: Seth Call <sethcall@gmail.com>
Date:   Fri Sep 11 13:43:07 2015 -0500

    * don't issue stop video in session end

commit 3e27680ea9
Author: Seth Call <sethcall@gmail.com>
Date:   Fri Sep 11 13:40:34 2015 -0500

    * decommision webcam_viewer in session page

commit ac1cc0c828
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Sep 10 07:24:42 2015 -0500

    * VRFS-3541 - don't use HTML to store data sent to server for genre
ID bug in profile

commit 004991119a
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Sep 9 15:10:51 2015 -0500

    * set 'are you our user' cookie to do better job with ad tracking

commit 13a950e65f
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Sep 9 07:58:46 2015 -0500

    * align disable vide obutton better

commit 9722c6cbc6
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Sep 9 07:45:18 2015 -0500

    * whitesapce

commit 3976707b14
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Sep 9 07:13:51 2015 -0500

    * check for video enabled better

commit b483dd537f
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Sep 9 07:02:12 2015 -0500

    * better text for video test

commit a4f465b6d1
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Sep 8 20:30:47 2015 -0500

    * VRFS-3530, VRFS-3531 - allow user to test and disable video

commit ba99f88048
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Sep 8 10:05:26 2015 -0500

    * VRFS-3534 - fix start recording API signature

commit 386ed8144c
Author: Seth Call <sethcall@gmail.com>
Date:   Sun Sep 6 19:03:08 2015 -0500

    * VRFS-3528 - make sure open jamtrack dialog passes
'show_purchased_only'

commit 6d010a561b
Author: Seth Call <sethcall@gmail.com>
Date:   Fri Sep 4 20:43:15 2015 -0500

    * deal with too-few tracks on landing page, and the 3rd CTA bubble
clipping off text

commit 0076f0205a
Author: Seth Call <sethcall@gmail.com>
Date:   Fri Sep 4 15:00:45 2015 -0500

    * VRFS-352 - instrument-centric landing page

commit 3ee71634b3
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Sep 2 09:40:06 2015 -0500

    * remove test stuff

commit d07ac009bf
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Sep 1 08:11:35 2015 -0500

    * VRFS-3509 - case where no device is configured handled

commit 9420cebad4
Author: Seth Call <sethcall@gmail.com>
Date:   Sun Aug 30 05:00:00 2015 -0500

    * VRFS-3494 - show popup when video window launches for the 1st
time to offer guidance

commit c3f81a4d23
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 27 10:35:43 2015 -0500

    * build bump

commit e782d5f9bb
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 27 09:43:40 2015 -0500

    * VRFS-3419 - check better for window opener

commit 36b6699cde
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 27 08:12:47 2015 -0500

    * validate popup VRFS-3419

commit 8948f0498f
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 27 07:59:21 2015 -0500

    * fix changed path

commit 2bce35d604
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 26 20:38:34 2015 -0500

    * fix jamtrack test

commit 63ef63c20d
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 26 20:34:40 2015 -0500

    * fix typo again in webcamViewer. need to go to bed

commit 8566cc5bc9
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 26 20:31:34 2015 -0500

    * fix typo added in webcamViewer

commit 22ea6e89fd
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 26 20:26:39 2015 -0500

    * VRFS-3488 - jamtrack search by artist and song need to pin to the
match, not do a sloppy search

commit a4bd28e168
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 26 16:43:34 2015 -0500

     VRFS-3474 - watch for USB events and refresh video pages

commit d2edfd22c5
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 26 12:01:52 2015 -0500

    * VRFS-3467 - previews are 20 seconds long indicator on jamtracks

commit defdfa8ce9
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 26 06:04:53 2015 -0500

    * VRFS-3473 - fix 'videoShared' state in webcamViewer

commit 090cfa17c0
Merge: 7560b34 818596a
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Aug 25 14:53:35 2015 -0500

    Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into
develop

commit 7560b340c7
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Aug 25 14:52:05 2015 -0500

    * VRFS-3466 - updated frontend to pass in GUIDs

commit 1252dbe178
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Aug 25 05:28:15 2015 -0500

    * use new bridge calls to handle current FPS and resolution
VRFS-3428

commit 818596ae36
Author: Jonathan Kolyer <jonathan@jamkazam.com>
Date:   Tue Aug 25 08:23:52 2015 +0000

    VRFS-3451 musician_search verifying instrument and genres inputs

commit 6918eaf095
Author: Seth Call <sethcall@gmail.com>
Date:   Mon Aug 24 17:55:06 2015 -0500

     more UI tweaks for video settup in account screen VRFS-3428

commit fc69242578
Author: Seth Call <sethcall@gmail.com>
Date:   Mon Aug 24 16:18:31 2015 -0500

    * VRFS-3427 - update FTUE to test video, not just audio

commit 729974013a
Author: Seth Call <sethcall@gmail.com>
Date:   Mon Aug 24 16:17:53 2015 -0500

    * VRFS-3428 - fix button text

commit db1f1d60d5
Merge: 04825d2 90c8d05
Author: Seth Call <sethcall@gmail.com>
Date:   Mon Aug 24 15:56:42 2015 -0500

    Merge branch 'feature/video_frontend' into develop

commit 04825d2659
Author: Seth Call <sethcall@gmail.com>
Date:   Mon Aug 24 15:54:59 2015 -0500

    * VRFS-3428 - update how we query backend for frame rates

commit 39d0731d74
Author: Seth Call <sethcall@gmail.com>
Date:   Sat Aug 22 05:44:59 2015 -0500

    * VRFS-3456 - remove special chars from search

commit 1874720ee8
Author: Seth Call <sethcall@gmail.com>
Date:   Sat Aug 22 05:32:28 2015 -0500

    * VRFS-3456 - protect special chars from tsquery

commit 29104ff09b
Author: Seth Call <sethcall@gmail.com>
Date:   Fri Aug 21 05:02:48 2015 -0500

    * VRFS-3446 - bug fix for no genre specified on join of session;
also fix search bar in jamtrack dialog

commit 3b6d1febdb
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 20 15:44:21 2015 -0500

    * forget cta image

commit 6ac622853c
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 20 15:02:55 2015 -0500

    * VRFS-3449 - a little more tweaking of JamTrack landing page

commit d7fcadcd0d
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 20 14:49:07 2015 -0500

    * VRFS-3450 - fix 'show all tracks' when pagination occurs by not
doubleregistering

commit e7b50ca4a8
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 20 14:19:07 2015 -0500

    * VRFS-3449 - updates for direct landing pages

commit 0d075a9568
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 20 09:19:17 2015 -0500

    * fix spacing issue

commit 9c17d9a024
Merge: 9873450 0b67ef5
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 20 09:06:48 2015 -0500

    Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into
develop

commit 98734506df
Author: Seth Call <sethcall@gmail.com>
Date:   Thu Aug 20 09:06:36 2015 -0500

    * VRFS-3448 - fix invisible downloader

commit 90c8d05d00
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 19 14:17:10 2015 -0500

    * wip

commit bf4044d92e
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 19 09:24:14 2015 -0500

    * VRFS-3422 - don't die if the user has on sale_line_items

commit 87c62b4db2
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 19 08:29:22 2015 -0500

    * a fix for linux? hfa code

commit 3fa58715fc
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 19 07:36:04 2015 -0500

    * fix open jamtrack dialog for people with less than 10 jamtracks

commit d045c94f54
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 19 07:17:37 2015 -0500

    * more HFA request polish

commit dc343f10e3
Author: Seth Call <sethcall@gmail.com>
Date:   Wed Aug 19 07:01:47 2015 -0500

    * don't show free jamtrack notice on landing page if
redeemed_jamtrack cookie is set

commit e6618da456
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Aug 18 21:29:15 2015 -0500

    * fix a bug in figuring out if the user should be show GET IT FREE

commit 5ba03a2755
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Aug 18 20:41:37 2015 -0500

    * VRFS-3431 - better response when creating HFA request

commit 37d6c3e57c
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Aug 18 15:19:40 2015 -0500

    * add csv to dump released JamTracks

commit f6101f3621
Author: Seth Call <sethcall@gmail.com>
Date:   Tue Aug 18 14:26:41 2015 -0500

    VRFS-3422, VRFS-3423, VRFS-3424, VRFS-3429 - JamTrack search/listing

commit 0b67ef5f52
Author: Jonathan Kolyer <jonathan@jamkazam.com>
Date:   Sat Aug 15 15:03:00 2015 +0000

    fixed test for instruments in musician search
2015-09-19 16:33:39 -05:00
Seth Call a597671712 * send out event when it kicks off 2015-09-17 22:20:37 -05:00
Seth Call 3d2eeba638 * found some state/error transition bugs 2015-09-17 22:13:07 -05:00
Seth Call db34ac1611 * fix sbsms invocation 2015-09-17 20:06:14 -05:00
Seth Call b107df2478 * fix bugs 2015-09-17 17:31:00 -05:00
Seth Call 3538e7b0ae * mark mixdown API 2015-09-15 13:40:15 -05:00
Seth Call ac7f762a1d * edit mixdown API handles 'active' boolean 2015-09-15 12:44:43 -05:00
Seth Call 30965c6351 * allow jamblaster to fetch http 2015-09-15 05:23:27 -05:00
Seth Call 8bcef09ae4 * wip 2015-09-15 05:07:41 -05:00
Seth Call 7e28b115a2 * allow jkz's to be built 2015-09-12 14:59:21 -05:00
Seth Call 5fd8722510 * fix web code to stop simulating ios app 2015-09-12 13:56:52 -05:00
Seth Call c2543d064b * fix test 2015-09-12 13:56:16 -05:00
Seth Call d5fd7b6384 * make aac work, validate that pitch & speed are integer 2015-09-12 13:49:30 -05:00
Seth Call c57e7fd527 * update show API 2015-09-12 12:38:18 -05:00
Seth Call 0741119a5d Merge branch 'develop' into feature/mixdown 2015-09-12 11:25:24 -05:00
Seth Call ad24f3d3b6 * packager working, apis working 2015-09-11 21:11:19 -05:00
Seth Call 5c8fb6b01e * don't issue stop video in session end 2015-09-11 13:43:07 -05:00
Seth Call 3e27680ea9 * decommision webcam_viewer in session page 2015-09-11 13:40:34 -05:00
Seth Call 9bce6964bd * wip 2015-09-11 12:53:00 -05:00
Seth Call ac1cc0c828 * VRFS-3541 - don't use HTML to store data sent to server for genre ID bug in profile 2015-09-10 07:24:42 -05:00
Seth Call 544ab4539e * wip 2015-09-10 06:08:29 -05:00
Seth Call 004991119a * set 'are you our user' cookie to do better job with ad tracking 2015-09-09 15:10:51 -05:00
Seth Call 2ffd9bb7a7 * wip 2015-09-09 14:49:45 -05:00
Seth Call 13a950e65f * align disable vide obutton better 2015-09-09 07:58:46 -05:00
Seth Call 8c75f41a3f * wip 2015-09-09 07:58:22 -05:00
Seth Call 9722c6cbc6 * whitesapce 2015-09-09 07:45:18 -05:00
Seth Call 3976707b14 * check for video enabled better 2015-09-09 07:13:51 -05:00
Seth Call b483dd537f * better text for video test 2015-09-09 07:02:12 -05:00
Seth Call 2260350fc4 * wip 2015-09-09 06:11:16 -05:00
Seth Call a4f465b6d1 * VRFS-3530, VRFS-3531 - allow user to test and disable video 2015-09-08 20:30:47 -05:00
Seth Call c802759e42 * wip 2015-09-08 15:30:44 -05:00
Seth Call 5df4192356 * mip 2015-09-08 12:33:23 -05:00
Seth Call ba99f88048 * VRFS-3534 - fix start recording API signature 2015-09-08 10:05:26 -05:00
Seth Call e29050b0db wip 2015-09-08 09:59:53 -05:00
Seth Call 50684890cb * wip 2015-09-07 14:00:04 -05:00
Seth Call 386ed8144c * VRFS-3528 - make sure open jamtrack dialog passes 'show_purchased_only' 2015-09-06 19:03:08 -05:00
Seth Call 6d010a561b * deal with too-few tracks on landing page, and the 3rd CTA bubble clipping off text 2015-09-04 20:43:15 -05:00
Seth Call 0076f0205a * VRFS-352 - instrument-centric landing page 2015-09-04 15:00:45 -05:00
Seth Call ff01b6df0e * wip 2015-09-04 13:11:42 -05:00
Steven Miers 900400f053 VRFS-3359 : Styling, cleanup, more idiomatic react state management for input fields. 2015-09-03 03:53:06 -05:00
Steven Miers 766842f4e7 VRFS-3359 : Teacher pricing
* Currency fields only appear when both the appropriate pricing option
(column) AND the time range (row).
* Currency fields set state and format on blur
2015-09-03 03:52:04 -05:00
Steven Miers dace5dd08a VRFS-3359 : New fields in API output and controller spec. 2015-09-03 02:00:18 -05:00
Steven Miers 3f2fd94c58 VRFS-3359 : Update schema and models with per-month and per-lesson price for each interval. Update tests to match. 2015-09-03 01:53:28 -05:00
Seth Call 3ee71634b3 * remove test stuff 2015-09-02 09:40:06 -05:00
Seth Call d07ac009bf * VRFS-3509 - case where no device is configured handled 2015-09-01 08:11:35 -05:00
Steven Miers 8ce313f5c7 VRFS-3359 : Teacher pricing
Display or hide fields depending on checkboxes.
2015-08-31 23:02:44 -05:00
Steven Miers 005ee8aabd VRFS-3359 : Validate end year greater or equal start year. 2015-08-31 14:56:25 -05:00
Steven Miers 69bb4e469a VRFS-3359 : Teacher Experience List Component
* Add field label properties to experience list component.  Each of the
three lists can set labels for title and organization.  Date label is
inferred from showEndDate property
* Update usages of this list
* Sort by start_date
* List display uses available fields (e.g., date range when available)
2015-08-31 13:12:36 -05:00
Steven Miers 0878c5fd3f VRFS-3359 : Proper setting of experience keys and saving. 2015-08-31 11:32:20 -05:00
Seth Call 9420cebad4 * VRFS-3494 - show popup when video window launches for the 1st time to offer guidance 2015-08-30 05:00:00 -05:00
Steven Miers e028a604cf VRFS-3359 : Validate experience forms using HTML5 validations. 2015-08-29 12:52:29 -05:00
Steven Miers 6e62db85eb VRFS-3359 : React component functionality and styles to display various experience lists. 2015-08-28 15:50:20 -05:00
Steven Miers 67696a72d7 VRFS-3359 : Teacher API work
* Return distinct experience collections for teaching, education, and
awards.
* Update tests for new behavior.
* Responders for language and subject APIs.
2015-08-28 15:11:52 -05:00
Steven Miers 4eac4ccd7a VRFS-3359 : Style updates, mostly for experience page. 2015-08-28 13:30:32 -05:00
Steven Miers cf6f4046da VRFS-3359 : More react behavior and view updates to generic and specialized components. 2015-08-28 13:30:01 -05:00
Steven Miers 7fe542a1ff VRFS-3359 : Fix classes for various profile setup pages. 2015-08-28 13:27:57 -05:00
Steven Miers 6c25907a58 VRFS-3359 : New react components for profile setup. Incremental 2015-08-27 11:25:48 -05:00
Seth Call c3f81a4d23 * build bump 2015-08-27 10:35:43 -05:00
Seth Call e782d5f9bb * VRFS-3419 - check better for window opener 2015-08-27 09:43:40 -05:00
Seth Call 36b6699cde * validate popup VRFS-3419 2015-08-27 08:14:39 -05:00
Seth Call 8948f0498f * fix changed path 2015-08-27 07:59:21 -05:00
Seth Call 2bce35d604 * fix jamtrack test 2015-08-26 20:38:34 -05:00
Seth Call 63ef63c20d * fix typo again in webcamViewer. need to go to bed 2015-08-26 20:34:40 -05:00
Seth Call 8566cc5bc9 * fix typo added in webcamViewer 2015-08-26 20:31:34 -05:00
Seth Call 22ea6e89fd * VRFS-3488 - jamtrack search by artist and song need to pin to the match, not do a sloppy search 2015-08-26 20:26:39 -05:00
Seth Call a4bd28e168 VRFS-3474 - watch for USB events and refresh video pages 2015-08-26 16:43:34 -05:00
Seth Call d2edfd22c5 * VRFS-3467 - previews are 20 seconds long indicator on jamtracks 2015-08-26 12:01:52 -05:00
Seth Call defdfa8ce9 * VRFS-3473 - fix 'videoShared' state in webcamViewer 2015-08-26 06:04:53 -05:00
Steven Miers 2558c03f3d VRFS-3359 : Updates to teacher models and tests
* Scope experience based on type: teaching, education, awards
* Save experience using these different types
* Add new tests to verify
2015-08-25 19:21:48 -05:00
Steven Miers 66e17c64d6 VRFS-3407 : Populate initial list of subjects and list of common languages. 2015-08-25 19:18:13 -05:00
Seth Call 090cfa17c0 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-08-25 14:53:35 -05:00
Seth Call 7560b340c7 * VRFS-3466 - updated frontend to pass in GUIDs 2015-08-25 14:53:28 -05:00
Seth Call 1252dbe178 * use new bridge calls to handle current FPS and resolution VRFS-3428 2015-08-25 05:28:15 -05:00
Jonathan Kolyer 818596ae36 VRFS-3451 musician_search verifying instrument and genres inputs 2015-08-25 08:23:52 +00:00
Seth Call 6918eaf095 more UI tweaks for video settup in account screen VRFS-3428 2015-08-24 17:55:06 -05:00
Seth Call fc69242578 * VRFS-3427 - update FTUE to test video, not just audio 2015-08-24 16:18:31 -05:00
Seth Call 729974013a * VRFS-3428 - fix button text 2015-08-24 16:17:53 -05:00
Seth Call db1f1d60d5 Merge branch 'feature/video_frontend' into develop 2015-08-24 15:56:42 -05:00
Seth Call 04825d2659 * VRFS-3428 - update how we query backend for frame rates 2015-08-24 15:54:59 -05:00
Seth Call 39d0731d74 * VRFS-3456 - remove special chars from search 2015-08-22 05:44:59 -05:00
Seth Call 1874720ee8 * VRFS-3456 - protect special chars from tsquery 2015-08-22 05:35:25 -05:00
Steven Miers 78ccf3b9f4 VRFS-3359 : Teacher Setup - Factor out common functionality into a CheckBoxList, of which the instrument selector is composed. 2015-08-21 08:30:44 -05:00
Seth Call 29104ff09b * VRFS-3446 - bug fix for no genre specified on join of session; also fix search bar in jamtrack dialog 2015-08-21 05:02:48 -05:00
Seth Call 3b6d1febdb * forget cta image 2015-08-20 15:44:21 -05:00
Seth Call 6ac622853c * VRFS-3449 - a little more tweaking of JamTrack landing page 2015-08-20 15:02:55 -05:00
Seth Call d7fcadcd0d * VRFS-3450 - fix 'show all tracks' when pagination occurs by not doubleregistering 2015-08-20 14:49:07 -05:00
Steven Miers ec7c4e3e4d VRFS-3359 : Cleanup 2015-08-20 14:44:50 -05:00
Seth Call e7b50ca4a8 * VRFS-3449 - updates for direct landing pages 2015-08-20 14:19:07 -05:00
Steven Miers 949bf6ec25 VRFS-3359 : Teacher Profile Instrument Selector List
* Instrument Selector List Component
* Necessary backend api tweaks so only necessary instrument information
is returned (array of ids only)
* Refactor styles and add common checkbox scroller styles.
2015-08-20 14:15:51 -05:00
Seth Call 0d075a9568 * fix spacing issue 2015-08-20 09:19:17 -05:00
Seth Call 9c17d9a024 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-08-20 09:06:48 -05:00
Seth Call 98734506df * VRFS-3448 - fix invisible downloader 2015-08-20 09:06:36 -05:00
Seth Call 90c8d05d00 * wip 2015-08-19 14:17:10 -05:00
Seth Call bf4044d92e * VRFS-3422 - don't die if the user has on sale_line_items 2015-08-19 09:24:14 -05:00
Seth Call 87c62b4db2 * a fix for linux? hfa code 2015-08-19 08:29:22 -05:00
Seth Call 3fa58715fc * fix open jamtrack dialog for people with less than 10 jamtracks 2015-08-19 07:36:04 -05:00
Seth Call d045c94f54 * more HFA request polish 2015-08-19 07:17:37 -05:00
Seth Call dc343f10e3 * don't show free jamtrack notice on landing page if redeemed_jamtrack cookie is set 2015-08-19 07:01:47 -05:00
Seth Call e6618da456 * fix a bug in figuring out if the user should be show GET IT FREE 2015-08-18 21:29:15 -05:00
Seth Call 5ba03a2755 * VRFS-3431 - better response when creating HFA request 2015-08-18 20:41:37 -05:00
Seth Call 37d6c3e57c * add csv to dump released JamTracks 2015-08-18 15:19:40 -05:00
Seth Call f6101f3621 VRFS-3422, VRFS-3423, VRFS-3424, VRFS-3429 - JamTrack search/listing 2015-08-18 14:26:41 -05:00
Steven Miers 7c95e526e4 Merge branch 'develop' into feature/profile-teacher 2015-08-17 14:11:41 -05:00
Steven Miers fea9d1e25a Fix unit test (build instead of create). 2015-08-17 14:10:32 -05:00
Steven Miers dd98f3bf2e VRFS-3359 : API and REST for languages and subjects 2015-08-17 14:08:03 -05:00
Steven Miers 6edb4b6012 Merge with develop 2015-08-15 17:18:15 -05:00
Steven Miers b4018e0124 VRFS-3359 : Teacher lookup
* Fix a problem with teacher query
* Addresses a few test failures
* Cleanup logging output
2015-08-15 17:11:47 -05:00
Steven Miers b2b9022f50 VRFS-3359 : Styling and markup for react components, incremental. 2015-08-15 16:36:42 -05:00
Steven Miers c1927dd20a VRFS-3359 : Teacher API detail method
* Now includes sub-records: genres, instruments, languages, subjects
* Test to verify
2015-08-15 16:35:51 -05:00
Seth Call efbecded54 * fix importer on oriental/asian 2015-08-15 14:26:54 -05:00
Jonathan Kolyer 0b67ef5f52 fixed test for instruments in musician search 2015-08-15 15:03:00 +00:00
Seth Call e62d9e126f * VRFS-3435 allow multiple onboarders to execute 2015-08-15 06:22:46 -05:00
Steven Miers 86a196e7c8 VRFS-3359 : Solid navigation for teacher setup steps. 2015-08-14 16:56:36 -05:00
Seth Call c4981376ac * set storage format for sync_all_dev 2015-08-13 11:13:13 -05:00
Seth Call ee6493afd3 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-08-13 11:10:04 -05:00
Seth Call d36999032f * expand part size 2015-08-13 11:09:54 -05:00
Steven Miers fee62c225b VRFS-3359 : Navigation and additional styling/markup. 2015-08-12 13:03:32 -05:00
Seth Call 40f3b7d83e * correct part deduplicator 2015-08-12 10:14:54 -05:00
Seth Call 03f5407727 * deal with duplicate instrument/parts better than failing 2015-08-12 09:36:42 -05:00
Seth Call 96fa38f611 * fix db migration for production 2015-08-11 10:41:37 -05:00
Seth Call 5300f62063 * don't eat up horns part if specified 2015-08-11 05:51:58 -05:00
Seth Call 795f0b5375 * allow a non-video client into a session on a server configured with video 2015-08-10 11:05:24 -05:00
Seth Call aec3d106fa * more scopes for onboarding 2015-08-09 17:27:30 -05:00
Seth Call da726a574b * remove unique constraint on jamtrack name 2015-08-09 14:20:21 -05:00
Seth Call eba1280708 * make it so it's easy to find jam tracks with problems 2015-08-09 13:57:19 -05:00
Seth Call af355ec096 * get activeadmin working for JamTracks after onboarding enhancements were added 2015-08-09 13:47:49 -05:00
Seth Call 557e19e5e7 * allow better onboarding of JamTracks including audio from Tency Music (VRFS-3296, VRFS-3386) 2015-08-09 13:37:43 -05:00
Steven Miers 09b7f44a91 VRFS-3359 : Enhance show/detail record. Also allow looking up by teacher or current user, which changes URI signature. Update tests accordingly. 2015-08-08 15:06:15 -05:00
Steven Miers fb95aa3d4d VRFS-3359 : And language and subject factories for testing. 2015-08-08 15:03:58 -05:00
Steven Miers 87eaf3646d VRFS-3359 : Hook up react components - incremental. 2015-08-08 15:03:23 -05:00
Steven Miers c38fe715a5 VRFS-3359 : Extract styles for simple use in react. Styling for error/validation. 2015-08-08 15:02:18 -05:00
Steven Miers 8908ef3081 VRFS-3359 : Validations and tests for introductory video. 2015-08-08 15:01:38 -05:00
Steven Miers 176f2b9e2f VRFS-3359 : Initial react components. 2015-08-08 15:01:22 -05:00
Steven Miers d76899be54 VRFS-3359 : Teacher profile REST functions. 2015-08-08 15:00:44 -05:00
Steven Miers 968722bf80 VRFS-3359 : Routes and controller API, with test. 2015-08-08 15:00:16 -05:00
Jonathan Kolyer c11cc5eb9e added fixmes for sql injection vulnerabilities 2015-08-04 14:11:46 +00:00
Jonathan Kolyer 6a806a05cb VRFS-3393 merging musician-search2 into develop 2015-08-04 14:10:02 +00:00
Jonathan Kolyer aa36b2f215 merging develop 2015-08-04 13:44:47 +00:00
Seth Call 55ccf89e64 * VRFS-3396 took out carmen gem; database in production/staging has display names in db 2015-07-28 14:11:28 -05:00
Steven Miers c89d537904 VRFS-3359 : Teacher profile, staged validations and specs. 2015-07-28 14:00:14 -05:00
Steven Miers 98110f68bc VRFS-3359 : Save and test other segments of teacher profile. 2015-07-27 17:00:39 -05:00
Seth Call 0c58a0c1d3 * VRFS-3364 - show metronome while jamtrack is open 2015-07-27 15:35:21 -05:00
Steven Miers 460783a5aa VRFS-3359 : Teacher models, relationships, some validations, and initial tests. 2015-07-27 10:02:37 -05:00
Steven Miers cb3137ff80 VRFS-3359 : Teacher Profile Migrations 2015-07-24 18:32:29 -05:00
Steven Miers 823da09ef3 Re-add NULL constraint. 2015-07-24 16:57:48 -05:00
Seth Call bf0e29952e * VRFS-3381 - make sure a recorded jamtrack shows up correctly 2015-07-24 14:57:01 -05:00
Seth Call 395fa21318 * VRFS-3368 - show muted icon if either output mixer is muted 2015-07-24 14:21:45 -05:00
Seth Call a3b2a7d0aa * VRFS-3384 - ensure that .always fires in session refresh, requiring a try/catch wrap 2015-07-24 13:16:15 -05:00
Seth Call b1b8708195 * VRFS-3382 - control my chat and peer chat with master volume slider 2015-07-24 12:33:25 -05:00
Seth Call afa1d449ca * VRFS-3385 - metronome flicker code removed, fixing some error scenarios 2015-07-24 12:20:10 -05:00
Seth Call 0f85888479 * VRFS-3356, VRFS-3371 - deal with async timing issues for self and remote peers as you join a session 2015-07-23 21:00:39 -05:00
Seth Call b777fb5364 * VRFS-3356 - use SessionStore currentSessionId directly 2015-07-23 16:30:55 -05:00
Seth Call dfc0ea596a * VRFS-3356 - use SessionStore currentSessionId directly 2015-07-23 16:26:51 -05:00
Seth Call 0fe883cd1e * give network test more time, VRFS-3356 - correlate backend tracks attempt #1 2015-07-23 16:10:56 -05:00
Seth Call 05028cc45c * noop 2015-07-23 15:00:48 -05:00
Seth Call 82b0272786 * VRFS-3374 - relative move of media group 2015-07-23 14:12:44 -05:00
Seth Call dd579f8c32 * VRFS-3373 - tell remote users about the MIXER button if they mess with volume/pan 2015-07-23 11:53:24 -05:00
Seth Call 125f50872f * VRFS-3370 - mute button show logic was busted 2015-07-23 11:01:48 -05:00
Seth Call 2027b90705 * don't show metronome popup just because metronome is active in backend 2015-07-23 09:47:14 -05:00
Seth Call e779d25955 * VRFS-3366 - make the 'Music' volume affect 5 categories, not just one 2015-07-22 17:46:33 -05:00
Seth Call e143dc4e1f * VRFS-3361 - make sure we leave the session in all cases that you leave the session screen 2015-07-22 09:55:28 -05:00
Seth Call a4b3ff4b03 * fix up the 'no local tracks' font sizing and click behavior 2015-07-22 09:30:28 -05:00
Seth Call 6fede36b04 * protect against double-activation of search of find session screen 2015-07-22 08:16:00 -05:00
Seth Call bade8884f3 * stop influxdb prints in web tests 2015-07-22 07:52:41 -05:00
Steven Miers 82dd27754c Tweak 2015-07-22 02:54:10 +00:00
Seth Call 80edd3f8f5 * VRFS-3356 temmporary patch for MyTracks being missing 2015-07-21 21:01:13 -05:00
Steven Miers 82aa6bb244 Use scopes to clean up. 2015-07-21 19:14:18 -05:00
Steven Miers 46cd9c4798 Remove stray debug output. 2015-07-21 18:10:45 -05:00
Steven Miers 35ec59ff97 Merge branch 'develop' into feature/ratings 2015-07-21 16:56:40 -05:00
Steven Miers 2d4ce4cf3c VRFS-3316 : Review cleanup, new tests 2015-07-21 16:55:40 -05:00
Seth Call 45e8ab0480 * VRFS-3358 - UserMedia/MediaTrack group association corrected for the group controls of any media track 2015-07-21 16:12:04 -05:00
Steven Miers 1262dbfcc6 VRFS-3316 : Reviews : routes and api controller
* Expose review query methods as an API/rest interface.
* Required updates to model
* Spec to verify
2015-07-21 14:47:35 -05:00
Seth Call f76987c2e5 * VRFS-3351 - advise users why they can't adjust volume remotely on media tracks 2015-07-21 14:26:03 -05:00
Seth Call 609cdacec3 * still trying to fix find session tests; aestetic tweaks to session screen (VRFS-3355 and VRFS-3354) 2015-07-21 13:23:12 -05:00
Seth Call 1cd05ff7b4 * found one escape hatch issue when coming in from account page for a JamTrack session, and removed some extra logging 2015-07-21 08:40:07 -05:00
Seth Call 4345d898f7 * VRFS-3348 - support JamTrack opening automatically when opened from account page 2015-07-21 08:08:34 -05:00
Steven Miers bd4b3380c2 VRFS-3316 : Review query method and spec to verify. 2015-07-20 20:33:20 -05:00
Steven Miers 74b8c81a8a VRFS-3316 : Review query method and spec to verify. 2015-07-20 19:11:52 -05:00
Steven Miers 2c594bf783 VRFS-3316 : Reduce method to roll up reviews
* Creates review_summaries
* Calculate and store wilson score
* Unit tests
2015-07-20 16:49:22 -05:00
Seth Call 131c2dc95b * mark another test intermittent 2015-07-20 14:10:01 -05:00
Seth Call 472c86497d * fix syntax error 2015-07-20 14:04:16 -05:00
Seth Call 6de0253c4c * trying to fix these find session test failures 2015-07-20 13:52:36 -05:00
Seth Call b11c707155 * add intermittent:true to avoid certain tests 2015-07-20 12:56:47 -05:00
Seth Call 0a6cde40a5 * add help to metronome master view VRFS-3347 2015-07-20 12:25:55 -05:00
Seth Call 7c70a36d80 * allow youtube_spec to be excluded by build server 2015-07-20 11:58:33 -05:00
Seth Call 03e8b1e036 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-07-20 11:38:16 -05:00
Seth Call 2171f06685 * VRFS-3347 - disable metronome in master mix view (still can't get helpbubble to show), update password of google account 2015-07-20 11:38:04 -05:00
Steven Miers 4b52d97a64 VRFS-3316 : Review summary uniqueness validation and spec. 2015-07-20 11:35:16 -05:00
Steven Miers 0beb386bea VRFS-3316 : Review Uniqueness validation and spec. 2015-07-20 11:29:19 -05:00
Steven Miers 91a8b4ab9c VRFS-3316 : Reviews/Ratings
* schemas for reviews and review_summaries
* migrations
* models
* validations
* initial specs to verify creation of reviews and review_summaries with
a jamtrack and subsequently, various validations.
2015-07-20 11:01:08 -05:00
Steven Miers f13d14b62d Some brief notes on the youtube spec. 2015-07-20 10:45:55 -05:00
Seth Call e53af19dc6 * fixing more tests 2015-07-20 08:59:24 -05:00
Seth Call 4b7e7c1c7f * ignore ssl errors in phantomjs 2015-07-20 07:58:15 -05:00
Seth Call f6d54a57f5 * test fixes 2015-07-19 09:57:40 -05:00
Seth Call 35e07c3d7f * trying to protect against leaky data in ruby tests 2015-07-18 14:41:29 -05:00
Seth Call a9dc1c92b7 * VRFS-3344 - ensure popups are all removed when you leave a session 2015-07-18 14:26:50 -05:00
Seth Call ecc575c7d9 * fixnig download spec 2015-07-18 07:49:45 -05:00
Seth Call 2a2ad4a378 * test fix 2015-07-17 19:32:58 -05:00
Seth Call 1cec394698 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-07-17 16:02:45 -05:00
Seth Call d280a53e48 * fix metronome personal/master bug; try to fix intermittent fail 2015-07-17 16:02:36 -05:00
Steven Miers 339c681900 Fix musician search spec to pass updated user validation logic. 2015-07-17 16:01:43 -05:00
Steven Miers d999978f84 VRFS-3335 : Conditional validation for hourly rate and daily minimum when editing profile.
* Use conditional validation on server side
* Don’t always convert empty to 0 on client side
* On view, manipulate visibility of dependent items through classes.
2015-07-17 13:42:48 -05:00
Seth Call af870d3439 * trying to fix find_session tests and others 2015-07-17 12:16:16 -05:00
Seth Call d8e712e85c * fixing more tests and slight style issues 2015-07-17 11:52:46 -05:00
Seth Call 40d5e2bc17 * delete all music sessions before ruby test (uncessary until figure out root cause) 2015-07-17 09:50:48 -05:00
Seth Call 9e74df841f * video button is conditional in session screen based on config 2015-07-17 09:49:48 -05:00
Seth Call a54e7cb0b4 * updated mute/volume icon 2015-07-17 09:36:47 -05:00
Seth Call 67f433040f * fix user_progression tests for download page 2015-07-17 08:11:30 -05:00
Seth Call a1bd2d6941 * try fixing find session tests when run with existing test data 2015-07-17 07:30:16 -05:00
Seth Call d4ab19d792 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-07-17 07:18:33 -05:00
Seth Call c5033435f2 * fixing feed_spec 2015-07-17 07:18:27 -05:00
Steven Miers d332932b27 VRFS-3334 : Proper initialization of webcam viewer with unique parents. Trigger resolution change when select box changes. 2015-07-16 16:39:39 -05:00
Seth Call fbc6c0517c * marking some tests pending while debugging them 2015-07-16 16:09:42 -05:00
Seth Call cd37c85c68 * fix more tests and disable autorun of test-unit now that we have to include it as a dependency 2015-07-16 13:55:00 -05:00
Seth Call be26beae09 * fix band_spec intermittent test 2015-07-16 13:12:48 -05:00
Seth Call 55c1d2fb41 * trying to fix transition to 2.2.2 2015-07-16 11:48:17 -05:00
Seth Call efe3dea8e3 * updating Rails to 3.2.22 to allow compat with ruby 2.2.2 2015-07-16 10:58:03 -05:00
Seth Call db3ffafd38 * adding SHOULD BE unnecessary before-all rspec blocks to clean db state for tests that tend to fail intermittently. (workaround for some real problem) 2015-07-15 21:00:35 -05:00
Seth Call 921c2ddd5e Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-07-15 20:42:44 -05:00
Seth Call 3e11f7a5eb * VRFS-3339 - small aesthetic tweaks to session screen 2015-07-15 20:42:34 -05:00
Steven Miers bbcfd3336e VRFS-3332 : Band setup : validate genres only when on the correct step AND the next button is used. 2015-07-15 20:05:24 -05:00
Steven Miers f389f07b52 VRFS-3338 : Tests for genre validation behavior. 2015-07-15 19:33:10 -05:00
Steven Miers 7f35bab8c7 Fixes VRFS-3338 : Set & validate genres on updates to a valid band. 2015-07-15 18:56:45 -05:00
Steven Miers ef949590fe Remove stray log. 2015-07-15 17:07:24 -05:00
Steven Miers 2f5e7a71e6 Fixes VRFS-3337 : Fixes youtube spec / google login to match new behavior. 2015-07-15 17:05:11 -05:00
Steven Miers 42d4e9723c VRFS-3336 : Fix final save button on edit account profile.
* Only bind the screen to ‘account/profile/samples’ if it is the user
version
* Parent parameter was being overwritten; change to use the provided
argument.
2015-07-15 17:05:11 -05:00
Seth Call 946313d56b * more clean up to ensure clean start on test 2015-07-15 15:13:44 -05:00
Seth Call c7dd8fe095 * whack bands created in 'shared_example' manually 2015-07-15 14:57:24 -05:00
Seth Call 6b70483743 * restoring admin packaging phase, debugging ruby test problem 2015-07-15 12:12:29 -05:00
Seth Call 393696a0f8 * fixing ruby tests and trying to harvest up db deb's better 2015-07-15 11:25:58 -05:00
Seth Call 3b71931e73 merge conflict from feature/new_session (VRFS-3283) 2015-07-15 10:04:45 -05:00
Steven Miers f2ce59005a VRFS-3321 : Disable create account submit button until successful recaptcha callback. Re-disable if captcha expires. 2015-07-10 15:46:49 -05:00
Steven Miers a467388ac8 Merge test fix 2015-07-10 11:09:16 -05:00
Steven Miers 2761ea8ed7 Merged session reminder feature branch.
Squashed commit of the following:

commit 84293ed637
Author: Steven Miers <steven.miers@gmail.com>
Date:   Thu Jul 9 17:52:26 2015 -0500

    VRFS-3300 : Reminder notification functionality -- sends in-app/1-day/upcoming emails as necessary.

commit 521b0f4ba7
Author: Steven Miers <steven.miers@gmail.com>
Date:   Thu Jul 9 17:50:33 2015 -0500

    VRFS-3300 : Reminder mails on user mailer.   Also add tests to spec.

commit ed487e11a3
Author: Steven Miers <steven.miers@gmail.com>
Date:   Thu Jul 9 17:48:04 2015 -0500

    VRFS-3300 : Music session reminder job and spec

commit e5c7f50cd2
Author: Steven Miers <steven.miers@gmail.com>
Date:   Thu Jul 9 17:46:55 2015 -0500

    VRFS-3300 : Reminder cron setting
2015-07-10 10:51:12 -05:00
Steven Miers 614cfcbe85 Merge feature/calendaring branch:
commit 8023d6481c
    VRFS-3276 : Hook calendar creation into user controller API.  Add test to verify.

commit 3a35002a46
    VRFS-3276 : Calendar cleanup job

    * Add cleanup method to calendar manager
    * Create a daily job.
    * Add calendar cleanup to that job.
    * Add CRON entry
    * Daily job/ calendar cleanup test cases
    * Fix calendar manager spec for new required attribute

commit 3ff5910f1f
    VRFS-3276 : Add a delete-calendar directive when RSVP is canceled.
    VRFS-3276 : Include path to partial.  This fails depending on the method used to start the web server.

commit d2441cbf57
    VRFS-3276 : Test new calendar features. Use icalendar gem in test mode only to more deeply verify calendar in strict mode.

commit 9ac272a0fb
    VRFS-3276 : Calendar manager updates to include manual calendars.  Some refactoring to keep common stuff in one place.

commit b5d0c758f0
    VRFS-3276 : Schema, model updates and new calendar model.

commit 20472b6b26
    VRFS-3276 : Change initial submit behavior of RSVP dialog to display calendar info.  The user can then close the dialog after this prompt.

commit 77c99103d0
    VRFS-3276 : Calendar feed markup and styling.  Included as partial.

commit e632f48600
    VRFS-3276 : Routes and controller implementation of user calendar ICS feed, which uses calendar manager.

commit 21fd80a188
    VRFS-3276 : Initial tests for calendar manager

commit 92a2524c65
    VRFS-3276 : Calendar manager

    * Streamline logic
    * Enable recurring sessions through rrule
    * Implement method to create ics feed for user
    * Extract a type-safe scheduled duration method on music_session for
    external and internal use.

commit b71ad3a4cd
    VRFS-3276 : Include calendar manager

commit f8eaafd036
    VRFS-3276 : Calendar Manager - initial checkin

    * Create ICS events given individual parameters
    * Create calendar from music session
    * Also will create ICS “delete” events
2015-07-06 15:34:27 -05:00
Jonathan Kolyer 832e716e8b Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-06-28 19:52:45 +00:00
Jonathan Kolyer 4f2f37f7a9 removed latency as search; fixed regressions 2015-06-28 19:49:02 +00:00
Jonathan Kolyer 4f897fc6aa VRFS-3036 fixed typo referencing old constant SKILL_VAL_STRS 2015-06-28 04:00:44 +00:00
Seth Call 5c79bdab5c * make unsubscribed work, and only dump first_name 2015-06-20 14:49:11 -05:00
Seth Call c5bc95c562 Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop 2015-06-20 14:04:13 -05:00
Seth Call 53d62f1087 * synchronize jam-admin and jam-web secret token 2015-06-20 14:03:24 -05:00
Steven Miers 0d8beef0e2 VRFS-3190 : Last band test fixed 2015-06-17 15:56:29 -05:00
Steven Miers 75779da846 VRFS-3190 : Fix saveInvitations method 2015-06-17 15:05:19 -05:00
Steven Miers d37383a578 VRFS-3190 : Fix more band tests. 2015-06-17 15:04:27 -05:00
Steven Miers 104a0c015a VRFS-3190 : Fix another band test, add constant, more cleanup. 2015-06-17 08:24:57 -05:00
Steven Miers e6d1980495 VRFS-3190 : Fix band tests, add new tests for new tabs / cleanup 2015-06-16 17:55:55 -05:00
Steven Miers cfda14e16e VRFS-3190 : Merge with latest develop branch 2015-06-16 12:23:57 -05:00
Seth Call 2da5b3804e * * delete broadcast views when user is deleted (for tests) 2015-06-16 08:21:41 -05:00
Seth Call 5af9d759f2 * delete broadcast views when user is deleted (for tests) 2015-06-15 20:54:40 -05:00
Steven Miers 02be103694 VRFS-3190 : Fix band model tests 2015-06-15 19:09:25 -05:00
Steven Miers bd0c931df0 VRFS-3270 : Fix submit button on edit musician profile screen.
This was broken when changing from ids to classes on screens common to
band and user profiles.
2015-06-15 18:23:31 -05:00
Steven Miers c5285002e4 VRFS-3247 : Hide online presence and performance sample icons by default. Avoids flash at page load time. 2015-06-15 18:11:27 -05:00
Steven Miers e72980a32e VRFS-3248 : Band profile - history
* Allow context.JK.Feed to be attached to band, passing through to jam
rest as necessary.  Hook up from band profile JS.
* Markup and styling for feed on band profile history tab.
2015-06-15 18:10:17 -05:00
Seth Call 9ff44a21ac * deal with changed ChannelGroupIds enum in backend 2015-06-15 13:58:21 -05:00
Steven Miers 9b24e0c05b VRFS-3247 : Band profile - use classes instead of ids for embedded partials. 2015-06-11 17:33:04 -05:00
Seth Call 6afcc84088 * only list users who have opted into email 2015-06-10 16:41:52 -05:00
Steven Miers 4e8d563184 VRFS-3247 : JS rendering of band instruments, current interests and experience. 2015-06-10 15:34:43 -05:00
Steven Miers 8cd3b836ea VRFS-3247 : Band's online presence and performance samples specify foreign key so it won’t default to a nonexistent field name. 2015-06-10 15:31:36 -05:00
Seth Call 622f750b2d * VRFS-3261 add link to let sendgrid pull our users email info down for emailing out good unsubscribe links 2015-06-10 15:14:15 -05:00
Jonathan Kolyer 5d8ba22172 VRFS-3036 added performance sample test case 2015-06-10 16:36:58 +00:00
Jonathan Kolyer ebe620a3b3 VRFS-3036 fixed performance sample query and test 2015-06-10 16:35:39 +00:00
Jonathan Kolyer 1ad3f6a79f VRFS-3036 css tuning 2015-06-10 16:07:49 +00:00
Jonathan Kolyer 405350c649 VRFS-3036 CSS tuning and integration testing 2015-06-09 07:09:05 +00:00
Jonathan Kolyer 745c448e6b VRFS-3036 CSS tuning and integration testing 2015-06-09 06:46:34 +00:00
Jonathan Kolyer c40d7c5f62 VRFS-3036 CSS tuning 2015-06-09 05:39:03 +00:00
Jonathan Kolyer b49b44f724 VRFS-3036 CSS tuning 2015-06-09 04:56:14 +00:00
Jonathan Kolyer 1137420175 VRFS-3036 CSS tuning 2015-06-08 06:48:41 +00:00
Jonathan Kolyer 119b4fcb12 VRFS-3036 CSS tuning 2015-06-08 06:30:30 +00:00
Jonathan Kolyer 0be7146e4f VRFS-3036 CSS tuning 2015-06-08 06:11:55 +00:00
Steven Miers 141ee5f2e7 VRFS-3247 : Band Summary - About
* Layout and styling for musical experience, performance samples,
online presence, and current interests.
* Refactor online presence icons into slim partial and use from both
musician and band profile
* Refactor performance sample icons into slim partial and use from both
musician and band profile.
* Hook up buttons: edit, delete, invite, edit bio.
2015-06-06 10:17:32 -05:00
Steven Miers 0967513a4d VRFS-3247 : Cleanup/rename. 2015-06-05 17:22:50 -05:00
Steven Miers ba52794c3d VRFS-3247 : Refactor rendering logic to util class. Incremental. 2015-06-05 15:56:19 -05:00
Steven Miers 01c3b8af5f VRFS-3190 : Use scoped classes instead of ids for navigation buttons. Initialize musician profile samples properly. 2015-06-05 12:55:55 -05:00
Steven Miers 61268bdc30 VRFS-3190 : Fix race condition. Init should be called in the same asynchronous block as construction. 2015-06-05 09:24:49 -05:00
Steven Miers cb058e851b VRFS-3190 : Several bug fixes for band profile
* Storing validator in window was screwing things up now that we have
multiple of these.  This is now stored at the class instance level.
* Deleting a performance sample didn’t delete it from the validator, as
the comparison was flaky.
* Styling fixes
2015-06-04 18:55:15 -05:00
Steven Miers 972b65c4ef VRFS-3190 : Fix a few functional and style problems. Cleanup as necessary. 2015-06-04 14:05:20 -05:00
Jonathan Kolyer d099ca039d VRFS-3036 description testing 2015-06-04 08:17:46 +00:00
Jonathan Kolyer 0691e079af VRFS-3036 description testing 2015-06-04 08:11:41 +00:00
Jonathan Kolyer 965ee2e0bc VRFS-3036 tests for description 2015-06-04 07:38:16 +00:00
Jonathan Kolyer 3eca6aeee5 Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-06-04 05:59:31 +00:00
Jonathan Kolyer 56af10afb3 VRFS-3036 results / builder page swpping 2015-06-04 05:54:02 +00:00
Steven Miers b39c314e5b VRFS-3246 : Scope the unstopped selector. 2015-06-03 17:44:17 -05:00
Steven Miers c800ea8b00 Fix wayward merge. 2015-06-03 17:23:11 -05:00
Steven Miers 6c5ffd6644 VRFS-3246 : Cleanup code and style 2015-06-03 16:34:37 -05:00
Steven Miers bf14fa9926 VRFS-3246 : Allow parent to be specified to instance of SiteValidator. This allows multiple instances of the same site_type.
Also, change the way the validators are invoked.  Uses classes instead
of ids, again as there are now multiple of a site_type.
2015-06-03 16:34:19 -05:00
Steven Miers d5a8959677 Merge with develop. 2015-06-03 14:22:21 -05:00
Jonathan Kolyer dde84587b9 VRFS-3036 syncing ui/json 2015-06-03 06:41:21 +00:00
Steven Miers d60eff50ba VRFS-3246 : Support online presences and performance samples through sub-widget. Incremental. 2015-06-02 15:13:41 -05:00
Steven Miers bd8287b528 VRFS-3246 : Remove references to current_user, change to target_player. 2015-05-31 21:50:04 -05:00
Steven Miers 1f076dcc75 VRFS-3246 : More reliable layout and styling for online presence and performance samples. 2015-05-31 20:14:18 -05:00
Steven Miers 4dbf2e1c95 VRFS-3246 : Refactoring to allow online presence and samples controls to be used on bands -- incremental. 2015-05-31 17:35:09 -05:00
Steven Miers a571f726eb VRFS-3245 : Correct parent so validation message displays. 2015-05-31 16:05:41 -05:00
Steven Miers a22a77bbb6 VRFS-3245 : Fix genre validation on wrong step. 2015-05-31 14:54:29 -05:00
Steven Miers 7f02ca5240 VRFS-3245 : Hook up help hover bubbles
* Refactor common profile help bubble initialize convenience function
to profile_utils.
* Add new hover bubble text and hook up via HTML attribute on anchor tag
2015-05-31 09:53:28 -05:00
Steven Miers 540c3cc37f VRFS-3245 : Instrument selector
* Wrap instrument selector widget in dialog widget and delegate as
necessary
* Add instrument info to band api result
* Integrate with band setup flow
* Style to approximate spec
* Fix a few logic and syntax errors encountered along the way
2015-05-29 21:04:33 -05:00
Steven Miers d91d0b0cfe VRFS-3245 : Instrument selector dialog -- incremental. 2015-05-28 22:41:03 -05:00
Steven Miers dbd161a068 VRFS-3245 : Change "edit profile" to "set up band". 2015-05-28 22:40:19 -05:00
Steven Miers c02f8ceda8 VRFS-3245 : Fix reset form logic. 2015-05-28 22:39:32 -05:00
Steven Miers a4317a532b VRFS-3245 : Render optional controls
* If new member is wanted, show play commitment and touring option
* If paid gigs, show amount and gig minimum
* Works largely through class names.
2015-05-28 17:12:39 -05:00
Steven Miers 8d73ef6aac VRFS-3245 : Serialize additional attributes. 2015-05-28 14:21:55 -05:00
Steven Miers 9d59e53679 VRFS-3245 : Tweak style/layout to more closely match spec. 2015-05-27 16:14:00 -05:00
Steven Miers c714b98af1 VRFS-3245 : Integrate iCheck and style accordingly. 2015-05-27 13:11:12 -05:00
Jonathan Kolyer 4f5a39db18 VRFS-3036 band results display 2015-05-27 15:08:04 +00:00
Jonathan Kolyer e50dc6e20d VRFS-3036 band search results 2015-05-27 12:17:42 +00:00
Jonathan Kolyer b64aff9fdc VRFS-3036 merging 2015-05-27 09:17:36 +00:00
Jonathan Kolyer 1bd1794318 VRFS-3036 band web search args 2015-05-27 08:20:46 +00:00
Jonathan Kolyer 8480f582ad VRFS-3036 tuning band search filter spec 2015-05-27 05:08:56 +00:00
Jonathan Kolyer f66cf79cf2 VRFS-3036 band search filter tests 2015-05-27 04:10:05 +00:00
Jonathan Kolyer 9757712977 VRFS-3036 testing filter by key 2015-05-27 02:58:04 +00:00
Jonathan Kolyer caca4165fe merge feature/musician_profile_enhancements 2015-05-27 02:21:25 +00:00
Steven Miers 79af533348 VRFS-3245 : Layout and initial styling of band profile current interests screen -- incremental. 2015-05-26 21:17:25 -05:00
Jonathan Kolyer 38881216fc VRFS-3036 genre filter spec 2015-05-27 02:14:39 +00:00
Jonathan Kolyer 7edee8d494 VRFS-3036 first pass testing 2015-05-26 08:43:11 +00:00
Jonathan Kolyer 2f28d3a342 VRFS-3036 band query 2015-05-26 06:39:43 +00:00
Steven Miers 064f402f59 VRFS-3244 : Add additional fields for musical experience. Fix a few bugs and style issues. 2015-05-23 13:00:22 -05:00
Steven Miers c5fc6cb93d Fix typos. 2015-05-23 08:36:48 -05:00
Jonathan Kolyer cb7b48b4ec VRFS-3036 band search querying 2015-05-22 12:09:14 +00:00
Jonathan Kolyer da58ac6eab merging 2015-05-22 08:20:07 +00:00
Jonathan Kolyer b5f46329b3 VRFS-3036 tightening code 2015-05-22 08:09:52 +00:00
Jonathan Kolyer 14bce171c8 VRFS-3036 fixed nits 2015-05-22 07:48:05 +00:00
Jonathan Kolyer 777d4a39cb VRFS-3036 tohire builder 2015-05-21 06:42:27 +00:00
Jonathan Kolyer 3af55a3c14 VRFS-3036 tohire builder 2015-05-21 05:47:14 +00:00
Steven Miers a3c09bf8ad VRFS-3244 : Incremental - Refactor some common code. Whack unused code. 2015-05-20 19:46:29 -05:00
Steven Miers 429d5ad35d VRFS-3244 : New navigation logic for band profile editor -- incremental. 2015-05-20 14:17:53 -05:00
Jonathan Kolyer 8d3247e084 VRFS-3036 to hire builder 2015-05-20 09:24:53 +00:00
Jonathan Kolyer 1a91704532 VRFS-3036 band search filters 2015-05-20 06:25:22 +00:00
Steven Miers 1c93cdb797 VRFS-3243 : Fix tests 2015-05-19 13:33:25 -05:00
Steven Miers 69a8f1e8be VRFS-3243 : Some general style and code cleanup. 2015-05-19 13:33:07 -05:00
Steven Miers f16bd28574 VRFS-3243 : Ability to selectively skip genre validation 2015-05-19 13:32:15 -05:00
Jonathan Kolyer e794ccc7af VRFS-3036 bands to_join builder controls 2015-05-19 05:48:29 +00:00
Jonathan Kolyer d76f54b40e VRFS-3036 fixed broken merge 2015-05-19 00:52:35 +00:00
Jonathan Kolyer 21f90d7352 merging 2015-05-19 00:45:53 +00:00
Steven Miers 826022d414 VRFS-3243 : Band profile basics
* Convert to HAML
* Update to look and layout.
* Update how avatar control is optionally hidden, so the table view
will still work properly.
* Prevent double-submits.
2015-05-18 19:19:54 -05:00
Steven Miers d684ecda3b Merge with latest from develop and manually fix. 2015-05-18 16:02:07 -05:00
Jonathan Kolyer 737367b016 VRFS-3036 building out band search filter features, refactoring musician search filter 2015-05-18 04:00:12 +00:00
Steven Miers c5ee5a58fd VRFS-3242 : Fix one last reference to user_id. 2015-05-13 23:23:30 -05:00
Steven Miers 726cd853bf VRFS-3242 : Add missing included file. Fixes a bunch of tests. 2015-05-13 22:39:38 -05:00
Steven Miers 11f60b71e4 VRFS-3242 : Schema and model changes required for band profile functionality.
* Additional attributes for band_type, band_status, concert_count,
add_new_members, play_commitment, touring_option, paid_gigs,
hourly_rate, gig_minimum
* For joined table musician_instruments, remove the hard requirement
that they be joined to a user, rather a “player” that is polymorphic.
* For joined table performance_stamples, remove the hard requirement
that they be joined to a user, rather a “player” that is polymorphic.
* For joined table online_presences, remove the hard requirement that
they be joined to a user, rather a “player” that is polymorphic.
* Change models as appropriate with new attributes and modify
belongs_to / has_many directives as necessary.
* Fix existing usages of user_id to work with polymorphic player_id.
* Fix tests that use user_id
* Add new tests that exercise online_presence, performance_samples, and
instruments that target a band, rather than a user.
2015-05-13 21:06:14 -05:00
Steven Miers 193888f960 VRFS-3242 : Merge with latest develop 2015-05-13 20:56:58 -05:00
Steven Miers b0fd3fd4c8 VRFS-3007 : Test for presence of online presence and performance samples for musician profile feature. Also, add classes to ease identification of dynamically added elements. Fix a few style issues. 2015-05-11 17:25:57 -05:00
Steven Miers 294c01d44a Merge with latest develop 2015-05-11 17:25:37 -05:00
Steven Miers a23033ebcd VRFS-3007 : Dedicated tests for musician profile -- incremental 2015-05-11 09:03:08 -05:00
Steven Miers ec6f50bc70 VRFS-2858 : Soundcloud recording widget. Hooked up on profile summary page. 2015-05-09 20:08:49 -05:00
Steven Miers 7beacb1803 VRFS-3227 : Genre selector dialog:
* Change from table to a 3-column list
* Format/spacing for caption
2015-05-08 19:07:08 -05:00
Steven Miers eaf4f49763 VRFS-3015 : Add list items as necessary and remove ordinal selectors. This prevents both some spacing issues and flash of empty list items seen when the form is loaded. 2015-05-08 17:51:33 -05:00
Steven Miers 3314515577 VRFS-3105 : Update online presence after updating, and not just on init. Also call show on the appropriate elements, as they could be hidden if an item is being set for the first time. 2015-05-08 16:44:55 -05:00
Steven Miers ca46ffa43b VRFS-3104 : Profile Sample edit screen : fix list items displaying over one another. 2015-05-08 15:36:37 -05:00
Steven Miers 81464a5cd6 VRFS-3104 : Fix overlapping of divs and alignment on profile sample edit screen. 2015-05-08 15:34:20 -05:00
Steven Miers 183f5a5fdd VRFS-3046 : Add profile interest help bubbles (topics stored as attributes on element) 2015-05-08 11:45:13 -05:00
Steven Miers 6d6307f9c9 VRFS-3047 : Polish Save & Next buttons on profile editing screens. 2015-05-07 18:01:12 -05:00
Jonathan Kolyer 6fb07d8a31 VRFS-3036 more refactoring 2015-05-07 19:02:21 +00:00
Jonathan Kolyer 13c1c5311e VRFS-3036 more refactoring 2015-05-07 19:02:21 +00:00
Jonathan Kolyer 33cdb33f37 VRFS-3036 refactoring musician_search into base_search 2015-05-07 19:02:21 +00:00
Jonathan Kolyer 0b64986766 VRFS-3036 refactoring musician_search into base_search for band_search 2015-05-07 19:02:21 +00:00
Jonathan Kolyer 674d1de2d3 VRFS-3036 refactoring band search 2015-05-07 19:02:21 +00:00
Jonathan Kolyer 7e2e5241bf VRFS-3036 refactoring musician_search into base_search for band_search 2015-05-07 19:02:21 +00:00
Jonathan Kolyer 5a6049c935 VRFS-3036 more refactoring 2015-05-07 18:08:36 +00:00
Jonathan Kolyer 6a23477c4e VRFS-3036 more refactoring 2015-05-07 17:11:24 +00:00
Jonathan Kolyer 4cf7f20844 VRFS-3036 refactoring musician_search into base_search 2015-05-07 15:21:39 +00:00
Jonathan Kolyer 4658f72f98 VRFS-3036 refactoring musician_search into base_search for band_search 2015-05-07 14:41:27 +00:00
Jonathan Kolyer 749c58f377 VRFS-3036 refactoring band search 2015-05-07 13:21:53 +00:00
Jonathan Kolyer ce3bf635f0 VRFS-3036 refactoring musician_search into base_search for band_search 2015-05-07 12:55:13 +00:00
Steven Miers d964cff2a3 VRFS-3205 : Add max height and scrolling to genre selector dialog. 2015-05-06 16:34:36 -05:00
Steven Miers 2d1877926e VRFS-3063 : Fix genre selection bug with proper use of unbind. 2015-05-06 16:07:14 -05:00
Steven Miers 7b5cdbf390 VRFS-3106 : Populate country name and state(region) labels using carmen gem. 2015-05-06 15:35:41 -05:00
Steven Miers 839eab5713 VRFS-3106 : Add clear:all to fix spacing problem 2015-05-06 15:15:45 -05:00
Steven Miers d208a8cd82 VRFS-3007 : Change text to what is observed. I'm not 100% sure about this, so I'm going to run with it in this branch for a bit. 2015-05-06 13:26:23 -05:00
Steven Miers cf6ceb6b38 VRFS-3007 : This doesn't actually appear (fixes test). 2015-05-06 13:25:12 -05:00
Steven Miers ccb4680c36 This seems to be required now. 2015-05-06 13:24:21 -05:00
Steven Miers a823be0b2e VRFS-3007 : Stub non-existent method to fix test. 2015-05-06 13:24:03 -05:00
Steven Miers 4c4121e4d7 Merge with latest develop 2015-05-01 20:00:08 -05:00
Steven Miers 4a83100f37 VRFS-3119 : Musician search bug fixes. Fixes some more tests. 2015-05-01 18:48:41 -05:00
Steven Miers 77ce45d7c6 VRFS-3119 : Comment about broken feature/test. 2015-05-01 13:49:59 -05:00
Steven Miers 425916f31d VRFS-3007 : Fix another bad method reference, and some more tests. 2015-05-01 13:49:28 -05:00
Steven Miers 571ae9a3d6 VRFS-3007 : Fix another musician search issue and a few tests. 2015-05-01 13:22:34 -05:00
Steven Miers b39ab852ba VRFS-3007 : Fix a few more musician search API and feature tests. 2015-05-01 12:09:23 -05:00
Steven Miers 6c1371c619 VRFS-3007 : Fix profile history specs. 2015-04-30 20:53:19 -05:00
Steven Miers 7359cb36bf VRFS-3007 : Fix feed tests (bad selector). 2015-04-30 20:48:26 -05:00
Steven Miers 5ba6e1ed18 VRFS-3007 : Fix band feature specs (bad selector). 2015-04-30 20:37:40 -05:00
Steven Miers 51dc0c408a Merge branch 'develop' into feature/musician_profile_enhancements 2015-04-30 19:33:04 -05:00
Steven Miers d4d8489ef1 VRFS-3007 : Fix faulty logic when extracting recording data. Addresses a few test failures. 2015-04-30 19:31:44 -05:00
Steven Miers 86c483a0d5 VRFS-3007 : Fix tests that intermittently fail depending on order (always whack users before starting). 2015-04-30 13:14:25 -05:00
Steven Miers 64e84c17eb VRFS-3007 : Fix feed spec test failure (was intermittently passing only). 2015-04-29 19:09:30 -05:00
Steven Miers 2e33851e30 VRFS-3007 : Fix band filter search test failure. 2015-04-29 19:08:59 -05:00
Steven Miers 03bab53b2f VRFS-3007 : Remove redundant "model" suffix from spec name as folder is already named "model". 2015-04-29 19:06:33 -05:00
Steven Miers 5b43688443 VRFS-3007 : Fix failure on musician search spec. 2015-04-29 15:34:28 -05:00
Steven Miers daef55d1a2 Merge branch 'develop' into feature/musician_profile_enhancements 2015-04-29 12:59:11 -05:00
Steven Miers 757a9a5522 VRFS-3007 : Fix javascript bug causing test and browser problems. Fixes 164 of 203 failures. 2015-04-29 12:58:49 -05:00
Steven Miers cf515a9cf0 VRFS-3007 : Fix tests and models failing due to PermissionError 2015-04-29 12:56:16 -05:00
Steven Miers 2260d21fc1 VRFS-3007 : Merge with latest develop 2015-04-28 16:43:38 -05:00
Brian Smith 75f1098ca3 Merge branch 'develop' into feature/musician_profile_enhancements 2015-04-14 03:13:27 -04:00
Brian Smith 09e4253f5f VRFS-2699 select checkboxes for items already in list 2015-04-14 03:06:18 -04:00
Brian Smith 12f5fc94c2 VRFS-2699 recording selector dialog 2015-04-14 02:43:29 -04:00
Brian Smith b81222278d merge develop 2015-04-13 08:16:45 -04:00
Brian Smith 4ef86587b6 VRFS-2699 recording selector work 2015-04-13 08:12:18 -04:00
Brian Smith 5a4157c563 check for nil 2015-04-10 20:19:53 -04:00
Brian Smith 246efbdaa8 merge develop 2015-04-09 20:47:01 -04:00
Brian Smith 0a451742ef merge develop 2015-04-06 21:26:54 -04:00
Jonathan Kolyer 08198e0aae Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-04-04 23:43:34 +00:00
Brian Smith 40899dab90 VRFS-2701 minor cleanup 2015-04-05 19:59:36 -04:00
Brian Smith 91e9e73644 VRFS-2701 adding SoundCloud/YouTube sources fully functional 2015-04-04 21:46:37 -04:00
Jonathan Kolyer 279f97ec9a VRFS-2795 fixed broken spec 2015-04-04 23:42:41 +00:00
Jonathan Kolyer 51b38bbeed VRFS-2795 css styling of builder page 2015-04-04 23:32:39 +00:00
Jonathan Kolyer 52f88692ca VRFS-2795 styling; result link fixes 2015-04-04 21:57:59 +00:00
Jonathan Kolyer 086b3bc3c4 VRFS-2795 styling and descriptions 2015-04-04 20:26:41 +00:00
Jonathan Kolyer e0d2feb84d VRFS-2795 pagination 2015-04-04 17:29:15 +00:00
Jonathan Kolyer 0890aee9da VRFS-2795 paginating 2015-04-04 16:11:36 +00:00
Jonathan Kolyer e4795d9297 VRFS-2795 fixed filter description issue 2015-04-04 15:36:15 +00:00
Jonathan Kolyer e563ad0d8b Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-04-04 14:56:36 +00:00
Jonathan Kolyer 4fbf3e694d VRFS-2795 filter description & spec tests; support for reset, cancel buttons; proper display and update impl 2015-04-04 14:55:41 +00:00
Brian Smith 5ae708a898 VRFS-2701 added ability to remove recordings from list 2015-04-04 10:51:48 -04:00
Brian Smith 5bd5b26406 VRFS-2701 consolidated site add code / added X to remove row 2015-04-04 09:59:54 -04:00
Brian Smith 9ad1ffc3f6 remove binding.pry 2015-04-04 02:32:00 -04:00
Brian Smith 2f8d048dde VRFS-2701 updated site validator lib to extract recording title for YouTube and SoundCloud URLs 2015-04-04 02:31:12 -04:00
Jonathan Kolyer 1f432446f5 VRFS-2795 fixing results display; generating same data 2015-04-04 02:54:58 +00:00
Jonathan Kolyer 325d3d2780 VRFS-2975 cloning findMusician js 2015-04-02 16:00:34 +00:00
Jonathan Kolyer 4f7c43b9d8 VRFS-2795 cloning old search code into new musician_search 2015-04-02 14:52:16 +00:00
Jonathan Kolyer c3ede10f1d merging feature/musician_profile_enhancements 2015-04-02 14:51:33 +00:00
Jonathan Kolyer 0ccf30b023 VRFS-2795 adding result rows 2015-04-02 12:27:20 +00:00
Brian Smith a87c08afe3 Merge branch 'develop' into feature/musician_profile_enhancements 2015-04-01 23:09:51 -04:00
Brian Smith 269519a394 VRFS-2701 wip adding external recordings 2015-04-01 23:09:16 -04:00
Brian Smith 03f94480e7 VRFS-2701 wip adding recording sources 2015-03-31 22:32:41 -04:00
Brian Smith 9d4943d814 VRFS-2701 fixed HTML 2015-03-31 20:42:57 -04:00
Brian Smith 546205b186 VRFS-2701 wip editing presence and samples 2015-03-31 20:35:38 -04:00
Jonathan Kolyer ddc4decfd3 merging feature/musician_profile_enhancements 2015-03-30 06:07:43 +00:00
Brian Smith c9468d0981 Merge branch 'feature/musician_profile_enhancements' of bitbucket.org:jamkazam/jam-cloud into feature/musician_profile_enhancements 2015-03-29 21:22:27 -04:00
Brian Smith b02013846e VRFS-2701 remove error message when username is blank 2015-03-29 21:22:12 -04:00
Brian Smith 83c00ea6e4 merge develop 2015-03-29 10:12:42 -04:00
Brian Smith a0e9dbdd25 VRFS-2701 added callbacks to site validator to highlight invalid usernames and site URLs 2015-03-29 10:06:39 -04:00
Jonathan Kolyer 21322318d8 VRFS-2795 latency ordering 2015-03-26 06:28:38 +00:00
Jonathan Kolyer f3344affaf VRFS-2795 distance sort order 2015-03-26 05:56:43 +00:00
Jonathan Kolyer cc1660d1dc Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-03-26 04:28:09 +00:00
Jonathan Kolyer 9eeb0e454b VRFS-2795 merging with feature/musician_profile_enhancements 2015-03-26 03:31:21 +00:00
Brian Smith 1b89e570e3 Merge branch 'feature/musician_profile_enhancements' of bitbucket.org:jamkazam/jam-cloud into feature/musician_profile_enhancements 2015-03-25 22:20:58 -04:00
Brian Smith 5e6082d1f1 VRFS-2701 integrated site validators 2015-03-25 22:20:43 -04:00
Brian Smith bc98a17786 VRFS-2701 wired up action buttons on samples page 2015-03-23 22:32:04 -04:00
Brian Smith d3cf83db85 VRFS-2701 remove use of template on experience screen 2015-03-23 22:26:36 -04:00
Brian Smith 9face3b3f9 VRFS-2701 wip presence/sample edit 2015-03-23 16:27:36 -04:00
Brian Smith 231f7c69b5 VRFS-2701 wip presence/sample edit 2015-03-23 13:11:28 -04:00
Brian Smith e4aa6609ec VRFS-2974 fixed broadcast widget bug when session is private 2015-03-22 21:13:53 -04:00
Brian Smith 370ca1086e VRFS-2701 VRFS-2699 wip performance samples edit screen 2015-03-21 20:53:38 -04:00
Brian Smith ae71c1b9e9 VRFS-2701 VRFS-2699 wip performance samples edit screen 2015-03-21 10:16:46 -04:00
Brian Smith 96a816f317 merge develop 2015-03-21 10:06:53 -04:00
Brian Smith 9acb235a6d VRFS-2701 VRFS-2699 wip performance samples edit screen 2015-03-21 10:04:46 -04:00
Brian Smith 299caa5b59 VRFS-2701 VRFS-2923 bug fixes on musician profile enhancements / genre selector dialog 2015-03-19 02:50:49 -04:00
Brian Smith 82f35e221f VRFS-2701 fixed cancel and back buttons 2015-03-18 21:42:18 -04:00
Brian Smith 32b36ea28b VRFS-2701 added social media logos to profile page 2015-03-18 08:18:29 -04:00
Brian Smith 8ee9dbaee5 VRFS-2701 added online presence logos, fixed html issue that broke the dialogs 2015-03-18 08:13:33 -04:00
Brian Smith c91fd0cb0e merge develop 2015-03-17 03:10:22 -04:00
Brian Smith c0dcbcce75 VRFS-2701 edit current interests working 2015-03-17 03:08:40 -04:00
Brian Smith 4a8dd75fa2 VRFS-2701 VRFS-2923 wip genre selector dialog 2015-03-15 11:58:20 -04:00
Brian Smith 888c4707b5 VRFS-2701 VRFS-2923 wip genre selector dialog 2015-03-15 11:26:54 -04:00
Brian Smith b91bc09817 Merge branch 'develop' into feature/musician_profile_enhancements 2015-03-15 11:09:21 -04:00
Brian Smith 768f3a7ff0 VRFS-2701 VRFS-2923 wip genre selector dialog 2015-03-15 11:08:49 -04:00
Brian Smith 3d9e80f719 VRFS-2701 use profileUtils for preselecting genres on experience screen 2015-03-13 02:48:09 -04:00
Brian Smith 4e456bce41 VRFS-2701 wip current interests editing 2015-03-13 02:26:09 -04:00
Brian Smith 948174f19a VRFS-2701 musical experience bug fix 2015-03-12 21:34:20 -04:00
Jonathan Kolyer 3330a09128 Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-03-12 04:40:39 +00:00
Jonathan Kolyer 41626860a9 VRFS-2795 replacing musician page with new search filter 2015-03-12 04:39:20 +00:00
Brian Smith f10bdc18f4 VRFS-2701 wip saving musical experience working 2015-03-10 02:02:59 -04:00
Jonathan Kolyer b998d28c37 VRFS-2795 merging with feature/musician_profile_enhancements 2015-03-10 04:33:37 +00:00
Brian Smith d865d0a1fa Merge branch 'develop' into feature/musician_profile_enhancements 2015-03-09 20:25:28 -04:00
Jonathan Kolyer 02b310cbfa Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-03-09 06:14:36 +00:00
Jonathan Kolyer 33f10e3197 VRFS-2795 fixing search specs 2015-03-09 06:13:56 +00:00
Brian Smith f29d370f2b VRFS-2701 wip edit musical experience 2015-03-09 01:36:49 -04:00
Jonathan Kolyer 21c5a212b2 Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-03-09 05:16:41 +00:00
Jonathan Kolyer d3f0bad602 VRFS-2795 filter tests 2015-03-09 05:15:15 +00:00
Brian Smith f1808560ce VRFS-2701 added shells for all new edit screens 2015-03-08 22:57:19 -04:00
Jonathan Kolyer 1cb887b696 VRFS-2795 spec testing 2015-03-08 08:17:36 +00:00
Jonathan Kolyer 03490e06ab Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-03-08 06:14:28 +00:00
Jonathan Kolyer 8bbfdbc013 VRFS-2795 instrument selection; json posting 2015-03-08 06:13:29 +00:00
Jonathan Kolyer 23ccc855d5 VRFS-2795 instrument selection; json posting 2015-03-08 06:07:30 +00:00
Jonathan Kolyer 03321a8166 VRFS-2795 instrument json 2015-03-07 06:19:14 +00:00
Brian Smith 6b16ab3701 Merge branch 'develop' into feature/musician_profile_enhancements 2015-03-06 23:27:42 -05:00
Brian Smith 36a9f1f6a3 VRFS-2854 more session widget feed fixes 2015-03-06 23:16:27 -05:00
Jonathan Kolyer 3549ea117c VRFS-2795 generating json from filter settings 2015-03-06 07:20:14 +00:00
Jonathan Kolyer 2b9bebb438 VRFS-2795 generate JSON from filter settings 2015-03-06 07:03:30 +00:00
Jonathan Kolyer 15559f593f VRFS-2795 sortorder, refactoring 2015-03-06 06:33:38 +00:00
Jonathan Kolyer 3810aecb00 merging feature/musician_profile_enhancements 2015-03-06 05:12:13 +00:00
Jonathan Kolyer 81df46e7a2 VRFS-2795 tweaks 2015-03-06 05:10:29 +00:00
Brian Smith e658e6f4b5 Merge branch 'develop' into feature/musician_profile_enhancements 2015-03-05 02:18:55 -05:00
Brian Smith 58324f35a5 VRFS-2854 fixed bug with hovering over private sessions in feed 2015-03-05 02:16:32 -05:00
Jonathan Kolyer 2e24b58e12 VRFS-2795 instrument selector 2015-03-05 06:49:44 +00:00
Jonathan Kolyer 2380c50779 VRFS-2795 interests and ages selectors 2015-03-05 06:30:20 +00:00
Jonathan Kolyer d514a67be5 VRFS-2795 changed gig/studio vals to match profile enhancements branch 2015-03-05 05:51:26 +00:00
Jonathan Kolyer 02e22ba7f3 VRFS-2795 add interests, studios selectors; some refactoring 2015-03-05 05:50:10 +00:00
Brian Smith 98bf25e360 VRFS-2701 edit profile basics 2015-03-04 02:27:32 -05:00
Brian Smith cba51df5e9 VRFS-2701 edit profile basics 2015-03-04 02:17:12 -05:00
Brian Smith 12b610d2cb Merge branch 'develop' into feature/musician_profile_enhancements 2015-03-04 02:03:22 -05:00
Brian Smith b40e1c6a40 VRFS-2701 edit profile basics 2015-03-04 02:02:48 -05:00
Brian Smith 02f606971b formatting changes 2015-03-03 23:16:13 -05:00
Brian Smith aba65a82bd let caller decide what to display if no genres are found 2015-03-03 21:29:10 -05:00
Jonathan Kolyer 930166b213 Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-03-02 12:00:39 +00:00
Jonathan Kolyer dd651f02bb VRFS-2795 populate skill and gigs 2015-03-02 11:59:39 +00:00
Jonathan Kolyer b3009ec8c0 VRFS-2795 skill drop down 2015-03-02 11:26:15 +00:00
Jonathan Kolyer 1c93f4ef80 Merge branch 'feature/musician_profile_enhancements' into feature/musician_search2 2015-03-02 09:44:05 +00:00
Jonathan Kolyer 0e9f78ccdd VRFS-2795 search filter front end start 2015-03-02 09:41:53 +00:00
Brian Smith 5f2b0b9745 VRFS-2701 added performance sample listings 2015-03-01 13:52:06 -05:00
Jonathan Kolyer bfd3f3fac6 VRFS-2795 filled out JSON_SCHEMA 2015-02-28 22:45:43 +00:00
Jonathan Kolyer 171dcb04f0 VRFS-2795 interests filter 2015-02-28 21:18:43 +00:00
Jonathan Kolyer 88315fcc40 VRFS-2795 instrument and genre filtering tests 2015-02-28 20:37:15 +00:00
Jonathan Kolyer d95279e694 VRFS-2795 merging feature/musician_profile_enhancements 2015-02-28 20:18:56 +00:00
Jonathan Kolyer 2ca3ec6d91 VRFS-2795 merging feature/musician_profile_enhancements 2015-02-28 20:17:16 +00:00
Brian Smith fa7ec522c5 VRFS-2701 refactor / added action links to each section 2015-02-28 02:52:03 -05:00
Brian Smith 4d133e0043 merge develop 2015-02-28 02:24:23 -05:00
Brian Smith a2e28cfe75 VRFS-2701 display online presences on about tab 2015-02-28 02:21:38 -05:00
Jonathan Kolyer 2d8748d4ee VRFS-2795 iterating on tests 2015-02-28 04:24:53 +00:00
Brian Smith 4f9d440f7d merge develop 2015-02-26 22:36:21 -05:00
Brian Smith 80e942d69e VRFS-2701 wip musician profile enhancements 2015-02-26 22:33:53 -05:00
Brian Smith 0c599ca023 Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-25 21:55:57 -05:00
Jonathan Kolyer 2ea1259060 merging feature/musician_profile_enhancements 2015-02-24 06:08:33 +00:00
Jonathan Kolyer a2ef5e9859 VRFS-2795 gig and studio tests 2015-02-24 06:06:40 +00:00
Brian Smith 19fdc2ac9d Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-23 23:13:12 -05:00
Jonathan Kolyer 0f756ba17e VRFS-2795 json_store table 2015-02-23 06:25:04 +00:00
Jonathan Kolyer 83f3d56238 VRFS-2795 musician search first draft 2015-02-23 06:21:36 +00:00
Brian Smith 52c2128721 VRFS-2701 user website should be included for online presence check 2015-02-22 22:52:25 -05:00
Brian Smith c961c1fdc5 fix test 2015-02-22 22:36:15 -05:00
Brian Smith 6667a33e67 VRFS-2701 wip musician profile enhancements 2015-02-22 22:23:59 -05:00
Brian Smith 20ac47a2e1 Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-21 23:36:06 -05:00
Brian Smith 71543d8c15 VRFS-2701 wip for musician profile UI enhancements 2015-02-21 23:35:12 -05:00
Brian Smith 3e473a9ec3 VRFS-2701 wip for musician profile UI enhancements 2015-02-21 23:26:08 -05:00
Brian Smith 6657c810ed Merge branch 'feature/musician_profile_enhancements' of bitbucket.org:jamkazam/jam-cloud into feature/musician_profile_enhancements 2015-02-21 09:20:26 -05:00
Brian Smith 20baeb8bd3 VRFS-2701 wip UI changes for musician profile enhancements 2015-02-21 09:20:11 -05:00
Brian Smith 500af2bc05 merge develop (had lots of migration issues) 2015-02-20 08:35:59 -05:00
Brian Smith 3ca304b612 Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-15 20:57:14 -05:00
Brian Smith 09b4ed09a4 VRFS-2696 edit musician profile API enhancements 2015-02-15 08:23:26 -05:00
Brian Smith 4b97807fc8 fix syntax error 2015-02-14 21:14:13 -05:00
Brian Smith c167f9d09a Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-14 21:04:28 -05:00
Brian Smith 0a1837c4e6 VRFS-2695 VRFS-2696 wip get/update musician profile API changes 2015-02-14 21:02:26 -05:00
Brian Smith a778eaef28 VRFS-2695 wip get user profile API 2015-02-13 22:45:19 -05:00
Brian Smith a09894b974 VRFS-2692 add genre_type to genre_players table 2015-02-13 22:27:12 -05:00
Brian Smith 8d1d1b3f16 Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-13 21:42:40 -05:00
Brian Smith 28ff54b000 VRFS-2695 wip new profile API 2015-02-13 03:16:48 -05:00
Brian Smith 8bd311647a VRFS-2693 performance model/tests 2015-02-13 01:32:55 -05:00
Brian Smith 675dc70f23 Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-13 00:49:44 -05:00
Brian Smith 3096ccaecc Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-11 22:33:54 -05:00
Brian Smith 895fb92365 VRFS-2693 VRFS-2694 performance sample model wip 2015-02-11 22:33:10 -05:00
Brian Smith e3f27eeebc VRFS-2694 user presence model tests 2015-02-10 02:44:16 -05:00
Brian Smith 9ede0912a1 Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-07 23:22:48 -05:00
Brian Smith 33aef8a380 VRFS-2694 user presence model 2015-02-05 03:34:25 -05:00
Brian Smith 3cdcadda94 merge develop 2015-02-03 23:39:21 -05:00
Brian Smith 05ba1ea5d3 VRFS-2694 wip user presence model and spec 2015-02-03 23:37:20 -05:00
Brian Smith 80305c05aa Merge branch 'develop' into feature/musician_profile_enhancements 2015-02-02 19:22:33 -05:00
Brian Smith cce2ce2ffc minor change to ensure current instance session id is used 2015-02-01 17:15:01 -05:00
Brian Smith 79507f5f06 VRFS-2693 VRFS-2694 wip new musician profile models and specs 2015-02-01 08:42:44 -05:00
Brian Smith 8d19e4510e VRFS-2693 VRFS-2694 wip new musician profile models 2015-01-31 16:07:34 -05:00
Brian Smith f521f3ba4c VRFS-2689 new ruby models supporting db schema updates 2015-01-29 00:48:24 -05:00
3845 changed files with 593354 additions and 26244 deletions

4
.gitignore vendored
View File

@ -8,3 +8,7 @@ HTML
coverage
dump.rdb
working.png
ruby/.rails5-gems
web/.rails5-gems
websocket-gateway/.rails5-gems
.pg_data/

1
.ruby-version Normal file
View File

@ -0,0 +1 @@
2.4.1

5
admin/.gitignore vendored
View File

@ -20,4 +20,7 @@ artifacts
*.iml
.idea
BUILD_NUMBER
Gemfile.lock
# Gemfile.lock
Gemfile.alt.lock
.byebug_history
.ruby-version

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings><!--This file was automatically generated by Ruby plugin.
You are allowed to:
1. Remove rake task
2. Add existing rake tasks
To add existing rake tasks automatically delete this file and reload the project.
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>

1
admin/.ruby-version Normal file
View File

@ -0,0 +1 @@
2.4.1

View File

@ -1,56 +1,88 @@
source 'http://rubygems.org'
source 'https://jamjam:blueberryjam@int.jamkazam.com/gems/'
ruby_version = ENV["JAM_RUBY_VERSION"]
ruby_version = "2.3.1" if ruby_version.nil?
ruby ruby_version
devenv = ENV["BUILD_NUMBER"].nil?
if devenv
gem 'jam_db', :path=> "../db/target/ruby_package"
#gem 'jam_db', :path=> "../db/target/ruby_package"
gem 'jampb', :path => "../pb/target/ruby/jampb"
gem 'jam_ruby', :path => "../ruby"
else
gem 'jam_db', "0.1.#{ENV["BUILD_NUMBER"]}"
gem 'jampb', "0.1.#{ENV["BUILD_NUMBER"]}"
gem 'jam_ruby', "0.1.#{ENV["BUILD_NUMBER"]}"
ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] ||= "true"
source 'https://jamjam:blueberryjam@int.jamkazam.com/gems/' do
#gem 'jam_db', "0.1.#{ENV["BUILD_NUMBER"]}"
gem 'jampb', "0.1.#{ENV["BUILD_NUMBER"]}"
gem 'jam_ruby', "0.1.#{ENV["BUILD_NUMBER"]}"
ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] ||= "true"
end
end
gem 'rails', '~> 3.2.11'
gem 'activeadmin_addons'
gem 'json', '1.8.6'
gem 'rails', '= 4.2.8'
gem 'protected_attributes'
gem 'rails-observers'
# PINNED TO SUPPORT BOTH 2.3.1 and 2.4.1 Ruby simultaneously
# This should be the same in ruby/admin/web/websocket-gateway
#######
gem 'nokogiri', '1.10.10' # added to pin before 1.11.0, which requires at leaost ruby 2.5. unpin we go above
gem 'sprockets', '3.6.3' # added to pin before 4.0.0, which requiurse at least ruby 2.5
gem 'fog-brightbox', '0.11.0' # pinned until we are on ruby 2.5; then remove
gem 'faraday', '0.9.2' # pinned untnil we are on ruby 2.5; then remove
gem 'ruby-prof', '0.15.9' # pinned until we are on ruby 2.5; then remove
gem 'rubyzip', '1.2.1' # pinned until we are on ruby 2.5; then remove
gem 'recurly', '2.18.16' # should upgrade to 3.x when we have time to validaate
gem 'icalendar', '2.4.0' # pinned until we are on ruby 2.5; then remove
gem 'email_validator', '1.6.0' # pinned until we are on ruby 2.5, then remove
gem 'redis', '3.3.3' # pinned until we are on 2.5; then remove
gem 'redis-namespace', '1.5.3' # pinned until we are on 2.5; then remove
gem 'oj', '3.1.3' # pinned until we are on 2.5; then remove
gem 'bcrypt', '3.1.15'
gem 'sass-rails', '5.0.7' # compiler mismatch issue between build and www
gem 'sass', '3.5.5 '# compiler mismatch issue between build and www
#######
gem 'bootstrap-sass', '2.0.4'
gem 'bcrypt-ruby', '3.0.1'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'coffee-rails' #, '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
gem 'kickbox'
gem 'uglifier' #, '>= 1.0.3'
gem 'net-ssh'
gem 'sprockets-rails', '2.3.2'
# this version is pinned due to this: https://github.com/gregbell/active_admin/issues/1939
gem 'coffee-script-source', '~> 1.4.0' # ADD THIS LINE, 1.5.0 doesn't compile ActiveAdmin JavaScript files
end
gem 'devise', '3.3.0'
gem 'will_paginate', '3.0.3'
# this version is pinned due to this: https://github.com/gregbell/active_admin/issues/1939
gem 'coffee-script-source' #, '~> 1.4.0' # ADD THIS LINE, 1.5.0 doesn't compile ActiveAdmin JavaScript files
gem 'devise' #, '3.3.0'
gem 'will_paginate' #, '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'carrierwave', '0.9.0'
gem 'carrierwave', '0.11.2' #, '0.9.0'
gem 'carrierwave_direct'
gem 'uuidtools', '2.1.2'
gem 'jquery-rails' # , '2.3.0' # pinned because jquery-ui-rails was split from jquery-rails, but activeadmin doesn't support this gem yet
gem 'jquery-ui-rails', '4.2.1'
gem 'rails3-jquery-autocomplete'
gem 'activeadmin' #, github: 'activeadmin', branch: '0-6-stable'
gem 'jquery-ui-rails'# , '5.0.5' #, '4.2.1'
gem 'jquery-rails'# , '4.1.1' # both this and jquery-ui-rails are pinned; if you unpin, jquery/autocomplete is missing during precomplie
gem 'rails-jquery-autocomplete' # This is the maintained version of rails3-jquery-autocomplete
gem 'activeadmin' #, '1.0.0.pre4'# github: 'activeadmin', branch: 'master'
gem 'activeadmin-searchable_select'
gem 'mime-types', '1.25'
gem 'meta_search'
gem 'fog', "~> 1.18.0"
#gem 'meta_search'
gem 'fog'
gem 'xmlrpc'
gem 'unf', '0.1.3' #optional fog dependency
gem 'country-select'
gem 'aasm', '3.0.16'
gem 'aasm' #, '3.0.16'
gem 'postgres-copy', '0.6.0'
gem 'aws-sdk', '~> 1'
gem 'bugsnag'
gem 'bugsnag', '5.3.2'
gem 'gon'
gem 'cocoon'
gem 'haml-rails'
@ -58,27 +90,41 @@ gem 'resque'
gem 'resque-retry'
gem 'resque-failed-job-mailer'
gem 'resque-lonely_job', '~> 1.0.0'
gem 'eventmachine', '1.0.3'
gem 'eventmachine', '1.2.3'
gem 'amqp', '0.9.8'
gem 'logging-rails', :require => 'logging/rails'
gem 'pg_migrate'
#gem 'logging-rails', :require => 'logging/rails'
#gem 'pg_migrate', '0.1.14'
if ENV["MODERN_OS"] == "1"
gem 'pg', '0.21.0'
else
# on mac, bundle config build.pg --with-cflags="-Wno-error=implicit-function-declaration"
gem 'pg', '0.17.1', :platform => [:mri, :mswin, :mingw]
end
gem 'ruby-protocol-buffers', '1.2.2'
gem 'sendgrid', '1.2.0'
gem 'geokit-rails'
gem 'postgres_ext', '1.0.0'
gem 'postgres_ext' #, '1.0.0'
gem 'resque_mailer'
gem 'rest-client'
gem 'iso-639'
gem 'rubyzip'
gem 'sanitize'
gem 'slim'
gem 'influxdb', '0.1.8'
gem 'influxdb-rails', '0.1.10'
gem 'recurly'
#gem 'influxdb', '0.1.8'
#gem 'influxdb-rails', '0.1.10'
gem 'influxdb', '0.3.14'
gem 'influxdb-rails', '0.1.12'
gem 'sendgrid_toolkit', '>= 1.1.1'
gem 'stripe'
gem 'zip-codes'
gem 'best_in_place' #, github: 'bernat/best_in_place'
gem 'auto_strip_attributes', '2.6.0'
gem 'elasticsearch'
group :libv8 do
gem 'libv8', "~> 3.11.8"
end
gem 'logging', '1.7.2'
#group :libv8 do
# gem 'libv8', "~> 4.5.95"
#end
# To use Jbuilder templates for JSON
@ -99,25 +145,25 @@ end
#gem 'debugger' # not working with 2.1.2p95
group :development, :test do
gem 'capybara'
gem 'rspec-rails', '2.14.2'
gem 'guard-rspec', '0.5.5'
gem 'capybara', '2.13.0'
gem 'rspec-rails' #, '2.14.2'
gem 'jasmine', '1.3.1'
gem 'execjs', '1.4.0'
gem 'therubyracer' #, '0.11.0beta8'
gem 'factory_girl_rails', '4.1.0'
gem 'database_cleaner', '0.7.0'
gem 'launchy'
#gem 'therubyracer' #, '0.11.0beta8'
gem 'factory_girl_rails' # , '4.1.0'
gem 'database_cleaner' #, '0.7.0'
gem 'launchy', '2.4.3' # can unpin when go to ruby 2.4+
gem 'faker', '1.3.0'
gem 'puma'
gem 'test-unit'
end
group :test do
gem 'simplecov', '~> 0.7.1'
gem 'simplecov-rcov'
gem 'capybara-webkit'
gem 'capybara-screenshot', '0.3.22' # 1.0.0 broke compat with rspec. maybe we need newer rspec
gem 'poltergeist'
# gem 'capybara-webkit'
# gem 'capybara-screenshot', '0.3.22' # 1.0.0 broke compat with rspec. maybe we need newer rspec
# gem 'poltergeist'
end
gem 'pry'

172
admin/Gemfile.alt Normal file
View File

@ -0,0 +1,172 @@
source 'http://rubygems.org'
source 'https://jamjam:blueberryjam@int.jamkazam.com/gems/'
ruby_version = ENV["JAM_RUBY_VERSION"]
ruby_version = "2.3.1" if ruby_version.nil?
ruby ruby_version
devenv = ENV["BUILD_NUMBER"].nil?
if devenv
#gem 'jam_db', :path=> "../db/target/ruby_package"
gem 'jampb', :path => "../pb/target/ruby/jampb"
gem 'jam_ruby', :path => "../ruby"
else
source 'https://jamjam:blueberryjam@int.jamkazam.com/gems/' do
#gem 'jam_db', "0.1.#{ENV["BUILD_NUMBER"]}"
gem 'jampb', "0.1.#{ENV["BUILD_NUMBER"]}"
gem 'jam_ruby', "0.1.#{ENV["BUILD_NUMBER"]}"
ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] ||= "true"
end
end
gem 'activeadmin_addons'
gem 'json', '1.8.6'
gem 'rails', '= 4.2.8'
gem 'protected_attributes'
gem 'rails-observers'
# PINNED TO SUPPORT BOTH 2.3.1 and 2.4.1 Ruby simultaneously
# This should be the same in ruby/admin/web/websocket-gateway
#######
gem 'nokogiri', '1.10.10' # added to pin before 1.11.0, which requires at leaost ruby 2.5. unpin we go above
gem 'sprockets', '3.6.3' # added to pin before 4.0.0, which requiurse at least ruby 2.5
gem 'fog-brightbox', '0.11.0' # pinned until we are on ruby 2.5; then remove
gem 'faraday', '0.9.2' # pinned untnil we are on ruby 2.5; then remove
gem 'ruby-prof', '0.15.9' # pinned until we are on ruby 2.5; then remove
gem 'rubyzip', '1.2.1' # pinned until we are on ruby 2.5; then remove
gem 'recurly', '2.18.16' # should upgrade to 3.x when we have time to validaate
gem 'icalendar', '2.4.0' # pinned until we are on ruby 2.5; then remove
gem 'email_validator', '1.6.0' # pinned until we are on ruby 2.5, then remove
gem 'redis', '3.3.3' # pinned until we are on 2.5; then remove
gem 'redis-namespace', '1.5.3' # pinned until we are on 2.5; then remove
gem 'oj', '3.1.3' # pinned until we are on 2.5; then remove
gem 'bcrypt', '3.1.15'
gem 'sass-rails', '5.0.7' # compiler mismatch issue between build and www
gem 'sass', '3.5.5 '# compiler mismatch issue between build and www
#######
gem 'bootstrap-sass', '2.0.4'
gem 'coffee-rails' #, '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'kickbox'
gem 'uglifier' #, '>= 1.0.3'
gem 'net-ssh'
gem 'sprockets-rails', '2.3.2'
# this version is pinned due to this: https://github.com/gregbell/active_admin/issues/1939
gem 'coffee-script-source' #, '~> 1.4.0' # ADD THIS LINE, 1.5.0 doesn't compile ActiveAdmin JavaScript files
gem 'devise' #, '3.3.0'
gem 'will_paginate' #, '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'carrierwave', '0.11.2' #, '0.9.0'
gem 'carrierwave_direct'
gem 'uuidtools', '2.1.2'
gem 'jquery-ui-rails'# , '5.0.5' #, '4.2.1'
gem 'jquery-rails'# , '4.1.1' # both this and jquery-ui-rails are pinned; if you unpin, jquery/autocomplete is missing during precomplie
gem 'rails-jquery-autocomplete' # This is the maintained version of rails3-jquery-autocomplete
gem 'activeadmin' #, '1.0.0.pre4'# github: 'activeadmin', branch: 'master'
gem 'activeadmin-searchable_select'
gem 'mime-types', '1.25'
#gem 'meta_search'
gem 'fog'
gem 'xmlrpc'
gem 'unf', '0.1.3' #optional fog dependency
gem 'country-select'
gem 'aasm' #, '3.0.16'
gem 'postgres-copy', '0.6.0'
gem 'aws-sdk', '~> 1'
gem 'bugsnag', '5.3.2'
gem 'gon'
gem 'cocoon'
gem 'haml-rails'
gem 'resque'
gem 'resque-retry'
gem 'resque-failed-job-mailer'
gem 'resque-lonely_job', '~> 1.0.0'
gem 'eventmachine', '1.2.3'
gem 'amqp', '0.9.8'
#gem 'logging-rails', :require => 'logging/rails'
#gem 'pg_migrate', '0.1.14'
if ENV["MODERN_OS"] == "1"
gem 'pg', '0.21.0'
else
# on mac, bundle config build.pg --with-cflags="-Wno-error=implicit-function-declaration"
gem 'pg', '0.17.1', :platform => [:mri, :mswin, :mingw]
end
gem 'ruby-protocol-buffers', '1.2.2'
gem 'sendgrid', '1.2.0'
gem 'geokit-rails'
gem 'postgres_ext' #, '1.0.0'
gem 'resque_mailer'
gem 'rest-client'
gem 'iso-639'
gem 'sanitize'
gem 'slim'
#gem 'influxdb', '0.1.8'
#gem 'influxdb-rails', '0.1.10'
gem 'influxdb', '0.3.14'
gem 'influxdb-rails', '0.1.12'
gem 'sendgrid_toolkit', '>= 1.1.1'
gem 'stripe'
gem 'zip-codes'
gem 'best_in_place' #, github: 'bernat/best_in_place'
gem 'auto_strip_attributes', '2.6.0'
gem 'elasticsearch'
gem 'logging', '1.7.2'
#group :libv8 do
# gem 'libv8', "~> 4.5.95"
#end
# To use Jbuilder templates for JSON
# gem 'jbuilder'
group :production do
gem 'unicorn'
end
group :package do
gem 'fpm'
end
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
#gem 'debugger' # not working with 2.1.2p95
group :development, :test do
gem 'capybara', '2.13.0'
gem 'rspec-rails' #, '2.14.2'
gem 'jasmine', '1.3.1'
gem 'execjs', '1.4.0'
#gem 'therubyracer' #, '0.11.0beta8'
gem 'factory_girl_rails' # , '4.1.0'
gem 'database_cleaner' #, '0.7.0'
gem 'launchy', '2.4.3' # can unpin when go to ruby 2.4+
gem 'faker', '1.3.0'
gem 'puma'
gem 'test-unit'
end
group :test do
gem 'simplecov', '~> 0.7.1'
gem 'simplecov-rcov'
# gem 'capybara-webkit'
# gem 'capybara-screenshot', '0.3.22' # 1.0.0 broke compat with rspec. maybe we need newer rspec
# gem 'poltergeist'
end
gem 'pry'
gem 'pry-remote'
gem 'pry-stack_explorer'
#gem 'pry-debugger'

799
admin/Gemfile.lock Normal file
View File

@ -0,0 +1,799 @@
PATH
remote: ../pb/target/ruby/jampb
specs:
jampb (0.1.1)
PATH
remote: ../ruby
specs:
jam_ruby (0.1.1)
GEM
remote: http://rubygems.org/
remote: https://jamjam:blueberryjam@int.jamkazam.com/gems/
specs:
CFPropertyList (2.3.6)
aasm (5.1.1)
concurrent-ruby (~> 1.0)
actionmailer (4.2.8)
actionpack (= 4.2.8)
actionview (= 4.2.8)
activejob (= 4.2.8)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.8)
actionview (= 4.2.8)
activesupport (= 4.2.8)
rack (~> 1.6)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (4.2.8)
activesupport (= 4.2.8)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
active_material (1.4.2)
activeadmin (1.4.3)
arbre (>= 1.1.1)
coffee-rails
formtastic (~> 3.1)
formtastic_i18n
inherited_resources (>= 1.9.0)
jquery-rails (>= 4.2.0)
kaminari (>= 0.15)
railties (>= 4.2, < 5.3)
ransack (>= 1.8.7)
sass (~> 3.1)
sprockets (< 4.1)
activeadmin-searchable_select (1.4.0)
activeadmin (>= 1.x, < 3)
jquery-rails (>= 3.0, < 5)
select2-rails (~> 4.0)
activeadmin_addons (1.7.1)
active_material
railties
require_all (~> 1.5)
sass
select2-rails (~> 4.0)
xdan-datetimepicker-rails (~> 2.5.1)
activejob (4.2.8)
activesupport (= 4.2.8)
globalid (>= 0.3.0)
activemodel (4.2.8)
activesupport (= 4.2.8)
builder (~> 3.1)
activerecord (4.2.8)
activemodel (= 4.2.8)
activesupport (= 4.2.8)
arel (~> 6.0)
activesupport (4.2.8)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
aliyun-sdk (0.8.0)
nokogiri (~> 1.6)
rest-client (~> 2.0)
amq-client (0.9.12)
amq-protocol (>= 1.2.0)
eventmachine
amq-protocol (2.3.2)
amqp (0.9.8)
amq-client (~> 0.9.5)
amq-protocol (>= 0.9.4)
eventmachine
arbre (1.2.1)
activesupport (>= 3.0.0)
arel (6.0.4)
arr-pm (0.0.10)
cabin (> 0)
auto_strip_attributes (2.6.0)
activerecord (>= 4.0)
aws-sdk (1.67.0)
aws-sdk-v1 (= 1.67.0)
aws-sdk-v1 (1.67.0)
json (~> 1.4)
nokogiri (~> 1)
backports (3.20.2)
bcrypt (3.1.15)
best_in_place (3.1.1)
actionpack (>= 3.2)
railties (>= 3.2)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
bootstrap-sass (2.0.4.0)
bootstrap-will_paginate (0.0.6)
will_paginate
bugsnag (5.3.2)
builder (3.2.4)
cabin (0.9.0)
capybara (2.13.0)
addressable
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
carrierwave (0.11.2)
activemodel (>= 3.2.0)
activesupport (>= 3.2.0)
json (>= 1.7)
mime-types (>= 1.16)
mimemagic (>= 0.3.0)
carrierwave_direct (1.0.0)
carrierwave (~> 0.11)
fog-aws
cause (0.1)
childprocess (0.9.0)
ffi (~> 1.0, >= 1.0.11)
clamp (1.0.1)
cocoon (1.2.15)
coderay (1.1.3)
coffee-rails (4.2.2)
coffee-script (>= 2.2.0)
railties (>= 4.0.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.12.2)
concurrent-ruby (1.1.8)
country-select (1.2.1)
crass (1.0.6)
database_cleaner (1.99.0)
debug_inspector (1.0.0)
devise (4.7.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
diff-lcs (1.4.4)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.6)
elasticsearch (7.4.0)
elasticsearch-api (= 7.4.0)
elasticsearch-transport (= 7.4.0)
elasticsearch-api (7.4.0)
multi_json
elasticsearch-transport (7.4.0)
faraday
multi_json
email_validator (1.6.0)
activemodel
erubis (2.7.0)
et-orbi (1.2.4)
tzinfo
eventmachine (1.2.3)
excon (0.79.0)
execjs (1.4.0)
multi_json (~> 1.0)
factory_girl (4.9.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.9.0)
factory_girl (~> 4.9.0)
railties (>= 3.0.0)
faker (1.3.0)
i18n (~> 0.5)
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
ffi (1.12.2)
fission (0.5.0)
CFPropertyList (~> 2.2)
fog (1.41.0)
fog-aliyun (>= 0.1.0)
fog-atmos
fog-aws (>= 0.6.0)
fog-brightbox (~> 0.4)
fog-cloudatcost (~> 0.1.0)
fog-core (~> 1.45)
fog-digitalocean (>= 0.3.0)
fog-dnsimple (~> 1.0)
fog-dynect (~> 0.0.2)
fog-ecloud (~> 0.1)
fog-google (<= 0.1.0)
fog-internet-archive
fog-joyent
fog-json
fog-local
fog-openstack
fog-powerdns (>= 0.1.1)
fog-profitbricks
fog-rackspace
fog-radosgw (>= 0.0.2)
fog-riakcs
fog-sakuracloud (>= 0.0.4)
fog-serverlove
fog-softlayer
fog-storm_on_demand
fog-terremark
fog-vmfusion
fog-voxel
fog-vsphere (>= 0.4.0)
fog-xenserver
fog-xml (~> 0.1.1)
ipaddress (~> 0.5)
json (>= 1.8, < 2.0)
fog-aliyun (0.3.19)
aliyun-sdk (~> 0.8.0)
fog-core
fog-json
ipaddress (~> 0.8)
xml-simple (~> 1.1)
fog-atmos (0.1.0)
fog-core
fog-xml
fog-aws (2.0.1)
fog-core (~> 1.38)
fog-json (~> 1.0)
fog-xml (~> 0.1)
ipaddress (~> 0.8)
fog-brightbox (0.11.0)
fog-core (~> 1.22)
fog-json
inflecto (~> 0.0.2)
fog-cloudatcost (0.1.2)
fog-core (~> 1.36)
fog-json (~> 1.0)
fog-xml (~> 0.1)
ipaddress (~> 0.8)
fog-core (1.45.0)
builder
excon (~> 0.58)
formatador (~> 0.2)
fog-digitalocean (0.4.0)
fog-core
fog-json
fog-xml
ipaddress (>= 0.5)
fog-dnsimple (1.0.0)
fog-core (~> 1.38)
fog-json (~> 1.0)
fog-dynect (0.0.3)
fog-core
fog-json
fog-xml
fog-ecloud (0.3.0)
fog-core
fog-xml
fog-google (0.1.0)
fog-core
fog-json
fog-xml
fog-internet-archive (0.0.2)
fog-core
fog-json
fog-xml
fog-joyent (0.0.1)
fog-core (~> 1.42)
fog-json (>= 1.0)
fog-json (1.2.0)
fog-core
multi_json (~> 1.10)
fog-local (0.6.0)
fog-core (>= 1.27, < 3.0)
fog-openstack (0.3.10)
fog-core (>= 1.45, <= 2.1.0)
fog-json (>= 1.0)
ipaddress (>= 0.8)
fog-powerdns (0.2.0)
fog-core
fog-json
fog-xml
fog-profitbricks (4.1.1)
fog-core (~> 1.42)
fog-json (~> 1.0)
fog-rackspace (0.1.6)
fog-core (>= 1.35)
fog-json (>= 1.0)
fog-xml (>= 0.1)
ipaddress (>= 0.8)
fog-radosgw (0.0.5)
fog-core (>= 1.21.0)
fog-json
fog-xml (>= 0.0.1)
fog-riakcs (0.1.0)
fog-core
fog-json
fog-xml
fog-sakuracloud (1.7.5)
fog-core
fog-json
fog-serverlove (0.1.2)
fog-core
fog-json
fog-softlayer (1.1.4)
fog-core
fog-json
fog-storm_on_demand (0.1.1)
fog-core
fog-json
fog-terremark (0.1.0)
fog-core
fog-xml
fog-vmfusion (0.1.0)
fission
fog-core
fog-voxel (0.1.0)
fog-core
fog-xml
fog-vsphere (3.5.0)
fog-core
rbvmomi (>= 1.9, < 3)
fog-xenserver (1.0.0)
fog-core
fog-xml
xmlrpc
fog-xml (0.1.3)
fog-core
nokogiri (>= 1.5.11, < 2.0.0)
formatador (0.2.5)
formtastic (3.1.5)
actionpack (>= 3.2.13)
formtastic_i18n (0.6.0)
fpm (1.12.0)
arr-pm (~> 0.0.10)
backports (>= 2.6.2)
cabin (>= 0.6.0)
childprocess (< 1.0.0)
clamp (~> 1.0.0)
ffi (~> 1.12.0)
git (>= 1.3.0, < 2.0)
json (>= 1.7.7, < 3.0)
pleaserun (~> 0.0.29)
ruby-xz (~> 0.2.3)
stud
fugit (1.4.2)
et-orbi (~> 1.1, >= 1.1.8)
raabro (~> 1.4)
geokit (1.13.1)
geokit-rails (2.3.2)
geokit (~> 1.5)
rails (>= 3.0)
git (1.8.1)
rchardet (~> 1.8)
globalid (0.4.2)
activesupport (>= 4.2.0)
gon (6.4.0)
actionpack (>= 3.0.20)
i18n (>= 0.7)
multi_json
request_store (>= 1.0)
haml (5.2.1)
temple (>= 0.8.0)
tilt
haml-rails (1.0.0)
actionpack (>= 4.0.1)
activesupport (>= 4.0.1)
haml (>= 4.0.6, < 6.0)
html2haml (>= 1.0.1)
railties (>= 4.0.1)
has_scope (0.7.2)
actionpack (>= 4.1)
activesupport (>= 4.1)
html2haml (2.2.0)
erubis (~> 2.7.0)
haml (>= 4.0, < 6)
nokogiri (>= 1.6.0)
ruby_parser (~> 3.5)
http-accept (1.7.0)
http-cookie (1.0.3)
domain_name (~> 0.5)
httparty (0.16.2)
multi_xml (>= 0.5.2)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
icalendar (2.4.0)
inflecto (0.0.2)
influxdb (0.3.14)
cause
json
influxdb-rails (0.1.12)
influxdb (~> 0.3.0)
railties
inherited_resources (1.9.0)
actionpack (>= 4.2, < 5.3)
has_scope (~> 0.6)
railties (>= 4.2, < 5.3)
responders
insist (1.0.0)
io-like (0.3.1)
ipaddress (0.8.3)
iso-639 (0.3.5)
jasmine (1.3.1)
jasmine-core (~> 1.3.1)
rack (~> 1.0)
rspec (>= 1.3.1)
selenium-webdriver (>= 0.1.3)
jasmine-core (1.3.1)
jquery-rails (4.4.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
jquery-ui-rails (6.0.1)
railties (>= 3.2.16)
json (1.8.6)
kaminari (1.2.1)
activesupport (>= 4.1.0)
kaminari-actionview (= 1.2.1)
kaminari-activerecord (= 1.2.1)
kaminari-core (= 1.2.1)
kaminari-actionview (1.2.1)
actionview
kaminari-core (= 1.2.1)
kaminari-activerecord (1.2.1)
activerecord
kaminari-core (= 1.2.1)
kaminari-core (1.2.1)
kgio (2.11.3)
kickbox (2.0.4)
faraday (~> 0.9)
json (>= 1.8)
launchy (2.4.3)
addressable (~> 2.3)
little-plugger (1.1.4)
logging (1.7.2)
little-plugger (>= 1.1.3)
loofah (2.9.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
mini_mime (>= 0.1.1)
method_source (1.0.0)
mime-types (1.25)
mimemagic (0.3.5)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
minitest (5.14.3)
mono_logger (1.1.0)
multi_json (1.15.0)
multi_xml (0.6.0)
multipart-post (2.1.1)
mustache (0.99.8)
net-ssh (6.1.0)
netrc (0.11.0)
nio4r (2.5.2)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
nokogumbo (2.0.4)
nokogiri (~> 1.8, >= 1.8.4)
oj (3.1.3)
optimist (3.0.1)
orm_adapter (0.5.0)
pg (0.17.1)
pg_array_parser (0.0.9)
pleaserun (0.0.31)
cabin (> 0)
clamp
dotenv
insist
mustache (= 0.99.8)
stud
postgres-copy (0.6.0)
activerecord (>= 3.0.0)
pg
rails (>= 3.0.0)
responders
postgres_ext (3.0.1)
activerecord (~> 4.0)
arel (>= 4.0.1)
pg_array_parser (~> 0.0.9)
power_assert (2.0.0)
protected_attributes (1.1.4)
activemodel (>= 4.0.1, < 5.0)
pry (0.14.0)
coderay (~> 1.1)
method_source (~> 1.0)
pry-remote (0.1.8)
pry (~> 0.9)
slop (~> 3.0)
pry-stack_explorer (0.4.12)
binding_of_caller (~> 0.7)
pry (~> 0.13)
public_suffix (4.0.6)
puma (5.2.1)
nio4r (~> 2.0)
raabro (1.4.0)
rack (1.6.13)
rack-protection (1.5.5)
rack
rack-test (0.6.3)
rack (>= 1.0)
rails (4.2.8)
actionmailer (= 4.2.8)
actionpack (= 4.2.8)
actionview (= 4.2.8)
activejob (= 4.2.8)
activemodel (= 4.2.8)
activerecord (= 4.2.8)
activesupport (= 4.2.8)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.8)
sprockets-rails
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.9)
activesupport (>= 4.2.0, < 5.0)
nokogiri (~> 1.6)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.3.0)
loofah (~> 2.3)
rails-jquery-autocomplete (1.0.5)
rails (>= 3.2)
rails-observers (0.1.5)
activemodel (>= 4.0)
railties (4.2.8)
actionpack (= 4.2.8)
activesupport (= 4.2.8)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
raindrops (0.19.1)
rake (13.0.3)
ransack (1.8.10)
actionpack (>= 3.0, < 5.2)
activerecord (>= 3.0, < 5.2)
activesupport (>= 3.0, < 5.2)
i18n
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rbvmomi (2.4.1)
builder (~> 3.0)
json (>= 1.8)
nokogiri (~> 1.5)
optimist (~> 3.0)
rchardet (1.8.0)
recurly (2.18.16)
redis (3.3.3)
redis-namespace (1.5.3)
redis (~> 3.0, >= 3.0.4)
request_store (1.5.0)
rack (>= 1.4)
require_all (1.5.0)
responders (2.4.1)
actionpack (>= 4.2.0, < 6.0)
railties (>= 4.2.0, < 6.0)
resque (1.27.4)
mono_logger (~> 1.0)
multi_json (~> 1.0)
redis-namespace (~> 1.3)
sinatra (>= 0.9.2)
vegas (~> 0.1.2)
resque-failed-job-mailer (0.0.3)
resque-lonely_job (1.0.2)
resque (>= 1.2)
resque-retry (1.7.4)
resque (>= 1.25, < 3.0)
resque-scheduler (~> 4.0)
resque-scheduler (4.4.0)
mono_logger (~> 1.0)
redis (>= 3.3)
resque (>= 1.26)
rufus-scheduler (~> 3.2)
resque_mailer (2.4.3)
actionmailer (>= 3.0)
activesupport (>= 3.0)
rest-client (2.1.0)
http-accept (>= 1.7.0, < 2.0)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rspec (3.10.0)
rspec-core (~> 3.10.0)
rspec-expectations (~> 3.10.0)
rspec-mocks (~> 3.10.0)
rspec-core (3.10.1)
rspec-support (~> 3.10.0)
rspec-expectations (3.10.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.10.0)
rspec-mocks (3.10.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.10.0)
rspec-rails (4.0.2)
actionpack (>= 4.2)
activesupport (>= 4.2)
railties (>= 4.2)
rspec-core (~> 3.10)
rspec-expectations (~> 3.10)
rspec-mocks (~> 3.10)
rspec-support (~> 3.10)
rspec-support (3.10.2)
ruby-prof (0.15.9)
ruby-protocol-buffers (1.2.2)
ruby-xz (0.2.3)
ffi (~> 1.9)
io-like (~> 0.3)
ruby_parser (3.15.1)
sexp_processor (~> 4.9)
rubyzip (1.2.1)
rufus-scheduler (3.7.0)
fugit (~> 1.1, >= 1.1.6)
sanitize (5.2.3)
crass (~> 1.0.2)
nokogiri (>= 1.8.0)
nokogumbo (~> 2.0)
sass (3.5.5)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sass-rails (5.0.7)
railties (>= 4.0.0, < 6)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
select2-rails (4.0.13)
selenium-webdriver (3.14.0)
childprocess (~> 0.5)
rubyzip (~> 1.2)
sendgrid (1.2.0)
json
sendgrid_toolkit (1.4.0)
httparty (>= 0.7.6)
sexp_processor (4.15.2)
simplecov (0.7.1)
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
simplecov-rcov (0.2.3)
simplecov (>= 0.4.1)
sinatra (1.4.8)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
slim (4.1.0)
temple (>= 0.7.6, < 0.9)
tilt (>= 2.0.6, < 2.1)
slop (3.6.0)
sprockets (3.6.3)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (2.3.2)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (>= 2.8, < 4.0)
stripe (5.29.1)
stud (0.0.23)
temple (0.8.2)
test-unit (3.4.0)
power_assert
thor (1.1.0)
thread_safe (0.3.6)
tilt (2.0.10)
tzinfo (1.2.9)
thread_safe (~> 0.1)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
unf (0.1.3)
unf_ext
unf_ext (0.0.7.7)
unicorn (5.8.0)
kgio (~> 2.6)
raindrops (~> 0.7)
uuidtools (2.1.2)
vegas (0.1.11)
rack (>= 1.0.0)
warden (1.2.7)
rack (>= 1.0)
webrick (1.7.0)
will_paginate (3.3.0)
xdan-datetimepicker-rails (2.5.4)
jquery-rails
rails (>= 3.2.16)
xml-simple (1.1.8)
xmlrpc (0.3.2)
webrick
xpath (2.1.0)
nokogiri (~> 1.3)
zip-codes (0.2.1)
PLATFORMS
ruby
DEPENDENCIES
aasm
activeadmin
activeadmin-searchable_select
activeadmin_addons
amqp (= 0.9.8)
auto_strip_attributes (= 2.6.0)
aws-sdk (~> 1)
bcrypt (= 3.1.15)
best_in_place
bootstrap-sass (= 2.0.4)
bootstrap-will_paginate (= 0.0.6)
bugsnag (= 5.3.2)
capybara (= 2.13.0)
carrierwave (= 0.11.2)
carrierwave_direct
cocoon
coffee-rails
coffee-script-source
country-select
database_cleaner
devise
elasticsearch
email_validator (= 1.6.0)
eventmachine (= 1.2.3)
execjs (= 1.4.0)
factory_girl_rails
faker (= 1.3.0)
faraday (= 0.9.2)
fog
fog-brightbox (= 0.11.0)
fpm
geokit-rails
gon
haml-rails
icalendar (= 2.4.0)
influxdb (= 0.3.14)
influxdb-rails (= 0.1.12)
iso-639
jam_ruby!
jampb!
jasmine (= 1.3.1)
jquery-rails
jquery-ui-rails
json (= 1.8.6)
kickbox
launchy (= 2.4.3)
logging (= 1.7.2)
mime-types (= 1.25)
net-ssh
nokogiri (= 1.10.10)
oj (= 3.1.3)
pg (= 0.17.1)
postgres-copy (= 0.6.0)
postgres_ext
protected_attributes
pry
pry-remote
pry-stack_explorer
puma
rails (= 4.2.8)
rails-jquery-autocomplete
rails-observers
recurly (= 2.18.16)
redis (= 3.3.3)
redis-namespace (= 1.5.3)
resque
resque-failed-job-mailer
resque-lonely_job (~> 1.0.0)
resque-retry
resque_mailer
rest-client
rspec-rails
ruby-prof (= 0.15.9)
ruby-protocol-buffers (= 1.2.2)
rubyzip (= 1.2.1)
sanitize
sass (= 3.5.5)
sass-rails (= 5.0.7)
sendgrid (= 1.2.0)
sendgrid_toolkit (>= 1.1.1)
simplecov (~> 0.7.1)
simplecov-rcov
slim
sprockets (= 3.6.3)
sprockets-rails (= 2.3.2)
stripe
test-unit
uglifier
unf (= 0.1.3)
unicorn
uuidtools (= 2.1.2)
will_paginate
xmlrpc
zip-codes
RUBY VERSION
ruby 2.4.1p111
BUNDLED WITH
1.17.3

View File

@ -8,3 +8,12 @@ Immediately the focus is on using active_scaffolding that provides visibility in
Overtime we can add more administrative functions and views, but initially this is one of the easiest ways to give 'powertools' behind the scenes with an entirely separate authentication model.
Examples of:
* Button on Show Page of Item: 'Send Client Update Notice' in jam_ruby_artifact_updates.rb
* Batch Updates in View page: onboarding.rb (CurrentlyOnboarding)
Stuff that is probably breaky:
activeadmin_addons https://github.com/platanus/activeadmin_addons

View File

@ -1,3 +1,4 @@
#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
@ -5,3 +6,9 @@
require File.expand_path('../config/application', __FILE__)
JamAdmin::Application.load_tasks
require 'jam_ruby'
spec = Gem::Specification.find_by_name 'jam_ruby'
rakefile = "#{spec.gem_dir}/Rakefile"
load rakefile

View File

@ -0,0 +1,161 @@
module AdCampaignsHelper
def self.spacer(val, total)
percentage = ((val * 100) / total.to_f).round(1).to_s
('%-5.5s' % percentage).gsub(' ', '&nbsp;') + '%&nbsp;-&nbsp;' + val.to_s
end
def self.cac(campaign)
if campaign.subscribed && campaign.subscribed > 0
(campaign.spend/campaign.subscribed.to_f).round(2)
end
end
def self.cac_divide_by_ltv(campaign)
customer_ltv = GenericState.singleton.customer_ltv
if cac(campaign) && customer_ltv && customer_ltv > 0
return (cac(campaign)/customer_ltv.to_f).round(2)
end
end
def self.format_number(num)
if num
num.to_s.reverse.scan(/\d{3}|.+/).join(",").reverse
end
end
end
ActiveAdmin.register JamRuby::AdCampaign, as: 'AdCampaign' do
menu :label => 'Ad Campaigns', :parent => 'Reports'
before_filter :skip_sidebar!, :only => :index
config.batch_actions = false
config.clear_action_items!
config.sort_order = "users.origin_utm_campaign DESC"
config.per_page = 100
config.paginate = true
index do
div do
render 'customer_ltv'
end
column "Campaign" do |campaign|
campaign.origin_utm_campaign
end
column "Medium" do |campaign|
campaign.origin_utm_medium
end
column "End Date" do |campaign|
best_in_place campaign, :end_date, as: :date, url: inplace_update_admin_ad_campaigns_path(campaign: campaign.origin_utm_campaign, medium: campaign.origin_utm_medium), param: 'ad_campaign', classes: 'ac_bip'
end
column "Hard Date" do |campaign|
(campaign.end_date + 45.days).strftime('%Y-%m-%d') if campaign.end_date.present?
end
column "Subscribed" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.subscribed, campaign.joined))
end
column "Spend" do |campaign|
best_in_place campaign, :spend, as: :input, url: inplace_update_admin_ad_campaigns_path(campaign: campaign.origin_utm_campaign, medium: campaign.origin_utm_medium), param: 'ad_campaign', display_with: Proc.new{|spend| number_to_currency(spend) }, classes: 'ac_bip'
end
column "CAC" do |campaign|
number_to_currency(AdCampaignsHelper.cac(campaign)) if AdCampaignsHelper.cac(campaign) && AdCampaignsHelper.cac(campaign) > 0
end
column "LTV/CAC" do |campaign|
AdCampaignsHelper.cac_divide_by_ltv(campaign)
end
column "Referred" do |campaign|
best_in_place campaign, :referred, as: :input, url: inplace_update_admin_ad_campaigns_path(campaign: campaign.origin_utm_campaign, medium: campaign.origin_utm_medium), param: 'ad_campaign', display_with: Proc.new{|referred| AdCampaignsHelper.format_number(referred) }, classes: 'ac_bip'
end
column "Signed Up" do |campaign|
if campaign.referred && campaign.referred > 0
raw(AdCampaignsHelper.spacer(campaign.joined, campaign.referred))
else
raw("? - #{campaign.joined}")
end
end
column "Downloaded" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.downloaded, campaign.joined))
end
column "Ran Client" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.ran_client, campaign.joined))
end
column "FTUE" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.ftue, campaign.joined))
end
column "Any Session" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.any_session, campaign.joined))
end
column "2+ Session" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.real_session, campaign.joined))
end
column "Good Session" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.good_session, campaign.joined))
end
column "Invited" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.invited, campaign.joined))
end
column "Friended" do |campaign|
raw(AdCampaignsHelper.spacer(campaign.friended, campaign.joined))
end
column "Platinum" do |campaign|
campaign.platinum
end
column "Gold" do |campaign|
campaign.gold
end
column "Silver" do |campaign|
campaign.silver
end
end
controller do
def scoped_collection
User.select("users.origin_utm_campaign,
users.origin_utm_medium, COUNT(users.id) AS joined,
COUNT(users.first_downloaded_client_at) AS downloaded,
COUNT(users.first_subscribed_at) AS subscribed,
COUNT(users.first_ran_client_at) AS ran_client,
COUNT(users.first_certified_gear_at) AS ftue,
COUNT(users.first_music_session_at) AS any_session,
COUNT(users.first_real_music_session_at) AS real_session,
COUNT(users.first_good_music_session_at) AS good_session,
COUNT(users.first_invited_at) AS invited,
COUNT(users.first_friended_at) AS friended,
COUNT(CASE WHEN users.first_subscribed_plan_code = 'jamsubplatinum' OR users.first_subscribed_plan_code = 'jamsubplatinumyearly' THEN users.first_subscribed_plan_code END) AS platinum,
COUNT(CASE WHEN users.first_subscribed_plan_code = 'jamsubgold' OR users.first_subscribed_plan_code = 'jamsubgoldyearly' THEN users.first_subscribed_plan_code END) AS gold,
COUNT(CASE WHEN users.first_subscribed_plan_code = 'jamsubsilver' OR users.first_subscribed_plan_code = 'jamsubsilveryearly' THEN users.first_subscribed_plan_code END) AS silver,
ad_campaigns.id,
COALESCE(MAX(ad_campaigns.referred), NULL) as referred,
COALESCE(MAX(ad_campaigns.end_date), NULL) AS end_date,
COALESCE(MAX(ad_campaigns.spend), 0) AS spend").joins("
LEFT JOIN ad_campaigns ON users.origin_utm_campaign = ad_campaigns.campaign
AND users.origin_utm_medium = ad_campaigns.medium").where("
users.origin_utm_campaign IS NOT NULL AND users.origin_utm_medium IS NOT NULL AND users.origin_utm_source = 'paid'").group("
ad_campaigns.id, users.origin_utm_campaign, users.origin_utm_medium").order("
users.origin_utm_campaign DESC")
end
def permitted_params
params.permit :campaign, :medium, :_method, ad_campaign: [:spend, :referred, :end_date]
end
end
collection_action :inplace_update, method: :put do
campaign = permitted_params[:campaign]
medium = permitted_params[:medium]
@ad_campaign = JamRuby::AdCampaign.where(campaign: campaign, medium: medium).first_or_create
respond_to do |format|
if @ad_campaign.update_attributes(permitted_params[:ad_campaign])
format.json { head :ok }
else
format.json{ render :json => @ad_campaign.errors.full_messages, :status => :unprocessable_entity }
end
end
end
end

View File

@ -0,0 +1,43 @@
# module AdCampaignsHelper
# def campaign_brought_in_users(campaign, medium)
# User.where(origin_utm_campaign: campaign, origin_utm_medium: medium)
# end
# end
# ActiveAdmin.register JamRuby::AdCampaign do
# permit_params :campaign, :medium, :spend
# end
# ActiveAdmin.register_page "Ad campaigns" do
# menu parent: 'Reports'
# content :title => "Paid Advertising Report" do
# table_for User.select("users.origin_utm_campaign, users.origin_utm_medium, COALESCE(MAX(ad_campaigns.end_date), NULL) AS end_date, COALESCE(MAX(ad_campaigns.spend), NULL) AS spend").joins("LEFT JOIN ad_campaigns ON users.origin_utm_campaign = ad_campaigns.campaign AND users.origin_utm_medium = ad_campaigns.medium").group("ad_campaigns.id, users.origin_utm_campaign, users.origin_utm_medium") do
# column "Campaign" do |campaign|
# campaign.origin_utm_campaign
# end
# column "Medium" do |campaign|
# campaign.origin_utm_medium
# end
# column "End Date" do |campaign|
# campaign.end_date
# end
# column "Hard Date" do |campaign|
# campaign.end_date + 45.days if campaign.end_date.present?
# end
# column "Subscribed" do |campaign|
# end
# column "Spend" do |campaign|
# best_in_place campaign, :spend, as: :input, url: admin_ad_campaigns_update_path(campaign: campaign.origin_utm_campaign, medium: campaign.origin_utm_medium), param: 'ad_campaign'
# end
# end
# end
# page_action :update, method: :put do
# campaign = params[:campaign]
# medium = params[:medium]
# ad_campaign = AdCampaign.where(campaign: campaign, medium: medium).first_or_initialize
# ad_campaign.attributes = params["ad_campaign"]
# ad_campaign.save!
# respond_with_bip(ad_campaign)
# end
# end

View File

@ -0,0 +1,108 @@
class AffiliateCohortsHelper
def self.percentage(opTop, opBottom)
"#{(opTop/opBottom * 100).round(1)}%"
end
def self.quarter(date)
case date.month
when 1, 2, 3 then 0
when 4, 5, 6 then 1
when 7, 8, 9 then 2
when 10, 11, 12 then 3
end
end
def self.payments_for_months(affiliate_partner, year, start_month, end_month)
JamRuby::AffiliateMonthlyPayment.where(
"affiliate_partner_id = ? AND month >= ? AND month <= ? AND year = ?",
affiliate_partner.id,
start_month,
end_month,
year
).order('month DESC')
end
def self.payments_for_quarter(affiliate_partner, year, quarter)
JamRuby::AffiliateQuarterlyPayment.where(
"affiliate_partner_id = ? AND quarter = ? AND year = ?",
affiliate_partner.id,
quarter,
year
).order('quarter DESC')
end
def self.all_time_payments(affiliate_partner)
JamRuby::AffiliateQuarterlyPayment.where(
"affiliate_partner_id = ?", affiliate_partner.id
)
end
def self.current_quarter_payments(affiliate_partner)
AffiliateCohortsHelper.payments_for_quarter(affiliate_partner,
Date.today.year,
AffiliateCohortsHelper.quarter(Date.today)
)
end
def self.current_quarter_monthly_payments(affiliate_partner)
AffiliateCohortsHelper.payments_for_months(affiliate_partner,
Date.today.beginning_of_quarter.year,
Date.today.beginning_of_quarter.month,
Date.today.end_of_quarter.month
)
end
def self.prior_quarter_payments(affiliate_partner)
prev_quarter_start = (Date.today.beginning_of_quarter - 1.day).beginning_of_quarter
prev_quarter = AffiliateCohortsHelper.quarter(prev_quarter_start)
AffiliateCohortsHelper.payments_for_quarter(affiliate_partner,
prev_quarter_start.year,
prev_quarter
)
end
def self.prior_quarter_payable_amount(affiliate_partner)
total = AffiliateCohortsHelper.prior_quarter_payments(affiliate_partner).inject(0.0){ | sum, payment |
sum += payment.due_amount_in_cents }
paid = AffiliateCohortsHelper.prior_quarter_payments(affiliate_partner).where(paid: false).inject(0.0){ | sum, payment |
sum += payment.due_amount_in_cents }
(total - paid) / 100.0
end
end
ActiveAdmin.register_page "Affiliate Cohorts" do
menu parent: 'Reports'
content :title => "Affiliate Cohorts" do
table_for AffiliatePartner.includes(:partner_user).all do
column 'Affiliate Name' do |partner|
link_to partner.partner_name, admin_affiliate_path(partner)
end
column 'Affiliate ID', :id
column 'Affiliate Email', Proc.new{ | partner | partner&.partner_user&.email}
column 'Affiliate Paypal', Proc.new{| partner | partner.paypal_id }
column 'All Time Users', :referral_user_count
column 'All Time Subscribers', Proc.new{ | partner | partner.subscribed_user_referrals.size }
column 'All Time Subscriber Conversion Rate', Proc.new{ | partner |
AffiliateCohortsHelper.percentage(partner.subscribed_user_referrals.size.to_f, partner.referral_user_count.to_f) }
column 'All Time Revenues', Proc.new{ | partner |
number_to_currency(AffiliateCohortsHelper.all_time_payments(partner).inject(0.0){ | sum, payment | sum += payment.due_amount_in_cents } / 100.0)
}
column 'Current Quarter Revenues', Proc.new{ | partner |
number_to_currency(AffiliateCohortsHelper.current_quarter_payments(partner).inject(0.0){ | sum, payment | sum += payment.due_amount_in_cents } / 100.0 )
}
column 'Current Quarter Revenues by Month', Proc.new{ | partner |
AffiliateCohortsHelper.current_quarter_monthly_payments(partner).each do |monthly_payment|
li "#{Date::MONTHNAMES[monthly_payment.month]} #{monthly_payment.year} - #{number_to_currency(monthly_payment.due_amount_in_cents.to_f / 100.0)}"
end
''.html_safe
}
column 'Prior Quarter Revenues', Proc.new{ | partner |
number_to_currency(AffiliateCohortsHelper.prior_quarter_payments(partner).inject(0.0){ | sum, payment | sum += payment.due_amount_in_cents } / 100.0)
}
column 'Prior Quarter Payable', Proc.new{ | partner |
number_to_currency(AffiliateCohortsHelper.prior_quarter_payable_amount(partner))
}
end
end
end

View File

@ -0,0 +1,33 @@
ActiveAdmin.register JamRuby::AffiliateLink, :as => 'Affiliate Links' do
menu :label => 'Links', :parent => 'Affiliates'
config.sort_order = 'created_at ASC'
config.batch_actions = false
# config.clear_action_items!
config.filters = false
config.per_page = 50
config.paginate = true
#form :partial => 'form'
form do |f|
f.inputs 'Fields' do
f.input(:name, :input_html => { :maxlength => 255 })
f.input(:link, :input_html => { :maxlength => 255 })
end
f.actions
end
index do
column 'Name' do |oo|
oo.name
end
column 'Link' do |oo|
oo.link
end
actions
end
end

View File

@ -0,0 +1,51 @@
ActiveAdmin.register JamRuby::AffiliateQuarterlyPayment, :as => 'Affiliate Quarterly Payments' do
menu :label => 'Quarterly Reports', :parent => 'Affiliates'
config.sort_order = 'year desc, quarter desc, due_amount_in_cents desc'
config.batch_actions = false
config.clear_action_items!
config.filters = true
config.per_page = 50
config.paginate = true
filter :affiliate_partner
filter :year
filter :quarter
filter :closed
filter :paid
filter :jamtracks_sold
filter :subscriptions_count
filter :due_amount_in_cents
form :partial => 'form'
scope("Sorted By Due Amount", default: true) { |scope| scope.order('year desc, quarter desc, due_amount_in_cents desc') }
scope("Sorted By Jamtracks Sold", default: false) { |scope| scope.order('year desc, quarter desc, jamtracks_sold desc') }
scope("Sorted By Subs", default: false) { |scope| scope.order('year desc, quarter desc, subscriptions_count desc') }
scope("Sorted By Newest First") { |scope| scope.order('year desc, quarter desc, id desc') }
scope("Any") { |scope| scope.order('year desc, quarter desc, due_amount_in_cents desc') }
index do
# default_actions # use this for all view/edit/delete links
column 'Year' do |oo| oo.year end
column 'Quarter' do |oo| oo.quarter end
column 'Partner Id' do |oo| oo.affiliate_partner.id end
column 'Partner' do |oo| link_to(oo.affiliate_partner.display_name, oo.affiliate_partner.admin_url, {:title => oo.affiliate_partner.display_name}) end
column "Tot ($)" do |oo| sprintf("$%.2f", oo.due_amount_in_cents.to_f / 100.to_f) end
column "Sub ($)" do |oo| sprintf("$%.2f", oo.subscription_due_amount_in_cents.to_f / 100.to_f) end
column "Jam ($)" do |oo| sprintf("$%.2f", oo.jamtrack_due_amount_in_cents.to_f / 100.to_f) end
column 'JamTracks' do |oo| oo.jamtracks_sold end
column 'Subscriptions' do |oo| oo.subscriptions_count end
column 'Paid' do |oo| oo.paid end
column 'Closed' do |oo| oo.paid end
end
controller do
end
end

View File

@ -0,0 +1,48 @@
ActiveAdmin.register JamRuby::AffiliateTrafficTotal, :as => 'Affiliate Daily Stats' do
menu :label => 'Daily Stats', :parent => 'Affiliates'
config.sort_order = 'referral_user_count DESC'
config.batch_actions = false
config.clear_action_items!
config.filters = true
config.per_page = 50
config.paginate = true
filter :affiliate_partner
filter :day
filter :signups
filter :visits
form :partial => 'form'
scope("Active", default: true) { |scope| scope.where('visits != 0 or signups != 0').order('day desc') }
index do
# default_actions # use this for all view/edit/delete links
column 'Day' do |oo| oo.day end
column 'Partner ID' do |oo| oo.affiliate_partner.id end
column 'Partner Name' do |oo| oo.affiliate_partner.display_name end
column 'Partner User' do |oo| link_to(oo.affiliate_partner.partner_user.name, admin_user_path(oo.affiliate_partner.partner_user.id), { :title => oo.affiliate_partner.partner_user.name }) end
column 'Signups' do |oo| oo.signups end
column 'Visits' do |oo| oo.visits end
end
controller do
def scoped_collection
rel = end_of_association_chain
.includes([:affiliate_partner])
.order('day DESC')
if (ref_id = params[AffiliatePartner::PARAM_REFERRAL]).present?
qq = ['affiliate_partner_id = ?', ref_id]
else
qq = ['affiliate_partner_id IS NOT NULL']
end
@users ||= rel.where(qq)
end
end
end

View File

@ -2,30 +2,38 @@ ActiveAdmin.register JamRuby::User, :as => 'Referrals' do
menu :label => 'Referrals', :parent => 'Affiliates'
config.sort_order = 'created_at DESC'
config.batch_actions = false
config.clear_action_items!
config.filters = false
config.filters = true
filter :affiliate_referral
filter :email
## scope("Has Signups", default: true) { |scope| scope.where('visits != 0 or signups != 0').order('day desc') }
index do
column 'User' do |oo| link_to(oo.name, "http://www.jamkazam.com/client#/profile/#{oo.id}", {:title => oo.name}) end
column 'Email' do |oo| oo.email end
column 'User' do |oo| link_to(oo.name, oo.admin_url, {:title => oo.name}) end
column 'User Email' do |oo| oo.email end
column 'Created' do |oo| oo.created_at end
column 'Partner' do |oo| oo.affiliate_referral.partner_name end
column 'Partner ID' do |oo| oo.affiliate_referral.id end
column 'Partner Name' do |oo| oo.affiliate_referral.display_name end
column 'Partner User' do |oo| link_to(oo.affiliate_referral.partner_user.name, admin_user_path(oo.affiliate_referral.partner_user.id), { :title => oo.affiliate_referral.partner_user.name }) end
end
controller do
def scoped_collection
rel = end_of_association_chain
.includes([:affiliate_referral])
.order('created_at DESC')
if (ref_id = params[AffiliatePartner::PARAM_REFERRAL]).present?
qq = ['affiliate_referral_id = ?', ref_id]
else
qq = ['affiliate_referral_id IS NOT NULL']
end
@users ||= rel.where(qq)
def scoped_collection
rel = end_of_association_chain
.includes([:affiliate_referral])
.order('created_at DESC')
if (ref_id = params[AffiliatePartner::PARAM_REFERRAL]).present?
qq = ['affiliate_referral_id = ?', ref_id]
else
qq = ['affiliate_referral_id IS NOT NULL']
end
@users ||= rel.where(qq)
end
end
end

View File

@ -5,31 +5,136 @@ ActiveAdmin.register JamRuby::AffiliatePartner, :as => 'Affiliates' do
config.sort_order = 'referral_user_count DESC'
config.batch_actions = false
# config.clear_action_items!
config.filters = false
config.filters = true
config.per_page = 100
config.paginate = true
form :partial => 'form'
#form :partial => 'form'
scope("Active", default: true) { |scope| scope.where('partner_user_id IS NOT NULL') }
#filter :partner_user
filter :partner_name
filter :id
filter :current_quarter_in_cents
filter :cumulative_earnings_in_cents
filter :jamtracks_sold
filter :subscriptions_count
filter :referral_user_count
scope("Sorted By Current Quarter", default: true) { |scope| scope.where('partner_user_id IS NOT NULL').order('current_quarter_in_cents desc') }
scope("Sorted By Jamtracks Sold", default: false) { |scope| scope.where('partner_user_id IS NOT NULL').order('jamtracks_sold desc') }
scope("Sorted By Subs", default: false) { |scope| scope.where('partner_user_id IS NOT NULL').order('subscriptions_count desc') }
scope("Sorted By Signups", default: false) { |scope| scope.where('partner_user_id IS NOT NULL').order('referral_user_count desc') }
scope("Sorted By Newest First") { |scope| scope.where('partner_user_id IS NOT NULL').order('id desc') }
scope("Any") { |scope| scope.where('partner_user_id IS NOT NULL').order('referral_user_count desc') }
scope("Unpaid") { |partner| partner.unpaid }
controller do
helper 'active_admin/subscription'
end
form do |f|
f.inputs 'Fields' do
f.input(:partner_name, :input_html => { :maxlength => 128 })
f.input(:partner_user, as: :searchable_select, hint: 'This person is the owner of the affiliate. Has access to reporting info in account section of www.jamkazam.com')
f.input(:entity_type, :as => :select, :collection => AffiliatePartner::ENTITY_TYPES)
f.input(:rate)
f.input(:paypal_id)
end
f.actions
end
index do
# default_actions # use this for all view/edit/delete links
# actions # use this for all view/edit/delete links
column 'User' do |oo| link_to(oo.partner_user.name, admin_user_path(oo.partner_user.id), {:title => oo.partner_user.name}) end
column 'Name' do |oo| oo.partner_name end
column 'Type' do |oo| oo.entity_type end
column 'Code' do |oo| oo.id end
column 'Referral Count' do |oo| oo.referral_user_count end
column 'Earnings' do |oo| sprintf("$%.2f", oo.cumulative_earnings_in_dollars) end
column 'Amount Owed' do |oo| sprintf("$%.2f", oo.due_amount_in_cents.to_f / 100.to_f) end
column 'User' do |oo|
link_to(oo.partner_user.name, admin_user_path(oo.partner_user.id), { :title => oo.partner_user.name })
end
column 'Name' do |oo|
oo.partner_name
end
column 'Type' do |oo|
oo.entity_type
end
column 'Code' do |oo|
oo.id
end
column 'Signups' do |oo|
oo.referral_user_count
end
column 'JamTracks' do |oo|
oo.jamtracks_sold
end
column 'Subs' do |oo|
oo.subscriptions_count
end
column 'Cum Earnings' do |oo|
div do
sprintf("Tot $%.2f", oo.cumulative_earnings_in_dollars)
end
div do
sprintf("Jam $%.2f", oo.jamtrack_cumulative_earnings_in_dollars)
end
div do
sprintf("Sub $%.2f", oo.subscriptions_cumulative_earnings_in_dollars)
end
end
column 'Current Quarter' do |oo|
div do
sprintf("Tot $%.2f", oo.current_quarter_in_dollars)
end
div do
sprintf("Jam $%.2f", oo.jamtrack_current_quarter_in_dollars)
end
div do
sprintf("Sub $%.2f", oo.subscriptions_current_quarter_in_dollars)
end
end
column 'Amount Owed' do |oo|
div do
sprintf("Tot $%.2f", oo.due_amount_in_cents.to_f / 100.to_f)
end
div do
sprintf("Jam $%.2f", oo.jamtrack_due_amount_in_cents.to_f / 100.to_f)
end
div do
sprintf("Sub $%.2f", oo.subscription_due_amount_in_cents.to_f / 100.to_f)
end
end
column 'Pay Actions' do |oo|
link_to('Mark Paid', mark_paid_admin_affiliate_path(oo.id), :confirm => "Mark this affiliate as PAID?") if oo.unpaid
end
default_actions
actions
end
show do |affiliate_partner|
attributes_table do
row :id
row :partner_name
row :entity_type
row :rate
row :address
row :tax_identifier
row :paypal_id
row :venmo_user_id
row :jamtracks_sold
row :subscriptions_count
row :cumulative_earnings_in_dollars
row :jamtrack_cumulative_earnings_in_dollars
row :subscriptions_cumulative_earnings_in_dollars
row :current_quarter_in_dollars
row :jamtrack_current_quarter_in_dollars
row :subscriptions_current_quarter_in_dollars
end
render 'earnings', { affiliate_partner: affiliate_partner }
end
action_item :only => [:show] do
link_to("Mark Paid",

View File

@ -0,0 +1,21 @@
ActiveAdmin.register JamRuby::AppFeature, as: 'App Features' do
menu parent: 'Misc', label: 'App Features'
config.sort_order = 'created_at ASC'
config.batch_actions = false
config.filters = false
config.per_page = 50
config.paginate = true
form do |f|
f.inputs 'Fields' do
f.input(:feature_type, as: :select, collection: JamRuby::AppFeature::FEATURE_TYPES)
f.input(:handle, :input_html => { :maxlength => 1025 })
f.input(:is_enabled, as: :boolean)
f.input(:env, as: :select, collection: %w(production staging development))
end
f.actions
end
end

30
admin/app/admin/ars.rb Normal file
View File

@ -0,0 +1,30 @@
ActiveAdmin.register JamRuby::Ars, :as => 'Ars' do
menu :label => 'NAS', :parent => 'Operations'
form do |f|
f.inputs 'Controls' do
f.input :active
f.input :beta
end
f.inputs 'Meta' do
f.input :name
f.input :provider
f.input :id_int
f.input :ip
f.input :username
f.input :password, as: :string
f.input :port
f.input :continent
f.input :country, as: :string
f.input :city
f.input :subdivision
f.input :latitude
f.input :longitude
end
f.actions
end
end

View File

@ -1,4 +1,6 @@
ActiveAdmin.register JamRuby::Band, :as => 'Band' do
menu :label => 'Bands', :parent => 'Misc'
collection_action :autocomplete_band_name, :method => :get
controller do

View File

@ -0,0 +1,87 @@
ActiveAdmin.register_page "CampaignSpend" do
menu :parent => 'JamClass'
page_action :create_spend, :method => :post do
campaign = params[:jam_ruby_campaign_spend][:campaign]
year = params[:jam_ruby_campaign_spend][:year]
month = params[:jam_ruby_campaign_spend][:month]
spend = params[:jam_ruby_campaign_spend][:spend]
if campaign.blank?
redirect_to admin_campaignspend_path, :notice => "No campaign defined! Nothing done."
return
elsif spend.blank?
redirect_to admin_campaignspend_path, :notice => "No spend defined! Nothing done."
return
elsif year.blank? || month.blank?
spend = spend.to_f
# get all cohorts for a given campaign
campaign_cohorts = JamClassReport.where(campaign: campaign).where("cohort IS NOT NULL")
year_months = []
campaign_cohorts.each do |cohort|
year_month = {year: cohort.cohort.year, month: cohort.cohort.month}
year_months << year_month
end
if campaign_cohorts.length > 0
per_month = spend / campaign_cohorts.length
year_months.each do |year_month|
campaign_spend = CampaignSpend.where(campaign: campaign).where(year: year_month[:year]).where(month: year_month[:month]).first
if campaign_spend.nil?
campaign_spend = CampaignSpend.new
end
campaign_spend.campaign = campaign
campaign_spend.month = year_month[:month]
campaign_spend.year = year_month[:year]
campaign_spend.spend = per_month
campaign_spend.save!
end
else
redirect_to admin_campaignspend_path, :notice => "No data found for campaign: #{campaign}"
return
end
redirect_to admin_campaignspend_path, :notice => "Campaign #{campaign} updated with a per month value of $#{per_month} (#{year_months.length} months worth of data found)"
else
campaign_spend = CampaignSpend.where(campaign: campaign).where(year: year).where(month: month).first
if campaign_spend.nil?
campaign_spend = CampaignSpend.new
end
campaign_spend.campaign = campaign
campaign_spend.month = month
campaign_spend.year = year
campaign_spend.spend = spend
campaign_spend.save!
redirect_to admin_campaignspend_path, :notice => "Campaign spend updated: #{campaign}:#{year}-#{month} = $#{spend}"
end
end
content do
para do
link_to "JamClass Report", admin_jamclassreports_path
end
para do
semantic_form_for CampaignSpend.new, :url => admin_campaignspend_create_spend_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Campaign Spend" do
f.input :spend, :required => true, hint: "If you leave year or month blank, the system will divide up the specified spend amount here across all months seen for this campaign."
f.input :campaign, :as => :select, hint: "If this appears empty or incomplete, visit the JamClass Report page (link above) and come back.", :required => true, :collection => JamClassReport.select('campaign').group('campaign').map(&:campaign)
f.input :year, :as => :select, :hint => "Year of campaign spend (optional)", :collection => [Date.today.year, Date.today.year - 1]
f.input :month, :as => :select, :hint => "Month of campaign (optional)", :collection => (1..12).map { |m| [Date::MONTHNAMES[m], m] }
end
f.actions
end
end
end
end

63
admin/app/admin/charge.rb Normal file
View File

@ -0,0 +1,63 @@
ActiveAdmin.register JamRuby::Charge, :as => 'Charges' do
menu :label => 'Charge', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = true
controller do
active_admin_config.includes.push :user
end
filter :user_email_cont, label: 'Name', as: :string
index do
column "Actions" do |charge|
links = ''.html_safe
links << link_to("View", resource_path(charge), :class => "member_link view_link")
links << link_to("Edit", edit_resource_path(charge), :class => "member_link edit_link")
links
end
column "User" do |charge|
link_to charge.user.name, charge.user.admin_url
end
column :billed
column :billing_error_reason
column :billing_attempts
column :amount_in_cents
column :fee_in_cents
column :created_at
column :updated_at
column "Stripe" do |charge|
link_to "Link", "https://dashboard.stripe.com/payments/#{charge.stripe_charge_id}" if charge.stripe_charge_id
end
end
show do
attributes_table do
row "User" do |charge|
link_to charge.user.name, charge.user.admin_url
end
row :amount_in_cents
row :fee_in_cents
row :billed
row :billed_at
row :post_processed
row :post_processed_at
row :billing_error_reason
row :billing_error_detail
row :billing_should_retry
row :billing_attempts
row :stripe_charge_id
row :created_at
row :updated_at
row "Stripe" do |charge|
link_to "Link", "https://dashboard.stripe.com/payments/#{charge.stripe_charge_id}" if charge.stripe_charge_id
end
end
end
end

View File

@ -0,0 +1,29 @@
ActiveAdmin.register JamRuby::ChatMessage, :as => 'ChatMessage' do
# Note: a lame thing is it's not obvious how to make it search on email instead of user_id.
filter :music_session_id
filter :user_id
menu :parent => 'Misc'
config.per_page = 200
config.sort_order = 'created_at DESC'
scope("Global", default:true) { |scope|
scope.where("channel = 'global'")
}
scope("Session", ) { |scope|
scope.where("channel = 'session'")
}
index do
column 'User' do |oo| link_to(oo.user.email, oo.user.admin_url, {:title => oo.user.email}) end
column "Timestamp" do |post|
(post.created_at).strftime('%b %d %Y, %H:%M')
end
column "Message" do |post|
post.message
end
actions
end
end

View File

@ -56,7 +56,7 @@ ActiveAdmin.register JamRuby::Connection, :as => 'Connection' do
end
index do
default_actions
actions
column :user_id do |c|
c.user ? c.user.name : ''
end

View File

@ -1,28 +1,29 @@
ActiveAdmin.register JamRuby::CrashDump, :as => 'Crash Dump' do
# Note: a lame thing is it's not obvious how to make it search on email instead of user_id.
filter :timestamp
filter :user_email, :as => :string
filter :client_id
filter :user_id
menu :parent => 'Misc'
config.sort_order = 'created_at DESC'
index do
column 'User' do |oo| oo.user ? link_to(oo.user.email, oo.user.admin_url, {:title => oo.user.email}) : '' end
column "Client Version", :client_version
column "Client Type", :client_type
column "Crash Context", :crash_context
column "File Size", :fsize
column "Download" do |post|
link_to 'Link', post.sign_url
end
column "Timestamp" do |post|
(post.timestamp || post.created_at).strftime('%b %d %Y, %H:%M')
end
column "Client Type", :client_type
column "Dump URL" do |post|
link_to post.uri, post.uri
column "Description" do |post|
post.description
end
column "User ID", :user_id
# FIXME (?): This isn't performant (though it likely doesn't matter). Could probably do a join.
column "User Email" do |post|
unless post.user_id.nil?
post.user_email
end
end
column "Client ID", :client_id
actions
end
end

7
admin/app/admin/csv.rb Normal file
View File

@ -0,0 +1,7 @@
ActiveAdmin.register_page "CSVs" do
menu :parent => 'Misc'
content do
link_to('Released JamTracks', released_jamtracks_csv_path)
end
end

View File

@ -5,11 +5,13 @@ ActiveAdmin.register_page "Dashboard" do
content :title => proc{ I18n.t("active_admin.dashboard") } do
div :class => "blank_slate_container", :id => "dashboard_default_message" do
span :class => "blank_slate" do
span "JamKazam Data Administration Portal"
span "JamKazam Administration Portal"
small ul do
li "Admin users are users with the admin boolean set to true"
li "Invite JamKazam users using the 'Users > Invite' menu in header"
li "Admin users are created/deleted when toggling the 'admin' flag for JamKazam users"
li link_to "Users", admin_users_path
li link_to "K12 Users", admin_users_path("q[import_source_equals]": "K12")
li link_to "Teachers", admin_teachers_path
li link_to "Upload School Users", admin_schooluseruploads_path
end
end
end

View File

@ -0,0 +1,35 @@
ActiveAdmin.register JamRuby::DownloadTracker, :as => 'DownloadTrackers' do
menu :label => 'Download Trackers', :parent => 'JamTracks'
config.batch_actions = false
config.filters = true
config.per_page = 50
filter :remote_ip
index do
column 'User' do |oo| oo.user ? link_to(oo.user.email, oo.user.admin_url, {:title => oo.user.email}) : '' end
column 'Created' do |oo| oo.created_at end
column 'JamTrack' do |oo| oo.jam_track end
column 'Paid' do |oo| oo.paid end
column 'Blacklisted?' do |oo| IpBlacklist.listed(oo.remote_ip) ? 'Yes' : 'No' end
column 'Remote IP' do |oo| oo.remote_ip end
column "" do |oo|
link_to 'Blacklist This IP', "download_trackers/#{oo.id}/blacklist_by_ip"
end
end
member_action :blacklist_by_ip, :method => :get do
tracker = DownloadTracker.find(params[:id])
if !IpBlacklist.listed(tracker.remote_ip)
ip = IpBlacklist.new
ip.remote_ip = tracker.remote_ip
ip.save!
end
redirect_to admin_download_trackers_path, :notice => "IP address #{tracker.remote_ip} blacklisted."
end
end

View File

@ -57,7 +57,7 @@ ActiveAdmin.register JamRuby::EmailBatch, :as => 'Batch Emails' do
link_to("Clone", batch_clone_admin_batch_email_path(bb.id))
end
default_actions
actions
end
show :title => 'Batch Email' do |obj|

View File

@ -0,0 +1,14 @@
ActiveAdmin.register JamRuby::EmailBlacklist, :as => 'Email Blacklist' do
menu :label => 'Email Blacklist', :parent => 'Operations'
config.sort_order = 'created_at desc'
config.batch_actions = false
index do
column :email
column :source
column :notes
column :created_at
end
end

View File

@ -0,0 +1,10 @@
ActiveAdmin.register JamRuby::EventBriteOrder, :as => 'EventBriteOrder' do
menu :parent => 'Misc'
config.sort_order = 'created_at DESC'
filter :live_stream
filter :email
filter :order_id
end

View File

@ -0,0 +1,51 @@
ActiveAdmin.register_page "EventBriteOrderUploads" do
menu :label => 'Event Brite Order Upload', :parent => 'Misc'
page_action :upload_eventbriteorders, :method => :post do
EventBriteOrder.transaction do
puts params
live_stream = LiveStream.find_by_id!(params[:jam_ruby_event_brite_order][:live_stream_id])
file = params[:jam_ruby_event_brite_order][:csv]
upload = EventBriteOrderUpload.new
upload.upload_file_name = file.original_filename
upload.save!
array_of_arrays = CSV.read(file.tempfile.path, headers:true)
array_of_arrays.each do |row|
order_id = row['Order ID']
event_brite_order = EventBriteOrder.find_by_order_id(order_id)
if event_brite_order.nil?
event_brite_order = EventBriteOrder.new
end
event_brite_order.event_brite_order_upload = upload
event_brite_order.live_stream = live_stream
event_brite_order.event_name = row['Event Name']
event_brite_order.order_id = order_id
event_brite_order.ticket_count = row['Tickets']
event_brite_order.ticket_type = row['Type']
event_brite_order.first_name = row['First Name']
event_brite_order.last_name = row['Last Name']
event_brite_order.email = row['Email Address']
event_brite_order.save!
end
redirect_to admin_eventbriteorderuploads_path, :notice => "Created #{array_of_arrays.length} event brite orders!"
end
end
content do
active_admin_form_for EventBriteOrder.new, :url => admin_eventbriteorderuploads_upload_eventbriteorders_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Upload Event Brite Orders" do
f.input :csv, as: :file, required: true, :label => "An event brite order CSV exactly as exported from Eventbrite"
f.input :live_stream, required:true, as: :select, :collection => LiveStream.upcoming
end
f.actions
end
end
end

View File

@ -27,11 +27,12 @@ ActiveAdmin.register_page "Fake Purchaser" do
count = 0
JamTrack.all.each do |jam_track|
unless jam_track.right_for_user(user)
jam_track_right=JamTrackRight.new
jam_track_right.user = user
jam_track_right.jam_track = jam_track
jam_track_right.is_test_purchase = true
jam_track_right.version = jam_track.version
jam_track_right.can_download = true
jam_track_right.save!
count = count + 1
end
@ -41,12 +42,11 @@ ActiveAdmin.register_page "Fake Purchaser" do
end
content do
semantic_form_for JamTrackRight.new, :url => admin_fake_purchaser_bulk_jamtrack_purchase_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Admin User to Fake JamTrack Purchases" do
f.input :user, :as => :autocomplete, :url => autocomplete_user_email_admin_users_path, :input_html => { :id_element => "#jam_trak_right_user_id" }, hint: 'All JamTracks in the system will be \'bought\' for this user. No Recurly interaction occurs with this feature.'
active_admin_form_for JamTrackRight.new, :url => admin_fake_purchaser_bulk_jamtrack_purchase_path, :builder => ActiveAdmin::FormBuilder do |f|
inputs "Admin User to Fake JamTrack Purchases" do
input :user, :as => :autocomplete, :url => autocomplete_user_email_admin_users_path, :input_html => { :id_element => "#jam_trak_right_user_id" }, hint: 'All JamTracks in the system will be \'bought\' for this user. No Recurly interaction occurs with this feature.'
end
f.actions
actions
end
end
end

View File

@ -10,7 +10,7 @@ ActiveAdmin.register JamRuby::FraudAlert, :as => 'Fraud Alerts' do
scope.joins('INNER JOIN "machine_fingerprints" ON "machine_fingerprints"."id" = "fraud_alerts"."machine_fingerprint_id" LEFT OUTER JOIN "fingerprint_whitelists" ON "fingerprint_whitelists"."fingerprint" = "machine_fingerprints"."fingerprint"').where('fingerprint_whitelists IS NULL')}
index do
default_actions
actions
column :machine_fingerprint
column :user

View File

@ -0,0 +1,18 @@
ActiveAdmin.register JamRuby::GenericState, :as => 'GenericState' do
menu :parent => 'Operations'
config.clear_action_items!
filter :env
permit_params :top_message, :event_page_top_logo_url, :customer_ltv, :connection_policy
actions :all, :except => [:destroy]
index do
selectable_column
column :env
actions
end
form :partial => 'form'
end

View File

@ -0,0 +1,41 @@
ActiveAdmin.register_page "Giftcarduploads" do
menu :label => 'Gift Cards Upload', :parent => 'JamTracks'
page_action :upload_giftcards, :method => :post do
GiftCard.transaction do
puts params
file = params[:jam_ruby_gift_card][:csv]
array_of_arrays = CSV.read(file.tempfile.path)
array_of_arrays.each do |row|
if row.length != 1
raise "UKNONWN CSV FORMAT! Must be 1 column"
end
code = row[0]
gift_card = GiftCard.new
gift_card.code = code
gift_card.card_type = params[:jam_ruby_gift_card][:card_type]
gift_card.origin = file .original_filename
gift_card.save!
end
redirect_to admin_giftcarduploads_path, :notice => "Created #{array_of_arrays.length} gift cards!"
end
end
content do
active_admin_form_for GiftCard.new, :url => admin_giftcarduploads_upload_giftcards_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Upload Gift Cards" do
f.input :csv, as: :file, required: true, :label => "A single column CSV that contains ONE type of gift card (5 JamTrack, 10 JamTrack, etc)"
f.input :card_type, required:true, as: :select, :collection => JamRuby::GiftCard::CARD_TYPES
end
f.actions
end
end
end

View File

@ -0,0 +1,24 @@
ActiveAdmin.register JamRuby::GiftCard, :as => 'GiftCards' do
menu :label => 'Gift Cards', :parent => 'JamTracks'
config.batch_actions = false
config.filters = true
config.per_page = 50
scope("Redeemed Most Recently", default: true) { |scope| scope.where('user_id IS NOT NULL').order('updated_at DESC') }
scope("Available") { |scope| scope.where('user_id is NULL') }
filter :card_type
filter :origin
filter :code
index do
column 'User' do |oo| oo.user ? link_to(oo.user.email, oo.user.admin_url, {:title => oo.user.email}) : '' end
column 'Code' do |oo| oo.code end
column 'Card Type' do |oo| oo.card_type end
column 'Origin' do |oo| oo.origin end
column 'Created' do |oo| oo.created_at end
end
end

View File

@ -220,7 +220,7 @@ ActiveAdmin.register_page "Bootstrap" do
para "You need to create at least one server template, and one mount template. Click one of the top-left buttons based on your platform"
elsif IcecastMountTemplate.count == 0
semantic_form_for IcecastMountTemplate.new, :url => admin_bootstrap_create_mount_template_path, :builder => ActiveAdmin::FormBuilder do |f|
active_admin_form_for IcecastMountTemplate.new, :url => admin_bootstrap_create_mount_template_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "New Mount Template" do
f.input :hostname, :label => "jam-web public hostname:port (such that icecast can reach it)"
f.input :default_mime_type, :as => :select, :collection => ["ogg", "mp3"]
@ -228,7 +228,7 @@ ActiveAdmin.register_page "Bootstrap" do
f.actions
end
else
semantic_form_for IcecastServer.new, :url => admin_bootstrap_create_server_path, :builder => ActiveAdmin::FormBuilder do |f|
active_admin_form_for IcecastServer.new, :url => admin_bootstrap_create_server_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "New Icecast Server" do
f.input :hostname, :hint => "Just the icecast hostname; no port"
f.input :template, :hint => "This is the template associated with the server. Not as useful for the 1st server, but subsequent servers can use this same template, and share config"

View File

@ -0,0 +1,40 @@
ActiveAdmin.register JamRuby::User, :as => 'InactiveJamClassUsers' do
menu :label => 'Inactive JamClass Users w/o Credits', :parent => 'JamClass'
config.sort_order = 'created_at'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
scope("All", default: true) { |scope| scope.includes(:taken_lessons => :music_session).select("distinct(users.id), users.email, users.first_name, users.last_name").joins("inner join posa_cards on posa_cards.user_id = users.id inner join lesson_sessions on lesson_sessions.user_id = users.id left outer join music_sessions on music_sessions.lesson_session_id = music_sessions.id ").where("jamclass_credits = 0") }
index do
column "Name" do |user|
span do
link_to "#{user.name} (#{user.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{user.id}"
end
end
column "POSA" do |user|
span do
posa = user.posa_cards[0]
if posa.lesson_package_type
posa.lesson_package_type.id
else
posa.card_type
end
end
end
column "Last Session" do |user|
span do
if user.taken_lessons.length == 0
"none yet"
else
most_recent_lesson = user.taken_lessons.order('created_at desc')[0]
link_to most_recent_lesson.scheduled_start, admin_lesson_session_path(most_recent_lesson)
end
end
end
end
end

View File

@ -0,0 +1,45 @@
ActiveAdmin.register JamRuby::User, :as => 'InactiveJamClassPOSAUsers' do
menu :label => 'Inactive JamClass Users w/ Credits', :parent => 'JamClass'
config.sort_order = 'created_at'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
scope("All", default: true) { |scope| scope.includes(:taken_lessons => :music_session).select("distinct(users.id), users.email, users.first_name, users.last_name, users.jamclass_credits").joins("inner join posa_cards on posa_cards.user_id = users.id left outer join lesson_sessions on lesson_sessions.user_id = users.id left outer join music_sessions on music_sessions.lesson_session_id = music_sessions.id ").where("jamclass_credits > 0 AND music_sessions.id IS NULL OR music_sessions.scheduled_start < ?", Time.now - 7.days) }
index do
column "Name" do |user|
span do
link_to "#{user.name} (#{user.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{user.id}"
end
end
column "POSA" do |user|
span do
posa = user.posa_cards[0]
if posa.lesson_package_type
posa.lesson_package_type.id
else
posa.card_type
end
end
end
column "Credits" do |user|
span do
user.jamclass_credits
end
end
column "Last Session" do |user|
span do
if user.taken_lessons.length == 0
"none yet"
else
most_recent_lesson = user.taken_lessons.order('created_at desc')[0]
link_to most_recent_lesson.scheduled_start, admin_lesson_session_path(most_recent_lesson)
end
end
end
end
end

View File

@ -0,0 +1,20 @@
ActiveAdmin.register JamRuby::User, :as => 'EducationInterest' do
menu :label => 'Interested in Education', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
scope("All", default: true) { |scope| scope.where(education_interest: true) }
index do
column "Name" do |user|
span do
link_to "#{user.name} (#{user.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{user.id}"
end
end
end
end

View File

@ -0,0 +1,20 @@
ActiveAdmin.register JamRuby::User, :as => 'RetailerInterest' do
menu :label => 'Interested in Retailers', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
scope("All", default: true) { |scope| scope.where(retailer_interest: true) }
index do
column "Name" do |user|
span do
link_to "#{user.name} (#{user.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{user.id}"
end
end
end
end

View File

@ -0,0 +1,20 @@
ActiveAdmin.register JamRuby::User, :as => 'SchoolInterest' do
menu :label => 'Interested in Schools', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
scope("All", default: true) { |scope| scope.where(school_interest: true) }
index do
column "Name" do |user|
span do
link_to "#{user.name} (#{user.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{user.id}"
end
end
end
end

View File

@ -0,0 +1,13 @@
ActiveAdmin.register JamRuby::IpBlacklist, :as => 'IP Blacklist' do
menu :label => 'IP Blacklist', :parent => 'Operations'
config.sort_order = 'created_at desc'
config.batch_actions = false
index do
column :remote_ip
column :notes
column :created_at
end
end

View File

@ -0,0 +1,13 @@
ActiveAdmin.register JamRuby::IpWhitelist, :as => 'IP Whitelist' do
menu :label => 'IP Whitelist', :parent => 'Operations'
config.sort_order = 'created_at desc'
config.batch_actions = false
index do
column :remote_ip
column :notes
column :created_at
end
end

View File

@ -0,0 +1,14 @@
ActiveAdmin.register_page "Jam Class Knobs" do
menu :parent => 'JamClass'
page_action :force_hourly, :method => :post do
Resque.enqueue(HourlyJob)
redirect_to admin_jam_class_knobs_path, :notice => "Re-running the Hourly Job. Lessons will be analysed; any payments will be attempted that should be, etc"
end
action_item do
link_to "Force Hourly Background Job", admin_jam_class_knobs_force_hourly_path, :method => :post
end
end

View File

@ -0,0 +1,26 @@
ActiveAdmin.register_page "Monthly Roll Forward", as: "JamClass Monthly Roll Forward" do
menu :parent => 'JamClass'
content :title => "JamClass Monthly Roll Forwards" do
para do
table_for JamClassReport.roll_forward_bookings do
column "Student" do |r|
r.student.admin_name
end
column "Teacher" do |r|
r.teacher.admin_name
end
column "Booking Active?" do |r|
r.active ? 'Y' : 'N'
end
column "Booking Status" do |r|
link_to r.status, admin_lesson_booking_path(r.id)
end
end
end
end
end

View File

@ -0,0 +1,66 @@
ActiveAdmin.register_page "JamClassReports", as: "JamClass Cohort Report" do
menu :parent => 'JamClass'
content :title => "JamClass Report" do
para do
link_to "Campaign Spend", admin_campaignspend_path
end
para do
table_for JamClassReport.analyse do
column "Campaign" do |r|
if r.campaign.nil?
"N/A"
else
r.campaign
end
end
column "Cohort" do |r|
if r.cohort.nil?
"Total"
else
"#{Date::ABBR_MONTHNAMES[r.cohort.month]} #{r.cohort.year}"
end
end
column "Spend" do |r|
if r.spend.nil?
"N/A"
else
r.spend
end
end
column "Registrations", :registrations
column "TD Customers", :td_customers
column "JamClass Revenues", :jamclass_rev
column "TD4", :td4
column "TD2", :td2
column "TD1", :td1
column "Spend/TD" do |r|
if r.spend_td.nil?
"N/A"
else
r.spend_td
end
end
column "% 0 BC" do |r|
(r.purchases0 * 100).round
end
column "% 1 BC" do |r|
(r.purchases1 * 100).round
end
column "% 2 BC" do |r|
(r.purchases2 * 100).round
end
column "% 3 BC" do |r|
(r.purchases3 * 100).round
end
column "% 4+ BC" do |r|
(r.purchases_rest * 100).round
end
end
end
end
end

View File

@ -17,11 +17,9 @@ ActiveAdmin.register JamRuby::ArtifactUpdate, :as => 'Artifacts' do
f.input :uri, :as => :file, :hint => "Upload the artifact from Jenkins"
end
f.buttons
f.actions
end
action_item :only => [:show] do
link_to('Send Client Update Notice', send_client_update_notice_admin_artifact_path(resource.id))
end

View File

@ -1,84 +1,651 @@
ActiveAdmin.register JamRuby::User, :as => 'Users' do
searchable_select_options(scope: User.all,
text_attribute: :username,
filter: lambda do |term, scope|
scope.ransack(full_name_or_email_cont: term).result
end)
collection_action :autocomplete_user_email, :method => :get
actions :all, :except => [:destroy]
menu :label => 'Users', :parent => 'Users'
config.sort_order = 'created_at DESC'
filter :email
filter :first_name
filter :last_name
filter :jamuser_full_name_or_email_cont, label: 'Name Or Email', as: :string
filter :created_at
filter :updated_at
filter :import_source
includes :purchased_jam_tracks, :jam_track_rights => :jam_track, :taken_lessons => :music_session, :taught_lessons => :music_session
form :partial => "form"
show do |user|
attributes_table do
row :id
row :email
row :admin
row :updated_at
row :created_at
row :musician
row :city
row :state
row :country
row :first_name
row :last_name
row :birth_date
row :gender
row :email_confirmed
row :remember_token
row :image do user.photo_url ? image_tag(user.photo_url) : '' end
action_item :school_user, only: :index do
link_to "Quick Add School User", add_school_user_admin_users_path
end
action_item :latency, only: :show do
link_to 'Show Latency', latency_admin_user_path(resource)
end
collection_action :add_school_user, method: [:get, :post] do
if request.post?
@client = RecurlyClient.new
errors = []
user_params = params[:jam_ruby_user]
user_type = user_params[:user_type].strip
school_id = user_params[:school_id].strip
return (render text: "Please select school") if school_id.blank?
first_name = user_params[:first_name].strip
last_name = user_params[:last_name].strip
email = user_params[:email].strip.downcase
license_start = user_params[:license_start].strip
license_end = user_params[:license_end].strip
import_source = user_params[:import_source].strip
password = SecureRandom.uuid
options = {
first_name: first_name,
last_name: last_name,
email: email,
license_start: license_start,
license_end: license_end,
import_source: import_source,
terms_of_service: true,
musician: true,
skip_recaptcha: true,
password: password,
password_confirmation: password
}
options.merge!({ school_id: school_id }) if school_id.present?
instrument = Instrument.find('electric guitar')
instruments = [{instrument_id: instrument.id, proficiency_level: 3, priority: 1}]
options[:instruments] = instruments
parse_user_type(user_type, options)
@user = User.find_by_email(options[:email])
unless @user.nil?
@user.user_type = user_type
#if @user.import_source.nil?
#TODO: do we need to have following 3 lines for an existing user?
@user.import_source = options[:import_source]
@user.license_start = options[:license_start]
@user.license_end = options[:license_end]
if options[:student]
@user.school_id = options[:school_id]
@user.is_a_student = true
elsif options[:teacher]
@user.school = school
if @user.teacher.nil?
@user.teacher = Teacher.build_teacher(@user, validate_introduction: true, biography: "Empty biography", school_id: school.id)
end
elsif options[:platform_instructor]
@user.is_platform_instructor = true
end
if @user.save
@client.sync_subscription(@user)
if options[:student]
UserMailer.school_welcome_message(@user, nil).deliver_now
elsif options[:teacher]
UserMailer.school_welcome_message(@user, nil).deliver_now
elsif options[:platform_instructor]
end
end
if @user.errors.any?
flash[:error] = "Error updating User #{@user.name} #{@user.email}"
render :add_school_user
else
flash[:notice] = "User #{@user.name} #{@user.email} updated successfully"
redirect_to admin_users_path
end
#end
else
@user = User.signup(options)
if @user.errors.none?
@client.sync_subscription(@user)
puts "User #{@user.email} created"
flash[:notice] = "User #{@user.name} #{@user.email} added successfully"
redirect_to admin_users_path
else
flash[:error] = "Error adding school user"
render :add_school_user
end
end
else
@user = User.new
@user.import_source = 'Manual'
end
end
member_action :update_school_user, method: [:get, :put] do
end
member_action :delete_forever, :method => :get do
resource.permanently_delete
redirect_to :back, {notice: 'User email and login credentials have been permanently changed'}
end
#Notification.send_reload(connection.client_id)
member_action :give_free_plan, :method => :get do
@client = RecurlyClient.new
plan_code = params[:plan_code]
if params[:plan_code] == ''
plan_code = nil
end
resource.update_admin_override_plan_code(plan_code)
redirect_to :back, {notice: "User got a free plan via adminstrative override to #{params[:plan_code]}"}
end
member_action :revoke_free_plan, :method => :get do
resource.update_admin_override_plan_code(nil)
redirect_to :back, {notice: "User has administrative free plan removed"}
end
member_action :resend_welcome_email, :method => :get do
user = resource
if user.is_a_student
if user.import_source
reset_url = resource.create_tokened_reset_url
UserMailer.school_welcome_message(user, reset_url).deliver_now
else
UserMailer.student_welcome_message(user).deliver_now
end
elsif user.is_a_teacher
if user.import_source
reset_url = resource.create_tokened_reset_url
UserMailer.school_welcome_message(user, reset_url).deliver_now
else
UserMailer.teacher_welcome_message(user).deliver_now
end
elsif user.is_platform_instructor
reset_url = resource.create_tokened_reset_url
UserMailer.welcome_message(user, reset_url).deliver_now
else
UserMailer.welcome_message(user).deliver_now
end
redirect_to :back, {notice: "Resent Welcome Email"}
end
member_action :sync_subscription, :method => :get do
@client = RecurlyClient.new
@client.sync_subscription(resource)
redirect_to :back, {notice: "Check the Subscription Plan Code, Subscription Sync Code, Subscription Sync Msg"}
end
member_action :reset_monthly_play, :method => :get do
resource.used_month_play_time = 0
resource.save!
redirect_to :back, {notice: "Reset user's monthly play time to 0"}
end
member_action :change_to_plan, :method => :get do
@client = RecurlyClient.new
plan_code = params[:plan_code]
if params[:plan_code] == ''
plan_code = nil
end
result, subscription, account = @client.update_desired_subscription(resource, plan_code)
redirect_to :back, {notice: "Set user's desired plan. "}
end
member_action :quick_reset, :method => :get do
resetting_to = 'jellyandjam123'
resource.change_password(resetting_to, resetting_to)
resource.save
redirect_to :back, {notice: "Reset password to #{resetting_to }"}
end
member_action :create_reset, :method => :get do
reset_url = resource.create_tokened_reset_url
redirect_to :back, {notice: "Reset password url created: #{reset_url}"}
end
member_action :end_trial, :method => :get do
if Time.now - 2.days < resource.subscription_trial_ends_at
resource.subscription_trial_ends_at = 3.days.ago
resource.save!
redirect_to :back, {notice: "User's trial ended"}
else
redirect_to :back, {notice: "Users trial already ended > 2 days ago. Left alone user account"}
end
end
member_action :latency, method: :get do
@user = resource
latency_url = "#{Rails.application.config.latency_data_host}/user/#{@user.id}"
uri = URI(latency_url)
begin
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if Rails.application.config.latency_data_host.start_with?("https://")
req = Net::HTTP::Get.new(uri.request_uri)
req["Authorization"] = "Basic #{Rails.application.config.latency_data_host_auth_code}"
req["Content-Type"] = "application/json"
response = http.request(req)
render text: "404 Not Found", status: 404 if response.is_a?(Net::HTTPNotFound)
#render json: response.body, status: 200 if response.is_a?(Net::HTTPOK) || response.is_a?(Net::HTTPSuccess)
@user_latency = response.body
rescue => e
render text: e.message
end
end
show do |user|
panel "Common" do
attributes_table do
row :id
row :email
row :admin
row :updated_at
row :created_at
row :musician
row :city
row :state
row :country
row :first_name
row :last_name
row :birth_date
row :gender
row :email_confirmed
row :remember_token
=begin
row "Session Ready" do |user|
div do
if user.ready_for_session_at
span do
'YES'
end
span do
br
end
span do
link_to("mark as not checked", mark_session_not_ready_admin_student_path(user.id), {confirm: "Mark as not ready for session?"})
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as checked", mark_session_ready_admin_student_path(user.id), {confirm: "Mark as ready for session?"})
end
end
end
end
=end
row "Delete Forever" do |user|
span do
link_to("delete forever", delete_forever_admin_user_path(user.id), :data => {:confirm => 'Are you sure?'})
end
end
row "Quick Password Reset" do |user|
span do
link_to("reset password to jellyandjam123", quick_reset_admin_user_path(user.id), :data => {:confirm => 'Reset password to jellyandjam123 ?'})
end
end
row "Send Password Reset Email" do |user|
span do
Rails.application.config.external_root_url + "/request_reset_password"
end
end
row "Password Reset URL" do |user|
span do
link_to("create reset URL", create_reset_admin_user_path(user.id), :data => {:confirm => 'Are you sure?'})
end
end
row "Resend Welcome Email" do |user|
span do
link_to("resend welcome email", resend_welcome_email_admin_user_path(user.id), :data => {:confirm => 'Are you sure?'})
end
end
row "Subscription" do |user|
div do
attributes_table do
row :subscription_plan_code
row :desired_plan_code
row :admin_override_plan_code
row :admin_override_ends_at
row :recurly_subscription_state
row :recurly_subscription_id
row :desired_plan_code_set_at
row :subscription_plan_code_set_at
row :subscription_last_checked_at
row :subscription_trial_ends_at
row :subscription_sync_code
row :subscription_sync_msg
row :is_past_due
row :stored_credit_card
row "Monthly Time Used" do |user|
div do
remaining_month_play_time = user.subscription_rules[:remaining_month_play_time]
if remaining_month_play_time.nil?
span do
"No limit"
end
elsif user.played_this_month?
span do
"Used: #{user.used_month_play_time / 60} min | Remaining #{remaining_month_play_time / 60} min"
end
else
span do
"Did not play this month. Last played #{user.used_current_month}"
end
end
end
end
end
end
div do
'DESIRED PLAN CODE = What plan the user has selected in the UI'
end
div do
'SUBSCRIPTION PLAN CODE = What plan the user actually has'
end
div do
div do
user.recurly_code ? link_to('Recurly Account', user.recurly_link_to_account, target: "_blank", ) : span do 'No Recurly Account' end
end
div do
user.recurly_subscription_id ? link_to('Recurly Subscription', user.recurly_link_to_subscription, target: "_blank", ) : span do 'No Recurly Subscription' end
end
end
div do
h3 do
'Give Free Plan Actions'
end
h4 do
'sets secret override to give user a free plan (link goes to another page)'
end
div do
link_to("give no-payment plan", edit_admin_user_override_path(user.id))
end
end
div do
h3 do
'Reset Monthly Play Time'
end
h4 do
'sets the user\'s monthly play time to 0'
end
div do
link_to("reset monthly play time", reset_monthly_play_admin_user_path(user.id), :data => {:confirm => 'Are you sure?'})
end
end
div do
h3 do
'Change Plan Actions'
end
h4 do
'Change desired plan exactly as if the user did it on /client#/accounts/subscription'
end
div do
link_to("change plan to silver monthly", change_to_plan_admin_user_path(user.id, plan_code: 'jamsubsilver'), :data => {:confirm => 'Are you sure?'})
end
div do
link_to("change plan to gold monthly", change_to_plan_admin_user_path(user.id, plan_code: 'jamsubgold'), :data => {:confirm => 'Are you sure?'})
end
div do
link_to("change plan to platinum monthly", change_to_plan_admin_user_path(user.id, plan_code: 'jamsubplatinum'), :data => {:confirm => 'Are you sure?'})
end
div do
link_to("change plan to silver yearly", change_to_plan_admin_user_path(user.id, plan_code: 'jamsubsilveryearly'), :data => {:confirm => 'Are you sure?'})
end
div do
link_to("change plan to gold yearly", change_to_plan_admin_user_path(user.id, plan_code: 'jamsubgoldyearly'), :data => {:confirm => 'Are you sure?'})
end
div do
link_to("change plan to platinum yearly", change_to_plan_admin_user_path(user.id, plan_code: 'jamsubplatinumyearly'), :data => {:confirm => 'Are you sure?'})
end
div do
link_to("change plan to free", change_to_plan_admin_user_path(user.id, plan_code: ''), :data => {:confirm => 'Are you sure?'})
end
end
div do
h3 do
'Force Sync'
end
h4 do
'exactly same as background job that checks accounts'
end
div do
link_to("force sync", sync_subscription_admin_user_path(user.id), :data => {:confirm => 'Are you sure?'})
end
end
div do
h3 do
'End Trial'
end
h4 do
'ends the trial as of 3 days ago'
end
div do
link_to("end trial", end_trial_admin_user_path(user.id), :data => {:confirm => 'Are you sure?'})
end
end
end
row :jamclass_credits
row :via_amazon
row "Web Profile" do
link_to "Link", "#{Rails.application.config.external_root_url}/client#/profile/#{user.id}"
end
row :image do
user.photo_url ? image_tag(user.photo_url) : ''
end
row "Instruments" do
table_for user.musician_instruments.order('proficiency_level desc') do
column :instrument_id
end
end
end
end
panel "School" do
div do
attributes_table do
row "School" do |user|
span do
if user.school
link_to user.school.name, admin_school_path(user.school), target: '_blank'
end
end
end
if user.school
row :license_start
row :license_end
row :is_platform_instructor
end
end
end
end
# panel "Onboarding" do
# attributes_table do
# row :onboarding_status
# row "Support Consultant" do |user|
# if user.onboarder
# link_to "#{user.onboarder.name} (#{user.onboarder.onboarding_users.count})", user.onboarder.admin_url
# else
# end
# end
# row "Signup" do
# user.created_at.to_date
# end
# row "Assigned", :onboarder_assigned_at
# row "Email 1", :onboarding_email_1_sent_at
# row "Email 2", :onboarding_email_2_sent_at
# row "Email 3", :onboarding_email_3_sent_at
# row "Email 4", :onboarding_email_4_sent_at
# row "Email 5", :onboarding_email_5_sent_at
# row "Test Session Scheduled Time", :onboarding_test_session_at
# row "When Test Session Was Requested", :onboarding_test_session_at
# row "Test Session Outcome", :onboarding_test_session_outcome
# row "Notes", :onboarding_onboarder_notes
# row "Lost Reason", :onboarding_lost_reason
# row "Lost At", :onboarding_lost_at
# row "Escalated Reason", :onboarding_escalation_reason
# row "Escalated At", :onboarding_escalated_at
# end
# end
=begin
panel "Teacher Setting" do
attributes_table do
row :is_searchable
end
end if user.teacher
panel "Lessons" do
attributes_table do
row "Taken Lessons" do
table_for user.taken_lessons.order('created_at desc') do
column "View" do |lesson_session|
link_to("View", lesson_session.admin_url)
end
column :created_at
column :status
column "Teacher" do |lesson_session|
teacher = lesson_session.teacher
span do
link_to teacher.admin_name, teacher.admin_url
end
end
column "Start Time" do |lesson_session|
span do
lesson_session.music_session.pretty_scheduled_start(true)
end
br
span do
lesson_session.music_session.scheduled_start
end
end
end
end
row "Taught Lessons" do
table_for user.taught_lessons.order('created_at desc') do
column "View" do |lesson_session|
link_to("View", lesson_session.admin_url)
end
column :created_at
column :status
column "Student" do |lesson_session|
student = lesson_session.student
span do
link_to student.admin_name, student.admin_name
end
end
column "Start Time" do |lesson_session|
span do
lesson_session.music_session.pretty_scheduled_start(true)
end
br
span do
lesson_session.music_session.scheduled_start
end
end
end
end
end
end
=end
panel "JamTracks" do
div do
link_to "Give JamTrack", "../jam_track_rights/new"
end
attributes_table do
row "Purchased JamTracks" do
table_for user.purchased_jam_tracks.unscope(:order).order('original_artist asc', 'name asc') do
column "Artist", :original_artist
column "Name", :name
column "Can Download", :can_download
column "Version", :version
column "ID", :id
end
end
end
end
active_admin_comments
end
index do
column "ID" do |user|
link_to(truncate(user.id, {:length => 12}),
resource_path(user),
{:title => user.id})
end
column "Email" do |user|
link_to user.email, resource_path(user)
end
column :admin
column :updated_at
column :created_at
column :musician do |user| user.musician? ? true : false end
column :city
column :state
column :country
column :first_name
column :last_name
column :birth_date
column :gender
column :email_confirmed
column :photo_url
column :session_settings
column :can_invite
# default_actions # use this for all view/edit/delete links
index do
# actions # use this for all view/edit/delete links
column "Actions" do |user|
links = ''.html_safe
links << link_to("View", resource_path(user), :class => "member_link view_link")
links << link_to("Edit", edit_resource_path(user), :class => "member_link edit_link")
links
end
end
column "Email" do |user|
link_to user.email, resource_path(user)
end
column :subscription_plan_code
column :desired_plan_code
column :created_at
column :first_name
column :last_name
column :city
column :state
end
controller do
# this actually searches on first name, last name, and email, because of get_autocomplete_items defined below
autocomplete :user, :email, :full => true, :display_value => :autocomplete_display_name
autocomplete :user, :email, :full => true, :display_value => :autocomplete_display_name, extra_data: [:last_jam_addr]
def get_autocomplete_items(parameters)
User.select("email, first_name, last_name, id").where(["email ILIKE ? OR first_name ILIKE ? OR last_name ILIKE ?", "%#{parameters[:term]}%", "%#{parameters[:term]}%", "%#{parameters[:term]}%"])
term = parameters[:term]
if term.include?('@')
User.select("email, first_name, last_name, id, last_jam_addr").where(["email = ?", term]).limit(5)
else
User.select("email, first_name, last_name, id, last_jam_addr").where(["email ILIKE ? OR first_name ILIKE ? OR last_name ILIKE ?", "%#{term}%", "%#{term}%", "%#{term}%"]).limit(40)
end
end
@ -100,11 +667,14 @@ ActiveAdmin.register JamRuby::User, :as => 'Users' do
@user = resource
@user.email = params[:jam_ruby_user][:email]
@user.admin = params[:jam_ruby_user][:admin]
@user.musician = params[:jam_ruby_user][:musician]
@user.subscribe_email = params[:jam_ruby_user][:subscribe_email]
@user.musician = params[:jam_ruby_user][:musician]
@user.first_name = params[:jam_ruby_user][:first_name]
@user.last_name = params[:jam_ruby_user][:last_name]
@user.state = params[:jam_ruby_user][:state]
@user.city = params[:jam_ruby_user][:city]
@user.is_platform_instructor = params[:jam_ruby_user][:is_platform_instructor]
@user.gifted_jamtracks = params[:jam_ruby_user][:gifted_jamtracks]
if params[:jam_ruby_user][:show_frame_options].to_i == 1
@ -113,11 +683,117 @@ ActiveAdmin.register JamRuby::User, :as => 'Users' do
@user.delete_mod(User::MOD_GEAR, User::MOD_GEAR_FRAME_OPTIONS)
end
if params[:jam_ruby_user][:how_to_use_video_no_show].to_i == 1
@user.mod_merge({User::MOD_NO_SHOW => {User::HOWTO_USE_VIDEO_NOSHOW => true}})
else
@user.delete_mod(User::MOD_NO_SHOW, User::HOWTO_USE_VIDEO_NOSHOW)
end
if params[:jam_ruby_user][:configure_video_no_show].to_i == 1
@user.mod_merge({User::MOD_NO_SHOW => {User::CONFIGURE_VIDEO_NOSHOW => true}})
else
@user.delete_mod(User::MOD_NO_SHOW, User::CONFIGURE_VIDEO_NOSHOW)
end
@user.save!
redirect_to edit_admin_user_path(@user)
end
def user_latency_recommendation
recommendation_params = params[:latency_recommendation]
offset = recommendation_params[:offset].blank?? 0 : recommendation_params[:offset]
limit = recommendation_params[:limit].blank?? 20 : recommendation_params[:limit]
is_valid = [
recommendation_params[:my_user_id],
recommendation_params[:my_public_ip]
].all?{ |param|
param.present?
}
if is_valid
instruments = []
instruments << recommendation_params[:instruments_beginner].reject(&:blank?).map{|i| { id: i, proficiency: 1} }
instruments << recommendation_params[:instruments_advanced].reject(&:blank?).map{|i| { id: i, proficiency: 2} }
instruments << recommendation_params[:instruments_expert].reject(&:blank?).map{|i| { id: i, proficiency: 3} }
instruments.flatten!
genres = recommendation_params[:genres].reject(&:blank?)
wifi = recommendation_params[:wifi]
max_latency = recommendation_params[:max_latency]
data = {
my_user_id: recommendation_params[:my_user_id],
my_public_ip: recommendation_params[:my_public_ip],
offset: offset,
limit: limit
}
data.merge!({query: recommendation_params[:query]}) unless recommendation_params[:query].blank?
data.merge!({instruments: instruments}) unless instruments.empty?
data.merge!({genres: genres}) unless genres.empty?
data.merge!({wifi: wifi}) if %w(true false).include?(wifi)
data.merge!({max_latency: max_latency}) unless max_latency.blank?
latency_url = "#{Rails.application.config.latency_data_host}/recommendations"
uri = URI(latency_url)
begin
http = Net::HTTP.new(uri.host, uri.port)
http.read_timeout = 5
http.use_ssl = true if Rails.application.config.latency_data_host.start_with?("https://")
request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
request.body = data.to_json
request["Authorization"] = "Basic #{Rails.application.config.latency_data_host_auth_code}"
response = http.request(request)
@latency_recommendation = response.body
rescue => exception
render text: exception.message
end
else
flash[:error] = 'Please provide all required fields'
redirect_to admin_latency_recommendation_path
end
end
def user_latencies
latency_params = params[:latencies]
latency_url = "#{Rails.application.config.latency_data_host}/user_latencies"
uri = URI(latency_url)
if not ([latency_params[:my_user_id], latency_params[:my_public_ip], latency_params[:user_1_id]]).any?{|param| param.blank? }
user_ids = [latency_params[:user_1_id]]
user_ids.push(latency_params[:user_2_id]) unless latency_params[:user_2_id].blank?
user_ids.push(latency_params[:user_3_id]) unless latency_params[:user_3_id].blank?
user_ids.push(latency_params[:user_4_id]) unless latency_params[:user_4_id].blank?
user_ids.push(latency_params[:user_5_id]) unless latency_params[:user_5_id].blank?
begin
http = Net::HTTP.new(uri.host, uri.port)
http.read_timeout = 5
http.use_ssl = true if Rails.application.config.latency_data_host.start_with?("https://")
request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
request.body = {
my_user_id: latency_params[:my_user_id],
my_public_ip: latency_params[:my_public_ip],
users: user_ids
}.to_json
request["Authorization"] = "Basic #{Rails.application.config.latency_data_host_auth_code}"
response = http.request(request)
@user_latencies = response.body
#render text: JSON.pretty_generate(@user_latencies)
rescue => e
render text: e.message
end
else
flash[:error] = 'Please provide all required fields'
redirect_to admin_latency_between_users_path
end
end
end
end
end

View File

@ -0,0 +1,22 @@
ActiveAdmin.register_page "Harry Fox Request" do
menu :parent => 'JamTracks'
page_action :create_request, :method => :post do
name = params[:jam_ruby_jam_track_hfa_request][:name]
request = JamTrackHfaRequest.create(name)
redirect_to admin_harry_fox_request_path, :notice => "Request created. Check Amazon S3 in the 'jamkazam' bucket; specifically #{request.request_csv_filename}"
end
content do
active_admin_form_for JamTrackHfaRequest.new, :url => admin_harry_fox_request_create_request_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "New Harry Fox Licensing Request" do
f.input :name, :hint => "Some sort of name to help us remember what this request was for"
end
f.actions
end
end
end

View File

@ -17,8 +17,16 @@ ActiveAdmin.register JamRuby::JamTrackRight, :as => 'JamTrackRights' do
filter :jam_track
controller do
def create
jt_params = params[:jam_ruby_jam_track_right]
jt_params[:jam_track] =JamRuby::JamTrack.where("id=?", jt_params[:jam_track_id_val]).first # jt_params[:jam_track_id_val]
jt_params[:user] = JamRuby::User.where("id=?", jt_params[:user_id_val]).first # jt_params[:user_id_val]
create!
end
end
index do
default_actions
actions
#column "Order" do |right|
#link_to("Place", order_admin_jam_track_right_path(right)) + " | " +
@ -47,8 +55,14 @@ ActiveAdmin.register JamRuby::JamTrackRight, :as => 'JamTrackRights' do
form do |f|
f.inputs 'New Jam Track Right' do
f.input :jam_track, :required=>true, collection: JamTrack.all, include_blank: false
f.input :user, :required=>true, collection: User.all, include_blank: false
#f.input :jam_track, :required=>true, collection: JamTrack.all, include_blank: false
f.input :jam_track_id_val, :required=>true, :as => :hidden
f.input :jam_track, :required=>true, :as => :autocomplete, :url => autocomplete_jam_track_name_admin_jam_tracks_path, hint: 'Select a jamtrack to give to this user'
#f.input :user, :required=>true, collection: User.all, include_blank: false
f.input :user_id_val, :required=>true, :as => :hidden
f.input :user, :required=>true, :as => :autocomplete, :url => autocomplete_user_email_admin_users_path, hint: 'Give a free jamtrack to this user'
f.input :can_download, :required => true, as: :boolean, :input_html => { :checked => 'checked' }
end
f.actions
end

View File

@ -1,18 +1,42 @@
ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do
collection_action :autocomplete_jam_track_name, :method => :get
menu :label => 'JamTracks', :parent => 'JamTracks'
config.sort_order = 'name_asc'
config.batch_actions = false
filter :genre
filter :name
filter :original_artist
filter :genres
filter :status, :as => :select, collection: JamRuby::JamTrack::STATUS
scope("Default", default: true) { |scope| scope }
scope("Onboarding TODO") { |scope| scope.where('onboarding_exceptions is not null') }
scope("Tency Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tency Music'") }
scope("TimTracks Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tim Waurick'") }
scope("Drumma Boy Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Drumma Boy'") }
# scope("Onboarding TODO w/ Tency Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tency Music'").where('onboarding_exceptions is not null') }
form :partial => 'form'
controller do
# this actually searches on first name, last name, and email, because of get_autocomplete_items defined below
autocomplete :jam_track, :name, :full => true, :display_value => :autocomplete_display_name
def get_autocomplete_items(parameters)
JamTrack.select("name, original_artist, id").where(["name ILIKE ? OR original_artist ILIKE ?", "%#{parameters[:term]}%", "%#{parameters[:term]}%"])
end
end
index do
# default_actions # use this for all view/edit/delete links
# actions # use this for all view/edit/delete links
column "Actions" do |jam_track|
links = ''.html_safe
clz = "member_link view_link show_tracks"
@ -24,11 +48,21 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do
column :original_artist
column :name
column :onboarding_flags do |jam_track| jam_track.onboard_warnings end
column :onboarding_exceptions do |jam_track|
if jam_track.onboarding_exceptions
exceptions = jam_track.onboarding_exceptions
exceptions.keys.join(',')
else
''
end
end
column :status
column :master_track do |jam_track| jam_track.master_track.nil? ? 'None' : (link_to "Download", jam_track.master_track.url_by_sample_rate(44)) end
column :licensor
column :genre
column :genres do |jam_track|
jam_track.genres.map(&:description).join(',')
end
column :price
column :reproduction_royalty
column :public_performance_royalty
@ -36,6 +70,7 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do
column :licensor_royalty_amount
column :id
=begin
column :jam_track_tracks do |jam_track|
table_for jam_track.jam_track_tracks.order('position ASC') do
column :id
@ -58,6 +93,8 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do
end
end
end
=end
end

View File

@ -0,0 +1,40 @@
ActiveAdmin.register JamRuby::Jamblaster, :as => 'Jamblaster' do
config.filters = false
menu :label => 'JamBlasters', :parent => 'JamBlaster'
scope("Connected", default: true) { |scope| scope.where('client_id in (select client_id from connections)') }
scope("All") { |scope| scope.order('created_at desc') }
form do |f|
f.inputs 'New JamBlaster' do
f.input :user, required: true, collection: User.all, include_blank: false
f.input :serial_no, required: true
f.input :client_id, required: false
f.input :users, required: true, collection: User.all, include_blank: false
end
f.actions
end
index do
# actions # use this for all view/edit/delete links
column 'Serial' do |oo|
oo.serial_no
end
column 'IPv4' do |oo|
oo.ipv4_link_local
end
column 'IPv6' do |oo|
oo.ipv6_link_local
end
end
end

View File

@ -0,0 +1,185 @@
class Spacer
def self.spacer(val, row)
percentage = ((val * 100) / row.total.to_f).round(1).to_s
('%-5.5s' % percentage).gsub(' ', '&nbsp;') + '%&nbsp;-&nbsp;' + val.to_s
end
end
=begin
select
count(id) as total,
count(first_downloaded_client_at) as downloaded,
count(first_ran_client_at) as ran_client,
count(first_certified_gear_at) as ftue,
count(first_music_session_at) as any_session,
count(first_real_music_session_at) as real_session,
count(first_good_music_session_at) as good_session,
count(first_invited_at) as invited,
count(first_friended_at) as friended,
count(first_subscribed_at) as subscribed
from users where users.created_at >= '2024-11-01' AND users.created_at < '2025-04-01'
select first_name, last_name, email
from users where users.created_at >= '2024-11-01' AND users.created_at < '2025-04-01'
AND first_music_session_at is NULL;
=end
ActiveAdmin.register_page "Jammers Subscription Cohorts" do
menu :parent => 'Reports'
content :title => "Jammers Subscription Cohorts" do
filter_type = params[:filter_type] || 'All'
filter_campaign = params[:filter_campaign]
filter_campaign_id = params[:filter_campaign_id]
filter_ad_set = params[:filter_ad_set]
filter_ad_name = params[:filter_ad_name]
campaigns = User.where("origin_utm_medium = 'cpc'").distinct.pluck(:origin_utm_campaign).compact.sort
campaign_ids = User.where("origin_utm_medium = 'cpc'").distinct.pluck(:origin_id).compact.sort
ad_sets = User.where("origin_utm_medium = 'cpc'").distinct.pluck(:origin_term).compact.sort
ad_names = User.where("origin_utm_medium = 'cpc'").distinct.pluck(:origin_content).compact.sort
div style: "margin-bottom: 20px; padding: 10px; background-color: #f4f4f4; border-radius: 4px;" do
form action: admin_jammers_subscription_cohorts_path, method: :get do
span "Source: ", style: "font-weight: bold; margin-right: 5px;"
select name: 'filter_type', onchange: 'this.form.submit()', style: "margin-right: 15px;" do
option "All", value: 'All', selected: filter_type == 'All'
option "Organic", value: 'Organic', selected: filter_type == 'Organic'
option "Advertising", value: 'Advertising', selected: filter_type == 'Advertising'
end
if filter_type == 'Advertising'
div style: "margin-top: 10px;" do
span "Campaign Name: ", style: "font-weight: bold; margin-right: 5px;"
select name: 'filter_campaign', onchange: 'this.form.submit()', style: "margin-right: 15px;" do
option "All", value: ''
option "Null", value: 'NULL', selected: filter_campaign == 'NULL'
campaigns.each do |c|
option c, value: c, selected: filter_campaign == c
end
end
end
div style: "margin-top: 10px;" do
span "Campaign ID: ", style: "font-weight: bold; margin-right: 5px;"
select name: 'filter_campaign_id', onchange: 'this.form.submit()', style: "margin-right: 15px;" do
option "All", value: ''
option "Null", value: 'NULL', selected: filter_campaign_id == 'NULL'
campaign_ids.each do |c|
option c, value: c, selected: filter_campaign_id == c
end
end
end
div style: "margin-top: 10px;" do
span "Ad Set: ", style: "font-weight: bold; margin-right: 5px;"
select name: 'filter_ad_set', onchange: 'this.form.submit()', style: "margin-right: 15px;" do
option "All", value: ''
option "Null", value: 'NULL', selected: filter_ad_set == 'NULL'
ad_sets.each do |c|
option c, value: c, selected: filter_ad_set == c
end
end
div style: "margin-top: 10px;" do
span "Ad Name: ", style: "font-weight: bold; margin-right: 5px;"
select name: 'filter_ad_name', onchange: 'this.form.submit()', style: "margin-right: 15px;" do
option "All", value: ''
option "Null", value: 'NULL', selected: filter_ad_name == 'NULL'
ad_names.each do |c|
option c, value: c, selected: filter_ad_name == c
end
end
end
end
end
noscript { input type: :submit, value: "Filter" }
end
end
h2 "Users Grouped By Month as Paying Subscribers"
query = User.select(%Q{date_trunc('month', users.created_at) as month,
count(id) as total,
count(first_downloaded_client_at) as downloaded,
count(first_ran_client_at) as ran_client,
count(first_certified_gear_at) as ftue,
count(first_music_session_at) as any_session,
count(first_real_music_session_at) as real_session,
count(first_good_music_session_at) as good_session,
count(first_invited_at) as invited,
count(first_friended_at) as friended,
count(first_subscribed_at) as subscribed,
count(first_played_jamtrack_at) as played_jamtrack
})
.joins(%Q{LEFT JOIN LATERAL (
SELECT
j.created_at
FROM
jam_track_rights as j
WHERE
j.user_id = users.id
ORDER BY
j.created_at
LIMIT 1 -- Select only that single row
) j ON TRUE })
if filter_type == 'Organic'
query = query.where("users.origin_utm_source = 'organic'")
elsif filter_type == 'Advertising'
query = query.where("origin_utm_medium = 'cpc'")
if filter_campaign.present?
if filter_campaign == 'NULL'
query = query.where("users.origin_utm_campaign IS NULL")
elsif filter_campaign != 'All'
query = query.where("users.origin_utm_campaign = ?", filter_campaign)
end
end
if filter_campaign_id.present?
if filter_campaign_id == 'NULL'
query = query.where("users.origin_id IS NULL")
elsif filter_campaign_id != 'All'
query = query.where("users.origin_id = ?", filter_campaign_id)
end
end
if filter_ad_set.present?
if filter_ad_set == 'NULL'
query = query.where("users.origin_term IS NULL")
elsif filter_ad_set != 'All'
query = query.where("users.origin_term = ?", filter_ad_set)
end
end
if filter_ad_name.present?
if filter_ad_name == 'NULL'
query = query.where("users.origin_content IS NULL")
elsif filter_ad_name != 'All'
query = query.where("users.origin_content = ?", filter_ad_name)
end
end
end
table_for query.group("date_trunc('month', users.created_at)")
.where("j.created_at IS NULL OR (j.created_at - users.created_at) >= INTERVAL '2 hours'")
.order("date_trunc('month', users.created_at) DESC") do |row|
column "Month", Proc.new { |user| user.month.strftime('%B %Y') }
column "Total", :total
column "Subscribed", Proc.new { |user| raw(Spacer.spacer(user.subscribed, user)) }
column "Downloaded", Proc.new { |user| raw(Spacer.spacer(user.downloaded, user)) }
column "Ran Client", Proc.new { |user| raw(Spacer.spacer(user.ran_client, user)) }
column "FTUE", Proc.new { |user| raw(Spacer.spacer(user.ftue, user)) }
column "Any Session", Proc.new { |user| raw(Spacer.spacer(user.any_session, user)) }
column "2+ Session", Proc.new { |user| raw(Spacer.spacer(user.real_session, user)) }
column "Good Session", Proc.new { |user| raw(Spacer.spacer(user.good_session, user)) }
column "Invited", Proc.new { |user| raw(Spacer.spacer(user.invited, user)) }
column "Friended", Proc.new { |user| raw(Spacer.spacer(user.friended, user)) }
column "Played JT", Proc.new { |user| raw(Spacer.spacer(user.played_jamtrack, user)) }
end
end
end

View File

@ -0,0 +1,73 @@
class Spacer
def self.spacer(val, row)
percentage = ((val * 100) / row.total.to_f).round(1).to_s
('%-5.5s' % percentage).gsub(' ', '&nbsp;') + '%&nbsp;-&nbsp;' + val.to_s
end
end
=begin
select
count(id) as total,
count(first_downloaded_client_at) as downloaded,
count(first_ran_client_at) as ran_client,
count(first_certified_gear_at) as ftue,
count(first_music_session_at) as any_session,
count(first_real_music_session_at) as real_session,
count(first_good_music_session_at) as good_session,
count(first_invited_at) as invited,
count(first_friended_at) as friended,
count(first_subscribed_at) as subscribed
from users where users.created_at >= '2024-11-01' AND users.created_at < '2025-04-01'
select first_name, last_name, email
from users where users.created_at >= '2024-11-01' AND users.created_at < '2025-04-01'
AND first_music_session_at is NULL;
=end
ActiveAdmin.register_page "JamTrack Subscription Cohorts" do
menu :parent => 'Reports'
content :title => "JamTrack Subscription Cohorts" do
h2 "Users Grouped By Month as Paying Subscribers"
table_for User.select(%Q{date_trunc('month', users.created_at) as month,
count(id) as total,
count(first_downloaded_client_at) as downloaded,
count(first_ran_client_at) as ran_client,
count(first_certified_gear_at) as ftue,
count(first_music_session_at) as any_session,
count(first_real_music_session_at) as real_session,
count(first_good_music_session_at) as good_session,
count(first_invited_at) as invited,
count(first_friended_at) as friended,
count(first_subscribed_at) as subscribed,
count(first_played_jamtrack_at) as played_jamtrack
})
.joins(%Q{INNER JOIN LATERAL (
SELECT
j.created_at
FROM
jam_track_rights as j
WHERE
j.user_id = users.id
ORDER BY
j.created_at
LIMIT 1 -- Select only that single row
) j ON (j.created_at - users.created_at) < INTERVAL '2 hours' })
.group("date_trunc('month', users.created_at)").order("date_trunc('month', users.created_at) DESC") do |row|
column "Month", Proc.new { |user| user.month.strftime('%B %Y') }
column "Total", :total
column "Subscribed", Proc.new { |user| raw(Spacer.spacer(user.subscribed, user)) }
column "Downloaded", Proc.new { |user| raw(Spacer.spacer(user.downloaded, user)) }
column "Ran Client", Proc.new { |user| raw(Spacer.spacer(user.ran_client, user)) }
column "FTUE", Proc.new { |user| raw(Spacer.spacer(user.ftue, user)) }
column "Any Session", Proc.new { |user| raw(Spacer.spacer(user.any_session, user)) }
column "2+ Session", Proc.new { |user| raw(Spacer.spacer(user.real_session, user)) }
column "Good Session", Proc.new { |user| raw(Spacer.spacer(user.good_session, user)) }
column "Invited", Proc.new { |user| raw(Spacer.spacer(user.invited, user)) }
column "Friended", Proc.new { |user| raw(Spacer.spacer(user.friended, user)) }
column "Played JT", Proc.new { |user| raw(Spacer.spacer(user.played_jamtrack, user)) }
end
end
end

View File

@ -0,0 +1,78 @@
ActiveAdmin.register JamRuby::LessonBooking, :as => 'LessonBookings' do
menu :label => 'Lesson Booking', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
scope("All", default: true) { |scope| scope.unscoped.order('created_at desc') }
scope("Requested") { |scope| scope.unscoped.where(status: LessonBooking::STATUS_REQUESTED).order('created_at desc') }
scope("Approved") { |scope| scope.unscoped.approved.order('created_at desc') }
scope("Suspended") { |scope| scope.unscoped.suspended.order('created_at desc') }
scope("Canceled") { |scope| scope.unscoped.canceled.order('created_at desc') }
index do
column "User Link" do |lesson_booking|
span do
link_to "Lesson Session URL", "#{lesson_booking.next_lesson.admin_url}"
end
end
column "Type" do |lesson_booking|
lesson_booking.display_type
end
column "Status" do |lesson_booking|
lesson_booking.status
end
column "Teacher" do |lesson_booking|
teacher = lesson_booking.teacher
span do
link_to "#{teacher.name} (#{teacher.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
end
end
column "Student" do |lesson_booking|
student = lesson_booking.student
span do
link_to "#{student.name} (#{student.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{student.id}"
end
end
end
show do
attributes_table do
row "User Link" do |lesson_booking|
span do
link_to "Web URL", "#{Rails.application.config.external_root_url}/client#/jamclass/lesson-booking/#{lesson_booking.id}"
end
end
row "Type" do |lesson_booking|
lesson_booking.display_type
end
row "Status" do |lesson_booking|
lesson_booking.status
end
row "Teacher" do |lesson_booking|
teacher = lesson_booking.teacher
span do
link_to "#{teacher.name} (#{teacher.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
end
end
row "Student" do |lesson_booking|
student = lesson_booking.student
span do
link_to "#{student.name} (#{student.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{student.id}"
end
end
row "Created At" do |lesson_booking|
lesson_booking.created_at
end
row "Booked Price" do |lesson_booking|
lesson_booking.booked_price
end
end
end
end

View File

@ -0,0 +1,295 @@
ActiveAdmin.register JamRuby::LessonSession, :as => 'LessonSessions' do
menu :label => 'Lesson Session', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = true
scope("All", default: true) { |scope| scope.order('created_at desc') }
scope("Requested") { |scope| scope.where(status: LessonBooking::STATUS_REQUESTED).order('created_at desc') }
scope("Approved") { |scope| scope.approved.order('created_at desc') }
scope("Suspended") { |scope| scope.suspended.order('created_at desc') }
scope("Canceled") { |scope| scope.canceled.order('created_at desc') }
scope("Missed") { |scope| scope.missed.order('created_at desc') }
scope("Completed") { |scope| scope.completed.order('created_at desc') }
#filter :jamuser_full_name_or_user_email_cont, label: 'Student Name', as: :string
#filter :teacher_user_email_cont, label: 'Student Name', as: :string
filter :student_full_name_or_user_email_cont, label: 'Student Name Or Email', as: :string
filter :by_search_teacher_in, label: 'Teacher Name Or Email', as: :string
filter :by_lesson_package_type_in, label: 'Card Type', as: :select, collection: -> { LessonPackageType.all.map { |t| [t.admin_name, t.id] } }
controller do
active_admin_config.includes.push :teacher, :music_session
end
action_item :only => [:show] do
link_to('Mark As Success', mark_success_admin_lesson_session_path(resource.id))
end
member_action :mark_success, :method => :get do
if !resource.success
resource.mark_lesson(true, true)
end
redirect_to :back
end
index do
column "Actions" do |teacher|
links = ''.html_safe
links << link_to("View", resource_path(teacher), :class => "member_link view_link")
links << link_to("Edit", edit_resource_path(teacher), :class => "member_link edit_link")
links
end
column "App Link" do |lesson_session|
lesson_booking = lesson_session.lesson_booking
span do
link_to "link", "#{Rails.application.config.external_root_url}/client#/jamclass/lesson-booking/#{lesson_booking.id}"
end
end
column "Status" do |lesson_session|
link_to lesson_session.status, admin_lesson_session_path(lesson_session.id)
end
column "Start Time" do |lesson_session|
span do
if lesson_session.music_session.nil?
raise "Lessonsesison with no id #{lesson_session.id}"
else
lesson_session.music_session.pretty_scheduled_start(true)
end
end
br
span do
lesson_session.music_session.scheduled_start
end
end
column "Duration" do |lesson_session|
lesson_session.duration
end
column "Teacher" do |lesson_session|
teacher = lesson_session.teacher
span do
# link_to "#{teacher.name} (#{teacher.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
link_to teacher.admin_name, teacher.admin_url
end
end
column "Student" do |lesson_session|
student = lesson_session.student
span do
#link_to "#{student.name} (#{student.email})", "#{Rails.application.config.external_root_url}/client#/profile/#{student.id}"
link_to student.admin_name, student.admin_url
end
end
end
show do
attributes_table do
row "Lesson Booking" do |lesson_session|
span do
link_to "Lesson Booking", lesson_session.lesson_booking.admin_url
end
end
row "App Link" do |lesson_session|
lesson_booking = lesson_session.lesson_booking
span do
link_to "link", "#{Rails.application.config.external_root_url}/client#/jamclass/lesson-booking/#{lesson_booking.id}"
end
end
row "Status" do |lesson_session|
lesson_session.status
end
row "Start Time" do |lesson_session|
span do
lesson_session.music_session.pretty_scheduled_start(true)
end
br
span do
lesson_session.music_session.scheduled_start
end
end
row "Duration" do |lesson_session|
lesson_session.duration
end
row "Teacher" do |lesson_session|
teacher = lesson_session.teacher
span do
# link_to teacher.admin_name, "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
link_to teacher.admin_name, teacher.admin_url
end
end
row "Student" do |lesson_session|
student = lesson_session.student
span do
# link_to student.admin_name, "#{Rails.application.config.external_root_url}/client#/profile/#{student.id}"
link_to student.admin_name, student.admin_url
end
end
row "Followup Emails Sent" do |lesson_session|
span do
lesson_session.sent_notices
end
end
row "Success" do |lesson_session|
span do
lesson_session.success
end
end
row "Billed" do |lesson_session|
span do
if lesson_session.is_test_drive?
'N/A (because is Test Drive)'
else
lesson_session.billed
end
end
end
row "Distribution" do |lesson_session|
distribution = lesson_session.teacher_distribution
if distribution
payment = distribution.teacher_payment
if payment
charge = payment.teacher_payment_charge
end
end
div do
if distribution
table_for distribution do
column :amount_in_cents
column :distributed
column :ready
column :teacher_fee_in_cents
column :reduced_roll_forward_amount_in_cents
column :created_at
column :updated_at
column do
link_to "Link", distribution.admin_url
end
end
else
''
end
end
end
row "Teacher Payment" do |lesson_session|
distribution = lesson_session.teacher_distribution
if distribution
payment = distribution.teacher_payment
end
div do
if payment
table_for payment do
column :amount_in_cents
column :fee_in_cents
column :created_at
column :updated_at
column do
link_to "Link", payment.admin_url
end
end
else
''
end
end
end
row "Stripe Charge" do |lesson_session|
distribution = lesson_session.teacher_distribution
if distribution
payment = distribution.teacher_payment
if payment
charge = payment.teacher_payment_charge
end
end
div do
if charge
table_for charge do
column :amount_in_cents
column :fee_in_cents
column :billed
column :billed_at
column :post_processed
column :post_processed_at
column :billing_error_reason
column :billing_error_detail
column :billing_should_retry
column :billing_attempts
column :stripe_charge_id
column :created_at
column :updated_at
column do
link_to "Stripe", "https://dashboard.stripe.com/payments/#{charge.stripe_charge_id}" if charge.stripe_charge_id
end
column do
link_to "Link", charge.admin_url
end
end
else
''
end
end
end
row "Admin Marked" do |lesson_session|
span do
lesson_session.admin_marked
end
end
row "Description" do |lesson_session|
span do
lesson_session.timed_description
end
end
row "Session" do |lesson_session|
span do
link_to "Session", lesson_session.music_session.admin_url
end
end
row "Analysis" do |lesson_session|
if lesson_session.analysed
span style: "white-space: pre;" do
begin
JSON.pretty_generate(lesson_session.analysis_json)
rescue
"barf"
end
end
end
end
row "Chat Messages" do |lesson_session|
div do
table_for ChatMessage.unscoped.where(lesson_session: lesson_session).order(:created_at) do
column :created_at
column do |chat_msg|
chat_msg.purpose ? chat_msg.purpose : 'Chat Msg'
end
column 'Sender' do |chat_msg|
link_to(chat_msg.user.name, chat_msg.user.admin_url)
end
column :target_user do |chat_msg|
chat_msg.target_user ? link_to(chat_msg.target_user.name, chat_msg.target_user.admin_url) : ''
end
column :message
column :id
end
end
end
end
end
end

View File

@ -0,0 +1,20 @@
ActiveAdmin.register JamRuby::LiveStream, :as => 'LiveStream' do
menu :parent => 'Misc'
config.sort_order = 'created_at DESC'
filter :listed
filter :event_id
before_build do |record|
if !record.event_type.nil?
puts "escape"
else
record.slug = 'please-do-this-sort-of-thing'
record.starts_at = 10.days.from_now.midnight
record.ends_at = 11.days.from_now.midnight
record.event_type = 'eventbrite'
end
end
end

View File

@ -0,0 +1,38 @@
ActiveAdmin.register_page "Monthly Stats" do
menu :parent => 'Reports'
content :title => "Monthly Stats" do
h2 "Distinct Users Playing in Sessions"
table_for MusicSession.select([:month, :count]).find_by_sql("select date_trunc('month', msuh.created_at)::date as month, count(distinct(user_id)) from music_sessions_user_history msuh group by month order by month desc;") do
column "Month", Proc.new { |row| row.month.strftime('%B %Y') }
column "Users", :count
end
h2 "Music Sessions"
table_for MusicSession.select([:month, :count]).find_by_sql("select date_trunc('month', ms.created_at)::date as month, count(id) from music_sessions ms where started_at is not null group by month order by month desc;") do
column "Month", Proc.new { |row| row.month.strftime('%B %Y') }
column "Sessions", :count
end
h2 "Distinct Users Who Played with a JamTrack"
table_for MusicSession.select([:month, :count]).find_by_sql("select date_trunc('month', jts.created_at)::date as month, count(distinct(user_id)) from jam_track_sessions jts group by month order by month desc;") do
column "Month", Proc.new { |row| row.month.strftime('%B %Y') }
column "Users", :count
end
h2 "Music Sessions with JamTracks Played"
table_for MusicSession.select([:month, :count]).find_by_sql("select date_trunc('month', jts.created_at)::date as month, count(distinct(music_session_id)) from jam_track_sessions jts where session_type = 'session' group by month order by month desc;") do
column "Month", Proc.new { |row| row.month.strftime('%B %Y') }
column "Sessions", :count
end
h2 "JamTrack Web Player Sessions"
table_for MusicSession.select([:month, :count]).find_by_sql("select date_trunc('month', jts.created_at)::date as month, count(id) from jam_track_sessions jts where session_type = 'browser' group by month order by month desc;") do
column "Month", Proc.new { |row| row.month.strftime('%B %Y') }
column "Sessions", :count
end
end
end

View File

@ -60,4 +60,51 @@ ActiveAdmin.register JamRuby::MusicSession, :as => 'Music Session' do
end
end
show do
attributes_table do
row :id
row :name
row :description
row :creator do |session|
link_to(session.creator.admin_name, session.creator.admin_url)
end
row :created_at
row :started_at
row :session_ended_at do |session| session.session_removed_at end
row :genre
row :recurring_mode
row :timezone
row :fan_access
row :music_access
row :approval_required
row :open_rsvps
row :is_unstructured_rsv
row :canceled
row :lesson_session do |session|
lesson_session = session.lesson_session
if lesson_session
link_to("Lesson", lesson_session.admin_url)
else
''
end
end
row 'Session Attendances' do |session|
table_for(msuh = session.music_session_user_histories) do
column :user do |msuh| msuh.user.admin_name end
column :joined do |msuh| msuh.created_at.strftime('%b %d %Y, %H:%M') end
column :duration do |msuh| "#{msuh.duration_minutes.round} minutes" end
column :perf_data do |msuh|
unless (uu = msuh.perf_uri).blank?
link_to('Per Data Link', uu)
else
'No Perf Data'
end
end
end
end
end
end
end

6
admin/app/admin/news.rb Normal file
View File

@ -0,0 +1,6 @@
ActiveAdmin.register JamRuby::News, :as => 'News' do
menu :parent => 'Misc'
end

View File

@ -0,0 +1,91 @@
ActiveAdmin.register JamRuby::User, :as => 'Onboarder' do
menu :label => 'Onboarder Settings', :parent => 'JamClass'
config.sort_order = 'created_at'
config.batch_actions = true
config.per_page = 100
config.paginate = true
config.filters = false
config.clear_action_items!
batch_action :destroy, false
scope("All Onboarders", default: true) { |scope| scope.where(is_onboarder: true).order(:created_at) }
controller do
active_admin_config.includes.push :onboarding_users
def update
resource.max_onboardings = params[:jam_ruby_user][:max_onboardings]
resource.save!
success.json {}
end
end
index do
def last_week
@last_week_result ||= calculate_last_week
end
def calculate_last_week
start_day = Date.today.beginning_of_week(:sunday).yesterday.beginning_of_week(:sunday)
end_day = start_day.end_of_week(:sunday)
result = [start_day, end_day]
result
end
def this_week
@this_week_result ||= calculate_this_week
end
def calculate_this_week
start_day = Date.today.beginning_of_week(:sunday)
end_day = start_day.end_of_week(:sunday)
result = [start_day, end_day]
result
end
def week_display(week)
start_day = week[0]
end_day = week[1]
mmyy = start_day.strftime('%b')
"#{mmyy} #{start_day.day}-#{end_day.day}"
end
def onboarding_select
array = []
100.times do |i|
array.push [i.to_s, i.to_s]
end
array
end
column "Name" do |user|
div do
div do
link_to user.name, user.admin_url
end
div do
user.email
end
end
end
column "Max Onboardings" do |user|
best_in_place user, :max_onboardings, as: :select, url: admin_onboarder_path(user),:collection => onboarding_select
end
column "Current Week #{week_display(this_week)}" do |user|
start_date, last_date = this_week
user.onboarding_users.where(onboarder_assigned_at: start_date..last_date).count
end
column "Previous Week #{week_display(last_week)}" do |user|
start_date, last_date = last_week
user.onboarding_users.where(onboarder_assigned_at: start_date..last_date).count
end
column "Current Student WIP" do |user|
user.onboarding_users.where('onboarding_status = ? OR onboarding_status = ?', User::ONBOARDING_STATUS_ASSIGNED, User::ONBOARDING_STATUS_EMAILED).count
end
end
end

View File

@ -0,0 +1,138 @@
ActiveAdmin.register JamRuby::User, :as => 'OnboarderManagement' do
menu :label => 'Onboarder Management', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = true
config.per_page = 100
config.paginate = true
config.filters = true
config.clear_action_items!
batch_action :destroy, false
batch_action :onboarder, form: -> { {
support_consultant: (User.where(is_onboarder: true).includes(:onboarding_users).map {|user| ["#{user.name} (#{user.onboarding_users.where('onboarding_status = ? OR onboarding_status = ?', User::ONBOARDING_STATUS_ASSIGNED, User::ONBOARDING_STATUS_EMAILED).count})", user.id]}).to_a.unshift(['Unassign', ''])
} } do |ids, inputs|
onboarder = inputs[:support_consultant]
if onboarder.blank?
onboarder = nil
else
onboarder = User.find(onboarder)
end
ids.each do |id|
user = User.find(id)
user.onboarder = onboarder
user.onboarder_assigned_at = Date.today
user.save
end
if onboarder
msg = 'Assigned ' + User.find(onboarder).name + " to #{ids.length} users"
else
msg = "Unassigned any Support Consultant from #{ids.length} users"
end
redirect_to :back, notice: msg
end
filter :jamuser_full_name_or_email_cont, label: 'Name Or Email', as: :string
filter :onboarder, as: :select, :collection => User.where(is_onboarder: true), label: 'Support Consultant'
filter :onboarder_id_blank, :as => :boolean, label: 'Unassigned'
filter :onboarding_escalation_reason_present, :as => :boolean, label: 'Escalated'
scope("Unassigned", default: true) { |scope| scope.joins(:posa_cards).where(onboarding_status: User::ONBOARDING_STATUS_UNASSIGNED).where('posa_cards.lesson_package_type_id in (?)', LessonPackageType::AMAZON_PACKAGES + LessonPackageType::LESSON_PACKAGE_TYPES) }
scope("Escalated") { |scope| scope.joins(:posa_cards).where('onboarding_status = ?', User::ONBOARDING_STATUS_ESCALATED).where('posa_cards.lesson_package_type_id in (?)', LessonPackageType::AMAZON_PACKAGES + LessonPackageType::LESSON_PACKAGE_TYPES) }
scope("Needs Manual Email") { |scope| scope.joins(:posa_cards).where(onboarding_status: User::ONBOARDING_STATUS_ONBOARDED).where('(stuck_take_flesson = TRUE AND sent_admin_take_flesson_email_at is NULL) OR (stuck_take_2nd_flesson = TRUE AND sent_admin_take_2nd_flesson_email_at IS NULL) OR (stuck_take_plesson = TRUE AND sent_admin_take_plesson_email_at IS NULL)').where('posa_cards.lesson_package_type_id in (?)', LessonPackageType::AMAZON_PACKAGES + LessonPackageType::LESSON_PACKAGE_TYPES) }
scope("Assigned") { |scope| scope.joins(:posa_cards).where('onboarding_status = ? OR onboarding_status = ?', User::ONBOARDING_STATUS_ASSIGNED, User::ONBOARDING_STATUS_EMAILED).where('posa_cards.lesson_package_type_id in (?)', LessonPackageType::AMAZON_PACKAGES + LessonPackageType::LESSON_PACKAGE_TYPES) }
scope("All TestDrive/Amazon Users") { |scope| scope.joins(:posa_cards).where('posa_cards.lesson_package_type_id in (?)', LessonPackageType::AMAZON_PACKAGES + LessonPackageType::LESSON_PACKAGE_TYPES) }
controller do
active_admin_config.includes.push :onboarding_users
end
index do
selectable_column
column "Name" do |user|
link_to user.name, user.admin_url
end
column :email
column :onboarding_status
column "Lost Reason", :onboarding_lost_reason
column "Escalated Reason", :onboarding_escalation_reason
column "Support Consultant" do |user|
if user.onboarder
link_to "#{user.onboarder.name} (#{user.onboarder.onboarding_users.where('onboarding_status = ? OR onboarding_status = ?', User::ONBOARDING_STATUS_ASSIGNED, User::ONBOARDING_STATUS_EMAILED).count})", user.onboarder.admin_url
else
end
end
column "Manual Email Needed" do |user|
div do
if user.stuck_take_plesson
link_to("sent take paid lesson email", mark_sent_paid_lesson_admin_onboarder_management_path(user.id), {'data-confirm': "You sent an email manually to the user to remind them to take a paid lesson?"})
elsif user.stuck_take_2nd_flesson
link_to("sent take 2nd lesson email", mark_sent_2nd_free_lesson_admin_onboarder_management_path(user.id), {'data-confirm': "You sent an email manually to the user to remind them to take 2nd free lesson?"})
elsif user.stuck_take_flesson
link_to("sent take 1st lesson email", mark_sent_1st_free_lesson_admin_onboarder_management_path(user.id), {'data-confirm': "You sent an email manually to the user to remind them to take a 1st free lesson?"})
else
end
end
end
column "Signup" do |user|
user.created_at.to_date
end
column "Assigned", :onboarder_assigned_at
column "Email 1", :onboarding_email_1_sent_at
column "Email 2", :onboarding_email_2_sent_at
column "Email 3", :onboarding_email_3_sent_at
column "Email 4", :onboarding_email_4_sent_at
column "Email 5", :onboarding_email_5_sent_at
column "Test Session", :onboarding_test_session_scheduled_at
column "Admin Actions" do |user|
div do
if user.is_waiting_onboarding || user.is_onboarding
link_to("mark onboarded", mark_onboarded_admin_onboarder_management_path(user.id), { 'data-confirm': "Mark onboarded?"})
end
if user.is_waiting_onboarding || user.is_onboarding
link_to("mark lost", mark_lost_admin_onboarder_management_path(user.id), { 'data-confirm': "Mark lost (reason = Other)?"})
end
end
end
column "Onboarder Notes", :onboarding_onboarder_notes
end
member_action :update_onboarder, :method => :post do
resource.onboarder = params[:onboarder]
resource.save!
redirect_to :back
end
member_action :mark_sent_paid_lesson, :method => :get do
resource.mark_sent_paid_lesson
redirect_to :back
end
member_action :mark_sent_2nd_free_lesson, :method => :get do
resource.mark_sent_2nd_free_lesson
redirect_to :back
end
member_action :mark_sent_1st_free_lesson, :method => :get do
resource.mark_sent_1st_free_lesson
redirect_to :back
end
member_action :mark_onboarded, :method => :get do
resource.mark_onboarded
redirect_to :back
end
member_action :mark_lost, :method => :get do
resource.mark_lost
redirect_to :back
end
end

View File

@ -0,0 +1,117 @@
ActiveAdmin.register_page "POSA Card Uploads" do
menu :label => 'Posa Cards Upload', :parent => 'JamClass'
page_action :upload_posacards, :method => :post do
PosaCard.transaction do
puts params
file = params[:jam_ruby_posa_card][:csv]
array_of_arrays = CSV.read(file.tempfile.path)
array_of_arrays.each do |row|
if row.length != 5
raise "UKNONWN CSV FORMAT! Must be 5 columns"
end
code = row[0]
lesson_package_type = row[1]
preactivate = row[2].strip.downcase == "true"
requires_purchase = row[3].downcase== "true"
is_test = row[4].strip.downcase == "true"
posa_card = PosaCard.new
posa_card.code = code
posa_card.lesson_package_type = LessonPackageType.find(lesson_package_type)
posa_card.preactivate = preactivate
posa_card.requires_purchase = requires_purchase
posa_card.purchased = !requires_purchase
posa_card.card_type = params[:jam_ruby_posa_card][:card_type]
posa_card.is_test = is_test
if posa_card.card_type == PosaCard::JAM_CLASS_4
posa_card.is_lesson = true
posa_card.credits = 4
elsif posa_card.card_type == PosaCard::JAM_CLASS_2
posa_card.is_lesson = true
posa_card.credits = 2
end
posa_card.origin = file .original_filename
posa_card.save!
end
redirect_to admin_posa_card_uploads_path, :notice => "Created #{array_of_arrays.length} POSA cards!"
end
end
=begin
form :html => {:multipart => true} do |f|
f.inputs "Details" do
f.input :version, :hint => "Should match Jenkins build number of artifact"
f.input :environment, :hint => "Typically just 'public'"
f.input :product, :as => :select, :collection => JamRuby::ArtifactUpdate::PRODUCTS
end
f.inputs "Artifact Upload" do
f.input :uri, :as => :file, :hint => "Upload the artifact from Jenkins"
end
f.actions
end
# fr manual entry of huge CSVs from rails c command line
PosaCard.transaction do
array_of_arrays = CSV.read('codes.csv')
array_of_arrays.each do |row|
if row.length != 5
raise "UKNONWN CSV FORMAT! Must be 5 columns"
end
code = row[0]
lesson_package_type = row[1]
preactivate = row[2].strip.downcase == "true"
requires_purchase = row[3].downcase== "true"
is_test = row[4].strip.downcase == "true"
posa_card = PosaCard.new
posa_card.code = code
posa_card.lesson_package_type = LessonPackageType.find(lesson_package_type)
posa_card.preactivate = preactivate
posa_card.requires_purchase = requires_purchase
posa_card.purchased = !requires_purchase
posa_card.card_type = 'jam_class_2'
posa_card.is_test = is_test
if posa_card.card_type == PosaCard::JAM_CLASS_4
posa_card.is_lesson = true
posa_card.credits = 4
elsif posa_card.card_type == PosaCard::JAM_CLASS_2
posa_card.is_lesson = true
posa_card.credits = 2
end
posa_card.origin = 'posa-cards-amazon-test-drive-paid-4-50k.csv'
posa_card.save!
end
end
=end
content do
active_admin_form_for PosaCard.new, :url => admin_posa_card_uploads_upload_posacards_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Upload POSA Cards" do
f.input :csv, as: :file, required: true, :label => "A single column CSV that contains ONE type of gift card (5 JamTrack, 10 JamTrack, 4 JamClass etc)"
f.input :card_type, required:true, as: :select, :collection => JamRuby::PosaCard::CARD_TYPES
end
f.actions
end
end
end

View File

@ -18,7 +18,7 @@ ActiveAdmin.register JamRuby::PromoBuzz, :as => 'Buzz' do
column 'State' do |pp| pp.aasm_state end
column 'Position' do |pp| pp.position end
column 'Updated' do |pp| pp.updated_at end
default_actions
actions
end
show do

View File

@ -15,7 +15,7 @@ ActiveAdmin.register JamRuby::PromoLatest, :as => 'Latest' do
column 'State' do |pp| pp.aasm_state end
column 'Position' do |pp| pp.position end
column 'Updated' do |pp| pp.updated_at end
default_actions
actions
end
show do

View File

@ -21,7 +21,7 @@ ActiveAdmin.register JamRuby::RecurlyTransactionWebHook, :as => 'RecurlyHooks'
index do
default_actions
actions
column :transaction_type
column :transaction_at

View File

@ -0,0 +1,51 @@
ActiveAdmin.register JamRuby::SaleLineItem, :as => 'Sale Line Items' do
menu :label => 'Line Items', :parent => 'Purchases'
config.sort_order = 'created_at DESC'
config.batch_actions = false
config.clear_action_items!
config.filters = true
config.per_page = 50
config.paginate = true
filter :affiliate_referral_id
filter :free
form :partial => 'form'
scope("Non Free", default: true) { |scope| scope.where(free: false).order('created_at desc') }
scope("Free") { |scope| scope.where(free: true).order('created_at desc') }
index do
# default_actions # use this for all view/edit/delete links
column 'Product' do |oo| oo.product end
column "Partner" do |oo|
link_to("#{oo.affiliate_referral.display_name} #{oo.affiliate_referral_fee_in_cents ? "#{oo.affiliate_referral_fee_in_cents}\u00A2" : ''}", oo.affiliate_referral.admin_url, {:title => oo.affiliate_referral.display_name}) if oo.affiliate_referral
end
column 'User' do |oo|
if oo.sale.user
link_to(oo.sale.user.name, admin_user_path(oo.sale.user.id), {:title => oo.sale.user.name})
end
end
column 'Source' do |oo|
if oo.sale.source == JamRuby::Sale::SOURCE_PAYPAL
link_to(oo.sale.source, 'https://history.paypal.com/webscr?cmd=_history-details-from-hub&id=' + oo.sale.recurly_invoice_id)
else
oo.sale.source
end
end
column 'When' do |oo|
oo.created_at
end
column 'Link' do |oo|
end
end
controller do
end
end

View File

@ -0,0 +1,129 @@
ActiveAdmin.register_page "SchoolUserUploads" do
menu :label => 'School User Upload', :parent => 'Misc'
page_action :upload_schooluseruploads, :method => :post do
User.transaction do
puts params
@client = RecurlyClient.new
file = params[:jam_ruby_user][:csv]
created = 0
errors = 0
updated = 0
skipped = 0
array_of_arrays = CSV.read(file.tempfile.path, headers: true, encoding: 'bom|utf-8')
array_of_arrays.each do |row|
school_name = row['School Name'].strip
school_tag = row['School ID'].strip
school = School.autocreate_find_from_upload(school_name, school_tag)
first_name = row['First Name'].strip
last_name = row['Last Name'].strip
email_address = row['Email Address'].strip.downcase
license_start = parse_date(row['License Start Date'].strip)
license_end = parse_date(row['License End Date'].strip)
source = row['Source'].strip
password = SecureRandom.uuid
options = {
first_name: first_name,
last_name: last_name,
email: email_address,
license_start: license_start,
license_end: license_end,
import_source: source,
school_id: school.id,
terms_of_service: true,
musician: true,
skip_recaptcha: true,
password: password,
password_confirmation: password
}
parse_user_type(row['User Type'].strip, options)
instrument = Instrument.find('electric guitar')
instruments= [{instrument_id: instrument.id, proficiency_level: 3, priority: 1}]
options[:instruments] = instruments
existing = User.find_by_email(options[:email])
if existing
if existing.import_source.nil?
if options[:student]
existing.school = school
existing.is_a_student = true
existing.import_source = options[:import_source]
existing.license_start = options[:license_start]
existing.license_end = options[:license_end]
elsif options[:teacher]
existing.school = school
existing.import_source = options[:import_source]
existing.license_start = options[:license_start]
existing.license_end = options[:license_end]
if existing.teacher.nil?
existing.teacher = Teacher.build_teacher(existing, validate_introduction: true, biography: "Empty biography", school_id: school.id)
end
elsif options[:platform_instructor]
existing.import_source = options[:import_source]
existing.is_platform_instructor = true
existing.license_start = options[:license_start]
existing.license_end = options[:license_end]
end
existing.save
if existing.errors.any?
puts "User #{user.name} #{user.email} had errors"
puts user.errors.inspect
errors = errors + 1
else
@client.sync_subscription(existing)
updated = updated + 1
if options[:student]
UserMailer.school_welcome_message(existing, nil).deliver_now
elsif options[:teacher]
UserMailer.school_welcome_message(existing, nil).deliver_now
elsif options[:platform_instructor]
end
end
else
skipped = skipped + 1
end
else
user = User.signup(options)
if user.errors.any?
puts "User #{user.name} #{user.email} had errors"
puts user.errors.inspect
errors = errors + 1
else
@client.sync_subscription(user)
puts "User #{user.email} created"
created = created + 1
end
end
end
redirect_to admin_schooluseruploads_path, :notice => "Created #{created}. Updated #{updated}. Errors #{errors}. Skipped #{skipped}"
end
end
content do
panel "Help" do
link_to "Download Sample CSV", asset_path("Sample_School_User_Upload.csv", target: "_blank", download: "Sample_School_User_Upload.csv")
end
active_admin_form_for User.new, :url => admin_schooluseruploads_upload_schooluseruploads_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Upload School Users" do
f.input :csv, as: :file, required: true, :label => "A school user upload"
end
f.actions
end
end
end

View File

@ -0,0 +1,40 @@
ActiveAdmin.register JamRuby::School, :as => 'Schools' do
menu :label => 'Schools', :parent => 'JamClass'
config.sort_order = 'created_at asc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
index do
actions
column "Name" do |school|
school.name
end
column "Owner" do |school|
link_to school.owner.name, "#{Rails.application.config.external_root_url}/client#/profile/#{school.owner.id}"
end
column "Scheduling Communication" do |school|
school.scheduling_communication
end
column "Correspondence Email" do |school|
school.correspondence_email
end
column "Base Fee Rate" do |school|
school.jamkazam_rate
end
column "JamKazam Sourced Fee Rate" do |school|
school.base_rate
end
column "Is Education?" do |school|
school.education ? 'Yes' : ''
end
end
end

View File

@ -0,0 +1,106 @@
ActiveAdmin.register JamRuby::LessonSession, :as => 'SlowResponses' do
menu :label => 'Slow Responses', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = true
filter :intervened_at_null, label: 'Not Yet Intervened', as: :boolean
scope("72 hours since last request/counter", default: true) { |scope| scope.slow_responses }
member_action :cancel_lesson, :method => :get do
result = resource.cancel_by_admin
if result.errors.any?
redirect_to :back, notice: resource.errors.inspect
else
redirect_to :back, notice: 'Canceled lesson'
end
end
member_action :intervened, :method => :get do
resource.intervened
redirect_to :back
end
index do
column "Not Responded" do |lesson_session|
div do
if lesson_session.student_last_proposed?
"Teacher"
else
"Student"
end
end
div do
late_responder = lesson_session.late_responder
span do
link_to "#{late_responder.name}", late_responder.admin_url
end
end
div do
lesson_session.late_responder.email
end
end
column "Proposer" do |lesson_session|
div do
if lesson_session.student_last_proposed?
"Student"
else
"Teacher"
end
end
div do
last_proposer = lesson_session.last_proposer
span do
link_to "#{last_proposer.name}", last_proposer.admin_url
end
end
div do
lesson_session.last_proposer.email
end
end
column "Lesson Type" do |lesson_session|
lesson_session.display_type
end
column "Proposed Start Time" do |lesson_session|
span do
if lesson_session.music_session.nil?
raise "Lessonsesison with no id #{lesson_session.id}"
else
link_to lesson_session.music_session.pretty_scheduled_start(true), lesson_session.admin_url
end
end
end
column "Days with no response" do |lesson_session|
if lesson_session.last_response_time.nil?
'N/A'
else
"#{((Time.now - lesson_session.last_response_time) / 24 / 3600).floor} days"
end
end
column "Num Reqs/Counters" do |lesson_session|
ChatMessage.unscoped.where(lesson_session_id: lesson_session.id).where('purpose = ? OR purpose = ?', "Lesson Requested", "New Time Proposed").count(:purpose)
end
column "Intervene" do |lesson_session|
span do
if lesson_session.intervened_at
lesson_session.intervened_at.to_date
else
link_to("intervened", intervened_admin_slow_response_path(lesson_session.id), {confirm: "Mark Lesson as 'Intervened' (i.e., email sent to by hand)?"})
end
end
end
column "Cancel Lesson" do |lesson_session|
span do
link_to("cancel", cancel_lesson_admin_slow_response_path(lesson_session.id), {confirm: "Cancel Lesson?"})
end
end
end
end

View File

@ -0,0 +1,72 @@
ActiveAdmin.register JamRuby::User, :as => 'Students' do
menu :label => 'Students', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = true
def booked_anything(scope)
scope.joins(:student_lesson_bookings).where('lesson_bookings.active = true').uniq
end
filter :jamuser_full_name_or_email_cont, label: 'Name Or Email', as: :string
filter :school, label: 'School'
scope("TestDrive/Amazon Users", default: true) {|scope| scope.joins(:posa_cards).where('posa_cards.lesson_package_type_id in (?)', LessonPackageType::AMAZON_PACKAGES + LessonPackageType::LESSON_PACKAGE_TYPES) }
scope("Student Or Has Credits Or Has Lesson") { |scope| scope.where('is_a_student = true OR jamclass_credits > 0 OR ((select count(id) from lesson_bookings where lesson_bookings.user_id = users.id) > 0)').order('users.ready_for_session_at IS NULL DESC') }
index do
column "Name" do |user|
link_to user.name, user.admin_url
end
column "Email" do |user|
user.email
end
column "Location" do |user|
user.location(country = true)
end
column "Session Ready" do |user|
div do
if user.ready_for_session_at
span do
'YES'
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as checked", mark_session_ready_admin_student_path(user.id), {confirm: "Mark as ready for session?"})
end
end
end
end
column "School" do |user|
if user.school
user.school.name
end
end
column :updated_at
end
member_action :mark_session_ready, :method => :get do
resource.mark_session_ready
redirect_to :back
end
member_action :mark_session_not_ready, :method => :get do
resource.mark_session_not_ready
redirect_to :back
end
end

View File

@ -0,0 +1,26 @@
ActiveAdmin.register User, :as => 'User_Override' do
menu :label => 'Subscription', :parent => 'Users'
form title: 'Use This To Give a No-Payment Subscription' do |f|
inputs 'Details' do
input :admin_override_touch, :as => :hidden, value: 'true'
input :admin_override_reason, :as => :text
input :admin_override_plan_code, :as => :select, :collection => SubscriptionDefinitions::MONTHLY_PLANS + ['Remove Override']
input :admin_override_ends_at, as: :datepicker,
datepicker_options: {
min_date: Date.today,
max_date: "+10Y"
}
li "User has admin override set to #{f.object.admin_override_plan_code}. Lasts until #{f.object.admin_override_ends_at}" if !f.object.admin_override_plan_code.nil?
li "User does not have admin override. They are currently on the #{f.object.subscription_plan_code ? f.object.subscription_plan_code : 'Free'} plan" if f.object.admin_override_plan_code.nil?
end
panel 'Instructions' do
"If you select a plan, the user will have their current subscription (if any) cancelled and set to the new plan for free. If you instead select Remove Override, you can cancel the gifted plan and the user will be o normal free-tier user again."
end
para "Press cancel to return to the list without saving."
actions
end
end

View File

@ -0,0 +1,51 @@
ActiveAdmin.register JamRuby::TeacherDistribution, :as => 'TeacherDistributions' do
menu :label => 'Teacher Distributions', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = true
controller do
active_admin_config.includes.push :teacher
end
filter :teacher_full_name_or_teacher_email_cont, label: 'Name', as: :string
index do
column "Actions" do |distribution|
links = ''.html_safe
links << link_to("View", resource_path(distribution), :class => "member_link view_link")
links << link_to("Edit", edit_resource_path(distribution), :class => "member_link edit_link")
links
end
column "Teacher" do |distribution|
link_to distribution.teacher.name, distribution.teacher.admin_url
end
column :amount_in_cents
column :distributed
column :ready
column :teacher_fee_in_cents
column :reduced_roll_forward_amount_in_cents
column :created_at
column :updated_at
end
show do
attributes_table do
row "Teacher" do |distribution|
link_to distribution.teacher.name, distribution.teacher.admin_url
end
row :amount_in_cents
row :distributed
row :ready
row :teacher_fee_in_cents
row :reduced_roll_forward_amount_in_cents
row :created_at
row :updated_at
end
end
end

View File

@ -0,0 +1,45 @@
ActiveAdmin.register JamRuby::TeacherPayment, :as => 'TeacherPayments' do
menu :label => 'Teacher Payments', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = true
controller do
active_admin_config.includes.push :teacher
end
filter :teacher_full_name_or_teacher_email_cont, label: 'Name', as: :string
index do
column "Actions" do |payment|
links = ''.html_safe
links << link_to("View", resource_path(payment), :class => "member_link view_link")
links << link_to("Edit", edit_resource_path(payment), :class => "member_link edit_link")
links
end
column "Teacher" do |payment|
link_to payment.teacher.name, payment.teacher.admin_url
end
column :amount_in_cents
column :fee_in_cents
column :created_at
column :updated_at
end
show do
attributes_table do
row "Teacher" do |payment|
link_to payment.teacher.name, payment.teacher.admin_url
end
row :amount_in_cents
row :fee_in_cents
row :created_at
row :updated_at
end
end
end

364
admin/app/admin/teachers.rb Normal file
View File

@ -0,0 +1,364 @@
ActiveAdmin.register JamRuby::Teacher, :as => 'Teachers' do
menu :label => 'Teachers', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = true
scope("All", default: true) { |scope| scope.order("background_check_at > '#{(Date.today - 365).to_s}}' NULLS FIRST, teachers.ready_for_session_at IS NULL DESC") }
scope("All Sorted By Sign Up") { |scope| scope.order("teachers.created_at DESC, background_check_at > '#{(Date.today - 365).to_s}}' NULLS FIRST, teachers.ready_for_session_at IS NULL DESC") }
scope("50% and Session Ready") { |scope| scope.where('profile_pct >= ?', 50.0).where('teachers.ready_for_session_at IS NOT NULL').order("background_check_at > '#{(Date.today - 365).to_s}}' NULLS FIRST, teachers.ready_for_session_at IS NULL DESC") }
scope("50% and Not Session Ready") { |scope| scope.where('profile_pct > ?', 50.0).where('teachers.ready_for_session_at IS NULL').order("background_check_at > '#{(Date.today - 365).to_s}}' NULLS FIRST, teachers.ready_for_session_at IS NULL DESC") }
controller do
active_admin_config.includes.push :user
end
filter :teacher_full_name_or_user_email_cont, label: 'Name', as: :string
filter :user_phantom, label: 'Phantom ', as: :boolean, selected: 'false'
#filter :by_search_user_name, label: "Name", as: :string
index do
column "Name" do |teacher|
span do
link_to "#{teacher.user.name} (#{teacher.user.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.user.id}"
end
end
column "Instruments & Genres" do |teacher|
div do
div do
teacher.instruments.join(', ')
end
br
div do
teacher.genres.join(', ')
end
end
end
column "Location" do |teacher|
teacher.user.location(country = true)
end
column "Profile %" do |teacher|
div do
span do
"#{teacher.pct_complete[:pct]}%"
end
br
span do
link_to "Detail", admin_teacher_path(teacher.id)
end
end
end
column "Background Check" do |teacher|
div do
if teacher.background_check_at
span do
teacher.background_check_at.to_date
end
span do
br
end
span do
link_to(edit_admin_teacher_background_check_path(teacher.id)) do
"update background check"
end
end
else
span do
'NO'
end
span do
br
end
span do
link_to("update background check", edit_admin_teacher_background_check_path(teacher.id))
end
end
end
end
column "Session Ready" do |teacher|
div do
if teacher.ready_for_session_at
span do
'YES'
end
span do
br
end
span do
link_to("mark not checked", mark_not_session_ready_admin_teacher_path(teacher.id), {confirm: "Mark not ready for session??"})
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as checked", mark_session_ready_admin_teacher_path(teacher.id), {confirm: "Mark as ready for session?"})
end
end
end
end
column "Top Teacher" do |teacher|
div do
if teacher.top_rated
span do
'YES'
end
span do
br
end
span do
link_to("mark not top", mark_not_top_admin_teacher_path(teacher.id), {confirm: "Mark as not top rated?"})
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as top", mark_top_admin_teacher_path(teacher.id), {confirm: "Mark as top rated?"})
end
end
end
end
column "Signed Up" do |teacher|
teacher.created_at.to_date
end
column "School" do |teacher|
if teacher.school
teacher.school.name
end
end
end
show do
attributes_table do
row "Name" do |teacher|
link_to teacher.user.name, "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.user.id}"
end
row "Email" do |teacher|
teacher.user.email
end
row "Location" do |teacher|
teacher.user.location(country = true)
end
row "Profile %" do |teacher|
div do
span do
"#{teacher.pct_complete[:pct]}%"
end
br
br
div do
h5 do
"Completed Sections"
end
teacher.pct_complete.each do |k, v|
if k != :pct && v
div do
k
end
end
end
br
br
h5 do
"Uncompleted Sections"
end
teacher.pct_complete.each do |k, v|
if k != :pct && !v
div do
k
end
end
end
end
end
end
=begin
row "Background Check" do |teacher|
div do
if teacher.background_check_at
span do
teacher.background_check_at.to_date
end
span do
br
end
span do
link_to(mark_background_check_admin_teacher_path(teacher.id), {confirm: "Mark as background checked?"}) do
"mark as checked"
end
end
else
span do
'NOT DONE'
end
span do
br
end
span do
link_to("mark as checked", mark_background_check_admin_teacher_path(teacher.id), {confirm: "Mark as background checked?"})
end
end
end
end
=end
row "Session Ready" do |teacher|
div do
if teacher.ready_for_session_at
span do
'YES'
end
span do
br
end
span do
link_to("mark not checked", mark_not_session_ready_admin_teacher_path(teacher.id), {confirm: "Mark not ready for session??"})
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as checked", mark_session_ready_admin_teacher_path(teacher.id), {confirm: "Mark as ready for session?"})
end
end
end
end
row "Top Teacher" do |teacher|
div do
if teacher.top_rated
span do
'YES'
end
span do
br
end
span do
link_to("mark not top", mark_not_top_admin_teacher_path(teacher.id), {confirm: "Mark as not top rated?"})
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as top", mark_top_admin_teacher_path(teacher.id), {confirm: "Mark as top rated?"})
end
end
end
end
row "Signed Up" do |teacher|
teacher.created_at.to_date
end
row "School" do |teacher|
if teacher.school
teacher.school.name
end
end
row "Booking Prices" do |teacher|
div do
table = teacher.booking_price_table
if table[:single].length == 0 and table[:monthly].length == 0
'No Pricing'
else
if table[:single].length > 0
div do
span do
'SINGLE'
end
span do
br
end
table[:single].each do |single|
span do
"#{single[:minutes]} min = $#{'%.2f' % (single[:price]/100.0)}"
end
span do
br
end
end
end
end
if table[:monthly].length > 0
div do
span do
'MONTHLY'
end
span do
br
end
table[:monthly].each do |monthly|
span do
"#{monthly[:minutes]} min = $#{'%.2f' % (monthly[:price]/100.0)}"
end
span do
br
end
end
end
end
end
end
end
end
end
member_action :mark_background_check, :method => :get do
resource.mark_background_checked
redirect_to :back
end
member_action :mark_session_ready, :method => :get do
resource.mark_session_ready
redirect_to :back
end
member_action :mark_not_session_ready, :method => :get do
resource.mark_not_session_ready
redirect_to :back
end
member_action :mark_top, :method => :get do
resource.mark_top_rated
redirect_to :back
end
member_action :mark_not_top, :method => :get do
resource.mark_not_top_rated
redirect_to :back
end
end

View File

@ -0,0 +1,102 @@
ActiveAdmin.register JamRuby::TestDrivePackage, :as => 'TestDrivePackage' do
menu :label => 'Test Drive Packages', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
config.filters = false
form :partial => 'form'
controller do
=begin
def new
test_drive_package = TestDrivePackage.new
t = TestDrivePackageTeacher.new
t.test_drive_package = test_drive_package
test_drive_package.test_drive_package_teachers << t
t = TestDrivePackageTeacher.new
t.test_drive_package = test_drive_package
test_drive_package.test_drive_package_teachers << t
@test_drive_package = test_drive_package
puts "OK #{test_drive_package.test_drive_package_teachers.length}"
super
end
=end
# def create
# puts params.inspect
# hash = params[:jam_ruby_test_drive_package]
# package = TestDrivePackage.new
# package.name = hash[:name]
# package.package_type = hash[:package_type]
# package.description = hash[:description]
# if package.save
# redirect_to admin_test_drive_package_path(package.id)
# else
# redirect_to admin_test_drive_packages_path, :notice => "Unable to create package. Error: #{package.errors.first[1][0]}"
# end
#end
end
index do
column "Package ID" do |package|
link_to package.name, "#{APP_CONFIG.external_root_url}/landing/jamclass/students?utm-teachers=#{package.name}"
end
column "Package Type" do |package|
package.package_type
end
column "Teachers" do |package|
package.test_drive_package_teachers.each do |package_teacher|
span do
teacher = package_teacher.user
link_to "#{teacher.name} (#{teacher.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
end
br
end
end
column "Detail" do |package|
link_to "Detail", admin_test_drive_package_path(package.id)
end
end
show do
attributes_table do
row "Package ID" do |package|
link_to package.name, "#{APP_CONFIG.external_root_url}/landing/jamclass/students?utm-teachers=#{package.name}"
end
row "Package Type" do |package|
package.package_type
end
row "Teachers" do |package|
package.test_drive_package_teachers.each do |package_teacher|
span do
teacher = package_teacher.user
link_to "#{teacher.name} (#{teacher.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
end
br
end
end
row "Description" do |package|
package.description
end
end
end
end

View File

@ -15,7 +15,7 @@ ActiveAdmin.register_page "Test Jobs" do
content do
semantic_form_for LongRunning.new, :url => admin_test_jobs_long_running_path, :builder => ActiveAdmin::FormBuilder do |f|
active_admin_form_for LongRunning.new, :url => admin_test_jobs_long_running_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Queue a long running job" do
f.input :time
end

View File

@ -0,0 +1,20 @@
ActiveAdmin.register_page "Top Selling JamTracks" do
menu :parent => 'Reports'
top_selling_jamtracks = JamTrack.select([:id, :original_artist, :name, :has_tap_in]).find_by_sql("select count(jam_tracks.id) as count , jam_tracks.id, original_artist, name, (jmep_text is not null) has_tap_in from jam_tracks inner join jam_track_rights on (jam_track_rights.jam_track_id = jam_tracks.id AND jam_track_rights.is_test_purchase = false) group by jam_tracks.id order by count(jam_tracks.id) desc ")
content :title => "Top Selling JamTracks" do
table_for top_selling_jamtracks do
column "Count", :count
column "Original Artist", :original_artist
column "Name", :name
column "Has Count-in", :has_tap_in
column "ID", :id
end
end
end

View File

@ -0,0 +1,31 @@
ActiveAdmin.register JamRuby::Teacher, :as => 'TeacherBackgroundCheck' do
config.filters = false
menu :label => 'Teacher Background Check', :parent => 'JamClass'
form do |f|
f.inputs 'Set Background Check' do
f.input :background_check_at, as: :date_select
end
f.actions
end
index do
column "Actions" do |teacher|
links = ''.html_safe
links << link_to("View", resource_path(teacher), :class => "member_link view_link")
links << link_to("Edit", edit_resource_path(teacher), :class => "member_link edit_link")
links
end
column 'User' do |oo|
oo.user.email
end
end
end

View File

@ -0,0 +1,13 @@
ActiveAdmin.register JamRuby::UserBlacklist, :as => 'User Blacklist' do
menu :label => 'User Blacklist', :parent => 'Operations'
config.sort_order = 'created_at desc'
config.batch_actions = false
index do
column :user
column :notes
column :created_at
end
end

View File

@ -0,0 +1,7 @@
ActiveAdmin.register_page "Latency Between Users" do
menu parent: 'Users'
content :title => "Latency Between Users" do
render 'admin/users/users_latency_form'
end
end

View File

@ -0,0 +1,7 @@
ActiveAdmin.register_page "Latency Recommendation" do
menu parent: 'Users'
content :title => "Latency Recommentation" do
render 'admin/users/latency_recommendation_form'
end
end

View File

@ -9,7 +9,7 @@ ActiveAdmin.register JamRuby::User, :as => 'User Progression' do
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 :email do |user| link_to(truncate(user.email, {:length => 12}), resource_path(user), {:title => "#{user.name} (#{user.email})"}) end
column :updated_at do |uu| uu.updated_at.strftime(PROGRESSION_DATE) end
column :created_at do |uu| uu.created_at.strftime(PROGRESSION_DATE) end
column :city

View File

@ -0,0 +1,50 @@
ActiveAdmin.register JamRuby::User, :as => 'UserSource' do
menu :label => 'User Campaigns', :parent => 'Users'
config.sort_order = 'created_at DESC'
config.batch_actions = false
config.clear_action_items!
config.filters = false
config.per_page = 250
scope("Paid", default: true) { |scope| scope.unscoped.where(:origin_utm_medium => 'cpc').order('created_at desc') }
scope("Inorganic Source") { |scope| scope.unscoped.where("origin_utm_source != 'organic' OR origin_utm_source IS NULL").order('created_at desc') }
scope("Include Organic") { |scope| scope.unscoped.order('created_at desc') }
index do
column "Email" do |user|
user.email
end
column "Signup (CST)" do |user|
user.created_at.in_time_zone("Central Time (US & Canada)")
end
column "UTM Source" do |user|
user.origin_utm_source
end
column "UTM Medium" do |user|
user.origin_utm_medium
end
column "UTM Campaign" do |user|
user.origin_utm_campaign
end
column "UTM ID" do |user|
user.origin_id
end
column "UTM Term" do |user|
user.origin_term
end
column "UTM Content" do |user|
user.origin_content
end
column "Referrer" do |user|
user.origin_referrer
end
column "FB Click ID" do |user|
user.facebook_click_id
end
column "FB Browser ID" do |user|
user.facebook_browser_id
end
end
end

View File

@ -0,0 +1,13 @@
ActiveAdmin.register JamRuby::UserWhitelist, :as => 'User Whitelist' do
menu :label => 'User Whitelist', :parent => 'Operations'
config.sort_order = 'created_at desc'
config.batch_actions = false
index do
column :user
column :notes
column :created_at
end
end

View File

@ -0,0 +1 @@
First Name,Last Name,Email Address,User Type,School ID,School Name,License Start Date,License End Date,Source Student,Student,seth+student1@jamkazam.com,Student,school_a,School A,1/1/20,1/1/21,K12 Student,Expired,seth+student2@jamkazam.com,Student,school_a,School A,1/2/19,1/1/20,K12 Teacher,Teacher,seth+teacher1@jamkazam.com,Student Instructor,school_a,School A,1/1/20,1/1/21,K12 Platform,Instructor,seth+platform1@jamkazam.com,Platform Instructor,school_a,School A,1/1/20,1/2/21,K12
1 First Name Last Name Email Address User Type School ID School Name License Start Date License End Date Source Student Student seth+student1@jamkazam.com Student school_a School A 1/1/20 1/1/21 K12 Student Expired seth+student2@jamkazam.com Student school_a School A 1/2/19 1/1/20 K12 Teacher Teacher seth+teacher1@jamkazam.com Student Instructor school_a School A 1/1/20 1/1/21 K12 Platform Instructor seth+platform1@jamkazam.com Platform Instructor school_a School A 1/1/20 1/2/21 K12

View File

@ -1,14 +1,23 @@
// //= require active_admin/base
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require active_admin/base
//= require activeadmin_addons/all
// //= require jquery-ui
// require jquery.ui.core
// require jquery.ui.widget
// require jquery.ui.datepicker
// require jquery.ui.dialog
// require jquery.ui.autocomplete
//= require cocoon
//= require active_admin/application
//= require autocomplete-rails
//= require active_admin/base
//= require active_admin/searchable_select
// //= require autocomplete-rails
//= require base
//= require_tree .
//= require best_in_place.jquery-ui
$(document).ready(function() {
jQuery(".best_in_place").best_in_place();
$.datepicker.setDefaults({
dateFormat: 'yy-mm-dd',
});
})

View File

@ -0,0 +1,10 @@
#= require active_admin/base
#= require jquery3
#= require best_in_place
#= require jquery.purr
#= require best_in_place.purr
$(document).ready ->
# IS NOT HAPPENING: USE ACTIVE_ADMIN.JS
console.log("DAT COFFEE INIT")
jQuery(".best_in_place").best_in_place()

View File

@ -0,0 +1,3 @@
$(document).ready(function() {
jQuery(".ac_bip").bind("ajax:success", function(){ window.location.reload(); });
})

View File

@ -10,5 +10,3 @@
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs

View File

@ -0,0 +1,110 @@
function intToIP(int) {
var part1 = int & 255;
var part2 = ((int >> 8) & 255);
var part3 = ((int >> 16) & 255);
var part4 = ((int >> 24) & 255);
return part4 + "." + part3 + "." + part2 + "." + part1;
}
function handleJamTrackRightsForm() {
var $jamTrackRights = $('form#new_jam_ruby_jam_track_right');
var $jamTrack = $jamTrackRights.find('#jam_ruby_jam_track_right_jam_track_id');
var $jamTrackVal = $jamTrackRights.find('#jam_ruby_jam_track_right_jam_track_id_val')
var $user = $jamTrackRights.find('#jam_ruby_jam_track_right_user_id');
var $userVal = $jamTrackRights.find('#jam_ruby_jam_track_right_user_id_val');
$jamTrack.on('change', function(){
console.log("change jam track");
});
/**
$user.on('change', function(){
console.log("change user");
});
$jamTrack.on('focus', function(){
$userVal.val('')
});*/
$jamTrack.bind('railsAutocomplete.select', function(event, data){
$jamTrackVal.val('');
$jamTrackVal.val(data.item.id);
console.log("jam track selected with id " + data.item.id);
});
$user.bind('railsAutocomplete.select', function(event, data){
$userVal.val('');
$userVal.val(data.item.id);
console.log("user selected with id " + data.item.id);
});
}
function handleUserLatencyForm(){
var $userLatenciesForm = $('form#user_latencies_form');
var $latenciesMyUser = $userLatenciesForm.find('#latencies_my_user');
var $latenciesMyUserId = $userLatenciesForm.find('#latencies_my_user_id');
var $latenciesMyPublicIp = $userLatenciesForm.find('#latencies_my_public_ip');
$latenciesMyUser.on('focus', function(){
$latenciesMyUserId.val('')
});
$latenciesMyUser.bind('railsAutocomplete.select', function(event, data){
$latenciesMyUserId.val('');
$latenciesMyPublicIp.val('');
if(data.item.last_jam_addr){
var ipAddr = intToIP(data.item.last_jam_addr);
$latenciesMyPublicIp.val(ipAddr);
}
$latenciesMyUserId.val(data.item.id);
});
$userLatenciesForm.find('#latencies_user_1').bind('railsAutocomplete.select', function(event, data){
$userLatenciesForm.find('#latencies_user_1_id').val(data.item.id);
});
$userLatenciesForm.find('#latencies_user_2').bind('railsAutocomplete.select', function(event, data){
$userLatenciesForm.find('#latencies_user_2_id').val(data.item.id);
});
$userLatenciesForm.find('#latencies_user_3').bind('railsAutocomplete.select', function(event, data){
$userLatenciesForm.find('#latencies_user_3_id').val(data.item.id);
});
$userLatenciesForm.find('#latencies_user_4').bind('railsAutocomplete.select', function(event, data){
$userLatenciesForm.find('#latencies_user_4_id').val(data.item.id);
});
$userLatenciesForm.find('#latencies_user_5').bind('railsAutocomplete.select', function(event, data){
$userLatenciesForm.find('#latencies_user_5_id').val(data.item.id);
});
}
function handleLatencyRecommendationForm(){
var $latencyRecommendationForm = $('form#latency_recommendation_form');
var $latenciesMyUser = $latencyRecommendationForm.find('#latency_recommendation_my_user');
var $latenciesMyUserId = $latencyRecommendationForm.find('#latency_recommendation_my_user_id');
var $latenciesMyPublicIp = $latencyRecommendationForm.find('#latency_recommendation_my_public_ip');
$latenciesMyUser.on('focus', function(){
$latenciesMyUserId.val('')
});
$latenciesMyUser.bind('railsAutocomplete.select', function(event, data){
$latenciesMyUserId.val('');
$latenciesMyPublicIp.val('');
if(data.item.last_jam_addr){
var ipAddr = intToIP(data.item.last_jam_addr);
$latenciesMyPublicIp.val(ipAddr);
}
$latenciesMyUserId.val(data.item.id);
});
}
$(document).ready(function() {
handleUserLatencyForm();
handleLatencyRecommendationForm();
handleJamTrackRightsForm();
});

View File

@ -1,3 +1,4 @@
//= require activeadmin_addons/all
// SASS variable overrides must be declared before loading up Active Admin's styles.
//
// To view the variables that Active Admin provides, take a look at
@ -8,12 +9,13 @@
// $sidebar-width: 242px;
/*
*= require jquery.ui.all
*= require jquery-ui
*= require custom
*/
// Active Admin's got SASS!
@import "active_admin/mixins";
@import "active_admin/base";
@import "active_admin/searchable_select";
// Overriding any non-variable SASS must be done after the fact.
// For example, to change the default status-tag color:

View File

@ -0,0 +1,17 @@
// SASS variable overrides must be declared before loading up Active Admin's styles.
//
// To view the variables that Active Admin provides, take a look at
// `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
// Active Admin source.
//
// For example, to change the sidebar width:
// $sidebar-width: 242px;
// Active Admin's got SASS!
@import "active_admin/mixins";
@import "active_admin/base";
// Overriding any non-variable SASS must be done after the fact.
// For example, to change the default status-tag color:
//
// .status_tag { background: #6090DB; }

View File

@ -9,6 +9,6 @@
* compiled file, but it's generally better to create a new file per style scope.
*
*= require_self
*= require jquery.ui.all
*= require jquery-ui
*= require_tree .
*/

View File

@ -29,4 +29,16 @@
background-color:white;
border:1px solid gray;
padding:5px;
}
.datetime_select li.fragment {
label {
display: block;
width:auto;
}
}
.admin_subscription_cohorts #main_content td.col{
font-family:Courier;
}

View File

@ -1,9 +1,13 @@
class ApplicationController < ActionController::Base
include ApplicationHelper
protect_from_forgery
before_filter :prepare_gon
def prepare_gon
@olark_enabled = false
gon.olark_box_start_hidden = false
gon.prefix = ENV['RAILS_RELATIVE_URL_ROOT'] || '/'
end
end

Some files were not shown because too many files have changed in this diff Show More