parent
8f95e973b2
commit
1028632ac1
11 changed files with 93 additions and 13 deletions
|
|
@ -7,6 +7,7 @@
|
|||
* Update comment in database example config [#7282](https://github.com/diaspora/diaspora/pull/7282)
|
||||
|
||||
## Features
|
||||
* Add support for [Liberapay](https://liberapay.com) donations [#7290](https://github.com/diaspora/diaspora/pull/7290)
|
||||
|
||||
# 0.6.3.0
|
||||
|
||||
|
|
|
|||
10
app/assets/images/buttons/liberapay-button.svg
Normal file
10
app/assets/images/buttons/liberapay-button.svg
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="83" height="30">
|
||||
<rect id="back" fill="#f6c915" x="1" y=".5" width="82" height="29" rx="4"/>
|
||||
<svg viewBox="0 0 80 80" height="16" width="16" x="7" y="7">
|
||||
<g transform="translate(-78.37-208.06)" fill="#1a171b">
|
||||
<path d="m104.28 271.1c-3.571 0-6.373-.466-8.41-1.396-2.037-.93-3.495-2.199-4.375-3.809-.88-1.609-1.308-3.457-1.282-5.544.025-2.086.313-4.311.868-6.675l9.579-40.05 11.69-1.81-10.484 43.44c-.202.905-.314 1.735-.339 2.489-.026.754.113 1.421.415 1.999.302.579.817 1.044 1.546 1.395.729.353 1.747.579 3.055.679l-2.263 9.278"/>
|
||||
<path d="m146.52 246.14c0 3.671-.604 7.03-1.811 10.07-1.207 3.043-2.879 5.669-5.01 7.881-2.138 2.213-4.702 3.935-7.693 5.167-2.992 1.231-6.248 1.848-9.767 1.848-1.71 0-3.42-.151-5.129-.453l-3.394 13.651h-11.162l12.52-52.19c2.01-.603 4.311-1.143 6.901-1.622 2.589-.477 5.393-.716 8.41-.716 2.815 0 5.242.428 7.278 1.282 2.037.855 3.708 2.024 5.02 3.507 1.307 1.484 2.274 3.219 2.904 5.205.627 1.987.942 4.11.942 6.373m-27.378 15.461c.854.202 1.91.302 3.167.302 1.961 0 3.746-.364 5.355-1.094 1.609-.728 2.979-1.747 4.111-3.055 1.131-1.307 2.01-2.877 2.64-4.714.628-1.835.943-3.858.943-6.071 0-2.161-.479-3.998-1.433-5.506-.956-1.508-2.615-2.263-4.978-2.263-1.61 0-3.118.151-4.525.453l-5.28 21.948"/>
|
||||
</g>
|
||||
</svg>
|
||||
<text fill="#1a171b" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" font-weight="700" font-size="14" x="50" y="20">Donate</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -23,6 +23,12 @@ module ApplicationHelper
|
|||
AppConfig.settings.source_url.presence || "#{root_path.chomp('/')}/source.tar.gz"
|
||||
end
|
||||
|
||||
def donations_enabled?
|
||||
AppConfig.settings.paypal_donations.enable? ||
|
||||
AppConfig.settings.liberapay_username.present? ||
|
||||
AppConfig.bitcoin_donation_address.present?
|
||||
end
|
||||
|
||||
def timeago(time, options={})
|
||||
timeago_tag(time, options.merge(:class => 'timeago', :title => time.iso8601, :force => true)) if time
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,15 +1,29 @@
|
|||
- if AppConfig.settings.paypal_donations.enable?
|
||||
PayPal:
|
||||
%form{action: "https://www.paypal.com/cgi-bin/webscr", method: "post", target: "_blank"}
|
||||
%input{name: "cmd", type: "hidden", value: "_s-xclick"}
|
||||
- if AppConfig.settings.paypal_donations.paypal_hosted_button_id.present?
|
||||
%input{name: "hosted_button_id", type: "hidden", value: AppConfig.settings.paypal_donations.paypal_hosted_button_id}
|
||||
-if AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted.present?
|
||||
%input{name: "encrypted", type: "hidden", value: AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted}
|
||||
%input{name: "currency_code", type: "hidden", value: AppConfig.settings.paypal_donations.currency}
|
||||
%input{name: "submit", type: "submit", value: t("aspects.index.donate"), class: "btn btn-default"}
|
||||
%p
|
||||
PayPal:
|
||||
%br
|
||||
%form{action: "https://www.paypal.com/cgi-bin/webscr", method: "post", target: "_blank"}
|
||||
%input{name: "cmd", type: "hidden", value: "_s-xclick"}
|
||||
- if AppConfig.settings.paypal_donations.paypal_hosted_button_id.present?
|
||||
%input{name: "hosted_button_id", type: "hidden",
|
||||
value: AppConfig.settings.paypal_donations.paypal_hosted_button_id}
|
||||
- if AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted.present?
|
||||
%input{name: "encrypted", type: "hidden",
|
||||
value: AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted}
|
||||
%input{name: "currency_code", type: "hidden", value: AppConfig.settings.paypal_donations.currency}
|
||||
%input.btn.btn-default{name: "submit", type: "submit", value: t("aspects.index.donate")}
|
||||
|
||||
- if AppConfig.settings.liberapay_username.present?
|
||||
%p
|
||||
Liberapay:
|
||||
%br
|
||||
%a{id: "liberapay-button", href: "https://liberapay.com/#{AppConfig.settings.liberapay_username}/donate"}
|
||||
= image_tag "buttons/liberapay-button.svg",
|
||||
alt: t("aspects.index.donate"),
|
||||
title: t("aspects.index.donate_liberapay")
|
||||
|
||||
- if AppConfig.bitcoin_donation_address
|
||||
Bitcoin:
|
||||
%input{type: "text", id: "bitcoin_address", value: AppConfig.bitcoin_donation_address, readonly: true}
|
||||
|
||||
%p
|
||||
Bitcoin:
|
||||
%br
|
||||
%input{type: "text", id: "bitcoin_address", value: AppConfig.bitcoin_donation_address, readonly: true}
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@
|
|||
.content
|
||||
!= t("bookmarklet.explanation", link: link_to(t("bookmarklet.post_something"), bookmarklet_code))
|
||||
|
||||
- if AppConfig.settings.paypal_donations.enable? || AppConfig.bitcoin_donation_address
|
||||
- if donations_enabled?
|
||||
.section.collapsed
|
||||
.title
|
||||
%h5.title-header
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ defaults:
|
|||
currency: USD
|
||||
paypal_hosted_button_id:
|
||||
paypal_unhosted_button_encrypted:
|
||||
liberapay_username:
|
||||
bitcoin_address:
|
||||
bitcoin_wallet_id: # DEPRECATED: Remove with 0.6
|
||||
community_spotlight:
|
||||
|
|
|
|||
|
|
@ -430,6 +430,10 @@ configuration: ## Section
|
|||
## OR encrypted key of unhosted button
|
||||
#paypal_unhosted_button_encrypted: "-----BEGIN PKCS7-----"
|
||||
|
||||
## Liberapay.com is a free platform which allow donations like patreon
|
||||
## Set your username to include your liberapay button
|
||||
# liberapay_username: "change_me"
|
||||
|
||||
## Bitcoin donations
|
||||
## You can provide a bitcoin address here to allow your users to provide
|
||||
## donations towards the running of their pod.
|
||||
|
|
|
|||
|
|
@ -194,6 +194,7 @@ en:
|
|||
index:
|
||||
donate: "Donate"
|
||||
keep_pod_running: "Keep %{pod} running fast and buy servers their coffee fix with a monthly donation!"
|
||||
donate_liberapay: "Donate to liberapay"
|
||||
welcome_to_diaspora: "Welcome to diaspora*, %{name}!"
|
||||
introduce_yourself: "This is your stream. Jump in and introduce yourself."
|
||||
|
||||
|
|
|
|||
|
|
@ -16,3 +16,10 @@ Feature: donations
|
|||
Then I should see "Donate" within ".info-bar"
|
||||
And I click on "Donate" navbar title
|
||||
Then I should see the Bitcoin address
|
||||
|
||||
Scenario: Liberapay donations
|
||||
Given I have configured a Liberapay username
|
||||
And I go to the home page
|
||||
Then I should see "Donate" within ".info-bar"
|
||||
And I click on "Donate" navbar title
|
||||
Then I should see the Liberapay donate button
|
||||
|
|
|
|||
|
|
@ -288,6 +288,14 @@ Then /^I should see the Bitcoin address$/ do
|
|||
find("#bitcoin_address")['value'].should == "AAAAAA"
|
||||
end
|
||||
|
||||
Given /^I have configured a Liberapay username$/ do
|
||||
AppConfig.settings.liberapay_username = "BBBBBB"
|
||||
end
|
||||
|
||||
Then /^I should see the Liberapay donate button$/ do
|
||||
find("#liberapay-button")["href"].should == "https://liberapay.com/BBBBBB/donate"
|
||||
end
|
||||
|
||||
Given /^"([^"]*)" is hidden$/ do |selector|
|
||||
page.should have_selector(selector, visible: false)
|
||||
page.should_not have_selector(selector)
|
||||
|
|
|
|||
|
|
@ -68,6 +68,34 @@ describe ApplicationHelper, :type => :helper do
|
|||
end
|
||||
end
|
||||
|
||||
describe "#donations_enabled?" do
|
||||
it "returns false when nothing is set" do
|
||||
expect(helper.donations_enabled?).to be false
|
||||
end
|
||||
|
||||
it "returns true when the paypal donations is enabled" do
|
||||
AppConfig.settings.paypal_donations.enable = true
|
||||
expect(helper.donations_enabled?).to be true
|
||||
end
|
||||
|
||||
it "returns true when the liberapay username is set" do
|
||||
AppConfig.settings.liberapay_username = "foo"
|
||||
expect(helper.donations_enabled?).to be true
|
||||
end
|
||||
|
||||
it "returns true when the bitcoin_address is set" do
|
||||
AppConfig.settings.bitcoin_address = "bar"
|
||||
expect(helper.donations_enabled?).to be true
|
||||
end
|
||||
|
||||
it "returns true when all the donations are enabled" do
|
||||
AppConfig.settings.paypal_donations.enable = true
|
||||
AppConfig.settings.liberapay_username = "foo"
|
||||
AppConfig.settings.bitcoin_address = "bar"
|
||||
expect(helper.donations_enabled?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe "#changelog_url" do
|
||||
let(:changelog_url_setting) {
|
||||
double.tap {|double| allow(AppConfig).to receive(:settings).and_return(double(changelog_url: double)) }
|
||||
|
|
|
|||
Loading…
Reference in a new issue