inc to limited

This commit is contained in:
Simon Larsen 2023-04-19 21:16:29 +01:00
parent eaa35d8ed9
commit 78f48431e9
No known key found for this signature in database
GPG Key ID: AB45983AA9C81CDE
49 changed files with 157 additions and 147 deletions

View File

@ -14,7 +14,7 @@ enum EmailTemplateType {
StatusPagePasswordChanged = 'StatusPagePasswordChanged.hbs',
StatusPageWelcomeEmail = 'StatusPageWelcomeEmail.hbs',
SubscriberScheduledMaintenanceEventNoteCreated = 'SubscriberScheduledMaintenanceEventNoteCreated.hbs',
SMTPTest = 'SMTPTest.hbs'
SMTPTest = 'SMTPTest.hbs',
}
export default EmailTemplateType;

View File

@ -21,12 +21,14 @@ export interface ComponentProps<T extends Object> {
const BasicFormModal: Function = <T extends Object>(
props: ComponentProps<T>
): ReactElement => {
const [isLoading, setIsLoading] = useState<boolean>(!!props.isLoading);
const [isLoading, setIsLoading] = useState<boolean>(
Boolean(props.isLoading)
);
const formRef: any = useRef<any>(null);
useEffect(()=>{
setIsLoading(!!props.isLoading);
}, [props.isLoading])
useEffect(() => {
setIsLoading(Boolean(props.isLoading));
}, [props.isLoading]);
return (
<Modal
@ -40,17 +42,19 @@ const BasicFormModal: Function = <T extends Object>(
<>
{isLoading && <ComponentLoader />}
{!isLoading && <BasicForm
{...props.formProps}
hideSubmitButton={true}
ref={formRef}
onLoadingChange={(isFormLoading: boolean) => {
setIsLoading(isFormLoading);
}}
onSubmit={(data: T) => {
props.onSubmit && props.onSubmit(data);
}}
/>}
{!isLoading && (
<BasicForm
{...props.formProps}
hideSubmitButton={true}
ref={formRef}
onLoadingChange={(isFormLoading: boolean) => {
setIsLoading(isFormLoading);
}}
onSubmit={(data: T) => {
props.onSubmit && props.onSubmit(data);
}}
/>
)}
</>
</Modal>
);

View File

@ -94,11 +94,7 @@ export const IDENTITY_URL: URL = new URL(
IDENTITY_ROUTE
);
export const MAIL_URL: URL = new URL(
HTTP_PROTOCOL,
MAIL_HOSTNAME,
MAIL_ROUTE
);
export const MAIL_URL: URL = new URL(HTTP_PROTOCOL, MAIL_HOSTNAME, MAIL_ROUTE);
export const WORKFLOW_URL: URL = new URL(
HTTP_PROTOCOL,

View File

@ -1,6 +1,11 @@
import Route from 'Common/Types/API/Route';
import Page from 'CommonUI/src/Components/Page/Page';
import React, { FunctionComponent, ReactElement, useEffect, useState } from 'react';
import React, {
FunctionComponent,
ReactElement,
useEffect,
useState,
} from 'react';
import PageMap from '../../Utils/PageMap';
import RouteMap, { RouteUtil } from '../../Utils/RouteMap';
import PageComponentProps from '../PageComponentProps';
@ -23,19 +28,14 @@ import EmptyResponseData from 'Common/Types/API/EmptyResponse';
import HTTPErrorResponse from 'Common/Types/API/HTTPErrorResponse';
import ConfirmModal from 'CommonUI/src/Components/Modal/ConfirmModal';
const CustomSMTP: FunctionComponent<PageComponentProps> = (
_props: PageComponentProps
): ReactElement => {
const [showSMTPTestModal, setShowSMTPTestModal] =
useState<boolean>(false);
const [showSMTPTestModal, setShowSMTPTestModal] = useState<boolean>(false);
const [error, setError] = useState<string>('');
const [currentSMTPTestConfig, setCurrentSMTPTestConfig] =
useState<JSONObject | null>(null);
const [isSMTPTestLoading, setIsSMTPTestLoading] =
useState<boolean>(false);
const [isSMTPTestLoading, setIsSMTPTestLoading] = useState<boolean>(false);
const [showSuccessModal, setShowSuccessModal] = useState<boolean>(false);
@ -43,7 +43,6 @@ const CustomSMTP: FunctionComponent<PageComponentProps> = (
setError('');
}, [showSMTPTestModal]);
return (
<Page
title={'Project Settings'}
@ -120,7 +119,6 @@ const CustomSMTP: FunctionComponent<PageComponentProps> = (
title: 'Email',
id: 'email-info',
},
]}
name="Settings > Custom SMTP Config"
noItemsMessage={'No SMTP Server Configs found.'}
@ -257,7 +255,6 @@ const CustomSMTP: FunctionComponent<PageComponentProps> = (
]}
/>
{showSMTPTestModal && currentSMTPTestConfig ? (
<BasicFormModal
title={`Send Test Email`}
@ -270,12 +267,13 @@ const CustomSMTP: FunctionComponent<PageComponentProps> = (
toEmail: true,
},
title: 'Email',
description: 'Email address to send test email to.',
description:
'Email address to send test email to.',
fieldType: FormFieldSchemaType.Email,
required: true,
placeholder: 'test@company.com'
}
]
placeholder: 'test@company.com',
},
],
}}
submitButtonText={'Send Test Email'}
onClose={() => {
@ -289,19 +287,23 @@ const CustomSMTP: FunctionComponent<PageComponentProps> = (
setError('');
// test SMTP config
const response: HTTPResponse<EmptyResponseData> | HTTPErrorResponse = await API.post(
URL.fromString(MAIL_URL.toString()).addRoute(`/smtp-config/test`),
const response:
| HTTPResponse<EmptyResponseData>
| HTTPErrorResponse = await API.post(
URL.fromString(MAIL_URL.toString()).addRoute(
`/smtp-config/test`
),
{
'toEmail': values['toEmail'],
'smtpConfigId': (new ObjectID(
toEmail: values['toEmail'],
smtpConfigId: new ObjectID(
currentSMTPTestConfig['_id']
? currentSMTPTestConfig[
'_id'
].toString()
: '').toString())
},
'_id'
].toString()
: ''
).toString(),
}
);
if (response.isSuccess()) {
setIsSMTPTestLoading(false);
@ -312,7 +314,6 @@ const CustomSMTP: FunctionComponent<PageComponentProps> = (
if (response instanceof HTTPErrorResponse) {
throw response;
}
} catch (err) {
setError(API.getFriendlyMessage(err));
setIsSMTPTestLoading(false);
@ -323,13 +324,12 @@ const CustomSMTP: FunctionComponent<PageComponentProps> = (
<></>
)}
{showSuccessModal ? (
<ConfirmModal
title={`Email Sent`}
error={error}
description={
"Email sent successfully. Please check your inbox. Please dont forget to check spam. It should take couple of minutes to arrive."
'Email sent successfully. Please check your inbox. Please dont forget to check spam. It should take couple of minutes to arrive.'
}
submitButtonType={ButtonStyleType.NORMAL}
submitButtonText={'Close'}

View File

@ -69,7 +69,7 @@ const DashboardSideMenu: FunctionComponent = (): ReactElement => {
title: 'Custom Fields',
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap.SETTINGS_MONITOR_CUSTOM_FIELDS
PageMap.SETTINGS_MONITOR_CUSTOM_FIELDS
] as Route
),
}}
@ -82,7 +82,7 @@ const DashboardSideMenu: FunctionComponent = (): ReactElement => {
title: 'Custom Fields',
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap.SETTINGS_STATUS_PAGE_CUSTOM_FIELDS
PageMap.SETTINGS_STATUS_PAGE_CUSTOM_FIELDS
] as Route
),
}}
@ -104,7 +104,7 @@ const DashboardSideMenu: FunctionComponent = (): ReactElement => {
title: 'Incident Severity',
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap.SETTINGS_INCIDENTS_SEVERITY
PageMap.SETTINGS_INCIDENTS_SEVERITY
] as Route
),
}}
@ -115,7 +115,7 @@ const DashboardSideMenu: FunctionComponent = (): ReactElement => {
title: 'Custom Fields',
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap.SETTINGS_INCIDENT_CUSTOM_FIELDS
PageMap.SETTINGS_INCIDENT_CUSTOM_FIELDS
] as Route
),
}}
@ -135,7 +135,7 @@ const DashboardSideMenu: FunctionComponent = (): ReactElement => {
title: 'Event State',
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap.SETTINGS_SCHEDULED_MAINTENANCE_STATE
PageMap.SETTINGS_SCHEDULED_MAINTENANCE_STATE
] as Route
),
}}
@ -146,8 +146,8 @@ const DashboardSideMenu: FunctionComponent = (): ReactElement => {
title: 'Custom Fields',
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap
.SETTINGS_SCHEDULED_MAINTENANCE_CUSTOM_FIELDS
PageMap
.SETTINGS_SCHEDULED_MAINTENANCE_CUSTOM_FIELDS
] as Route
),
}}
@ -220,7 +220,7 @@ const DashboardSideMenu: FunctionComponent = (): ReactElement => {
title: 'Invoices',
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap.SETTINGS_BILLING_INVOICES
PageMap.SETTINGS_BILLING_INVOICES
] as Route
),
}}

View File

@ -52,7 +52,7 @@
</p>
<p><b>Entity Name > Entity Country</b><br />
OneUptime Inc. > United States<br />
OneUptime Limited > United States<br />
OneUptime Software Private Limited. > India.<br /></p>
<h3>Updates</h3>

View File

@ -18,16 +18,13 @@ import BadDataException from 'Common/Types/Exception/BadDataException';
import ObjectID from 'Common/Types/ObjectID';
import logger from 'CommonServer/Utils/Logger';
router.post('/test', async (req: ExpressRequest, res: ExpressResponse) => {
const body: JSONObject = req.body;
router.post(
'/test',
async (req: ExpressRequest, res: ExpressResponse) => {
const smtpConfigId: ObjectID = new ObjectID(body['smtpConfigId'] as string);
const body: JSONObject = req.body;
const smtpConfigId = new ObjectID(body['smtpConfigId'] as string);
const config: ProjectSmtpConfig | null = await ProjectSMTPConfigService.findOneById({
const config: ProjectSmtpConfig | null =
await ProjectSMTPConfigService.findOneById({
id: smtpConfigId,
props: {
isRoot: true,
@ -41,47 +38,61 @@ router.post(
fromEmail: true,
fromName: true,
secure: true,
}
})
},
});
if (!config) {
return Response.sendErrorResponse(req, res, new BadDataException('smtp-config not found for id' + smtpConfigId.toString()));
}
const toEmail: Email = new Email(body['toEmail'] as string);
if (!toEmail) {
return Response.sendErrorResponse(req, res, new BadDataException('toEmail is required'));
}
const mail: EmailMessage = {
templateType: EmailTemplateType.SMTPTest,
toEmail: new Email(body['toEmail'] as string),
subject: 'Test Email',
vars: {},
body: '',
};
let mailServer: EmailServer = {
host: config.hostname!,
port: config.port!,
username: config.username!,
password: config.password!,
fromEmail: config.fromEmail!,
fromName: config.fromName!,
secure: !!config.secure,
};
try {
await MailService.send(mail, mailServer);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, new BadDataException('Cannot send email. Please check your SMTP config.'));
}
return Response.sendEmptyResponse(req, res);
if (!config) {
return Response.sendErrorResponse(
req,
res,
new BadDataException(
'smtp-config not found for id' + smtpConfigId.toString()
)
);
}
);
const toEmail: Email = new Email(body['toEmail'] as string);
if (!toEmail) {
return Response.sendErrorResponse(
req,
res,
new BadDataException('toEmail is required')
);
}
const mail: EmailMessage = {
templateType: EmailTemplateType.SMTPTest,
toEmail: new Email(body['toEmail'] as string),
subject: 'Test Email',
vars: {},
body: '',
};
const mailServer: EmailServer = {
host: config.hostname!,
port: config.port!,
username: config.username!,
password: config.password!,
fromEmail: config.fromEmail!,
fromName: config.fromName!,
secure: Boolean(config.secure),
};
try {
await MailService.send(mail, mailServer);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(
req,
res,
new BadDataException(
'Cannot send email. Please check your SMTP config.'
)
);
}
return Response.sendEmptyResponse(req, res);
});
export default router;

View File

@ -28,7 +28,6 @@ const init: Function = async (): Promise<void> => {
// connect redis
await Redis.connect();
} catch (err) {
logger.error('App Init Failed:');
logger.error(err);

View File

@ -582,7 +582,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -581,7 +581,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{currentYear}} OneUptime Inc.
© {{currentYear}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -452,7 +452,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -502,7 +502,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -582,7 +582,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -477,7 +477,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -478,7 +478,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -512,7 +512,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{currentYear}} OneUptime Inc.
© {{currentYear}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -414,7 +414,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -453,7 +453,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -452,7 +452,7 @@ This sub-project is currently visible on your Dashboard.
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -419,7 +419,7 @@ When private statuspages are created you'll be able to view them.
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -415,7 +415,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -600,7 +600,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -596,7 +596,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -468,7 +468,7 @@ span.st-Delink.st-Delink--footer a {
<tr style="border-collapse:collapse">
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
</tr>

View File

@ -693,7 +693,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -595,7 +595,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -552,7 +552,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -454,7 +454,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -453,7 +453,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -453,7 +453,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -562,7 +562,7 @@ Request for project removal was made for <b>{{projectName}}</b>, please attend t
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -633,7 +633,7 @@ Dear <strong style="color: #000000 !important;">{{userName}}</strong>
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -500,7 +500,7 @@ I am Nawaz and I'm your account executive and excited to give you a demo.
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -452,7 +452,7 @@ span.st-Delink.st-Delink--footer a {
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -476,7 +476,7 @@ Hi {{name}}
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -585,7 +585,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{currentYear}} OneUptime Inc.
© {{currentYear}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -614,7 +614,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -534,7 +534,7 @@ Hi {{name}},
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -519,7 +519,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{currentYear}} OneUptime Inc.
© {{currentYear}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -552,7 +552,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{currentYear}} OneUptime Inc.
© {{currentYear}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -574,7 +574,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -442,7 +442,7 @@ Thank you for your interest in our Whitepapers and Resources.
</td>
<td class="st-Font st-Font--caption" style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer" style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter" style="border: 0; margin:0; padding: 0; font-size: 1px; line-height: 1px; mso-line-height-rule: exactly;" width="64">

View File

@ -554,7 +554,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -509,7 +509,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -554,7 +554,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -552,7 +552,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -509,7 +509,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -500,7 +500,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"

View File

@ -554,7 +554,7 @@
style="border: 0; margin: 0;padding: 0; color: #8898aa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif; font-size: 12px; line-height: 16px;">
<span class="st-Delink st-Delink--footer"
style="border: 0; margin: 0; padding: 0; color: #8898aa; text-decoration: none;">
© {{year}} OneUptime Inc.
© {{year}} OneUptime Limited
</span>
</td>
<td class="st-Spacer st-Spacer--gutter"