├── .dockerignore ├── .env.dev ├── .env.test ├── .gitignore ├── .rspec ├── .ruby-version ├── .travis.yml ├── CONTRIBUTING.md ├── Dockerfile ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── Procfile ├── README.md ├── Rakefile ├── app.json ├── app ├── assets │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ ├── images │ │ ├── Bountysource-190x60.png │ │ ├── Bountysource-green.png │ │ ├── Bountysource-square-100.png │ │ ├── Bountysource-white.png │ │ ├── GitHub-Mark-32px.png │ │ ├── ajax-loader.gif │ │ ├── anon.jpg │ │ ├── backgrounds │ │ │ ├── home-desk.svg │ │ │ └── salt_splash.svg │ │ ├── bird_blue_32.png │ │ ├── bountysource-grey.png │ │ ├── bs-anon.png │ │ ├── checkbox.png │ │ ├── checkbox_checked.png │ │ ├── extension1.png │ │ ├── facebook_share_32.png │ │ ├── favicon-bitbucket.png │ │ ├── favicon-bugzilla.png │ │ ├── favicon-email.png │ │ ├── favicon-facebook.png │ │ ├── favicon-github-white.png │ │ ├── favicon-github.png │ │ ├── favicon-jira.png │ │ ├── favicon-launchpad.png │ │ ├── favicon-pivotal.png │ │ ├── favicon-sourceforge.png │ │ ├── favicon-trac.png │ │ ├── favicon-twitter.png │ │ ├── github-plugin-example.png │ │ ├── github-plugin-example2.png │ │ ├── github-plugin.png │ │ ├── github-white-20.png │ │ ├── github-white-24.png │ │ ├── github-white.png │ │ ├── google-wallet.png │ │ ├── gplus-32.png │ │ ├── icons │ │ │ ├── icon_advanced_search.svg │ │ │ ├── icon_bitcoin.svg │ │ │ ├── icon_canya.svg │ │ │ ├── icon_copy.svg │ │ │ ├── icon_edit.svg │ │ │ ├── icon_ethereum.svg │ │ │ ├── icon_facebook.svg │ │ │ ├── icon_facebook_circle.svg │ │ │ ├── icon_facebook_white.svg │ │ │ ├── icon_github.svg │ │ │ ├── icon_googleplus_circle.svg │ │ │ ├── icon_googleplus_white.svg │ │ │ ├── icon_like_selected.svg │ │ │ ├── icon_like_unselected.svg │ │ │ ├── icon_lock.svg │ │ │ ├── icon_mail.svg │ │ │ ├── icon_person.svg │ │ │ ├── icon_reddit_circle.svg │ │ │ ├── icon_reddit_white.svg │ │ │ ├── icon_search.svg │ │ │ ├── icon_timestamp.svg │ │ │ ├── icon_trash.svg │ │ │ ├── icon_twitter.svg │ │ │ ├── icon_twitter_circle.svg │ │ │ └── icon_twitter_white.svg │ │ ├── logos.ai │ │ ├── logos │ │ │ ├── alternate.svg │ │ │ ├── main.svg │ │ │ └── metamask-logo.svg │ │ ├── paypal.png │ │ ├── thumbsup-20.png │ │ ├── thumbsup-32.png │ │ └── thumbsup.png │ ├── javascripts │ │ ├── admin.js.erb │ │ ├── admin │ │ │ ├── access_tokens │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── accounts │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ ├── activity_log │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── ad_spaces │ │ │ │ ├── edit.html │ │ │ │ ├── edit.js │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── new.html │ │ │ │ └── new.js │ │ │ ├── api.js │ │ │ ├── app.js │ │ │ ├── auth │ │ │ │ ├── auth.html │ │ │ │ └── auth.js │ │ │ ├── bounties │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html │ │ │ │ ├── show.js │ │ │ │ ├── unacknowledged.html │ │ │ │ └── unacknowledged.js │ │ │ ├── bounty_claims │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── index_priority.html │ │ │ │ ├── index_priority.js │ │ │ │ ├── partials │ │ │ │ │ ├── claims_table.html │ │ │ │ │ ├── nav_tabs.html │ │ │ │ │ └── nav_tabs.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ ├── bounty_searches │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── cash_outs │ │ │ │ ├── directives │ │ │ │ │ ├── cashOutTable.html │ │ │ │ │ └── cashOutTable.js │ │ │ │ ├── pending.html │ │ │ │ ├── pending.js │ │ │ │ ├── sent.html │ │ │ │ └── sent.js │ │ │ ├── crypto_pay_outs │ │ │ │ ├── directives │ │ │ │ │ ├── cryptoPayOutTable.html │ │ │ │ │ └── cryptoPayOutTable.js │ │ │ │ ├── pending.html │ │ │ │ ├── pending.js │ │ │ │ ├── processing.html │ │ │ │ ├── processing.js │ │ │ │ ├── sent.html │ │ │ │ └── sent.js │ │ │ ├── delayed_jobs │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ └── partials │ │ │ │ │ └── job_modal.html │ │ │ ├── developer_goals │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── directives.js │ │ │ ├── events │ │ │ │ ├── _table.html │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── filters.js │ │ │ ├── follows │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── fundraisers │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html.erb │ │ │ │ └── show.js │ │ │ ├── github_api_errors │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── home │ │ │ │ ├── home.js │ │ │ │ ├── login.html │ │ │ │ ├── login.js │ │ │ │ ├── search.js │ │ │ │ └── search_results.html.erb │ │ │ ├── issue_addresses │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ ├── issues │ │ │ │ ├── closed.html │ │ │ │ ├── controllers │ │ │ │ │ ├── closed.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── nav_tabs.js │ │ │ │ │ ├── open.js │ │ │ │ │ ├── paid_out.js │ │ │ │ │ └── show.js │ │ │ │ ├── index.html │ │ │ │ ├── open.html │ │ │ │ ├── paid_out.html │ │ │ │ ├── paid_out.js │ │ │ │ ├── partials │ │ │ │ │ ├── issue_table.html │ │ │ │ │ └── nav_tabs.html │ │ │ │ └── show.html │ │ │ ├── kpi │ │ │ │ ├── kpi.html │ │ │ │ ├── kpi.js │ │ │ │ ├── new_kpi.html │ │ │ │ └── new_kpi.js │ │ │ ├── layout │ │ │ │ ├── navbar.html.erb │ │ │ │ ├── navbar.js │ │ │ │ └── not_found.html │ │ │ ├── main.js │ │ │ ├── newsletters │ │ │ │ ├── newsletters.html.erb │ │ │ │ └── newsletters.js │ │ │ ├── orders │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ ├── people │ │ │ │ ├── _show_tabs.html │ │ │ │ ├── celebrities.html │ │ │ │ ├── celebrities.js │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.js │ │ │ │ ├── show_bounties.html │ │ │ │ ├── show_events.html │ │ │ │ ├── show_financial.html │ │ │ │ ├── show_info.html │ │ │ │ ├── show_misc.html │ │ │ │ ├── show_salt.html │ │ │ │ └── show_team_payins.html │ │ │ ├── pledges │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ ├── plugins │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── reports │ │ │ │ ├── accounts.html │ │ │ │ ├── accounts.js │ │ │ │ ├── directives.js │ │ │ │ ├── partials │ │ │ │ │ ├── header.html │ │ │ │ │ └── transaction_modal.html │ │ │ │ ├── paypal.html │ │ │ │ ├── paypal.js │ │ │ │ ├── reports.html │ │ │ │ ├── reports.js │ │ │ │ └── templates │ │ │ │ │ ├── escrowReport.html │ │ │ │ │ └── liabilityReport.html │ │ │ ├── request_for_proposal │ │ │ │ ├── rfp.html │ │ │ │ └── rfp.js │ │ │ ├── searches │ │ │ │ ├── searches.html │ │ │ │ └── searches.js │ │ │ ├── services.js │ │ │ ├── shorts │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── sidebar │ │ │ │ ├── sidebar.html │ │ │ │ └── sidebar.js │ │ │ ├── signin │ │ │ │ ├── callback.js │ │ │ │ ├── reset.js │ │ │ │ └── signin.js │ │ │ ├── solutions │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── tags │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ ├── takedowns │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── team_claims │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── team_payins │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ ├── teams │ │ │ │ ├── index.html.erb │ │ │ │ ├── index.js │ │ │ │ ├── show.html.erb │ │ │ │ └── show.js │ │ │ ├── tracker_merges │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── trackers │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ └── transactions │ │ │ │ ├── edit.html │ │ │ │ ├── edit.js │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── index_unaudited.html │ │ │ │ ├── index_unaudited.js │ │ │ │ ├── new.html │ │ │ │ ├── new.js │ │ │ │ ├── new_bank_transfer.html │ │ │ │ ├── new_bank_transfer.js │ │ │ │ ├── new_cash_out.html │ │ │ │ ├── new_cash_out.js │ │ │ │ ├── partials │ │ │ │ ├── transaction_form.html │ │ │ │ └── transaction_form.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ ├── app.js.erb │ │ ├── app │ │ │ ├── about │ │ │ │ ├── fees.html │ │ │ │ ├── learn.html │ │ │ │ ├── privacy_policy.html │ │ │ │ ├── static.js │ │ │ │ ├── stats.html │ │ │ │ ├── stats.js │ │ │ │ └── terms.html │ │ │ ├── activity │ │ │ │ ├── activity.js │ │ │ │ ├── bounties.html.erb │ │ │ │ ├── bounties.js │ │ │ │ ├── bounty_claims.html │ │ │ │ ├── bounty_claims.js │ │ │ │ ├── cashOuts │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.js │ │ │ │ │ ├── new.html │ │ │ │ │ ├── new.js │ │ │ │ │ └── new │ │ │ │ │ │ ├── mailingAddress.js │ │ │ │ │ │ ├── paymentMethod.js │ │ │ │ │ │ └── permanentAddress.js │ │ │ │ ├── crypto_bounties.html.erb │ │ │ │ ├── crypto_bounties.js │ │ │ │ ├── crypto_pay_outs.html │ │ │ │ ├── crypto_pay_outs.js │ │ │ │ ├── pacts.html │ │ │ │ ├── pacts.js │ │ │ │ ├── templates │ │ │ │ │ ├── navTabs.html │ │ │ │ │ └── navTabs.js │ │ │ │ ├── timeline.html │ │ │ │ └── timeline.js │ │ │ ├── app.js │ │ │ ├── auth │ │ │ │ ├── auth.html │ │ │ │ └── auth.js │ │ │ ├── bounties │ │ │ │ ├── search.html.erb │ │ │ │ └── search.js │ │ │ ├── crypto_dep_bundle.js │ │ │ ├── directives │ │ │ │ └── issues │ │ │ │ │ ├── backersTab │ │ │ │ │ ├── backersTab.html.haml │ │ │ │ │ └── backersTab.js │ │ │ │ │ ├── teamAboutPanel │ │ │ │ │ ├── teamAboutPanel.html.haml │ │ │ │ │ └── teamAboutPanel.js │ │ │ │ │ └── updatesTab │ │ │ │ │ ├── updatesTab.html.haml │ │ │ │ │ └── updatesTab.js │ │ │ ├── env.js │ │ │ ├── extension │ │ │ │ ├── index.html.erb │ │ │ │ └── index.js │ │ │ ├── google_analytics.js │ │ │ ├── home │ │ │ │ ├── landing_page.html.erb │ │ │ │ ├── landing_page.js │ │ │ │ ├── post_bounty_modal.html │ │ │ │ ├── search.html │ │ │ │ ├── search.js │ │ │ │ ├── timeline.html.erb │ │ │ │ └── timeline.js │ │ │ ├── issues │ │ │ │ ├── _payment_method.html │ │ │ │ ├── _show_backer_box.html.haml │ │ │ │ ├── _show_developer_actions.html.haml │ │ │ │ ├── _show_hunter_box.html.haml │ │ │ │ ├── developers.js │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── show.html.haml │ │ │ │ ├── show.js │ │ │ │ ├── templates │ │ │ │ │ ├── breadcrumb.html │ │ │ │ │ ├── contribute_accordian.html.haml │ │ │ │ │ ├── crypto_form.html.haml │ │ │ │ │ ├── crypto_form_with_qr.html.haml │ │ │ │ │ ├── options │ │ │ │ │ │ ├── expiration_down.html │ │ │ │ │ │ ├── expiration_up.html │ │ │ │ │ │ ├── promotion.html │ │ │ │ │ │ └── upon_expiration.html │ │ │ │ │ └── usd_form.html.haml │ │ │ │ ├── test.html │ │ │ │ ├── thumbs.html │ │ │ │ └── thumbs.js │ │ │ ├── layout │ │ │ │ ├── footer.html.erb │ │ │ │ ├── layout.js │ │ │ │ ├── navbar.html.erb │ │ │ │ ├── navbar.js │ │ │ │ ├── notFound.html │ │ │ │ └── templates │ │ │ │ │ ├── devToolsModal.html │ │ │ │ │ ├── footerCompany.html │ │ │ │ │ ├── footerContactUs.html │ │ │ │ │ ├── footerLegal.html │ │ │ │ │ └── footerPullRequests.html │ │ │ ├── legacy_route.js │ │ │ ├── mixpanel.js │ │ │ ├── notifications │ │ │ │ ├── unsubscribe.html │ │ │ │ └── unsubscribe.js │ │ │ ├── orders │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── share.html.erb │ │ │ │ ├── show.html.erb │ │ │ │ └── show.js │ │ │ ├── pacts │ │ │ │ ├── create │ │ │ │ │ ├── create-pact-controller.js │ │ │ │ │ ├── create-pact.html.erb │ │ │ │ │ └── templates │ │ │ │ │ │ ├── anon-img.html.haml │ │ │ │ │ │ ├── current-person-img.html.haml │ │ │ │ │ │ └── payment-form.html │ │ │ │ └── single-pact │ │ │ │ │ ├── single-pact-controller.js │ │ │ │ │ └── single-pact.html.haml │ │ │ ├── people │ │ │ │ ├── activity.html.erb │ │ │ │ ├── activity.js │ │ │ │ └── templates │ │ │ │ │ └── header.html │ │ │ ├── press │ │ │ │ ├── index.html │ │ │ │ └── index.js │ │ │ ├── settings │ │ │ │ ├── accounts.html │ │ │ │ ├── accounts.js │ │ │ │ ├── profile.html │ │ │ │ ├── profile.js │ │ │ │ ├── tabs.html │ │ │ │ └── tabs.js │ │ │ ├── signin │ │ │ │ ├── callback.html │ │ │ │ ├── callback.js │ │ │ │ ├── reset.html │ │ │ │ ├── reset.js │ │ │ │ ├── signin.html │ │ │ │ ├── signin.js.erb │ │ │ │ ├── verify.html │ │ │ │ ├── verify.js │ │ │ │ ├── verify_email.html │ │ │ │ └── verify_email.js │ │ │ ├── teams │ │ │ │ ├── _new_team_request_invite.html │ │ │ │ ├── _share_badge.html │ │ │ │ ├── _tags.html │ │ │ │ ├── _team_table.html.haml │ │ │ │ ├── backers.html │ │ │ │ ├── base.js │ │ │ │ ├── bounties.html │ │ │ │ ├── bounties.js │ │ │ │ ├── fundraiser.html │ │ │ │ ├── fundraiser.js │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── issue_suggestions │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.js │ │ │ │ │ ├── new.html │ │ │ │ │ └── new.js │ │ │ │ ├── issues.html.erb │ │ │ │ ├── issues.js │ │ │ │ ├── join.html │ │ │ │ ├── join.js │ │ │ │ ├── manage_members.html │ │ │ │ ├── manage_members.js │ │ │ │ ├── manage_projects.html │ │ │ │ ├── manage_projects.js │ │ │ │ ├── members.html │ │ │ │ ├── new.html.erb │ │ │ │ ├── new.js │ │ │ │ ├── rewards.html │ │ │ │ ├── rewards.js │ │ │ │ ├── settings.html │ │ │ │ ├── settings.js │ │ │ │ ├── show.html.haml │ │ │ │ ├── show.js │ │ │ │ ├── suggested_issues.html │ │ │ │ ├── suggested_issues.js │ │ │ │ ├── tagged.html.haml │ │ │ │ ├── tagged.js │ │ │ │ ├── team_badge_controller.js │ │ │ │ ├── team_badge_modal.html │ │ │ │ ├── teams.js │ │ │ │ ├── update.html │ │ │ │ ├── update.js │ │ │ │ ├── update_new.html │ │ │ │ ├── update_new.js │ │ │ │ ├── updates.html │ │ │ │ └── updates.js │ │ │ ├── tools │ │ │ │ ├── all.html │ │ │ │ ├── base.js │ │ │ │ ├── installed.html │ │ │ │ ├── installed.js │ │ │ │ └── templates │ │ │ │ │ ├── header.html │ │ │ │ │ ├── info.html.erb │ │ │ │ │ ├── plugin_settings.html │ │ │ │ │ ├── tabs.html │ │ │ │ │ └── trackers.html │ │ │ └── trackers │ │ │ │ ├── _tracker_header.html │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── nav_tabs.js │ │ │ │ ├── show.html.erb │ │ │ │ ├── show.js │ │ │ │ ├── templates │ │ │ │ ├── nav_tabs.html │ │ │ │ └── tracker_badge_modal.html │ │ │ │ └── tracker_badge_controller.js │ │ ├── common │ │ │ ├── angularTypeaheadOverride.js │ │ │ ├── constants │ │ │ │ ├── countries.js │ │ │ │ ├── defaultRouteOptions.js │ │ │ │ ├── personResolver.js │ │ │ │ └── usStates.js │ │ │ ├── directives │ │ │ │ ├── abRandomize │ │ │ │ │ └── abRandomize.js │ │ │ │ ├── activityTimeline │ │ │ │ │ ├── activityTimeline.html │ │ │ │ │ └── activityTimeline.js │ │ │ │ ├── addressForm │ │ │ │ │ ├── addressFormInputGroups.html │ │ │ │ │ └── addressFormInputGroups.js │ │ │ │ ├── addressSelect │ │ │ │ │ ├── addressSelect.html │ │ │ │ │ └── addressSelect.js │ │ │ │ ├── backerList │ │ │ │ │ ├── backerList.html │ │ │ │ │ └── backerList.js │ │ │ │ ├── backerThumbnails │ │ │ │ │ ├── backerThumbnails.html.erb │ │ │ │ │ └── backerThumbnails.js │ │ │ │ ├── claimContent │ │ │ │ │ ├── claimContent.html │ │ │ │ │ └── claimContent.js │ │ │ │ ├── favicon │ │ │ │ │ ├── favicon.html │ │ │ │ │ └── favicon.js │ │ │ │ ├── formattedAddress │ │ │ │ │ ├── formattedAddress.html │ │ │ │ │ └── formattedAddress.js │ │ │ │ ├── fundraiserEditForm │ │ │ │ │ ├── fundraiserEditForm.html │ │ │ │ │ └── fundraiserEditForm.js │ │ │ │ ├── fundraiserSideBar │ │ │ │ │ ├── fundraiserSideBar.html │ │ │ │ │ └── fundraiserSideBar.js │ │ │ │ ├── fundraiserTemplate │ │ │ │ │ ├── fundraiserTemplate.html.erb │ │ │ │ │ └── fundraiserTemplate.js │ │ │ │ ├── fundraiserTweetButton │ │ │ │ │ ├── fundraiserTweetButton.html │ │ │ │ │ └── fundraiserTweetButton.js │ │ │ │ ├── infoSpace │ │ │ │ │ ├── infoSpace.html.erb │ │ │ │ │ └── infoSpace.js │ │ │ │ ├── inputSlug │ │ │ │ │ └── inputSlug.js │ │ │ │ ├── integerOnly │ │ │ │ │ └── integerOnly.js │ │ │ │ ├── issueCard │ │ │ │ │ ├── issueCard.html.erb │ │ │ │ │ └── issueCard.js │ │ │ │ ├── issueList │ │ │ │ │ ├── issueList.html │ │ │ │ │ └── issueList.js │ │ │ │ ├── issueStatusLabel │ │ │ │ │ ├── issueStatusLabel.html │ │ │ │ │ └── issueStatusLabel.js │ │ │ │ ├── loadingBar │ │ │ │ │ ├── loadingBar.html │ │ │ │ │ └── loadingBar.js │ │ │ │ ├── nameForExternalLink │ │ │ │ │ ├── nameForExternalLink.html.haml │ │ │ │ │ └── nameForExternalLink.js │ │ │ │ ├── navElement │ │ │ │ │ ├── navElement.html │ │ │ │ │ └── navElement.js │ │ │ │ ├── ngAutofillAware │ │ │ │ │ └── ngAutofillAware.js │ │ │ │ ├── ngClickRequireAuth │ │ │ │ │ └── ngClickRequireAuth.js │ │ │ │ ├── ngFocus │ │ │ │ │ └── ngFocus.js │ │ │ │ ├── onFinishRender │ │ │ │ │ └── onFinishRender.js │ │ │ │ ├── ownerHref │ │ │ │ │ └── ownerHref.js │ │ │ │ ├── personIcon │ │ │ │ │ ├── personIcon.html │ │ │ │ │ └── personIcon.js │ │ │ │ ├── profileName │ │ │ │ │ ├── profileName.html.haml │ │ │ │ │ └── profileName.js │ │ │ │ ├── profilePic │ │ │ │ │ ├── profilePic.html.haml │ │ │ │ │ └── profilePic.js │ │ │ │ ├── recommendationBox │ │ │ │ │ ├── recommendationBox.html.haml │ │ │ │ │ └── recommendationBox.js │ │ │ │ ├── requireGithubAuth │ │ │ │ │ └── requireGithubAuth.js │ │ │ │ ├── requireGplus │ │ │ │ │ └── requireGplus.js │ │ │ │ ├── requireTwitter │ │ │ │ │ └── requireTwitter.js │ │ │ │ ├── selectOnClick │ │ │ │ │ └── selectOnClick.js │ │ │ │ ├── shareBadge │ │ │ │ │ ├── issue_badge_modal.html │ │ │ │ │ ├── shareBadge.html │ │ │ │ │ └── shareBadge.js │ │ │ │ ├── shareButton │ │ │ │ │ ├── shareButton.html.erb │ │ │ │ │ └── shareButton.js │ │ │ │ ├── signalIcon │ │ │ │ │ ├── signalIcon.html │ │ │ │ │ └── signalIcon.js │ │ │ │ ├── takedown │ │ │ │ │ ├── takedown.html │ │ │ │ │ └── takedown.js │ │ │ │ ├── targetBlank │ │ │ │ │ └── targetBlank.js │ │ │ │ ├── teamBadge │ │ │ │ │ └── teamBadge.js │ │ │ │ ├── teamForm │ │ │ │ │ ├── teamForm.html │ │ │ │ │ └── teamForm.js │ │ │ │ ├── teamView │ │ │ │ │ ├── tag_autocomplete.html.haml │ │ │ │ │ ├── teamView.html.erb │ │ │ │ │ └── teamView.js │ │ │ │ ├── thumbnailLinks │ │ │ │ │ ├── thumbnailLinks.html.erb │ │ │ │ │ └── thumbnailLinks.js │ │ │ │ ├── thumbsUpBox │ │ │ │ │ ├── thumbsUpBox.html.haml │ │ │ │ │ └── thumbsUpBox.js │ │ │ │ ├── timeDifference │ │ │ │ │ ├── timeDifference.html │ │ │ │ │ └── timeDifference.js │ │ │ │ ├── timeline │ │ │ │ │ ├── timeline.html.erb │ │ │ │ │ ├── timeline.js │ │ │ │ │ ├── timelineSmall.html.erb │ │ │ │ │ └── timelineSmall.js │ │ │ │ └── updateList │ │ │ │ │ ├── updateList.html │ │ │ │ │ └── updateList.js │ │ │ ├── factories │ │ │ │ ├── Badge.js │ │ │ │ ├── IssueBadge.js │ │ │ │ ├── NavTab.js │ │ │ │ ├── Pagination.js │ │ │ │ ├── TeamBadge.js │ │ │ │ ├── TeamBadgeBountiesPosted.js │ │ │ │ ├── TeamBadgeBountiesReceived.js │ │ │ │ ├── TeamBadgeRaised.js │ │ │ │ ├── TrackerBadge.js │ │ │ │ ├── Web3.js │ │ │ │ └── addressManager │ │ │ │ │ └── addressManager.js │ │ │ ├── filters │ │ │ │ ├── atLeast.js │ │ │ │ ├── atMost.js │ │ │ │ ├── cleanUrl.js │ │ │ │ ├── currencyUnit.js │ │ │ │ ├── dollars.js │ │ │ │ ├── emptyFilter.js │ │ │ │ ├── encodeEntities.js │ │ │ │ ├── encodeUriQuery.js │ │ │ │ ├── fromSnakeCase.js │ │ │ │ ├── fundraiserStatus.js │ │ │ │ ├── hex.js │ │ │ │ ├── orderObjectBy.js │ │ │ │ ├── percent.js │ │ │ │ ├── pluck.js │ │ │ │ ├── proposalStatus.js │ │ │ │ ├── round.js │ │ │ │ ├── shuffle.js │ │ │ │ ├── slice.js │ │ │ │ ├── slug.js │ │ │ │ ├── timeAgoShort.js │ │ │ │ ├── timeDiff.js │ │ │ │ ├── timeLeftInWords.js │ │ │ │ ├── title.js │ │ │ │ ├── truncate.js │ │ │ │ ├── trustedHtml.js │ │ │ │ └── unique.js │ │ │ ├── providers │ │ │ │ ├── currentPersonResolver.js │ │ │ │ └── featureProvider.js │ │ │ ├── resources │ │ │ │ ├── Person.js │ │ │ │ ├── Proposal.js │ │ │ │ ├── Stat.js │ │ │ │ ├── Team.js │ │ │ │ ├── Timeline.js │ │ │ │ ├── Wallet.js │ │ │ │ ├── bounties.js │ │ │ │ ├── bounty_claim.js │ │ │ │ ├── comments.js │ │ │ │ ├── developer_goal.js │ │ │ │ ├── issue.js │ │ │ │ ├── payment_method.js │ │ │ │ ├── recommendation.js │ │ │ │ ├── request_for_proposal.js │ │ │ │ ├── solution.js │ │ │ │ ├── tag.js │ │ │ │ ├── thumb.js │ │ │ │ └── tracker.js │ │ │ ├── routes.js │ │ │ ├── services │ │ │ │ ├── addresses.js │ │ │ │ ├── api.js.erb │ │ │ │ ├── gplus.js │ │ │ │ ├── pageTitle.js │ │ │ │ ├── teams.js │ │ │ │ └── twttr.js │ │ │ ├── templates │ │ │ │ ├── hunterBoxModal.html.erb │ │ │ │ ├── issueAddressQrModal.html.erb │ │ │ │ ├── metamaskModal.html.erb │ │ │ │ ├── trackerPluginAuthorizeModal.html │ │ │ │ └── trackerSigninModal.html.erb │ │ │ ├── trackerPluginAuthorizeModal.js │ │ │ └── trackerSigninModal.js │ │ ├── lib │ │ │ ├── angular-qrcode.js │ │ │ ├── api_config.js │ │ │ ├── cookie_jar.js │ │ │ ├── cookie_jar_config.js │ │ │ ├── elastic-textarea.js │ │ │ ├── markdown.js │ │ │ ├── ng-click-copy.js │ │ │ ├── qr_code.js │ │ │ └── qrcode_UTF8.js │ │ ├── salt.js.erb │ │ └── salt │ │ │ ├── api.js │ │ │ ├── app.js │ │ │ ├── auth.js │ │ │ ├── checkout │ │ │ ├── _amount.html.erb │ │ │ ├── _display.html.erb │ │ │ ├── amount.html.erb │ │ │ ├── amount.js │ │ │ ├── base.js │ │ │ ├── display.html.erb │ │ │ ├── display.js │ │ │ ├── one_time_payment.html.erb │ │ │ ├── one_time_payment.js │ │ │ ├── payment.html.erb │ │ │ └── payment.js │ │ │ ├── directives │ │ │ ├── target_blank.js │ │ │ ├── thumbs_up_box.html.haml │ │ │ └── thumbs_up_box.js │ │ │ ├── env.js │ │ │ ├── filters.js │ │ │ ├── google_analytics.js │ │ │ ├── home │ │ │ ├── activity.html │ │ │ ├── activity.js │ │ │ ├── base.html.erb │ │ │ ├── base.js │ │ │ ├── home_search.js │ │ │ ├── teams.html │ │ │ ├── teams.js │ │ │ ├── teams_list.html │ │ │ ├── teams_list.js │ │ │ ├── updates.html │ │ │ └── updates.js │ │ │ ├── issues │ │ │ ├── index.html │ │ │ └── index.js │ │ │ ├── layout │ │ │ ├── error.html │ │ │ ├── error.js │ │ │ ├── footer.html.erb │ │ │ ├── layout.html │ │ │ ├── layout.js │ │ │ ├── navbar.html.erb │ │ │ └── navbar.js │ │ │ ├── session │ │ │ ├── _buttons.html.erb │ │ │ ├── _buttons.js │ │ │ ├── base.js │ │ │ ├── login.html │ │ │ ├── login.js │ │ │ ├── password_reset.html │ │ │ ├── password_reset.js │ │ │ ├── signup.html │ │ │ └── signup.js │ │ │ ├── settings │ │ │ ├── base.html │ │ │ ├── base.js │ │ │ ├── payment_methods.html │ │ │ └── payment_methods.js │ │ │ ├── support_levels │ │ │ ├── _destroy.html │ │ │ ├── base.js │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ ├── show.html.erb │ │ │ └── show.js │ │ │ ├── teams │ │ │ ├── _home_tab.html │ │ │ ├── _support_header.html │ │ │ ├── _support_header_box.html.erb │ │ │ ├── _support_header_supporters.html │ │ │ ├── _support_header_title.html │ │ │ ├── _tabs.html.erb │ │ │ ├── admin │ │ │ │ ├── _tabs.html │ │ │ │ ├── base.html │ │ │ │ ├── base.js │ │ │ │ ├── general.html │ │ │ │ ├── general.js │ │ │ │ ├── goals.html.erb │ │ │ │ ├── goals.js │ │ │ │ ├── rewards.html.erb │ │ │ │ ├── rewards.js │ │ │ │ ├── supporters.html │ │ │ │ ├── supporters.js │ │ │ │ └── updates │ │ │ │ │ ├── base.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.js │ │ │ │ │ ├── new.html │ │ │ │ │ └── new.js │ │ │ ├── base.js │ │ │ ├── not_activated.html.erb │ │ │ ├── not_activated.js │ │ │ ├── show.html │ │ │ ├── show.js │ │ │ ├── supporters.html │ │ │ ├── supporters.js │ │ │ └── updates │ │ │ │ ├── base.js │ │ │ │ ├── index.js │ │ │ │ ├── show.html │ │ │ │ └── show.js │ │ │ └── title.js │ └── stylesheets │ │ ├── admin.css.erb │ │ ├── admin │ │ ├── base.css │ │ ├── bounty_claims.css │ │ ├── companies.css │ │ ├── fundraisers.css │ │ ├── home.css │ │ ├── issues.css │ │ ├── kpi.css │ │ ├── layout.css │ │ ├── people.css │ │ ├── search.css │ │ └── signin.css │ │ ├── bountysource.css.erb │ │ ├── bountysource │ │ ├── about.css │ │ ├── alerts.css │ │ ├── bounty_claims.css │ │ ├── breadcrumbs.css │ │ ├── buttons.scss │ │ ├── cards.scss │ │ ├── chatroom.css │ │ ├── companies.css │ │ ├── custom-grid.css │ │ ├── forms.scss │ │ ├── fundraisers.css │ │ ├── home.css │ │ ├── issues.css │ │ ├── labels.css │ │ ├── landing_page │ │ │ ├── _issue_card.scss │ │ │ ├── _post_bounty_modal.scss │ │ │ ├── _search_form.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _timeline_small.scss │ │ │ └── landing_page.scss │ │ ├── layout.css │ │ ├── learn.css │ │ ├── markdown.css │ │ ├── modal.css │ │ ├── navbar.css │ │ ├── navs.css │ │ ├── panels.scss │ │ ├── people.css │ │ ├── pills.css │ │ ├── progress-bar.css │ │ ├── search.css │ │ ├── settings.css │ │ ├── signin.scss │ │ ├── table.css │ │ ├── teams.css │ │ ├── thumbs.scss │ │ ├── timeline.css │ │ ├── tools.css │ │ ├── trackers.css │ │ └── utilities.css │ │ ├── salt.scss │ │ └── salt │ │ ├── app │ │ ├── angular-ui.scss │ │ ├── checkout.scss │ │ ├── footer.scss │ │ ├── forms.scss │ │ ├── home.scss │ │ ├── issues.scss │ │ ├── layout.scss │ │ ├── markdown.scss │ │ ├── navbar.scss │ │ ├── navs.scss │ │ ├── sessions.scss │ │ ├── tables.scss │ │ ├── teams.scss │ │ ├── thumbs.scss │ │ ├── timeline.scss │ │ └── utilities.scss │ │ ├── base.scss │ │ ├── bootstrap-custom-utilities.scss │ │ └── bootstrap-overrides.scss ├── controllers │ ├── admin_controller.rb │ ├── api │ │ ├── base_controller.rb │ │ ├── v0 │ │ │ ├── accounts │ │ │ │ ├── personal_controller.rb │ │ │ │ └── set_override_fees_controller.rb │ │ │ ├── accounts_controller.rb │ │ │ ├── activity_logs_controller.rb │ │ │ ├── base_controller.rb │ │ │ ├── bounties_controller.rb │ │ │ ├── bounty_claims │ │ │ │ └── force_collects_controller.rb │ │ │ ├── bounty_claims_controller.rb │ │ │ ├── cash_outs_controller.rb │ │ │ ├── crypto_pay_outs │ │ │ │ └── sends_controller.rb │ │ │ ├── crypto_pay_outs_controller.rb │ │ │ ├── delayed_jobs_controller.rb │ │ │ ├── developer_goals_controller.rb │ │ │ ├── ethereum_transaction_refunds_controller.rb │ │ │ ├── events_controller.rb │ │ │ ├── follow_relations_controller.rb │ │ │ ├── fundraisers_controller.rb │ │ │ ├── github │ │ │ │ └── repositories_controller.rb │ │ │ ├── home_controller.rb │ │ │ ├── info_spaces_controller.rb │ │ │ ├── issue_addresses_controller.rb │ │ │ ├── issues_controller.rb │ │ │ ├── payments_controller.rb │ │ │ ├── people_controller.rb │ │ │ ├── pledges_controller.rb │ │ │ ├── report_controller.rb │ │ │ ├── request_for_proposals_controller.rb │ │ │ ├── searches_controller.rb │ │ │ ├── shorts_controller.rb │ │ │ ├── solutions_controller.rb │ │ │ ├── splits_controller.rb │ │ │ ├── tags_controller.rb │ │ │ ├── takedowns_controller.rb │ │ │ ├── team_claims_controller.rb │ │ │ ├── team_payins_controller.rb │ │ │ ├── teams_controller.rb │ │ │ ├── tracker_plugins_controller.rb │ │ │ ├── trackers_controller.rb │ │ │ └── transactions_controller.rb │ │ ├── v1 │ │ │ ├── addresses_controller.rb │ │ │ ├── bounties_controller.rb │ │ │ ├── bounty_claim_responses_controller.rb │ │ │ ├── bounty_claims_controller.rb │ │ │ ├── bulk_controller.rb │ │ │ ├── delayed_jobs_controller.rb │ │ │ ├── developer_goals_controller.rb │ │ │ ├── email_change_verifications_controller.rb │ │ │ ├── email_verifications_controller.rb │ │ │ ├── follow_relations_controller.rb │ │ │ ├── fundraisers_controller.rb │ │ │ ├── home_controller.rb │ │ │ ├── info_spaces_controller.rb │ │ │ ├── issue_addresses_controller.rb │ │ │ ├── issues │ │ │ │ ├── crypto_bounties_controller.rb │ │ │ │ └── reindices_controller.rb │ │ │ ├── issues_controller.rb │ │ │ ├── languages_controller.rb │ │ │ ├── notifications_controller.rb │ │ │ ├── people_controller.rb │ │ │ ├── person_relations_controller.rb │ │ │ ├── pledges_controller.rb │ │ │ ├── postbacks_controller.rb │ │ │ ├── projects_controller.rb │ │ │ ├── rewards_controller.rb │ │ │ ├── saved_search_tabs_controller.rb │ │ │ ├── searches_controller.rb │ │ │ ├── solutions_controller.rb │ │ │ ├── stats_controller.rb │ │ │ ├── team_invites_controller.rb │ │ │ ├── teams_controller.rb │ │ │ ├── tracker_plugins_controller.rb │ │ │ ├── tracker_relations_controller.rb │ │ │ ├── trackers_controller.rb │ │ │ └── transactions_controller.rb │ │ └── v2 │ │ │ ├── account_controller.rb │ │ │ ├── addresses_controller.rb │ │ │ ├── backers_controller.rb │ │ │ ├── bounties_controller.rb │ │ │ ├── bounty_claims_controller.rb │ │ │ ├── cart_controller.rb │ │ │ ├── cash_outs_controller.rb │ │ │ ├── comments_controller.rb │ │ │ ├── currencies_controller.rb │ │ │ ├── developer_goals_controller.rb │ │ │ ├── events_controller.rb │ │ │ ├── fundraiser_rewards_controller.rb │ │ │ ├── fundraisers_controller.rb │ │ │ ├── issue_suggestions_controller.rb │ │ │ ├── issues_controller.rb │ │ │ ├── pact_applications_controller.rb │ │ │ ├── pacts_controller.rb │ │ │ ├── payment_methods_controller.rb │ │ │ ├── people_controller.rb │ │ │ ├── people_trackers_controller.rb │ │ │ ├── pledges_controller.rb │ │ │ ├── plugins_controller.rb │ │ │ ├── recommendations_controller.rb │ │ │ ├── solutions_controller.rb │ │ │ ├── stats_controller.rb │ │ │ ├── support_levels_controller.rb │ │ │ ├── support_offering_rewards_controller.rb │ │ │ ├── supporters_controller.rb │ │ │ ├── tags_controller.rb │ │ │ ├── team_updates_controller.rb │ │ │ ├── teams_controller.rb │ │ │ ├── thumbs_controller.rb │ │ │ ├── timeline_controller.rb │ │ │ ├── trackers_controller.rb │ │ │ ├── wallets │ │ │ └── set_as_primaries_controller.rb │ │ │ └── wallets_controller.rb │ ├── application_controller.rb │ ├── badge_controller.rb │ ├── bounty_source_controller.rb │ ├── coinbase_controller.rb │ ├── concerns │ │ ├── currency_conversion.rb │ │ ├── request_for_proposal_authorization.rb │ │ └── request_tracking.rb │ ├── google_wallet_controller.rb │ ├── payments_controller.rb │ ├── salt_controller.rb │ ├── session_controller.rb │ ├── shorts_controller.rb │ └── track_controller.rb ├── helpers │ ├── admin_helper.rb │ ├── api │ │ ├── v1 │ │ │ └── home_helper.rb │ │ └── v2 │ │ │ ├── account_helper.rb │ │ │ ├── addresses_helper.rb │ │ │ ├── backers_helper.rb │ │ │ ├── base_helper.rb │ │ │ ├── bounties_helper.rb │ │ │ ├── bounty_claims_helper.rb │ │ │ ├── cart_helper.rb │ │ │ ├── cash_outs_helper.rb │ │ │ ├── developer_goals_helper.rb │ │ │ ├── fundraiser_rewards_helper.rb │ │ │ ├── fundraisers_helper.rb │ │ │ ├── issues_helper.rb │ │ │ ├── pagination_helper.rb │ │ │ ├── people_helper.rb │ │ │ ├── people_trackers_helper.rb │ │ │ ├── pledges_helper.rb │ │ │ ├── plugins_helper.rb │ │ │ ├── solutions_helper.rb │ │ │ ├── timeline_helper.rb │ │ │ └── trackers_helper.rb │ ├── bounty_source_helper.rb │ ├── issue_link_helper.rb │ ├── issue_meta_tags_helper.rb │ ├── number_to_dollars_helper.rb │ ├── owner_link_helper.rb │ ├── pacts_helper.rb │ ├── team_link_helper.rb │ └── tracker_link_helper.rb ├── mailers │ ├── mailer.rb │ └── mailer_scheduler.rb ├── models │ ├── ability.rb │ ├── access_token.rb │ ├── account.rb │ ├── account │ │ ├── amazon.rb │ │ ├── apache.rb │ │ ├── bof_a.rb │ │ ├── bounty_source_adjustment.rb │ │ ├── bounty_source_fees_bounty.rb │ │ ├── bounty_source_fees_payment.rb │ │ ├── bounty_source_fees_pledge.rb │ │ ├── bounty_source_fees_team.rb │ │ ├── bounty_source_merch.rb │ │ ├── cash_out_hold.rb │ │ ├── coinbase.rb │ │ ├── doctors_without_borders.rb │ │ ├── electronic_frontier_foundation.rb │ │ ├── free_software_foundation.rb │ │ ├── fundraiser.rb │ │ ├── google_wallet.rb │ │ ├── inactivity_fee.rb │ │ ├── issue_account.rb │ │ ├── liability.rb │ │ ├── payment_method.rb │ │ ├── paypal.rb │ │ ├── personal.rb │ │ ├── repository.rb │ │ ├── request_for_proposal.rb │ │ ├── software_public_interest.rb │ │ └── team.rb │ ├── activity_log.rb │ ├── ad_space.rb │ ├── address.rb │ ├── admin_stat.rb │ ├── application_record.rb │ ├── badge.rb │ ├── badge │ │ ├── issue.rb │ │ ├── team.rb │ │ ├── team │ │ │ ├── bounties_posted.rb │ │ │ ├── bounties_received.rb │ │ │ └── raised.rb │ │ └── tracker.rb │ ├── badge_cache.rb │ ├── badge_factory.rb │ ├── bitbucket │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── bounty.rb │ ├── bounty_claim.rb │ ├── bounty_claim_event.rb │ ├── bounty_claim_event │ │ ├── backer_accepted.rb │ │ ├── backer_dispute_resolved.rb │ │ ├── backer_disputed.rb │ │ ├── collected.rb │ │ └── rejected.rb │ ├── bounty_claim_response.rb │ ├── bugzilla │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── cash_out.rb │ ├── cash_out │ │ ├── bitcoin.rb │ │ ├── check.rb │ │ ├── mastercoin.rb │ │ ├── paypal.rb │ │ └── ripple.rb │ ├── coinbase_api.rb │ ├── comment.rb │ ├── concerns │ │ ├── email_verification.rb │ │ ├── has_account.rb │ │ ├── has_cloudinary.rb │ │ ├── has_owner.rb │ │ └── password_resetable.rb │ ├── crontab.rb │ ├── crypto_admin_address.rb │ ├── crypto_bounty.rb │ ├── crypto_pay_out.rb │ ├── crypto_pay_out_claim_event.rb │ ├── crypto_pay_out_txn.rb │ ├── currency.rb │ ├── currency │ │ ├── bitcoin.rb │ │ ├── erc20.rb │ │ └── ethereum.rb │ ├── developer_goal.rb │ ├── event.rb │ ├── follow_relation.rb │ ├── fundraiser.rb │ ├── fundraiser_tracker_relation.rb │ ├── github │ │ ├── api.rb │ │ ├── event.rb │ │ ├── issue.rb │ │ └── repository.rb │ ├── github_stargazer.rb │ ├── gitlab │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── google_code │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── google_wallet_item.rb │ ├── issue.rb │ ├── issue_address.rb │ ├── issue_rank.rb │ ├── issue_rank │ │ ├── linked_account_github.rb │ │ ├── person.rb │ │ └── team_rank.rb │ ├── issue_rank_cache.rb │ ├── issue_suggestion.rb │ ├── issue_suggestion_reward.rb │ ├── jira │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── language.rb │ ├── language_person_relation.rb │ ├── launchpad │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── linked_account │ │ ├── base.rb │ │ ├── bitbucket.rb │ │ ├── facebook.rb │ │ ├── github.rb │ │ ├── github │ │ │ ├── bot.rb │ │ │ ├── organization.rb │ │ │ └── user.rb │ │ ├── gitlab.rb │ │ └── twitter.rb │ ├── lurker.rb │ ├── mantis │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── merged_model.rb │ ├── milestone.rb │ ├── mixpanel_alias.rb │ ├── mixpanel_event.rb │ ├── pact.rb │ ├── pact_application.rb │ ├── payment_method.rb │ ├── payment_method │ │ ├── paypal_reference_transaction.rb │ │ └── stripe_credit_card.rb │ ├── payment_method_temporary.rb │ ├── payment_notification.rb │ ├── payment_notification │ │ ├── balanced_payments.rb │ │ ├── coinbase.rb │ │ ├── paypal.rb │ │ ├── paypal_reference_transaction.rb │ │ └── stripe_credit_card.rb │ ├── payment_notification_log.rb │ ├── paypal_ipn.rb │ ├── person.rb │ ├── person_relation │ │ ├── base.rb │ │ ├── bounty_source.rb │ │ ├── facebook.rb │ │ ├── github.rb │ │ └── twitter.rb │ ├── php_tracker │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── pivotal │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── pledge.rb │ ├── pledge_survey_response.rb │ ├── postback.rb │ ├── proposal.rb │ ├── public_stat.rb │ ├── quickbooks_base.rb │ ├── quickbooks_token.rb │ ├── quickbooks_transaction.rb │ ├── quickbooks_vendor.rb │ ├── recommendation_event.rb │ ├── request_for_proposal.rb │ ├── reward.rb │ ├── savannah │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── saved_search_tab.rb │ ├── search.rb │ ├── sendgrid.rb │ ├── sent_email.rb │ ├── shopping_cart.rb │ ├── short.rb │ ├── solution.rb │ ├── solution_event.rb │ ├── solution_event │ │ ├── checked_in.rb │ │ ├── completed.rb │ │ ├── started.rb │ │ └── stopped.rb │ ├── source_forge │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── source_forge_native │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── split.rb │ ├── support_level.rb │ ├── support_level_payment.rb │ ├── support_offering.rb │ ├── support_offering_reward.rb │ ├── tag.rb │ ├── tag_relation.rb │ ├── tag_vote.rb │ ├── takedown.rb │ ├── team.rb │ ├── team_activity_inclusion.rb │ ├── team_bounty_hunter.rb │ ├── team_claim.rb │ ├── team_invite.rb │ ├── team_member_relation.rb │ ├── team_payin.rb │ ├── team_tracker_relation.rb │ ├── team_update.rb │ ├── thumb.rb │ ├── trac │ │ ├── api.rb │ │ ├── issue.rb │ │ └── tracker.rb │ ├── tracker.rb │ ├── tracker_donation.rb │ ├── tracker_language_relation.rb │ ├── tracker_person_relation.rb │ ├── tracker_plugin.rb │ ├── tracker_plugin │ │ └── gh.rb │ ├── tracker_plugin_backup.rb │ ├── tracker_rank_cache.rb │ ├── tracker_relation.rb │ ├── tracker_relation │ │ ├── committer.rb │ │ ├── organization_member.rb │ │ └── owner.rb │ ├── tracker_unknown.rb │ ├── transaction.rb │ ├── transaction │ │ ├── bank_transfer.rb │ │ ├── cash_out.rb │ │ ├── cash_out │ │ │ ├── bank_of_america.rb │ │ │ ├── google_wallet.rb │ │ │ └── paypal.rb │ │ ├── internal_transfer.rb │ │ ├── internal_transfer │ │ │ ├── bounty_claim.rb │ │ │ ├── bounty_refund.rb │ │ │ ├── deleted_owner.rb │ │ │ ├── fraud_reclaim.rb │ │ │ ├── fundraiser_cash_out.rb │ │ │ ├── inactivity_fee.rb │ │ │ ├── promotional.rb │ │ │ └── revenue_recognition.rb │ │ ├── order.rb │ │ ├── order │ │ │ ├── coinbase.rb │ │ │ ├── google_wallet.rb │ │ │ ├── internal.rb │ │ │ └── paypal.rb │ │ ├── payment.rb │ │ ├── payment │ │ │ ├── paypal_reference_transaction.rb │ │ │ └── stripe_credit_card.rb │ │ ├── refund.rb │ │ └── refund │ │ │ ├── google_wallet.rb │ │ │ └── paypal.rb │ ├── unsubscribe.rb │ └── wallet.rb ├── queries │ ├── crypto_pay_outs_query.rb │ └── people_query.rb ├── services │ ├── charge_user_inactivity_fee.rb │ └── crypto_api.rb ├── validators │ └── url_validator.rb └── views │ ├── api │ ├── v0 │ │ ├── access_tokens.rabl │ │ ├── activity_logs │ │ │ └── index.rabl │ │ ├── ad_spaces │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ └── _base.rabl │ │ │ └── show.rabl │ │ ├── bounties │ │ │ ├── csv.json.rb │ │ │ ├── index.rabl │ │ │ ├── index_for_person.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── splits.rabl │ │ │ └── show.rabl │ │ ├── crypto_pay_out_txns │ │ │ └── partials │ │ │ │ └── _base.rabl │ │ ├── crypto_pay_outs │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ └── _base.rabl │ │ │ └── show.rabl │ │ ├── delayed_jobs │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ └── handler.rabl │ │ │ └── show.rabl │ │ ├── developer_goals │ │ │ └── index.rabl │ │ ├── events │ │ │ ├── _base.json.jbuilder │ │ │ └── index.json.jbuilder │ │ ├── fundraisers │ │ │ ├── index_for_person.rabl │ │ │ └── tracker_relations.rabl │ │ ├── issue_addresses │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ └── base.rabl │ │ │ └── show.rabl │ │ ├── issues │ │ │ ├── counts.rabl │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── bounties.rabl │ │ │ │ └── tracker.rabl │ │ │ └── show.rabl │ │ ├── pledges │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── person.rabl │ │ │ │ └── splits.rabl │ │ │ └── show.rabl │ │ ├── report │ │ │ ├── escrow_report.rabl │ │ │ ├── liability_report.rabl │ │ │ └── transactions.rabl │ │ ├── request_for_proposals │ │ │ ├── _base.json.jbuilder │ │ │ └── index.json.jbuilder │ │ ├── searches │ │ │ └── index.rabl │ │ ├── shorts │ │ │ ├── _base.jbuilder │ │ │ ├── index.jbuilder │ │ │ └── show.jbuilder │ │ ├── solutions │ │ │ └── index.rabl │ │ ├── splits │ │ │ └── index.rabl │ │ ├── tag_votes │ │ │ ├── _base.json.jbuilder │ │ │ └── index.json.jbuilder │ │ ├── tags │ │ │ ├── _base.json.jbuilder │ │ │ └── show.json.jbuilder │ │ ├── takedowns │ │ │ └── index.rabl │ │ ├── team_claims │ │ │ └── index.rabl │ │ ├── team_payins │ │ │ ├── base.rabl │ │ │ ├── index.rabl │ │ │ └── show.rabl │ │ ├── teams │ │ │ ├── index.rabl │ │ │ └── show.rabl │ │ ├── tracker_plugins │ │ │ ├── index.rabl │ │ │ └── partials │ │ │ │ └── tracker.rabl │ │ ├── trackers │ │ │ ├── index.rabl │ │ │ └── show.rabl │ │ └── transactions │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ ├── admin.rabl │ │ │ ├── base.rabl │ │ │ └── splits.rabl │ │ │ └── show.rabl │ ├── v1 │ │ ├── accounts │ │ │ ├── admin.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── extended.rabl │ │ │ │ └── owner.rabl │ │ │ └── show.rabl │ │ ├── ad_spaces │ │ │ ├── index.rabl │ │ │ └── partials │ │ │ │ └── _base.rabl │ │ ├── authors │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── bounties │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── issue.rabl │ │ │ │ ├── options.rabl │ │ │ │ ├── owner.rabl │ │ │ │ ├── pact.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── splits.rabl │ │ │ └── show.rabl │ │ ├── bounty_claim_events │ │ │ └── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── bounty_claim.rabl │ │ │ │ └── person.rabl │ │ ├── bounty_claim_responses │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── bounty_claim.rabl │ │ │ │ ├── owner.rabl │ │ │ │ └── person.rabl │ │ │ └── show.rabl │ │ ├── bounty_claims │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── bounty_claim_events.rabl │ │ │ │ ├── bounty_claim_responses.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── issue.rabl │ │ │ │ ├── pact.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── responses.rabl │ │ │ └── show.rabl │ │ ├── bulk │ │ │ └── issues.rabl │ │ ├── cards │ │ │ └── index.rabl │ │ ├── crypto_bounties │ │ │ ├── index.rabl │ │ │ └── partials │ │ │ │ ├── base.rabl │ │ │ │ └── owner.rabl │ │ ├── crypto_pay_outs │ │ │ ├── index.rabl │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── developer_goals │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── issue.rabl │ │ │ │ └── person.rabl │ │ │ └── show.rabl │ │ ├── doge_issues │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ └── issue.rabl │ │ │ └── ranked_index.rabl │ │ ├── follow_relations │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── item.rabl │ │ │ │ └── person.rabl │ │ │ └── show.rabl │ │ ├── fundraisers │ │ │ ├── admin.rabl │ │ │ ├── cards.rabl │ │ │ ├── embed.html.erb │ │ │ ├── index.rabl │ │ │ ├── info.rabl │ │ │ ├── partials │ │ │ │ ├── account.rabl │ │ │ │ ├── base.rabl │ │ │ │ ├── card.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── rewards.rabl │ │ │ │ └── team.rabl │ │ │ ├── show.rabl │ │ │ └── updates │ │ │ │ └── partials │ │ │ │ ├── base.rabl │ │ │ │ └── extended.rabl │ │ ├── github_repositories │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── issue_addresses │ │ │ ├── create.rabl │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── issues │ │ │ ├── activity.rabl │ │ │ ├── authored.rabl │ │ │ ├── bounties.rabl │ │ │ ├── featured.rabl │ │ │ ├── index.rabl │ │ │ ├── overview.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── bounties.rabl │ │ │ │ ├── bounty_claims.rabl │ │ │ │ ├── card.rabl │ │ │ │ ├── comments.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── search.rabl │ │ │ │ └── tracker.rabl │ │ │ ├── show.rabl │ │ │ └── waiting_for_developer.rabl │ │ ├── languages │ │ │ ├── index.rabl │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── linked_accounts │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── extended.rabl │ │ │ │ └── faux_person.rabl │ │ │ └── show.rabl │ │ ├── notifications │ │ │ └── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── bounty.rabl │ │ │ │ ├── fundraiser.rabl │ │ │ │ └── pledge.rabl │ │ ├── owners │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── pacts │ │ │ └── partials │ │ │ │ ├── base.rabl │ │ │ │ └── search.rabl │ │ ├── paypal_ipns │ │ │ ├── index.rabl │ │ │ └── partials │ │ │ │ ├── base.rabl │ │ │ │ └── transaction.rabl │ │ ├── people │ │ │ ├── activity.rabl │ │ │ ├── bounties.rabl │ │ │ ├── bounty_total.rabl │ │ │ ├── contributions.rabl │ │ │ ├── create.rabl │ │ │ ├── crypto_bounties.rabl │ │ │ ├── crypto_pay_outs.rabl │ │ │ ├── index.rabl │ │ │ ├── index_admin.rabl │ │ │ ├── interesting.rabl │ │ │ ├── languages.rabl │ │ │ ├── login.rabl │ │ │ ├── pacts.rabl │ │ │ ├── partials │ │ │ │ ├── account.rabl │ │ │ │ ├── authenticated.rabl │ │ │ │ ├── base.rabl │ │ │ │ ├── bounties.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── facebook_account.rabl │ │ │ │ ├── fundraisers.rabl │ │ │ │ ├── github_account.rabl │ │ │ │ ├── pledges.rabl │ │ │ │ ├── teams.rabl │ │ │ │ ├── twitter_account.rabl │ │ │ │ └── wallets.rabl │ │ │ ├── pledges.rabl │ │ │ ├── profile.rabl │ │ │ ├── projects.rabl │ │ │ ├── recent.rabl │ │ │ ├── show.rabl │ │ │ ├── show_admin.rabl │ │ │ ├── teams.rabl │ │ │ └── tracker_plugins.rabl │ │ ├── pledges │ │ │ ├── admin.rabl │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── fundraiser.rabl │ │ │ │ ├── owner.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── reward.rabl │ │ │ ├── recent.rabl │ │ │ ├── show.rabl │ │ │ └── top_backers.rabl │ │ ├── projects │ │ │ └── issues.rabl │ │ ├── proposals │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── rewards │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ └── extended.rabl │ │ │ └── show.rabl │ │ ├── saved_search_tabs │ │ │ └── index.rabl │ │ ├── searches │ │ │ ├── bounty_search.rabl │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── issues.rabl │ │ │ │ ├── params.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── trackers.rabl │ │ │ ├── show.rabl │ │ │ └── typeahead.rabl │ │ ├── shopping_cart │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── items.rabl │ │ │ │ └── items │ │ │ │ │ ├── base.rabl │ │ │ │ │ ├── bounty.rabl │ │ │ │ │ ├── pledge.rabl │ │ │ │ │ └── team_payin.rabl │ │ │ └── show.rabl │ │ ├── solutions │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── solution_events.rabl │ │ │ └── show.rabl │ │ ├── splits │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── extended.rabl │ │ │ │ └── transaction.rabl │ │ │ └── show.rabl │ │ ├── team_invites │ │ │ ├── create.rabl │ │ │ ├── index.rabl │ │ │ └── partials │ │ │ │ └── base.rabl │ │ ├── team_payins │ │ │ └── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── team.rabl │ │ ├── teams │ │ │ ├── activity.rabl │ │ │ ├── bounties.rabl │ │ │ ├── index.rabl │ │ │ ├── issues.rabl │ │ │ ├── members.rabl │ │ │ ├── partials │ │ │ │ ├── account.rabl │ │ │ │ ├── base.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── linked_account.rabl │ │ │ │ ├── member.rabl │ │ │ │ ├── overview.rabl │ │ │ │ └── trackers.rabl │ │ │ ├── show.rabl │ │ │ └── trackers.rabl │ │ ├── tracker_plugins │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── person.rabl │ │ │ │ └── tracker.rabl │ │ │ └── show.rabl │ │ ├── tracker_relations │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── linked_account.rabl │ │ │ │ └── tracker.rabl │ │ │ └── show.rabl │ │ ├── trackers │ │ │ ├── activity.rabl │ │ │ ├── cards.rabl │ │ │ ├── followed.rabl │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ │ ├── base.rabl │ │ │ │ ├── extended.rabl │ │ │ │ ├── languages.rabl │ │ │ │ ├── owner.rabl │ │ │ │ ├── plugin.rabl │ │ │ │ └── search.rabl │ │ │ ├── show.rabl │ │ │ └── top_backers.rabl │ │ └── transactions │ │ │ ├── index.rabl │ │ │ ├── partials │ │ │ ├── base.rabl │ │ │ ├── checkout_method.rabl │ │ │ ├── items.rabl │ │ │ ├── items │ │ │ │ ├── base.rabl │ │ │ │ ├── bounty.rabl │ │ │ │ ├── issue_suggestion_reward.rabl │ │ │ │ ├── pledge.rabl │ │ │ │ ├── proposal.rabl │ │ │ │ ├── support_level_payment.rabl │ │ │ │ └── team_payin.rabl │ │ │ └── splits.rabl │ │ │ └── show.rabl │ └── v2 │ │ ├── _image_urls.json.jbuilder │ │ ├── account │ │ ├── _base.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── addresses │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── backers │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── bounties │ │ ├── _base.json.jbuilder │ │ ├── _summary.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── summary.json.jbuilder │ │ ├── bounty_claim_responses │ │ └── _base.json.jbuilder │ │ ├── bounty_claims │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── cart │ │ ├── _base.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── cart_items │ │ ├── _base.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── cash_outs │ │ ├── _base.json.jbuilder │ │ ├── csv.json.rb │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── comments │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── developer_goals │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── events │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── fundraiser_rewards │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── fundraisers │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── issue_addresses │ │ └── _base.json.jbuilder │ │ ├── issue_suggestions │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── issues │ │ ├── _base.json.jbuilder │ │ ├── create.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── linked_accounts │ │ └── _base.json.jbuilder │ │ ├── owners │ │ └── _base.json.jbuilder │ │ ├── pact_applications │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── pacts │ │ ├── _base.json.jbuilder │ │ ├── index.html.erb │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── payment_methods │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── people │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ ├── me.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── people_trackers │ │ └── index.json.jbuilder │ │ ├── pledges │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── plugins │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── proposals │ │ ├── _base.json.jbuilder │ │ ├── create.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── recommendations │ │ └── index.json.jbuilder │ │ ├── redirect.json.jbuilder │ │ ├── request_for_proposals │ │ ├── _base.json.jbuilder │ │ ├── create.json.jbuilder │ │ ├── show.json.jbuilder │ │ └── update.json.jbuilder │ │ ├── solutions │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── support_level_payments │ │ └── _base.json.jbuilder │ │ ├── support_levels │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── support_offerings │ │ └── _base.json.jbuilder │ │ ├── supporters │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── tags │ │ ├── _base.json.jbuilder │ │ └── index.json.jbuilder │ │ ├── team_updates │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── teams │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ ├── timeline │ │ └── index.json.jbuilder │ │ ├── trackers │ │ ├── _base.json.jbuilder │ │ ├── _extended.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ │ └── wallets │ │ ├── _base.json.jbuilder │ │ ├── index.json.jbuilder │ │ └── show.json.jbuilder │ ├── bounty_source │ ├── api_docs.html.erb │ ├── fundraiser.html.erb │ └── issue.html.erb │ ├── layouts │ ├── _env.html.erb │ ├── _footer.html.erb │ ├── _footer.text.erb │ ├── _thank_you.html.erb │ ├── _thank_you.text.erb │ ├── admin.html.erb │ ├── bounty_source.html.erb │ ├── email.html.erb │ ├── email.md.erb │ ├── email.text.erb │ └── salt.html.erb │ ├── mailer │ ├── account_created.html.erb │ ├── account_created.text.erb │ ├── added_to_team.html.erb │ ├── added_to_team.text.erb │ ├── bounty_claim_accepted_backer_notice.html.erb │ ├── bounty_claim_accepted_backer_notice.text.erb │ ├── bounty_claim_accepted_developer_notice.html.erb │ ├── bounty_claim_accepted_developer_notice.text.erb │ ├── bounty_claim_contested_backer_notice.html.erb │ ├── bounty_claim_contested_backer_notice.text.erb │ ├── bounty_claim_contested_developer_notice.html.erb │ ├── bounty_claim_contested_developer_notice.text.erb │ ├── bounty_claim_rejected_backer_notice.html.erb │ ├── bounty_claim_rejected_backer_notice.text.erb │ ├── bounty_claim_rejected_developer_notice.html.erb │ ├── bounty_claim_rejected_developer_notice.text.erb │ ├── bounty_claim_rejected_rejecter_notice.html.erb │ ├── bounty_claim_rejected_rejecter_notice.text.erb │ ├── bounty_claim_submitted_backer_notice.html.erb │ ├── bounty_claim_submitted_backer_notice.text.erb │ ├── bounty_claim_submitted_developer_notice.html.erb │ ├── bounty_claim_submitted_developer_notice.text.erb │ ├── bounty_created.html.erb │ ├── bounty_created.text.erb │ ├── bounty_increased.md.erb │ ├── bounty_placed.md.erb │ ├── bounty_refunded.html.erb │ ├── bounty_refunded.text.erb │ ├── bounty_refunded_for_deleted_issue.html.erb │ ├── bounty_refunded_for_deleted_issue.text.erb │ ├── cash_out_payment_sent.md.erb │ ├── change_email.html.erb │ ├── change_email.text.erb │ ├── claim_team.md.erb │ ├── claim_team_rejected.md.erb │ ├── crypto_pay_out_approved.html.erb │ ├── crypto_pay_out_approved.text.erb │ ├── developer_goal_created.html.erb │ ├── developer_goal_created.text.erb │ ├── developer_goal_reached.html.erb │ ├── developer_goal_reached.text.erb │ ├── email_verification.html.erb │ ├── email_verification.text.erb │ ├── extension_feedback.html.erb │ ├── extension_feedback.text.erb │ ├── fundraiser_backed.html.erb │ ├── fundraiser_backed.text.erb │ ├── fundraiser_completed.html.erb │ ├── fundraiser_completed.text.erb │ ├── fundraiser_featured_notification.html.erb │ ├── fundraiser_featured_notification.text.erb │ ├── fundraiser_pledge_made.html.erb │ ├── fundraiser_pledge_made.text.erb │ ├── inactivity_fee_charged.html.erb │ ├── inactivity_fee_charged.text.erb │ ├── invited_to_team.html.erb │ ├── invited_to_team.text.erb │ ├── issue_suggestion_created.html.erb │ ├── issue_suggestion_created.text.erb │ ├── issue_suggestion_rejected.html.erb │ ├── issue_suggestion_rejected.text.erb │ ├── issue_suggestion_thanked.html.erb │ ├── issue_suggestion_thanked.text.erb │ ├── notify_backers_of_developer_goal_set.html.erb │ ├── notify_backers_of_developer_goal_set.text.erb │ ├── notify_backers_of_fundraiser_breached.html.erb │ ├── notify_backers_of_fundraiser_breached.text.erb │ ├── notify_backers_of_fundraiser_half_completion.html.erb │ ├── notify_backers_of_fundraiser_half_completion.text.erb │ ├── notify_creator_of_fundraiser_breached.html.erb │ ├── notify_creator_of_fundraiser_breached.text.erb │ ├── notify_creator_of_fundraiser_half_completion.html.erb │ ├── notify_creator_of_fundraiser_half_completion.text.erb │ ├── notify_stakeholders_of_developer_work_started.html.erb │ ├── notify_stakeholders_of_developer_work_started.text.erb │ ├── notify_stakeholders_of_developer_work_stopped.html.erb │ ├── notify_stakeholders_of_developer_work_stopped.text.erb │ ├── order_created.html.erb │ ├── order_created.text.erb │ ├── order_failed.html.erb │ ├── order_failed.text.erb │ ├── pledge_survey_email.html.erb │ ├── pledge_survey_email.text.erb │ ├── proposal_appointed.html.erb │ ├── proposal_appointed.text.erb │ ├── proposal_appointed_to_team.html.erb │ ├── proposal_appointed_to_team.text.erb │ ├── proposal_created_to_team.html.erb │ ├── proposal_created_to_team.text.erb │ ├── proposal_rejected.html.erb │ ├── proposal_rejected.text.erb │ ├── proposal_rejected_to_team.html.erb │ ├── proposal_rejected_to_team.text.erb │ ├── remind_unresponsive_backers_of_bounty_claim.html.erb │ ├── remind_unresponsive_backers_of_bounty_claim.text.erb │ ├── repository_donation_made.html.erb │ ├── repository_donation_made.text.erb │ ├── request_for_proposal_notification.html.erb │ ├── reset_password.html.erb │ ├── reset_password.text.erb │ ├── team_account_funded.html.erb │ ├── team_account_funded.text.erb │ ├── team_account_funded_admin.html.erb │ ├── team_account_funded_admin.text.erb │ ├── team_account_funded_backer.html.erb │ ├── team_account_funded_backer.text.erb │ ├── team_member_added.html.erb │ ├── team_member_added.text.erb │ ├── team_member_permissions_changed.html.erb │ ├── team_member_permissions_changed.text.erb │ ├── team_member_requested_invite.html.erb │ ├── team_member_requested_invite.text.erb │ ├── team_payin_refunded.md.erb │ ├── team_permissions_changed.html.erb │ ├── team_permissions_changed.text.erb │ ├── team_update_created.md.erb │ ├── unsubscribed.html.erb │ ├── unsubscribed.text.erb │ ├── welcome_back.html.erb │ └── welcome_back.text.erb │ ├── proposals │ └── partials │ │ └── base.rabl │ └── transactions │ └── partials │ └── items │ └── proposal.rabl ├── bin ├── bundle ├── rails └── rake ├── config.ru ├── config ├── application.rb ├── boot.rb ├── database.yml ├── environment.rb ├── environments │ ├── development.rb │ ├── production.rb │ └── test.rb ├── initializers │ ├── active_record_marshaling.rb │ ├── active_record_merge.rb │ ├── assets.rb │ ├── backtrace_silencers.rb │ ├── big_decimal_json_parse_fix.rb │ ├── bitcoin_money.rb │ ├── crontab.rb │ ├── database_connection.rb │ ├── debugger.rb │ ├── delayed_job.rb │ ├── delayed_job_fix.rb │ ├── elasticsearch.rb │ ├── enumerable_find_value.rb │ ├── force_accept_header.rb │ ├── get_method_override.rb │ ├── inflections.rb │ ├── log_level.rb │ ├── mime_types.rb │ ├── new_relic_rpm_instrumentation.rb │ ├── new_relic_unicorn.rb │ ├── nokogiri.rb │ ├── payments.rb │ ├── rabl.rb │ ├── ruby_template_handler.rb │ ├── secure_headers.rb │ ├── session_store.rb │ ├── string_to_bool.rb │ ├── stripe.rb │ ├── timeout.rb │ └── wrap_parameters.rb ├── jshint.yml ├── locales │ └── en.yml ├── puma.rb ├── routes.rb └── unicorn.rb ├── db ├── migrate │ ├── 00000000000001_initial_schema.rb │ ├── 20160611150448_create_team_claims.rb │ ├── 20170220040901_add_quickbooks_columns.rb │ ├── 20171011173023_create_quickbooks_vendors.rb │ ├── 20171025155245_create_quickbooks_transactions.rb │ ├── 20171126185423_create_takedowns.rb │ ├── 20171210181208_drop_gittip_ipns.rb │ ├── 20180302084704_remove_txn_id_non_null_from_payment_notification.rb │ ├── 20180314002424_add_is_fraud_to_cash_outs.rb │ ├── 20180328112330_remove_linked_account_uid_not_null.rb │ ├── 20180403074459_add_password_reset_token_to_person.rb │ ├── 20180404095942_add_email_verification_to_user.rb │ ├── 20180411015847_create_issue_addresses.rb │ ├── 20180424025353_add_category_to_issue.rb │ ├── 20180424182356_create_wallets.rb │ ├── 20180425061501_add_erc20_to_currency.rb │ ├── 20180426033339_add_verified_to_wallets.rb │ ├── 20180501124232_create_crypto_bounties.rb │ ├── 20180501124659_add_balance_to_issue_addresses.rb │ ├── 20180530004731_add_unique_index_to_issue_address_and_bounties.rb │ ├── 20180610184815_create_quickbooks_tokens.rb │ ├── 20180613071303_add_remote_id_to_linked_accounts.rb │ ├── 20180622112508_create_crypto_pay_outs.rb │ ├── 20180622114056_create_crypto_pay_out_txns.rb │ ├── 20180627074014_add_default_to_crypto_bounties.rb │ ├── 20180627074159_create_crypto_pay_out_claim_events.rb │ ├── 20180627093828_change_columns_in_crypto_pay_outs.rb │ ├── 20180627094310_change_columns_in_crypto_pay_out_txns.rb │ ├── 20180628015138_add_foreign_key_for_crypto_tables.rb │ ├── 20180716045309_add_refund_crypto_columns.rb │ ├── 20180717083536_remove_unique_index_for_crypto_pay_out.rb │ ├── 20180717114602_additional_columns_for_crypto_refund.rb │ ├── 20180717121553_create_crypto_admin_addresses.rb │ ├── 20180719030123_add_reason_to_crypto_pay_out.rb │ ├── 20180813231110_create_ad_spaces.rb │ ├── 20180827073853_add_override_fee_percentage_to_account.rb │ ├── 20201220205934_create_pacts.rb │ ├── 20210103191631_add_pact_to_bounties.rb │ ├── 20210105194938_create_pact_applications.rb │ ├── 20210110204412_add_completed_at_to_pacts.rb │ └── 20210113213551_add_pact_to_bounty_claims.rb ├── schema.rb └── seeds.rb ├── docker-compose.yml ├── dump.rdb ├── lib ├── assets │ └── .gitkeep ├── display_money.rb ├── heroku_timeout.rb ├── middleware │ └── force_accept_header.rb └── tasks │ ├── .gitkeep │ ├── auto_annotate_models.rake │ ├── cache.rake │ ├── delayed_job_multi.rake │ ├── reindex_elasticsearch.rake │ ├── replace_avatar.rake │ └── replace_old_avatar.rake ├── log └── .gitkeep ├── public ├── 404.html ├── 422.html ├── 500.html ├── favicon.ico └── robots.txt ├── spec ├── controllers │ ├── admin_controller_spec.rb │ ├── api │ │ ├── base_controller_spec.rb │ │ ├── v0 │ │ │ ├── fundraisers_controller_spec.rb │ │ │ └── transactions_controller_spec.rb │ │ ├── v1 │ │ │ ├── bounties_controller_spec.rb │ │ │ ├── bounty_claim_responses_controller_spec.rb │ │ │ ├── bounty_claims_controller_spec.rb │ │ │ ├── developer_goals_controller_spec.rb │ │ │ ├── follow_relations_controller_spec.rb │ │ │ ├── fundraisers_controller_spec.rb │ │ │ ├── home_controller_spec.rb │ │ │ ├── issues_controller_spec.rb │ │ │ ├── people_controller_spec.rb │ │ │ ├── pledges_controller_spec.rb │ │ │ ├── rewards_controller_spec.rb │ │ │ ├── shopping_cart_controller_spec.rb │ │ │ ├── solutions_controller_spec.rb │ │ │ ├── team_invites_controller_spec.rb │ │ │ ├── teams_controller_spec.rb │ │ │ ├── tracker_plugins_controller_spec.rb │ │ │ └── trackers_controller_spec.rb │ │ └── v2 │ │ │ ├── account_controller_spec.rb │ │ │ ├── backers_controller_spec.rb │ │ │ ├── cart_controller_spec.rb │ │ │ ├── cash_outs_controller_spec.rb │ │ │ ├── fundraiser_rewards_controller_spec.rb │ │ │ ├── fundraiser_updates_controller_spec.rb │ │ │ ├── fundraisers_controller_spec.rb │ │ │ ├── issues_controller_spec.rb │ │ │ ├── people_controller_spec.rb │ │ │ ├── people_trackers_controller_spec.rb │ │ │ ├── pledges_controller_spec.rb │ │ │ ├── plugins_controller_spec.rb │ │ │ ├── teams_controller_spec.rb │ │ │ └── trackers_conrtoller_spec.rb │ ├── application_controller_spec.rb │ ├── badge_controller_spec.rb │ ├── coinbase_controller_spec.rb │ └── payments_controller_spec.rb ├── factories │ ├── accounts.rb │ ├── activity_logs.rb │ ├── ad_spaces.rb │ ├── addresses.rb │ ├── bounties.rb │ ├── bounty_claim_responeses.rb │ ├── bounty_claims.rb │ ├── cash_outs.rb │ ├── coinbase_orders.rb │ ├── coinbases.rb │ ├── comments.rb │ ├── developer_goals.rb │ ├── factories.rb │ ├── follow_relations.rb │ ├── fundraiser_tracker_relations.rb │ ├── fundraisers.rb │ ├── github_commits.rb │ ├── issue.rb │ ├── issue_rank.rb │ ├── issue_rank_caches.rb │ ├── languages.rb │ ├── linked_accounts.rb │ ├── lurkers.rb │ ├── payment_methods.rb │ ├── payment_notifications.rb │ ├── people.rb │ ├── person_relations.rb │ ├── pledges.rb │ ├── proposals.rb │ ├── request_for_proposals.rb │ ├── rewards.rb │ ├── searches.rb │ ├── shopping_carts.rb │ ├── solution_events.rb │ ├── solutions.rb │ ├── support_levels.rb │ ├── tag_relations.rb │ ├── tag_votes.rb │ ├── tags.rb │ ├── team_invites.rb │ ├── team_member_relations.rb │ ├── team_payin.rb │ ├── team_tracker_relations.rb │ ├── team_updates.rb │ ├── teams.rb │ ├── tracker_languages.rb │ ├── tracker_person_relations.rb │ ├── tracker_plugins.rb │ ├── tracker_rank_caches.rb │ ├── tracker_relations.rb │ ├── trackers.rb │ └── transactions.rb ├── features │ └── issues_spec.rb ├── helpers │ └── api │ │ └── v2 │ │ ├── issues_helper_spec.rb │ │ ├── pagniation_helper_spec.rb │ │ └── trackers_helper_spec.rb ├── mailers │ ├── mailer_scheduler_spec.rb │ └── mailer_spec.rb ├── models │ ├── account_spec.rb │ ├── activity_log_spec.rb │ ├── ad_space_spec.rb │ ├── badge_cache_spec.rb │ ├── badge_factory_spec.rb │ ├── badge_spec.rb │ ├── bitbucket │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── bounty_claim_response_spec.rb │ ├── bounty_claim_spec.rb │ ├── bounty_spec.rb │ ├── bugzilla │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── cash_out │ │ ├── mastercoin_spec.rb │ │ └── ripple_spec.rb │ ├── cash_out_spec.rb │ ├── currency_spec.rb │ ├── developer_goal_spec.rb │ ├── follow_relation_spec.rb │ ├── fundraiser_spec.rb │ ├── fundraiser_tracker_relation_spec.rb │ ├── github │ │ ├── event_spec.rb │ │ ├── issue_spec.rb │ │ └── repository_spec.rb │ ├── github_stargazer_spec.rb │ ├── gitlab │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── google_code │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── issue_rank_cache_spec.rb │ ├── issue_spec.rb │ ├── issue_suggestion_reward_spec.rb │ ├── issue_suggestion_spec.rb │ ├── jira │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── launchpad │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── linked_account │ │ └── github_spec.rb │ ├── merged_model_spec.rb │ ├── pact.rb │ ├── payment_helpers_spec.rb │ ├── payment_method_spec.rb │ ├── payment_method_temporary_spec.rb │ ├── payment_notification │ │ ├── coinbase_spec.rb │ │ └── paypal_spec.rb │ ├── person_relation │ │ ├── facebook_spec.rb │ │ ├── github_spec.rb │ │ ├── person_relation_spec.rb │ │ └── twitter_spec.rb │ ├── person_spec.rb │ ├── pivotal │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── pledge_spec.rb │ ├── proposal_spec.rb │ ├── request_for_proposal_spec.rb │ ├── shopping_cart_spec.rb │ ├── solution_event_spec.rb │ ├── solution_spec.rb │ ├── source_forge │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── source_forge_native │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── split_spec.rb │ ├── support_level_spec.rb │ ├── support_offering_reward_spec.rb │ ├── support_offering_spec.rb │ ├── tag_relation_spec.rb │ ├── tag_spec.rb │ ├── tag_vote_spec.rb │ ├── team_bounty_hunter_spec.rb │ ├── team_claim_spec.rb │ ├── team_invite_spec.rb │ ├── team_member_relation_spec.rb │ ├── team_payin_spec.rb │ ├── team_spec.rb │ ├── team_update_spec.rb │ ├── thumb_spec.rb │ ├── trac │ │ ├── issue_spec.rb │ │ └── tracker_spec.rb │ ├── tracker_person_relation_spec.rb │ ├── tracker_plugin │ │ └── gh_spec.rb │ ├── tracker_plugin_spec.rb │ ├── tracker_rank_cache_spec.rb │ ├── tracker_spec.rb │ ├── transaction │ │ ├── internal_transfer │ │ │ └── promotional.rb │ │ ├── order │ │ │ └── paypal_spec.rb │ │ └── order_spec.rb │ ├── transaction_spec.rb │ └── unsubscribe_spec.rb ├── queries │ └── people_query_spec.rb ├── rails_helper.rb ├── requests │ └── .gitkeep ├── routing │ ├── badges_route_spec.rb │ ├── coinbase_routes_spec.rb │ ├── paypal_routes_spec.rb │ └── teams_routes_spec.rb ├── services │ └── charge_user_inactivity_fee_spec.rb ├── spec_helper.rb ├── support │ ├── api_v2_controller_context.rb │ ├── capybara.rb │ ├── database_cleaner.rb │ ├── default_vendor_params.rb │ ├── features │ │ └── session_helpers.rb │ ├── mock_github_api.rb │ ├── payment_helpers.rb │ ├── request_for_proposals │ │ └── shared_examples_for_request_for_proposals.rb │ ├── request_tracking.rb │ ├── response_status_helper.rb │ ├── shared_examples_for_currency_conversion.rb │ └── vcr.rb ├── trackers │ └── all_spec.rb └── vcr │ └── live_sync │ ├── issue_remote_sync_bitbucket │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_bugzilla │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_gitlab │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_jira │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_launchpad │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_mantis_print_bug │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_mantis_rest │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_mantis_soap │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_pivotal │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── issue_remote_sync_trac │ ├── issue_should_create_new_issue.yml │ └── issue_should_fetch_issue_comment.yml │ ├── tracker │ ├── api_extract_info_from_url_http_ │ │ ├── bugs_jquery_com │ │ │ ├── .yml │ │ │ └── ticket │ │ │ │ └── 10495.yml │ │ ├── dev_clojure_org │ │ │ └── jira │ │ │ │ └── browse │ │ │ │ ├── cljs.yml │ │ │ │ └── cljs_868.yml │ │ ├── trac_macports_org │ │ │ └── .yml │ │ └── twistedmatrix_com │ │ │ └── trac │ │ │ ├── .yml │ │ │ └── ticket │ │ │ └── 1228.yml │ └── api_extract_info_from_url_https_ │ │ ├── bugs_webkit_org │ │ └── show_bug_cgi_id_65711.yml │ │ ├── bugzilla_gnome_org │ │ ├── buglist_cgi_quicksearch_component_3_ageneral_product_3_a_22gnome_terminal_22_.yml │ │ └── show_bug_cgi_id_380612.yml │ │ ├── bugzilla_redhat_com │ │ ├── buglist_cgi_product_fedora_component_fedora_packager_resolution____.yml │ │ └── show_bug_cgi_id_707252.yml │ │ ├── bukkit_atlassian_net │ │ ├── browse │ │ │ └── bukkit_3846.yml │ │ └── projects │ │ │ └── bukkit │ │ │ ├── issues │ │ │ └── bukkit_5574.yml │ │ │ └── summary.yml │ │ ├── issues_apache_org │ │ └── jira │ │ │ └── browse │ │ │ ├── agila.yml │ │ │ └── agila_44.yml │ │ ├── trac_adium_im.yml │ │ ├── trac_adium_im │ │ ├── .yml │ │ └── ticket │ │ │ └── 6.yml │ │ ├── trac_torproject_org │ │ └── projects │ │ │ ├── tor.yml │ │ │ └── tor │ │ │ └── .yml │ │ ├── trac_videolan_org │ │ └── vlc │ │ │ ├── .yml │ │ │ └── ticket │ │ │ └── 4352.yml │ │ ├── www_mantisbt_org │ │ └── bugs │ │ │ ├── my_view_page_php.yml │ │ │ └── view_php_id_24096.yml │ │ └── www_pivotaltracker_com │ │ ├── n │ │ └── projects │ │ │ └── 367813 │ │ │ └── stories │ │ │ └── 45939421.yml │ │ ├── projects │ │ ├── 367813 │ │ │ └── stories.yml │ │ └── 367813_ │ │ │ └── stories │ │ │ └── 45939421.yml │ │ └── story │ │ └── show │ │ └── 45939421.yml │ ├── tracker_remote_sync_bitbucket │ ├── tracker_should_create_new_tracker.yml │ └── tracker_should_create_tracker_issues.yml │ ├── tracker_remote_sync_bugzilla │ ├── tracker_should_create_new_tracker.yml │ └── tracker_should_create_tracker_issues.yml │ ├── tracker_remote_sync_gitlab │ ├── tracker_with_gitlab_com_gitlab_org_gitlab_ce_should_create_new_tracker.yml │ └── tracker_with_gitlab_com_goto_ru_ds_school_2018_01_should_create_new_tracker.yml │ ├── tracker_remote_sync_jira │ ├── tracker_should_create_new_tracker.yml │ └── tracker_should_create_tracker_issues.yml │ ├── tracker_remote_sync_launchpad │ ├── tracker_should_create_new_tracker.yml │ └── tracker_should_create_tracker_issues.yml │ ├── tracker_remote_sync_mantis │ ├── tracker_should_create_new_tracker.yml │ └── tracker_should_create_tracker_issues.yml │ ├── tracker_remote_sync_pivotal │ ├── tracker_should_create_new_tracker.yml │ └── tracker_should_create_tracker_issues.yml │ └── tracker_remote_sync_trac │ ├── tracker_should_create_new_tracker.yml │ └── tracker_should_create_tracker_issues.yml ├── tasks.yml └── test ├── controllers └── pacts_controller_test.rb ├── fixtures ├── pact_applications.yml └── pacts.yml └── models ├── pact_application_test.rb └── pact_test.rb /.dockerignore: -------------------------------------------------------------------------------- 1 | .git* 2 | .idea* 3 | db/*.sqlite3 4 | db/*.sqlite3-journal 5 | log/* 6 | tmp/* 7 | .DS_Store 8 | 9 | Dockerfile 10 | .dockerignore 11 | docker-compose.yml 12 | docker-compose-test.yml 13 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --color 2 | --profile 3 | --require rails_helper 4 | --format documentation 5 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.7.1 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | By contributing your code, you agree to license your contribution under the MIT License. 4 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | release: rake db:migrate 2 | web: puma -C /app/config/puma.rb 3 | worker: NEW_RELIC_DISPATCHER=delayed_job bundle exec rake jobs:work 4 | firehose: rails runner 'Github::Event.firehose!' 5 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env rake 2 | require File.expand_path('../config/application', __FILE__) 3 | Api::Application.load_tasks -------------------------------------------------------------------------------- /app/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /app/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /app/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /app/assets/images/Bountysource-190x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/Bountysource-190x60.png -------------------------------------------------------------------------------- /app/assets/images/Bountysource-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/Bountysource-green.png -------------------------------------------------------------------------------- /app/assets/images/Bountysource-square-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/Bountysource-square-100.png -------------------------------------------------------------------------------- /app/assets/images/Bountysource-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/Bountysource-white.png -------------------------------------------------------------------------------- /app/assets/images/GitHub-Mark-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/GitHub-Mark-32px.png -------------------------------------------------------------------------------- /app/assets/images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/ajax-loader.gif -------------------------------------------------------------------------------- /app/assets/images/anon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/anon.jpg -------------------------------------------------------------------------------- /app/assets/images/bird_blue_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/bird_blue_32.png -------------------------------------------------------------------------------- /app/assets/images/bountysource-grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/bountysource-grey.png -------------------------------------------------------------------------------- /app/assets/images/bs-anon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/bs-anon.png -------------------------------------------------------------------------------- /app/assets/images/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/checkbox.png -------------------------------------------------------------------------------- /app/assets/images/checkbox_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/checkbox_checked.png -------------------------------------------------------------------------------- /app/assets/images/extension1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/extension1.png -------------------------------------------------------------------------------- /app/assets/images/facebook_share_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/facebook_share_32.png -------------------------------------------------------------------------------- /app/assets/images/favicon-bitbucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-bitbucket.png -------------------------------------------------------------------------------- /app/assets/images/favicon-bugzilla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-bugzilla.png -------------------------------------------------------------------------------- /app/assets/images/favicon-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-email.png -------------------------------------------------------------------------------- /app/assets/images/favicon-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-facebook.png -------------------------------------------------------------------------------- /app/assets/images/favicon-github-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-github-white.png -------------------------------------------------------------------------------- /app/assets/images/favicon-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-github.png -------------------------------------------------------------------------------- /app/assets/images/favicon-jira.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-jira.png -------------------------------------------------------------------------------- /app/assets/images/favicon-launchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-launchpad.png -------------------------------------------------------------------------------- /app/assets/images/favicon-pivotal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-pivotal.png -------------------------------------------------------------------------------- /app/assets/images/favicon-sourceforge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-sourceforge.png -------------------------------------------------------------------------------- /app/assets/images/favicon-trac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-trac.png -------------------------------------------------------------------------------- /app/assets/images/favicon-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/favicon-twitter.png -------------------------------------------------------------------------------- /app/assets/images/github-plugin-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/github-plugin-example.png -------------------------------------------------------------------------------- /app/assets/images/github-plugin-example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/github-plugin-example2.png -------------------------------------------------------------------------------- /app/assets/images/github-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/github-plugin.png -------------------------------------------------------------------------------- /app/assets/images/github-white-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/github-white-20.png -------------------------------------------------------------------------------- /app/assets/images/github-white-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/github-white-24.png -------------------------------------------------------------------------------- /app/assets/images/github-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/github-white.png -------------------------------------------------------------------------------- /app/assets/images/google-wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/google-wallet.png -------------------------------------------------------------------------------- /app/assets/images/gplus-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/gplus-32.png -------------------------------------------------------------------------------- /app/assets/images/logos.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/logos.ai -------------------------------------------------------------------------------- /app/assets/images/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/paypal.png -------------------------------------------------------------------------------- /app/assets/images/thumbsup-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/thumbsup-20.png -------------------------------------------------------------------------------- /app/assets/images/thumbsup-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/thumbsup-32.png -------------------------------------------------------------------------------- /app/assets/images/thumbsup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/images/thumbsup.png -------------------------------------------------------------------------------- /app/assets/javascripts/admin.js.erb: -------------------------------------------------------------------------------- 1 | //= require_self 2 | //= require angular-rails-templates 3 | //= require "./admin/app.js" 4 | //= require_tree "./admin" 5 | //= require "./lib/cookie_jar.js" 6 | //= require "./lib/cookie_jar_config.js" 7 | 'use strict'; 8 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/bounty_claims/partials/nav_tabs.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/cash_outs/pending.html: -------------------------------------------------------------------------------- 1 |
2 |

Pending Cash Outs

3 | 4 |
-------------------------------------------------------------------------------- /app/assets/javascripts/admin/crypto_pay_outs/pending.html: -------------------------------------------------------------------------------- 1 |
2 |

Pending Crypto Payouts

3 | 4 |
-------------------------------------------------------------------------------- /app/assets/javascripts/admin/crypto_pay_outs/processing.html: -------------------------------------------------------------------------------- 1 |
2 |

Processing Crypto Payouts

3 | 4 |
-------------------------------------------------------------------------------- /app/assets/javascripts/admin/crypto_pay_outs/sent.html: -------------------------------------------------------------------------------- 1 |
2 |

Sent Crypto Payouts

3 | 4 |
-------------------------------------------------------------------------------- /app/assets/javascripts/admin/events/index.html: -------------------------------------------------------------------------------- 1 |

Events

2 |
3 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/home/home.js: -------------------------------------------------------------------------------- 1 | angular.module('app') 2 | .config(function ($routeProvider) { 3 | $routeProvider 4 | .when('/admin', { 5 | redirectTo: "/admin/kpi" 6 | }); 7 | }); 8 | 9 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/layout/not_found.html: -------------------------------------------------------------------------------- 1 |

The content that you are looking for does not exist.

2 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/orders/show.html: -------------------------------------------------------------------------------- 1 | Redirecting to transaction... 2 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/people/show_events.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |

Events

5 |
6 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/people/show_salt.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |

Salt

5 | Coming soon 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/people/show_team_payins.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |

Team Payins

5 |
6 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/sidebar/sidebar.js: -------------------------------------------------------------------------------- 1 | angular.module('app') 2 | .controller('SidebarController', function ($scope, $location, $api, $window) { 3 | //add sidebar feature to show active page 4 | // $scope.current_location = $location.href(); 5 | }); 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/tags/show.html: -------------------------------------------------------------------------------- 1 |

TAG #{{tag.id}}: {{tag.name}}

2 | {{tag}} 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/team_payins/show.html: -------------------------------------------------------------------------------- 1 |

Team Payin #{{team_payin.id}}

2 |
3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/admin/transactions/partials/transaction_form.js: -------------------------------------------------------------------------------- 1 | angular.module('app') 2 | .controller("TransactionForm", function ($scope, $window, $api) { 3 | $scope.form_controller = "FORM CONTROLLER HERE"; 4 | }); 5 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/activity/cashOuts/new/paymentMethod.js: -------------------------------------------------------------------------------- 1 | angular.module('activity').controller('NewCashOutPaymentMethodController', function($scope) { 2 | 3 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/app/activity/pacts.js: -------------------------------------------------------------------------------- 1 | angular.module('activity').controller('PactsController', function($scope, $routeParams, $api, $pageTitle) { 2 | $pageTitle.set('Pacts', 'Activity'); 3 | 4 | $api.call("/user/pacts").then(function(pacts) { 5 | $scope.pacts = pacts; 6 | console.log(pacts) 7 | return pacts; 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/activity/templates/navTabs.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/activity/timeline.js: -------------------------------------------------------------------------------- 1 | angular.module('activity').controller('TimelineController', function($scope, $routeParams, $api, $pageTitle) { 2 | $pageTitle.set('Timeline', 'Activity'); 3 | 4 | $api.person_activity($scope.current_person.id).then(function(timeline) { 5 | $scope.timeline = timeline; 6 | return timeline; 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/env.js: -------------------------------------------------------------------------------- 1 | angular.module('app').constant('$env', window.BS_ENV).run(function($rootScope, $env) { 2 | $rootScope.env = $env; 3 | }); 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/issues/templates/breadcrumb.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/issues/thumbs.js: -------------------------------------------------------------------------------- 1 | angular.module("app").controller('IssueThumbsController', function ($scope, Issue) { 2 | $scope.issues = Issue.query({ thumbed_by_person_id: $scope.current_person.id, order: 'thumbed_at', include_team: true, include_tracker: true }); 3 | }); 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/layout/templates/footerLegal.html: -------------------------------------------------------------------------------- 1 |
2 |
Legal
3 | 8 |
9 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/pacts/create/templates/anon-img.html.haml: -------------------------------------------------------------------------------- 1 | %img.img-circle{:src => "#{asset_path("bs-anon.png")}", :style => "height: 18px; width: 18px; display: inline;"}/ 2 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/pacts/create/templates/current-person-img.html.haml: -------------------------------------------------------------------------------- 1 | %img.img-circle{"ng-src" => "{{current_person.image_url_small || current_person.image_url}}", :style => "height: 18px; width: 18px; display: inline;"}/ 2 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/people/templates/header.html: -------------------------------------------------------------------------------- 1 |

2 | {{person.display_name}} 3 | {{person.first_name}} {{person.last_name}} 4 |

5 | 6 |
7 |

{{person.bio}}

8 |
-------------------------------------------------------------------------------- /app/assets/javascripts/app/settings/tabs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/settings/tabs.js: -------------------------------------------------------------------------------- 1 | angular.module('app').controller('SettingsTabs', function($scope, $location) { 2 | $scope.tabs = [ 3 | { name: 'Profile', url: '/settings' }, 4 | { name: 'Accounts', url: '/settings/accounts' } 5 | ]; 6 | $scope.is_active = function(url) { 7 | return url === $location.path(); 8 | }; 9 | }); 10 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/signin/callback.html: -------------------------------------------------------------------------------- 1 |
{{ error || "Redirecting..." }}
-------------------------------------------------------------------------------- /app/assets/javascripts/app/signin/verify.html: -------------------------------------------------------------------------------- 1 | Verifying... 2 |
{{error}}
3 |
Verification Done. Please Login.
4 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/signin/verify_email.html: -------------------------------------------------------------------------------- 1 | Changing Email... 2 |
3 |

{{error}}

4 |
5 |
Email Changed. Login with your new email.
6 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/teams/_share_badge.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Share 4 | 5 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/teams/backers.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/teams/tagged.html.haml: -------------------------------------------------------------------------------- 1 | %div{"ng-controller"=>"TeamTaggedController" } 2 | %div{ "team-view"=>"team-view" } 3 | %div{"ng-include" => "'app/teams/_team_table.html'"} 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/teams/tagged.js: -------------------------------------------------------------------------------- 1 | angular.module('app').controller('TeamTaggedController', function ($scope, $location, $routeParams, $anchorScroll, $api, $pageTitle, Team) { 2 | $scope.team_promise.then(function(team) { 3 | $scope.teams = Team.query({ tag_child_type: 'Team', tag_child_id: team.id, per_page: 250, include_bio: true }); 4 | }); 5 | }); 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/tools/templates/info.html.erb: -------------------------------------------------------------------------------- 1 |
2 | 3 |
-------------------------------------------------------------------------------- /app/assets/javascripts/app/trackers/nav_tabs.js: -------------------------------------------------------------------------------- 1 | angular.module('app').controller('TrackerNavTabsController', function ($scope, $routeParams, $api) { 2 | $scope.active_tab = function() { 3 | console.log($routeParams, $api); 4 | }; 5 | }); 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/app/trackers/templates/nav_tabs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/constants/defaultRouteOptions.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Default options to extend when defining routes. 3 | * We seem to use `reloadOnSearch: false` everywhere, so I am defining this constant to inherit options from so that it 4 | * defaults to false. 5 | * */ 6 | angular.module('constants').constant('defaultRouteOptions', { 7 | reloadOnSearch: false 8 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/activityTimeline/activityTimeline.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('activityTimeline', function () { 2 | return { 3 | restrict: 'E', 4 | templateUrl: 'common/directives/activityTimeline/activityTimeline.html', 5 | scope: { 6 | timeline: "=" 7 | } 8 | }; 9 | }); 10 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/addressSelect/addressSelect.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/addressSelect/addressSelect.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('addressSelect', function() { 2 | 3 | return { 4 | restrict: 'EAC', 5 | templateUrl: 'common/directives/addressSelect/addressSelect.html', 6 | replace: true, 7 | scope: { addressManagerInstance: '=' } 8 | }; 9 | 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/backerThumbnails/backerThumbnails.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('backerThumbnails', function() { 2 | return { 3 | restrict: "E", 4 | scope: { 5 | issue: "=" 6 | }, 7 | templateUrl: "common/directives/backerThumbnails/backerThumbnails.html", 8 | replace: true 9 | }; 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/claimContent/claimContent.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('claimContent', function() { 2 | return { 3 | restrict: "E", 4 | scope: { 5 | claim: "=", 6 | issue: "=" 7 | }, 8 | templateUrl: "common/directives/claimContent/claimContent.html", 9 | replace: true 10 | }; 11 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/favicon/favicon.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/favicon/favicon.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('favicon', function() { 2 | return { 3 | restrict: "E", 4 | replace: true, 5 | templateUrl: 'common/directives/favicon/favicon.html', 6 | scope: { 7 | domain: "@" 8 | } 9 | }; 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/formattedAddress/formattedAddress.html: -------------------------------------------------------------------------------- 1 |
2 |
{{address.name}}
3 |
{{address.address1}}
4 |
{{address.address2}}
5 |
{{address.address3}}
6 |
{{address.city}}, {{address.state}} {{address.postal_code}}
7 |
{{address.country}}
8 |
-------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/formattedAddress/formattedAddress.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('formattedAddress', function() { 2 | return { 3 | restrict: 'EAC', 4 | templateUrl: 'common/directives/formattedAddress/formattedAddress.html', 5 | scope: { address: '=' } 6 | }; 7 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/fundraiserSideBar/fundraiserSideBar.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/fundraiserTweetButton/fundraiserTweetButton.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/infoSpace/infoSpace.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('infoSpace', function() { 2 | return { 3 | restrict: 'E', 4 | replace: true, 5 | transclude: true, 6 | templateUrl: 'common/directives/infoSpace/infoSpace.html', 7 | scope: { 8 | infoSpace: "=" 9 | } 10 | }; 11 | }); 12 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/issueStatusLabel/issueStatusLabel.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('issueStatusLabel', function() { 2 | return { 3 | restrict: "E", 4 | scope: { 5 | issue: "=", 6 | size: '@' 7 | }, 8 | templateUrl: "common/directives/issueStatusLabel/issueStatusLabel.html" 9 | }; 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/loadingBar/loadingBar.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 | 5 |
6 |
-------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/loadingBar/loadingBar.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('loadingBar', function() { 2 | return { 3 | restrict: "E", 4 | replace: true, 5 | transclude: true, 6 | templateUrl: 'common/directives/loadingBar/loadingBar.html' 7 | }; 8 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/nameForExternalLink/nameForExternalLink.html.haml: -------------------------------------------------------------------------------- 1 | %span {{text}} -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/navElement/navElement.html: -------------------------------------------------------------------------------- 1 |
  • 2 | {{navElement.name}} 3 | {{navElement.name}} 4 |
  • -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/navElement/navElement.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('navElement', function() { 2 | 3 | return { 4 | restrict: 'EAC', 5 | templateUrl: 'common/directives/navElement/navElement.html', 6 | scope: { navElement: '=' }, 7 | replace: true 8 | }; 9 | 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/ngFocus/ngFocus.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('ngFocus', function($parse) { 2 | return function(scope, element, attr) { 3 | var fn = $parse(attr.ngFocus); 4 | element.bind('focus', function(event) { 5 | scope.$apply(function() { 6 | fn(scope, {$event:event}); 7 | }); 8 | }); 9 | }; 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/onFinishRender/onFinishRender.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('onFinishRender', function() { 2 | return { 3 | restrict: "A", 4 | link: function (scope, element, attr) { 5 | if (scope.$last === true) { 6 | scope.$evalAsync(attr.onFinishRender); 7 | } 8 | } 9 | }; 10 | }); 11 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/personIcon/personIcon.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('personIcon', function() { 2 | return { 3 | restrict: "E", 4 | scope: { 5 | person: "=", 6 | size: "@", 7 | format: "@" 8 | }, 9 | templateUrl: "common/directives/personIcon/personIcon.html", 10 | replace: true 11 | }; 12 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/profileName/profileName.html.haml: -------------------------------------------------------------------------------- 1 | %span< 2 | %span{ "ng-if"=>"!href"}< 3 | {{owner_display_name}} 4 | %a.text-dark.font-weight-semibold{ "ng-if"=>"href", "ng-href"=>"{{href}}"}< 5 | {{owner_display_name}} 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/profilePic/profilePic.html.haml: -------------------------------------------------------------------------------- 1 | %span< 2 | %img{ "ng-if"=>"!href", "ng-src"=>"{{img_src}}", "class"=>"img-responsive img-circle" } 3 | %a{ "ng-if"=>"href", "ng-href"=>"{{href}}" }< 4 | %img{ "ng-src"=>"{{img_src}}", "class"=>"img-responsive img-circle" } 5 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/requireGplus/requireGplus.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('requireGplus', function($gplus) { 2 | return { 3 | restrict: "A", 4 | scope: "isolate", 5 | link: function() { $gplus.plusone.go(); } // $gplus.widgets.load(); 6 | }; 7 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/requireTwitter/requireTwitter.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('requireTwitter', function($twttr) { 2 | return { 3 | restrict: "A", 4 | scope: "isolate", 5 | link: function() { $twttr.widgets.load(); } 6 | }; 7 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/selectOnClick/selectOnClick.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('selectOnClick', function () { 2 | return { 3 | restrict: "A", 4 | link: function (scope, element) { 5 | element.bind('click', function() { 6 | element[0].select(); 7 | }); 8 | } 9 | }; 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/shareBadge/shareBadge.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/signalIcon/signalIcon.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('signalIcon', function() { 2 | return { 3 | restrict: "E", 4 | templateUrl: "common/directives/signalIcon/signalIcon.html", 5 | replace: true, 6 | transclude: true, 7 | scope: { 8 | percent: "=" 9 | } 10 | }; 11 | }); 12 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/takedown/takedown.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('takedown', function ($window) { 2 | return { 3 | restrict: 'E', 4 | templateUrl: 'common/directives/takedown/takedown.html', 5 | replace: true 6 | }; 7 | }); 8 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/teamView/tag_autocomplete.html.haml: -------------------------------------------------------------------------------- 1 | %a 2 | %img{ "ng-src"=>"{{match.model.image_url}}", "style"=>"width: 16px; height:16px", "ng-if"=>"match.model.type==='Team'" } 3 | %span.glyphicon.glyphicon-tag{ "ng-if"=>"match.model.type==='Tag'" } 4 | %span{ "bind-html-unsafe"=>"match.label | encodeEntities | typeaheadHighlight:query" } 5 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/timeDifference/timeDifference.html: -------------------------------------------------------------------------------- 1 |
    2 | {{units | number}} 3 | 4 | 5 |
    -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/timeline/timelineSmall.js: -------------------------------------------------------------------------------- 1 | angular.module('directives').directive('timelineSmall', function ($window) { 2 | return { 3 | restrict: 'E', 4 | templateUrl: 'common/directives/timeline/timelineSmall.html', 5 | scope: { 6 | events: '=', 7 | }, 8 | replace: true 9 | }; 10 | }); 11 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/directives/updateList/updateList.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/atLeast.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('atLeast', function() { 2 | return function (input, other) { 3 | return (input > other) ? input : other; 4 | }; 5 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/atMost.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('atMost', function() { 2 | return function (input, other) { 3 | return (input < other) ? input : other; 4 | }; 5 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/cleanUrl.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('cleanUrl', function() { 2 | return function(s) { 3 | var new_url = (s||"").replace(/https?:\/\//, ''); 4 | new_url = new_url.replace(/\/$/, ''); 5 | return new_url; 6 | }; 7 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/emptyFilter.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('emptyFilter', function() { 2 | return function(array) { 3 | var returnArray = []; 4 | angular.forEach(array, function (item) { 5 | if (item.description !== null) { 6 | returnArray.push(item); 7 | } 8 | }); 9 | return returnArray; 10 | }; 11 | }); 12 | -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/hex.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('hex', function() { 2 | return function(input) { 3 | if (input) { 4 | return input.replace(/[^0-9a-f]/i, ""); 5 | } 6 | }; 7 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/percent.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('percent', function () { 2 | return function (input) { 3 | return Math.round(100 * input) + '%'; 4 | }; 5 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/pluck.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('pluck', function() { 2 | return function(input, field) { 3 | // console.log(arguments); 4 | var retval = []; 5 | for (var i=0; i < input.length; i++) { 6 | retval.push(input[i][field]); 7 | } 8 | return retval; 9 | }; 10 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/round.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('round', function() { 2 | return function (input) { 3 | return Math.round(input); 4 | }; 5 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/slice.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('slice', function() { 2 | return function(a,start,end) { 3 | if (!a) { return []; } 4 | return a.slice(start,end); 5 | }; 6 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/slug.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('slug', function() { 2 | return function(val) { 3 | return (val||"").toLowerCase().replace(/[ ]+/g,'-').replace(/[,.]/g,'').replace(/[^a-z0-9-_]/g,''); 4 | }; 5 | }); -------------------------------------------------------------------------------- /app/assets/javascripts/common/filters/title.js: -------------------------------------------------------------------------------- 1 | angular.module('filters').filter('title', function() { 2 | // Capitalize all words 3 | return function(s) { 4 | var parts = s.split(" "); 5 | var new_parts = []; 6 | for (var i=0; i "{ 'bountysource-thumbs-box-mini': thumbsUpSize==='small', 'bountysource-thumbs-box': thumbsUpSize==='large', 'has-thumbed-up': issue.has_thumbed_up, 'thumbs-at-zero': issue.thumbs_up_count===0 }"} 2 | .thumb-wrapper.mr-2{ "ng-click"=>"thumbClicked()" }> 3 | .info-wrapper {{issue.thumbs_up_count}} 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/env.js: -------------------------------------------------------------------------------- 1 | angular.module('app').constant('$env', window.BS_ENV); 2 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/layout/error.html: -------------------------------------------------------------------------------- 1 |

    {{code}}

    2 |

    {{message}}

    3 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/layout/navbar.js: -------------------------------------------------------------------------------- 1 | angular.module('app').controller("NavbarController", function ($scope, $auth) { 2 | $scope.logout = $auth.logout; 3 | }); 4 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/session/_buttons.js: -------------------------------------------------------------------------------- 1 | angular.module('app').controller('SessionButtons', function($scope, $state, $api, $window) { 2 | $scope.link_with_provider = function(provider) { 3 | $window.location.href = $api.oauth_url(provider, { 4 | redirect_url: $state.href('root.session.signup', {}, { absolute: true, inherit: false }) 5 | }); 6 | }; 7 | }); 8 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/settings/base.js: -------------------------------------------------------------------------------- 1 | angular.module('app').config(function($stateProvider) { 2 | $stateProvider.state('root.settings', { 3 | abstract: true, 4 | title: "Settings", 5 | templateUrl: "salt/settings/base.html" 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/support_levels/base.js: -------------------------------------------------------------------------------- 1 | angular.module('app').config(function($stateProvider) { 2 | $stateProvider.state('root.support_levels', { 3 | abstract: true, 4 | template: '' 5 | }); 6 | }); 7 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/teams/_support_header.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 | 5 |
    -------------------------------------------------------------------------------- /app/assets/javascripts/salt/teams/_support_header_title.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/teams/admin/updates/base.js: -------------------------------------------------------------------------------- 1 | angular.module('app').config(function($stateProvider) { 2 | $stateProvider.state('root.teams.admin.updates', { 3 | abstract: true, 4 | template: "" 5 | }); 6 | }); 7 | -------------------------------------------------------------------------------- /app/assets/javascripts/salt/teams/not_activated.html.erb: -------------------------------------------------------------------------------- 1 |
    2 | 3 |

    This team is not enabled for Salt (monthly donations). Do you want to visit the team page on the regular site instead?

    4 | 5 | {{ team_www_url }} 6 |
    -------------------------------------------------------------------------------- /app/assets/javascripts/salt/teams/show.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 |
    -------------------------------------------------------------------------------- /app/assets/javascripts/salt/title.js: -------------------------------------------------------------------------------- 1 | angular.module('app').run(function($rootScope) { 2 | // set page title 3 | $rootScope.$on('$stateChangeSuccess', function(event, toState) { 4 | $rootScope.title = toState.title; 5 | }); 6 | }); 7 | -------------------------------------------------------------------------------- /app/assets/stylesheets/admin.css.erb: -------------------------------------------------------------------------------- 1 | /* 2 | *= require_tree "./admin" 3 | */ 4 | -------------------------------------------------------------------------------- /app/assets/stylesheets/admin/bounty_claims.css: -------------------------------------------------------------------------------- 1 | .bounty-claim-events-table .bounty-claim-events-row { 2 | margin-bottom: 5px; 3 | } 4 | .bounty-claim-events-table .bounty-claim-events-row:last-of-type { 5 | margin-bottom: 0; 6 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/admin/companies.css: -------------------------------------------------------------------------------- 1 | .company-tracker-thumbnails li { position: relative; } 2 | .company-tracker-thumbnails li .close { position: absolute; right: 2px; top: -5px; display: none; opacity: 0.4; } 3 | .company-tracker-thumbnails li:hover .close { display: block; } 4 | .company-tracker-thumbnails li:hover .close:hover { opacity: 0.9; } 5 | -------------------------------------------------------------------------------- /app/assets/stylesheets/admin/kpi.css: -------------------------------------------------------------------------------- 1 | .big_up { background: #6EFF69; } 2 | .small_up { background: #D8FFD9; } 3 | .big_down { background: #FFA19B; } 4 | .small_down { background: #FFD3DD; } -------------------------------------------------------------------------------- /app/assets/stylesheets/admin/search.css: -------------------------------------------------------------------------------- 1 | .search-bullets > li { line-height: 45px; } 2 | .search-bullets > li > ul > li { line-height: 25px; } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource.css.erb: -------------------------------------------------------------------------------- 1 | /* 2 | *= require_tree "./bountysource" 3 | */ 4 | -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/alerts.css: -------------------------------------------------------------------------------- 1 | .alert-salmon { 2 | background-color: #ff6666; 3 | border-color: #ff6666; 4 | color: #a94442; 5 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/bounty_claims.css: -------------------------------------------------------------------------------- 1 | .bounty-claim-events-table .bounty-claim-events-row { 2 | margin-bottom: 5px; 3 | } 4 | .bounty-claim-events-table .bounty-claim-events-row:last-of-type { 5 | margin-bottom: 0; 6 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/cards.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | margin-bottom: 20px; 3 | background-color: #fff; 4 | /* border: 1px solid transparent; */ 5 | -webkit-box-shadow: 0 0 4px 0 rgba(31, 35, 35, 0.08); 6 | box-shadow: 0 0 4px 0 rgba(31, 35, 35, 0.08); 7 | } 8 | 9 | .card-body { 10 | padding: 30px; 11 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/companies.css: -------------------------------------------------------------------------------- 1 | .company-tracker-thumbnails li { position: relative; } 2 | .company-tracker-thumbnails li .close { position: absolute; right: 2px; top: -5px; display: none; opacity: 0.4; } 3 | .company-tracker-thumbnails li:hover .close { display: block; } 4 | .company-tracker-thumbnails li:hover .close:hover { opacity: 0.9; } 5 | -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/modal.css: -------------------------------------------------------------------------------- 1 | .modal-content { 2 | border-radius: 0px; 3 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/pills.css: -------------------------------------------------------------------------------- 1 | .nav-pills >li.active>a, 2 | .nav-pills>li.active>a:hover, 3 | .nav-pills>li.active>a:focus { 4 | background-color: #33CCFF; 5 | color: white; 6 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/settings.css: -------------------------------------------------------------------------------- 1 | .settings-accounts .link-with-text 2 | { 3 | padding-top: 5px; 4 | } 5 | 6 | .settings-accounts .link-with-avatar 7 | { 8 | padding-top: 4px; 9 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/signin.scss: -------------------------------------------------------------------------------- 1 | .hide-tooltip .tooltip { display: none !important; } 2 | 3 | .form-signin { 4 | max-width: 500px; 5 | margin-top: 80px; 6 | margin-bottom: 80px; 7 | .providers { 8 | margin-top: 50px; 9 | } 10 | 11 | label.control-label { 12 | font-weight: 500; 13 | } 14 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/tools.css: -------------------------------------------------------------------------------- 1 | table.table-projects { margin-bottom: 0; } 2 | table.table-projects tr:first-of-type td { border-top: 0; } 3 | .notification-box { 4 | padding: 30px 20px 60px; 5 | margin-top: 6px; 6 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/bountysource/trackers.css: -------------------------------------------------------------------------------- 1 | table#tracker-edit-language-table tr:first-of-type > td { 2 | border-top: 0; 3 | } 4 | 5 | 6 | .tracker-search img.advanced-img { 7 | height: 50px; 8 | } -------------------------------------------------------------------------------- /app/assets/stylesheets/salt/app/angular-ui.scss: -------------------------------------------------------------------------------- 1 | 2 | .nav a { cursor: pointer; } 3 | -------------------------------------------------------------------------------- /app/assets/stylesheets/salt/app/checkout.scss: -------------------------------------------------------------------------------- 1 | .continue-button { 2 | margin-top: 45px; 3 | width: 350px; 4 | padding-top: 15px; 5 | padding-bottom: 15px; 6 | border-radius: 999px; 7 | font-weight: 600; 8 | } 9 | 10 | .support-amount-form { 11 | label.control-label { 12 | font-weight: 400; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/assets/stylesheets/salt/app/timeline.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/assets/stylesheets/salt/app/timeline.scss -------------------------------------------------------------------------------- /app/assets/stylesheets/salt/base.scss: -------------------------------------------------------------------------------- 1 | @import "app/*"; -------------------------------------------------------------------------------- /app/assets/stylesheets/salt/bootstrap-custom-utilities.scss: -------------------------------------------------------------------------------- 1 | .btn-light-blue { 2 | @include button-variant(#fff, $bright-light-blue, $bright-light-blue); 3 | } 4 | 5 | .progress-bar-gunmetal { 6 | @include progress-bar-variant($gunmetal); 7 | } -------------------------------------------------------------------------------- /app/controllers/admin_controller.rb: -------------------------------------------------------------------------------- 1 | class AdminController < ApplicationController 2 | def home 3 | render "layouts/admin.html.erb", layout: false 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/controllers/api/v0/activity_logs_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::ActivityLogsController < Api::V0::BaseController 2 | 3 | def index 4 | @activity_logs = ActivityLog.order('created_at desc') 5 | end 6 | 7 | end 8 | -------------------------------------------------------------------------------- /app/controllers/api/v0/bounty_claims/force_collects_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::BountyClaims::ForceCollectsController < Api::V0::BaseController 2 | 3 | def create 4 | @bounty_claim = BountyClaim.find(params[:bounty_claim_id]) 5 | 6 | @bounty_claim.collect! 7 | 8 | head :ok 9 | end 10 | end -------------------------------------------------------------------------------- /app/controllers/api/v0/developer_goals_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::DeveloperGoalsController < Api::V0::BaseController 2 | 3 | def index 4 | @developer_goals = DeveloperGoal.includes(:issue, :person).all 5 | end 6 | 7 | end 8 | -------------------------------------------------------------------------------- /app/controllers/api/v0/follow_relations_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::FollowRelationsController < Api::V0::BaseController 2 | 3 | def index 4 | @follow_relations = FollowRelation.order('updated_at desc') 5 | render "api/v1/follow_relations/index" 6 | end 7 | 8 | end 9 | -------------------------------------------------------------------------------- /app/controllers/api/v0/payments_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::PaymentsController < Api::V0::BaseController 2 | 3 | def recent_paypal_ipns 4 | @paypal_ipns = PaypalIpn.order('created_at desc') 5 | render "api/v1/paypal_ipns/index" 6 | end 7 | 8 | end 9 | -------------------------------------------------------------------------------- /app/controllers/api/v0/pledges_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::PledgesController < Api::V0::BaseController 2 | 3 | def index 4 | @pledges = Pledge.order('created_at desc').limit(100) 5 | render "api/v0/pledges/index" 6 | end 7 | 8 | def show 9 | @pledge = Pledge.find(params[:id]) 10 | render "api/v0/pledges/show" 11 | end 12 | 13 | end -------------------------------------------------------------------------------- /app/controllers/api/v0/request_for_proposals_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::RequestForProposalsController < Api::V0::BaseController 2 | def index 3 | @include_person = true 4 | @collection = RequestForProposal.includes(:proposals, :person, :issue) 5 | end 6 | end -------------------------------------------------------------------------------- /app/controllers/api/v0/solutions_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V0::SolutionsController < Api::V0::BaseController 2 | 3 | def index 4 | @solutions = Solution.includes(:issue, :person).all 5 | end 6 | 7 | end 8 | -------------------------------------------------------------------------------- /app/controllers/api/v1/delayed_jobs_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V1::DelayedJobsController < ApplicationController 2 | def poll 3 | job = Delayed::Job.find_by_id(params[:id]) 4 | head (job ? :not_modified : :ok) 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /app/controllers/api/v1/info_spaces_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V1::InfoSpacesController < ApplicationController 2 | def index 3 | @ad_spaces = AdSpace.where.not(position: nil) 4 | render "api/v1/ad_spaces/index" 5 | end 6 | end -------------------------------------------------------------------------------- /app/controllers/api/v1/issue_addresses_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V1::IssueAddressesController < ApplicationController 2 | def create 3 | @issue = Issue.find(params[:issue_id]) 4 | CryptoApi.generate_address(@issue.id) unless @issue.issue_address.present? 5 | @issue.reload 6 | @issue 7 | end 8 | end -------------------------------------------------------------------------------- /app/controllers/api/v1/issues/reindices_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V1::Issues::ReindicesController < ApplicationController 2 | def show 3 | @issue = Issue.find(params[:issue_id]) 4 | @issue.reindex 5 | render 'api/v1/issues/show' 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /app/controllers/api/v1/languages_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V1::LanguagesController < ApplicationController 2 | def index 3 | @languages = Language.order("search_weight DESC") 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/controllers/api/v1/person_relations_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V1::PersonRelationsController < ApplicationController 2 | end 3 | -------------------------------------------------------------------------------- /app/controllers/api/v2/backers_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V2::BackersController < Api::BaseController 2 | 3 | include Api::V2::PaginationHelper 4 | include Api::V2::BackersHelper 5 | 6 | def index 7 | @collection = top_backers(params) 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /app/controllers/api/v2/currencies_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V2::CurrenciesController < ApplicationController 2 | 3 | def index 4 | render json: Currency.index, status: :ok 5 | end 6 | 7 | end 8 | -------------------------------------------------------------------------------- /app/controllers/api/v2/payment_methods_controller.rb: -------------------------------------------------------------------------------- 1 | class Api::V2::PaymentMethodsController < Api::BaseController 2 | 3 | before_action :require_auth 4 | 5 | def index 6 | @collection = current_user.payment_methods 7 | render 'api/v2/payment_methods/index' 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /app/helpers/admin_helper.rb: -------------------------------------------------------------------------------- 1 | module AdminHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/api/v1/home_helper.rb: -------------------------------------------------------------------------------- 1 | module Api::V1::HomeHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/api/v2/account_helper.rb: -------------------------------------------------------------------------------- 1 | module Api::V2::AccountHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/api/v2/addresses_helper.rb: -------------------------------------------------------------------------------- 1 | module Api::V2::AddressesHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/api/v2/cart_helper.rb: -------------------------------------------------------------------------------- 1 | module Api::V2::CartHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/api/v2/people_trackers_helper.rb: -------------------------------------------------------------------------------- 1 | module Api::V2::PeopleTrackersHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/api/v2/plugins_helper.rb: -------------------------------------------------------------------------------- 1 | module Api::V2::PluginsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/api/v2/timeline_helper.rb: -------------------------------------------------------------------------------- 1 | module Api::V2::TimelineHelper 2 | 3 | include Api::V2::BaseHelper 4 | 5 | end 6 | -------------------------------------------------------------------------------- /app/helpers/bounty_source_helper.rb: -------------------------------------------------------------------------------- 1 | module BountySourceHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/number_to_dollars_helper.rb: -------------------------------------------------------------------------------- 1 | module NumberToDollarsHelper 2 | def number_to_dollars(num, options={}) 3 | ActionController::Base.helpers.number_to_currency(num.floor, options.merge(precision: 0, unit: "$")) 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/helpers/pacts_helper.rb: -------------------------------------------------------------------------------- 1 | module PactsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/views/api/v0/access_tokens.rabl: -------------------------------------------------------------------------------- 1 | collection @tokens 2 | 3 | attribute :created_at 4 | attribute :remote_ip 5 | attribute :user_agent 6 | 7 | child(:person) do 8 | extends "api/v1/people/partials/base" 9 | end 10 | -------------------------------------------------------------------------------- /app/views/api/v0/activity_logs/index.rabl: -------------------------------------------------------------------------------- 1 | collection @activity_logs 2 | 3 | attribute :id 4 | attribute :name 5 | attribute :person_id 6 | attribute :tracker_id 7 | attribute :issue_id 8 | attribute :created_at 9 | -------------------------------------------------------------------------------- /app/views/api/v0/ad_spaces/index.rabl: -------------------------------------------------------------------------------- 1 | collection @ad_spaces 2 | 3 | extends "api/v0/ad_spaces/partials/base" -------------------------------------------------------------------------------- /app/views/api/v0/ad_spaces/partials/_base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :title 3 | attribute :text 4 | attribute :button_text 5 | attribute :button_url 6 | attribute :image_url 7 | attribute :medium_image_url 8 | attribute :position -------------------------------------------------------------------------------- /app/views/api/v0/ad_spaces/show.rabl: -------------------------------------------------------------------------------- 1 | object @ad_space 2 | 3 | extends "api/v0/ad_spaces/partials/base" 4 | -------------------------------------------------------------------------------- /app/views/api/v0/bounties/csv.json.rb: -------------------------------------------------------------------------------- 1 | @csv_bounties.map do |bounty| 2 | bounty 3 | end.to_json -------------------------------------------------------------------------------- /app/views/api/v0/bounties/index.rabl: -------------------------------------------------------------------------------- 1 | collection @bounties 2 | 3 | extends "api/v0/bounties/partials/base" 4 | extends "api/v1/bounties/partials/options" 5 | extends "api/v0/bounties/partials/person" 6 | 7 | child(:issue => :issue) do 8 | extends "api/v1/issues/partials/base" 9 | end -------------------------------------------------------------------------------- /app/views/api/v0/bounties/partials/base.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/bounties/partials/base" 2 | 3 | attribute :acknowledged_at 4 | attribute :updated_at 5 | attribute :paid_at 6 | attribute :featured 7 | attribute :owner_id 8 | attribute :owner_type -------------------------------------------------------------------------------- /app/views/api/v0/bounties/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { extends "api/v1/people/partials/base" } 2 | -------------------------------------------------------------------------------- /app/views/api/v0/bounties/partials/splits.rabl: -------------------------------------------------------------------------------- 1 | child :splits do 2 | extends "api/v1/splits/partials/base" 3 | extends "api/v1/splits/partials/transaction" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v0/bounties/show.rabl: -------------------------------------------------------------------------------- 1 | object @bounty 2 | 3 | extends "api/v0/bounties/partials/base" 4 | extends "api/v1/bounties/partials/issue" 5 | extends "api/v1/bounties/partials/options" 6 | extends "api/v0/bounties/partials/person" 7 | extends "api/v0/bounties/partials/splits" 8 | -------------------------------------------------------------------------------- /app/views/api/v0/crypto_pay_out_txns/partials/_base.rabl: -------------------------------------------------------------------------------- 1 | attribute :state 2 | attribute :txn_hash 3 | attribute :confirmed_block 4 | attribute :mined_at 5 | attribute :created_at 6 | attribute :updated_at 7 | attribute :type -------------------------------------------------------------------------------- /app/views/api/v0/crypto_pay_outs/index.rabl: -------------------------------------------------------------------------------- 1 | collection @crypto_pay_outs 2 | 3 | extends "api/v0/crypto_pay_outs/partials/base" -------------------------------------------------------------------------------- /app/views/api/v0/crypto_pay_outs/show.rabl: -------------------------------------------------------------------------------- 1 | object @crypto_pay_out 2 | 3 | extends "api/v0/crypto_pay_outs/partials/base" -------------------------------------------------------------------------------- /app/views/api/v0/delayed_jobs/index.rabl: -------------------------------------------------------------------------------- 1 | collection @delayed_jobs 2 | 3 | extends "api/v0/delayed_jobs/partials/base" 4 | extends "api/v0/delayed_jobs/partials/handler" -------------------------------------------------------------------------------- /app/views/api/v0/delayed_jobs/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :priority 3 | attribute :attempts 4 | attribute :last_error 5 | attribute :run_at 6 | attribute :locked_at 7 | attribute :failed_at 8 | attribute :locked_by 9 | attribute :created_at 10 | attribute :updated_at -------------------------------------------------------------------------------- /app/views/api/v0/delayed_jobs/show.rabl: -------------------------------------------------------------------------------- 1 | object @delayed_job 2 | 3 | extends "api/v0/delayed_jobs/partials/base" 4 | extends "api/v0/delayed_jobs/partials/handler" -------------------------------------------------------------------------------- /app/views/api/v0/developer_goals/index.rabl: -------------------------------------------------------------------------------- 1 | collection @developer_goals 2 | 3 | extends "api/v1/developer_goals/index" 4 | extends "api/v1/developer_goals/partials/issue" 5 | -------------------------------------------------------------------------------- /app/views/api/v0/events/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, *%i( 2 | id 3 | created_at 4 | distinct_id 5 | event 6 | payload 7 | )) 8 | 9 | json.person do 10 | json.partial! 'api/v2/people/base', item: item.person if item.person 11 | end 12 | -------------------------------------------------------------------------------- /app/views/api/v0/events/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'api/v0/events/base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v0/fundraisers/index_for_person.rabl: -------------------------------------------------------------------------------- 1 | collection @fundraisers 2 | extends "api/v1/fundraisers/partials/base" 3 | -------------------------------------------------------------------------------- /app/views/api/v0/fundraisers/tracker_relations.rabl: -------------------------------------------------------------------------------- 1 | collection @trackers 2 | 3 | extends "api/v1/trackers/partials/base" 4 | -------------------------------------------------------------------------------- /app/views/api/v0/issue_addresses/index.rabl: -------------------------------------------------------------------------------- 1 | collection @issue_addresses 2 | 3 | extends "api/v0/issue_addresses/partials/base" -------------------------------------------------------------------------------- /app/views/api/v0/issue_addresses/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :public_address 3 | attribute :created_at 4 | attribute :balance 5 | 6 | 7 | child(:issue) { 8 | attribute :id 9 | attribute :title 10 | attribute :to_param => :slug 11 | } -------------------------------------------------------------------------------- /app/views/api/v0/issues/counts.rabl: -------------------------------------------------------------------------------- 1 | node(:closed) do 2 | @closed 3 | end 4 | 5 | node(:open) do 6 | @open 7 | end 8 | 9 | node(:paid_out) do 10 | @paid_out 11 | end 12 | -------------------------------------------------------------------------------- /app/views/api/v0/issues/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :to_param => :slug 3 | attribute :frontend_path 4 | attribute :sanitized_title => :title 5 | attribute :url 6 | attribute :featured 7 | attribute :can_add_bounty 8 | attribute :real_created_at => :created_at 9 | attribute :generic 10 | attribute :paid_out 11 | attribute :bounty_total 12 | -------------------------------------------------------------------------------- /app/views/api/v0/issues/partials/bounties.rabl: -------------------------------------------------------------------------------- 1 | child(:bounties) do 2 | extends "api/v1/bounties/partials/base" 3 | extends "api/v1/bounties/partials/issue" 4 | extends "api/v1/bounties/partials/owner" 5 | 6 | child(:person) do 7 | extends "api/v1/people/partials/base" 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /app/views/api/v0/issues/partials/tracker.rabl: -------------------------------------------------------------------------------- 1 | child :tracker => :tracker do 2 | extends "api/v1/trackers/partials/base" 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v0/issues/show.rabl: -------------------------------------------------------------------------------- 1 | object @issue 2 | 3 | extends "api/v1/issues/show" 4 | extends "api/v0/issues/partials/bounties" 5 | -------------------------------------------------------------------------------- /app/views/api/v0/pledges/index.rabl: -------------------------------------------------------------------------------- 1 | collection @pledges 2 | 3 | extends "api/v1/pledges/partials/base" 4 | extends "api/v1/pledges/partials/fundraiser" 5 | extends "api/v1/pledges/partials/reward" 6 | 7 | extends "api/v0/pledges/partials/person" 8 | -------------------------------------------------------------------------------- /app/views/api/v0/pledges/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { extends "api/v1/people/partials/base" } 2 | -------------------------------------------------------------------------------- /app/views/api/v0/pledges/partials/splits.rabl: -------------------------------------------------------------------------------- 1 | child :splits do 2 | extends "api/v1/splits/partials/base" 3 | extends "api/v1/splits/partials/transaction" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v0/pledges/show.rabl: -------------------------------------------------------------------------------- 1 | object @pledge 2 | 3 | attribute :anonymous 4 | 5 | extends "api/v1/pledges/partials/base" 6 | extends "api/v1/pledges/partials/reward" 7 | extends "api/v1/pledges/partials/fundraiser" # still include this for backwards compatibility 8 | extends "api/v0/pledges/partials/person" 9 | extends "api/v0/pledges/partials/splits" 10 | -------------------------------------------------------------------------------- /app/views/api/v0/report/liability_report.rabl: -------------------------------------------------------------------------------- 1 | object false 2 | 3 | node(:accounts) { @accounts } -------------------------------------------------------------------------------- /app/views/api/v0/request_for_proposals/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v0/shorts/_base.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, :id, :slug, :destination, :created_at) -------------------------------------------------------------------------------- /app/views/api/v0/shorts/index.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @items, partial: 'api/v0/shorts/base', as: :item -------------------------------------------------------------------------------- /app/views/api/v0/shorts/show.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'api/v0/shorts/base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v0/solutions/index.rabl: -------------------------------------------------------------------------------- 1 | collection @solutions 2 | 3 | extends "api/v1/solutions/partials/base" 4 | extends "api/v1/solutions/partials/person" 5 | extends "api/v1/developer_goals/partials/issue" 6 | extends "api/v1/solutions/partials/solution_events" 7 | -------------------------------------------------------------------------------- /app/views/api/v0/splits/index.rabl: -------------------------------------------------------------------------------- 1 | collection @splits 2 | 3 | extends "api/v1/splits/partials/base" 4 | extends "api/v1/splits/partials/transaction" 5 | -------------------------------------------------------------------------------- /app/views/api/v0/tag_votes/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'api/v0/tag_votes/base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v0/tags/_base.json.jbuilder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/views/api/v0/tags/_base.json.jbuilder -------------------------------------------------------------------------------- /app/views/api/v0/tags/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'api/v2/tags/base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v0/takedowns/index.rabl: -------------------------------------------------------------------------------- 1 | collection @takedowns 2 | 3 | attribute :id 4 | attribute :created_at 5 | node(:target) { |obj| obj.linked_account.login } 6 | -------------------------------------------------------------------------------- /app/views/api/v0/team_payins/base.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/team_payins/partials/base" 2 | extends "api/v1/team_payins/partials/team" 3 | extends "api/v1/team_payins/partials/person" 4 | child(:owner => :owner) { extends "api/v1/owners/partials/base" } 5 | -------------------------------------------------------------------------------- /app/views/api/v0/team_payins/index.rabl: -------------------------------------------------------------------------------- 1 | collection @team_payins 2 | extends "api/v0/team_payins/base" 3 | -------------------------------------------------------------------------------- /app/views/api/v0/team_payins/show.rabl: -------------------------------------------------------------------------------- 1 | object @team_payin 2 | extends "api/v0/team_payins/base" 3 | -------------------------------------------------------------------------------- /app/views/api/v0/teams/index.rabl: -------------------------------------------------------------------------------- 1 | collection @teams 2 | 3 | extends "api/v1/teams/partials/base" 4 | 5 | #child(:member_relations => :members) { extends "api/v1/teams/partials/member" } 6 | 7 | attribute :account_splits_total 8 | attribute :member_relations_count 9 | attribute :tag_relations_count 10 | attribute :homepage_featured 11 | -------------------------------------------------------------------------------- /app/views/api/v0/teams/show.rabl: -------------------------------------------------------------------------------- 1 | object @team 2 | 3 | extends "api/v1/teams/show" 4 | extends "api/v1/people/partials/account" 5 | 6 | child(:member_relations => :members) { extends "api/v1/teams/partials/member" } 7 | 8 | node :linked_account_login do |team| 9 | team.linked_account ? team.linked_account.login : nil 10 | end 11 | 12 | attribute :homepage_featured 13 | -------------------------------------------------------------------------------- /app/views/api/v0/tracker_plugins/index.rabl: -------------------------------------------------------------------------------- 1 | collection @tracker_plugins 2 | 3 | attribute :synced_at 4 | attribute :locked_at 5 | attribute :last_error 6 | 7 | extends "api/v1/tracker_plugins/partials/base" 8 | extends "api/v1/tracker_plugins/partials/person" 9 | extends "api/v0/tracker_plugins/partials/tracker" 10 | -------------------------------------------------------------------------------- /app/views/api/v0/tracker_plugins/partials/tracker.rabl: -------------------------------------------------------------------------------- 1 | child(:tracker => :tracker) do 2 | extends "api/v1/trackers/partials/base" 3 | extends "api/v1/trackers/partials/extended" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v0/trackers/index.rabl: -------------------------------------------------------------------------------- 1 | collection @trackers 2 | 3 | extends "api/v1/trackers/partials/base" 4 | extends "api/v1/trackers/partials/extended" 5 | 6 | child :team => :team do 7 | extends "api/v1/teams/partials/base" 8 | end -------------------------------------------------------------------------------- /app/views/api/v0/trackers/show.rabl: -------------------------------------------------------------------------------- 1 | object @tracker 2 | 3 | extends "api/v1/trackers/partials/base" 4 | extends "api/v1/trackers/partials/extended" 5 | extends "api/v1/trackers/partials/languages" 6 | 7 | child :team => :team do 8 | extends "api/v1/teams/partials/base" 9 | end -------------------------------------------------------------------------------- /app/views/api/v0/transactions/index.rabl: -------------------------------------------------------------------------------- 1 | collection @transactions 2 | 3 | extends "api/v0/transactions/partials/base" 4 | extends "api/v0/transactions/partials/splits" 5 | 6 | if @person.try(:admin?) 7 | extends "api/v0/transactions/partials/admin" 8 | end 9 | -------------------------------------------------------------------------------- /app/views/api/v0/transactions/partials/admin.rabl: -------------------------------------------------------------------------------- 1 | attribute :audited -------------------------------------------------------------------------------- /app/views/api/v0/transactions/partials/base.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/transactions/partials/base" 2 | 3 | attribute :description 4 | -------------------------------------------------------------------------------- /app/views/api/v0/transactions/partials/splits.rabl: -------------------------------------------------------------------------------- 1 | child(:splits) do 2 | extends "api/v1/splits/partials/base" 3 | extends "api/v1/splits/partials/extended" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v0/transactions/show.rabl: -------------------------------------------------------------------------------- 1 | object @transaction 2 | 3 | extends "api/v0/transactions/partials/base" 4 | extends "api/v0/transactions/partials/splits" 5 | 6 | if @person.try(:admin?) 7 | extends "api/v0/transactions/partials/admin" 8 | end 9 | -------------------------------------------------------------------------------- /app/views/api/v1/accounts/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :type 3 | attribute :balance 4 | attribute :currency 5 | attribute :name 6 | attribute :created_at 7 | attribute :updated_at 8 | attribute :owner_id 9 | attribute :owner_type -------------------------------------------------------------------------------- /app/views/api/v1/accounts/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | object @account 2 | 3 | child (:transactions) do 4 | extends "api/v1/transactions/partials/base" 5 | extends "api/v0/transactions/partials/splits" 6 | end 7 | -------------------------------------------------------------------------------- /app/views/api/v1/accounts/partials/owner.rabl: -------------------------------------------------------------------------------- 1 | child(:owner => :owner) { extends "api/v1/owners/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/accounts/show.rabl: -------------------------------------------------------------------------------- 1 | object @account 2 | extends "api/v1/accounts/partials/base" 3 | 4 | child (:transactions) do 5 | extends "api/v1/transactions/partials/base" 6 | end 7 | 8 | -------------------------------------------------------------------------------- /app/views/api/v1/ad_spaces/index.rabl: -------------------------------------------------------------------------------- 1 | collection @ad_spaces 2 | 3 | extends "api/v1/ad_spaces/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/ad_spaces/partials/_base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :title 3 | attribute :text 4 | attribute :button_text 5 | attribute :button_url 6 | attribute :image_url 7 | attribute :medium_image_url 8 | attribute :large_image_url 9 | attribute :position -------------------------------------------------------------------------------- /app/views/api/v1/bounties/index.rabl: -------------------------------------------------------------------------------- 1 | collection @bounties 2 | 3 | extends "api/v1/bounties/partials/base" 4 | extends "api/v1/bounties/partials/issue" 5 | extends "api/v1/bounties/partials/pact" 6 | extends "api/v1/bounties/partials/owner" -------------------------------------------------------------------------------- /app/views/api/v1/bounties/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :created_at 4 | attribute :status 5 | 6 | if can?(:manage, root_object) 7 | attribute :anonymous 8 | end 9 | -------------------------------------------------------------------------------- /app/views/api/v1/bounties/partials/issue.rabl: -------------------------------------------------------------------------------- 1 | child(:issue => :issue) do 2 | extends "api/v1/issues/partials/base" 3 | extends "api/v1/issues/partials/extended" 4 | extends "api/v1/issues/partials/tracker" 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/bounties/partials/options.rabl: -------------------------------------------------------------------------------- 1 | attribute :bounty_expiration 2 | attribute :upon_expiration 3 | attribute :promotion 4 | attribute :tweet 5 | -------------------------------------------------------------------------------- /app/views/api/v1/bounties/partials/owner.rabl: -------------------------------------------------------------------------------- 1 | child(:owner => :owner) { extends "api/v1/owners/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bounties/partials/pact.rabl: -------------------------------------------------------------------------------- 1 | child(:pact => :pact) do 2 | extends "api/v1/pacts/partials/base" 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v1/bounties/partials/person.rabl: -------------------------------------------------------------------------------- 1 | node(:person) do |bounty| 2 | if can?(:read_anonymous, bounty) 3 | partial "people/partials/base", object: bounty.owner 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/bounties/partials/splits.rabl: -------------------------------------------------------------------------------- 1 | child :splits do 2 | extends "api/v1/splits/partials/base" 3 | extends "api/v1/splits/partials/transaction" 4 | end -------------------------------------------------------------------------------- /app/views/api/v1/bounties/show.rabl: -------------------------------------------------------------------------------- 1 | object @bounty 2 | 3 | extends "api/v1/bounties/partials/base" 4 | extends "api/v1/bounties/partials/issue" 5 | extends "api/v1/bounties/partials/owner" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_events/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :type 3 | attribute :description 4 | attribute :created_at -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_events/partials/bounty_claim.rabl: -------------------------------------------------------------------------------- 1 | child(:bounty_claim => :bounty_claim) do 2 | child(:issue) do 3 | attribute :id 4 | attribute :to_param => :slug 5 | attribute :frontend_path 6 | attribute :title 7 | 8 | end 9 | end -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_events/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person => :person) { extends "api/v1/people/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_responses/index.rabl: -------------------------------------------------------------------------------- 1 | collection @bounty_claim_responses 2 | 3 | extends "api/v1/bounty_claim_responses/partials/base" 4 | extends "api/v1/bounty_claim_responses/partials/owner" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_responses/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :value 3 | attribute :description 4 | attribute :created_at 5 | attribute :updated_at 6 | -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_responses/partials/bounty_claim.rabl: -------------------------------------------------------------------------------- 1 | child(:bounty_claim) { extends "api/v1/bounty_claims/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_responses/partials/owner.rabl: -------------------------------------------------------------------------------- 1 | child(:owner => :person) { extends "api/v1/owners/partials/base" } 2 | -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_responses/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { extends "api/v1/people/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claim_responses/show.rabl: -------------------------------------------------------------------------------- 1 | object @bounty_claim_response 2 | 3 | extends "api/v1/bounty_claim_responses/partials/base" 4 | extends "api/v1/bounty_claim_responses/partials/person" 5 | extends "api/v1/bounty_claim_responses/partials/bounty_claim" -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claims/partials/bounty_claim_events.rabl: -------------------------------------------------------------------------------- 1 | child(:bounty_claim_events => :events) do 2 | extends "api/v1/bounty_claim_events/partials/base" 3 | extends "api/v1/bounty_claim_events/partials/person" 4 | end -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claims/partials/bounty_claim_responses.rabl: -------------------------------------------------------------------------------- 1 | child(:bounty_claim_responses => :responses) { extends "api/v1/bounty_claim_responses/index" } -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claims/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | attribute :contested? => :contested 2 | attribute :backers_count 3 | attribute :accept_count 4 | attribute :reject_count 5 | 6 | if can? :manage, root_object 7 | attribute :paid_out 8 | attribute :updated_at 9 | end 10 | -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claims/partials/issue.rabl: -------------------------------------------------------------------------------- 1 | child(:issue) { extends "api/v1/issues/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claims/partials/pact.rabl: -------------------------------------------------------------------------------- 1 | child(:pact) { extends "api/v1/pacts/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claims/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { extends "api/v1/people/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bounty_claims/partials/responses.rabl: -------------------------------------------------------------------------------- 1 | child(:bounty_claim_responses => :responses) { extends "api/v1/bounty_claim_responses/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/bulk/issues.rabl: -------------------------------------------------------------------------------- 1 | collection @issues 2 | 3 | extends "api/v1/issues/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/cards/index.rabl: -------------------------------------------------------------------------------- 1 | object false 2 | 3 | child @cards[:fundraisers] => :fundraisers do 4 | extends('api/v1/fundraisers/partials/card') 5 | end 6 | 7 | child @cards[:repositories] => :repositories do 8 | extends('api/v1/trackers/partials/card') 9 | end 10 | 11 | child @cards[:issues] => :issues do 12 | extends('api/v1/issues/partials/card') 13 | end 14 | -------------------------------------------------------------------------------- /app/views/api/v1/crypto_bounties/index.rabl: -------------------------------------------------------------------------------- 1 | collection @crypto_bounties 2 | 3 | extends "api/v1/crypto_bounties/partials/base" 4 | extends "api/v1/crypto_bounties/partials/owner" -------------------------------------------------------------------------------- /app/views/api/v1/crypto_bounties/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :created_at 4 | attribute :status 5 | attribute :anonymous 6 | attribute :transaction_hash -------------------------------------------------------------------------------- /app/views/api/v1/crypto_bounties/partials/owner.rabl: -------------------------------------------------------------------------------- 1 | child(:owner => :owner) { extends "api/v1/owners/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/crypto_pay_outs/index.rabl: -------------------------------------------------------------------------------- 1 | collection @crypto_pay_outs 2 | 3 | extends "api/v1/crypto_pay_outs/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/developer_goals/index.rabl: -------------------------------------------------------------------------------- 1 | collection @developer_goals 2 | 3 | extends "api/v1/developer_goals/partials/base" 4 | extends "api/v1/developer_goals/partials/person" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/developer_goals/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :created_at 4 | attribute :updated_at 5 | -------------------------------------------------------------------------------- /app/views/api/v1/developer_goals/partials/issue.rabl: -------------------------------------------------------------------------------- 1 | child(:issue => :issue) { extends "api/v1/issues/partials/base" } 2 | -------------------------------------------------------------------------------- /app/views/api/v1/developer_goals/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { extends "api/v1/people/partials/base" } 2 | -------------------------------------------------------------------------------- /app/views/api/v1/developer_goals/show.rabl: -------------------------------------------------------------------------------- 1 | object @developer_goal 2 | 3 | extends "api/v1/developer_goals/partials/base" 4 | -------------------------------------------------------------------------------- /app/views/api/v1/doge_issues/index.rabl: -------------------------------------------------------------------------------- 1 | collection @issues 2 | 3 | extends "api/v1/doge_issues/partials/issue" 4 | -------------------------------------------------------------------------------- /app/views/api/v1/doge_issues/partials/issue.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/issues/partials/base" 2 | child :tracker => :tracker do 3 | extends "api/v1/trackers/partials/base" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v1/doge_issues/ranked_index.rabl: -------------------------------------------------------------------------------- 1 | collection @issue_ranks 2 | 3 | attribute :rank 4 | node(:relevance) do |issue_rank| 5 | [(issue_rank.rank.to_f / @max_rank.to_f) * 100, 100].min.round 6 | end 7 | 8 | glue(:issue => :issue) { extends "api/v1/doge_issues/partials/issue" } 9 | -------------------------------------------------------------------------------- /app/views/api/v1/follow_relations/index.rabl: -------------------------------------------------------------------------------- 1 | collection @follow_relations 2 | 3 | extends "api/v1/follow_relations/partials/base" 4 | extends "api/v1/follow_relations/partials/item" 5 | extends "api/v1/follow_relations/partials/person" -------------------------------------------------------------------------------- /app/views/api/v1/follow_relations/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :created_at 3 | attribute :updated_at 4 | attribute :active 5 | attribute :item_type 6 | attribute :item_id 7 | -------------------------------------------------------------------------------- /app/views/api/v1/follow_relations/partials/item.rabl: -------------------------------------------------------------------------------- 1 | node(:item) do |follow_relation| 2 | case follow_relation.item 3 | when Tracker then partial "trackers/partials/base", object: follow_relation.item 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/follow_relations/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { extends "api/v1/people/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/follow_relations/show.rabl: -------------------------------------------------------------------------------- 1 | object @follow_relation 2 | 3 | extends "api/v1/follow_relations/partials/base" 4 | extends "api/v1/follow_relations/partials/item" -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/admin.rabl: -------------------------------------------------------------------------------- 1 | object @fundraiser 2 | 3 | extends "api/v1/fundraisers/partials/base" 4 | extends "api/v1/fundraisers/partials/extended" 5 | extends "api/v1/fundraisers/partials/account" 6 | extends "api/v1/fundraisers/partials/rewards" 7 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/cards.rabl: -------------------------------------------------------------------------------- 1 | object false 2 | 3 | node(:in_progress) { partial "api/v1/fundraisers/partials/card", object: @in_progress } 4 | node(:completed) { partial "api/v1/fundraisers/partials/card", object: @completed } 5 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/index.rabl: -------------------------------------------------------------------------------- 1 | collection @fundraisers 2 | 3 | extends "api/v1/fundraisers/partials/base" 4 | child :person do 5 | extends "api/v1/people/partials/base" 6 | end 7 | # child :team => :team do 8 | # extends "api/v1/teams/partials/base" 9 | # end 10 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/info.rabl: -------------------------------------------------------------------------------- 1 | object @fundraiser 2 | 3 | extends "api/v1/fundraisers/partials/base" 4 | extends "api/v1/fundraisers/partials/extended" 5 | extends "api/v1/fundraisers/partials/rewards" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/partials/account.rabl: -------------------------------------------------------------------------------- 1 | child :account => :account do 2 | extends "api/v1/accounts/partials/base" 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/partials/card.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/fundraisers/partials/base" 2 | 3 | child(:person) { extends "api/v1/people/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/partials/rewards.rabl: -------------------------------------------------------------------------------- 1 | child :rewards do 2 | extends "api/v1/rewards/partials/base" 3 | 4 | child :pledges do 5 | extends "api/v1/pledges/partials/base" 6 | extends "api/v1/pledges/partials/owner" 7 | end 8 | end 9 | 10 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/partials/team.rabl: -------------------------------------------------------------------------------- 1 | child :team => :team do 2 | extends "api/v1/teams/partials/base" 3 | extends "api/v1/teams/partials/extended" 4 | 5 | child :public_member_relations => :members do 6 | extends "api/v1/teams/partials/member" 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/show.rabl: -------------------------------------------------------------------------------- 1 | object @fundraiser 2 | 3 | extends "api/v1/fundraisers/partials/base" 4 | extends "api/v1/fundraisers/partials/extended" 5 | extends "api/v1/fundraisers/partials/team" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/updates/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :number 3 | attribute :published_at 4 | attribute :updated_at 5 | attribute :title 6 | attribute :frontend_path 7 | attribute :frontend_url 8 | -------------------------------------------------------------------------------- /app/views/api/v1/fundraisers/updates/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | attribute :body -------------------------------------------------------------------------------- /app/views/api/v1/github_repositories/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :name 3 | attribute :url 4 | attribute :bounty_total 5 | -------------------------------------------------------------------------------- /app/views/api/v1/issue_addresses/create.rabl: -------------------------------------------------------------------------------- 1 | object @issue 2 | 3 | extends "api/v1/issues/partials/base" 4 | -------------------------------------------------------------------------------- /app/views/api/v1/issue_addresses/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :public_address 2 | attribute :balance -------------------------------------------------------------------------------- /app/views/api/v1/issues/authored.rabl: -------------------------------------------------------------------------------- 1 | collection @issues 2 | 3 | extends "api/v1/issues/partials/base" 4 | extends "api/v1/issues/partials/tracker" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/issues/bounties.rabl: -------------------------------------------------------------------------------- 1 | collection @bounties 2 | 3 | extends "api/v1/bounties/partials/base" 4 | extends "api/v1/bounties/partials/owner" -------------------------------------------------------------------------------- /app/views/api/v1/issues/featured.rabl: -------------------------------------------------------------------------------- 1 | collection @issues 2 | 3 | extends "api/v1/issues/partials/base" 4 | extends "api/v1/issues/partials/tracker" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/issues/index.rabl: -------------------------------------------------------------------------------- 1 | collection @issues 2 | 3 | extends "api/v1/issues/partials/base" 4 | 5 | child(:accepted_bounty_claim => :accepted_bounty_claim) { extends "api/v1/bounty_claims/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/issues/overview.rabl: -------------------------------------------------------------------------------- 1 | collection @issues 2 | 3 | extends "api/v1/issues/partials/base" 4 | extends "api/v1/issues/partials/tracker" 5 | extends "api/v1/issues/partials/bounties" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/issues/partials/bounties.rabl: -------------------------------------------------------------------------------- 1 | child(:visible_bounties => :bounties) do 2 | extends "api/v1/bounties/partials/base" 3 | extends "api/v1/bounties/partials/issue" 4 | extends "api/v1/bounties/partials/owner" 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/issues/partials/bounty_claims.rabl: -------------------------------------------------------------------------------- 1 | child(:bounty_claims) { extends "api/v1/bounty_claims/index" } -------------------------------------------------------------------------------- /app/views/api/v1/issues/partials/card.rabl: -------------------------------------------------------------------------------- 1 | attribute :card_id 2 | extends "api/v1/issues/partials/base" 3 | extends "api/v1/issues/partials/tracker" 4 | -------------------------------------------------------------------------------- /app/views/api/v1/issues/partials/comments.rabl: -------------------------------------------------------------------------------- 1 | child(:comments) do |issue| 2 | attribute :sanitized_body_html => :body_html 3 | attribute :created_at 4 | extends "api/v1/authors/partials/base" 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/issues/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | attribute :frontend_url 2 | attribute :sanitized_body_html => :body_html 3 | 4 | node(:can_respond_to_claims) do |issue| 5 | issue.can_respond_to_claims?(@person) 6 | end -------------------------------------------------------------------------------- /app/views/api/v1/issues/partials/tracker.rabl: -------------------------------------------------------------------------------- 1 | child :tracker => :tracker do 2 | extends "api/v1/trackers/partials/base" 3 | extends "api/v1/trackers/partials/extended" 4 | extends "api/v1/trackers/partials/languages" 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/issues/waiting_for_developer.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/issues/index" 2 | 3 | child(:accepted_bounty_claim => :accepted_bounty_claim) { extends "api/v1/bounty_claims/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/languages/index.rabl: -------------------------------------------------------------------------------- 1 | collection @languages 2 | 3 | extends "api/v1/languages/partials/base" 4 | -------------------------------------------------------------------------------- /app/views/api/v1/languages/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :name 3 | node(:weight) { root_object.search_weight || 0 } 4 | -------------------------------------------------------------------------------- /app/views/api/v1/linked_accounts/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :uid 3 | attribute :login 4 | attribute :login => :display_name 5 | attribute :image_url 6 | attribute :medium_image_url 7 | attribute :large_image_url 8 | attribute :followers 9 | attribute :following 10 | -------------------------------------------------------------------------------- /app/views/api/v1/linked_accounts/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | attribute :anonymous 2 | attribute :account_balance 3 | attribute :first_name 4 | attribute :last_name 5 | attribute :email 6 | -------------------------------------------------------------------------------- /app/views/api/v1/linked_accounts/partials/faux_person.rabl: -------------------------------------------------------------------------------- 1 | node(:type) { |linked_account| linked_account.class.name } 2 | attribute :name => :display_name 3 | attribute :image_url 4 | attribute :medium_image_url 5 | attribute :large_image_url 6 | 7 | -------------------------------------------------------------------------------- /app/views/api/v1/linked_accounts/show.rabl: -------------------------------------------------------------------------------- 1 | object @linked_account 2 | 3 | extends "api/v1/linked_accounts/partials/base" 4 | extends "api/v1/linked_accounts/partials/extended" if can? :manage, @linked_account -------------------------------------------------------------------------------- /app/views/api/v1/notifications/partials/base.rabl: -------------------------------------------------------------------------------- 1 | child(:person) do 2 | attribute :display_name 3 | attribute :image_url 4 | attribute :frontend_path 5 | end -------------------------------------------------------------------------------- /app/views/api/v1/notifications/partials/bounty.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/notifications/partials/base" 2 | 3 | attribute :amount 4 | attribute :created_at 5 | 6 | child(:issue) do 7 | attribute :title 8 | attribute :frontend_path 9 | end 10 | -------------------------------------------------------------------------------- /app/views/api/v1/notifications/partials/fundraiser.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/notifications/partials/base" 2 | 3 | attribute :title 4 | attribute :frontend_path 5 | -------------------------------------------------------------------------------- /app/views/api/v1/notifications/partials/pledge.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/notifications/partials/base" 2 | 3 | attribute :amount 4 | 5 | child(:fundraiser) { attributes :title, :frontend_path } 6 | -------------------------------------------------------------------------------- /app/views/api/v1/owners/partials/base.rabl: -------------------------------------------------------------------------------- 1 | node(:type) { |owner| owner.class.name } 2 | 3 | attribute :id 4 | attribute :display_name 5 | attribute :to_param => :slug 6 | attribute :image_url 7 | attribute :medium_image_url 8 | attribute :large_image_url 9 | attribute :created_at -------------------------------------------------------------------------------- /app/views/api/v1/pacts/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :project_name 3 | attribute :project_description 4 | attribute :created_at 5 | attribute :updated_at 6 | attribute :completed_at 7 | attribute :paid_at 8 | attribute :bounty_total 9 | attribute :featured 10 | -------------------------------------------------------------------------------- /app/views/api/v1/pacts/partials/search.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :project_name => :title 3 | attribute :project_description => :description 4 | attribute :created_at 5 | attribute :updated_at 6 | attribute :bounty_total 7 | attribute :featured 8 | attribute :to_param => :slug 9 | -------------------------------------------------------------------------------- /app/views/api/v1/paypal_ipns/index.rabl: -------------------------------------------------------------------------------- 1 | collection @paypal_ipns 2 | 3 | extends "api/v1/paypal_ipns/partials/base" 4 | extends "api/v1/paypal_ipns/partials/transaction" -------------------------------------------------------------------------------- /app/views/api/v1/paypal_ipns/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :created_at 2 | node(:mc_gross) { |ipn| ipn.mc_gross } 3 | node(:mc_fee) { |ipn| ipn.mc_fee } 4 | node(:handling_amount) { |ipn| ipn.handling_amount rescue 0.0 } 5 | node(:payer_email) { |ipn| ipn.payer_email } 6 | -------------------------------------------------------------------------------- /app/views/api/v1/paypal_ipns/partials/transaction.rabl: -------------------------------------------------------------------------------- 1 | child :transaction do 2 | extends "api/v1/transactions/partials/base" 3 | end -------------------------------------------------------------------------------- /app/views/api/v1/people/bounty_total.rabl: -------------------------------------------------------------------------------- 1 | object false 2 | 3 | node(:bounty_total) {|_| @bounty_total} -------------------------------------------------------------------------------- /app/views/api/v1/people/contributions.rabl: -------------------------------------------------------------------------------- 1 | object @person 2 | 3 | extends "api/v1/people/partials/bounties" 4 | extends "api/v1/people/partials/pledges" -------------------------------------------------------------------------------- /app/views/api/v1/people/create.rabl: -------------------------------------------------------------------------------- 1 | object @person 2 | 3 | attributes :current_access_token => :access_token 4 | attributes :email 5 | 6 | extends "api/v1/people/show" 7 | -------------------------------------------------------------------------------- /app/views/api/v1/people/crypto_bounties.rabl: -------------------------------------------------------------------------------- 1 | collection @crypto_bounties 2 | 3 | extends "api/v1/crypto_bounties/partials/base" 4 | extends "api/v1/crypto_bounties/partials/owner" 5 | 6 | child (:issue) do 7 | extends "api/v1/issues/partials/base" 8 | 9 | child(:tracker => :tracker) do 10 | extends "api/v1/trackers/partials/base" 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /app/views/api/v1/people/crypto_pay_outs.rabl: -------------------------------------------------------------------------------- 1 | collection @crypto_pay_outs 2 | 3 | extends "api/v0/crypto_pay_outs/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/people/index.rabl: -------------------------------------------------------------------------------- 1 | collection @people 2 | 3 | extends "api/v1/people/partials/base" 4 | 5 | child(:github_account => :github_account) do 6 | extends "api/v1/linked_accounts/partials/base" 7 | end 8 | 9 | child(:twitter_account => :twitter_account) do 10 | extends "api/v1/linked_accounts/partials/base" 11 | end -------------------------------------------------------------------------------- /app/views/api/v1/people/languages.rabl: -------------------------------------------------------------------------------- 1 | collection @languages 2 | 3 | extends "api/v1/languages/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/people/login.rabl: -------------------------------------------------------------------------------- 1 | object @person 2 | 3 | extends "api/v1/people/partials/base" 4 | extends "api/v1/people/partials/extended" 5 | extends "api/v1/people/partials/authenticated" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/people/pacts.rabl: -------------------------------------------------------------------------------- 1 | collection @pacts 2 | 3 | extends "api/v1/pacts/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/account.rabl: -------------------------------------------------------------------------------- 1 | node(:account) { |person| 2 | if person.account 3 | partial "api/v1/accounts/partials/base", object: person.account 4 | else 5 | { 6 | id: nil, 7 | type: person.account_class.name, 8 | balance: 0 9 | } 10 | end 11 | } 12 | -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/authenticated.rabl: -------------------------------------------------------------------------------- 1 | attribute :current_access_token => :access_token -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/bounties.rabl: -------------------------------------------------------------------------------- 1 | child(:bounties) do 2 | extends "api/v1/bounties/partials/base" 3 | extends "api/v1/bounties/partials/issue" 4 | end -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | attribute :first_name 2 | attribute :last_name 3 | attribute :email 4 | attribute :last_seen_at 5 | attribute :updated_at 6 | attribute :paypal_email 7 | node(:has_verified_wallet){ |person| person.has_verified_wallet? } -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/facebook_account.rabl: -------------------------------------------------------------------------------- 1 | node :facebook_account do |person| 2 | partial "api/v1/linked_accounts/partials/base", object: person.facebook_account 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/fundraisers.rabl: -------------------------------------------------------------------------------- 1 | child(:fundraisers) do 2 | collection @fundraisers 3 | extends "api/v1/fundraisers/partials/base" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/github_account.rabl: -------------------------------------------------------------------------------- 1 | child(root_object.github_account => :github_account) do |github_account| 2 | extends "api/v1/linked_accounts/partials/base" 3 | 4 | node(:permissions) { github_account.permissions } 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/pledges.rabl: -------------------------------------------------------------------------------- 1 | child :pledges do 2 | extends "api/v1/pledges/partials/base" 3 | extends "api/v1/pledges/partials/fundraiser" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/teams.rabl: -------------------------------------------------------------------------------- 1 | attribute :created_at => :added_at 2 | 3 | glue(:team) { extends "api/v1/teams/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/twitter_account.rabl: -------------------------------------------------------------------------------- 1 | node :twitter_account do |person| 2 | partial "api/v1/linked_accounts/partials/base", object: person.twitter_account 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v1/people/partials/wallets.rabl: -------------------------------------------------------------------------------- 1 | child :wallets do 2 | attribute :id 3 | attribute :eth_addr 4 | attribute :verified 5 | attribute :primary 6 | end -------------------------------------------------------------------------------- /app/views/api/v1/people/projects.rabl: -------------------------------------------------------------------------------- 1 | collection @tracker_relations 2 | 3 | glue(:tracker => :project) { extends "api/v1/trackers/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/people/recent.rabl: -------------------------------------------------------------------------------- 1 | object false 2 | 3 | node(:total_count) { @total_count } 4 | 5 | child(@people) do 6 | extends "api/v1/people/partials/base" 7 | end 8 | -------------------------------------------------------------------------------- /app/views/api/v1/people/tracker_plugins.rabl: -------------------------------------------------------------------------------- 1 | collection @tracker_plugins 2 | 3 | extends "api/v1/tracker_plugins/partials/base" 4 | extends "api/v1/tracker_plugins/partials/tracker" -------------------------------------------------------------------------------- /app/views/api/v1/pledges/index.rabl: -------------------------------------------------------------------------------- 1 | collection @pledges 2 | 3 | extends "api/v1/pledges/partials/base" 4 | extends "api/v1/pledges/partials/owner" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/pledges/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :created_at 4 | 5 | # survey response if you are the owner of the pledge, or the creator of the fundraiser 6 | if can?(:manage, root_object) 7 | attribute :survey_response 8 | attribute :anonymous 9 | end 10 | -------------------------------------------------------------------------------- /app/views/api/v1/pledges/partials/fundraiser.rabl: -------------------------------------------------------------------------------- 1 | child(:fundraiser) do 2 | extends "api/v1/fundraisers/partials/base" 3 | extends "api/v1/fundraisers/partials/extended" if can? :manage, root_object 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v1/pledges/partials/owner.rabl: -------------------------------------------------------------------------------- 1 | child(:owner => :owner) { extends "api/v1/owners/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/pledges/partials/person.rabl: -------------------------------------------------------------------------------- 1 | node(:person) do |pledge| 2 | if can?(:read_anonymous, pledge) 3 | partial "people/partials/base", object: pledge.owner 4 | end 5 | end -------------------------------------------------------------------------------- /app/views/api/v1/pledges/partials/reward.rabl: -------------------------------------------------------------------------------- 1 | child(:reward) { extends "api/v1/rewards/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/pledges/recent.rabl: -------------------------------------------------------------------------------- 1 | collection @pledges 2 | 3 | extends "api/v1/pledges/partials/base" 4 | extends "api/v1/pledges/partials/fundraiser" 5 | 6 | extends "api/v1/pledges/partials/owner" 7 | -------------------------------------------------------------------------------- /app/views/api/v1/pledges/show.rabl: -------------------------------------------------------------------------------- 1 | object @pledge 2 | 3 | extends "api/v1/pledges/partials/base" 4 | extends "api/v1/pledges/partials/reward" 5 | extends "api/v1/pledges/partials/fundraiser" # still include this for backwards compatibility 6 | extends "api/v1/pledges/partials/owner" 7 | -------------------------------------------------------------------------------- /app/views/api/v1/pledges/top_backers.rabl: -------------------------------------------------------------------------------- 1 | collection @owners_array 2 | 3 | attribute :amount, :created_at 4 | 5 | node(:owner) do |pledge| 6 | partial("owners/partials/base", object: pledge.owner) 7 | end 8 | -------------------------------------------------------------------------------- /app/views/api/v1/proposals/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :estimated_work 4 | attribute :completed_by 5 | attribute :abstract 6 | attribute :bio 7 | attribute :state 8 | attribute :created_at 9 | attribute :updated_at -------------------------------------------------------------------------------- /app/views/api/v1/rewards/index.rabl: -------------------------------------------------------------------------------- 1 | collection @rewards 2 | extends "api/v1/rewards/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/rewards/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :description 4 | attribute :claimed 5 | attribute :limited_to 6 | attribute :sold_out 7 | attribute :created_at 8 | attribute :fulfillment_details 9 | -------------------------------------------------------------------------------- /app/views/api/v1/rewards/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/rewards/partials/base" 2 | 3 | attribute :updated_at 4 | attribute :delivered_at 5 | 6 | child(:pledges) { 7 | child(:person) { extends "api/v1/people/partials/base" } 8 | extends "api/v1/pledges/partials/base" 9 | } -------------------------------------------------------------------------------- /app/views/api/v1/rewards/show.rabl: -------------------------------------------------------------------------------- 1 | object @reward 2 | extends "api/v1/rewards/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/saved_search_tabs/index.rabl: -------------------------------------------------------------------------------- 1 | collection @saved_search_tabs 2 | 3 | attribute :name 4 | attribute :created_at 5 | attribute :query 6 | attribute :locked 7 | 8 | # extends "api/v1/issues/partials/base" 9 | -------------------------------------------------------------------------------- /app/views/api/v1/searches/index.rabl: -------------------------------------------------------------------------------- 1 | collection @searches 2 | 3 | extends "api/v1/searches/partials/base" 4 | extends "api/v1/searches/partials/params" 5 | extends "api/v1/searches/partials/person" -------------------------------------------------------------------------------- /app/views/api/v1/searches/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :query 3 | attribute :created_at 4 | -------------------------------------------------------------------------------- /app/views/api/v1/searches/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | attribute :issues_total 2 | attribute :trackers_total -------------------------------------------------------------------------------- /app/views/api/v1/searches/partials/issues.rabl: -------------------------------------------------------------------------------- 1 | child :issues => :issues do 2 | extends "api/v1/issues/partials/base" 3 | 4 | child :tracker => :tracker do 5 | extends "api/v1/trackers/partials/base" 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /app/views/api/v1/searches/partials/params.rabl: -------------------------------------------------------------------------------- 1 | node(:params) { root_object.params } -------------------------------------------------------------------------------- /app/views/api/v1/searches/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person => :person) { extends "api/v1/people/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/searches/partials/trackers.rabl: -------------------------------------------------------------------------------- 1 | child :trackers => :trackers do 2 | extends "api/v1/trackers/partials/search" 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v1/searches/show.rabl: -------------------------------------------------------------------------------- 1 | object @results 2 | 3 | extends "api/v1/searches/partials/extended" 4 | extends "api/v1/searches/partials/issues" 5 | extends "api/v1/searches/partials/trackers" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/searches/typeahead.rabl: -------------------------------------------------------------------------------- 1 | collection @trackers 2 | 3 | attribute :id 4 | attribute :name 5 | attribute :image_url -------------------------------------------------------------------------------- /app/views/api/v1/shopping_cart/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :created_at 3 | attribute :updated_at 4 | attribute :item_total => :total -------------------------------------------------------------------------------- /app/views/api/v1/shopping_cart/partials/items.rabl: -------------------------------------------------------------------------------- 1 | node(:items) do 2 | @person.shopping_cart.load_items.map do |item| 3 | partial "shopping_cart/partials/items/#{item.class.name.underscore.singularize}", object: item 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/shopping_cart/partials/items/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :amount 2 | 3 | node(:type) { root_object.class.name } 4 | node(:index) { root_object.shopping_cart_data.index } 5 | node(:added_at) { root_object.shopping_cart_data.added_at } 6 | node(:updated_at) { root_object.shopping_cart_data.updated_at } -------------------------------------------------------------------------------- /app/views/api/v1/shopping_cart/partials/items/bounty.rabl: -------------------------------------------------------------------------------- 1 | attribute :anonymous 2 | 3 | extends "api/v1/shopping_cart/partials/items/base" 4 | extends "api/v1/bounties/partials/owner" 5 | extends "api/v1/bounties/partials/issue" -------------------------------------------------------------------------------- /app/views/api/v1/shopping_cart/partials/items/pledge.rabl: -------------------------------------------------------------------------------- 1 | attribute :anonymous 2 | 3 | extends "api/v1/shopping_cart/partials/items/base" 4 | extends "api/v1/pledges/partials/owner" 5 | extends "api/v1/pledges/partials/fundraiser" 6 | extends "api/v1/pledges/partials/reward" -------------------------------------------------------------------------------- /app/views/api/v1/shopping_cart/partials/items/team_payin.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/shopping_cart/partials/items/base" 2 | extends "api/v1/team_payins/partials/team" -------------------------------------------------------------------------------- /app/views/api/v1/shopping_cart/show.rabl: -------------------------------------------------------------------------------- 1 | object @person.shopping_cart 2 | 3 | extends "api/v1/shopping_cart/partials/base" 4 | extends "api/v1/shopping_cart/partials/items" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/solutions/index.rabl: -------------------------------------------------------------------------------- 1 | collection @issue_solutions 2 | 3 | extends "api/v1/solutions/partials/base" 4 | extends "api/v1/solutions/partials/solution_events" 5 | extends "api/v1/solutions/partials/person" -------------------------------------------------------------------------------- /app/views/api/v1/solutions/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :url 3 | attribute :note 4 | attribute :completion_date 5 | attribute :status 6 | attribute :created_at 7 | attribute :updated_at 8 | -------------------------------------------------------------------------------- /app/views/api/v1/solutions/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) do 2 | attribute :id 3 | attribute :to_param => :slug 4 | attribute :display_name 5 | attribute :image_url 6 | end -------------------------------------------------------------------------------- /app/views/api/v1/solutions/partials/solution_events.rabl: -------------------------------------------------------------------------------- 1 | child(:solution_events => :solution_events) do 2 | attribute :id 3 | attribute :type 4 | attribute :created_at 5 | end -------------------------------------------------------------------------------- /app/views/api/v1/solutions/show.rabl: -------------------------------------------------------------------------------- 1 | object @solution 2 | 3 | extends "api/v1/solutions/partials/base" 4 | extends "api/v1/solutions/partials/solution_events" 5 | extends "api/v1/solutions/partials/person" -------------------------------------------------------------------------------- /app/views/api/v1/splits/index.rabl: -------------------------------------------------------------------------------- 1 | collection @splits 2 | 3 | extends "api/v1/splits/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/splits/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attributes :id, :amount, :created_at, :updated_at, :account_id, :item_id, :item_type -------------------------------------------------------------------------------- /app/views/api/v1/splits/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | node(:account) { |split| partial "api/v1/accounts/partials/base", object: split.account } 2 | -------------------------------------------------------------------------------- /app/views/api/v1/splits/partials/transaction.rabl: -------------------------------------------------------------------------------- 1 | child(:txn => :transaction) do 2 | extends "api/v1/transactions/partials/base" 3 | extends "api/v0/transactions/partials/admin" 4 | end 5 | -------------------------------------------------------------------------------- /app/views/api/v1/splits/show.rabl: -------------------------------------------------------------------------------- 1 | object @split 2 | 3 | extends "api/v1/splits/partials/base" 4 | extends "api/v1/splits/partials/extended" -------------------------------------------------------------------------------- /app/views/api/v1/team_invites/create.rabl: -------------------------------------------------------------------------------- 1 | object @invite 2 | 3 | extends "api/v1/team_invites/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/team_invites/index.rabl: -------------------------------------------------------------------------------- 1 | collection @invites 2 | 3 | extends "api/v1/team_invites/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/team_invites/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :created_at 3 | attribute :email 4 | attribute :token 5 | attribute :admin 6 | attribute :developer 7 | attribute :public -------------------------------------------------------------------------------- /app/views/api/v1/team_payins/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :created_at 4 | attribute :updated_at 5 | attribute :refunded_at 6 | -------------------------------------------------------------------------------- /app/views/api/v1/team_payins/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { 2 | extends "api/v1/people/partials/base" 3 | } -------------------------------------------------------------------------------- /app/views/api/v1/team_payins/partials/team.rabl: -------------------------------------------------------------------------------- 1 | child(:team => :team) { 2 | extends "api/v1/teams/partials/base" 3 | } -------------------------------------------------------------------------------- /app/views/api/v1/teams/index.rabl: -------------------------------------------------------------------------------- 1 | collection @teams 2 | 3 | extends "api/v1/teams/partials/base" 4 | extends "api/v1/teams/partials/account" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/teams/members.rabl: -------------------------------------------------------------------------------- 1 | collection @member_relations 2 | 3 | extends "api/v1/teams/partials/member" -------------------------------------------------------------------------------- /app/views/api/v1/teams/partials/account.rabl: -------------------------------------------------------------------------------- 1 | if can?(:view_team_account, root_object) 2 | attribute :account_balance 3 | end -------------------------------------------------------------------------------- /app/views/api/v1/teams/partials/extended.rabl: -------------------------------------------------------------------------------- 1 | attribute :bio 2 | attribute :homepage_markdown 3 | attribute :new_issue_suggestion_markdown 4 | attribute :bounty_search_markdown 5 | attribute :resources_markdown 6 | -------------------------------------------------------------------------------- /app/views/api/v1/teams/partials/linked_account.rabl: -------------------------------------------------------------------------------- 1 | child(:linked_account => :linked_account) { extends "api/v1/linked_accounts/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/teams/partials/overview.rabl: -------------------------------------------------------------------------------- 1 | node(:open_issues_count) {|team| team.open_issues_count } 2 | node(:open_bounties_amount) { |team| team.open_bounties_amount } 3 | node(:closed_bounties_amount) { |team| team.closed_bounties_amount } 4 | -------------------------------------------------------------------------------- /app/views/api/v1/teams/partials/trackers.rabl: -------------------------------------------------------------------------------- 1 | child(:prioritized_trackers => :trackers) do 2 | extends "api/v1/trackers/partials/base" 3 | extends "api/v1/trackers/partials/owner" 4 | end 5 | 6 | -------------------------------------------------------------------------------- /app/views/api/v1/teams/show.rabl: -------------------------------------------------------------------------------- 1 | object @team 2 | 3 | extends "api/v1/teams/partials/base" 4 | extends "api/v1/teams/partials/extended" 5 | extends "api/v1/teams/partials/account" 6 | extends "api/v1/teams/partials/trackers" 7 | extends "api/v1/teams/partials/overview" 8 | extends "api/v1/teams/partials/linked_account" 9 | -------------------------------------------------------------------------------- /app/views/api/v1/teams/trackers.rabl: -------------------------------------------------------------------------------- 1 | collection @tracker_relations 2 | 3 | attribute :created_at => :added_at 4 | 5 | glue(:tracker => :tracker) { extends "api/v1/trackers/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/tracker_plugins/index.rabl: -------------------------------------------------------------------------------- 1 | collection @tracker_plugins 2 | 3 | extends "api/v1/tracker_plugins/partials/base" 4 | extends "api/v1/tracker_plugins/partials/tracker" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/tracker_plugins/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :modify_title 3 | attribute :modify_body 4 | attribute :modify_all 5 | attribute :add_label 6 | attribute :label_name 7 | attribute :label_color 8 | attribute :created_at 9 | attribute :updated_at 10 | attribute :locked_at 11 | attribute :last_error 12 | -------------------------------------------------------------------------------- /app/views/api/v1/tracker_plugins/partials/person.rabl: -------------------------------------------------------------------------------- 1 | child(:person) { extends "api/v1/people/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/tracker_plugins/partials/tracker.rabl: -------------------------------------------------------------------------------- 1 | child(:tracker => :tracker) { extends "api/v1/trackers/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/tracker_plugins/show.rabl: -------------------------------------------------------------------------------- 1 | object @tracker_plugin 2 | 3 | extends "api/v1/tracker_plugins/partials/base" 4 | extends "api/v1/tracker_plugins/partials/person" 5 | extends "api/v1/tracker_plugins/partials/tracker" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/tracker_relations/index.rabl: -------------------------------------------------------------------------------- 1 | collection @tracker_relations 2 | 3 | extends "api/v1/tracker_relations/partials/base" 4 | extends "api/v1/tracker_relations/partials/extended" -------------------------------------------------------------------------------- /app/views/api/v1/tracker_relations/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :created_at 3 | attribute :updated_at 4 | -------------------------------------------------------------------------------- /app/views/api/v1/tracker_relations/partials/extended.rabl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/views/api/v1/tracker_relations/partials/extended.rabl -------------------------------------------------------------------------------- /app/views/api/v1/tracker_relations/partials/linked_account.rabl: -------------------------------------------------------------------------------- 1 | child(:linked_account => :linked_account) { extends "api/v1/linked_accounts/partials/base" } 2 | -------------------------------------------------------------------------------- /app/views/api/v1/tracker_relations/partials/tracker.rabl: -------------------------------------------------------------------------------- 1 | child(:tracker => :tracker) { extends "api/v1/trackers/partials/base" } -------------------------------------------------------------------------------- /app/views/api/v1/tracker_relations/show.rabl: -------------------------------------------------------------------------------- 1 | object @tracker_relation 2 | 3 | extends "api/v1/tracker_relations/partials/base" 4 | extends "api/v1/tracker_relations/partials/extended" 5 | extends "api/v1/tracker_relations/partials/tracker" 6 | extends "api/v1/tracker_relations/partials/linked_account" -------------------------------------------------------------------------------- /app/views/api/v1/trackers/cards.rabl: -------------------------------------------------------------------------------- 1 | object false 2 | 3 | child(@featured_trackers => :featured_trackers) { extends "api/v1/trackers/partials/base" } 4 | child(@all_trackers => :all_trackers) { extends "api/v1/trackers/partials/base" } 5 | -------------------------------------------------------------------------------- /app/views/api/v1/trackers/followed.rabl: -------------------------------------------------------------------------------- 1 | collection @trackers 2 | 3 | extends "api/v1/trackers/partials/base" -------------------------------------------------------------------------------- /app/views/api/v1/trackers/index.rabl: -------------------------------------------------------------------------------- 1 | collection @trackers 2 | 3 | extends "api/v1/trackers/partials/base" 4 | extends "api/v1/trackers/partials/extended" 5 | -------------------------------------------------------------------------------- /app/views/api/v1/trackers/partials/languages.rabl: -------------------------------------------------------------------------------- 1 | child(:languages, if: lambda { |i| [Github::Repository].include?(i.class) }) do 2 | attributes :id, :name, :bytes, :search_weight 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v1/trackers/partials/owner.rabl: -------------------------------------------------------------------------------- 1 | child(:team) do 2 | extends "api/v1/owners/partials/base" 3 | end 4 | -------------------------------------------------------------------------------- /app/views/api/v1/trackers/partials/plugin.rabl: -------------------------------------------------------------------------------- 1 | node(:tracker_plugin) do |tracker| 2 | if tracker.plugin && tracker.plugin.person == @person 3 | partial "api/v1/tracker_plugins/partials/base", object: tracker.plugin 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/views/api/v1/trackers/show.rabl: -------------------------------------------------------------------------------- 1 | object @tracker 2 | 3 | extends "api/v1/trackers/partials/base" 4 | extends "api/v1/trackers/partials/extended" 5 | extends "api/v1/trackers/partials/languages" 6 | -------------------------------------------------------------------------------- /app/views/api/v1/trackers/top_backers.rabl: -------------------------------------------------------------------------------- 1 | object false 2 | 3 | child(@top_backers => :top_backers) do 4 | node(:total_backed) do |owner| 5 | @top_backers_map.fetch(owner, 0) 6 | end 7 | extends "api/v1/people/partials/base" 8 | end 9 | -------------------------------------------------------------------------------- /app/views/api/v1/transactions/index.rabl: -------------------------------------------------------------------------------- 1 | collection @transactions 2 | 3 | extends "api/v1/transactions/partials/base" 4 | extends "api/v1/transactions/partials/splits" 5 | extends "api/v1/transactions/partials/checkout_method" -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :type 3 | attribute :description 4 | attribute :type 5 | attribute :created_at 6 | attribute :updated_at 7 | attribute :gross 8 | attribute :fee 9 | attribute :processing_fee 10 | attribute :liability 11 | attribute :shopping_cart_id 12 | 13 | # attribute :items 14 | -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/checkout_method.rabl: -------------------------------------------------------------------------------- 1 | child(:checkout_method => :checkout_method) do 2 | attribute :id 3 | attribute :display_name 4 | node(:type) { root_object.class.name } 5 | child({:owner => :owner}, { unless: lambda { |r| root_object.class.name == 'Account::PaymentMethod' }} ) do 6 | extends "api/v1/owners/partials/base" 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/items.rabl: -------------------------------------------------------------------------------- 1 | node(:items) do |transaction| 2 | transaction.items.map do |item| 3 | partial "api/v1/transactions/partials/items/#{item.class.name.underscore.singularize}", object: item 4 | end 5 | end -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/items/base.rabl: -------------------------------------------------------------------------------- 1 | node(:type) { root_object.class.name } 2 | child(:owner => :owner) { extends "api/v1/owners/partials/base" } 3 | -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/items/bounty.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/transactions/partials/items/base" 2 | extends "api/v1/bounties/partials/base" 3 | extends "api/v1/bounties/partials/options" 4 | 5 | child(:issue => :issue) do 6 | extends "api/v1/issues/partials/base" 7 | extends "api/v1/issues/partials/tracker" 8 | end 9 | -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/items/pledge.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/transactions/partials/items/base" 2 | extends "api/v1/pledges/partials/base" 3 | extends "api/v1/pledges/partials/reward" 4 | 5 | child(:fundraiser) do 6 | extends "api/v1/fundraisers/partials/base" 7 | end 8 | -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/items/proposal.rabl: -------------------------------------------------------------------------------- 1 | node(:type) { root_object.class.name } 2 | extends "api/v1/proposals/partials/base" 3 | 4 | child(:issue => :issue) do 5 | extends "api/v1/issues/partials/base" 6 | extends "api/v1/issues/partials/tracker" 7 | end 8 | 9 | child(:person => :person) do 10 | extends "api/v1/people/partials/base" 11 | end -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/items/support_level_payment.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/transactions/partials/items/base" 2 | extends "api/v1/team_payins/partials/base" 3 | extends "api/v1/team_payins/partials/team" 4 | 5 | attribute :period_starts_at 6 | attribute :period_ends_at 7 | -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/items/team_payin.rabl: -------------------------------------------------------------------------------- 1 | extends "api/v1/transactions/partials/items/base" 2 | extends "api/v1/team_payins/partials/base" 3 | extends "api/v1/team_payins/partials/team" -------------------------------------------------------------------------------- /app/views/api/v1/transactions/partials/splits.rabl: -------------------------------------------------------------------------------- 1 | child(:splits) do 2 | extends "api/v1/splits/partials/base" 3 | end -------------------------------------------------------------------------------- /app/views/api/v1/transactions/show.rabl: -------------------------------------------------------------------------------- 1 | object @transaction 2 | 3 | extends "api/v1/transactions/partials/base" 4 | extends "api/v1/transactions/partials/items" 5 | extends "api/v1/transactions/partials/checkout_method" -------------------------------------------------------------------------------- /app/views/api/v2/_image_urls.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.image_url_small item.image_url 2 | json.image_url_medium item.medium_image_url 3 | json.image_url_large item.large_image_url 4 | -------------------------------------------------------------------------------- /app/views/api/v2/account/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/addresses/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | if item 2 | json.(item, *%i( 3 | id 4 | name 5 | address1 6 | address2 7 | address3 8 | city 9 | state 10 | postal_code 11 | country 12 | )) 13 | else 14 | json.id 0 15 | end 16 | -------------------------------------------------------------------------------- /app/views/api/v2/addresses/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/addresses/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/backers/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'api/v2/owners/base', item: item[:model] 2 | json.amount item[:amount] 3 | json.last_activity_at item[:last_activity_at] 4 | -------------------------------------------------------------------------------- /app/views/api/v2/backers/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/bounties/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/bounties/summary.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'summary', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/bounty_claim_responses/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, 2 | :id, 3 | :value, 4 | :description, 5 | :created_at, 6 | :updated_at) 7 | 8 | if @include_bounty_claim_response_owner 9 | json.owner do 10 | json.partial! 'api/v2/owners/base', item: item.person 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /app/views/api/v2/bounty_claims/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/bounty_claims/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/cart/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', cart: @cart -------------------------------------------------------------------------------- /app/views/api/v2/cart_items/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/cash_outs/csv.json.rb: -------------------------------------------------------------------------------- 1 | @collection.map do |cash_out| 2 | cash_out 3 | end.to_json -------------------------------------------------------------------------------- /app/views/api/v2/cash_outs/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'api/v2/cash_outs/base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/cash_outs/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'api/v2/cash_outs/base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/comments/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, 2 | :id, 3 | :created_at) 4 | 5 | if @include_body_html 6 | json.body_html item.sanitized_body_html 7 | end 8 | 9 | if @include_author 10 | json.author do 11 | json.partial! 'api/v2/linked_accounts/base', item: item.author_or_dummy_author 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /app/views/api/v2/comments/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/comments/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | 3 | if @include_issue 4 | json.issue do 5 | json.partial! 'api/v2/issues/base', item: @item.issue 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /app/views/api/v2/developer_goals/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, 2 | :id, 3 | :created_at, 4 | :updated_at, 5 | :amount 6 | ) 7 | 8 | if @include_developer_goal_owner 9 | json.owner do 10 | json.partial! 'api/v2/owners/base', item: item.person 11 | end 12 | end -------------------------------------------------------------------------------- /app/views/api/v2/developer_goals/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/developer_goals/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/events/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, *%i( 2 | id 3 | slug 4 | title 5 | subtitle 6 | url 7 | )) 8 | 9 | if @include_issues 10 | json.issues do 11 | json.array! item.issues, partial: 'api/v2/issues/base', as: :item, locals: { :include_tracker => true } 12 | end 13 | else 14 | json.(item, :issue_ids) 15 | end 16 | -------------------------------------------------------------------------------- /app/views/api/v2/events/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, template: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/events/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/fundraiser_rewards/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, 2 | :id, 3 | :amount, 4 | :description, 5 | :claimed, 6 | :limited_to, 7 | :sold_out, 8 | :created_at, 9 | :fulfillment_details) -------------------------------------------------------------------------------- /app/views/api/v2/fundraiser_rewards/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/fundraiser_rewards/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/fundraisers/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/issue_addresses/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, 2 | :id, 3 | :public_address, 4 | :balance 5 | ) -------------------------------------------------------------------------------- /app/views/api/v2/issue_suggestions/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/issues/create.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/issues/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | 2 | json.issues do 3 | json.array! @collection, partial: 'base', as: :item 4 | end 5 | 6 | json.total_count @total_count -------------------------------------------------------------------------------- /app/views/api/v2/issues/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/linked_accounts/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.id item.person_id || item.id 2 | json.slug item.person.try(:to_param) || item.to_param 3 | json.display_name item.name 4 | 5 | json.type item.person_id ? Person.name : item.class.name 6 | 7 | json.partial! 'api/v2/image_urls', item: item -------------------------------------------------------------------------------- /app/views/api/v2/pact_applications/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, 2 | :id, 3 | :person, 4 | :pact, 5 | :note, 6 | :completion_date, 7 | :status, 8 | :created_at, 9 | :updated_at 10 | ) 11 | -------------------------------------------------------------------------------- /app/views/api/v2/pact_applications/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.pact_applications do 2 | json.array! @collection, partial: 'base', as: :item 3 | end 4 | 5 | json.total_count @total_count 6 | -------------------------------------------------------------------------------- /app/views/api/v2/pact_applications/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/pacts/index.html.erb: -------------------------------------------------------------------------------- 1 |

    Pacts#index

    2 |

    Find me in app/views/pacts/index.html.erb

    3 | -------------------------------------------------------------------------------- /app/views/api/v2/pacts/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.pacts do 2 | json.array! @collection, partial: 'base', as: :item 3 | end 4 | 5 | json.total_count @total_count -------------------------------------------------------------------------------- /app/views/api/v2/pacts/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/payment_methods/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.id item.id 2 | json.description item.description 3 | -------------------------------------------------------------------------------- /app/views/api/v2/payment_methods/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/people/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/people/me.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | 3 | # this view should only be used by /people/me which is for yourself 4 | json.email @item.email 5 | -------------------------------------------------------------------------------- /app/views/api/v2/people/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/people_trackers/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'api/v2/trackers/base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/pledges/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/plugins/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/proposals/create.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/proposals/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/proposals/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/redirect.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.redirect_to @item[:redirect_to] 2 | -------------------------------------------------------------------------------- /app/views/api/v2/request_for_proposals/create.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/request_for_proposals/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/request_for_proposals/update.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/solutions/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/support_level_payments/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.id item.id 2 | json.amount item.amount 3 | json.period_starts_at item.period_starts_at 4 | json.period_ends_at item.period_ends_at 5 | json.created_at item.created_at 6 | json.refunded_at item.refunded_at -------------------------------------------------------------------------------- /app/views/api/v2/support_levels/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/support_levels/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | 3 | json.support_level_payments do 4 | json.array! @item.payments, partial: 'api/v2/support_level_payments/base', as: :item 5 | end -------------------------------------------------------------------------------- /app/views/api/v2/supporters/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'api/v2/owners/base', item: item.owner 2 | 3 | json.monthly_amount item.monthly_amount 4 | json.alltime_amount item.alltime_amount 5 | json.created_at item.created_at 6 | -------------------------------------------------------------------------------- /app/views/api/v2/supporters/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/tags/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/team_updates/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/team_updates/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item -------------------------------------------------------------------------------- /app/views/api/v2/teams/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/teams/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/trackers/_extended.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.synced_at item.synced_at 2 | json.watchers item.watchers if item.is_a?(Github::Repository) 3 | json.forks item.forks if item.is_a?(Github::Repository) 4 | json.description item.description -------------------------------------------------------------------------------- /app/views/api/v2/trackers/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'base', as: :item 2 | -------------------------------------------------------------------------------- /app/views/api/v2/trackers/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @item 2 | json.partial! 'extended', item: @item 3 | 4 | -------------------------------------------------------------------------------- /app/views/api/v2/wallets/_base.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.(item, *%i( 2 | id 3 | person_id 4 | eth_addr 5 | created_at 6 | verified 7 | primary 8 | )) 9 | 10 | json.type item.class.name 11 | 12 | -------------------------------------------------------------------------------- /app/views/api/v2/wallets/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @collection, partial: 'api/v2/wallets/base', as: :item -------------------------------------------------------------------------------- /app/views/api/v2/wallets/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! 'base', item: @wallet 2 | -------------------------------------------------------------------------------- /app/views/bounty_source/api_docs.html.erb: -------------------------------------------------------------------------------- 1 | API docs are coming soon! -------------------------------------------------------------------------------- /app/views/layouts/_thank_you.html.erb: -------------------------------------------------------------------------------- 1 |
    2 |
    Thanks,
    3 |
    The Bountysource Team
    4 |
    5 | -------------------------------------------------------------------------------- /app/views/layouts/_thank_you.text.erb: -------------------------------------------------------------------------------- 1 | Thanks, 2 | The Bountysource Team -------------------------------------------------------------------------------- /app/views/layouts/email.html.erb: -------------------------------------------------------------------------------- 1 |
    2 | <%=yield%> 3 |
    4 | <%= render "layouts/thank_you" %> 5 |
    6 | 7 |
    8 |
    ----------------------
    9 |
    10 | 11 | <%= render "layouts/footer" %> -------------------------------------------------------------------------------- /app/views/layouts/email.text.erb: -------------------------------------------------------------------------------- 1 | <%= yield :pre_message %> 2 | 3 | Bountysource 4 | ========================================================================= 5 | 6 | <%= yield %> 7 | 8 | <%= render "layouts/thank_you" %> 9 | 10 | ------------------------------------------------------------------------- 11 | 12 | <%= render "layouts/footer" %> -------------------------------------------------------------------------------- /app/views/mailer/bounty_claim_contested_developer_notice.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | Another developer has submitted a claim for "<%= @bounty_claim.issue.title %>". 4 | 5 | The bounty will be paid out to the developer whose claim is accepted by all of the backers. If you have any questions, please email us at support@bountysource.com. -------------------------------------------------------------------------------- /app/views/mailer/bounty_claim_rejected_developer_notice.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | Your claim on "<%= @bounty_claim.issue.title %>" has been rejected. 4 | 5 | <%= @response.person.display_name %> rejected the claim with the following reason: <%= @response.description %> 6 | 7 | If you have any questions, please email us at support@bountysource.com. -------------------------------------------------------------------------------- /app/views/mailer/bounty_claim_rejected_rejecter_notice.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | You have successfully rejected a claim by <%= @bounty_claim.person.display_name %> for "<%= @bounty_claim.issue.title %>". The bounty has not been paid out. -------------------------------------------------------------------------------- /app/views/mailer/bounty_refunded.html.erb: -------------------------------------------------------------------------------- 1 |

    2 | Hi <%= @person.first_name %>, 3 |

    4 | 5 |

    6 | The $<%= @bounty.amount.round %> bounty for "><%= @bounty.issue.title %> that you placed has been refunded to your Bountysource account. 7 |

    -------------------------------------------------------------------------------- /app/views/mailer/bounty_refunded.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | The $<%= @bounty.amount.round %> bounty for <%= @bounty.issue.title %> that you placed has been refunded to your Bountysource account. 4 | 5 | You can view the issue here: <%= "#{Api::Application.config.www_url}issues/#{@bounty.issue.to_param}" %> -------------------------------------------------------------------------------- /app/views/mailer/bounty_refunded_for_deleted_issue.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | The $<%= @bounty.amount.round %> bounty for <%= @bounty.issue.title %> that you placed has been refunded to your Bountysource account because the issue has been deleted. 4 | 5 | You can view the issue here: <%= "#{Api::Application.config.www_url}issues/#{@bounty.issue.to_param}" %> -------------------------------------------------------------------------------- /app/views/mailer/cash_out_payment_sent.md.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.display_name %>, 2 | 3 | Your cash out request has just been processed and <%=number_to_currency(@cash_out.final_payment_amount)%> was sent via <%=@cash_out.class.name.split('::').last%>. If you have any questions or concerns you may reply to this email. 4 | -------------------------------------------------------------------------------- /app/views/mailer/claim_team_rejected.md.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.display_name %>, 2 | 3 | Your claim for the <%= @team.name %> team on Bountysource has been rejected for the following reason: 4 | 5 | <%=@team_claim.rejected_notes%> 6 | 7 | If you have any questions you may reply to this email or join us in #Bountysource on irc.freenode.net. 8 | -------------------------------------------------------------------------------- /app/views/mailer/crypto_pay_out_approved.html.erb: -------------------------------------------------------------------------------- 1 |

    Hi, an admin has approved a crypto bounty payout to your ethereum address <%= @person.primary_wallet.eth_addr %>

    2 | 3 |

    You can navigate to <%= Api::Application.config.www_url %>activity/crypto_pay_outs to monitor the transactions.

    -------------------------------------------------------------------------------- /app/views/mailer/crypto_pay_out_approved.text.erb: -------------------------------------------------------------------------------- 1 | Hi, an admin has approved a crypto bounty payout to your ethereum address <%= @person.primary_wallet.eth_addr %> 2 | 3 | You can navigate to <%= Api::Application.config.www_url %>activity/crypto_pay_outs to monitor the transactions. -------------------------------------------------------------------------------- /app/views/mailer/developer_goal_created.html.erb: -------------------------------------------------------------------------------- 1 |

    Hi <%= @person.display_name %>,

    2 | 3 |

    You just placed a funding goal on <%= @developer_goal.issue.title %>

    4 | 5 |

    Spread the word to help this issue reach your goal!

    6 | -------------------------------------------------------------------------------- /app/views/mailer/developer_goal_created.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.display_name %>, 2 | 3 | You just placed a funding goal on <%= @developer_goal.issue.title %>: <%= @developer_goal.issue.frontend_url %>. 4 | 5 | Spread the word to help this issue reach your goal! 6 | -------------------------------------------------------------------------------- /app/views/mailer/email_verification.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | Please click the link below to verify your account. 4 | 5 | <%= Api::Application.config.www_url %>#verify?<%= { email: @person.email, code: @token }.to_param %> 6 | 7 | If you did not sign up using this email, please contact us at support@bountysource.com. -------------------------------------------------------------------------------- /app/views/mailer/extension_feedback.html.erb: -------------------------------------------------------------------------------- 1 | From:
    2 | ID: <%= @person ? @person.id : 'anon' %> EMAIL: <%=@person ? @person.email : @email%> 3 |
    4 |
    5 | Message:
    6 | <%= @message %> 7 | -------------------------------------------------------------------------------- /app/views/mailer/extension_feedback.text.erb: -------------------------------------------------------------------------------- 1 | From: 2 | ID: <%= @person ? @person.id : 'anon' %> EMAIL: <%=@person ? @person.email : @email%> 3 | 4 | Message: 5 | <%= @message %> 6 | -------------------------------------------------------------------------------- /app/views/mailer/fundraiser_backed.html.erb: -------------------------------------------------------------------------------- 1 |

    Dear <%= @person.display_name %>,

    2 | 3 |

    <%= @pledge.owner_display_name capitalize: true %> just made a $<%= @pledge.amount.round %> pledge to <%= @pledge.fundraiser.title %>

    4 | 5 |

    Want to check in on your fundraiser? View all of the pledges.

    -------------------------------------------------------------------------------- /app/views/mailer/fundraiser_backed.text.erb: -------------------------------------------------------------------------------- 1 | Dear <%= @person.display_name %>, 2 | 3 | <%= @pledge.owner_display_name capitalize: true %> just made a $<%= @pledge.amount.round %> pledge to <%= @pledge.fundraiser.title %> 4 | 5 | Want to check in on your fundraiser? View all of the pledges: <%= @pledge.fundraiser.frontend_info_url %> 6 | -------------------------------------------------------------------------------- /app/views/mailer/fundraiser_featured_notification.html.erb: -------------------------------------------------------------------------------- 1 |

    Dear <%= @person.display_name %>,

    2 | 3 |

    Your fundraiser, <%= @fundraiser.title %>, is now featured on our home page. Cheers!

    4 | -------------------------------------------------------------------------------- /app/views/mailer/fundraiser_featured_notification.text.erb: -------------------------------------------------------------------------------- 1 | Dear <%= @person.display_name %>, 2 | 3 | Your fundraiser, <%= @fundraiser.title %>, is now featured on our home page. Cheers! 4 | 5 | <%= Api::Application.config.www_url %> -------------------------------------------------------------------------------- /app/views/mailer/fundraiser_pledge_made.html.erb: -------------------------------------------------------------------------------- 1 |

    2 | Hi <%= @person.first_name %>, 3 |

    4 | 5 |

    6 | You pledged <%= number_to_currency @pledge.amount, unit: '$' %> to <%= @pledge.fundraiser.title %>. Thank you for your support, spread the word! 7 |

    -------------------------------------------------------------------------------- /app/views/mailer/fundraiser_pledge_made.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | You pledged <%= number_to_currency @amount, unit: '$' %> to <%= @pledge.fundraiser.title %>. Thank you for your support, spread the word! -------------------------------------------------------------------------------- /app/views/mailer/invited_to_team.text.erb: -------------------------------------------------------------------------------- 1 | You have been invited to join the team <%= @invite.team.name %>. 2 | 3 | To accept the invitation, visit the following link: <%= @invite.url %> 4 | 5 | If you do not yet have a Bountysource account, you will need to create one before being added to the team. -------------------------------------------------------------------------------- /app/views/mailer/notify_backers_of_fundraiser_half_completion.html.erb: -------------------------------------------------------------------------------- 1 |

    Dear <%= @person.display_name %>,

    2 | 3 |

    A fundraiser you backed, <%= @fundraiser.title %>, is now 50% funded.

    4 | 5 |

    Help the fundraiser get to 100% by <%= @fundraiser.ends_at.strftime("%B %d, %Y") %>, keep spreading the word!

    6 | -------------------------------------------------------------------------------- /app/views/mailer/notify_backers_of_fundraiser_half_completion.text.erb: -------------------------------------------------------------------------------- 1 | Dear <%= @person.display_name %>, 2 | 3 | A fundraiser you backed, <%= @fundraiser.title %>, is now 50% funded. 4 | 5 | Help the fundraiser get to 100% by <%= @fundraiser.ends_at.strftime("%B %d, %Y") %>, keep spreading the word! 6 | 7 | <%= @fundraiser.frontend_url %> 8 | -------------------------------------------------------------------------------- /app/views/mailer/notify_creator_of_fundraiser_breached.html.erb: -------------------------------------------------------------------------------- 1 |

    Dear <%= @person.display_name %>,

    2 | 3 |

    Your fundraiser, <%= @fundraiser.title %>, has reached its funding goal!

    4 | -------------------------------------------------------------------------------- /app/views/mailer/notify_creator_of_fundraiser_breached.text.erb: -------------------------------------------------------------------------------- 1 | Dear <%= @person.display_name %>, 2 | 3 | Your fundraiser, <%= @fundraiser.title %>, has reached its funding goal! 4 | 5 | <%= @fundraiser.frontend_url %> -------------------------------------------------------------------------------- /app/views/mailer/notify_creator_of_fundraiser_half_completion.html.erb: -------------------------------------------------------------------------------- 1 |

    Dear <%= @person.display_name %>,

    2 | 3 |

    Your fundraiser, <%= @fundraiser.title %>, has reached 50% of its funding goal. Keep spreading the word to get it to 100%!

    -------------------------------------------------------------------------------- /app/views/mailer/notify_creator_of_fundraiser_half_completion.text.erb: -------------------------------------------------------------------------------- 1 | Dear <%= @person.display_name %>, 2 | 3 | Your fundraiser, <%= @fundraiser.title %>, has reached 50% of its funding goal. Keep spreading the word to get it to 100%! 4 | 5 | <%= @fundraiser.frontend_url %> 6 | -------------------------------------------------------------------------------- /app/views/mailer/notify_stakeholders_of_developer_work_stopped.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.display_name %>, 2 | 3 | <%= @solution.person.display_name %> has stopped working on their solution to "<%= @solution.issue.title %>". 4 | 5 | You could try increasing the bounty to entice more developers! <%= "#{Api::Application.config.www_url}issues/#{@solution.issue.to_param}/bounty" %> -------------------------------------------------------------------------------- /app/views/mailer/proposal_appointed_to_team.text.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/views/mailer/proposal_appointed_to_team.text.erb -------------------------------------------------------------------------------- /app/views/mailer/proposal_rejected_to_team.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/views/mailer/proposal_rejected_to_team.html.erb -------------------------------------------------------------------------------- /app/views/mailer/proposal_rejected_to_team.text.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/app/views/mailer/proposal_rejected_to_team.text.erb -------------------------------------------------------------------------------- /app/views/mailer/team_member_added.html.erb: -------------------------------------------------------------------------------- 1 |

    Hi <%= @person.display_name %>,

    2 | 3 |

    4 | "><%= @invitee.display_name %> was just added to the "><%= @team.name %> team on Bountysource. 5 |

    -------------------------------------------------------------------------------- /app/views/mailer/team_member_added.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.display_name %>, 2 | 3 | <%= @invitee.display_name %> was just added to the <%= @team.name %> team on Bountysource. 4 | 5 | You can view the team members here: <%= "#{Api::Application.config.www_url}teams/#{@team.to_param}/members" %> 6 | -------------------------------------------------------------------------------- /app/views/mailer/team_payin_refunded.md.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | The $<%= @team_payin.amount.round %> contribution you made to <%= @team_payin.team.name %> has been refunded to your Bountysource account. 4 | -------------------------------------------------------------------------------- /app/views/mailer/team_update_created.md.erb: -------------------------------------------------------------------------------- 1 | <%= @update.body %> 2 | -------------------------------------------------------------------------------- /app/views/mailer/unsubscribed.html.erb: -------------------------------------------------------------------------------- 1 |

    Hi <%= @person.first_name %>,

    2 | 3 |

    You have been unsubscribed from <%=@email_type%> emails.

    4 | -------------------------------------------------------------------------------- /app/views/mailer/unsubscribed.text.erb: -------------------------------------------------------------------------------- 1 | Hi <%= @person.first_name %>, 2 | 3 | You have been unsubscribed from <%=@email_type%> emails. 4 | -------------------------------------------------------------------------------- /app/views/proposals/partials/base.rabl: -------------------------------------------------------------------------------- 1 | attribute :id 2 | attribute :amount 3 | attribute :estimated_work 4 | attribute :completed_by 5 | attribute :abstract 6 | attribute :bio 7 | attribute :state 8 | attribute :created_at 9 | attribute :updated_at 10 | -------------------------------------------------------------------------------- /app/views/transactions/partials/items/proposal.rabl: -------------------------------------------------------------------------------- 1 | node(:type) { root_object.class.name } 2 | extends "proposals/partials/base" 3 | 4 | child(:issue => :issue) do 5 | extends "issues/partials/base" 6 | extends "issues/partials/tracker" 7 | end 8 | 9 | child(:person => :person) do 10 | extends "people/partials/base" 11 | end 12 | -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../../config/application', __FILE__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | 3 | # Set up gems listed in the Gemfile. 4 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 5 | 6 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) 7 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the rails application 2 | require File.expand_path('../application', __FILE__) 3 | require 'display_money' 4 | #require 'heroku_timeout' 5 | 6 | # Initialize the rails application 7 | Api::Application.initialize! 8 | -------------------------------------------------------------------------------- /config/initializers/active_record_marshaling.rb: -------------------------------------------------------------------------------- 1 | ApplicationRecord.class_eval do 2 | def marshal_dump 3 | raise "Can't marshal a new_record" if new_record? 4 | id 5 | end 6 | 7 | def marshal_load(id) 8 | init_with('attributes' => self.class.find(id).attributes) 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /config/initializers/active_record_merge.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/config/initializers/active_record_merge.rb -------------------------------------------------------------------------------- /config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | Rails.application.config.assets.precompile += %w( app.js bountysource.css vendors.js zenmix.js admin.js admin.css admin_vendors.js salt.js salt.css ) 2 | Rails.application.config.assets.paths << Rails.root.join('vendor', 'assets', 'components') 3 | Rails.application.config.angular_templates.ignore_prefix = 'bs_templates/' 4 | -------------------------------------------------------------------------------- /config/initializers/big_decimal_json_parse_fix.rb: -------------------------------------------------------------------------------- 1 | # require 'bigdecimal' 2 | # 3 | # class BigDecimal 4 | # def as_json(options = nil) #:nodoc: 5 | # if finite? 6 | # self 7 | # else 8 | # NilClass::AS_JSON 9 | # end 10 | # end 11 | # end 12 | -------------------------------------------------------------------------------- /config/initializers/bitcoin_money.rb: -------------------------------------------------------------------------------- 1 | Money::Currency.register( 2 | :priority => 1, 3 | :iso_code => "BTC", 4 | :name => "Bitcoin", 5 | :symbol => "BTC", 6 | :subunit => "Satoshi", 7 | :subunit_to_unit => 100000000, 8 | :separator => ".", 9 | :delimiter => "," 10 | ) 11 | -------------------------------------------------------------------------------- /config/initializers/debugger.rb: -------------------------------------------------------------------------------- 1 | if Rails.env.development? && ENV['DEBUGGER'] 2 | begin 3 | Debugger.start_remote 4 | Debugger.settings[:autoeval] = true 5 | puts "=> Debugger enabled. Command to connect: rdebug -c" 6 | rescue => e 7 | puts "=> ERROR: Debugger not enabled (#{e})" 8 | end 9 | end 10 | 11 | -------------------------------------------------------------------------------- /config/initializers/delayed_job.rb: -------------------------------------------------------------------------------- 1 | Delayed::Backend::ActiveRecord::Job.logger.level = 1 2 | Delayed::Worker.default_priority = 50 3 | Delayed::Worker.max_attempts = 3 4 | 5 | Delayed::Worker.queue_attributes = { 6 | searchkick: { priority: 100 } 7 | } -------------------------------------------------------------------------------- /config/initializers/elasticsearch.rb: -------------------------------------------------------------------------------- 1 | if Rails.env.production? 2 | Searchkick.aws_credentials = { 3 | access_key_id: ENV["AWS_ACCESS_KEY_ID"], 4 | secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"], 5 | region: "us-east-1" 6 | } 7 | end -------------------------------------------------------------------------------- /config/initializers/enumerable_find_value.rb: -------------------------------------------------------------------------------- 1 | module Enumerable 2 | def find_value 3 | each { |i| obj = yield(i); return obj unless obj.nil? } 4 | nil 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | # Mime::Type.register_alias "text/html", :iphone 6 | -------------------------------------------------------------------------------- /config/initializers/new_relic_unicorn.rb: -------------------------------------------------------------------------------- 1 | NewRelic::Agent.after_fork(:force_reconnect => true) if defined? Unicorn 2 | -------------------------------------------------------------------------------- /config/initializers/nokogiri.rb: -------------------------------------------------------------------------------- 1 | #CVE-2015-3227 2 | ActiveSupport::XmlMini.backend = 'Nokogiri' 3 | -------------------------------------------------------------------------------- /config/initializers/payments.rb: -------------------------------------------------------------------------------- 1 | Api::Application.config.payments = { 2 | bounty_fee: 500, # cents! 3 | } 4 | -------------------------------------------------------------------------------- /config/initializers/ruby_template_handler.rb: -------------------------------------------------------------------------------- 1 | ActionView::Template.register_template_handler(:rb, :source.to_proc) -------------------------------------------------------------------------------- /config/initializers/stripe.rb: -------------------------------------------------------------------------------- 1 | Stripe.api_key = ENV['STRIPE_API_KEY'] 2 | -------------------------------------------------------------------------------- /config/initializers/timeout.rb: -------------------------------------------------------------------------------- 1 | # config/initializers/timeout.rb 2 | #Rack::Timeout.timeout = 10 # seconds 3 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Sample localization file for English. Add more files in this directory for other locales. 2 | # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. 3 | 4 | en: 5 | hello: "Hello world" 6 | -------------------------------------------------------------------------------- /db/migrate/20170220040901_add_quickbooks_columns.rb: -------------------------------------------------------------------------------- 1 | class AddQuickbooksColumns < ActiveRecord::Migration[5.0] 2 | def change 3 | add_column :people, :quickbooks_vendor_id, :integer 4 | add_column :cash_outs, :quickbooks_transaction_id, :integer 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /db/migrate/20171126185423_create_takedowns.rb: -------------------------------------------------------------------------------- 1 | class CreateTakedowns < ActiveRecord::Migration[5.0] 2 | def change 3 | create_table :takedowns do |t| 4 | t.integer :linked_account_id, null: false 5 | t.timestamps 6 | end 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /db/migrate/20171210181208_drop_gittip_ipns.rb: -------------------------------------------------------------------------------- 1 | class DropGittipIpns < ActiveRecord::Migration[5.0] 2 | def change 3 | drop_table :gittip_ipns 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20180302084704_remove_txn_id_non_null_from_payment_notification.rb: -------------------------------------------------------------------------------- 1 | class RemoveTxnIdNonNullFromPaymentNotification < ActiveRecord::Migration[5.0] 2 | def change 3 | change_column_null :payment_notifications, :txn_id, true 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20180314002424_add_is_fraud_to_cash_outs.rb: -------------------------------------------------------------------------------- 1 | class AddIsFraudToCashOuts < ActiveRecord::Migration[5.0] 2 | def change 3 | add_column :cash_outs, :is_fraud, :boolean, null: false, default: false 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20180328112330_remove_linked_account_uid_not_null.rb: -------------------------------------------------------------------------------- 1 | class RemoveLinkedAccountUidNotNull < ActiveRecord::Migration[5.0] 2 | def change 3 | change_column_null :linked_accounts, :uid, true 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20180403074459_add_password_reset_token_to_person.rb: -------------------------------------------------------------------------------- 1 | class AddPasswordResetTokenToPerson < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :people, :reset_digest, :string 4 | add_column :people, :reset_sent_at, :datetime 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /db/migrate/20180424182356_create_wallets.rb: -------------------------------------------------------------------------------- 1 | class CreateWallets < ActiveRecord::Migration[5.1] 2 | def change 3 | create_table :wallets do |t| 4 | t.integer :person_id, null: false 5 | t.string :label 6 | t.string :eth_addr, null: false 7 | 8 | t.timestamps 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /db/migrate/20180426033339_add_verified_to_wallets.rb: -------------------------------------------------------------------------------- 1 | class AddVerifiedToWallets < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :wallets, :verified, :boolean, default: false 4 | add_column :wallets, :primary, :boolean, default: false 5 | add_index :wallets, :person_id 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /db/migrate/20180501124659_add_balance_to_issue_addresses.rb: -------------------------------------------------------------------------------- 1 | class AddBalanceToIssueAddresses < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :issue_addresses, :balance_updated_at, :datetime 4 | add_column :issue_addresses, :balance, :jsonb 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /db/migrate/20180530004731_add_unique_index_to_issue_address_and_bounties.rb: -------------------------------------------------------------------------------- 1 | class AddUniqueIndexToIssueAddressAndBounties < ActiveRecord::Migration[5.1] 2 | def change 3 | remove_index :issue_addresses, :public_address 4 | add_index :issue_addresses, :public_address, unique: true 5 | add_index :crypto_bounties, :transaction_hash, unique: true 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /db/migrate/20180610184815_create_quickbooks_tokens.rb: -------------------------------------------------------------------------------- 1 | class CreateQuickbooksTokens < ActiveRecord::Migration[5.1] 2 | def change 3 | create_table :quickbooks_tokens do |t| 4 | t.string :access_token 5 | t.string :refresh_token 6 | t.datetime :expires_at 7 | 8 | t.timestamps 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /db/migrate/20180613071303_add_remote_id_to_linked_accounts.rb: -------------------------------------------------------------------------------- 1 | class AddRemoteIdToLinkedAccounts < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :linked_accounts, :remote_id, :string 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20180627074014_add_default_to_crypto_bounties.rb: -------------------------------------------------------------------------------- 1 | class AddDefaultToCryptoBounties < ActiveRecord::Migration[5.1] 2 | def change 3 | change_column :crypto_pay_outs, :state, :string, default: 'Pending-Approval' 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20180627074159_create_crypto_pay_out_claim_events.rb: -------------------------------------------------------------------------------- 1 | class CreateCryptoPayOutClaimEvents < ActiveRecord::Migration[5.1] 2 | def change 3 | create_table :crypto_pay_out_claim_events do |t| 4 | t.string :type 5 | t.references :crypto_pay_out 6 | 7 | t.timestamps 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /db/migrate/20180627094310_change_columns_in_crypto_pay_out_txns.rb: -------------------------------------------------------------------------------- 1 | class ChangeColumnsInCryptoPayOutTxns < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :crypto_pay_out_txns, :type, :string 4 | remove_column :crypto_pay_out_txns, :fee_txn, :boolean 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /db/migrate/20180628015138_add_foreign_key_for_crypto_tables.rb: -------------------------------------------------------------------------------- 1 | class AddForeignKeyForCryptoTables < ActiveRecord::Migration[5.1] 2 | def change 3 | add_foreign_key :crypto_pay_out_claim_events, :crypto_pay_outs 4 | add_foreign_key :crypto_pay_out_txns, :crypto_pay_outs 5 | add_foreign_key :crypto_pay_outs, :issues 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /db/migrate/20180717083536_remove_unique_index_for_crypto_pay_out.rb: -------------------------------------------------------------------------------- 1 | class RemoveUniqueIndexForCryptoPayOut < ActiveRecord::Migration[5.1] 2 | def change 3 | remove_index :crypto_pay_outs, :issue_id 4 | add_index :crypto_pay_outs, :issue_id 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /db/migrate/20180719030123_add_reason_to_crypto_pay_out.rb: -------------------------------------------------------------------------------- 1 | class AddReasonToCryptoPayOut < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :crypto_pay_outs, :reason, :string 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20180827073853_add_override_fee_percentage_to_account.rb: -------------------------------------------------------------------------------- 1 | class AddOverrideFeePercentageToAccount < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :accounts, :override_fee_percentage, :integer 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /db/migrate/20210110204412_add_completed_at_to_pacts.rb: -------------------------------------------------------------------------------- 1 | class AddCompletedAtToPacts < ActiveRecord::Migration[5.1] 2 | def change 3 | add_column :pacts, :completed_at, :datetime 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /dump.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/dump.rdb -------------------------------------------------------------------------------- /lib/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/lib/assets/.gitkeep -------------------------------------------------------------------------------- /lib/display_money.rb: -------------------------------------------------------------------------------- 1 | class Money 2 | # utility function to display whole number of currency, e.g. $10 3 | def display_whole_amount 4 | self.symbol + self.to_s.to_i.to_s 5 | end 6 | 7 | # utility function to display "dollars" & "cents", e.g. $10.50 8 | def display_amount 9 | self.symbol + self.to_s 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /lib/heroku_timeout.rb: -------------------------------------------------------------------------------- 1 | # have rack raise an exception if the request goes longer than 20s 2 | Rack::Timeout.timeout = ENV['RACK_TIMEOUT'].to_i if ENV['RACK_TIMEOUT'] 3 | 4 | # set 10 second timeout on postgres queries 5 | if ENV['POSTGRES_TIMEOUT'] 6 | ApplicationRecord.connection.execute("set statement_timeout TO #{ENV['POSTGRES_TIMEOUT'].to_i}s;") 7 | end 8 | -------------------------------------------------------------------------------- /lib/tasks/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/lib/tasks/.gitkeep -------------------------------------------------------------------------------- /lib/tasks/cache.rake: -------------------------------------------------------------------------------- 1 | namespace :cache do 2 | desc "Clears Rails cache" 3 | task :clear => :environment do 4 | Rails.cache.clear 5 | end 6 | end -------------------------------------------------------------------------------- /log/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/log/.gitkeep -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/public/favicon.ico -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org 2 | 3 | User-agent: * 4 | -------------------------------------------------------------------------------- /spec/controllers/admin_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe AdminController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/base_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::BaseController do 4 | it_behaves_like "request tracking" 5 | end 6 | 7 | 8 | -------------------------------------------------------------------------------- /spec/controllers/api/v1/home_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V1::HomeController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/account_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::AccountController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/backers_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::BackersController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/cart_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::CartController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/fundraiser_rewards_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::FundraiserRewardsController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/fundraiser_updates_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::TeamUpdatesController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/fundraisers_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::FundraisersController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/people_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::PeopleController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/people_trackers_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::PeopleTrackersController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/pledges_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::PledgesController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/plugins_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe Api::V2::PluginsController do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /spec/controllers/api/v2/trackers_conrtoller_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/spec/controllers/api/v2/trackers_conrtoller_spec.rb -------------------------------------------------------------------------------- /spec/controllers/application_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe ApplicationController do 4 | it_behaves_like "request tracking" 5 | end 6 | -------------------------------------------------------------------------------- /spec/factories/coinbase_orders.rb: -------------------------------------------------------------------------------- 1 | # Read about factories at https://github.com/thoughtbot/factory_girl 2 | 3 | FactoryBot.define do 4 | factory :coinbase_order do 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /spec/factories/coinbases.rb: -------------------------------------------------------------------------------- 1 | # Read about factories at https://github.com/thoughtbot/factory_girl 2 | 3 | FactoryBot.define do 4 | factory :coinbasis, :class => 'Coinbase' do 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /spec/factories/github_commits.rb: -------------------------------------------------------------------------------- 1 | # Read about factories at https://github.com/thoughtbot/factory_girl 2 | 3 | FactoryBot.define do 4 | factory :github_commit, :class => 'Github::Commit' do 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /spec/factories/team_payin.rb: -------------------------------------------------------------------------------- 1 | # Read about factories at https://github.com/thoughtbot/factory_girl 2 | 3 | FactoryBot.define do 4 | factory :team_payin do 5 | association :team, factory: :team 6 | association :person, factory: :person 7 | amount 100 8 | # add associated account? 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /spec/factories/tracker_languages.rb: -------------------------------------------------------------------------------- 1 | # Read about factories at https://github.com/thoughtbot/factory_girl 2 | 3 | FactoryBot.define do 4 | factory :tracker_language do 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /spec/models/pact.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/spec/models/pact.rb -------------------------------------------------------------------------------- /spec/models/person_relation/person_relation_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe PersonRelation::Base do 4 | end 5 | -------------------------------------------------------------------------------- /spec/requests/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bountysource/core/dd03553aaea0ec94943d26726ce353fd346e179d/spec/requests/.gitkeep -------------------------------------------------------------------------------- /spec/support/api_v2_controller_context.rb: -------------------------------------------------------------------------------- 1 | RSpec.shared_context 'api v2 controller' do 2 | let(:params) do 3 | {} 4 | end 5 | 6 | before do 7 | request.headers['HTTP_ACCEPT'] = 'application/vnd.bountysource+json; version=2' 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /spec/support/mock_github_api.rb: -------------------------------------------------------------------------------- 1 | class MockGithubApi 2 | 3 | def method_missing(*args) 4 | true 5 | end 6 | 7 | class Success < MockGithubApi 8 | def success? 9 | true 10 | end 11 | end 12 | 13 | class Error < MockGithubApi 14 | def success? 15 | false 16 | end 17 | end 18 | 19 | end -------------------------------------------------------------------------------- /spec/support/response_status_helper.rb: -------------------------------------------------------------------------------- 1 | # assert_response that allows individual status codes in the 400 range to be checked. 2 | # vanilla assert_response only allows 404? that's not very useful... 3 | def assert_response(expected) 4 | expect(response.code.to_i).to eq(Rack::Utils.status_code(expected)) 5 | end --------------------------------------------------------------------------------