tango-app-api-client 3.6.2 → 3.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tango-app-api-client",
|
|
3
|
-
"version": "3.6.
|
|
4
|
-
"description": "client",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"start": "nodemon --exec \"eslint --fix . && node
|
|
9
|
-
"build:patch": "node build.js patch && npm publish",
|
|
10
|
-
"build:minor": "node build.js minor && npm publish",
|
|
11
|
-
"build:major": "node build.js major && npm publish"
|
|
12
|
-
},
|
|
13
|
-
"engines": {
|
|
14
|
-
"node": ">=18.10.0"
|
|
15
|
-
},
|
|
16
|
-
"author": "praveenraj",
|
|
17
|
-
"license": "ISC",
|
|
18
|
-
"dependencies": {
|
|
19
|
-
"aws-sdk": "^2.1560.0",
|
|
20
|
-
"cors": "^2.8.5",
|
|
21
|
-
"dotenv": "^16.4.4",
|
|
22
|
-
"express": "^4.18.2",
|
|
23
|
-
"express-fileupload": "^1.4.3",
|
|
24
|
-
"handlebars": "^4.7.8",
|
|
25
|
-
"joi": "^17.12.1",
|
|
26
|
-
"joi-to-swagger": "^6.2.0",
|
|
27
|
-
"lodash": "^4.17.21",
|
|
28
|
-
"mongodb": "^6.7.0",
|
|
29
|
-
"nodemon": "^3.0.3",
|
|
30
|
-
"npm": "^10.9.1",
|
|
31
|
-
"sharp": "^0.34.3",
|
|
32
|
-
"swagger-ui-express": "^5.0.0",
|
|
33
|
-
"tango-api-schema": "^2.
|
|
34
|
-
"tango-app-api-middleware": "^3.6.0",
|
|
35
|
-
"winston": "^3.11.0",
|
|
36
|
-
"winston-daily-rotate-file": "^5.0.0"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"eslint": "^8.56.0",
|
|
40
|
-
"eslint-config-google": "^0.14.0",
|
|
41
|
-
"eslint-config-semistandard": "^17.0.0",
|
|
42
|
-
"eslint-config-standard": "^17.1.0",
|
|
43
|
-
"eslint-plugin-import": "^2.29.1",
|
|
44
|
-
"eslint-plugin-promise": "^6.1.1"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "tango-app-api-client",
|
|
3
|
+
"version": "3.6.4",
|
|
4
|
+
"description": "client",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "nodemon --exec \"eslint --fix . && node index.js\"",
|
|
9
|
+
"build:patch": "node build.js patch && npm publish",
|
|
10
|
+
"build:minor": "node build.js minor && npm publish",
|
|
11
|
+
"build:major": "node build.js major && npm publish"
|
|
12
|
+
},
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=18.10.0"
|
|
15
|
+
},
|
|
16
|
+
"author": "praveenraj",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"aws-sdk": "^2.1560.0",
|
|
20
|
+
"cors": "^2.8.5",
|
|
21
|
+
"dotenv": "^16.4.4",
|
|
22
|
+
"express": "^4.18.2",
|
|
23
|
+
"express-fileupload": "^1.4.3",
|
|
24
|
+
"handlebars": "^4.7.8",
|
|
25
|
+
"joi": "^17.12.1",
|
|
26
|
+
"joi-to-swagger": "^6.2.0",
|
|
27
|
+
"lodash": "^4.17.21",
|
|
28
|
+
"mongodb": "^6.7.0",
|
|
29
|
+
"nodemon": "^3.0.3",
|
|
30
|
+
"npm": "^10.9.1",
|
|
31
|
+
"sharp": "^0.34.3",
|
|
32
|
+
"swagger-ui-express": "^5.0.0",
|
|
33
|
+
"tango-api-schema": "^2.4.12",
|
|
34
|
+
"tango-app-api-middleware": "^3.6.0",
|
|
35
|
+
"winston": "^3.11.0",
|
|
36
|
+
"winston-daily-rotate-file": "^5.0.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"eslint": "^8.56.0",
|
|
40
|
+
"eslint-config-google": "^0.14.0",
|
|
41
|
+
"eslint-config-semistandard": "^17.0.0",
|
|
42
|
+
"eslint-config-standard": "^17.1.0",
|
|
43
|
+
"eslint-plugin-import": "^2.29.1",
|
|
44
|
+
"eslint-plugin-promise": "^6.1.1"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -488,48 +488,48 @@ export async function clientDetails( req, res ) {
|
|
|
488
488
|
|
|
489
489
|
|
|
490
490
|
if ( isLogoExist ) {
|
|
491
|
-
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/logo/${client.profileDetails?.logo}` },
|
|
491
|
+
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/logo/${client.profileDetails?.logo}` }, 8 ); // `${url.assests}/${client.clientId}/logo/${client.profileDetails?.logo}`; // await signedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/logo/${client.profileDetails?.logo}` } );
|
|
492
492
|
client.profileDetails.logo = signedFilUrl;
|
|
493
493
|
} else {
|
|
494
494
|
client.profileDetails.logo = '';
|
|
495
495
|
}
|
|
496
496
|
|
|
497
497
|
if ( isGstCertificateExist ) {
|
|
498
|
-
const signedFilUrl = await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.gst?.path}` },
|
|
498
|
+
const signedFilUrl = await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.gst?.path}` }, 8 );// `${url.assests}/${client.clientId}/documents/${client.document?.gst?.path}`;// await signedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.gst?.path}` } );
|
|
499
499
|
client.document.gst.path = signedFilUrl;
|
|
500
500
|
} else {
|
|
501
501
|
client.document.gst.path = '';
|
|
502
502
|
}
|
|
503
503
|
|
|
504
504
|
if ( isAddressCertificateExist ) {
|
|
505
|
-
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.addressProof?.path}` },
|
|
505
|
+
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.addressProof?.path}` }, 8 ); // `${url.assests}/${client.clientId}/documents/${client.document?.addressProof?.path}`;// await signedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.addressProof?.path}` } );
|
|
506
506
|
client.document.addressProof.path = signedFilUrl;
|
|
507
507
|
} else {
|
|
508
508
|
client.document.addressProof.path = '';
|
|
509
509
|
}
|
|
510
510
|
if ( isPanCertificateExist ) {
|
|
511
|
-
const signedFilUrl = await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.pan?.path}` },
|
|
511
|
+
const signedFilUrl = await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.pan?.path}` }, 8 );// `${url.assests}/${client.clientId}/documents/${client.document?.pan?.path}`;// await signedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.pan?.path}` } );
|
|
512
512
|
client.document.pan.path = signedFilUrl;
|
|
513
513
|
} else {
|
|
514
514
|
client.document.pan.path = '';
|
|
515
515
|
}
|
|
516
516
|
|
|
517
517
|
if ( isCinCertificateExist ) {
|
|
518
|
-
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.cin?.path}` },
|
|
518
|
+
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.cin?.path}` }, 8 ); // `${url.assests}/${client.clientId}/documents/${client.document?.cin?.path}`;// await signedUrl( { Bucket: bucket.assets, file_path: `${client.clientId}/documents/${client.document?.cin?.path}` } );
|
|
519
519
|
client.document.cin.path = signedFilUrl;
|
|
520
520
|
} else {
|
|
521
521
|
client.document.cin.path = '';
|
|
522
522
|
}
|
|
523
523
|
|
|
524
524
|
if ( isContractCertificateExist ) {
|
|
525
|
-
const signedFilUrl = await customSignedUrl( { Bucket: bucket.assets, file_path: `documents/contract.pdf` },
|
|
525
|
+
const signedFilUrl = await customSignedUrl( { Bucket: bucket.assets, file_path: `documents/contract.pdf` }, 8 ); // `${url.assests}/documents/contract.pdf`;// await signedUrl( { Bucket: bucket.assets, file_path: `documents/contract.pdf` } );
|
|
526
526
|
client._doc.document.contract = signedFilUrl;
|
|
527
527
|
} else {
|
|
528
528
|
client._doc.document.contract = '';
|
|
529
529
|
}
|
|
530
530
|
|
|
531
531
|
if ( isTermsAndConditionsExist ) {
|
|
532
|
-
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `documents/terms&conditions.pdf` },
|
|
532
|
+
const signedFilUrl =await customSignedUrl( { Bucket: bucket.assets, file_path: `documents/terms&conditions.pdf` }, 8 ); // `${url.assests}/documents/terms&conditions.pdf`;// await signedUrl( { Bucket: bucket.assets, file_path: `documents/terms&conditions.pdf` } );
|
|
533
533
|
client._doc.document.termsAndconditions = signedFilUrl;
|
|
534
534
|
} else {
|
|
535
535
|
client._doc.document.termsAndconditions = '';
|
|
@@ -1154,6 +1154,7 @@ export async function updateFeatureConfiguration( req, res ) {
|
|
|
1154
1154
|
Reports: previousData?.featureConfigs?.isNewReports == true ? 'Enabled' : 'Disabled',
|
|
1155
1155
|
Trax: previousData?.featureConfigs?.isTrax == true ? 'Enabled' : 'Disabled',
|
|
1156
1156
|
Revops: previousData?.featureConfigs?.isRevops == true ? 'Enabled' : 'Disabled',
|
|
1157
|
+
VMS: previousData?.featureConfigs?.isVMS == true ? 'Enabled' : 'Disabled',
|
|
1157
1158
|
StreamType: previousData?.featureConfigs?.streamBy == 'Edge' ? 'Edge App' : 'RTSP',
|
|
1158
1159
|
FootfallDirectoryOnlyAudit: previousData?.featureConfigs?.isFootfallDirectoryAudit == true ? 'Enabled' : 'Disabled',
|
|
1159
1160
|
FootfallDirectoryOnlyFew: previousData?.featureConfigs?.isFootfallDirectoryLimit == true ? 'Enabled' : 'Disabled',
|
|
@@ -1161,6 +1162,7 @@ export async function updateFeatureConfiguration( req, res ) {
|
|
|
1161
1162
|
AIManager: previousData?.featureConfigs?.isAIManager == true ? 'Enabled' : 'Disabled',
|
|
1162
1163
|
AIManagerAccessControl: previousData?.featureConfigs?.isAIManagerAccessControl == true ? 'Enabled' : 'Disabled',
|
|
1163
1164
|
CameraEdit: previousData?.featureConfigs?.isCameraEdit == true ? 'Enabled' : 'Disabled',
|
|
1165
|
+
SSOlogin: previousData?.featureConfigs?.loginSSO == true ? 'Enabled' : 'Disabled',
|
|
1164
1166
|
};
|
|
1165
1167
|
|
|
1166
1168
|
// Map and rename keys from current client info for UI display and logging
|
|
@@ -1194,6 +1196,7 @@ export async function updateFeatureConfiguration( req, res ) {
|
|
|
1194
1196
|
Reports: postData?.featureConfigs?.isNewReports == true ? 'Enabled' : 'Disabled',
|
|
1195
1197
|
Trax: postData?.featureConfigs?.isTrax == true ? 'Enabled' : 'Disabled',
|
|
1196
1198
|
Revops: postData?.featureConfigs?.isRevops == true ? 'Enabled' : 'Disabled',
|
|
1199
|
+
VMS: postData?.featureConfigs?.isVMS == true ? 'Enabled' : 'Disabled',
|
|
1197
1200
|
StreamType: postData?.featureConfigs?.streamBy == 'Edge' ? 'Edge App' : 'RTSP',
|
|
1198
1201
|
FootfallDirectoryOnlyAudit: postData?.featureConfigs?.isFootfallDirectoryAudit == true ? 'Enabled' : 'Disabled',
|
|
1199
1202
|
FootfallDirectoryOnlyFew: postData?.featureConfigs?.isFootfallDirectoryLimit == true ? 'Enabled' : 'Disabled',
|
|
@@ -1201,6 +1204,7 @@ export async function updateFeatureConfiguration( req, res ) {
|
|
|
1201
1204
|
AIManager: previousData?.featureConfigs?.isAIManager == true ? 'Enabled' : 'Disabled',
|
|
1202
1205
|
AIManagerAccessControl: previousData?.featureConfigs?.isAIManagerAccessControl == true ? 'Enabled' : 'Disabled',
|
|
1203
1206
|
CameraEdit: previousData?.featureConfigs?.isCameraEdit == true ? 'Enabled' : 'Disabled',
|
|
1207
|
+
SSOlogin: previousData?.featureConfigs?.loginSSO == true ? 'Enabled' : 'Disabled',
|
|
1204
1208
|
};
|
|
1205
1209
|
|
|
1206
1210
|
// Prepare activity log object with all relevant details for OpenSearch logging
|
package/src/dtos/client.dtos.js
CHANGED
|
@@ -129,6 +129,8 @@ export const featureConfigurationSchemaBody = joi.object(
|
|
|
129
129
|
isAIManager: joi.boolean().optional(),
|
|
130
130
|
isAIManagerAccessControl: joi.boolean().optional(),
|
|
131
131
|
isCameraEdit: joi.boolean().optional(),
|
|
132
|
+
isVMS: joi.boolean().optional(),
|
|
133
|
+
loginSSO: joi.boolean().optional(),
|
|
132
134
|
},
|
|
133
135
|
);
|
|
134
136
|
|
|
@@ -1,171 +1,171 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
6
|
-
<title>Your account was approved!</title>
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
-
<style type="text/css">
|
|
9
|
-
@media screen {
|
|
10
|
-
@font-face {
|
|
11
|
-
font-family: 'Inter';
|
|
12
|
-
font-style: normal;
|
|
13
|
-
font-weight: 400;
|
|
14
|
-
font-display: swap;
|
|
15
|
-
src: local("Inter"), local("Inter-Regular"), url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZJhiI2B.woff2) format('woff2');
|
|
16
|
-
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
body {
|
|
21
|
-
font-family: "Inter", sans-serif !important;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
body,
|
|
25
|
-
table,
|
|
26
|
-
td,
|
|
27
|
-
a {
|
|
28
|
-
-ms-text-size-adjust: 100%;
|
|
29
|
-
-webkit-text-size-adjust: 100%;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
table,
|
|
33
|
-
td {
|
|
34
|
-
mso-table-rspace: 0pt;
|
|
35
|
-
mso-table-lspace: 0pt;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
img {
|
|
39
|
-
-ms-interpolation-mode: bicubic;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
a[x-apple-data-detectors] {
|
|
43
|
-
font-family: "inherit" !important;
|
|
44
|
-
font-size: inherit !important;
|
|
45
|
-
font-weight: inherit !important;
|
|
46
|
-
line-height: inherit !important;
|
|
47
|
-
color: inherit !important;
|
|
48
|
-
text-decoration: none !important;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
div[style*="margin: 16px 0;"] {
|
|
52
|
-
margin: 0 !important;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
body {
|
|
56
|
-
width: 100% !important;
|
|
57
|
-
height: 100% !important;
|
|
58
|
-
padding: 0 !important;
|
|
59
|
-
margin: 0 !important;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
table {
|
|
63
|
-
border-collapse: collapse !important;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
a {
|
|
67
|
-
color: #1a82e2;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
img {
|
|
71
|
-
height: auto;
|
|
72
|
-
line-height: 100%;
|
|
73
|
-
text-decoration: none;
|
|
74
|
-
border: 0;
|
|
75
|
-
outline: none;
|
|
76
|
-
}
|
|
77
|
-
</style>
|
|
78
|
-
</head>
|
|
79
|
-
<body style="background-color: #dbe5ea;">
|
|
80
|
-
<div class="preheader" style="display: none; max-width: 0; max-height: 0; overflow: hidden; font-size: 1px; line-height: 1px; color: #fff; opacity: 0;"> Email Summary (Hidden) </div>
|
|
81
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding-left:10px;padding-right:10px">
|
|
82
|
-
<tr>
|
|
83
|
-
<td bgcolor="#dbe5ea" style="padding:32px 10px 0 10px">
|
|
84
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" align="center">
|
|
85
|
-
<tr>
|
|
86
|
-
<td class="o_bg-white o_px-md o_py-md o_sans o_text" style="margin-top: 0px;margin-bottom: 0px;font-size: 16px;line-height: 24px;background-color: #ffffff;padding-left: 18px;padding-right: 24px;padding-top: 24px;padding-bottom: 24px;">
|
|
87
|
-
<p style="margin-top: 0px;margin-bottom: 0px;">
|
|
88
|
-
<a class="o_text-white" href="https://tangoeye.ai/" style="text-decoration: none;outline: none;color: #ffffff;">
|
|
89
|
-
<img src={{logo}} width="200" height="100" alt="SimpleApp" style="-ms-interpolation-mode: bicubic;vertical-align: middle;border: 0;line-height: 100%;height: auto;outline: none;text-decoration: none;">
|
|
90
|
-
</a>
|
|
91
|
-
</p>
|
|
92
|
-
</td>
|
|
93
|
-
</tr>
|
|
94
|
-
<tr>
|
|
95
|
-
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 14px; line-height: 24px;">
|
|
96
|
-
<p class="o_heading o_mb-xxs" style="width: 544px;height: 0px;border: 1px solid #CBD5E1;flex: none;order: 1;flex-grow: 0;"></p>
|
|
97
|
-
</td>
|
|
98
|
-
</tr>
|
|
99
|
-
</table>
|
|
100
|
-
</td>
|
|
101
|
-
</tr>
|
|
102
|
-
<tr>
|
|
103
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
104
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
105
|
-
<tr>
|
|
106
|
-
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-top: 10px;padding-bottom: 10px;">
|
|
107
|
-
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 20px;line-height: 28px;color: #82899a;">
|
|
108
|
-
<span class="o_heading o_text-dark o_mb-xxs" style="font-weight: 700;margin-top: 0px;margin-bottom: 4px;color: #242b3d;line-height: 39px;"> Your account was approved!</span>
|
|
109
|
-
</div>
|
|
110
|
-
</td>
|
|
111
|
-
</tr>
|
|
112
|
-
</table>
|
|
113
|
-
</td>
|
|
114
|
-
</tr>
|
|
115
|
-
<tr>
|
|
116
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
117
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
118
|
-
<tr>
|
|
119
|
-
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
120
|
-
<p style="margin: 0;">As a verified user, you will be among the first to receive product updates, new feature announcements, enhanced security and personalised support.
|
|
121
|
-
<br><br>
|
|
122
|
-
Head over to the dashboard to finish your setup. </p>
|
|
123
|
-
</td>
|
|
124
|
-
</tr>
|
|
125
|
-
</table>
|
|
126
|
-
</td>
|
|
127
|
-
</tr>
|
|
128
|
-
<tr>
|
|
129
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
130
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
131
|
-
<tr>
|
|
132
|
-
<td align="left" bgcolor="#fff" style="border-radius: 6px;padding:14px 30px">
|
|
133
|
-
<a href={{url}} style="display: inline-block;padding: 10px 36px;font-size: 20px;color: #fff;text-decoration: none;border-radius: 6px;background-color: #00a3ff;"> Add Stores</a>
|
|
134
|
-
</td>
|
|
135
|
-
</tr>
|
|
136
|
-
</table>
|
|
137
|
-
</td>
|
|
138
|
-
</tr>
|
|
139
|
-
<tr>
|
|
140
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
141
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
142
|
-
<tr>
|
|
143
|
-
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
144
|
-
<p style="margin: 0;">Enjoy the full potential of Tango Traffic Module. If you have any questions or need assistance, our support team is here to help.
|
|
145
|
-
|
|
146
|
-
<br><br>
|
|
147
|
-
|
|
148
|
-
Happy exploring! </p>
|
|
149
|
-
</td>
|
|
150
|
-
</tr>
|
|
151
|
-
</table>
|
|
152
|
-
</td>
|
|
153
|
-
</tr>
|
|
154
|
-
<tr>
|
|
155
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 32px 10px">
|
|
156
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
157
|
-
<tr>
|
|
158
|
-
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom:15px">
|
|
159
|
-
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 12px;color: #202B3C;font-style: normal;font-weight: 400;font-size: 12px;line-height: 150%;">
|
|
160
|
-
<br>
|
|
161
|
-
<p>If you'd rather not receive this kind of email, Don’t want any more emails from TangoEye?<u style="color:#00A3FF">Unsubscribe</u>.</p>
|
|
162
|
-
<p> © Tango Eye. All rights reserved.</p>
|
|
163
|
-
</div>
|
|
164
|
-
</td>
|
|
165
|
-
</tr>
|
|
166
|
-
</table>
|
|
167
|
-
</td>
|
|
168
|
-
</tr>
|
|
169
|
-
</table>
|
|
170
|
-
</body>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
6
|
+
<title>Your account was approved!</title>
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
<style type="text/css">
|
|
9
|
+
@media screen {
|
|
10
|
+
@font-face {
|
|
11
|
+
font-family: 'Inter';
|
|
12
|
+
font-style: normal;
|
|
13
|
+
font-weight: 400;
|
|
14
|
+
font-display: swap;
|
|
15
|
+
src: local("Inter"), local("Inter-Regular"), url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZJhiI2B.woff2) format('woff2');
|
|
16
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
body {
|
|
21
|
+
font-family: "Inter", sans-serif !important;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
body,
|
|
25
|
+
table,
|
|
26
|
+
td,
|
|
27
|
+
a {
|
|
28
|
+
-ms-text-size-adjust: 100%;
|
|
29
|
+
-webkit-text-size-adjust: 100%;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
table,
|
|
33
|
+
td {
|
|
34
|
+
mso-table-rspace: 0pt;
|
|
35
|
+
mso-table-lspace: 0pt;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
img {
|
|
39
|
+
-ms-interpolation-mode: bicubic;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
a[x-apple-data-detectors] {
|
|
43
|
+
font-family: "inherit" !important;
|
|
44
|
+
font-size: inherit !important;
|
|
45
|
+
font-weight: inherit !important;
|
|
46
|
+
line-height: inherit !important;
|
|
47
|
+
color: inherit !important;
|
|
48
|
+
text-decoration: none !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
div[style*="margin: 16px 0;"] {
|
|
52
|
+
margin: 0 !important;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
body {
|
|
56
|
+
width: 100% !important;
|
|
57
|
+
height: 100% !important;
|
|
58
|
+
padding: 0 !important;
|
|
59
|
+
margin: 0 !important;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
table {
|
|
63
|
+
border-collapse: collapse !important;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
a {
|
|
67
|
+
color: #1a82e2;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
img {
|
|
71
|
+
height: auto;
|
|
72
|
+
line-height: 100%;
|
|
73
|
+
text-decoration: none;
|
|
74
|
+
border: 0;
|
|
75
|
+
outline: none;
|
|
76
|
+
}
|
|
77
|
+
</style>
|
|
78
|
+
</head>
|
|
79
|
+
<body style="background-color: #dbe5ea;">
|
|
80
|
+
<div class="preheader" style="display: none; max-width: 0; max-height: 0; overflow: hidden; font-size: 1px; line-height: 1px; color: #fff; opacity: 0;"> Email Summary (Hidden) </div>
|
|
81
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding-left:10px;padding-right:10px">
|
|
82
|
+
<tr>
|
|
83
|
+
<td bgcolor="#dbe5ea" style="padding:32px 10px 0 10px">
|
|
84
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" align="center">
|
|
85
|
+
<tr>
|
|
86
|
+
<td class="o_bg-white o_px-md o_py-md o_sans o_text" style="margin-top: 0px;margin-bottom: 0px;font-size: 16px;line-height: 24px;background-color: #ffffff;padding-left: 18px;padding-right: 24px;padding-top: 24px;padding-bottom: 24px;">
|
|
87
|
+
<p style="margin-top: 0px;margin-bottom: 0px;">
|
|
88
|
+
<a class="o_text-white" href="https://tangoeye.ai/" style="text-decoration: none;outline: none;color: #ffffff;">
|
|
89
|
+
<img src={{logo}} width="200" height="100" alt="SimpleApp" style="-ms-interpolation-mode: bicubic;vertical-align: middle;border: 0;line-height: 100%;height: auto;outline: none;text-decoration: none;">
|
|
90
|
+
</a>
|
|
91
|
+
</p>
|
|
92
|
+
</td>
|
|
93
|
+
</tr>
|
|
94
|
+
<tr>
|
|
95
|
+
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 14px; line-height: 24px;">
|
|
96
|
+
<p class="o_heading o_mb-xxs" style="width: 544px;height: 0px;border: 1px solid #CBD5E1;flex: none;order: 1;flex-grow: 0;"></p>
|
|
97
|
+
</td>
|
|
98
|
+
</tr>
|
|
99
|
+
</table>
|
|
100
|
+
</td>
|
|
101
|
+
</tr>
|
|
102
|
+
<tr>
|
|
103
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
104
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
105
|
+
<tr>
|
|
106
|
+
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-top: 10px;padding-bottom: 10px;">
|
|
107
|
+
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 20px;line-height: 28px;color: #82899a;">
|
|
108
|
+
<span class="o_heading o_text-dark o_mb-xxs" style="font-weight: 700;margin-top: 0px;margin-bottom: 4px;color: #242b3d;line-height: 39px;"> Your account was approved!</span>
|
|
109
|
+
</div>
|
|
110
|
+
</td>
|
|
111
|
+
</tr>
|
|
112
|
+
</table>
|
|
113
|
+
</td>
|
|
114
|
+
</tr>
|
|
115
|
+
<tr>
|
|
116
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
117
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
118
|
+
<tr>
|
|
119
|
+
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
120
|
+
<p style="margin: 0;">As a verified user, you will be among the first to receive product updates, new feature announcements, enhanced security and personalised support.
|
|
121
|
+
<br><br>
|
|
122
|
+
Head over to the dashboard to finish your setup. </p>
|
|
123
|
+
</td>
|
|
124
|
+
</tr>
|
|
125
|
+
</table>
|
|
126
|
+
</td>
|
|
127
|
+
</tr>
|
|
128
|
+
<tr>
|
|
129
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
130
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
131
|
+
<tr>
|
|
132
|
+
<td align="left" bgcolor="#fff" style="border-radius: 6px;padding:14px 30px">
|
|
133
|
+
<a href={{url}} style="display: inline-block;padding: 10px 36px;font-size: 20px;color: #fff;text-decoration: none;border-radius: 6px;background-color: #00a3ff;"> Add Stores</a>
|
|
134
|
+
</td>
|
|
135
|
+
</tr>
|
|
136
|
+
</table>
|
|
137
|
+
</td>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr>
|
|
140
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
141
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
142
|
+
<tr>
|
|
143
|
+
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
144
|
+
<p style="margin: 0;">Enjoy the full potential of Tango Traffic Module. If you have any questions or need assistance, our support team is here to help.
|
|
145
|
+
|
|
146
|
+
<br><br>
|
|
147
|
+
|
|
148
|
+
Happy exploring! </p>
|
|
149
|
+
</td>
|
|
150
|
+
</tr>
|
|
151
|
+
</table>
|
|
152
|
+
</td>
|
|
153
|
+
</tr>
|
|
154
|
+
<tr>
|
|
155
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 32px 10px">
|
|
156
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
157
|
+
<tr>
|
|
158
|
+
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom:15px">
|
|
159
|
+
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 12px;color: #202B3C;font-style: normal;font-weight: 400;font-size: 12px;line-height: 150%;">
|
|
160
|
+
<br>
|
|
161
|
+
<p>If you'd rather not receive this kind of email, Don’t want any more emails from TangoEye?<u style="color:#00A3FF">Unsubscribe</u>.</p>
|
|
162
|
+
<p> © Tango Eye. All rights reserved.</p>
|
|
163
|
+
</div>
|
|
164
|
+
</td>
|
|
165
|
+
</tr>
|
|
166
|
+
</table>
|
|
167
|
+
</td>
|
|
168
|
+
</tr>
|
|
169
|
+
</table>
|
|
170
|
+
</body>
|
|
171
171
|
</html> `
|
|
@@ -161,6 +161,7 @@ export function featureConfigurationUpdate( query, inputData ) {
|
|
|
161
161
|
'featureConfigs.isNewZoneV2': inputData?.isNewZoneV2,
|
|
162
162
|
'featureConfigs.isTrax': inputData?.isTrax,
|
|
163
163
|
'featureConfigs.isRevops': inputData?.isRevops,
|
|
164
|
+
'featureConfigs.isVMS': inputData?.isVMS,
|
|
164
165
|
'featureConfigs.isControlCenter': inputData?.isControlCenter,
|
|
165
166
|
'featureConfigs.isFootfallDirectoryAudit': inputData?.isFootfallDirectoryAudit,
|
|
166
167
|
'featureConfigs.isFootfallDirectoryLimit': inputData?.isFootfallDirectoryLimit,
|
|
@@ -169,6 +170,7 @@ export function featureConfigurationUpdate( query, inputData ) {
|
|
|
169
170
|
'featureConfigs.isAIManager': inputData?.isAIManager,
|
|
170
171
|
'featureConfigs.isAIManagerAccessControl': inputData?.isAIManagerAccessControl,
|
|
171
172
|
'featureConfigs.isCameraEdit': inputData?.isCameraEdit,
|
|
173
|
+
'featureConfigs.loginSSO': inputData?.loginSSO,
|
|
172
174
|
},
|
|
173
175
|
} );
|
|
174
176
|
}
|