diff --git a/mail_signature/__init__.py b/mail_signature/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/mail_signature/admin.py b/mail_signature/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/mail_signature/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/mail_signature/apps.py b/mail_signature/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..7216dddc126b51d80cf8852cb1ef3fcb90bb990d --- /dev/null +++ b/mail_signature/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class MailSignatureConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'mail_signature' diff --git a/mail_signature/migrations/__init__.py b/mail_signature/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/mail_signature/models.py b/mail_signature/models.py new file mode 100644 index 0000000000000000000000000000000000000000..71a836239075aa6e6e4ecb700e9c42c95c022d91 --- /dev/null +++ b/mail_signature/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/mail_signature/templates/mail_signature/index.html b/mail_signature/templates/mail_signature/index.html new file mode 100644 index 0000000000000000000000000000000000000000..d2ff8fdd08d70f8738b0048cab9d5704fc00698b --- /dev/null +++ b/mail_signature/templates/mail_signature/index.html @@ -0,0 +1,121 @@ +{% extends "shared/base.html" %} + +{% load render_bundle from webpack_loader %} + +{% block title %}Generátor emailových podpisů{% endblock %} +{% block header_name %}Emailové podpisy{% endblock %} +{% block description %}Vyplněním získáš HTML kód, který můžeš vložit jako podpis do svých emailů.{% endblock %} + +{% block head %} + <link + rel="stylesheet" + href="https://styleguide.pirati.cz/2.11.x/css/styles.css" + > + + {% render_bundle "mail_signature" %} +{% endblock %} + +{% block content %} + <main> + <h1 class="text-6xl font-bebas mb-5">Generátor emailových podpisů</h1> + + <div class="prose max-w-none mb-5"> + <p> + Vyplněním následujícího formuláře získáš HTML kód, + který můžeš vložit jako podpis do svých emailů. + </p> + </div> + + <div class="grid gap-4 grid-cols-1 lg:grid-cols-2"> + <form class="flex flex-col gap-3" id="source"> + <div class="flex gap-4 items-center"> + <label class="basis-56 flex items-center font-bold" for="name"> + Jméno: + </label> + <input + id="name" + name="name" + type="text" + class="border border-gray-200 p-2 rounded-md grow w-full" + > + </div> + <div class="flex gap-4 items-center"> + <label class="basis-56 flex items-center font-bold" for="function"> + Název funkce: + </label> + <input + id="function" + name="function" + type="text" + class="border border-gray-200 p-2 rounded-md grow w-full" + > + </div> + <div class="flex gap-4 items-center"> + <label class="basis-56 flex items-center font-bold" for="email"> + E-mail: + </label> + <input + id="email" + name="email" + type="email" + class="border border-gray-200 p-2 rounded-md grow w-full" + > + </div> + <div class="flex gap-4 items-center"> + <label class="basis-56 flex items-center font-bold" for="phone"> + Telefonní číslo: + </label> + <input + id="phone" + name="phone" + type="tel" + class="border border-gray-200 p-2 rounded-md grow w-full" + > + </div> + <div class="flex gap-4 items-center"> + <label class="basis-56 flex items-center font-bold" for="fejsbuk"> + Facebook odkaz: + </label> + <input + id="fejsbuk" + name="fejsbuk" + type="url" + class="border border-gray-200 p-2 rounded-md grow w-full" + > + </div> + <div class="flex gap-4 items-center"> + <label class="basis-56 flex items-center font-bold" for="linkedin"> + LinkedIn odkaz: + </label> + <input + id="linkedin" + name="linkedin" + type="url" + class="border border-gray-200 p-2 rounded-md grow w-full" + > + </div> + + <div class="text-right"> + <button id="generate" class="btn btn--icon" type="button"> + <div class="btn__body-wrap"> + <div class="btn__body">Vygenerovat</div> + <div class="btn__icon"> + <i class="ico--chevron-right"></i> + </div> + </div> + </button> + </div> + </form> + + <div class="flex flex-col gap-3"> + <div class="border border-gray-400 border-dotted p-2 rounded-md" id="preview"></div> + <textarea + class="border border-gray-200 p-2 font-mono rounded-md w-full" + rows="5" + id="content" + readonly + ></textarea> + </div> + </div> + </main> +{% endblock %} diff --git a/mail_signature/tests.py b/mail_signature/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/mail_signature/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/mail_signature/urls.py b/mail_signature/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..b2d6be6fb4886746ae8d55c2e35b8539547162a8 --- /dev/null +++ b/mail_signature/urls.py @@ -0,0 +1,8 @@ +from django.urls import path + +from . import views + +app_name = "mail_signature" +urlpatterns = [ + path("", views.index, name="index"), +] diff --git a/mail_signature/views.py b/mail_signature/views.py new file mode 100644 index 0000000000000000000000000000000000000000..0d5779af8e0d1e7a2d10d8b77f249d64c18094e1 --- /dev/null +++ b/mail_signature/views.py @@ -0,0 +1,9 @@ +from django.shortcuts import render + +# Create your views here. + +def index(request): + return render( + request, + "mail_signature/index.html" + ) diff --git a/package.json b/package.json index 4a07c0ecbe08e9ffec6d3ceb929877ce237b3726..5bcc00b9f9ca9884d7a31fe3d4ff25cfa16c2bb9 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "", "private": true, "dependencies": { + "@tailwindcss/typography": "^0.5.9", "css-loader": "^6.7.3", "jquery": "^3.6.3", "js-cookie": "^3.0.1", diff --git a/rv_voting_calc/templates/rv_voting_calc/index.html b/rv_voting_calc/templates/rv_voting_calc/index.html index a70f0cd9a2221026899d2e481292fb5c9befccb6..284e6de7e4c989a4f9c3f9393815e5a32d772ae7 100644 --- a/rv_voting_calc/templates/rv_voting_calc/index.html +++ b/rv_voting_calc/templates/rv_voting_calc/index.html @@ -25,12 +25,14 @@ <main> <h1 class="text-6xl font-bebas mb-5">Kalkulačka hlasování RV</h1> - <p class="mb-5 text-gray-800"> - Jednací řád k nahlédnutí <a - class="underline" - href="https://wiki.pirati.cz/rules/jrrv#rozhodujici_hlasovani_pri_referendu" - >na wiki</a>, § 9 (3). - </p> + <div class="prose max-w-none mb-5"> + <p> + Jednací řád k nahlédnutí <a + class="underline" + href="https://wiki.pirati.cz/rules/jrrv#rozhodujici_hlasovani_pri_referendu" + >na wiki</a>, § 9 (3). + </p> + </div> <div class="grid grid-cols-1 md:grid-cols-2 gap-7"> <div> diff --git a/rybicka/settings/base.py b/rybicka/settings/base.py index 9d59ae05d40982c7e2da515a79e225197e7ba1de..882e6cdb172c968dc011c88623654de11d64bb94 100644 --- a/rybicka/settings/base.py +++ b/rybicka/settings/base.py @@ -48,6 +48,7 @@ INSTALLED_APPS = [ "shared", "member_group_size_calc", "rv_voting_calc", + "mail_signature", ] MIDDLEWARE = [ diff --git a/rybicka/urls.py b/rybicka/urls.py index c5add90411d59cf57d2885ad5030aaccffb7ba41..4ebfaabffa1eedac7536f972d8a4317aa939411f 100644 --- a/rybicka/urls.py +++ b/rybicka/urls.py @@ -18,5 +18,6 @@ from django.urls import include, path urlpatterns = [ path("vypocet-skupiny-clenu/", include("member_group_size_calc.urls")), path("hlasovani-rv/", include("rv_voting_calc.urls")), + path("emailove-podpisy/", include("mail_signature.urls")), path("", include("shared.urls")), ] diff --git a/shared/static/shared/signature.webp b/shared/static/shared/signature.webp new file mode 100644 index 0000000000000000000000000000000000000000..0521d86abbdfc3609a69b4b9e22fbc5a509f37cf Binary files /dev/null and b/shared/static/shared/signature.webp differ diff --git a/shared/templates/shared/index.html b/shared/templates/shared/index.html index e50024bd52438e2b0c1f83f4494b45db715f9413..0d19d04a02b10ed0223d77d76b06821bd60acdfd 100644 --- a/shared/templates/shared/index.html +++ b/shared/templates/shared/index.html @@ -34,6 +34,7 @@ </div> </div> </li> + <li class="card"> <a href="{% url "rv_voting_calc:index" %}"> <img @@ -53,6 +54,7 @@ </div> </div> </li> + <li class="card"> <a href="https://z.pirati.cz" target="_blank"> <img @@ -72,6 +74,26 @@ </div> </div> </li> + + <li class="card"> + <a href="{% url "mail_signature:index" %}" target="_blank"> + <img + src="{% static "shared/signature.webp" %}" + alt="Generátor emailových podpisů" + class="w-full h-48 object-cover" + > + </a> + <div class="p-4"> + <h2 class="mb-2 text-xl font-bold"> + <a href="{% url "mail_signature:index" %}" target="_blank"> + Generátor emailových podpisů + </a> + </h2> + <div class="font-light text-sm break-words"> + Vyplněním získáš HTML kód, který můžeš vložit jako podpis do svých emailů. + </div> + </div> + </li> </ul> </main> {% endblock %} diff --git a/static_src/mail_signature.js b/static_src/mail_signature.js new file mode 100644 index 0000000000000000000000000000000000000000..d0b3319095abf7ef2e1a83eaa4d465c431fd9c08 --- /dev/null +++ b/static_src/mail_signature.js @@ -0,0 +1,97 @@ +import $ from "jquery"; + +const escapeHTML = (str) => { + return new Option(str).innerHTML; +} + +const generateSignature = () => { + let result = `<style> + @import url(https://gfonts.pirati.cz/css?family=Roboto); + body { font-family: Roboto, Arial; background: white; color:black; } + .pv { font-family: Roboto Condensed, Arial, sans-serif; font-size: 10pt; font-weight: normal; margin: 1em; background: white; color: black; } + .pv>.bl { margin-bottom:0.5em; line-height: 1.1em; } + .name { font-size: 13pt; font-weight: bold; } + .social { box-sizing: content-box; font-weight: bold; color: white !important; background: black; margin: 0.1em; padding: 0.2em; width: 1em; height: 1em; display: inline-block; text-align: center; text-decoration:none; border-radius: 0.5em; } + .logo { margin-top: 1.5em; } + .logo img { height: 3.5em; margin-left:-0.1em; } +</style> +<div class="pv">`; + + let name = $("#name").val(); + let func = $("#function").val(); + + if (name !== "") { + name = escapeHTML(name); + result += `<div class="bl"> + <strong class="name">${name}</strong>`; + + func = escapeHTML(func); + if (func !== "") { + result += `<br>${func}`; + } + + result += "</div>"; + } + + let email = $("#email").val(); + let phone = $("#phone").val(); + let fejsbuk = $("#fejsbuk").val(); + let linkedin = $("#linkedin").val(); + + if (email !== "" || phone !== "" || fejsbuk !== "" || linkedin !== "") { + result += "<div class=\"bl\">"; + + if (email !== "") { + email = escapeHTML(email); + result += `<a href="${email}">${email}</a><br>`; + } + + if (phone !== "") { + phone = escapeHTML(phone); + result += `<a href="${phone}">${phone}</a><br>`; + } + + if (fejsbuk !== "") { + fejsbuk = escapeHTML(fejsbuk); + result += `<a href="${fejsbuk}" class="social">f</a>`; + } + + if (linkedin !== "") { + linkedin = escapeHTML(linkedin); + result += `<a href="${linkedin}" class="social">in</a>`; + } + + result += "</div>"; + } + + result += `<div class="logo"> + <img + src="data:image/png;base64,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" + alt="Logo Pirátské Strany" + > + </div> +</div>`; + + $("#preview").html(result); + $("#content").val(result); +} + +$(window).ready( + () => { + generateSignature(); + + $("#generate").on( + "click", + event => { + const form = $("#source")[0]; + + if (!form.checkValidity()) { + form.reportValidity(); + return; + } + + generateSignature(); + } + ); + } +); diff --git a/tailwind.config.js b/tailwind.config.js index 882ff8fc6f21218aac61604077d8e0cdd47ff91e..c4aec83d8bf1f089ffffbc008b7825eeb011463c 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -14,5 +14,7 @@ module.exports = { }, }, }, - plugins: [], + plugins: [ + require("@tailwindcss/typography"), + ], } diff --git a/webpack.config.js b/webpack.config.js index d187e3f50a23b30b2bf9fc4e0ed3ff609aea096f..c67bb032134af850baf990aed347e54bde2492de 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -17,6 +17,10 @@ module.exports = { import: path.resolve("static_src", "rv_voting_calc.js"), dependOn: "shared", }, + mail_signature: { + import: path.resolve("static_src", "mail_signature.js"), + dependOn: "shared", + }, shared: ["jquery"], }, output: {