- aggiornati form registrazione

- Login
- Password dimenticata
- Aggiorna password.
- Email registrazione
- Ammetti Utente
This commit is contained in:
Surya Paolo
2025-11-24 17:42:56 +01:00
parent 00bdc278d8
commit c61572a715
18 changed files with 1278 additions and 284 deletions

View File

@@ -0,0 +1,371 @@
doctype html
html(lang="it")
head
meta(charset="UTF-8")
meta(name="viewport" content="width=device-width, initial-scale=1.0")
style(type="text/css").
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background-color: #f5f5f5;
padding: 20px;
line-height: 1.6;
}
.header-logo {
width: 120px;
height: auto;
margin-bottom: 16px;
display: block;
margin-left: auto;
margin-right: auto;
}
.email-container {
max-width: 600px;
margin: 0 auto;
background: white;
border-radius: 12px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.email-header {
background: linear-gradient(135deg, #7cb342 0%, #558b2f 100%);
color: white;
padding: 40px 24px;
text-align: center;
}
.email-header h1 {
margin: 0 0 8px 0;
font-size: 26px;
font-weight: 600;
line-height: 1.3;
}
.email-header .subtitle {
margin: 8px 0 0 0;
font-size: 17px;
opacity: 0.95;
font-style: italic;
}
.alert-icon {
font-size: 56px;
margin-bottom: 12px;
}
.email-body {
padding: 32px 24px;
}
.intro-text {
font-size: 16px;
color: #333;
margin-bottom: 20px;
text-align: center;
line-height: 1.7;
}
.request-card {
background: linear-gradient(135deg, #fff8dc 0%, #fef9f3 100%);
border: 2px solid #f0ad4e;
border-radius: 8px;
padding: 24px;
margin: 20px 0;
text-align: center;
}
.request-card h3 {
font-size: 14px;
text-transform: uppercase;
color: #f0ad4e;
margin-bottom: 12px;
letter-spacing: 0.5px;
font-weight: 600;
}
.request-card .member-name {
font-size: 28px;
color: #1a1a1a;
font-weight: 700;
margin-bottom: 8px;
}
.request-card .member-detail {
font-size: 15px;
color: #555;
margin: 6px 0;
}
.request-card .member-detail strong {
color: #f0ad4e;
}
.question-box {
background: #fff3cd;
border-left: 4px solid #f0ad4e;
border-radius: 8px;
padding: 20px;
margin: 24px 0;
text-align: center;
}
.question-box p {
font-size: 20px;
color: #1a1a1a;
font-weight: 600;
margin: 0;
line-height: 1.4;
}
.cta-section {
text-align: center;
margin: 32px 0;
padding: 24px 0;
border-top: 2px solid #e0e0e0;
border-bottom: 2px solid #e0e0e0;
}
.cta-title {
font-size: 18px;
font-weight: 600;
color: #1a1a1a;
margin-bottom: 20px;
}
.cta-button {
display: inline-block;
padding: 18px 56px;
font-size: 20px;
font-weight: 700;
color: white;
background: linear-gradient(135deg, #7cb342 0%, #558b2f 100%);
border-radius: 50px;
text-decoration: none;
box-shadow: 0 6px 20px rgba(124, 179, 66, 0.4);
transition: all 0.3s ease;
}
.button-icon {
font-size: 20px;
margin-right: 10px;
vertical-align: middle;
}
.info-box {
background: #e8f5e9;
border-radius: 8px;
padding: 16px;
margin: 20px 0;
}
.info-box p {
margin: 0 0 8px 0;
color: #2e7d32;
font-size: 15px;
line-height: 1.6;
}
.info-box p:last-child {
margin-bottom: 0;
}
.warning-box {
background: #f8d7da;
border-left: 4px solid #dc3545;
border-radius: 8px;
padding: 16px;
margin: 20px 0;
}
.warning-box p {
margin: 0;
color: #721c24;
font-size: 15px;
line-height: 1.6;
}
.warning-box strong {
color: #dc3545;
}
.responsibility-box {
background: #f8f9fa;
border-radius: 8px;
padding: 20px;
margin: 20px 0;
}
.responsibility-box h3 {
font-size: 17px;
color: #1a1a1a;
margin-bottom: 12px;
text-align: center;
font-weight: 600;
}
.responsibility-item {
display: flex;
align-items: flex-start;
margin-bottom: 10px;
padding: 6px 0;
}
.responsibility-icon {
font-size: 20px;
margin-right: 10px;
min-width: 24px;
flex-shrink: 0;
}
.responsibility-text {
font-size: 15px;
color: #555;
line-height: 1.5;
}
.email-footer {
padding: 20px;
text-align: center;
background: #f8f9fa;
color: #777;
font-size: 13px;
}
.email-footer p {
margin: 4px 0;
}
.divider {
height: 1px;
background: linear-gradient(to right, transparent, #e0e0e0, transparent);
margin: 20px 0;
}
@media only screen and (max-width: 600px) {
body {
padding: 10px;
}
.email-header {
padding: 24px 16px;
}
.email-header h1 {
font-size: 22px;
}
.alert-icon {
font-size: 48px;
}
.email-body {
padding: 20px 16px;
}
.request-card .member-name {
font-size: 24px;
}
.question-box p {
font-size: 18px;
}
.cta-button {
padding: 16px 40px;
font-size: 18px;
width: 100%;
max-width: 300px;
}
.responsibility-item {
font-size: 14px;
}
}
body
.email-container
//- Header
.email-header
img.header-logo(src=baseurl+'/images/logo.png' alt='RISO - Rete Italiana Scambio Orizzontale')
h1 🔔 Richiesta di Ammissione
p.subtitle Nuovo membro in attesa
//- Body
.email-body
//- Intro
.intro-text
| Ciao <strong>#{nomeInvitante}</strong>,<br>
| hai una nuova richiesta di ammissione da confermare!
//- Card richiesta
.request-card
h3 👤 Richiesta di Ingresso
.member-name #{usernameInvitato}
if nomeInvitato
.member-detail
strong Nome:
| #{nomeInvitato}
if emailInvitato
.member-detail
strong Email:
| #{emailInvitato}
//- Domanda di conferma
.question-box
p 🤔 Confermi di conoscere #{nomeInvitato}?
//- CTA principale
.cta-section
.cta-title Ammetti #{usernameInvitato} alla comunità RISO
a.cta-button(href=linkAmmissione target="_blank")
span.button-icon ✓
| Sì, Confermo
//- Responsabilità
.responsibility-box
h3 📋 La tua responsabilità come invitante
.responsibility-item
span.responsibility-icon 🤝
span.responsibility-text
strong Conoscenza diretta:
| Dovresti ammettere solo persone che conosci personalmente e di cui ti fidi
.responsibility-item
span.responsibility-icon 🛡️
span.responsibility-text
strong Fiducia:
| L'ammissione si basa sulla fiducia reciproca nella comunità RISO
.responsibility-item
span.responsibility-icon 👥
span.responsibility-text
strong Supporto:
| Come invitante, aiuterai il nuovo membro a integrarsi nella comunità
//- Info box
.info-box
p
| ✓ Dopo l'ammissione, #{usernameInvitato} potrà completare il profilo
p
| ✓ Il facilitatore locale valuterà l'abilitazione all'uso dei RIS
//- Warning box
.warning-box
p
strong ⚠️ Importante:
| Se non conosci questa persona o hai dubbi sull'ammissione, ti consigliamo di non procedere. Puoi contattare il facilitatore locale per ulteriori informazioni o semplicemente non cliccare sul pulsante di conferma.
//- Footer
.email-footer
.divider
p Hai ricevuto questa email perché #{usernameInvitato} ha indicato te come invitante su #{nomeapp}
p(style="margin-top: 12px; font-size: 12px;")
| #{new Date().getFullYear()} #{nomeapp} - Rete Italiana Scambi Orizzontali
p(style="margin-top: 12px; font-size: 12px;")
| 🍚 Comunità · Fiducia · Scambi Solidali · Sostenibilità

View File

@@ -0,0 +1 @@
=`🎉 ${name ? ', ' + name : username} chiede di essere ammesso su ${nomeapp} !`

View File

@@ -0,0 +1,371 @@
doctype html
html(lang="it")
head
meta(charset="UTF-8")
meta(name="viewport" content="width=device-width, initial-scale=1.0")
style(type="text/css").
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background-color: #f5f5f5;
padding: 20px;
line-height: 1.6;
}
.header-logo {
width: 120px;
height: auto;
margin-bottom: 16px;
display: block;
margin-left: auto;
margin-right: auto;
}
.email-container {
max-width: 600px;
margin: 0 auto;
background: white;
border-radius: 12px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.email-header {
background: linear-gradient(135deg, #7cb342 0%, #558b2f 100%);
color: white;
padding: 40px 24px;
text-align: center;
}
.email-header h1 {
margin: 0 0 8px 0;
font-size: 26px;
font-weight: 600;
line-height: 1.3;
}
.email-header .subtitle {
margin: 8px 0 0 0;
font-size: 17px;
opacity: 0.95;
font-style: italic;
}
.alert-icon {
font-size: 56px;
margin-bottom: 12px;
}
.email-body {
padding: 32px 24px;
}
.intro-text {
font-size: 16px;
color: #333;
margin-bottom: 20px;
text-align: center;
line-height: 1.7;
}
.request-card {
background: linear-gradient(135deg, #fff8dc 0%, #fef9f3 100%);
border: 2px solid #f0ad4e;
border-radius: 8px;
padding: 24px;
margin: 20px 0;
text-align: center;
}
.request-card h3 {
font-size: 14px;
text-transform: uppercase;
color: #f0ad4e;
margin-bottom: 12px;
letter-spacing: 0.5px;
font-weight: 600;
}
.request-card .member-name {
font-size: 28px;
color: #1a1a1a;
font-weight: 700;
margin-bottom: 8px;
}
.request-card .member-detail {
font-size: 15px;
color: #555;
margin: 6px 0;
}
.request-card .member-detail strong {
color: #f0ad4e;
}
.question-box {
background: #fff3cd;
border-left: 4px solid #f0ad4e;
border-radius: 8px;
padding: 20px;
margin: 24px 0;
text-align: center;
}
.question-box p {
font-size: 20px;
color: #1a1a1a;
font-weight: 600;
margin: 0;
line-height: 1.4;
}
.cta-section {
text-align: center;
margin: 32px 0;
padding: 24px 0;
border-top: 2px solid #e0e0e0;
border-bottom: 2px solid #e0e0e0;
}
.cta-title {
font-size: 18px;
font-weight: 600;
color: #1a1a1a;
margin-bottom: 20px;
}
.cta-button {
display: inline-block;
padding: 18px 56px;
font-size: 20px;
font-weight: 700;
color: white;
background: linear-gradient(135deg, #7cb342 0%, #558b2f 100%);
border-radius: 50px;
text-decoration: none;
box-shadow: 0 6px 20px rgba(124, 179, 66, 0.4);
transition: all 0.3s ease;
}
.button-icon {
font-size: 20px;
margin-right: 10px;
vertical-align: middle;
}
.info-box {
background: #e8f5e9;
border-radius: 8px;
padding: 16px;
margin: 20px 0;
}
.info-box p {
margin: 0 0 8px 0;
color: #2e7d32;
font-size: 15px;
line-height: 1.6;
}
.info-box p:last-child {
margin-bottom: 0;
}
.warning-box {
background: #f8d7da;
border-left: 4px solid #dc3545;
border-radius: 8px;
padding: 16px;
margin: 20px 0;
}
.warning-box p {
margin: 0;
color: #721c24;
font-size: 15px;
line-height: 1.6;
}
.warning-box strong {
color: #dc3545;
}
.responsibility-box {
background: #f8f9fa;
border-radius: 8px;
padding: 20px;
margin: 20px 0;
}
.responsibility-box h3 {
font-size: 17px;
color: #1a1a1a;
margin-bottom: 12px;
text-align: center;
font-weight: 600;
}
.responsibility-item {
display: flex;
align-items: flex-start;
margin-bottom: 10px;
padding: 6px 0;
}
.responsibility-icon {
font-size: 20px;
margin-right: 10px;
min-width: 24px;
flex-shrink: 0;
}
.responsibility-text {
font-size: 15px;
color: #555;
line-height: 1.5;
}
.email-footer {
padding: 20px;
text-align: center;
background: #f8f9fa;
color: #777;
font-size: 13px;
}
.email-footer p {
margin: 4px 0;
}
.divider {
height: 1px;
background: linear-gradient(to right, transparent, #e0e0e0, transparent);
margin: 20px 0;
}
@media only screen and (max-width: 600px) {
body {
padding: 10px;
}
.email-header {
padding: 24px 16px;
}
.email-header h1 {
font-size: 22px;
}
.alert-icon {
font-size: 48px;
}
.email-body {
padding: 20px 16px;
}
.request-card .member-name {
font-size: 24px;
}
.question-box p {
font-size: 18px;
}
.cta-button {
padding: 16px 40px;
font-size: 18px;
width: 100%;
max-width: 300px;
}
.responsibility-item {
font-size: 14px;
}
}
body
.email-container
//- Header
.email-header
img.header-logo(src=baseurl+'/images/logo.png' alt=nomeapp)
h1 🔔 Richiesta di Ammissione
p.subtitle Nuovo membro in attesa
//- Body
.email-body
//- Intro
.intro-text
| Ciao <strong>#{nomeInvitante}</strong>,<br>
| hai una nuova richiesta di ammissione da confermare!
//- Card richiesta
.request-card
h3 👤 Richiesta di Ingresso
.member-name #{usernameInvitato}
if nomeInvitato
.member-detail
strong Nome:
| #{nomeInvitato}
if emailInvitato
.member-detail
strong Email:
| #{emailInvitato}
//- Domanda di conferma
.question-box
p 🤔 Confermi di conoscere #{nomeInvitato}?
//- CTA principale
.cta-section
.cta-title Ammetti #{usernameInvitato} su #{nomeapp}
a.cta-button(href=linkAmmissione target="_blank")
span.button-icon ✓
| Sì, Confermo
//- Responsabilità
.responsibility-box
h3 📋 La tua responsabilità come invitante
.responsibility-item
span.responsibility-icon 🤝
span.responsibility-text
strong Conoscenza diretta:
| Dovresti ammettere solo persone che conosci personalmente e di cui ti fidi
.responsibility-item
span.responsibility-icon 🛡️
span.responsibility-text
strong Fiducia:
| L'ammissione si basa sulla fiducia reciproca nella piattaforma su #{nomeapp}
.responsibility-item
span.responsibility-icon 👥
span.responsibility-text
strong Supporto:
| Come invitante, aiuterai il nuovo membro a integrarsi nella comunità
//- Info box
.info-box
p
| ✓ Dopo l'ammissione, #{usernameInvitato} potrà completare il profilo
p
| ✓ Il facilitatore locale valuterà l'abilitazione all'uso dei RIS
//- Warning box
.warning-box
p
strong ⚠️ Importante:
| Se non conosci questa persona o hai dubbi sull'ammissione, ti consigliamo di non procedere. Puoi contattare il facilitatore locale per ulteriori informazioni o semplicemente non cliccare sul pulsante di conferma.
//- Footer
.email-footer
.divider
p Hai ricevuto questa email perché #{usernameInvitato} ha indicato te come invitante su #{nomeapp}
p(style="margin-top: 12px; font-size: 12px;")
| #{new Date().getFullYear()} #{nomeapp} - Rete Italiana Scambi Orizzontali
p(style="margin-top: 12px; font-size: 12px;")
| 🍚 Comunità · Fiducia · Scambi Solidali · Sostenibilità

View File

@@ -0,0 +1 @@
=`🎉 ${name ? ', ' + name : username} chiede di essere ammesso su ${nomeapp} !`

View File

@@ -331,7 +331,7 @@ html(lang="it")
.riso-info
h3 🍚 Cos'è il Progetto RISO?
p
| RISO è una <strong>rete di comunità territoriali</strong> in tutta Italia dove puoi scambiare beni, servizi e ospitalità con altre persone, usando il <strong>baratto, il dono</strong>, oppure la moneta complementare <strong>RIS</strong>.
| RISO è una <strong>rete di comunità territoriali</strong> in tutta Italia dove puoi scambiare beni, servizi e ospitalità con altre persone, usando il <strong>baratto, il dono</strong>, oppure in <strong>RIS</strong>.
p
| Non è un marketplace commerciale: è una <strong>comunità basata su fiducia e relazioni</strong> reali tra persone che si conoscono e si incontrano.
@@ -368,7 +368,7 @@ html(lang="it")
| <strong>Fiducia:</strong> Base del nostro sistema di scambio
.value-item
span.benefit-icon 🚫
| <strong>Non speculativo:</strong> I RIS non hanno valore in sé, ma solo come <strong>unità di misura</strong> degli scambi
| <strong>Non speculativo:</strong> il RIS non è una moneta complementare, è un Sistema di Credito Naturale. Non serve a 'comprare' cose, ma a <strong>misurare e scambiare l'energia umana</strong>.
.value-item
span.benefit-icon 🌍
| <strong>Sostenibilità:</strong> Promuoviamo stili di vita sani e naturali

View File

@@ -16,14 +16,15 @@ html(lang="it")
padding: 20px;
line-height: 1.6;
}
.header-logo {
width: 80px;
width: 120px;
height: auto;
margin-bottom: 16px;
display: block;
margin-left: auto;
margin-right: auto;
}
}
.email-container {
max-width: 600px;
@@ -35,7 +36,7 @@ html(lang="it")
}
.email-header {
background: linear-gradient(135deg, #027be3 0%, #0056b3 100%);
background: linear-gradient(135deg, #7cb342 0%, #558b2f 100%);
color: white;
padding: 40px 24px;
text-align: center;
@@ -43,90 +44,39 @@ html(lang="it")
.email-header h1 {
margin: 0 0 8px 0;
font-size: 28px;
font-size: 26px;
font-weight: 600;
line-height: 1.3;
}
.email-header p {
margin: 0;
font-size: 16px;
.email-header .subtitle {
margin: 8px 0 0 0;
font-size: 17px;
opacity: 0.95;
font-style: italic;
}
.welcome-icon {
font-size: 48px;
margin-bottom: 16px;
font-size: 56px;
margin-bottom: 12px;
}
.email-body {
padding: 20px 16px;
padding: 32px 24px;
}
.intro-text {
font-size: 16px;
color: #333;
margin-bottom: 16px;
margin-bottom: 20px;
text-align: center;
line-height: 1.7;
}
.credentials-box {
background: #f8f9fa;
border-left: 4px solid #027be3;
border-radius: 8px;
padding: 12px;
margin-bottom: 16px;
}
.credentials-title {
font-size: 15px;
font-weight: 600;
color: #555;
margin-bottom: 8px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.credential-row {
display: flex;
align-items: center;
padding: 6px 0;
border-bottom: 1px solid #e0e0e0;
}
.credential-row:last-child {
border-bottom: none;
padding-bottom: 0;
}
.credential-label {
font-weight: 600;
color: #666;
min-width: 120px;
font-size: 14px;
}
.credential-value {
color: #1a1a1a;
font-size: 15px;
font-weight: 500;
flex: 1;
word-break: break-word;
}
.credential-value a {
color: #027be3;
text-decoration: none;
}
.credential-value a:hover {
text-decoration: underline;
}
.cta-section {
text-align: center;
margin: 16px 0;
padding: 16px 0;
margin: 24px 0;
padding: 20px 0;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
}
@@ -138,57 +88,22 @@ html(lang="it")
margin-bottom: 16px;
}
.cta-buttons-wrapper {
display: flex;
gap: 12px;
justify-content: center;
align-items: stretch;
flex-wrap: wrap;
margin-top: 16px;
}
.cta-button {
display: inline-block;
padding: 16px 32px;
font-size: 16px;
padding: 16px 48px;
font-size: 18px;
font-weight: 600;
color: white;
background: linear-gradient(135deg, #027be3 0%, #0056b3 100%);
background: linear-gradient(135deg, #7cb342 0%, #558b2f 100%);
border-radius: 50px;
text-decoration: none;
box-shadow: 0 4px 12px rgba(2, 123, 227, 0.3);
transition: transform 0.2s, box-shadow 0.2s;
flex: 1;
min-width: 180px;
max-width: 220px;
}
.cta-button:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(2, 123, 227, 0.4);
}
.cta-button-secondary {
background: linear-gradient(135deg, #28a745 0%, #1e7e34 100%);
box-shadow: 0 4px 12px rgba(40, 167, 69, 0.3);
}
.cta-button-secondary:hover {
box-shadow: 0 6px 16px rgba(40, 167, 69, 0.4);
}
.cta-button-tertiary {
background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%);
box-shadow: 0 4px 12px rgba(255, 152, 0, 0.3);
}
.cta-button-tertiary:hover {
box-shadow: 0 6px 16px rgba(255, 152, 0, 0.4);
box-shadow: 0 4px 12px rgba(124, 179, 66, 0.3);
transition: all 0.3s ease;
}
.button-icon {
font-size: 18px;
margin-right: 6px;
margin-right: 8px;
vertical-align: middle;
}
@@ -196,31 +111,114 @@ html(lang="it")
margin-top: 16px;
font-size: 13px;
color: #777;
line-height: 1.6;
}
.alternative-link a {
color: #027be3;
color: #558b2f;
text-decoration: none;
word-break: break-all;
}
.info-box {
background: #e3f2fd;
.verification-process {
background: #f8f9fa;
border-radius: 8px;
padding: 10px;
margin-top: 12px;
text-align: center;
padding: 24px 20px;
margin: 24px 0;
}
.info-box p {
.process-title {
font-size: 18px;
font-weight: 600;
color: #1a1a1a;
text-align: center;
margin-bottom: 20px;
}
.process-title .icon {
font-size: 24px;
margin-right: 8px;
vertical-align: middle;
}
.process-steps {
margin: 20px 0;
}
.process-step {
display: flex;
align-items: flex-start;
margin-bottom: 20px;
padding: 16px;
background: white;
border-radius: 8px;
border-left: 4px solid #e0e0e0;
}
.process-step.active {
border-left-color: #7cb342;
background: linear-gradient(135deg, #f8fdf8 0%, #e8f5e9 100%);
}
.step-badge {
min-width: 40px;
height: 40px;
border-radius: 50%;
background: #e0e0e0;
color: #666;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 18px;
margin-right: 16px;
flex-shrink: 0;
}
.process-step.active .step-badge {
background: linear-gradient(135deg, #7cb342 0%, #558b2f 100%);
color: white;
}
.step-content {
flex: 1;
}
.step-content h4 {
font-size: 16px;
color: #1a1a1a;
margin-bottom: 6px;
font-weight: 600;
}
.step-content p {
font-size: 15px;
color: #555;
line-height: 1.5;
margin: 0;
color: #1565c0;
font-size: 14px;
}
.info-note {
background: #fff8dc;
border-left: 4px solid #7cb342;
border-radius: 8px;
padding: 14px;
margin-top: 20px;
}
.info-note p {
margin: 0;
font-size: 15px;
color: #1a1a1a;
line-height: 1.6;
}
.info-note strong {
color: #558b2f;
}
.email-footer {
padding: 16px 12px;
padding: 20px;
text-align: center;
background: #f8f9fa;
color: #777;
@@ -234,115 +232,132 @@ html(lang="it")
.divider {
height: 1px;
background: linear-gradient(to right, transparent, #e0e0e0, transparent);
margin: 24px 0;
margin: 20px 0;
}
@media only screen and (max-width: 600px) {
body {
padding: 5px;
padding: 10px;
}
.email-header {
padding: 16px 10px;
padding: 24px 16px;
}
.email-header h1 {
font-size: 24px;
font-size: 22px;
}
.welcome-icon {
font-size: 48px;
}
.email-body {
padding: 16px 10px;
}
.credentials-box {
padding: 20px 16px;
}
.credential-row {
flex-direction: column;
align-items: flex-start;
}
.credential-label {
margin-bottom: 4px;
font-size: 13px;
}
.credential-value {
font-size: 14px;
}
.cta-buttons-wrapper {
flex-direction: column;
gap: 12px;
}
.cta-button {
padding: 14px 24px;
font-size: 15px;
padding: 14px 32px;
font-size: 16px;
width: 100%;
max-width: 100%;
max-width: 300px;
}
.verification-process {
padding: 20px 16px;
}
.process-step {
padding: 12px;
}
.step-badge {
min-width: 36px;
height: 36px;
font-size: 16px;
margin-right: 12px;
}
.step-content h4 {
font-size: 15px;
}
.step-content p {
font-size: 14px;
}
}
body
.email-container
//- Header
.email-header
- var baseimg = baseurl + '/';
img.header-logo(src=baseimg+"images/logo.png" alt=nomeapp || 'Logo')
h1 Benvenuto #{name ? ', ' + name : username}
|&nbsp;su #{nomeapp || 'la nostra piattaforma'}!
- var baseimg = baseurl + '/';
img.header-logo(src=baseimg+"images/logo.png" alt=nomeapp || 'RISO')
h1 Benvenuto/a #{name ? name : username} su #{nomeapp}!
p.subtitle Rete Italiana Scambio Orizzontale
//- Body
.email-body
if !verified_email
.intro-text
| Verifica il tuo indirizzo email cliccando sul pulsante qui sotto.
| Per iniziare il tuo percorso in RISO, verifica il tuo indirizzo email cliccando sul pulsante qui sotto.
.cta-section
.cta-title 🔐 1. Verifica il tuo account
.cta-title 🔐 Verifica il tuo account
if strlinkreg
a.cta-button(href=strlinkreg target="_blank")
span.button-icon ✓
| Verifica Registrazione
| Verifica Email
.alternative-link
| Oppure copia e incolla questo link nel tuo browser:
br
a(href=strlinkreg target="_blank") #{strlinkreg}
//- Processo di verifica
.verification-process
.process-title
span.icon 📋
span.icon 🌱
| Il tuo percorso di ingresso in RISO
.process-steps
.process-step
.step-badge 1
.step-content
h4 ✓ Verifica la tua email:
p Cliccando sul bottone qui sopra.
h4 ✓ Verifica la tua email
p Clicca sul pulsante sopra per confermare il tuo indirizzo email.
.process-step.active
.step-badge 2
.step-content
h4 ⏳ In attesa di ammissione
p Il tuo invitante vedrà la tua richiesta. Riceverai un'email appena sarai ammesso !
p Il tuo invitante vedrà la tua richiesta. Riceverai un'email appena sarai ammesso!
.process-step
.step-badge 3
.step-content
h4 🎉 Accesso alla piattaforma
p Potrai così accedere e completare il tuo profilo per iniziare a fare parte della comunità RISO.
h4 🎯 Completa il tuo profilo
p Una volta ammesso, potrai completare il tuo profilo e iniziare a fare parte della comunità RISO.
.process-step
.step-badge 4
.step-content
h4 🍚 Inizia a scambiare
p Crea annunci, scambia beni e servizi, e partecipa agli eventi della tua comunità locale!
.info-note
p
strong 💡 Suggerimento:
| Se dovesse passare più di 24 ore, contatta il tuo invitante per ricordargli di ammetterti.
| Se dovessero passare più di 24 ore senza ammissione, contatta il tuo invitante per ricordargli di approvarti.
//- Footer
.email-footer
.divider
p Hai ricevuto questa email perché ti sei registrato su #{nomeapp || 'la nostra piattaforma'}
p(style="margin-top: 12px; font-size: 12px;")
| © #{new Date().getFullYear()} #{nomeapp || ''}.
p Hai ricevuto questa email perché ti sei registrato su #{nomeapp || 'RISO'}
p(style="margin-top: 12px; font-size: 12px;")
| #{new Date().getFullYear()} #{nomeapp || 'RISO'} - Rete Italiana Scambi Orizzontali
p(style="margin-top: 8px; font-size: 11px; color: #999;")
| Se non hai richiesto questa registrazione, ignora questa email.
| Se non hai richiesto questa registrazione, puoi semplicemente ignorare questa email.
p(style="margin-top: 12px; font-size: 12px;")
| 🍚 Comunità · Fiducia · Scambi Solidali · Sostenibilità

View File

@@ -1,26 +1,128 @@
p Ciao #{name},
p #{nomeapp} recentemente ha ricevuto una richiesta per una password dimenticata.
p Per cambiare la tua password di #{nomeapp}
p <a href=#{strlinksetpassword} target="_blank">Clicca QUI</a>
span Oppure inserisci il codice
span.grande #{tokenforgot_code}
span sulla APP
p
p P.S: Se non sei stato tu a richiedere questo cambiamento, non hai bisogno di fare niente.
p Questo link scadrà tra 4 ore.<br>
p Cordiali Saluti
p Supporto #{nomeapp}
style(type="text/css").
html, body {
padding: 0;
margin: 0;
}
.grande {
font-size: 1.25rem;
font-weight: bold;
}
doctype html
html(lang="it")
head
meta(charset="UTF-8")
meta(name="viewport" content="width=device-width, initial-scale=1.0")
title Recupera Password - #{nomeapp}
body(style="margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); background-color: #f5f7fa;")
// Container Principale
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 40px 20px;")
tr
td(align="center")
// Card Email
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background: #ffffff; border-radius: 24px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.16); overflow: hidden;")
// Header con Icona
tr
td(style="background: linear-gradient(to bottom, rgba(103, 126, 234, 0.08), transparent); padding: 40px 32px 32px; text-align: center; border-bottom: 1px solid rgba(0, 0, 0, 0.06);")
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%")
tr
td(align="center")
// Icona
div(style="width: 100px; height: 100px; margin: 0 auto 20px; background: linear-gradient(135deg, rgba(25, 118, 210, 0.15), rgba(38, 166, 154, 0.15)); border-radius: 50%; display: flex; align-items: center; justify-content: center;")
span(style="font-size: 48px; color: #1976d2;") 🔐
// Titolo
h1(style="margin: 0 0 12px; font-size: 28px; font-weight: 600; color: #1a1a1a; line-height: 1.3;") Recupera la tua Password
p(style="margin: 0; font-size: 16px; color: #666; line-height: 1.5;")
| Ciao
strong(style="color: #333;") #{name}
| , abbiamo ricevuto una richiesta per reimpostare la tua password
// Contenuto Principale
tr
td(style="padding: 32px;")
// Messaggio
p(style="margin: 0 0 24px; font-size: 16px; color: #333; line-height: 1.6;")
| Per cambiare la tua password di
strong #{nomeapp}
| , puoi utilizzare uno dei seguenti metodi:
// Metodo 1: Bottone Link
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="margin-bottom: 32px;")
tr
td(style="background: linear-gradient(to right, rgba(25, 118, 210, 0.08), transparent); padding: 24px; border-radius: 16px; border: 1px solid rgba(25, 118, 210, 0.15);")
p(style="margin: 0 0 16px; font-size: 14px; font-weight: 600; color: #1976d2; text-transform: uppercase; letter-spacing: 0.5px;") ✨ Metodo 1: Link Diretto
// Bottone CTA
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%")
tr
td(align="center" style="padding: 8px 0;")
a(href=strlinksetpassword target="_blank" style="display: inline-block; padding: 16px 48px; background: linear-gradient(135deg, #1976d2, #42a5f5); color: #ffffff; text-decoration: none; border-radius: 12px; font-size: 16px; font-weight: 600; box-shadow: 0 4px 16px rgba(25, 118, 210, 0.3);")
| 🔓 Reimposta Password
p(style="margin: 16px 0 0; font-size: 13px; color: #666; text-align: center;")
| Il link è valido per
strong(style="color: #f2c037;") 4 ore
// Divisore
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="margin: 24px 0;")
tr
td(style="position: relative; text-align: center;")
div(style="position: relative; height: 1px; background: linear-gradient(to right, transparent, rgba(0, 0, 0, 0.12), transparent);")
span(style="position: relative; top: -12px; display: inline-block; padding: 4px 16px; background: #ffffff; color: #666; font-size: 14px; font-weight: 500; border-radius: 12px; border: 1px solid rgba(0, 0, 0, 0.08);") oppure
// Metodo 2: Codice
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="margin-bottom: 24px;")
tr
td(style="background: linear-gradient(to right, rgba(33, 186, 69, 0.08), transparent); padding: 24px; border-radius: 16px; border: 1px solid rgba(33, 186, 69, 0.15);")
p(style="margin: 0 0 16px; font-size: 14px; font-weight: 600; color: #21ba45; text-transform: uppercase; letter-spacing: 0.5px;") 🔢 Metodo 2: Codice di Verifica
p(style="margin: 0 0 12px; font-size: 15px; color: #333;") Inserisci questo codice nell'app:
// Codice Box
div(style="background: #ffffff; border: 2px dashed #21ba45; border-radius: 12px; padding: 20px; text-align: center; margin: 16px 0;")
div(style="font-size: 36px; font-weight: 700; color: #1976d2; letter-spacing: 8px; font-family: 'Courier New', monospace;") #{tokenforgot_code}
p(style="margin: 12px 0 0; font-size: 13px; color: #666; text-align: center;")
| Copia e incolla il codice nell'app per confermare
// Warning Box
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%")
tr
td(style="background: rgba(242, 192, 55, 0.1); padding: 16px; border-radius: 12px; border-left: 4px solid #f2c037;")
p(style="margin: 0; font-size: 14px; color: #666; line-height: 1.6;")
strong(style="color: #333;") ⚠️ Importante:
br
| Se non sei stato tu a richiedere questo cambiamento, ignora questa email. La tua password rimarrà invariata.
// Footer
tr
td(style="background: linear-gradient(to top, rgba(0, 0, 0, 0.02), transparent); padding: 32px; text-align: center; border-top: 1px solid rgba(0, 0, 0, 0.06);")
p(style="margin: 0 0 8px; font-size: 15px; color: #333; font-weight: 600;") Cordiali Saluti
p(style="margin: 0 0 20px; font-size: 15px; color: #1976d2; font-weight: 600;")
| Supporto #{nomeapp}
// Info Footer
p(style="margin: 0; font-size: 13px; color: #999; line-height: 1.6;")
| Questa è una email automatica, per favore non rispondere.
br
| © #{new Date().getFullYear()} #{nomeapp}. Tutti i diritti riservati.
// Versione Mobile (per client email che non supportano media queries)
table(role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="max-width: 600px; margin: 0 auto; display: none;")
tr
td
style(type="text/css").
@media only screen and (max-width: 600px) {
table[class="mobile-responsive"] {
width: 100% !important;
}
td[class="mobile-padding"] {
padding: 20px 16px !important;
}
h1 {
font-size: 24px !important;
}
.code-box {
font-size: 28px !important;
letter-spacing: 4px !important;
}
}