v1.3.0 Restructure Saxonite workspace and upgrade to .NET 10 (#1)
Move Saxonite’s projects into a dedicated `Workspace` folder and align the solution with .NET 10 and the current Common workspace. Update encryption integration, test project structure and coverage, and repository guidance and upgrade notes. - Relocate application and library projects while retaining Git rename history. - Split tests into Admin, Online, and Shared projects; add representative behavioral and serialization tests. - Update Common integration, application version, and repository documentation. Application version: 1.3.0 Reviewed-on: #1 Co-authored-by: andy <andy@sarand.com>
This commit was merged in pull request #1.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Information"
|
||||
}
|
||||
},
|
||||
"EmailConfigs": {
|
||||
"SAX-SF-Dev": {
|
||||
"Message": {
|
||||
"AddressFrom": "DoNotReply@sportierre.com"
|
||||
},
|
||||
"SMTP": {
|
||||
"Server": "smtp.ionos.co.uk",
|
||||
"ServerPort": 587,
|
||||
"UseSSL": true
|
||||
},
|
||||
"Send": {
|
||||
"Using": 2,
|
||||
"UserName": "info@sportierre.com",
|
||||
"Password": "5p0rTi3rre-info-2021!"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"AppConfigs": {
|
||||
"Saxonite-Dev": {
|
||||
"Environments": [ "Development" ],
|
||||
"Instance": "Dev",
|
||||
"URLs": {
|
||||
"Online": {
|
||||
"Root": "https://localhost:44364/"
|
||||
}
|
||||
},
|
||||
"Databases": {
|
||||
"Core": {
|
||||
"Location": "MsSql:Sarand110\\SQL2016.Saxonite_Core_Dev",
|
||||
"User": "saxonite",
|
||||
"Password": "sax-dev-2021"
|
||||
},
|
||||
"Support": {
|
||||
"Location": "MsSql:Sarand110\\SQL2016.Saxonite_Support_Dev",
|
||||
"User": "saxonite",
|
||||
"Password": "sax-dev-2021"
|
||||
},
|
||||
"Reference": {
|
||||
"Location": "MsSql:Sarand110\\SQL2016.Saxonite_Reference_Dev",
|
||||
"User": "saxonite",
|
||||
"Password": "sax-dev-2021"
|
||||
}
|
||||
},
|
||||
"Email": {
|
||||
"Context": "SAX-SF-Dev",
|
||||
"ContactUs": {
|
||||
"AddressesTo": [ "info@sportierre.com" ]
|
||||
}
|
||||
},
|
||||
"Documents": {
|
||||
"RootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2022\\Saxonite\\Docs"
|
||||
},
|
||||
"Logging": {
|
||||
"RootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2022\\Saxonite\\Logs"
|
||||
}
|
||||
},
|
||||
"Saxonite-Test": {
|
||||
"Environments": [ "Production" ],
|
||||
"Instance": "QC",
|
||||
"Databases": {
|
||||
"Core": {
|
||||
"Location": "MsSql:Sarand110\\SQL2016.Saxonite_Core_Dev",
|
||||
"User": "saxonite",
|
||||
"Password": "sax-dev-2021"
|
||||
}
|
||||
},
|
||||
"Email": {
|
||||
"Context": "SAX-SF-Dev",
|
||||
"ContactUs": {
|
||||
"AddressesTo": [ "info@sportierre.com" ],
|
||||
"AddressesBcc": []
|
||||
|
||||
}
|
||||
},
|
||||
"Documents": {
|
||||
"RootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2022\\Saxonite\\Docs"
|
||||
},
|
||||
"Logging": {
|
||||
"RootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2022\\Saxonite\\QC\\Logs"
|
||||
},
|
||||
"Variants": [
|
||||
{
|
||||
"ApplicationRootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2022\\Saxonite\\QC2\\App",
|
||||
"Instance": "QC",
|
||||
"Logging": {
|
||||
"RootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2022\\Saxonite\\QC2\\Logs"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"AppConfigs": {
|
||||
"SAX-Prod": {
|
||||
"Environments": [ "Production", "Demo", "Staging" ],
|
||||
"Instance": "Demo",
|
||||
"URLs": {
|
||||
"Online": {
|
||||
"Root": "https://sportierre.com/"
|
||||
}
|
||||
},
|
||||
"Databases": {
|
||||
"Core": {
|
||||
"Location": "MsSql:.\\SQL2016Exp.Saxonite_Core_Demo",
|
||||
"User": "sax-demo-user",
|
||||
"Password": "sax-demo-202105"
|
||||
},
|
||||
"Reference": {
|
||||
"Location": "MsSql:.\\SQL2016Exp.Saxonite_Reference_Demo",
|
||||
"User": "sax-demo-user",
|
||||
"Password": "sax-demo-202105"
|
||||
},
|
||||
"Support": {
|
||||
"Location": "MsSql:.\\SQL2016Exp.Saxonite_Support_Demo",
|
||||
"User": "sax-demo-user",
|
||||
"Password": "sax-demo-202105"
|
||||
}
|
||||
},
|
||||
"Security": {
|
||||
"Password": {
|
||||
"MinLength": 9
|
||||
},
|
||||
"SignIn": {
|
||||
"KeepLoggedIn": {
|
||||
"Allowed": true,
|
||||
"CookieExpiresDays": 5
|
||||
},
|
||||
"PasswordRequest": {
|
||||
"LinkExpiresMins": 30
|
||||
}
|
||||
}
|
||||
},
|
||||
"Email": {
|
||||
"Context": "SAX-SF-Prod",
|
||||
"ContactUs": {
|
||||
"AddressesTo": [],
|
||||
"AddressesBcc": [ "info@sportierre.com" ]
|
||||
},
|
||||
"Signup": {
|
||||
"Activate": {
|
||||
"AddressesBcc": [ "info@sportierre.com" ]
|
||||
},
|
||||
"Welcome": {
|
||||
"AddressesBcc": [ "info@sportierre.com" ]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Documents": {
|
||||
"RootFolder": "C:\\Sarand\\Saxonite\\Demo\\Docs"
|
||||
},
|
||||
"Logging": {
|
||||
"RootFolder": "C:\\Sarand\\Saxonite\\Demo\\Logs"
|
||||
},
|
||||
"Variants": [
|
||||
{
|
||||
"ApplicationRootFolder": "C:\\Sarand\\Saxonite\\Prod",
|
||||
"Instance": "Prod",
|
||||
"Documents": {
|
||||
"RootFolder": "C:\\Sarand\\Saxonite\\Prod\\Docs"
|
||||
},
|
||||
"Logging": {
|
||||
"RootFolder": "C:\\Sarand\\Saxonite\\Prod\\Logs"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"EmailConfigs": {
|
||||
"SAX-SF-Prod": {
|
||||
"Message": {
|
||||
"AddressFrom": "DoNotReply@sportierre.com"
|
||||
},
|
||||
"SMTP": {
|
||||
"Server": "smtp.ionos.co.uk",
|
||||
"ServerPort": 587,
|
||||
"UseSSL": true
|
||||
},
|
||||
"Send": {
|
||||
"Using": 2,
|
||||
"UserName": "info@sportierre.com",
|
||||
"Password": "5p0rTi3rre-info-2021!"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Information"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"Versions": [
|
||||
{
|
||||
"On": "2026-10-16",
|
||||
"Version": "1.3.0",
|
||||
"Topics": [
|
||||
"Upgrade to .NET 10 and align with the current Common APIs.",
|
||||
"Migrate protected data to authenticated encryption.",
|
||||
"Move application projects and tests under the Workspace folder.",
|
||||
"Align test tooling with Common using NUnit 4."
|
||||
]
|
||||
},
|
||||
{
|
||||
"On": "2021-05-03",
|
||||
"Version": "1.0.0",
|
||||
"Topics": [
|
||||
"Admin/Online security.",
|
||||
"Admin Users, Organisations, Regions, Sports",
|
||||
"Online Journalist Articles (header)."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,282 @@
|
||||
Australia and New Zealand
|
||||
AU:Australia
|
||||
NZ:New Zealand
|
||||
NF:Norfolk Island
|
||||
Caribbean
|
||||
AI:Anguilla
|
||||
AG:Antigua and Barbuda
|
||||
AW:Aruba
|
||||
BS:Bahamas
|
||||
BB:Barbados
|
||||
VG:British Virgin Islands
|
||||
KY:Cayman Islands
|
||||
CU:Cuba
|
||||
DM:Dominica
|
||||
DO:Dominican Republic
|
||||
GD:Grenada
|
||||
GP:Guadeloupe
|
||||
HT:Haiti
|
||||
JM:Jamaica
|
||||
MQ:Martinique
|
||||
MS:Montserrat
|
||||
AN:Netherlands Antilles
|
||||
PR:Puerto Rico
|
||||
BL:Saint Barthélemy
|
||||
KN:Saint Kitts and Nevis
|
||||
LC:Saint Lucia
|
||||
MF:Saint Martin
|
||||
VC:Saint Vincent and the Grenadines
|
||||
TT:Trinidad and Tobago
|
||||
TC:Turks and Caicos Islands
|
||||
VI:U.S. Virgin Islands
|
||||
Central America
|
||||
BZ:Belize
|
||||
CR:Costa Rica
|
||||
SV:El Salvador
|
||||
GT:Guatemala
|
||||
HN:Honduras
|
||||
MX:Mexico
|
||||
NI:Nicaragua
|
||||
PA:Panama
|
||||
Central Asia
|
||||
KZ:Kazakhstan
|
||||
KG:Kyrgyzstan
|
||||
TJ:Tajikistan
|
||||
TM:Turkmenistan
|
||||
UZ:Uzbekistan
|
||||
Channel Islands
|
||||
GG:Guernsey
|
||||
JE:Jersey
|
||||
Commonwealth of Independent States
|
||||
AM:Armenia
|
||||
AZ:Azerbaijan
|
||||
BY:Belarus
|
||||
GE:Georgia
|
||||
KZ:Kazakhstan
|
||||
KG:Kyrgyzstan
|
||||
MD:Moldova
|
||||
RU:Russia
|
||||
TJ:Tajikistan
|
||||
TM:Turkmenistan
|
||||
UA:Ukraine
|
||||
UZ:Uzbekistan
|
||||
Eastern Africa
|
||||
BI:Burundi
|
||||
KM:Comoros
|
||||
DJ:Djibouti
|
||||
ER:Eritrea
|
||||
ET:Ethiopia
|
||||
KE:Kenya
|
||||
MG:Madagascar
|
||||
MW:Malawi
|
||||
MU:Mauritius
|
||||
YT:Mayotte
|
||||
MZ:Mozambique
|
||||
RW:Rwanda
|
||||
RE:Réunion
|
||||
SC:Seychelles
|
||||
SO:Somalia
|
||||
TZ:Tanzania
|
||||
UG:Uganda
|
||||
ZM:Zambia
|
||||
ZW:Zimbabwe
|
||||
Eastern Asia
|
||||
CN:China
|
||||
HK:Hong Kong SAR China
|
||||
JP:Japan
|
||||
MO:Macau SAR China
|
||||
MN:Mongolia
|
||||
KP:North Korea
|
||||
KR:South Korea
|
||||
TW:Taiwan
|
||||
Eastern Europe
|
||||
BY:Belarus
|
||||
BG:Bulgaria
|
||||
CZ:Czech Republic
|
||||
HU:Hungary
|
||||
MD:Moldova
|
||||
PL:Poland
|
||||
RO:Romania
|
||||
RU:Russia
|
||||
SK:Slovakia
|
||||
UA:Ukraine
|
||||
SU:Union of Soviet Socialist Republics
|
||||
Melanesia
|
||||
FJ:Fiji
|
||||
NC:New Caledonia
|
||||
PG:Papua New Guinea
|
||||
SB:Solomon Islands
|
||||
VU:Vanuatu
|
||||
Micronesian Region
|
||||
GU:Guam
|
||||
KI:Kiribati
|
||||
MH:Marshall Islands
|
||||
FM:Micronesia
|
||||
NR:Nauru
|
||||
MP:Northern Mariana Islands
|
||||
PW:Palau
|
||||
Middle Africa
|
||||
AO:Angola
|
||||
CM:Cameroon
|
||||
CF:Central African Republic
|
||||
TD:Chad
|
||||
CG:Congo - Brazzaville
|
||||
CD:Congo - Kinshasa
|
||||
GQ:Equatorial Guinea
|
||||
GA:Gabon
|
||||
ST:São Tomé and Príncipe
|
||||
Northern Africa
|
||||
DZ:Algeria
|
||||
EG:Egypt
|
||||
LY:Libya
|
||||
MA:Morocco
|
||||
SD:Sudan
|
||||
TN:Tunisia
|
||||
EH:Western Sahara
|
||||
Northern America
|
||||
BM:Bermuda
|
||||
CA:Canada
|
||||
GL:Greenland
|
||||
PM:Saint Pierre and Miquelon
|
||||
US:United States
|
||||
Northern Europe
|
||||
DK:Denmark
|
||||
EE:Estonia
|
||||
FO:Faroe Islands
|
||||
FI:Finland
|
||||
GG:Guernsey
|
||||
IS:Iceland
|
||||
IE:Ireland
|
||||
IM:Isle of Man
|
||||
JE:Jersey
|
||||
LV:Latvia
|
||||
LT:Lithuania
|
||||
NO:Norway
|
||||
SJ:Svalbard and Jan Mayen
|
||||
SE:Sweden
|
||||
GB:United Kingdom
|
||||
AX:Åland Islands
|
||||
Polynesia
|
||||
AS:American Samoa
|
||||
CK:Cook Islands
|
||||
PF:French Polynesia
|
||||
NU:Niue
|
||||
PN:Pitcairn Islands
|
||||
WS:Samoa
|
||||
TK:Tokelau
|
||||
TO:Tonga
|
||||
TV:Tuvalu
|
||||
WF:Wallis and Futuna
|
||||
South America
|
||||
AR:Argentina
|
||||
BO:Bolivia
|
||||
BR:Brazil
|
||||
CL:Chile
|
||||
CO:Colombia
|
||||
EC:Ecuador
|
||||
FK:Falkland Islands
|
||||
GF:French Guiana
|
||||
GY:Guyana
|
||||
PY:Paraguay
|
||||
PE:Peru
|
||||
SR:Suriname
|
||||
UY:Uruguay
|
||||
VE:Venezuela
|
||||
South-Eastern Asia
|
||||
BN:Brunei
|
||||
KH:Cambodia
|
||||
ID:Indonesia
|
||||
LA:Laos
|
||||
MY:Malaysia
|
||||
MM:Myanmar [Burma]
|
||||
PH:Philippines
|
||||
SG:Singapore
|
||||
TH:Thailand
|
||||
TL:Timor-Leste
|
||||
VN:Vietnam
|
||||
Southern Africa
|
||||
BW:Botswana
|
||||
LS:Lesotho
|
||||
NA:Namibia
|
||||
ZA:South Africa
|
||||
SZ:Swaziland
|
||||
Southern Asia
|
||||
AF:Afghanistan
|
||||
BD:Bangladesh
|
||||
BT:Bhutan
|
||||
IN:India
|
||||
IR:Iran
|
||||
MV:Maldives
|
||||
NP:Nepal
|
||||
PK:Pakistan
|
||||
LK:Sri Lanka
|
||||
Southern Europe
|
||||
AL:Albania
|
||||
AD:Andorra
|
||||
BA:Bosnia and Herzegovina
|
||||
HR:Croatia
|
||||
GI:Gibraltar
|
||||
GR:Greece
|
||||
IT:Italy
|
||||
MK:Macedonia
|
||||
MT:Malta
|
||||
ME:Montenegro
|
||||
PT:Portugal
|
||||
SM:San Marino
|
||||
RS:Serbia
|
||||
CS:Serbia and Montenegro
|
||||
SI:Slovenia
|
||||
ES:Spain
|
||||
VA:Vatican City
|
||||
Western Africa
|
||||
BJ:Benin
|
||||
BF:Burkina Faso
|
||||
CV:Cape Verde
|
||||
CI:Côte d’Ivoire
|
||||
GM:Gambia
|
||||
GH:Ghana
|
||||
GN:Guinea
|
||||
GW:Guinea-Bissau
|
||||
LR:Liberia
|
||||
ML:Mali
|
||||
MR:Mauritania
|
||||
NE:Niger
|
||||
NG:Nigeria
|
||||
SH:Saint Helena
|
||||
SN:Senegal
|
||||
SL:Sierra Leone
|
||||
TG:Togo
|
||||
Western Asia
|
||||
AM:Armenia
|
||||
AZ:Azerbaijan
|
||||
BH:Bahrain
|
||||
CY:Cyprus
|
||||
GE:Georgia
|
||||
IQ:Iraq
|
||||
IL:Israel
|
||||
JO:Jordan
|
||||
KW:Kuwait
|
||||
LB:Lebanon
|
||||
NT:Neutral Zone
|
||||
OM:Oman
|
||||
PS:Palestinian Territories
|
||||
YD:People's Democratic Republic of Yemen
|
||||
QA:Qatar
|
||||
SA:Saudi Arabia
|
||||
SY:Syria
|
||||
TR:Turkey
|
||||
AE:United Arab Emirates
|
||||
YE:Yemen
|
||||
Western Europe
|
||||
AT:Austria
|
||||
BE:Belgium
|
||||
DD:East Germany
|
||||
FR:France
|
||||
DE:Germany
|
||||
LI:Liechtenstein
|
||||
LU:Luxembourg
|
||||
FX:Metropolitan France
|
||||
MC:Monaco
|
||||
NL:Netherlands
|
||||
CH:Switzerland
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+25
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Account Activated</title>
|
||||
[#Email.MainStylesheet]
|
||||
</head>
|
||||
<body>
|
||||
[#Email.Header]
|
||||
<div class="sax-email-body">
|
||||
<div class="sax-email-panel-caption">
|
||||
<div class="sax-caption">Account Activated</div>
|
||||
</div>
|
||||
<div class="sax-email-panel-content">
|
||||
<div class="sax-para">Congratulations - your account has been activated.</div>
|
||||
<div class="sax-para">Follow <span style="font-weight:bold;"><a href="[#Link.RequestPassword]">this link</a></span> to set a password against your account.</div>
|
||||
<div class="sax-para">Once that's been done you'll be able to sign-in and participate on the platform.</div>
|
||||
<div class="sax-para">The link will expire in [#Link.ExpiresMinutes] minutes.</div>
|
||||
<div class="sax-para">Alternatively, go the the <a href="[#Link.SignIn]">Sign-in</a> page and submit a 'Request Password' from there.</div>
|
||||
<div class="sax-para">Thank you.</div>
|
||||
</div>
|
||||
</div>
|
||||
[#Email.Footer]
|
||||
</body>
|
||||
</html>
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Password Request</title>
|
||||
[#Email.MainStylesheet]
|
||||
</head>
|
||||
<body>
|
||||
[#Email.Header]
|
||||
<div class="sax-email-body">
|
||||
<div class="sax-email-panel-caption">
|
||||
<div class="sax-caption">Request Password</div>
|
||||
</div>
|
||||
<div class="sax-email-panel-content">
|
||||
<div class="sax-para">We received a request to re-set your password.</div>
|
||||
<div class="sax-para">Follow <span style="font-weight:bold;"><a href="[#Link.RequestPassword]">this link</a></span> to set a new password against your account.</div>
|
||||
<div class="sax-para">This link will expire in [#Link.ExpiresMinutes] minutes.</div>
|
||||
<div class="sax-para">Thank you.</div>
|
||||
</div>
|
||||
</div>
|
||||
[#Email.Footer]
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="sax-email-footer">
|
||||
<div class="sax-content"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="sax-email-header">
|
||||
<div class="sax-content">Your Sport Information Platform</div>
|
||||
</div>
|
||||
@@ -0,0 +1,95 @@
|
||||
html
|
||||
{
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Verdana, Helvetica, Arial, sans-serif;
|
||||
font-size: 1.6rem;
|
||||
line-height: 1.5;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
td
|
||||
{
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.sax-email-header
|
||||
{
|
||||
margin: 0 0 12px 0;
|
||||
font-size: 2.4rem;
|
||||
border-bottom: 1px solid rgba(0,0,0,.1);
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,.1);
|
||||
-moz-box-shadow: 0 1px 0 rgba(0,0,0,.1);
|
||||
-webkit-box-shadow: 0 1px 0 rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
.sax-email-header .sax-content, .sax-email-body, .sax-email-footer .sax-content
|
||||
{
|
||||
width: 90%;
|
||||
max-width: 1040px;
|
||||
margin: 0 auto;
|
||||
padding: 12px 24px;
|
||||
}
|
||||
|
||||
.sax-email-header .sax-content
|
||||
{
|
||||
}
|
||||
|
||||
.sax-email-body
|
||||
{
|
||||
}
|
||||
|
||||
.sax-email-panel-caption
|
||||
{
|
||||
margin: 12px 0;
|
||||
font-size: 3.2rem;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.sax-email-panel-content
|
||||
{
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
.sax-para
|
||||
{
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
td.sax-label
|
||||
{
|
||||
padding: 4px 12px;
|
||||
font-size: 1.6rem;
|
||||
text-align: right;
|
||||
color: #808080;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
td.sax-value
|
||||
{
|
||||
padding-top: 4px;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.sax-email-footer
|
||||
{
|
||||
margin: 24px 0 12px 0;
|
||||
border-top: 1px rgba(0,0,0,.1) solid;
|
||||
}
|
||||
|
||||
.sax-email-footer .sax-content
|
||||
{
|
||||
padding: 12px 24px;
|
||||
}
|
||||
|
||||
.sax-email-footer .sax-content .sax-footer-lower
|
||||
{
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
Reference in New Issue
Block a user