taler-turnstile-payment-button.html.twig (3697B)
1 <div class="taler-turnstile-payment-container"> 2 <div class="taler-turnstile-payment-info"> 3 <h3>{{ 'Payment required'|t }}</h3> 4 <p>{{ 'Please pay to access'|t }} <strong>{{ node_title }}</strong>.</p> 5 </div> 6 7 <div class="taler-turnstile-payment-actions"> 8 <div class="taler-turnstile-payment-qr"> 9 <div class="taler-turnstile-qr-code-container" 10 data-payment-url="{{ payment_url }}" 11 data-order-id="{{ order_id }}" 12 data-session-id="{{ session_id }}"></div> 13 <p class="taler-turnstile-qr-help">{{ 'Scan with your GNU Taler wallet'|t }}</p> 14 </div> 15 16 <div class="taler-turnstile-payment-or show-if-taler-supported hidden"> 17 <span>{{ 'or'|t }}</span> 18 </div> 19 20 <a href="{{ payment_url }}" 21 class="button button--primary taler-turnstile-pay-button show-if-taler-supported hidden" 22 data-order-id="{{ order_id }}" 23 data-session-id="{{ session_id }}"> 24 {{ 'Open GNU Taler payment Web page'|t }} 25 </a> 26 </div> 27 <div class="taler-turnstile-payment-pricing"> 28 <h4>{{ 'Price per article'|t}}</h4> 29 <p class="taler-turnstile-hint-price">{{ price_hint }}</p><br> 30 <h4>{{ 'Acceptable subscriptions'|t}}</h4> 31 <p class="taler-turnstile-hint-subscriptions">{{ subscription_hint }}</p> 32 </div> 33 34 <div class="taler-turnstile-payment-status"> 35 <p class="taler-turnstile-status-message">{{ 'Waiting for payment...'|t }}</p> 36 </div> 37 38 </div> 39 40 <style> 41 .taler-turnstile-payment-container { 42 border: 2px solid #e0e0e0; 43 border-radius: 8px; 44 padding: 2rem; 45 margin: 2rem 0; 46 background: #f9f9f9; 47 } 48 49 .taler-turnstile-payment-info h3 { 50 margin-top: 0; 51 color: #333; 52 } 53 54 .taler-turnstile-price { 55 font-size: 1.2rem; 56 font-weight: bold; 57 color: #0066cc; 58 margin: 1rem 0; 59 } 60 61 .taler-turnstile-payment-actions { 62 margin-top: 1.5rem; 63 display: flex; 64 flex-direction: column; 65 align-items: center; 66 gap: 1rem; 67 } 68 69 .taler-turnstile-payment-qr { 70 text-align: center; 71 padding: 1rem; 72 background: white; 73 border-radius: 4px; 74 border: 1px solid #ddd; 75 } 76 77 .taler-turnstile-qr-code { 78 display: block; 79 margin: 0 auto; 80 max-width: 200px; 81 height: auto; 82 } 83 84 .taler-turnstile-qr-help { 85 margin: 0.5rem 0 0 0; 86 font-size: 0.9rem; 87 color: #666; 88 } 89 90 .taler-turnstile-payment-or { 91 margin: 0.5rem 0; 92 color: #666; 93 font-weight: bold; 94 } 95 96 .taler-turnstile-pay-button { 97 display: inline-block; 98 padding: 0.75rem 2rem; 99 background: #0066cc; 100 color: white; 101 text-decoration: none; 102 border-radius: 4px; 103 font-weight: bold; 104 transition: background 0.3s; 105 } 106 107 .taler-turnstile-pay-button:hover { 108 background: #0052a3; 109 color: white; 110 } 111 112 .taler-turnstile-payment-status { 113 margin-top: 1.5rem; 114 padding: 1rem; 115 background: #e3f2fd; 116 border: 1px solid #90caf9; 117 border-radius: 4px; 118 text-align: center; 119 } 120 121 .taler-turnstile-status-message { 122 margin: 0; 123 color: #1565c0; 124 font-style: italic; 125 } 126 127 .taler-turnstile-access-message { 128 padding: 1rem; 129 margin: 1rem 0; 130 background: #fff3cd; 131 border: 1px solid #ffc107; 132 border-radius: 4px; 133 } 134 135 .taler-turnstile-teaser-wrapper { 136 position: relative; 137 max-height: 400px; 138 overflow: hidden; 139 } 140 141 .taler-turnstile-teaser-wrapper::after { 142 content: ''; 143 position: absolute; 144 bottom: 0; 145 left: 0; 146 right: 0; 147 height: 100px; 148 background: linear-gradient(to bottom, transparent, white); 149 } 150 151 /* Make sure we have a rule with high specificity. */ 152 .show-if-taler-supported.hidden { 153 display: none !important; 154 } 155 156 /* Responsive design */ 157 @media (min-width: 768px) { 158 .taler-turnstile-payment-actions { 159 flex-direction: row; 160 justify-content: center; 161 align-items: center; 162 } 163 164 .taler-turnstile-payment-or { 165 margin: 0 1rem; 166 } 167 } 168 </style>