Doug Lauder
2023-03-22 17:22:27 -04:00
коммит произвёл GitHub
родитель b61c096497
Коммит c943ed6859
13276 изменённых файлов: 1695615 добавлений и 223189 удалений

Просмотреть файл

@@ -0,0 +1,5 @@
<mj-section padding-top="0px" border-left="1px solid #E5E5E5" border-right="1px solid #E5E5E5">
<mj-column padding="0px">
<mj-image src="{{.Props.SiteURL}}/static/images/cloud-laptop-error.png" width="320px" padding="0px" />
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,5 @@
<mj-section padding-top="0px" border-left="1px solid #E5E5E5" border-right="1px solid #E5E5E5">
<mj-column padding="0px">
<mj-image src="{{.Props.SiteURL}}/static/images/cloud-laptop-warning.png" width="320px" padding="0px" />
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,23 @@
<mj-section padding-top="0px" border-left="1px solid #E5E5E5" border-right="1px solid #E5E5E5">
<mj-column padding="0">
<mj-text font-size="16px" font-family="Open Sans, sans-serif" font-weight="600" align="left" padding="0px" padding-bottom="0px" padding-left="48px" >
{{.Props.QuestionTitle}}
</mj-text>
<mj-text color="#3F4350" font-size="14px" align="left" padding-left="48px" padding-bottom="0px">
{{.Props.QuestionInfo}}
<a href="mailto:{{.Props.SupportEmail}}">
{{.Props.SupportEmail}}</a>
</mj-text>
</mj-column>
<mj-column padding-bottom="0px">
<mj-divider border-width="1px" border-color="#E5E5E5"></mj-divider>
</mj-column>
</mj-section>
<mj-section padding-top="0px" padding-bottom="24px" border-bottom="1px solid #E5E5E5" border-left="1px solid #E5E5E5" border-right="1px solid #E5E5E5">
<mj-column padding="0">
<mj-text font-size="12px" color="#AAAAAA" padding="0">
{{.Props.Organization}}
{{.Props.FooterV2}}
</mj-text>
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,16 @@
<mj-section padding="0 60px" border-left="1px solid #E5E5E5" border-right="1px solid #E5E5E5">
<mj-column>
<mj-text css-class="title" font-family="Open Sans, sans-serif" padding="10px 0px">
{{.Props.Title}}
</mj-text>
<mj-text padding-bottom="16px" font-weight=400 color="#3F4350" font-size="16px" line-height="24px" color="#000000" font-family="Open Sans, sans-serif">
{{.Props.SubTitle1}}
</mj-text>
<mj-text padding-bottom="24px" padding-top="0px" font-weight=400 color="#3F4350" font-size="16px" line-height="24px" color="#000000" font-family="Open Sans, sans-serif">
{{.Props.SubTitle2}}
</mj-text>
<mj-button href="{{.Props.SiteURL}}/admin_console/billing/subscription?action=show_delinquency_modal" padding="0px" padding-bottom="40px" border-top="16px" font-weight="400 !important" css-class="button-cloud" font-family="Open Sans, sans-serif">
{{.Props.Button}}
</mj-button>
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,24 @@
<mj-section padding="0 60px" border-left="1px solid #E5E5E5" border-right="1px solid #E5E5E5">
<mj-column>
<mj-text padding-left="25px" align="left" css-class="title" font-family="Open Sans, sans-serif" padding="10px 0px">
{{.Props.Title}}
</mj-text>
<mj-text align="left" padding-bottom="16px" font-weight=400 color="#3F4350" font-size="16px" line-height="24px" font-family="Open Sans, sans-serif">
{{.Props.SubTitle1}}
</mj-text>
<mj-text align="left" padding-bottom="16px" padding-top="0px" font-weight=400 color="#3F4350" font-size="16px" line-height="24px" font-family="Open Sans, sans-serif">
{{.Props.SubTitle2}}
</mj-text>
<mj-text align="left" padding-bottom="24px" padding-top="0px" font-weight=400 color="#3F4350" font-size="16px" line-height="24px" font-family="Open Sans, sans-serif">
{{.Props.SubTitle3}}
</mj-text>
<mj-button href="{{.Props.SiteURL}}/admin_console/billing/subscription?action=show_delinquency_modal" padding="0px" border-top="16px" font-weight="400 !important" css-class="button-cloud" font-family="Open Sans, sans-serif">
{{.Props.Button}}
</mj-button>
{{if .IncludeSecondaryActionButton}}
<mj-button color="#166DE0" align="center" padding-top="12px" padding-bottom="24px" font-weight="600" href="{{.Props.SiteURL}}/admin_console/billing/subscription?action=show_pricing_modal">
{{.Props.SecondaryActionButtonText}}
</mj-button>
{{end}}
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,5 @@
<mj-section padding-top="0px" border-left="1px solid #E5E5E5" border-right="1px solid #E5E5E5">
<mj-column padding="0px">
<mj-image src="{{.Props.SiteURL}}/static/images/cloud-upgrade-person-hand-to-face.png" width="320px" padding="0px" />
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,8 @@
<mj-section padding="0px">
<mj-column>
<mj-text css-class="emailFooter" padding="0px">
{{.Props.Organization}}
{{.Props.FooterV2}}
</mj-text>
</mj-column>
</mj-section>

11
server/templates/partials/header.mjml Обычный файл
Просмотреть файл

@@ -0,0 +1,11 @@
<mj-section padding="0px 24px 40px 24px">
<mj-column>
<mj-text css-class="title" padding="0px">
{{.Props.Title}}
</mj-text>
<mj-text css-class="subTitle" padding="16px 24px 16px 24px">
{{.Props.SubTitle}}
</mj-text>
<mj-button href="{{.Props.ButtonURL}}" padding="0px" css-class="button">{{.Props.Button}}</mj-button>
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,16 @@
<mj-section padding="0px 24px 40px 24px">
<mj-column>
<mj-text css-class="title" padding="0px">
{{.Props.Title}}
</mj-text>
<mj-text css-class="subTitle" padding="16px 24px 0px 24px">
{{.Props.SubTitle1}}<a href="{{.Props.SiteURL}}">{{.Props.ServerURL}}</a>
</mj-text>
<mj-raw>{{if .Props.ButtonURL}}</mj-raw>
<mj-text css-class="subTitle" padding="0px 24px 16px 24px">
{{.Props.SubTitle2}}
</mj-text>
<mj-button href="{{.Props.ButtonURL}}" padding="0px" css-class="button">{{.Props.Button}}</mj-button>
<mj-raw>{{end}}</mj-raw>
</mj-column>
</mj-section>

5
server/templates/partials/logo.mjml Обычный файл
Просмотреть файл

@@ -0,0 +1,5 @@
<mj-section padding="0px 0px 40px 0px">
<mj-column>
<mj-image mj-class="logo" src="{{.Props.SiteURL}}/static/images/logo_email_dark.png" />
</mj-column>
</mj-section>

Просмотреть файл

@@ -0,0 +1,146 @@
.messageAttachments * {
font-family: Open Sans, sans-serif !important;
}
.messageAttachmentContent {
padding: 0px;
border: 1px solid rgba(63, 67, 80, 0.16);
margin-bottom: 20px;
border-radius: 0 4px 4px 0;
}
.messageAttachmentContent > table, .attachment__body {
font-family: Open Sans, sans-serif;
text-align: left;
font-size: 14px;
line-height: 20px;
color: #3F4350;
}
.messageAttachmentContent .attachment__author-icon {
width: 14px;
height: 14px;
margin-right: 5px;
border-radius: 50px;
vertical-align: middle;
}
.attachment__author-name {
opacity: 0.6;
}
.messageAttachmentContent p {
margin: 0;
}
.attachment__title {
padding: 0;
margin: 5px 0;
font-size: 14px;
font-weight: 600;
line-height: 18px;
}
.attachment__image {
max-height: 300px;
border: 1px solid transparent;
margin-bottom: 1em;
}
.attachment__thumb-image {
max-width: 100%;
max-height: 75px;
}
.attachment__thumb-container {
max-width: 80px;
width: max-content;
}
.attachment__wrapper {
width: 100%;
display: flex;
flex-direction: row;
gap: 12px;
}
.attachment__body {
flex: 1;
}
.messageAttachmentContent > table.attachment__footer-container {
color: #a3a3a3;
font-size: 12px;
}
.attachment__footer-icon {
width: 16px;
height: 16px;
}
.attachment__footer-container {
color: #a3a3a3;
font-size: 12px;
}
.messageAttachment_title {
padding-top: 1em;
font-weight: 600;
margin-bottom: 4px;
}
.pretext h1 {
font-size: 28px;
line-height: 32px;
}
.pretext h2 {
font-size: 25px;
line-height: 30px;
}
.pretext h3 {
font-size: 22px;
line-height: 25px;
}
.pretext h4 {
font-size: 19px;
line-height: 24px;
}
.pretext h5 {
font-size: 15px;
line-height: 20px;
}
.pretext h6 {
font-size: 1em;
line-height: 1.4em;
}
.pretext > * {
margin-bottom: 16px;
}
.messageAttachments {
margin-top: 22px;
}
.messageAttachments h1, h2, h3, h4, h5, h6 {
font-weight: 500;
}
code {
padding: 2px 4px;
font-size: 90%;
background-color: rgba(63, 67, 80, 0.1);
border-radius: 4px;
}
.messageAttachments a {
background-color: unset !important;
border: none !important;
padding: unset !important;
}

Просмотреть файл

@@ -0,0 +1,95 @@
{{if .MessageAttachments}}
<div class="messageAttachments">
{{range .MessageAttachments}}
<div class="messageAttachment" style="vertical-align:top;" width="100%">
<div class="pretext" style="font-family: Open Sans, sans-serif; text-align: left; font-size: 14px; line-height: 20px; color: #3F4350; padding: 0px;">
{{.Pretext}}
</div>
<div class="messageAttachmentContent" style="border-left: 4px solid {{.Color}}; padding: 12px;">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top; font-size: 14px" width="100%">
<tbody>
{{if or .AuthorIcon .AuthorName}}
<tr>
<td>
{{if .AuthorLink}}<a href="{{.AuthorLink}}">{{end}}
{{if .AuthorIcon}}<img class="attachment__author-icon" alt="attachment author icon" src="{{.AuthorIcon}}"/>{{end}}
{{if .AuthorName}}<span class="attachment__author-name">{{.AuthorName}}</span>{{end}}
{{if .AuthorLink}}</a>{{end}}
</td>
</tr>
{{end}}
{{if .Title}}
<tr>
<td>
<h1 class="attachment__title">
{{if .TitleLink}}<a href="{{.TitleLink}}">{{end}}
{{.Title}}
{{if .Title}}</a>{{end}}
</h1>
</td>
</tr>
{{end}}
</tbody>
</table>
<div class="attachment__wrapper">
<div class="attachment__body">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top; font-size: 14px; color: #3F4350;" width="100%">
<tbody>
<tr>
<td vertical-align="middle" class="messageButton">
<div>{{.Text}}</div>
</td>
</tr>
{{if .ImageURL}}
<tr>
<td>
<img class="attachment__image" src="{{.ImageURL}}"/>
</td>
</tr>
{{end}}
</table>
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top; font-size: 14px; table-layout: fixed; margin-bottom: 0.7em;" width="100%">
{{range .FieldRows}}
<tr class="messageAttachment_row">
{{ $length := len .Cells }}
{{range .Cells}}
<td
class="messageAttachment_field"
{{ if eq $length 1 }}colspan="2"{{end}}
>
<div class="messageAttachment_title">{{.Title}}</div>
<div>{{.Value}}</div>
</td>
{{end}}
</tr>
{{end}}
</table>
</div>
{{if .ThumbURL}}
<div class="attachment__thumb-container">
<img class="attachment__thumb-image" src="{{.ThumbURL}}"/>
</div>
{{end}}
</div>
{{if .Footer}}
<table class="attachment__footer-container" border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top; font-size: 14px" width="100%">
<tbody>
<tr>
<td>
{{if .FooterIcon}}<img class="attachment__footer-icon" src="{{.FooterIcon}}" style="vertical-align: middle;"/>{{end}}
<span style="font-size: 12px;">{{.Footer}}</span>
</td>
</tr>
</tbody>
</table>
{{end}}
</div>
</div>
{{end}}
</div>
{{end}}

Просмотреть файл

@@ -0,0 +1,5 @@
<!-- this empty mj attribute tag is required by MJML to compile successfully -->
<mj-attributes/>
<mj-include type="css" path="message_attachment.css"/>
<mj-include type="css" css-inline="inline" path="message_attachment.css"/>

Просмотреть файл

@@ -0,0 +1,3 @@
<mj-column css-class="messageAvatarCol">
<mj-image css-class="messageAvatar" src="cid:{{.SenderPhoto}}" padding="0px" />
</mj-column>

Просмотреть файл

@@ -0,0 +1,5 @@
<mj-column width=100%>
<mj-raw>{{if .MessageURL}}</mj-raw>
<mj-button href="{{.MessageURL}}" padding="16px 0px 0px 0px" css-class="messageButton">{{$.Props.MessageButton}}</mj-button>
<mj-raw>{{end}}</mj-raw>
</mj-column>

Просмотреть файл

@@ -0,0 +1,14 @@
<mj-raw>{{if .Props.SupportEmail}}</mj-raw>
<mj-section padding="16px 0px 40px 0px">
<mj-column>
<mj-text css-class="footerTitle" padding="0px">
{{.Props.QuestionTitle}}
</mj-text>
<mj-text css-class="footerInfo" padding="0px">
{{.Props.QuestionInfo}}
<a href="mailto:{{.Props.SupportEmail}}">
{{.Props.SupportEmail}}</a>
</mj-text>
</mj-column>
</mj-section>
<mj-raw>{{end}}</mj-raw>

Просмотреть файл

@@ -0,0 +1,30 @@
<mj-column css-class="senderInfoCol" width=90% >
<mj-raw>
<tr>
<td>
<div class="postNameAndTime">
<div class="senderName">{{.SenderName}}</div>
{{if .Time}}
<div class="time">{{.Time}}</div>
{{end}}
{{if .ChannelName}}
<div class="channelBg">
{{if .ShowChannelIcon}}
<div class="channelLogo"><img src="{{$.Props.SiteURL}}/static/images/channel_icon.png" width=10px height=10px></img></div>
{{end}}
<div class="channelName">
{{if .OtherChannelMembersCount}}
<span class="gmChannelCount">{{.OtherChannelMembersCount}}</span>
{{end}}
{{.ChannelName}}
</div>
</div>
{{end}}
</div>
</td>
</tr>
</mj-raw>
<mj-text css-class="senderMessage" padding="0px">
{{.Message}}
</mj-text>
</mj-column>

246
server/templates/partials/style.css Обычный файл
Просмотреть файл

@@ -0,0 +1,246 @@
@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,600,700);
.emailBody {
background-color: #F3F3F3
}
.emailBody a{
text-decoration: none !important;
color: #1C58D9;
}
.title div {
font-weight: 600 !important;
font-size: 28px !important;
line-height: 36px !important;
letter-spacing: -0.01em !important;
color: #3F4350 !important;
font-family: Open Sans, sans-serif !important;
}
.subTitle div {
font-size: 16px !important;
line-height: 24px !important;
color: rgba(63, 67, 80, 0.64) !important;
}
.subTitle a {
color: rgb(28, 88, 217) !important;
}
.button a {
background-color: #1C58D9 !important;
font-weight: 600 !important;
font-size: 16px !important;
line-height: 18px !important;
color: #FFFFFF !important;
padding: 15px 24px !important;
}
.button-cloud a {
background-color: #1C58D9 !important;
font-weight: 400 !important;
font-size: 16px !important;
line-height: 18px !important;
color: #FFFFFF !important;
padding: 15px 24px !important;
}
.messageButton a{
background-color: #FFFFFF !important;
border: 1px solid #FFFFFF !important;
box-sizing: border-box !important;
color: #1C58D9 !important;
padding: 12px 20px !important;
font-weight: 600 !important;
font-size: 14px !important;
line-height: 14px !important;
}
.info div {
font-size: 14px !important;
line-height: 20px !important;
color: #3F4350 !important;
padding: 40px 0px !important;
}
.footerTitle div {
font-weight: 600 !important;
font-size: 16px !important;
line-height: 24px !important;
color: #3F4350 !important;
padding: 0px 0px 4px 0px !important;
}
.footerInfo div {
font-size: 14px !important;
line-height: 20px !important;
color: #3F4350 !important;
padding: 0px 48px 0px 48px !important;
}
.footerInfo a {
color: #1C58D9 !important;
}
.appDownloadButton a{
background-color: #FFFFFF !important;
border: 1px solid #1C58D9 !important;
box-sizing: border-box !important;
color: #1C58D9 !important;
padding: 13px 20px !important;
font-weight: 600 !important;
font-size: 14px !important;
line-height: 14px !important;
}
.emailFooter div {
font-size: 12px !important;
line-height: 16px !important;
color: rgba(63, 67, 80, 0.56) !important;
padding: 8px 24px 8px 24px !important;
}
.postCard {
padding: 0px 24px 40px 24px !important;
}
.messageCard {
background: #FFFFFF !important;
border: 1px solid rgba(61, 60, 64, 0.08) !important;
box-sizing: border-box !important;
box-shadow: 0px 8px 24px rgba(0, 0, 0, 0.12) !important;
border-radius: 4px !important;
padding: 32px !important;
}
.messageAvatar img {
width: 32px !important;
height: 32px !important;
padding: 0px !important;
border-radius: 32px !important;
}
.messageAvatarCol {
width: 32px !important;
}
.postNameAndTime {
padding: 0px 0px 4px 0px !important;
display: flex;
}
.senderName {
font-family: Open Sans, sans-serif;
text-align: left !important;
font-weight: 600 !important;
font-size: 14px !important;
line-height: 20px !important;
color: #3F4350 !important;
}
.time {
font-family: Open Sans, sans-serif;
font-size: 12px;
line-height: 16px;
color: rgba(63, 67, 80, 0.56);
padding: 2px 6px;
align-items: center;
float: left;
}
.channelBg {
background: rgba(63, 67, 80, 0.08);
border-radius: 4px;
display: flex;
padding-left: 4px;
}
.channelLogo {
width: 10px;
height: 10px;
padding: 5px 4px 5px 6px;
float: left;
}
.channelName {
font-family: Open Sans, sans-serif;
font-weight: 600;
font-size: 10px;
line-height: 16px;
letter-spacing: 0.01em;
text-transform: uppercase;
color: rgba(63, 67, 80, 0.64);
padding: 2px 6px 2px 0px;
}
.gmChannelCount {
background-color: rgba(63, 67, 80, 0.2);
padding: 0 5px;
border-radius: 2px;
margin-right: 2px;
}
.senderMessage div {
text-align: left !important;
font-size: 14px !important;
line-height: 20px !important;
color: #3F4350 !important;
padding: 0px !important;
}
.senderInfoCol {
width: 394px !important;
padding: 0px 0px 0px 12px !important;
}
@media all and (min-width: 541px) {
.emailBody {
padding: 32px !important;
}
}
@media all and (max-width: 540px) and (min-width: 401px) {
.emailBody {
padding: 16px !important;
}
.messageCard {
padding: 16px !important;
}
.senderInfoCol {
width: 80% !important;
padding: 0px 0px 0px 12px !important;
}
}
@media all and (max-width: 400px) {
.emailBody {
padding: 0px !important;
}
.footerInfo div {
padding: 0px !important;
}
.messageCard {
padding: 16px !important;
}
.postCard {
padding: 0px 0px 40px 0px !important;
}
.senderInfoCol {
width: 80% !important;
padding: 0px 0px 0px 12px !important;
}
}
@media only screen and (min-width:480px) {
.mj-column-per-50 {
width: 100% !important;
max-width: 100% !important;
}
}

11
server/templates/partials/style.mjml Обычный файл
Просмотреть файл

@@ -0,0 +1,11 @@
<mj-attributes>
<mj-raw><link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,600,700" rel="stylesheet" type="text/css"></link></mj-raw>
<mj-text font-family="Open Sans, sans-serif" align="center" />
<mj-button font-family="Open Sans, sans-serif" background-color="#FFFFFF" border-radius="4px" padding="0px" />
<mj-image alt="" align="center" />
<mj-class name="email" align="center" padding="24px" background-color="#FFFFFF" border-radius="8px" />
<mj-class name="logo" width="132px" height="21.76px" padding="0px" />
</mj-attributes>
<mj-include type="css" path="./style.css"/>
<mj-include type="css" css-inline="inline" path="./style.css"/>

12
server/templates/partials/verify.mjml Обычный файл
Просмотреть файл

@@ -0,0 +1,12 @@
<mj-section padding="0px">
<mj-column>
<mj-image src="{{.Props.SiteURL}}/static/images/welcome_illustration_new.png" width="320px" padding="0px" />
</mj-column>
</mj-section>
<mj-section padding="0px">
<mj-column>
<mj-text css-class="info" padding="0px">
{{.Props.Info}}<br>{{.Props.Info1}}
</mj-text>
</mj-column>
</mj-section>