tango-app-api-trax 3.8.18 → 3.8.19-nike

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.
@@ -608,7 +608,7 @@ export const flagCardsV1 = async ( req, res ) => {
608
608
  {
609
609
  client_id: clientId,
610
610
  publish: true,
611
- checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert' ] },
611
+ checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert', 'staffgrouping', 'boxalert', 'employeeCount', 'storehygienemonitoring' ] },
612
612
  },
613
613
  { checkListType: 1 },
614
614
  );
@@ -2743,7 +2743,7 @@ export const checklistDropdownV1 = async ( req, res ) => {
2743
2743
  $or: [
2744
2744
  { questionFlag: { $gte: 1 } },
2745
2745
  { timeFlag: { $gte: 1 } },
2746
- { checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert' ] } },
2746
+ { checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert', 'staffgrouping', 'boxalert', 'employeeCount', 'storehygienemonitoring' ] } },
2747
2747
  {
2748
2748
  runAIQuestionCount: { $gte: 1 },
2749
2749
  },
@@ -2945,7 +2945,7 @@ export const flagComparisonCardsV2 = async ( req, res ) => {
2945
2945
  {
2946
2946
  client_id: requestData.clientId,
2947
2947
  publish: true,
2948
- checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert' ] },
2948
+ checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert', 'staffgrouping', 'boxalert', 'employeeCount', 'storehygienemonitoring' ] },
2949
2949
  },
2950
2950
  { checkListType: 1 },
2951
2951
  );
@@ -3047,7 +3047,7 @@ export const flagTablesV2 = async ( req, res ) => {
3047
3047
  }
3048
3048
 
3049
3049
  if ( requestData?.filter === 'all' ) {
3050
- findAndQuery.push( { $or: [ { checkListType: { $in: [ 'custom', 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert' ] } } ] } );
3050
+ findAndQuery.push( { $or: [ { checkListType: { $in: [ 'custom', 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert', 'staffgrouping', 'boxalert', 'employeeCount', 'storehygienemonitoring' ] } } ] } );
3051
3051
  } else if ( requestData?.filter === 'question' ) {
3052
3052
  findAndQuery.push( { checkListType: 'custom' } );
3053
3053
  findAndQuery.push( { questionFlag: { $gte: 1 } } );
@@ -3055,7 +3055,7 @@ export const flagTablesV2 = async ( req, res ) => {
3055
3055
  findAndQuery.push( { checkListType: 'custom' } );
3056
3056
  findAndQuery.push( { timeFlag: { $gte: 1 } } );
3057
3057
  } else if ( requestData?.filter === 'detection' ) {
3058
- findAndQuery.push( { checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert' ] } } );
3058
+ findAndQuery.push( { checkListType: { $in: [ 'customerunattended', 'mobileusagedetection', 'staffleftinthemiddle', 'storeopenandclose', 'uniformdetection', 'cleaning', 'scrum', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert', 'staffgrouping', 'boxalert', 'employeeCount', 'storehygienemonitoring' ] } } );
3059
3059
  } else if ( requestData?.filter === 'runAI' ) {
3060
3060
  if ( req.body.runAIChecklistName ) {
3061
3061
  findAndQuery.push( { checkListName: { $in: req.body.runAIChecklistName } } );
@@ -1729,6 +1729,7 @@ export const updateConfigure = async ( req, res ) => {
1729
1729
  owner: inputBody?.checkListDetails?.owner || [],
1730
1730
  restrictAttendance: inputBody?.checkListDetails?.restrictAttendance || false,
1731
1731
  enableNewDeployedStore: inputBody?.checkListDetails?.enableNewDeployedStore || false,
1732
+ redoValidity: inputBody?.checkListDetails?.redoValidity || 7,
1732
1733
  };
1733
1734
 
1734
1735
  if ( inputBody?.checkListDetails?.approver.length ) {
@@ -3907,6 +3908,8 @@ async function insertPCBulkV4( getCLconfig, checklistId, currentdate, updatedche
3907
3908
  }
3908
3909
  }
3909
3910
  getsubmitDetails[0].questionAnswers = sectionList;
3911
+ getsubmitDetails[0].scheduleEndTime = getCLconfig.scheduleEndTime;
3912
+ getsubmitDetails[0].scheduleEndTime_iso = endTimeIso.format();
3910
3913
  if ( modifiedCount ) {
3911
3914
  getsubmitDetails[0].checklistStatus = 'inprogress';
3912
3915
  getsubmitDetails[0].date_string = dayjs( currentdate ).format( 'YYYY-MM-DD' );
@@ -4030,6 +4033,7 @@ async function insertPCBulkV4( getCLconfig, checklistId, currentdate, updatedche
4030
4033
  }, { userId: 1, store_id: 1 } );
4031
4034
 
4032
4035
  if ( inprogressData.length ) {
4036
+ await processedchecklist.updateMany( { _id: { $in: inprogressData.map( ( ele ) => new ObjectId( ele._id ) ) } }, { scheduleEndTime: getCLconfig.scheduleEndTime, scheduleEndTime_iso: endTimeIso.format() } );
4033
4037
  inprogressData.forEach( ( item ) => {
4034
4038
  let checkData = assignUserList.find( ( ele ) => ele.userId.toString() == item.userId.toString() && ele.store_id == item.store_id );
4035
4039
  if ( !checkData ) {
@@ -4127,7 +4131,7 @@ async function updateOpenSearch( user, data ) {
4127
4131
  export const aiChecklist = async ( req, res ) => {
4128
4132
  try {
4129
4133
  let storeDetails = await storeService.count( { clientId: req.query.clientId, status: 'active' } );
4130
- let aiList = [ 'mobileusagedetection', 'storeopenandclose', 'uniformdetection', 'staffleftinthemiddle', 'customerunattended', 'eyetest', 'remoteoptometrist', 'storehygienemonitoring', 'cleaning', 'scrum', 'suspiciousactivity', 'boxalert', 'suspiciousfootfall', 'drinking', 'bagdetection', 'inventorycount', 'carsattended', 'numberplateinfo', 'vehicle_check_in', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert' ];
4134
+ let aiList = [ 'mobileusagedetection', 'storeopenandclose', 'uniformdetection', 'staffleftinthemiddle', 'customerunattended', 'eyetest', 'remoteoptometrist', 'storehygienemonitoring', 'cleaning', 'scrum', 'suspiciousactivity', 'suspiciousfootfall', 'drinking', 'bagdetection', 'inventorycount', 'carsattended', 'numberplateinfo', 'vehicle_check_in', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert', 'staffgrouping', 'boxalert', 'employeeCount' ];
4131
4135
  let checklistDetails = [];
4132
4136
  let publishList = [];
4133
4137
  let unpublishList = [];
@@ -4140,7 +4144,7 @@ export const aiChecklist = async ( req, res ) => {
4140
4144
  checklistDetails = [ ...publishList, ...unpublishList ];
4141
4145
 
4142
4146
  checklistDetails.forEach( ( item ) => {
4143
- if ( ![ 'mobileusagedetection', 'storeopenandclose', 'cleaning', 'scrum', 'uniformdetection', 'staffleftinthemiddle', 'customerunattended', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert' ].includes( item.checkListType ) ) {
4147
+ if ( ![ 'mobileusagedetection', 'storeopenandclose', 'cleaning', 'scrum', 'uniformdetection', 'staffleftinthemiddle', 'customerunattended', 'outsidebusinesshoursqueuetracking', 'halfshutter', 'tvcompliance', 'cameratampering', 'queuealert', 'staffgrouping', 'boxalert', 'employeeCount' ].includes( item.checkListType ) ) {
4144
4148
  item.storeCount = storeDetails;
4145
4149
  }
4146
4150
  } );
@@ -0,0 +1,250 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
7
+ <title>Recurring Flags Detected</title>
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type="text/css">
10
+ body { font-family: "Inter", sans-serif !important; }
11
+ body, table, td, a { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
12
+ table, td { mso-table-rspace: 0pt; mso-table-lspace: 0pt; }
13
+ img { -ms-interpolation-mode: bicubic; }
14
+ a[x-apple-data-detectors] {
15
+ font-family: "inherit" !important;
16
+ font-size: inherit !important;
17
+ font-weight: inherit !important;
18
+ line-height: inherit !important;
19
+ color: inherit !important;
20
+ text-decoration: none !important;
21
+ }
22
+ body { width: 100% !important; height: 100% !important; padding: 0 !important; margin: 0 !important; }
23
+ table { border-collapse: collapse !important; }
24
+ a { color: #1a82e2; }
25
+ img { height: auto; line-height: 100%; text-decoration: none; border: 0; outline: none; }
26
+ .flagText { font-size: 16px; font-weight: 600; line-height: 24px; text-align: left; }
27
+ .rfTable { width: 100%; border-collapse: collapse; }
28
+ .rfTable th, .rfTable td {
29
+ border: 1px solid #E2E8F0;
30
+ padding: 8px 12px;
31
+ font-size: 13px;
32
+ text-align: left;
33
+ color: #202B3C;
34
+ }
35
+ .rfTable th { background-color: #F1F5F9; font-weight: 600; }
36
+ .highlight { font-size: 14px; color: #202B3C; line-height: 22px; }
37
+ </style>
38
+ </head>
39
+
40
+ <body style="background-color: #dbe5ea;">
41
+ <div class="preheader" style="display: none; max-width: 0; max-height: 0; overflow: hidden; font-size: 1px; line-height: 1px; color: #fff; opacity: 0;">
42
+ Recurring Flags Detected
43
+ </div>
44
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding-left:10px;padding-right:10px">
45
+ <tr>
46
+ <td bgcolor="#dbe5ea" style="padding:32px 10px 0 10px">
47
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 680px;" align="center">
48
+ <tr>
49
+ <td 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;">
50
+ <p style="margin-top: 0px;margin-bottom: 0px;">
51
+ <a href="https://tangoeye.ai/" style="text-decoration: none;outline: none;color: #ffffff;">
52
+ <img src="https://devtangoretail-api.tangoeye.ai/logo.png" width="200" height="100" alt="TangoEye"
53
+ style="-ms-interpolation-mode: bicubic;vertical-align: middle;border: 0;line-height: 100%;height: auto;outline: none;text-decoration: none;">
54
+ </a>
55
+ </p>
56
+ </td>
57
+ </tr>
58
+ <tr>
59
+ <td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px;font-size: 14px; line-height: 24px;">
60
+ <p style="width: 624px;height: 0px;border: 1px solid #CBD5E1;flex: none;order: 1;flex-grow: 0;"></p>
61
+ </td>
62
+ </tr>
63
+
64
+ {{!-- Intro line --}}
65
+ <tr>
66
+ <td style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom: 10px;">
67
+ <div style="margin-top: 0px;margin-bottom: 0px;font-size: 16px;line-height: 28px;color: #82899a;">
68
+ <span style="font-weight: 400;color: #121A26;line-height: 140%;">
69
+ Hi,<br/>
70
+ {{#if data.isMultiStoreSingleChecklist}}
71
+ Recurring flags has been detected across multiple {{data.subjectLabelPluralLower}} in recent <b>{{data.checklistName}}</b> on recent submissions, exceeding the configured threshold of {{data.threshold}} occurrences.
72
+ {{else if data.isMultiStore}}
73
+ Recurring flags has been detected across multiple {{data.subjectLabelPluralLower}} and across multiple checklists on recent submissions, exceeding the configured threshold of {{data.threshold}} occurrences.
74
+ {{else if data.isMultiChecklist}}
75
+ A Recurring flags has been identified for {{data.subjectLabelLower}} <b>{{data.subjectName}}</b> across multiple checklists on recent submissions, exceeding the configured threshold of {{data.threshold}} occurrences.
76
+ {{else}}
77
+ A recurring flag has been identified for {{data.subjectLabelLower}} <b>{{data.subjectName}}</b>.where a question has been flagged multiple times in recent {{data.checklistName}} submissions, exceeding the configured threshold of {{data.threshold}} occurrences.
78
+ {{/if}}
79
+ </span>
80
+ </div>
81
+ </td>
82
+ </tr>
83
+
84
+ {{!-- Multi-store: Key Highlights --}}
85
+ {{#if data.isMultiStore}}
86
+ <tr>
87
+ <td style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom: 10px;">
88
+ <div class="highlight">
89
+ <b>Key Highlights:</b>
90
+ <ul style="margin:8px 0 0 0;padding-left:18px;">
91
+ <li>Total {{data.subjectLabelPlural}} with Recurring Flags: {{data.highlights.totalSubjects}}</li>
92
+ {{#unless data.isMultiStoreSingleChecklist}}
93
+ <li>Total Checklists with Recurring Flags: {{data.highlights.totalChecklists}}</li>
94
+ {{/unless}}
95
+ <li>Total Recurring Flags: {{data.highlights.totalFlags}}</li>
96
+ </ul>
97
+ </div>
98
+ </td>
99
+ </tr>
100
+ {{/if}}
101
+
102
+ {{!-- Section header for details --}}
103
+ <tr>
104
+ <td style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom: 10px;">
105
+ <div style="font-size: 16px;line-height: 28px;color: #121A26;font-weight:600;">
106
+ {{#if data.isMultiStore}}
107
+ Details of the Recurring Flags are as follows:
108
+ {{else if data.isMultiChecklist}}
109
+ Details of the Recurring Flags from {{data.subjectLabel}} {{data.subjectName}} are as follows:
110
+ {{else}}
111
+ Details of the Recurring Flags from checklist are as follows:
112
+ {{/if}}
113
+ </div>
114
+ </td>
115
+ </tr>
116
+ </table>
117
+ </td>
118
+ </tr>
119
+
120
+ {{!-- ============ Single store + single checklist body ============ --}}
121
+ {{#unless data.isMultiChecklist}}{{#unless data.isMultiStore}}
122
+ <tr>
123
+ <td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
124
+ <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 680px;">
125
+ <tr bgcolor="#ffffff">
126
+ <td class="flagText" style="padding-left:30px;line-height: 24px;color:#000000">{{data.subjectLabel}} Name :</td>
127
+ <td></td><td></td>
128
+ <td class="flagText">{{data.subjectName}}</td>
129
+ </tr>
130
+ <tr bgcolor="#ffffff">
131
+ <td class="flagText" style="padding-left:30px;line-height: 24px;">Checklist Name :</td>
132
+ <td></td><td></td>
133
+ <td class="flagText">{{data.checklistName}}</td>
134
+ </tr>
135
+ <tr bgcolor="#ffffff">
136
+ <td class="flagText" style="padding-left:30px;line-height: 24px;">Last Submitted By :</td>
137
+ <td></td><td></td>
138
+ <td class="flagText">{{data.lastSubmittedBy}}</td>
139
+ </tr>
140
+ <tr bgcolor="#ffffff">
141
+ <td class="flagText" style="padding-left:30px;line-height: 24px;">Last Submission Date :</td>
142
+ <td></td><td></td>
143
+ <td class="flagText">{{data.lastSubmissionDate}}</td>
144
+ </tr>
145
+ <tr bgcolor="#ffffff">
146
+ <td class="flagText" style="padding-left:30px;line-height: 24px;">No of Flags :</td>
147
+ <td></td><td></td>
148
+ <td class="flagText">{{data.totalFlags}} (Question Flags: {{data.flagCount}}, Run AI Flags: {{data.runAICount}})</td>
149
+ </tr>
150
+ </table>
151
+ </td>
152
+ </tr>
153
+ {{/unless}}{{/unless}}
154
+
155
+ {{!-- ============ Tabular body for multi-checklist or multi-store ============ --}}
156
+ {{#if data.showTable}}
157
+ <tr>
158
+ <td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
159
+ <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 680px;">
160
+ <tr>
161
+ <td style="padding:10px 30px 10px 30px;background-color:#ffffff;">
162
+ <table class="rfTable">
163
+ <thead>
164
+ <tr>
165
+ {{#if data.isMultiStore}}{{#unless data.isUserCoverage}}<th>{{data.subjectLabel}} Name</th>{{/unless}}{{/if}}
166
+ {{#unless data.isMultiStoreSingleChecklist}}<th>Checklist Name</th>{{/unless}}
167
+ <th>Last Submitted By</th>
168
+ <th>Last Submission Date</th>
169
+ <th>Total Recurring Flags</th>
170
+ </tr>
171
+ </thead>
172
+ <tbody>
173
+ {{#each data.rows}}
174
+ <tr>
175
+ {{#if ../data.isMultiStore}}{{#unless ../data.isUserCoverage}}<td>{{this.subjectName}}</td>{{/unless}}{{/if}}
176
+ {{#unless ../data.isMultiStoreSingleChecklist}}<td>{{this.checklistName}}</td>{{/unless}}
177
+ <td>{{this.lastSubmittedBy}}</td>
178
+ <td>{{this.lastSubmissionDate}}</td>
179
+ <td>{{this.totalFlags}} (Question Flags: {{this.flagCount}}, Run AI Flags: {{this.runAICount}})</td>
180
+ </tr>
181
+ {{/each}}
182
+ </tbody>
183
+ </table>
184
+ </td>
185
+ </tr>
186
+ </table>
187
+ </td>
188
+ </tr>
189
+ {{/if}}
190
+
191
+ {{!-- View Flags button --}}
192
+ <tr>
193
+ <td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
194
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 680px;">
195
+ <tr>
196
+ <td bgcolor="#ffffff" style="padding: 20px;padding-top:15px;padding-left:30px;">
197
+ <table border="0" cellpadding="0" cellspacing="0">
198
+ <tr>
199
+ <td align="center" bgcolor="#00A3FF" style="border-radius: 6px;height:50px;">
200
+ <a href="{{data.domain}}" target="_blank"
201
+ style="display: inline-block; padding: 16px 36px;font-size: 16px; color: #ffffff; text-decoration: none; border-radius: 6px;">
202
+ View Flags
203
+ </a>
204
+ </td>
205
+ </tr>
206
+ </table>
207
+ </td>
208
+ </tr>
209
+ </table>
210
+ </td>
211
+ </tr>
212
+
213
+ {{!-- Attachment hint when full data exceeds inline limit --}}
214
+ {{#if data.hasAttachment}}
215
+ <tr>
216
+ <td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
217
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 680px;">
218
+ <tr>
219
+ <td bgcolor="#ffffff" style="padding:0 30px 15px 30px;font-size:13px;color:#202B3C;">
220
+ Refer to the attached file for a detailed breakdown of the Full report
221
+ </td>
222
+ </tr>
223
+ </table>
224
+ </td>
225
+ </tr>
226
+ {{/if}}
227
+
228
+ <tr>
229
+ <td align="center" bgcolor="#dbe5ea" style="padding:0 10px 32px 10px;">
230
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 680px;">
231
+ <tr>
232
+ <td style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-top:5px">
233
+ <div style="font-size: 12px;color: #202B3C;font-weight: 400;line-height: 150%;">
234
+ <p>If you have any questions or need assistance, please reach out to us at support@tangotech.co.in.</p>
235
+ </div>
236
+ </td>
237
+ </tr>
238
+ <tr>
239
+ <td style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom:15px">
240
+ <div style="font-size: 12px;color: #202B3C;font-weight: 400;line-height: 150%;">
241
+ <p>© Tango Eye. All rights reserved.</p>
242
+ </div>
243
+ </td>
244
+ </tr>
245
+ </table>
246
+ </td>
247
+ </tr>
248
+ </table>
249
+ </body>
250
+ </html>
@@ -136,6 +136,10 @@
136
136
  .headertitle.submittedText {
137
137
  width:116px !important;
138
138
  }
139
+
140
+ .flagged {
141
+ color:red
142
+ }
139
143
  </style>
140
144
  </head>
141
145
 
@@ -197,21 +201,24 @@
197
201
  {{#each data.questionAnswers}}
198
202
  <div class="pdfcontent">
199
203
  <div style="padding-bottom:20px;">
200
- <span class="sectionname">{{sectionName}} </span>&nbsp;<div class="horizondal-line">
201
- <hr />
202
- </div>
204
+ <table style="width:100%;border-collapse:collapse;">
205
+ <tr>
206
+ <td class="sectionname" style="white-space:nowrap;padding-right:8px;width:1%;">{{sectionName}}</td>
207
+ <td style="width:99%;"><hr class="horizondal-line" style="margin:0;border:none;border-top:1px solid #98A2B3;"/></td>
208
+ </tr>
209
+ </table>
203
210
  </div>
204
211
  {{#each questions}}
205
212
  <div style="padding-bottom:20px">
206
213
  {{#if userAnswer.length}}
207
214
  <span class="question">{{qno}}.</span>&nbsp;<span class="question">{{qname}}</span>
208
215
  {{#neq questionReferenceImage ''}}
209
- <div class="Reference"><span>Reference Image</span><br>
216
+ <div class="Reference"><span>Question Reference Image</span><br>
210
217
  <img src="{{questionReferenceImage}}" width="200" height="180" />
211
218
  </div>
212
219
  {{/neq}}
213
220
  {{#if multiQuestionReferenceImage.length}}
214
- <div class="Reference"><span>Reference Images</span><br>
221
+ <div class="Reference"><span>Question Reference Image</span><br>
215
222
  {{#each multiQuestionReferenceImage}}
216
223
  <img src="{{this}}" width="200" height="180" />
217
224
  {{/each}}
@@ -221,7 +228,7 @@
221
228
  <div class="px-4 answer">
222
229
  {{#if (includes ../../../data.validateType ../answerType)}}
223
230
  {{#eq sopFlag true }}
224
- <span id="agreed" style="color:red">{{answer}}</span><br>
231
+ <span id="agreed flagged">{{answer}}</span><br>
225
232
  {{/eq}}
226
233
  {{#eq sopFlag false }}
227
234
  <span id="agreed">{{answer}}</span><br>
@@ -252,7 +259,7 @@
252
259
  <a href="{{validationAnswer}}" target="_blank" style="text-decoration: underline;color:#0085D2" id="agreed">{{validationAnswer}}</a><br>
253
260
  {{/eq}}
254
261
  {{#eq validationType 'Descriptive Answer'}}
255
- {{validationAnswer}}
262
+ <span class="{{#if this.sopFlag}}flagged{{/if}}">Validation Answer: {{validationAnswer}}</span>
256
263
  {{/eq}}
257
264
  {{#eq validationType 'Capture Multiple Image with description'}}
258
265
  <div class="Reference"><span>Uploaded Image</span><br>
@@ -274,15 +281,15 @@
274
281
  {{!-- {{#each ../answers}} --}}
275
282
  <table style="width:100%">
276
283
  <tr>
277
- {{#neq referenceImage ''}}
284
+ {{#if multiReferenceImage.length}}
278
285
  <td style="width:50%">
279
- {{#each multiReferenceImage}}
280
- <div class="Reference"><span>Reference Image</span><br>
286
+ <div class="Reference"><span>Reference Image</span><br>
287
+ {{#each multiReferenceImage}}
281
288
  <img src="{{this}}" width="200" height="180" />
282
- </div>
283
- {{/each}}
289
+ {{/each}}
290
+ </div>
284
291
  </td>
285
- {{/neq}}
292
+ {{/if}}
286
293
  <td style="width:50%">
287
294
  <div class="Reference"><span>Uploaded Image</span><br>
288
295
  <img src="{{answer}}" width="200" height="180" />
@@ -296,15 +303,15 @@
296
303
  {{!-- {{#each ../answers}} --}}
297
304
  <table style="width:100%">
298
305
  <tr>
299
- {{#neq referenceImage ''}}
306
+ {{#if multiReferenceImage.length}}
300
307
  <td style="width:50%">
301
- {{#each multiReferenceImage}}
302
308
  <div class="Reference"><span>Reference Image</span><br>
309
+ {{#each multiReferenceImage}}
303
310
  <img src="{{this}}" width="200" height="180" />
311
+ {{/each}}
304
312
  </div>
305
- {{/each}}
306
313
  </td>
307
- {{/neq}}
314
+ {{/if}}
308
315
  <td style="width:50%">
309
316
  <div class="Reference"><span>Uploaded Image</span><br>
310
317
  <img src="{{answer}}" width="200" height="180" />
@@ -318,13 +325,15 @@
318
325
  {{!-- {{#each ../answers}} --}}
319
326
  <table style="width:100%">
320
327
  <tr>
321
- {{#neq referenceImage ''}}
328
+ {{#if multiReferenceImage.length}}
322
329
  <td style="width:50%">
323
330
  <div class="Reference"><span>Reference Image</span><br>
324
- <img src="{{referenceImage}}" width="200" height="180" />
331
+ {{#each multiReferenceImage}}
332
+ <img src="{{this}}" width="200" height="180" />
333
+ {{/each}}
325
334
  </div>
326
335
  </td>
327
- {{/neq}}
336
+ {{/if}}
328
337
  {{#eq answerType 'image'}}
329
338
  <td style="width:50%">
330
339
  <div class="Reference"><span>Uploaded Image</span><br>
@@ -345,13 +354,15 @@
345
354
  {{!-- {{#each ../answers}} --}}
346
355
  <table style="width:100%">
347
356
  <tr>
348
- {{#neq referenceImage ''}}
357
+ {{#if multiReferenceImage.length}}
349
358
  <td style="width:50%">
350
359
  <div class="Reference"><span>Reference Image</span><br>
351
- <img src="{{referenceImage}}" width="200" height="180" />
360
+ {{#each multiReferenceImage}}
361
+ <img src="{{this}}" width="200" height="180" />
362
+ {{/each}}
352
363
  </div>
353
364
  </td>
354
- {{/neq}}
365
+ {{/if}}
355
366
  <td style="width:50%">
356
367
  <div class="Reference"><span>Uploaded Image</span><br>
357
368
  <img src="{{answer}}" width="200" height="180" />