mirror of
https://github.com/vyme-fr/MercuryCloud_Dashboard.git
synced 2026-03-18 21:50:39 +01:00
Update
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,2 +1,6 @@
|
||||
api/node_modules
|
||||
api/utils/rate-limit-windows/*
|
||||
api/package-lock.json
|
||||
api/logs/*
|
||||
api/utils/rate-limit-windows/*
|
||||
api/config.json
|
||||
dev_files/
|
||||
31844
api/latest.log
31844
api/latest.log
File diff suppressed because it is too large
Load Diff
@@ -4,19 +4,26 @@ var getIP = require('ipware')().get_ip;
|
||||
const fs = require('fs')
|
||||
var crypto = require("crypto");
|
||||
const uuid = require('uuid');
|
||||
const request = require('request');
|
||||
const req = require('express/lib/request');
|
||||
const bodyParser = require('body-parser')
|
||||
const bcrypt = require('bcrypt')
|
||||
const app = express();
|
||||
const nodemailer = require("nodemailer");
|
||||
const config = require("./config.json")
|
||||
const fetch = require('cross-fetch');
|
||||
const rateLimit = require('express-rate-limit')
|
||||
const httpsAgent = new https.Agent({
|
||||
rejectUnauthorized: false,
|
||||
});
|
||||
|
||||
let start_date = new Date();;
|
||||
let date = ("0" + start_date.getDate()).slice(-2);
|
||||
let month = ("0" + (start_date.getMonth() + 1)).slice(-2);
|
||||
let year = start_date.getFullYear();
|
||||
let hours = start_date.getHours();
|
||||
let minutes = start_date.getMinutes();
|
||||
if (hours < 10) {hours = "0" + hours}
|
||||
if (minutes < 10) {minutes = "0" + minutes}
|
||||
const start_time = year + "-" + month + "-" + date + "-" + hours + ":" + minutes
|
||||
|
||||
function logger(msg) {
|
||||
let date_ob = new Date();;
|
||||
let date = ("0" + date_ob.getDate()).slice(-2);
|
||||
@@ -29,14 +36,12 @@ function logger(msg) {
|
||||
if (hours < 10) {hours = "0" + hours}
|
||||
if (minutes < 10) {minutes = "0" + minutes}
|
||||
console.log('[' + year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds + '] ' + msg)
|
||||
fs.appendFileSync('latest.log', '[' + year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds + '] ' + msg + '\n')
|
||||
fs.appendFileSync('logs/' + start_time + '.log', '[' + year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds + '] ' + msg + '\n')
|
||||
}
|
||||
|
||||
logger(" [INFO] The API is starting...")
|
||||
|
||||
|
||||
const PORT = 400
|
||||
var ipInfo = ""
|
||||
var mysql = require('mysql');
|
||||
var connection = mysql.createConnection({
|
||||
host : config.mysql_host,
|
||||
|
||||
11
assets/css/hope-ui.min.css
vendored
11
assets/css/hope-ui.min.css
vendored
File diff suppressed because one or more lines are too long
@@ -1,9 +0,0 @@
|
||||
permissions_manager.has_permission(req.query.uuid, "CREATEPRODUCT").then(function(result) {
|
||||
if (result) {
|
||||
} else {
|
||||
return res.json({
|
||||
"error": true,
|
||||
"code": 403
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -1,426 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="x-apple-disable-message-reformatting" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
<meta name="supported-color-schemes" content="light dark" />
|
||||
<title></title>
|
||||
<style type="text/css" rel="stylesheet" media="all">
|
||||
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:400,700&display=swap");
|
||||
body {
|
||||
width: 100% !important;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #3a57e8;
|
||||
font-size: larger;
|
||||
}
|
||||
p {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
td {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.preheader {
|
||||
display: none !important;
|
||||
visibility: hidden;
|
||||
mso-hide: all;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
max-height: 0;
|
||||
max-width: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
/* Type ------------------------------ */
|
||||
|
||||
body,
|
||||
td,
|
||||
th {
|
||||
font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 0;
|
||||
color: #151824;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 0;
|
||||
color: #151824;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 0;
|
||||
color: #151824;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote {
|
||||
margin: .4em 0 1.1875em;
|
||||
font-size: 16px;
|
||||
line-height: 1.625;
|
||||
}
|
||||
|
||||
p.sub {
|
||||
font-size: 13px;
|
||||
}
|
||||
/* Utilities ------------------------------ */
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.u-margin-bottom-none {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
/* Buttons ------------------------------ */
|
||||
|
||||
.button {
|
||||
background-color: #3a57e8;
|
||||
border-top: 10px solid #3a57e8;
|
||||
border-right: 18px solid #3a57e8;
|
||||
border-bottom: 10px solid #3a57e8;
|
||||
border-left: 18px solid #3a57e8;
|
||||
display: inline-block;
|
||||
color: #FFF;
|
||||
text-decoration: none;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);
|
||||
-webkit-text-size-adjust: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 500px) {
|
||||
.button {
|
||||
width: 100% !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
/* Attribute list ------------------------------ */
|
||||
|
||||
.attributes {
|
||||
margin: 0 0 21px;
|
||||
}
|
||||
|
||||
.attributes_content {
|
||||
background-color: #F4F4F7;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.attributes_item {
|
||||
padding: 0;
|
||||
}
|
||||
/* Related Items ------------------------------ */
|
||||
|
||||
.related {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 25px 0 0 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
.related_item {
|
||||
padding: 10px 0;
|
||||
color: #CBCCCF;
|
||||
font-size: 15px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.related_item-title {
|
||||
display: block;
|
||||
margin: .5em 0 0;
|
||||
}
|
||||
|
||||
.related_item-thumb {
|
||||
display: block;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.related_heading {
|
||||
border-top: 1px solid #151824;
|
||||
text-align: center;
|
||||
padding: 25px 0 10px;
|
||||
}
|
||||
/* Discount Code ------------------------------ */
|
||||
|
||||
.discount {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 24px;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #151824;
|
||||
border: 2px dashed #151824;
|
||||
}
|
||||
|
||||
.discount_heading {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.discount_body {
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
}
|
||||
/* Social Icons ------------------------------ */
|
||||
|
||||
.social {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.social td {
|
||||
padding: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.social_icon {
|
||||
height: 20px;
|
||||
margin: 0 8px 10px 8px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #F2F4F6;
|
||||
color: #151824;
|
||||
}
|
||||
|
||||
|
||||
.email-wrapper {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #F2F4F6;
|
||||
}
|
||||
|
||||
.email-content {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
/* Masthead ----------------------- */
|
||||
|
||||
.email-masthead {
|
||||
padding: 25px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.email-masthead_logo {
|
||||
width: 94px;
|
||||
}
|
||||
|
||||
.email-masthead_name {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #151824;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px 0 white;
|
||||
}
|
||||
/* Body ------------------------------ */
|
||||
|
||||
.email-body {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
.email-body_inner {
|
||||
width: 570px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
-premailer-width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.email-footer {
|
||||
width: 570px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
-premailer-width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.body-action {
|
||||
width: 100%;
|
||||
margin: 30px auto;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.body-sub {
|
||||
margin-top: 25px;
|
||||
padding-top: 25px;
|
||||
border-top: 1px solid #EAEAEC;
|
||||
}
|
||||
|
||||
.content-cell {
|
||||
padding: 45px;
|
||||
}
|
||||
/*Media Queries ------------------------------ */
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
.email-body_inner,
|
||||
.email-footer {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body,
|
||||
.email-body,
|
||||
.email-body_inner,
|
||||
.email-content,
|
||||
.email-wrapper,
|
||||
.email-masthead,
|
||||
.email-footer {
|
||||
background-color: #151824 !important;
|
||||
color: #FFF !important;
|
||||
}
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
span,
|
||||
.purchase_item {
|
||||
color: #FFF !important;
|
||||
}
|
||||
.attributes_content,
|
||||
.discount {
|
||||
background-color: #222 !important;
|
||||
}
|
||||
.email-masthead_name {
|
||||
text-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
:root {
|
||||
color-scheme: light dark;
|
||||
supported-color-schemes: light dark;
|
||||
}
|
||||
</style>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
.f-fallback {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<table class="email-wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td class="email-masthead">
|
||||
<image src="https://crater.mercurycloud.fr/storage/2/logo_small_icon_only_inverted.png" height="75" width="75"></image>
|
||||
</br>
|
||||
</br>
|
||||
<a>Mercury Cloud</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Email Body -->
|
||||
<tr>
|
||||
<td class="email-body" width="570" cellpadding="0" cellspacing="0">
|
||||
<table class="email-body_inner" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Body content -->
|
||||
<tr>
|
||||
<td class="content-cell">
|
||||
<div class="f-fallback">
|
||||
<h1>Bonjour Savalet,</h1>
|
||||
<p>Vous avez reçu une nouvelle facture. Vous pouvez la télécharger avec le bouton si dessous : </p>
|
||||
<!-- Action -->
|
||||
<table class="body-action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://crater.mercurycloud.fr/customer/invoices/view/zmQ8e9rMwKr95YoEV2gq" class="f-fallback button" target="_blank">Télécharger la facture</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>Si vous n'arrivez pas à cliquer sur le bouton utilisez se lien : <a href="https://crater.mercurycloud.fr/customer/invoices/view/zmQ8e9rMwKr95YoEV2gq">https://crater.mercurycloud.fr/customer/invoices/view/zmQ8e9rMwKr95YoEV2gq</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table class="email-footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td class="content-cell" align="center">
|
||||
<p class="f-fallback sub align-center">
|
||||
Mercury Cloud
|
||||
<br>7 Allée des Pommiers.
|
||||
<br>Cesson-Sévigné 35510
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
@@ -1,426 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0' />
|
||||
<meta name='x-apple-disable-message-reformatting' />
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
|
||||
<meta name='color-scheme' content='light dark' />
|
||||
<meta name='supported-color-schemes' content='light dark' />
|
||||
<title></title>
|
||||
<style type='text/css' rel='stylesheet' media='all'>
|
||||
@import url('https://fonts.googleapis.com/css?family=Nunito+Sans:400,700&display=swap');
|
||||
body {
|
||||
width: 100% !important;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #3a57e8;
|
||||
font-size: larger;
|
||||
}
|
||||
p {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
td {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.preheader {
|
||||
display: none !important;
|
||||
visibility: hidden;
|
||||
mso-hide: all;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
max-height: 0;
|
||||
max-width: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
/* Type ------------------------------ */
|
||||
|
||||
body,
|
||||
td,
|
||||
th {
|
||||
font-family: 'Nunito Sans', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 0;
|
||||
color: #151824;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 0;
|
||||
color: #151824;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 0;
|
||||
color: #151824;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote {
|
||||
margin: .4em 0 1.1875em;
|
||||
font-size: 16px;
|
||||
line-height: 1.625;
|
||||
}
|
||||
|
||||
p.sub {
|
||||
font-size: 13px;
|
||||
}
|
||||
/* Utilities ------------------------------ */
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.u-margin-bottom-none {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
/* Buttons ------------------------------ */
|
||||
|
||||
.button {
|
||||
background-color: #3a57e8;
|
||||
border-top: 10px solid #3a57e8;
|
||||
border-right: 18px solid #3a57e8;
|
||||
border-bottom: 10px solid #3a57e8;
|
||||
border-left: 18px solid #3a57e8;
|
||||
display: inline-block;
|
||||
color: #FFF;
|
||||
text-decoration: none;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);
|
||||
-webkit-text-size-adjust: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 500px) {
|
||||
.button {
|
||||
width: 100% !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
/* Attribute list ------------------------------ */
|
||||
|
||||
.attributes {
|
||||
margin: 0 0 21px;
|
||||
}
|
||||
|
||||
.attributes_content {
|
||||
background-color: #F4F4F7;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.attributes_item {
|
||||
padding: 0;
|
||||
}
|
||||
/* Related Items ------------------------------ */
|
||||
|
||||
.related {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 25px 0 0 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
.related_item {
|
||||
padding: 10px 0;
|
||||
color: #CBCCCF;
|
||||
font-size: 15px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.related_item-title {
|
||||
display: block;
|
||||
margin: .5em 0 0;
|
||||
}
|
||||
|
||||
.related_item-thumb {
|
||||
display: block;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.related_heading {
|
||||
border-top: 1px solid #151824;
|
||||
text-align: center;
|
||||
padding: 25px 0 10px;
|
||||
}
|
||||
/* Discount Code ------------------------------ */
|
||||
|
||||
.discount {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 24px;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #151824;
|
||||
border: 2px dashed #151824;
|
||||
}
|
||||
|
||||
.discount_heading {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.discount_body {
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
}
|
||||
/* Social Icons ------------------------------ */
|
||||
|
||||
.social {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.social td {
|
||||
padding: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.social_icon {
|
||||
height: 20px;
|
||||
margin: 0 8px 10px 8px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #F2F4F6;
|
||||
color: #151824;
|
||||
}
|
||||
|
||||
|
||||
.email-wrapper {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #F2F4F6;
|
||||
}
|
||||
|
||||
.email-content {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
/* Masthead ----------------------- */
|
||||
|
||||
.email-masthead {
|
||||
padding: 25px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.email-masthead_logo {
|
||||
width: 94px;
|
||||
}
|
||||
|
||||
.email-masthead_name {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #151824;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px 0 white;
|
||||
}
|
||||
/* Body ------------------------------ */
|
||||
|
||||
.email-body {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
.email-body_inner {
|
||||
width: 570px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
-premailer-width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.email-footer {
|
||||
width: 570px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
-premailer-width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.body-action {
|
||||
width: 100%;
|
||||
margin: 30px auto;
|
||||
padding: 0;
|
||||
-premailer-width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.body-sub {
|
||||
margin-top: 25px;
|
||||
padding-top: 25px;
|
||||
border-top: 1px solid #EAEAEC;
|
||||
}
|
||||
|
||||
.content-cell {
|
||||
padding: 45px;
|
||||
}
|
||||
/*Media Queries ------------------------------ */
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
.email-body_inner,
|
||||
.email-footer {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body,
|
||||
.email-body,
|
||||
.email-body_inner,
|
||||
.email-content,
|
||||
.email-wrapper,
|
||||
.email-masthead,
|
||||
.email-footer {
|
||||
background-color: #151824 !important;
|
||||
color: #FFF !important;
|
||||
}
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
span,
|
||||
.purchase_item {
|
||||
color: #FFF !important;
|
||||
}
|
||||
.attributes_content,
|
||||
.discount {
|
||||
background-color: #222 !important;
|
||||
}
|
||||
.email-masthead_name {
|
||||
text-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
:root {
|
||||
color-scheme: light dark;
|
||||
supported-color-schemes: light dark;
|
||||
}
|
||||
</style>
|
||||
<!--[if mso]>
|
||||
<style type='text/css'>
|
||||
.f-fallback {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<table class='email-wrapper' width='100%' cellpadding='0' cellspacing='0' role='presentation'>
|
||||
<tr>
|
||||
<td align='center'>
|
||||
<table class='email-content' width='100%' cellpadding='0' cellspacing='0' role='presentation'>
|
||||
<tr>
|
||||
<td class='email-masthead'>
|
||||
<image src='https://crater.mercurycloud.fr/storage/2/logo_small_icon_only_inverted.png' height='75' width='75'></image>
|
||||
</br>
|
||||
</br>
|
||||
<a>Mercury Cloud</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Email Body -->
|
||||
<tr>
|
||||
<td class='email-body' width='570' cellpadding='0' cellspacing='0'>
|
||||
<table class='email-body_inner' align='center' width='570' cellpadding='0' cellspacing='0' role='presentation'>
|
||||
<!-- Body content -->
|
||||
<tr>
|
||||
<td class='content-cell'>
|
||||
<div class='f-fallback'>
|
||||
<h1>Bonjour Savalet,</h1>
|
||||
<p>Votre nouveau service à bien été créé</p>
|
||||
<!-- Action -->
|
||||
<table class='body-action' align='center' width='100%' cellpadding='0' cellspacing='0' role='presentation'>
|
||||
<tr>
|
||||
<td align='center'>
|
||||
<table width='100%' border='0' cellspacing='0' cellpadding='0' role='presentation'>
|
||||
<tr>
|
||||
<td align='center'>
|
||||
<a href='https://dash.mercurycloud.fr/' class='f-fallback button' target='_blank'>Accéder au tableau de bord</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>Vous pouvez géré votre nouveau service Mercury Cloud sur le tableau de bord (bouton si dessus). Sur se tableau de bord vous pouvez aussi gérer vos paiements, factures, commandes et bien plus.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table class='email-footer' align='center' width='570' cellpadding='0' cellspacing='0' role='presentation'>
|
||||
<tr>
|
||||
<td class='content-cell' align='center'>
|
||||
<p class='f-fallback sub align-center'>
|
||||
Mercury Cloud
|
||||
<br>7 Allée des Pommiers.
|
||||
<br>Cesson-Sévigné 35510
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "mercurycloud-dashboard",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {}
|
||||
}
|
||||
195
pays.txt
195
pays.txt
@@ -1,195 +0,0 @@
|
||||
Afghanistan
|
||||
Albania
|
||||
Algeria
|
||||
Andorra
|
||||
Angola
|
||||
Antigua & Deps
|
||||
Argentina
|
||||
Armenia
|
||||
Australia
|
||||
Austria
|
||||
Azerbaijan
|
||||
Bahamas
|
||||
Bahrain
|
||||
Bangladesh
|
||||
Barbados
|
||||
Belarus
|
||||
Belgium
|
||||
Belize
|
||||
Benin
|
||||
Bhutan
|
||||
Bolivia
|
||||
Bosnia Herzegovina
|
||||
Botswana
|
||||
Brazil
|
||||
Brunei
|
||||
Bulgaria
|
||||
Burkina
|
||||
Burundi
|
||||
Cambodia
|
||||
Cameroon
|
||||
Canada
|
||||
Cape Verde
|
||||
Central African Rep
|
||||
Chad
|
||||
Chile
|
||||
China
|
||||
Colombia
|
||||
Comoros
|
||||
Congo
|
||||
Congo {Democratic Rep}
|
||||
Costa Rica
|
||||
Croatia
|
||||
Cuba
|
||||
Cyprus
|
||||
Czech Republic
|
||||
Denmark
|
||||
Djibouti
|
||||
Dominica
|
||||
Dominican Republic
|
||||
East Timor
|
||||
Ecuador
|
||||
Egypt
|
||||
El Salvador
|
||||
Equatorial Guinea
|
||||
Eritrea
|
||||
Estonia
|
||||
Ethiopia
|
||||
Fiji
|
||||
Finland
|
||||
France
|
||||
Gabon
|
||||
Gambia
|
||||
Georgia
|
||||
Germany
|
||||
Ghana
|
||||
Greece
|
||||
Grenada
|
||||
Guatemala
|
||||
Guinea
|
||||
Guinea-Bissau
|
||||
Guyana
|
||||
Haiti
|
||||
Honduras
|
||||
Hungary
|
||||
Iceland
|
||||
India
|
||||
Indonesia
|
||||
Iran
|
||||
Iraq
|
||||
Ireland {Republic}
|
||||
Israel
|
||||
Italy
|
||||
Ivory Coast
|
||||
Jamaica
|
||||
Japan
|
||||
Jordan
|
||||
Kazakhstan
|
||||
Kenya
|
||||
Kiribati
|
||||
Korea North
|
||||
Korea South
|
||||
Kosovo
|
||||
Kuwait
|
||||
Kyrgyzstan
|
||||
Laos
|
||||
Latvia
|
||||
Lebanon
|
||||
Lesotho
|
||||
Liberia
|
||||
Libya
|
||||
Liechtenstein
|
||||
Lithuania
|
||||
Luxembourg
|
||||
Macedonia
|
||||
Madagascar
|
||||
Malawi
|
||||
Malaysia
|
||||
Maldives
|
||||
Mali
|
||||
Malta
|
||||
Marshall Islands
|
||||
Mauritania
|
||||
Mauritius
|
||||
Mexico
|
||||
Micronesia
|
||||
Moldova
|
||||
Monaco
|
||||
Mongolia
|
||||
Montenegro
|
||||
Morocco
|
||||
Mozambique
|
||||
Myanmar, {Burma}
|
||||
Namibia
|
||||
Nauru
|
||||
Nepal
|
||||
Netherlands
|
||||
New Zealand
|
||||
Nicaragua
|
||||
Niger
|
||||
Nigeria
|
||||
Norway
|
||||
Oman
|
||||
Pakistan
|
||||
Palau
|
||||
Panama
|
||||
Papua New Guinea
|
||||
Paraguay
|
||||
Peru
|
||||
Philippines
|
||||
Poland
|
||||
Portugal
|
||||
Qatar
|
||||
Romania
|
||||
Russian Federation
|
||||
Rwanda
|
||||
St Kitts & Nevis
|
||||
St Lucia
|
||||
Saint Vincent & the Grenadines
|
||||
Samoa
|
||||
San Marino
|
||||
Sao Tome & Principe
|
||||
Saudi Arabia
|
||||
Senegal
|
||||
Serbia
|
||||
Seychelles
|
||||
Sierra Leone
|
||||
Singapore
|
||||
Slovakia
|
||||
Slovenia
|
||||
Solomon Islands
|
||||
Somalia
|
||||
South Africa
|
||||
Spain
|
||||
Sri Lanka
|
||||
Sudan
|
||||
Suriname
|
||||
Swaziland
|
||||
Sweden
|
||||
Switzerland
|
||||
Syria
|
||||
Taiwan
|
||||
Tajikistan
|
||||
Tanzania
|
||||
Thailand
|
||||
Togo
|
||||
Tonga
|
||||
Trinidad & Tobago
|
||||
Tunisia
|
||||
Turkey
|
||||
Turkmenistan
|
||||
Tuvalu
|
||||
Uganda
|
||||
Ukraine
|
||||
United Arab Emirates
|
||||
United Kingdom
|
||||
United States
|
||||
Uruguay
|
||||
Uzbekistan
|
||||
Vanuatu
|
||||
Vatican City
|
||||
Venezuela
|
||||
Vietnam
|
||||
Yemen
|
||||
Zambia
|
||||
Zimbabwe
|
||||
@@ -1,27 +0,0 @@
|
||||
All :
|
||||
ADMIN
|
||||
VIEWADMINPANEL
|
||||
|
||||
Users :
|
||||
LISTUSERS
|
||||
CREATEUSER
|
||||
DELETEUSER
|
||||
EDITUSER
|
||||
|
||||
Roles :
|
||||
LISTROLES
|
||||
CREATEROLE
|
||||
DELETEROLE
|
||||
EDITROLE
|
||||
|
||||
Products :
|
||||
LISTPRODUCTS
|
||||
CREATEPRODUCT
|
||||
DELETEPRODUCT
|
||||
EDITPRODUCT
|
||||
|
||||
Services :
|
||||
LISTSERVICES
|
||||
CREATESERVICE
|
||||
DELETESERVICE
|
||||
EDITSERVICE
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"cpu":"1",
|
||||
"cpu_pinning":"2",
|
||||
"ram":"3",
|
||||
"disk":"4",
|
||||
"swap":"5",
|
||||
"io":"6",
|
||||
"egg":"1",
|
||||
"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
|
||||
"env":{"BUNGEE_VERSION": "latest","SERVER_JARFILE": "bungeecord.jar"}
|
||||
}
|
||||
23
sort.js
23
sort.js
@@ -1,23 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const readline = require('readline');
|
||||
|
||||
async function processLineByLine() {
|
||||
const fileStream = fs.createReadStream('pays.txt');
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: fileStream,
|
||||
crlfDelay: Infinity
|
||||
});
|
||||
// Note: we use the crlfDelay option to recognize all instances of CR LF
|
||||
// ('\r\n') in input.txt as a single line break.
|
||||
|
||||
a = 1
|
||||
for await (const line of rl) {
|
||||
// Each line in input.txt will be successively available here as `line`.
|
||||
console.log(`<option value="${a}">${line}</option>`);
|
||||
a++
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
processLineByLine();
|
||||
38
tables.txt
38
tables.txt
@@ -1,38 +0,0 @@
|
||||
USER : uuid, username, mail, token, password, balance, tickets, services, suspend_services, alerts
|
||||
PRODUCTS : id, category, name, description, price, configuration
|
||||
ROLE : id, name, permissions
|
||||
SERVICES : id, name, product_id, price
|
||||
|
||||
CONFIGURATION PTERO :
|
||||
{
|
||||
'cpu': '',
|
||||
'cpu_pinning': '',
|
||||
'ram': '',
|
||||
'disk': '',
|
||||
'swap': '',
|
||||
'io': '',
|
||||
'egg': '',
|
||||
'startup_command': '',
|
||||
'env': ''
|
||||
}
|
||||
|
||||
CONFIGURATION PROXMOX :
|
||||
{
|
||||
'node': '',
|
||||
'template_vmid': '',
|
||||
'cores': '',
|
||||
'ram': '',
|
||||
'storage': '',
|
||||
'disk_size': '',
|
||||
'add_conf': ''
|
||||
}
|
||||
|
||||
ORDER-FORM :
|
||||
{
|
||||
"cycle": '',
|
||||
"srv_name": '',
|
||||
"srv_type": 1,
|
||||
"srv_nest": 2,
|
||||
"db_sup": '',
|
||||
"bkp_sup": ''
|
||||
}
|
||||
Reference in New Issue
Block a user