mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
synced 2025-10-29 01:42:30 +00:00
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
This commit is contained in:
@@ -30,6 +30,7 @@ namespace OpenWifi::CertObjects {
|
||||
field_to_json(Obj,"revoked", revoked);
|
||||
field_to_json(Obj,"revokeCount", revokeCount);
|
||||
field_to_json(Obj,"synched", synched);
|
||||
field_to_json(Obj,"expiryDate", expiryDate);
|
||||
}
|
||||
|
||||
bool CertificateEntry::from_json(const Poco::JSON::Object::Ptr &Obj) {
|
||||
@@ -54,6 +55,7 @@ namespace OpenWifi::CertObjects {
|
||||
field_from_json(Obj,"revoked", revoked);
|
||||
field_from_json(Obj,"revokeCount", revokeCount);
|
||||
field_from_json(Obj,"synched", synched);
|
||||
field_from_json(Obj,"expiryDate", expiryDate);
|
||||
return true;
|
||||
} catch (...) {
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace OpenWifi::CertObjects {
|
||||
uint64_t revoked = 0;
|
||||
uint64_t revokeCount = 0;
|
||||
uint64_t synched = 0;
|
||||
uint64_t expiryDate = 0 ;
|
||||
|
||||
void to_json(Poco::JSON::Object &Obj) const;
|
||||
bool from_json(const Poco::JSON::Object::Ptr &Obj);
|
||||
|
||||
@@ -35,7 +35,8 @@ namespace OpenWifi {
|
||||
MailAbandon_ = MicroServiceConfigGetInt("mailer.abandon",2*60*60);
|
||||
UseHTML_ = MicroServiceConfigGetBool("mailer.html",false);
|
||||
Enabled_ = (!MailHost_.empty() && !SenderLoginPassword_.empty() && !SenderLoginUserName_.empty());
|
||||
EmailLogo_ = TemplateDir_ + "/" + MicroServiceConfigGetString("mailer.logo","logo.png");
|
||||
LogoFilename = AuthService()->GetLogoAssetURI();
|
||||
SubLogoFilename = AuthService()->GetSubLogoAssetURI();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +77,6 @@ namespace OpenWifi {
|
||||
Poco::Thread::trySleep(10000);
|
||||
if(!Running_)
|
||||
break;
|
||||
|
||||
{
|
||||
std::lock_guard G(Mutex_);
|
||||
Messages_.splice(Messages_.end(),PendingMessages_);
|
||||
@@ -139,6 +139,7 @@ namespace OpenWifi {
|
||||
Message->setSender( TheSender );
|
||||
Message->addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, Recipient));
|
||||
Message->setSubject(Msg.Attrs.find(SUBJECT)->second);
|
||||
Message->setContentType("multipart/alternative");
|
||||
|
||||
poco_information(Logger(),fmt::format("Sending message to:{} from {}",Recipient,TheSender));
|
||||
|
||||
@@ -146,7 +147,7 @@ namespace OpenWifi {
|
||||
std::string Content = Msg.Attrs.find(TEXT)->second;
|
||||
Message->addContent(new Poco::Net::StringPartSource(Content));
|
||||
} else {
|
||||
for(const auto &format:{"html","txt"}) {
|
||||
for(const auto &format:{"txt","html"}) {
|
||||
std::string Content = Utils::LoadFile(TemplateDir_ + Msg.TemplateName + "." + format );
|
||||
Types::StringPairVec Variables;
|
||||
FillVariables(Msg.Attrs, Variables);
|
||||
@@ -156,8 +157,10 @@ namespace OpenWifi {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
auto Logo = Msg.Attrs.find(LOGO);
|
||||
if(Logo!=Msg.Attrs.end()) {
|
||||
std::cout << "... >" << Logo->second << std::endl;
|
||||
try {
|
||||
Poco::File LogoFile( Msg.Subscriber ? AuthService::GetSubLogoAssetFileName() : AuthService::GetLogoAssetFileName ());
|
||||
std::ifstream IF(LogoFile.path());
|
||||
@@ -168,6 +171,7 @@ namespace OpenWifi {
|
||||
poco_warning(Logger(),fmt::format("Cannot add '{}' logo in email",AuthService::GetLogoAssetFileName()));
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
Poco::SharedPtr<Poco::Net::AcceptCertificateHandler> ptrHandler_ = new Poco::Net::AcceptCertificateHandler(false);
|
||||
|
||||
@@ -186,6 +190,10 @@ namespace OpenWifi {
|
||||
SenderLoginUserName_,
|
||||
SenderLoginPassword_
|
||||
);
|
||||
/* std::ofstream of(MicroServiceDataDirectory()+"/message.txt",std::ios_base::out|std::ios_base::trunc);
|
||||
Message->write(of);
|
||||
of.close();
|
||||
*/
|
||||
session.sendMessage(*Message);
|
||||
session.close();
|
||||
return MessageSendStatus::msg_sent;
|
||||
|
||||
@@ -105,7 +105,8 @@ namespace OpenWifi {
|
||||
std::atomic_bool Running_=false;
|
||||
bool Enabled_=false;
|
||||
bool UseHTML_=false;
|
||||
std::string EmailLogo_{"logo.png"};
|
||||
std::string LogoFilename;
|
||||
std::string SubLogoFilename;
|
||||
|
||||
SMTPMailerService() noexcept:
|
||||
SubSystemServer("SMTPMailer", "MAILER-SVR", "smtpmailer")
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
#include "Poco/StringTokenizer.h"
|
||||
#include "StorageClass.h"
|
||||
|
||||
#include "fmt/format.h"
|
||||
|
||||
namespace ORM {
|
||||
|
||||
enum FieldType {
|
||||
@@ -149,12 +151,14 @@ namespace ORM {
|
||||
Result += Escape(Value);
|
||||
Result += "'";
|
||||
}
|
||||
} else {
|
||||
return WHERE_AND_(Result,args...);
|
||||
} else if constexpr (std::is_arithmetic_v<T>) {
|
||||
if(!Result.empty())
|
||||
Result += " and ";
|
||||
Result += fieldName ;
|
||||
Result += '=';
|
||||
Result += std::to_string(Value);
|
||||
return WHERE_AND_(Result,args...);
|
||||
}
|
||||
return WHERE_AND_(Result,args...);
|
||||
}
|
||||
@@ -483,15 +487,13 @@ namespace ORM {
|
||||
return false;
|
||||
}
|
||||
|
||||
template<typename... Args> bool GetRecordExt(RecordType & T , Args... args) {
|
||||
bool GetRecord(RecordType & T , const std::string &WhereClause) {
|
||||
try {
|
||||
Poco::Data::Session Session = Pool_.get();
|
||||
Poco::Data::Statement Select(Session);
|
||||
RecordTuple RT;
|
||||
|
||||
auto WhereClause = WHERE_AND(args...);
|
||||
|
||||
std::string St = "select " + SelectFields_ + " from " + TableName_ + WhereClause + " limit 1";
|
||||
std::string St = "select " + SelectFields_ + " from " + TableName_ + " where " + WhereClause + " limit 1";
|
||||
|
||||
Select << ConvertParams(St) ,
|
||||
Poco::Data::Keywords::into(RT);
|
||||
|
||||
@@ -233,6 +233,14 @@ namespace OpenWifi::RESTAPI::Errors {
|
||||
static const struct msg InvalidScriptSelection{1153,"Only script or scriptId must be specified. Not both."};
|
||||
|
||||
static const struct msg NoDeviceStatisticsYet{1154,"Device statistics not available yet."};
|
||||
static const struct msg AccountSuspended{1155,"You account was suspended. You can only use this site in read-only mode for now."};
|
||||
static const struct msg BatchNameAlreadyExists{1156,"Batch name must be unique."};
|
||||
static const struct msg RedirectorNameIsInvalid{1157,"Redirector name is invalid."};
|
||||
static const struct msg CertificateAlreadyBelongsToYou{1158,"The serial number already belongs to you. Please use the certificate modification API to change the redirector."};
|
||||
static const struct msg RelocationDisabledForThisDevice{1159,"Relocation disabled for this device."};
|
||||
static const struct msg CannotModifyServerCertificates{1160,"Server certificates cannot be modified."};
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -109,6 +109,11 @@ uint64_t MACToInt(const std::string &MAC) {
|
||||
return Result;
|
||||
}
|
||||
|
||||
[[nodiscard]] bool ValidHostname(const std::string &Hostname) {
|
||||
static std::regex HostNameRegex("^(?!-)[A-Za-z0-9-]+([\\-\\.]{1}[a-z0-9]+)*\\.[A-Za-z]{2,6}$");
|
||||
return std::regex_match(Hostname,HostNameRegex);
|
||||
}
|
||||
|
||||
[[nodiscard]] std::string ToHex(const std::vector<unsigned char> & B) {
|
||||
std::string R;
|
||||
R.reserve(B.size()*2);
|
||||
@@ -560,4 +565,11 @@ bool ExtractBase64CompressedData(const std::string &CompressedData,
|
||||
return false;
|
||||
}
|
||||
|
||||
[[nodiscard]] std::uint64_t ConvertDate(const std::string &Date) {
|
||||
Poco::DateTime DT;
|
||||
int TZ;
|
||||
Poco::DateTimeParser::parse(Poco::DateTimeFormat::ISO8601_FORMAT,Date,DT,TZ);
|
||||
return DT.timestamp().epochTime();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -73,6 +73,7 @@ namespace OpenWifi::Utils {
|
||||
|
||||
[[nodiscard]] bool ValidSerialNumber(const std::string &Serial);
|
||||
[[nodiscard]] bool ValidUUID(const std::string &UUID);
|
||||
[[nodiscard]] bool ValidHostname(const std::string &hostname);
|
||||
|
||||
template <typename ...Args> std::string ComputeHash(Args&&... args) {
|
||||
Poco::SHA2Engine E;
|
||||
@@ -121,6 +122,8 @@ namespace OpenWifi::Utils {
|
||||
[[nodiscard]] std::string SanitizeToken(const std::string &Token);
|
||||
[[nodiscard]] bool ValidateURI(const std::string &uri);
|
||||
|
||||
[[nodiscard]] std::uint64_t ConvertDate(const std::string &d);
|
||||
|
||||
template< typename T >
|
||||
std::string int_to_hex( T i )
|
||||
{
|
||||
|
||||
@@ -356,8 +356,8 @@
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
alt="OpenWifi"
|
||||
src="${LOGO}"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
@@ -455,7 +455,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<p>Thank You!</p>
|
||||
<p>Arilia Wireless Inc.</p>
|
||||
<p>Telecom Infra Project</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -500,7 +500,7 @@
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Copyright 2023
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
|
||||
@@ -356,8 +356,8 @@
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
alt="OpenWifi"
|
||||
src="${LOGO}"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
@@ -501,7 +501,7 @@
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Copyright 2023
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
|
||||
@@ -356,8 +356,8 @@
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
alt="OpenWifi"
|
||||
src="${LOGO}"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
@@ -497,7 +497,7 @@
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Copyright 2023
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
|
||||
@@ -356,8 +356,8 @@
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
alt="OpenWifi"
|
||||
src="${LOGO}"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
@@ -501,7 +501,7 @@
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Copyright 2023
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
|
||||
@@ -1,527 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Email Confirmation</title>
|
||||
<style>
|
||||
img {
|
||||
border: none;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #414141;
|
||||
background-color: #f6f6f6;
|
||||
font-family: sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: separate;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table td {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
color: #414141;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.body {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: block;
|
||||
margin: 0 auto !important;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
width: 580px;
|
||||
}
|
||||
|
||||
.content {
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.main {
|
||||
background: #ffffff;
|
||||
border-radius: 0px;
|
||||
width: 600px;
|
||||
max-width: 100%;
|
||||
border: 1px solid #d4d4d4;
|
||||
padding-left: 45px;
|
||||
padding-right: 45px;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
box-sizing: border-box;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
.content-block {
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
clear: both;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.footer td,
|
||||
.footer p,
|
||||
.footer span,
|
||||
.footer a {
|
||||
color: #999999;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
/* -------------------------------------
|
||||
TYPOGRAPHY
|
||||
------------------------------------- */
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
color: #414141;
|
||||
font-family: sans-serif;
|
||||
font-weight: 400;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 35px;
|
||||
font-weight: 300;
|
||||
text-align: center;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
color: #414141;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
p li,
|
||||
ul li,
|
||||
ol li {
|
||||
list-style-position: inside;
|
||||
margin-left: 5px;
|
||||
color: #414141;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #29818c !important;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #d2d2d2;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #999999 !important;
|
||||
}
|
||||
/* -------------------------------------
|
||||
BUTTONS
|
||||
------------------------------------- */
|
||||
|
||||
.btn {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.btn > tbody > tr > td {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.btn table {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.btn table td {
|
||||
background-color: #ffffff;
|
||||
border-radius: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.btn a {
|
||||
background-color: #ffffff;
|
||||
border: solid 1px #489e94;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
color: #29818c;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 12px 120px;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.btn-primary a {
|
||||
transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1)
|
||||
0ms,
|
||||
box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
|
||||
border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
|
||||
margin: auto;
|
||||
background-color: #29818c;
|
||||
border-color: #29818c;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
/* -------------------------------------
|
||||
OTHER STYLES THAT MIGHT BE USEFUL
|
||||
------------------------------------- */
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.preheader {
|
||||
color: transparent;
|
||||
display: none;
|
||||
height: 0;
|
||||
max-height: 0;
|
||||
max-width: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: 1px solid #d4d4d4;
|
||||
}
|
||||
|
||||
.grayFont {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* -------------------------------------
|
||||
RESPONSIVE AND MOBILE FRIENDLY STYLES
|
||||
------------------------------------- */
|
||||
|
||||
@media only screen and (max-width: 620px) {
|
||||
table[class='body'] h1 {
|
||||
font-size: 28px !important;
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
table[class='body'] p,
|
||||
table[class='body'] ul,
|
||||
table[class='body'] ol,
|
||||
table[class='body'] td,
|
||||
table[class='body'] span,
|
||||
table[class='body'] a {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
table[class='body'] .wrapper,
|
||||
table[class='body'] .article {
|
||||
padding: 10px !important;
|
||||
}
|
||||
table[class='body'] .content {
|
||||
padding: 0 !important;
|
||||
}
|
||||
table[class='body'] .container {
|
||||
padding: 0 !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .main {
|
||||
border-left-width: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
border-right-width: 0 !important;
|
||||
}
|
||||
table[class='body'] .btn table {
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .btn a {
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .img-responsive {
|
||||
height: auto !important;
|
||||
max-width: 100% !important;
|
||||
width: auto !important;
|
||||
}
|
||||
}
|
||||
/* -------------------------------------
|
||||
PRESERVE THESE STYLES IN THE HEAD
|
||||
------------------------------------- */
|
||||
|
||||
@media all {
|
||||
.ExternalClass {
|
||||
width: 100%;
|
||||
}
|
||||
.ExternalClass,
|
||||
.ExternalClass p,
|
||||
.ExternalClass span,
|
||||
.ExternalClass font,
|
||||
.ExternalClass td,
|
||||
.ExternalClass div {
|
||||
line-height: 100%;
|
||||
}
|
||||
.apple-link a {
|
||||
color: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-size: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
.btn-primary a:hover {
|
||||
background-color: rgb(50, 110, 103) !important;
|
||||
border-color: rgb(50, 110, 103) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="">
|
||||
<span class="preheader"></span>
|
||||
<table
|
||||
d=""
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
class="body"
|
||||
>
|
||||
<tr>
|
||||
<td class="container">
|
||||
<div class="content">
|
||||
<!-- START CENTERED WHITE CONTAINER -->
|
||||
|
||||
<table
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
width="100%"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" style="padding: 0px">
|
||||
<table
|
||||
align="center"
|
||||
style="text-align: center"
|
||||
width="100%"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
valign="top"
|
||||
class="align-center"
|
||||
style="
|
||||
padding-right: 0px;
|
||||
padding-left: 48px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
"
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
display: inline !important;
|
||||
vertical-align: bottom;
|
||||
"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table role="presentation" class="main">
|
||||
<!-- START MAIN CONTENT AREA -->
|
||||
<tr>
|
||||
<td class="wrapper">
|
||||
<table
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
>
|
||||
<tr>
|
||||
<td>
|
||||
<h2>
|
||||
Confirm Your Email Address
|
||||
to Get Started
|
||||
</h2>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>Dear ${RECIPIENT_EMAIL} ,</p>
|
||||
<p>
|
||||
Before you can access the
|
||||
system, you must validate
|
||||
your e-mail address. Please
|
||||
click on the button below to
|
||||
complete this task.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="
|
||||
padding-top: 15px;
|
||||
padding-bottom: 40px;
|
||||
"
|
||||
class="btn btn-primary"
|
||||
>
|
||||
<a
|
||||
href="${ACTION_LINK}"
|
||||
target="_blank"
|
||||
>Confirm Email Address</a
|
||||
>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr
|
||||
style="
|
||||
margin-top: 0px;
|
||||
margin-bottom: 30px;
|
||||
"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
For questions & support
|
||||
regarding this application,
|
||||
please contact us at
|
||||
<a
|
||||
href="mailto:tip-keys@arilia.com"
|
||||
target="_blank"
|
||||
>
|
||||
tip-keys@arilia.com
|
||||
</a>
|
||||
. For question regarding the
|
||||
Telecom Infra Project,
|
||||
please contact us at
|
||||
<a
|
||||
href="mailto:info@telecominfraproject.com"
|
||||
>
|
||||
info@telecominfraproject.com
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<p>Thank You!</p>
|
||||
<p>Arilia Wireless Inc.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<table
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
class="btn btn-primary"
|
||||
>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END MAIN CONTENT AREA -->
|
||||
</table>
|
||||
|
||||
<!-- END CENTERED WHITE CONTAINER -->
|
||||
|
||||
<div class="footer">
|
||||
<table
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
width="100%"
|
||||
style="min-width: 100; margin-top: 30px"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" style="padding: 0px">
|
||||
<table
|
||||
align="left"
|
||||
width="100%"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
<a
|
||||
href="https://arilia.com"
|
||||
target="_blank"
|
||||
>www.arilia.com</a
|
||||
>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
Dear ${RECIPIENT_EMAIL},
|
||||
|
||||
Before you can access the system, you must validate your e-mail address. Please click on the link below to complete this task.
|
||||
|
||||
${ACTION_LINK}
|
||||
|
||||
And follow the instructions.
|
||||
|
||||
Thank you!
|
||||
@@ -1,523 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Password Reset</title>
|
||||
<style>
|
||||
img {
|
||||
border: none;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #414141;
|
||||
background-color: #f6f6f6;
|
||||
font-family: sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: separate;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table td {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
color: #414141;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.body {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: block;
|
||||
margin: 0 auto !important;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
width: 580px;
|
||||
}
|
||||
|
||||
.content {
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.main {
|
||||
background: #ffffff;
|
||||
border-radius: 0px;
|
||||
width: 600px;
|
||||
max-width: 100%;
|
||||
border: 1px solid #d4d4d4;
|
||||
padding-left: 45px;
|
||||
padding-right: 45px;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
box-sizing: border-box;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
.content-block {
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
clear: both;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.footer td,
|
||||
.footer p,
|
||||
.footer span,
|
||||
.footer a {
|
||||
color: #999999;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
/* -------------------------------------
|
||||
TYPOGRAPHY
|
||||
------------------------------------- */
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
color: #414141;
|
||||
font-family: sans-serif;
|
||||
font-weight: 400;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 35px;
|
||||
font-weight: 300;
|
||||
text-align: center;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
color: #414141;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
p li,
|
||||
ul li,
|
||||
ol li {
|
||||
list-style-position: inside;
|
||||
margin-left: 5px;
|
||||
color: #414141;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #29818c !important;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #d2d2d2;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #999999 !important;
|
||||
}
|
||||
/* -------------------------------------
|
||||
BUTTONS
|
||||
------------------------------------- */
|
||||
|
||||
.btn {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.btn > tbody > tr > td {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.btn table {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.btn table td {
|
||||
background-color: #ffffff;
|
||||
border-radius: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.btn a {
|
||||
background-color: #ffffff;
|
||||
border: solid 1px #489e94;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
color: #29818c;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 12px 120px;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.btn-primary a {
|
||||
transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1)
|
||||
0ms,
|
||||
box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
|
||||
border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
|
||||
margin: auto;
|
||||
background-color: #29818c;
|
||||
border-color: #29818c;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
/* -------------------------------------
|
||||
OTHER STYLES THAT MIGHT BE USEFUL
|
||||
------------------------------------- */
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.preheader {
|
||||
color: transparent;
|
||||
display: none;
|
||||
height: 0;
|
||||
max-height: 0;
|
||||
max-width: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: 1px solid #d4d4d4;
|
||||
}
|
||||
|
||||
.grayFont {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* -------------------------------------
|
||||
RESPONSIVE AND MOBILE FRIENDLY STYLES
|
||||
------------------------------------- */
|
||||
|
||||
@media only screen and (max-width: 620px) {
|
||||
table[class='body'] h1 {
|
||||
font-size: 28px !important;
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
table[class='body'] p,
|
||||
table[class='body'] ul,
|
||||
table[class='body'] ol,
|
||||
table[class='body'] td,
|
||||
table[class='body'] span,
|
||||
table[class='body'] a {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
table[class='body'] .wrapper,
|
||||
table[class='body'] .article {
|
||||
padding: 10px !important;
|
||||
}
|
||||
table[class='body'] .content {
|
||||
padding: 0 !important;
|
||||
}
|
||||
table[class='body'] .container {
|
||||
padding: 0 !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .main {
|
||||
border-left-width: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
border-right-width: 0 !important;
|
||||
}
|
||||
table[class='body'] .btn table {
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .btn a {
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .img-responsive {
|
||||
height: auto !important;
|
||||
max-width: 100% !important;
|
||||
width: auto !important;
|
||||
}
|
||||
}
|
||||
/* -------------------------------------
|
||||
PRESERVE THESE STYLES IN THE HEAD
|
||||
------------------------------------- */
|
||||
|
||||
@media all {
|
||||
.ExternalClass {
|
||||
width: 100%;
|
||||
}
|
||||
.ExternalClass,
|
||||
.ExternalClass p,
|
||||
.ExternalClass span,
|
||||
.ExternalClass font,
|
||||
.ExternalClass td,
|
||||
.ExternalClass div {
|
||||
line-height: 100%;
|
||||
}
|
||||
.apple-link a {
|
||||
color: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-size: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
.btn-primary a:hover {
|
||||
background-color: rgb(50, 110, 103) !important;
|
||||
border-color: rgb(50, 110, 103) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="">
|
||||
<span class="preheader"></span>
|
||||
<table
|
||||
d=""
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
class="body"
|
||||
>
|
||||
<tr>
|
||||
<td class="container">
|
||||
<div class="content">
|
||||
<!-- START CENTERED WHITE CONTAINER -->
|
||||
|
||||
<table
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
width="100%"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" style="padding: 0px">
|
||||
<table
|
||||
align="center"
|
||||
style="text-align: center"
|
||||
width="100%"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
valign="top"
|
||||
class="align-center"
|
||||
style="
|
||||
padding-right: 0px;
|
||||
padding-left: 48px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
"
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
display: inline !important;
|
||||
vertical-align: bottom;
|
||||
"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table role="presentation" class="main">
|
||||
<!-- START MAIN CONTENT AREA -->
|
||||
<tr>
|
||||
<td class="wrapper">
|
||||
<table
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
>
|
||||
<tr>
|
||||
<td>
|
||||
<h2>Password Reset</h2>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>Dear ${RECIPIENT_EMAIL} ,</p>
|
||||
<p>
|
||||
You have requested us to
|
||||
reset your password. Please
|
||||
click on the link below and
|
||||
follow the instructions.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="
|
||||
padding-top: 15px;
|
||||
padding-bottom: 40px;
|
||||
"
|
||||
class="btn btn-primary"
|
||||
>
|
||||
<a
|
||||
href="${ACTION_LINK}"
|
||||
target="_blank"
|
||||
>Reset Password</a
|
||||
>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr
|
||||
style="
|
||||
margin-top: 0px;
|
||||
margin-bottom: 30px;
|
||||
"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
For questions & support
|
||||
regarding this application,
|
||||
please contact us at
|
||||
<a
|
||||
href="mailto:tip-keys@arilia.com"
|
||||
target="_blank"
|
||||
>
|
||||
tip-keys@arilia.com
|
||||
</a>
|
||||
. For question regarding the
|
||||
Telecom Infra Project,
|
||||
please contact us at
|
||||
<a
|
||||
href="mailto:info@telecominfraproject.com"
|
||||
>
|
||||
info@telecominfraproject.com
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<p>Thank You!</p>
|
||||
<p>Arilia Wireless Inc.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<table
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
class="btn btn-primary"
|
||||
>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END MAIN CONTENT AREA -->
|
||||
</table>
|
||||
|
||||
<!-- END CENTERED WHITE CONTAINER -->
|
||||
|
||||
<div class="footer">
|
||||
<table
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
width="100%"
|
||||
style="min-width: 100; margin-top: 30px"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" style="padding: 0px">
|
||||
<table
|
||||
align="left"
|
||||
width="100%"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
<a
|
||||
href="https://arilia.com"
|
||||
target="_blank"
|
||||
>www.arilia.com</a
|
||||
>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
Dear ${RECIPIENT_EMAIL},
|
||||
|
||||
You have requested us to reset your password. Please click on the link below
|
||||
|
||||
${ACTION_LINK}
|
||||
|
||||
And follow the instructions.
|
||||
|
||||
Thank you!
|
||||
@@ -1,515 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Verification Code</title>
|
||||
<style>
|
||||
img {
|
||||
border: none;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #414141;
|
||||
background-color: #f6f6f6;
|
||||
font-family: sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: separate;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table td {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
color: #414141;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.body {
|
||||
background-color: white;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: block;
|
||||
margin: 0 auto !important;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
width: 580px;
|
||||
}
|
||||
|
||||
.content {
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.main {
|
||||
background: #ffffff;
|
||||
border-radius: 0px;
|
||||
width: 600px;
|
||||
max-width: 100%;
|
||||
border: 1px solid #d4d4d4;
|
||||
padding-left: 45px;
|
||||
padding-right: 45px;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
box-sizing: border-box;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
.content-block {
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
clear: both;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.footer td,
|
||||
.footer p,
|
||||
.footer span,
|
||||
.footer a {
|
||||
color: #999999;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
/* -------------------------------------
|
||||
TYPOGRAPHY
|
||||
------------------------------------- */
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
color: #414141;
|
||||
font-family: sans-serif;
|
||||
font-weight: 400;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 35px;
|
||||
font-weight: 300;
|
||||
text-align: center;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
color: #414141;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
p li,
|
||||
ul li,
|
||||
ol li {
|
||||
list-style-position: inside;
|
||||
margin-left: 5px;
|
||||
color: #414141;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #29818c !important;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #d2d2d2;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #999999 !important;
|
||||
}
|
||||
/* -------------------------------------
|
||||
BUTTONS
|
||||
------------------------------------- */
|
||||
|
||||
.btn {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
tbody {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.btn > tbody > tr > td {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.btn table {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.btn table td {
|
||||
background-color: #ffffff;
|
||||
border-radius: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.btn a {
|
||||
background-color: #ffffff;
|
||||
border: solid 1px #489e94;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
color: #29818c;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 12px 120px;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.btn-primary a {
|
||||
transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1)
|
||||
0ms,
|
||||
box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
|
||||
border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
|
||||
margin: auto;
|
||||
background-color: #29818c;
|
||||
border-color: #29818c;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
/* -------------------------------------
|
||||
OTHER STYLES THAT MIGHT BE USEFUL
|
||||
------------------------------------- */
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.preheader {
|
||||
color: transparent;
|
||||
display: none;
|
||||
height: 0;
|
||||
max-height: 0;
|
||||
max-width: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: 1px solid #d4d4d4;
|
||||
}
|
||||
|
||||
.grayFont {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* -------------------------------------
|
||||
RESPONSIVE AND MOBILE FRIENDLY STYLES
|
||||
------------------------------------- */
|
||||
|
||||
@media only screen and (max-width: 620px) {
|
||||
table[class='body'] h1 {
|
||||
font-size: 28px !important;
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
table[class='body'] p,
|
||||
table[class='body'] ul,
|
||||
table[class='body'] ol,
|
||||
table[class='body'] td,
|
||||
table[class='body'] span,
|
||||
table[class='body'] a {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
table[class='body'] .wrapper,
|
||||
table[class='body'] .article {
|
||||
padding: 10px !important;
|
||||
}
|
||||
table[class='body'] .content {
|
||||
padding: 0 !important;
|
||||
}
|
||||
table[class='body'] .container {
|
||||
padding: 0 !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .main {
|
||||
border-left-width: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
border-right-width: 0 !important;
|
||||
}
|
||||
table[class='body'] .btn table {
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .btn a {
|
||||
width: 100% !important;
|
||||
}
|
||||
table[class='body'] .img-responsive {
|
||||
height: auto !important;
|
||||
max-width: 100% !important;
|
||||
width: auto !important;
|
||||
}
|
||||
}
|
||||
/* -------------------------------------
|
||||
PRESERVE THESE STYLES IN THE HEAD
|
||||
------------------------------------- */
|
||||
|
||||
@media all {
|
||||
.ExternalClass {
|
||||
width: 100%;
|
||||
}
|
||||
.ExternalClass,
|
||||
.ExternalClass p,
|
||||
.ExternalClass span,
|
||||
.ExternalClass font,
|
||||
.ExternalClass td,
|
||||
.ExternalClass div {
|
||||
line-height: 100%;
|
||||
}
|
||||
.apple-link a {
|
||||
color: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-size: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
.btn-primary a:hover {
|
||||
background-color: rgb(50, 110, 103) !important;
|
||||
border-color: rgb(50, 110, 103) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="">
|
||||
<span class="preheader"></span>
|
||||
<table
|
||||
d=""
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
class="body"
|
||||
>
|
||||
<tr>
|
||||
<td class="container">
|
||||
<div class="content">
|
||||
<!-- START CENTERED WHITE CONTAINER -->
|
||||
|
||||
<table
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
width="100%"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" style="padding: 0px">
|
||||
<table
|
||||
align="center"
|
||||
style="text-align: center"
|
||||
width="100%"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
valign="top"
|
||||
class="align-center"
|
||||
style="
|
||||
padding-right: 0px;
|
||||
padding-left: 48px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
"
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
display: inline !important;
|
||||
vertical-align: bottom;
|
||||
"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table role="presentation" class="main">
|
||||
<!-- START MAIN CONTENT AREA -->
|
||||
<tr>
|
||||
<td class="wrapper">
|
||||
<table
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
>
|
||||
<tr>
|
||||
<td>
|
||||
<h2>Your Login Validation Code</h2>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>Dear ${RECIPIENT_EMAIL} ,</p>
|
||||
<p>
|
||||
You have requested your login validation. Please enter the following code on the login screen:
|
||||
</p>
|
||||
<p>
|
||||
<div style="text-align: center;">
|
||||
<h3 style="margin-bottom: 0px; font-weight: bold;">${CHALLENGE_CODE}</h3>
|
||||
</div>
|
||||
</p>
|
||||
<p>
|
||||
If you are not trying to login, please login and change your password. Someone may be trying to
|
||||
access your account illegally.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<hr
|
||||
style="
|
||||
margin-top: 0px;
|
||||
margin-bottom: 30px;
|
||||
"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
For questions & support
|
||||
regarding this application,
|
||||
please contact us at
|
||||
<a
|
||||
href="mailto:tip-keys@arilia.com"
|
||||
target="_blank"
|
||||
>
|
||||
tip-keys@arilia.com
|
||||
</a>
|
||||
. For question regarding the
|
||||
Telecom Infra Project,
|
||||
please contact us at
|
||||
<a
|
||||
href="mailto:info@telecominfraproject.com"
|
||||
>
|
||||
info@telecominfraproject.com
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<p>Thank You!</p>
|
||||
<p>Arilia Wireless Inc.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<table
|
||||
role="presentation"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
class="btn btn-primary"
|
||||
>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END MAIN CONTENT AREA -->
|
||||
</table>
|
||||
|
||||
<!-- END CENTERED WHITE CONTAINER -->
|
||||
|
||||
<div class="footer">
|
||||
<table
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
width="100%"
|
||||
style="min-width: 100; margin-top: 30px"
|
||||
>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" style="padding: 0px">
|
||||
<table
|
||||
align="left"
|
||||
width="100%"
|
||||
border="0"
|
||||
cellpadding="0"
|
||||
cellspacing="0"
|
||||
style="min-width: 100%"
|
||||
>
|
||||
<tbody>
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
<a
|
||||
href="https://arilia.com"
|
||||
target="_blank"
|
||||
>www.arilia.com</a
|
||||
>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
Dear ${RECIPIENT_EMAIL},
|
||||
|
||||
You have requested your login validation. Please enter the following code on the login screen:
|
||||
|
||||
${CHALLENGE_CODE}
|
||||
|
||||
If you are not trying to login, please login and change your password. Someone may be trying to
|
||||
access your account illegally.
|
||||
|
||||
Thank you!
|
||||
@@ -356,8 +356,8 @@
|
||||
>
|
||||
<img
|
||||
align="center"
|
||||
alt="Arilia"
|
||||
src="logo.png"
|
||||
alt="OpenWifi"
|
||||
src="${LOGO}"
|
||||
style="
|
||||
max-width: 100%;
|
||||
padding-bottom: 0;
|
||||
@@ -489,7 +489,7 @@
|
||||
<tr></tr>
|
||||
<tr>
|
||||
<p class="align-center">
|
||||
Copyright 2022
|
||||
Copyright 2023
|
||||
Arilia Wireless Inc,
|
||||
All rights reserved.
|
||||
</p>
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Whoops!</title>
|
||||
<link rel="stylesheet" href="./404_error.css">
|
||||
<link rel="stylesheet" href="/wwwassets/404_error.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-box"><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div class="logo-box"><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div class="box-container">
|
||||
<div class="box">
|
||||
<div class="box__ghost">
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Access Policy</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Email Verification Error</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Email Validated!</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Password Policy</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Reset Password</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Reset Password Error</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Reset Password Success</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
@import url(https://fonts.googleapis.com/css?family=Ubuntu);
|
||||
html, body {
|
||||
font-family: "Ubuntu";
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
.box {
|
||||
width: 350px;
|
||||
height: 100%;
|
||||
max-height: 600px;
|
||||
min-height: 450px;
|
||||
background: #332F63;
|
||||
border-radius: 20px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
padding: 30px 50px;
|
||||
}
|
||||
.box .box__ghost {
|
||||
padding: 15px 25px 25px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 20%;
|
||||
transform: translate(-50%, -30%);
|
||||
}
|
||||
|
||||
.logo-box {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.logo-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-height: 120px;
|
||||
margin-left:15px;
|
||||
margin-top: 10px;
|
||||
object-fit: contain;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(1) {
|
||||
opacity: 0.2;
|
||||
animation: shine 4s ease-in-out 3s infinite;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(1):before, .box .box__ghost .symbol:nth-child(1):after {
|
||||
content: "";
|
||||
width: 12px;
|
||||
height: 4px;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
border-radius: 5px;
|
||||
bottom: 65px;
|
||||
left: 0;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(1):before {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(1):after {
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(2) {
|
||||
position: absolute;
|
||||
left: -5px;
|
||||
top: 30px;
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
border: 4px solid;
|
||||
border-radius: 50%;
|
||||
border-color: #fff;
|
||||
opacity: 0.2;
|
||||
animation: shine 4s ease-in-out 1.3s infinite;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(3) {
|
||||
opacity: 0.2;
|
||||
animation: shine 3s ease-in-out 0.5s infinite;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(3):before, .box .box__ghost .symbol:nth-child(3):after {
|
||||
content: "";
|
||||
width: 12px;
|
||||
height: 4px;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
border-radius: 5px;
|
||||
top: 5px;
|
||||
left: 40px;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(3):before {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(3):after {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(4) {
|
||||
opacity: 0.2;
|
||||
animation: shine 6s ease-in-out 1.6s infinite;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(4):before, .box .box__ghost .symbol:nth-child(4):after {
|
||||
content: "";
|
||||
width: 15px;
|
||||
height: 4px;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
border-radius: 5px;
|
||||
top: 10px;
|
||||
right: 30px;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(4):before {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(4):after {
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(5) {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 40px;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
border: 3px solid;
|
||||
border-radius: 50%;
|
||||
border-color: #fff;
|
||||
opacity: 0.2;
|
||||
animation: shine 1.7s ease-in-out 7s infinite;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(6) {
|
||||
opacity: 0.2;
|
||||
animation: shine 2s ease-in-out 6s infinite;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(6):before, .box .box__ghost .symbol:nth-child(6):after {
|
||||
content: "";
|
||||
width: 15px;
|
||||
height: 4px;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
border-radius: 5px;
|
||||
bottom: 65px;
|
||||
right: -5px;
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(6):before {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
.box .box__ghost .symbol:nth-child(6):after {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
.box .box__ghost .box__ghost-container {
|
||||
background: #fff;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 100px 100px 0 0;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
animation: upndown 3s ease-in-out infinite;
|
||||
}
|
||||
.box .box__ghost .box__ghost-container .box__ghost-eyes {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 45%;
|
||||
height: 12px;
|
||||
width: 70px;
|
||||
}
|
||||
.box .box__ghost .box__ghost-container .box__ghost-eyes .box__eye-left {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background: #332F63;
|
||||
border-radius: 50%;
|
||||
margin: 0 10px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
}
|
||||
.box .box__ghost .box__ghost-container .box__ghost-eyes .box__eye-right {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background: #332F63;
|
||||
border-radius: 50%;
|
||||
margin: 0 10px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
.box .box__ghost .box__ghost-container .box__ghost-bottom {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
.box .box__ghost .box__ghost-container .box__ghost-bottom div {
|
||||
flex-grow: 1;
|
||||
position: relative;
|
||||
top: -10px;
|
||||
height: 20px;
|
||||
border-radius: 100%;
|
||||
background-color: #fff;
|
||||
}
|
||||
.box .box__ghost .box__ghost-container .box__ghost-bottom div:nth-child(2n) {
|
||||
top: -12px;
|
||||
margin: 0 0px;
|
||||
border-top: 15px solid #332F63;
|
||||
background: transparent;
|
||||
}
|
||||
.box .box__ghost .box__ghost-shadow {
|
||||
height: 20px;
|
||||
box-shadow: 0 50px 15px 5px #3B3769;
|
||||
border-radius: 50%;
|
||||
margin: 0 auto;
|
||||
animation: smallnbig 3s ease-in-out infinite;
|
||||
}
|
||||
.box .box__description {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
.box .box__description .box__description-container {
|
||||
color: #fff;
|
||||
text-align: left;
|
||||
width: 200px;
|
||||
font-size: 16px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.box .box__description .box__description-container .box__description-title {
|
||||
font-size: 24px;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
.box .box__description .box__description-container .box__description-text {
|
||||
color: #8C8AA7;
|
||||
line-height: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.box .box__description .box__button {
|
||||
display: block;
|
||||
position: relative;
|
||||
background: #FF5E65;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 50px;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
line-height: 50px;
|
||||
font-size: 18px;
|
||||
padding: 0 70px;
|
||||
white-space: nowrap;
|
||||
margin-top: 25px;
|
||||
transition: background 0.5s ease;
|
||||
overflow: hidden;
|
||||
-webkit-mask-image: -webkit-radial-gradient(white, black);
|
||||
}
|
||||
.box .box__description .box__button:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 100px;
|
||||
background: #fff;
|
||||
bottom: -25px;
|
||||
left: 0;
|
||||
border: 2px solid #fff;
|
||||
transform: translateX(-50px) rotate(45deg);
|
||||
transition: transform 0.5s ease;
|
||||
}
|
||||
.box .box__description .box__button:hover {
|
||||
background: transparent;
|
||||
border-color: #fff;
|
||||
}
|
||||
.box .box__description .box__button:hover:before {
|
||||
transform: translateX(250px) rotate(45deg);
|
||||
}
|
||||
|
||||
@keyframes upndown {
|
||||
0% {
|
||||
transform: translateY(5px);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(15px);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(5px);
|
||||
}
|
||||
}
|
||||
@keyframes smallnbig {
|
||||
0% {
|
||||
width: 90px;
|
||||
}
|
||||
50% {
|
||||
width: 100px;
|
||||
}
|
||||
100% {
|
||||
width: 90px;
|
||||
}
|
||||
}
|
||||
@keyframes shine {
|
||||
0% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
25% {
|
||||
opacity: 0.1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
100% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Whoops!</title>
|
||||
<link rel="stylesheet" href="./404_error.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_404_error.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="box">
|
||||
@@ -38,7 +38,7 @@
|
||||
<div class="box__description-text">So we'll just assume one of them got
|
||||
fed up and refused to help you...</div>
|
||||
<div class="box__description-text"> If you get this again, we need to know. We need to let that thing know who's the boss...</div>
|
||||
<div><img src="sub_logo_dark.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="sub_logo_dark.png" alt="OpenWifi" class="logo-img"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Access Policy</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Email Verification Error</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Email Validated!</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Password Policy</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Reset Password</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Reset Password Error</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Reset Password Success</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Signup Completion</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="sub_logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/sub_logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Signup Completion Error</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<head>
|
||||
<title>Signup Completed!</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="./common.css">
|
||||
<link rel="stylesheet" href="/wwwassets/sub_common.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="logo-grid">
|
||||
<div></div>
|
||||
<div><img src="logo.png" alt="Arilia" class="logo-img"></div>
|
||||
<div><img src="/wwwassets/logo.png" alt="OpenWifi" class="logo-img"></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user