Skip to content

Commit

Permalink
feat(vote): converted dashboard share buttons to templatetags
Browse files Browse the repository at this point in the history
  • Loading branch information
sergiomario committed Sep 3, 2024
1 parent 8bd244c commit 7003da9
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 22 deletions.
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
const copyButton = document.querySelector("#copyButton");

function copyURL(isDashboard=false) {
let url = window.location.href;
function copyURL(url=null) {
if (!url) {
// Se a URL não for passada, use a URL atual da página
url = window.location.href;
}
let modalString = "?modal=true";

if (url.includes(modalString)) {
url = url.replace(modalString, "");
}

if (isDashboard) {
const slug = document.getElementById("dashboard").getAttribute("data-slug");
const baseUrl = window.location.origin;
url = baseUrl + "/c/" + slug;
}

navigator.clipboard.writeText(url).then(function() {
const copyButton = document.querySelector("#copyButton");
let tooltip = bootstrap.Tooltip.getInstance(copyButton) || new bootstrap.Tooltip(copyButton);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% extends "votepeloclima/base.html" %}
{% load static crispy_forms_filters %}
{% load static crispy_forms_filters social_share %}

{% block content %}
<div class="container mx-auto py-5" id="dashboard" data-slug="{{candidature.slug}}">
Expand Down Expand Up @@ -92,23 +92,23 @@ <h2 class="fw-bold text-uppercase">Outras informações</h2>
<p class="fw-bold text-uppercase">Compartilhe seu perfil:</p>
<div class="d-flex flex-column justify-content-center gap-2">
{% with request.scheme|add:"://"|add:request.get_host as base_url %}
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="https://wa.me/?text={{ 'Oi! As eleições estão chegando e o futuro da nossa cidade depende do nosso voto. Compartilho com você uma das candidaturas comprometidas na luta pelo meio ambiente e contra as ameaças climáticas. Conheça as propostas na plataforma *Vote pelo Clima!* ' | urlencode }}{{ base_url|add:'/c/'|add:candidature.slug|urlencode }}">
<span class="ds-icon-whatsapp"></span>
WhatsApp
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="{% share_url base_url candidature.slug 'whatsapp' %}">
<span class="ds-icon-whatsapp"></span>
WhatsApp
</a>
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="https://twitter.com/intent/tweet?url={{ base_url|add:'/c/'|add:candidature.slug|urlencode }}&text={{ 'O clima mudou. A política precisa mudar. #VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil comprometidas com a pauta climática, eu sou uma delas! Acesse o perfil e conheça as propostas.' | urlencode }}" target="_blank">
<span class="ds-icon-x"></span>
Twitter
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="{% share_url base_url candidature.slug 'twitter' %}" target="_blank">
<span class="ds-icon-x"></span>
Twitter
</a>
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="https://www.linkedin.com/shareArticle?mini=true&url={{ base_url|add:'/c/'|add:candidature.slug|urlencode }}&title={{ 'O clima mudou. A política precisa mudar.' | urlencode }}&summary={{ '#VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil comprometidas com a pauta climática, eu sou uma delas! Acesse o perfil e conheça as propostas.' | urlencode }}" target="_blank">
<span class="ds-icon-linkedin"></span>
LinkedIn
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="{% share_url base_url candidature.slug 'linkedin' %}" target="_blank">
<span class="ds-icon-linkedin"></span>
LinkedIn
</a>
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="https://www.facebook.com/sharer/sharer.php?u={{ base_url|add:'/c/'|add:candidature.slug|urlencode }}&quote={{ 'O clima mudou. A política precisa mudar. #VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil comprometidas com a pauta climática, eu sou uma delas! Acesse o perfil e conheça as propostas.' | urlencode }}" target="_blank">
<span class="ds-icon-facebook"></span>
Facebook
<a class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" href="{% share_url base_url candidature.slug 'facebook' %}" target="_blank">
<span class="ds-icon-facebook"></span>
Facebook
</a>
<button type="button" id="copyButton" onclick="copyURL(is_dashboard=true)" class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" data-bs-toggle="tooltip" data-bs-trigger="click" data-bs-placement="bottom" title="Copiado!">
<button type="button" id="copyButton" onclick="copyURL('{{ base_url }}/c/{{ candidature.slug }}')" class="btn btn-primary text-uppercase d-inline-flex justify-content-center align-items-center gap-1" data-bs-toggle="tooltip" data-bs-trigger="click" data-bs-placement="bottom" title="Copiado!">
<span class="ds-icon-anchor"></span>
Copiar Link
</button>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
from django import template
from urllib.parse import urlencode

register = template.Library()

@register.simple_tag
def share_url(base_url, slug, platform):
url = f"{base_url}/c/{slug}"

if platform == 'whatsapp':
text = ("Oi! As eleições estão chegando e o futuro da nossa cidade depende do nosso voto. "
"Compartilho com você uma das candidaturas comprometidas na luta pelo meio ambiente e contra as ameaças climáticas. "
"Conheça as propostas na plataforma *Vote pelo Clima!*")
return f"https://wa.me/?text={urlencode({'text': text})}{url}"

elif platform == 'twitter':
text = ("O clima mudou. A política precisa mudar. #VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil "
"comprometidas com a pauta climática, eu sou uma delas! Acesse o perfil e conheça as propostas.")
return f"https://twitter.com/intent/tweet?url={url}&{urlencode({'text': text})}"

elif platform == 'linkedin':
title = "O clima mudou. A política precisa mudar."
summary = ("#VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil comprometidas com a pauta climática, "
"eu sou uma delas! Acesse o perfil e conheça as propostas.")
return f"https://www.linkedin.com/shareArticle?mini=true&url={url}&{urlencode({'title': title, 'summary': summary})}"

elif platform == 'facebook':
quote = ("O clima mudou. A política precisa mudar. #VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil "
"comprometidas com a pauta climática, eu sou uma delas! Acesse o perfil e conheça as propostas.")
return f"https://www.facebook.com/sharer/sharer.php?u={url}&{urlencode({'quote': quote})}"

return url

0 comments on commit 7003da9

Please sign in to comment.