Commit c6487fce authored by Your Name's avatar Your Name

feat: add donation button with cryptocurrency addresses

parent c6e6f92b
......@@ -543,6 +543,191 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
</div>
</div>
<style>
.footer {
margin-top: 40px;
padding: 20px 0;
text-align: center;
border-top: 1px solid #0f3460;
background: #16213e;
}
.donate-btn {
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
color: white;
border: none;
padding: 12px 24px;
border-radius: 8px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s;
}
.donate-btn:hover {
transform: scale(1.05);
box-shadow: 0 4px 15px rgba(245, 87, 108, 0.4);
}
.donate-modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.7);
z-index: 1000;
align-items: center;
justify-content: center;
}
.donate-modal.active {
display: flex;
}
.donate-modal-content {
background: #16213e;
padding: 30px;
border-radius: 12px;
max-width: 500px;
width: 90%;
max-height: 90vh;
overflow-y: auto;
border: 1px solid #0f3460;
}
.donate-modal-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.donate-modal-header h3 {
color: #f5576c;
margin: 0;
}
.close-modal {
background: none;
border: none;
color: #a0a0a0;
font-size: 24px;
cursor: pointer;
}
.crypto-address {
background: #0f3460;
padding: 12px;
border-radius: 6px;
margin: 10px 0;
font-family: 'Courier New', monospace;
font-size: 13px;
word-break: break-all;
cursor: pointer;
user-select: all;
}
.crypto-label {
font-weight: 600;
margin-top: 15px;
color: #e0e0e0;
}
.donate-message {
margin: 20px 0;
color: #a0a0a0;
line-height: 1.5;
}
</style>
<footer class="footer">
<div class="container">
<button class="donate-btn" onclick="openDonateModal()">
<i class="fas fa-heart"></i> Support AISBF Development
</button>
</div>
</footer>
<div class="donate-modal" id="donateModal">
<div class="donate-modal-content">
<div class="donate-modal-header">
<h3>Support AISBF</h3>
<button class="close-modal" onclick="closeDonateModal()">&times;</button>
</div>
<div class="donate-message">
<strong>Thank you</strong> for considering a donation. Your support helps maintain AISBF as completely open source and free software.
</div>
<div class="crypto-label">
<i class="fab fa-bitcoin"></i> Bitcoin (BTC)
</div>
<div class="crypto-address" onclick="copyToClipboard(this)">
bc1qcpt2uutqkz4456j5r78rjm3gwq03h5fpwmcc5u
</div>
<div class="crypto-label">
<i class="fab fa-ethereum"></i> Ethereum (ETH), USDC, USDT (ERC20, Mainnet)
</div>
<div class="crypto-address" onclick="copyToClipboard(this)">
0xdA6dAb526515b5cb556d20269207D43fcc760E51
</div>
<div style="margin-top: 20px; color: #a0a0a0; font-size: 12px;">
Click any address to copy it to your clipboard
</div>
</div>
</div>
<script>
function openDonateModal() {
document.getElementById('donateModal').classList.add('active');
}
function closeDonateModal() {
document.getElementById('donateModal').classList.remove('active');
}
function copyToClipboard(element) {
const text = element.textContent.trim();
navigator.clipboard.writeText(text).then(() => {
const original = element.textContent;
element.textContent = 'Copied!';
setTimeout(() => {
element.textContent = original;
}, 1500);
}).catch(err => {
// Fallback for browsers that don't support clipboard API
const textarea = document.createElement('textarea');
textarea.value = text;
textarea.style.position = 'fixed';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
textarea.select();
try {
document.execCommand('copy');
const original = element.textContent;
element.textContent = 'Copied!';
setTimeout(() => {
element.textContent = original;
}, 1500);
} catch (e) {
console.error('Failed to copy:', e);
}
document.body.removeChild(textarea);
});
}
// Close modal when clicking outside
document.getElementById('donateModal').addEventListener('click', function(e) {
if (e.target === this) {
closeDonateModal();
}
});
</script>
{% block extra_js %}{% endblock %}
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment