summaryrefslogtreecommitdiff
path: root/src/frontend_blog
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend_blog')
-rw-r--r--src/frontend_blog/essay_contract.php6
-rw-r--r--src/frontend_blog/essay_offer.php62
-rw-r--r--src/frontend_blog/index.html141
3 files changed, 47 insertions, 162 deletions
diff --git a/src/frontend_blog/essay_contract.php b/src/frontend_blog/essay_contract.php
index ca6f9f11..d963c317 100644
--- a/src/frontend_blog/essay_contract.php
+++ b/src/frontend_blog/essay_contract.php
@@ -25,6 +25,7 @@
*/
include("../frontend_lib/merchants.php");
include("../frontend_lib/util.php");
+include("../frontend_lib/config.php");
include("./blog_lib.php");
session_start();
$article = get($_GET['article']);
@@ -41,10 +42,9 @@ $now = new DateTime('now');
$teaser = get_teaser($article);
$amount_value = 0;
$amount_fraction = 50000;
-$currency = "EUR";
$teatax = array ('value' => 1,
'fraction' => 0,
- 'currency' => $currency);
+ 'currency' => $MERCHANT_CURRENCY);
$transaction_id = rand(0, 1001);
// Include all information so we can
// restore the contract without storing it
@@ -53,7 +53,7 @@ $fulfillment_url = url_rel("essay_fulfillment.php")
//file_put_contents("/tmp/debg1", $fulfillment_url);
$contract_json = generate_contract($amount_value,
$amount_fraction,
- $currency,
+ $MERCHANT_CURRENCY,
$transaction_id,
trim($teaser->nodeValue),
$p_id,
diff --git a/src/frontend_blog/essay_offer.php b/src/frontend_blog/essay_offer.php
index 7377a4b3..f7e20a05 100644
--- a/src/frontend_blog/essay_offer.php
+++ b/src/frontend_blog/essay_offer.php
@@ -1,13 +1,30 @@
<!DOCTYPE html>
<html>
-<head>
-<script type="text/javascript">
+<body onload="signal_taler_wallet_onload()">
+<?php
+ include("../frontend_lib/merchants.php");
+ include("../frontend_lib/util.php");
+ include("./blog_lib.php");
+ session_start();
+ $article = get($_GET['article']);
+ if (null == $article){
+ echo "Please land here just to buy articles";
+ die();
+ }
+ echo "<h3>No Taler installed</h3>";
+ echo "<p>activate it or pay by <a href='/cc_payment.php?article=$article'>credit card</a></p>";
+ echo "<p id=article-name style='display: none;'>$article</input>";
+?>
+</body>
+<script type="text/javascript">
+
function handle_contract(json_contract) {
var cEvent = new CustomEvent('taler-contract',
{detail: json_contract});
document.dispatchEvent(cEvent);
};
+
function get_contract(article) {
var contract_request = new XMLHttpRequest();
@@ -32,22 +49,29 @@
+ contract_request.statusText);
};
contract_request.send();
-}
-</script>
-</head>
-<body>
-<?php
+ }
+
+ function has_taler_wallet_cb(aEvent)
+ {
+ var article = document.getElementById('article-name');
+ get_contract(article.firstChild.nodeValue);
+ };
- include("../frontend_lib/merchants.php");
- include("../frontend_lib/util.php");
- include("./blog_lib.php");
- session_start();
- $article = get($_GET['article']);
- if (null == $article){
- echo "Please land here just to buy articles";
- die();
- }
- echo "<script>get_contract('$article');</script>"
-?>
-</body>
+ function signal_taler_wallet_onload()
+ {
+ var eve = new Event('taler-probe');
+ document.dispatchEvent(eve);
+ };
+
+ document.addEventListener("taler-wallet-present",
+ has_taler_wallet_cb,
+ false);
+
+ // Register event to be triggered by the wallet when it gets enabled while
+ // the user is on the payment page
+ document.addEventListener("taler-load",
+ signal_taler_wallet_onload,
+ false);
+
+</script>
</html>
diff --git a/src/frontend_blog/index.html b/src/frontend_blog/index.html
index 5815038e..03297a00 100644
--- a/src/frontend_blog/index.html
+++ b/src/frontend_blog/index.html
@@ -40,7 +40,7 @@
<article class="articles">
<ul style="list-style-type:none">
<li>
- <a href="/cc_payment.php?article=fs-essay" class="read-more" id="fs-essay">
+ <a href="/essay_offer.php?article=fs-essay" class="read-more" id="fs-essay">
<div class="teasers_item">
<h3>What is Free Software</h3>
<p>
@@ -57,144 +57,5 @@
</section>
</section>
</body>
-<script type="text/javascript">
-/* @licstart The following is the entire license notice for the
- JavaScript code in this page.
- Copyright (C) 2015 GNUnet e.V.
-
- The JavaScript code in this page is free software: you can
- redistribute it and/or modify it under the terms of the GNU
- Lesser General Public License (GNU LGPL) as published by the Free Software
- Foundation, either version 2.1 of the License, or (at your option)
- any later version. The code is distributed WITHOUT ANY WARRANTY;
- without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU LGPL for more details.
-
- As additional permission under GNU LGPL version 2.1 section 7, you
- may distribute non-source (e.g., minimized or compacted) forms of
- that code without the copy of the GNU LGPL normally required by
- section 4, provided you include this license notice and a URL
- through which recipients can access the Corresponding Source.
-
- @licend The above is the entire license notice
- for the JavaScript code in this page.
- */
-
-/* This function is called from "taler_pay" after
- we downloaded the JSON contract from the merchant.
- We now need to pass it to the extension. */
-function handle_contract(json_contract)
-{
- var cEvent = new CustomEvent('taler-contract', { detail: json_contract });
-
- document.dispatchEvent(cEvent);
-};
-
-function taler_pay(article)
-{
- var contract_request = new XMLHttpRequest();
-
- /* Note that the URL we give here is specific to the Demo-shop
- and not required by the protocol: each web shop can
- have its own way of generating and transmitting the
- contract, there just must be a way to get the contract
- and to pass it to the wallet when the user selects 'Pay'. */
- contract_request.open("GET", "essay_contract.php?article=" + article, true);
- contract_request.onload = function (e)
- {
- if (contract_request.readyState == 4)
- {
- if (contract_request.status == 200)
- {
- /* display contract_requestificate (i.e. it sends the JSON string
- to the extension) alert (contract_request.responseText); */
- console.log("contract here");
- console.log("response text:", contract_request.responseText);
- handle_contract(contract_request.responseText);
- }
- else
- {
- /* There was an error obtaining the contract from the merchant,
- obviously this should not happen. To keep it simple, we just
- alert the user to the error. */
- alert("Failure to download contract from merchant " +
- "(" + contract_request.status + "):\n" +
- contract_request.responseText);
- }
- }
- };
- contract_request.onerror = function (e)
- {
- /* There was an error obtaining the contract from the merchant,
- obviously this should not happen. To keep it simple, we just
- alert the user to the error. */
- alert("Failure requesting the contract:\n" + contract_request.statusText);
- };
- contract_request.send(null);
-}
-
-/* The following event gets fired whenever a customer has a Taler
- wallet installed in his browser. In that case, the webmaster can decide
- whether or not to display/enable Taler as a payment option in the dialog. */
-function has_taler_wallet_cb(aEvent)
-{
- console.log("has taler wallet");
- // make "read more" trigger Taler payment
- var articles_links = document.getElementsByClassName("read-more");
- for(var i=0; i < articles_links.length; i++)
- //console.log(link);
- articles_links[i].setAttribute("href", "/essay_offer.php?article=" + articles_links[i].id);
-};
-
-/* Function called when the Taler extension was unloaded;
- here we disable the Taler option and check "Lisa", as
- some "valid" option should always be selected. */
-function taler_wallet_unload_cb(aEvent)
-{
- var rm = document.getElementById("read-more");
- rm.setAttribute("href", "cc_payment.html");
-};
-
-
-/* The merchant signals its taler-friendlyness to the wallet,
- thereby causing the wallet to make itself more visible in the menu.
- This function should be called both when the page is loaded
- (i.e. via body's onload) and when we receive a "taler-load" signal
- (as the extension may be loaded/enabled after the page was loaded) */
-function signal_taler_wallet_onload()
-{
- var eve = new Event('taler-probe');
- document.dispatchEvent(eve);
-};
-
-
-// function included to be run to test the page despite a
-// wallet not being present in the browser. Enables the
-// Taler option. NOT needed in real deployments.
-function test_without_wallet(){
- var tbutton = document.getElementById("taler-radio-button-id");
- tbutton.removeAttribute("disabled");
-};
-
-
-// /////////////// Main logic run first ////////////////////////
-
-// Register event to be triggered by the wallet as a response to our
-// first event
-document.addEventListener("taler-wallet-present",
- has_taler_wallet_cb,
- false);
-
-// Register event to be triggered by the wallet when it gets enabled while
-// the user is on the payment page
-document.addEventListener("taler-load",
- signal_taler_wallet_onload,
- false);
-
-// Register event to be triggered by the wallet when it is unloaded
-document.addEventListener("taler-unload",
- taler_wallet_unload_cb,
- false);
-</script>
</html>