Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 1028632a rédigé par flaburgan's avatar flaburgan Validation de Benjamin Neff
Parcourir les fichiers

Add Liberapay button in the donate section

closes #7290
parent 8f95e973
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* Update comment in database example config [#7282](https://github.com/diaspora/diaspora/pull/7282) * Update comment in database example config [#7282](https://github.com/diaspora/diaspora/pull/7282)
## Features ## Features
* Add support for [Liberapay](https://liberapay.com) donations [#7290](https://github.com/diaspora/diaspora/pull/7290)
# 0.6.3.0 # 0.6.3.0
......
<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>
...@@ -23,6 +23,12 @@ module ApplicationHelper ...@@ -23,6 +23,12 @@ module ApplicationHelper
AppConfig.settings.source_url.presence || "#{root_path.chomp('/')}/source.tar.gz" AppConfig.settings.source_url.presence || "#{root_path.chomp('/')}/source.tar.gz"
end end
def donations_enabled?
AppConfig.settings.paypal_donations.enable? ||
AppConfig.settings.liberapay_username.present? ||
AppConfig.bitcoin_donation_address.present?
end
def timeago(time, options={}) def timeago(time, options={})
timeago_tag(time, options.merge(:class => 'timeago', :title => time.iso8601, :force => true)) if time timeago_tag(time, options.merge(:class => 'timeago', :title => time.iso8601, :force => true)) if time
end end
......
- if AppConfig.settings.paypal_donations.enable? - if AppConfig.settings.paypal_donations.enable?
PayPal: %p
%form{action: "https://www.paypal.com/cgi-bin/webscr", method: "post", target: "_blank"} PayPal:
%input{name: "cmd", type: "hidden", value: "_s-xclick"} %br
- if AppConfig.settings.paypal_donations.paypal_hosted_button_id.present? %form{action: "https://www.paypal.com/cgi-bin/webscr", method: "post", target: "_blank"}
%input{name: "hosted_button_id", type: "hidden", value: AppConfig.settings.paypal_donations.paypal_hosted_button_id} %input{name: "cmd", type: "hidden", value: "_s-xclick"}
-if AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted.present? - if AppConfig.settings.paypal_donations.paypal_hosted_button_id.present?
%input{name: "encrypted", type: "hidden", value: AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted} %input{name: "hosted_button_id", type: "hidden",
%input{name: "currency_code", type: "hidden", value: AppConfig.settings.paypal_donations.currency} value: AppConfig.settings.paypal_donations.paypal_hosted_button_id}
%input{name: "submit", type: "submit", value: t("aspects.index.donate"), class: "btn btn-default"} - 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.bitcoin_donation_address - if AppConfig.settings.liberapay_username.present?
Bitcoin: %p
%input{type: "text", id: "bitcoin_address", value: AppConfig.bitcoin_donation_address, readonly: true} 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
%p
Bitcoin:
%br
%input{type: "text", id: "bitcoin_address", value: AppConfig.bitcoin_donation_address, readonly: true}
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
.content .content
!= t("bookmarklet.explanation", link: link_to(t("bookmarklet.post_something"), bookmarklet_code)) != 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 .section.collapsed
.title .title
%h5.title-header %h5.title-header
......
...@@ -105,6 +105,7 @@ defaults: ...@@ -105,6 +105,7 @@ defaults:
currency: USD currency: USD
paypal_hosted_button_id: paypal_hosted_button_id:
paypal_unhosted_button_encrypted: paypal_unhosted_button_encrypted:
liberapay_username:
bitcoin_address: bitcoin_address:
bitcoin_wallet_id: # DEPRECATED: Remove with 0.6 bitcoin_wallet_id: # DEPRECATED: Remove with 0.6
community_spotlight: community_spotlight:
......
...@@ -430,6 +430,10 @@ configuration: ## Section ...@@ -430,6 +430,10 @@ configuration: ## Section
## OR encrypted key of unhosted button ## OR encrypted key of unhosted button
#paypal_unhosted_button_encrypted: "-----BEGIN PKCS7-----" #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 ## Bitcoin donations
## You can provide a bitcoin address here to allow your users to provide ## You can provide a bitcoin address here to allow your users to provide
## donations towards the running of their pod. ## donations towards the running of their pod.
......
...@@ -194,6 +194,7 @@ en: ...@@ -194,6 +194,7 @@ en:
index: index:
donate: "Donate" donate: "Donate"
keep_pod_running: "Keep %{pod} running fast and buy servers their coffee fix with a monthly donation!" 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}!" welcome_to_diaspora: "Welcome to diaspora*, %{name}!"
introduce_yourself: "This is your stream. Jump in and introduce yourself." introduce_yourself: "This is your stream. Jump in and introduce yourself."
......
...@@ -16,3 +16,10 @@ Feature: donations ...@@ -16,3 +16,10 @@ Feature: donations
Then I should see "Donate" within ".info-bar" Then I should see "Donate" within ".info-bar"
And I click on "Donate" navbar title And I click on "Donate" navbar title
Then I should see the Bitcoin address 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 ...@@ -288,6 +288,14 @@ Then /^I should see the Bitcoin address$/ do
find("#bitcoin_address")['value'].should == "AAAAAA" find("#bitcoin_address")['value'].should == "AAAAAA"
end 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| Given /^"([^"]*)" is hidden$/ do |selector|
page.should have_selector(selector, visible: false) page.should have_selector(selector, visible: false)
page.should_not have_selector(selector) page.should_not have_selector(selector)
......
...@@ -68,6 +68,34 @@ describe ApplicationHelper, :type => :helper do ...@@ -68,6 +68,34 @@ describe ApplicationHelper, :type => :helper do
end end
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 describe "#changelog_url" do
let(:changelog_url_setting) { let(:changelog_url_setting) {
double.tap {|double| allow(AppConfig).to receive(:settings).and_return(double(changelog_url: double)) } double.tap {|double| allow(AppConfig).to receive(:settings).and_return(double(changelog_url: double)) }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter