sf-i-events 1.0.54 → 1.0.55
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/dev/index.html +54 -0
- package/package.json +1 -1
- package/sf-i-events.d.ts.map +1 -1
- package/sf-i-events.js +143 -113
- package/sf-i-events.js.map +1 -1
- package/src/sf-i-events.ts +169 -133
- package/src/util.ts +30 -1
- package/util.d.ts +1 -0
- package/util.d.ts.map +1 -1
- package/util.js +25 -1
- package/util.js.map +1 -1
package/dev/index.html
CHANGED
|
@@ -97,6 +97,19 @@
|
|
|
97
97
|
transition: 0.3s;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
sf-i-events::part(badge-dashboard) {
|
|
101
|
+
border: none;
|
|
102
|
+
padding: 10px;
|
|
103
|
+
border-radius: 5px;
|
|
104
|
+
background: #efefef;
|
|
105
|
+
box-shadow: inset 2px 2px 6px rgba(5, 5, 5, 0.2);
|
|
106
|
+
border-top: solid 1px rgba(255, 255, 255, 0.8);
|
|
107
|
+
border-left: solid 1px rgba(255, 255, 255, 0.8);
|
|
108
|
+
border-bottom: solid 1px rgba(255, 255, 255, 0.8);
|
|
109
|
+
border-right: solid 1px rgba(255, 255, 255, 0.8);
|
|
110
|
+
transition: 0.3s;
|
|
111
|
+
}
|
|
112
|
+
|
|
100
113
|
sf-i-events::part(commentbox) {
|
|
101
114
|
border: none;
|
|
102
115
|
padding: 10px;
|
|
@@ -478,6 +491,47 @@
|
|
|
478
491
|
</head>
|
|
479
492
|
<body>
|
|
480
493
|
|
|
494
|
+
<!-- <sf-i-events
|
|
495
|
+
name="User Mapping"
|
|
496
|
+
apiId="8icpy39ru0"
|
|
497
|
+
apiIdUsers="rnmvvr922j"
|
|
498
|
+
apiIdTags="j385cxf2p0"
|
|
499
|
+
mode="admin"
|
|
500
|
+
apiIdList="tcic9iqenc"
|
|
501
|
+
apiMethodList="detail"
|
|
502
|
+
apiBodyList="{"id": "10daf75f-cb8f-45a5-95b7-ff9f27c4600a"}"
|
|
503
|
+
apiResponseFieldList="compliance"
|
|
504
|
+
apiIdDetail="r42gyc2xx1"
|
|
505
|
+
apiMethodDetail="detail"
|
|
506
|
+
apiBodyDetail="{"id": "ID-DETAIL"}"
|
|
507
|
+
eventFieldDependencies="[{"type": "foreignkey", "parent": "country", "child": "state"},{"type": "foreignkey", "parent": "category", "child": "subcategory"},{"type": "foreignkey", "parent": "frequency", "child": "subfrequency"}]"
|
|
508
|
+
eventFields="[{"type": "sf-i-select", "apiId": "3z3fiubz8e", "field": "riskarea"},{"type": "sf-i-select", "apiId": "5s7ih5uw4h", "field": "jurisdiction"},{"type": "sf-i-select", "apiId": "oqze24s784", "field": "updatetype"},{"type": "sf-i-select", "apiId": "zu3kh9cq2c", "field": "country"},{"type": "sf-i-select", "apiId": "8ijy7mze67", "field": "specificity"},{"type": "sf-i-select", "apiId": "et1hdzg882", "field": "risk"},{"type": "sf-i-select", "apiId": "lhpn6gh0il", "field": "frequency"},{"type": "sf-i-select", "apiId": "8an2d4j1gc", "field": "category"},{"type": "sf-i-select", "apiId": "vofssiq1t3", "field": "obligationtype"},{"type": "sf-i-sub-select", "apiId": "clnu4kk1ah", "field": "state"},{"type": "sf-i-sub-select", "apiId": "aysa6i6723", "field": "subfrequency"},{"type": "sf-i-sub-select", "apiId": "mdkc0e2bo5", "field": "subcategory"},{"type": "sf-i-form", "apiId": "4wb2x6fkga", "field": "statute", "projectField": "name"}]"
|
|
509
|
+
eventPreviewFields="["obligationtitle"]"
|
|
510
|
+
eventHideFields="["comments","documents","lastupdated","approved"]"
|
|
511
|
+
calendarStartDD="01"
|
|
512
|
+
calendarStartMM="04"
|
|
513
|
+
calendarStartYYYY="2023"
|
|
514
|
+
>
|
|
515
|
+
|
|
516
|
+
<div slot="project">
|
|
517
|
+
|
|
518
|
+
<sf-i-form
|
|
519
|
+
id="sf-i-project"
|
|
520
|
+
name="Projects"
|
|
521
|
+
label="Select Project *"
|
|
522
|
+
apiId="tcic9iqenc"
|
|
523
|
+
mode="select"
|
|
524
|
+
selectProjection="name"
|
|
525
|
+
ignoreProjections="["compliance","search","updatetype","shortid"]"
|
|
526
|
+
searchPhrase=''
|
|
527
|
+
mandatory
|
|
528
|
+
>
|
|
529
|
+
</sf-i-form>
|
|
530
|
+
|
|
531
|
+
</div>
|
|
532
|
+
|
|
533
|
+
</sf-i-events> -->
|
|
534
|
+
|
|
481
535
|
<sf-i-events
|
|
482
536
|
name="Calendar"
|
|
483
537
|
apiId="8icpy39ru0"
|
package/package.json
CHANGED
package/sf-i-events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sf-i-events.d.ts","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sf-i-events.d.ts","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"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"}
|
package/sf-i-events.js
CHANGED
|
@@ -270,15 +270,20 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
270
270
|
this.renderStreamEvents = (index, month, year) => {
|
|
271
271
|
const lastDay = this.getLastDayOfMonth(month, year);
|
|
272
272
|
var html = '<div id="stream-event-' + index + '" part="stream-event-list" class="stream-event-list">';
|
|
273
|
-
var total = 0;
|
|
273
|
+
var total = 0, notStarted = 0, approved = 0, inProgress = 0;
|
|
274
274
|
for (var i = 1; i <= lastDay; i++) {
|
|
275
275
|
const mmdd = ("0" + (month + 1)).slice(-2) + "/" + ("0" + i).slice(-2);
|
|
276
276
|
if (this.events[mmdd] != null) {
|
|
277
|
-
|
|
277
|
+
for (var j = 0; j < this.events[mmdd].length; j++) {
|
|
278
|
+
total++;
|
|
279
|
+
}
|
|
278
280
|
}
|
|
279
281
|
}
|
|
280
|
-
html += '<div id="stream-event-summary" part="stream-event-total">';
|
|
281
|
-
html += 'Total: <strong>' + total + '</strong>';
|
|
282
|
+
html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex">';
|
|
283
|
+
html += '<div part="badge-dashboard" class="mr-10">Total: <strong>' + total + '</strong></div>';
|
|
284
|
+
html += '<div part="badge-dashboard" class="mr-10">Approved: <strong>DASHBOARD_APPROVED</strong></div>';
|
|
285
|
+
html += '<div part="badge-dashboard" class="mr-10">Not Started: <strong>DASHBOARD_NOT_STARTED</strong></div>';
|
|
286
|
+
html += '<div part="badge-dashboard" class="mr-10">In Progress: <strong>DASHBOARD_IN_PROGRESS</strong></div>';
|
|
282
287
|
html += '</div>';
|
|
283
288
|
for (i = 1; i <= lastDay; i++) {
|
|
284
289
|
const mmdd = ("0" + (month + 1)).slice(-2) + "/" + ("0" + i).slice(-2);
|
|
@@ -302,7 +307,6 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
302
307
|
}
|
|
303
308
|
console.log('hide', i, hide);
|
|
304
309
|
if (this.events[mmdd] != null) {
|
|
305
|
-
total++;
|
|
306
310
|
//html += '<div>'+month + ',' + year + ',' + i+'</div>'
|
|
307
311
|
html += '<div part="stream-event-selected" class="d-flex stream-event-selected">';
|
|
308
312
|
html += '<div part="stream-event-selected-date">' + ("0" + i).slice(-2) + ' |</div>';
|
|
@@ -318,22 +322,31 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
318
322
|
html += '</th>';
|
|
319
323
|
}
|
|
320
324
|
}
|
|
321
|
-
if ((this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
|
|
325
|
+
if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
|
|
326
|
+
approved++;
|
|
322
327
|
html += '<th part="td-head">';
|
|
323
328
|
html += 'Status';
|
|
324
329
|
html += '</th>';
|
|
325
330
|
}
|
|
326
331
|
console.log('listing docs', this.events[mmdd][j].documents);
|
|
327
|
-
if (this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
332
|
+
if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
328
333
|
html += '<th part="td-head">';
|
|
329
334
|
html += 'Docs';
|
|
330
335
|
html += '</th>';
|
|
331
336
|
}
|
|
332
|
-
|
|
337
|
+
else {
|
|
338
|
+
notStarted++;
|
|
339
|
+
}
|
|
340
|
+
if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
333
341
|
html += '<th part="td-head">';
|
|
334
342
|
html += 'Comments';
|
|
335
343
|
html += '</th>';
|
|
336
344
|
}
|
|
345
|
+
if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
346
|
+
html += '<th part="td-head">';
|
|
347
|
+
html += 'Updated';
|
|
348
|
+
html += '</th>';
|
|
349
|
+
}
|
|
337
350
|
html += '<th part="td-head">';
|
|
338
351
|
html += '</th>';
|
|
339
352
|
// for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
|
|
@@ -355,23 +368,28 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
355
368
|
html += '</td>';
|
|
356
369
|
}
|
|
357
370
|
}
|
|
358
|
-
if ((this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
|
|
371
|
+
if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
|
|
359
372
|
html += '<td part="td-body">';
|
|
360
373
|
html += '<span class="material-icons color-done">check_circle</span>';
|
|
361
374
|
html += '</td>';
|
|
362
375
|
}
|
|
363
|
-
if (this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
376
|
+
if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
364
377
|
html += '<td part="td-body">';
|
|
365
378
|
html += '<span class="material-icons muted">description</span>';
|
|
366
379
|
html += JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length;
|
|
367
380
|
html += '</td>';
|
|
368
381
|
}
|
|
369
|
-
if (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
382
|
+
if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
370
383
|
html += '<td part="td-body">';
|
|
371
384
|
html += '<span class="material-icons muted">forum</span>';
|
|
372
385
|
html += (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length;
|
|
373
386
|
html += '</td>';
|
|
374
387
|
}
|
|
388
|
+
if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
|
|
389
|
+
html += '<td part="td-body">';
|
|
390
|
+
html += Util.timeSince(new Date(this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).getTime());
|
|
391
|
+
html += '</td>';
|
|
392
|
+
}
|
|
375
393
|
html += '<td id="td-expand-' + i + '" part="td-body">';
|
|
376
394
|
html += '<button id="button-unmapped-expand-' + mmdd.replace('/', '-') + '-' + j + '" part="button-icon-small" class="material-icons button-expand">open_in_new</button>';
|
|
377
395
|
html += '</td>';
|
|
@@ -406,6 +424,11 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
406
424
|
}
|
|
407
425
|
}
|
|
408
426
|
html += '</div>';
|
|
427
|
+
inProgress = total - notStarted - approved;
|
|
428
|
+
console.log('progress', total, notStarted, approved);
|
|
429
|
+
html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
|
|
430
|
+
html = html.replace("DASHBOARD_APPROVED", approved + "");
|
|
431
|
+
html = html.replace("DASHBOARD_IN_PROGRESS", inProgress + "");
|
|
409
432
|
return html;
|
|
410
433
|
};
|
|
411
434
|
this.renderUpcomingEvents = (index, startDate, count) => {
|
|
@@ -1356,103 +1379,88 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
1356
1379
|
}
|
|
1357
1380
|
}
|
|
1358
1381
|
}
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1382
|
+
let comments, docs, approved;
|
|
1383
|
+
if (this.mode == "consumer") {
|
|
1384
|
+
comments = event['comments'] == null ? [] : event['comments'][mmddyyyy] == null ? [] : (event['comments'][mmddyyyy]);
|
|
1385
|
+
docs = event['documents'] == null ? [] : event['documents'][mmddyyyy] == null ? [] : JSON.parse(event['documents'][mmddyyyy]);
|
|
1386
|
+
approved = event['approved'] == null ? false : event['approved'][mmddyyyy] == null ? false : event['approved'][mmddyyyy];
|
|
1387
|
+
console.log('docs received', event['documents']);
|
|
1388
|
+
console.log('docs received', comments);
|
|
1389
|
+
console.log('docs received', approved);
|
|
1390
|
+
if (approved) {
|
|
1391
|
+
html += '<div class="m-20">';
|
|
1392
|
+
html += '<div part="detail-head"><strong>Approved</strong></div>';
|
|
1393
|
+
html += '<span class="material-icons color-done">check_circle</span>';
|
|
1394
|
+
html += '</div>';
|
|
1395
|
+
}
|
|
1369
1396
|
html += '</div>';
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1397
|
+
if (this.myRole == this.TAB_APPROVER) {
|
|
1398
|
+
if (docs.length > 0) {
|
|
1399
|
+
html += '<div class="m-20" part="report-container">';
|
|
1400
|
+
html += '<div class="d-flex justify-between align-center">';
|
|
1401
|
+
html += '<button class="invisible" part="button">Save</button>';
|
|
1402
|
+
html += '<h3 part="results-title" class="m-0">Approve Compliance</h3>';
|
|
1403
|
+
html += '<button id="button-uploader-submit-approve" class="button-submit" part="button">Save</button>';
|
|
1404
|
+
html += '</div>';
|
|
1405
|
+
html += '<div class="m-20">';
|
|
1406
|
+
html += '<label part="input-label">Supporting Documents</label>';
|
|
1407
|
+
html += '<slot name="uploader"></slot>';
|
|
1408
|
+
html += '</div>';
|
|
1409
|
+
html += '<div class="d-flex m-20 flex-col">';
|
|
1410
|
+
html += '<label part="input-label">Approver Comments</label>';
|
|
1411
|
+
html += '<input id="input-approver-comments" type="text" part="input" value=""/><br />';
|
|
1412
|
+
html += '<div>';
|
|
1413
|
+
html += '<label part="input-label">Approve?</label><br />';
|
|
1414
|
+
html += '<div class="mt-5">';
|
|
1415
|
+
html += '<input id="input-approve-yes" name="radio-approved" type="radio"/> Yes';
|
|
1416
|
+
html += '<input id="input-approve-no" name="radio-approved" type="radio" checked/> No';
|
|
1417
|
+
html += '</div>';
|
|
1418
|
+
html += '</div>';
|
|
1419
|
+
html += '</div>';
|
|
1420
|
+
html += '</div>';
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
else {
|
|
1374
1424
|
html += '<div class="m-20" part="report-container">';
|
|
1375
1425
|
html += '<div class="d-flex justify-between align-center">';
|
|
1376
1426
|
html += '<button class="invisible" part="button">Save</button>';
|
|
1377
|
-
html += '<h3 part="results-title" class="m-0">
|
|
1378
|
-
html += '<button id="button-uploader-submit-
|
|
1427
|
+
html += '<h3 part="results-title" class="m-0">Report Compliance</h3>';
|
|
1428
|
+
html += '<button id="button-uploader-submit-report" class="button-submit" part="button">Save</button>';
|
|
1379
1429
|
html += '</div>';
|
|
1380
|
-
html += '<div class="m-20">';
|
|
1430
|
+
html += '<div class="d-flex m-20 flex-col">';
|
|
1431
|
+
html += '<label part="input-label">Reporter Comments</label>';
|
|
1432
|
+
html += '<input id="input-reporter-comments" type="text" part="input" value=""/><br />';
|
|
1381
1433
|
html += '<label part="input-label">Supporting Documents</label>';
|
|
1382
1434
|
html += '<slot name="uploader"></slot>';
|
|
1383
1435
|
html += '</div>';
|
|
1384
|
-
html += '<div class="d-flex m-20 flex-col">';
|
|
1385
|
-
html += '<label part="input-label">Approver Comments</label>';
|
|
1386
|
-
html += '<input id="input-approver-comments" type="text" part="input" value=""/><br />';
|
|
1387
|
-
html += '<div>';
|
|
1388
|
-
html += '<label part="input-label">Approve?</label><br />';
|
|
1389
|
-
html += '<div class="mt-5">';
|
|
1390
|
-
html += '<input id="input-approve-yes" name="radio-approved" type="radio"/> Yes';
|
|
1391
|
-
html += '<input id="input-approve-no" name="radio-approved" type="radio" checked/> No';
|
|
1392
|
-
html += '</div>';
|
|
1393
|
-
html += '</div>';
|
|
1394
1436
|
html += '</div>';
|
|
1437
|
+
}
|
|
1438
|
+
html += '<div class="m-20">';
|
|
1439
|
+
html += '<div class="d-flex flex-col">';
|
|
1440
|
+
html += '<h3 class="muted">Comments</h3>';
|
|
1441
|
+
for (var i = 0; i < comments.length; i++) {
|
|
1442
|
+
html += '<div part="commentbox" class="d-flex commentbox ' + (comments[i].author + "").toLowerCase() + 'box">';
|
|
1443
|
+
html += '<div class="mr-20"><strong>' + comments[i].author + '</strong></div>';
|
|
1444
|
+
html += '<div class="">' + comments[i].comment + '<br /><small><span class="muted">' + comments[i].timestamp + '</span></small></div>';
|
|
1395
1445
|
html += '</div>';
|
|
1396
1446
|
}
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
html += '<div class="d-flex justify-between align-center">';
|
|
1401
|
-
html += '<button class="invisible" part="button">Save</button>';
|
|
1402
|
-
html += '<h3 part="results-title" class="m-0">Report Compliance</h3>';
|
|
1403
|
-
html += '<button id="button-uploader-submit-report" class="button-submit" part="button">Save</button>';
|
|
1404
|
-
html += '</div>';
|
|
1405
|
-
html += '<div class="d-flex m-20 flex-col">';
|
|
1406
|
-
html += '<label part="input-label">Reporter Comments</label>';
|
|
1407
|
-
html += '<input id="input-reporter-comments" type="text" part="input" value=""/><br />';
|
|
1408
|
-
html += '<label part="input-label">Supporting Documents</label>';
|
|
1409
|
-
html += '<slot name="uploader"></slot>';
|
|
1410
|
-
html += '</div>';
|
|
1411
|
-
html += '</div>';
|
|
1412
|
-
}
|
|
1413
|
-
html += '<div class="m-20">';
|
|
1414
|
-
html += '<div class="d-flex flex-col">';
|
|
1415
|
-
html += '<h3 class="muted">Comments</h3>';
|
|
1416
|
-
for (var i = 0; i < comments.length; i++) {
|
|
1417
|
-
html += '<div part="commentbox" class="d-flex commentbox ' + (comments[i].author + "").toLowerCase() + 'box">';
|
|
1418
|
-
html += '<div class="mr-20"><strong>' + comments[i].author + '</strong></div>';
|
|
1419
|
-
html += '<div class="">' + comments[i].comment + '<br /><small><span class="muted">' + comments[i].timestamp + '</span></small></div>';
|
|
1447
|
+
if (comments.length === 0) {
|
|
1448
|
+
html += '<div><strong>No comments yet!</strong></div>';
|
|
1449
|
+
}
|
|
1420
1450
|
html += '</div>';
|
|
1451
|
+
html += '<div>';
|
|
1421
1452
|
}
|
|
1422
|
-
if (comments.length === 0) {
|
|
1423
|
-
html += '<div><strong>No comments yet!</strong></div>';
|
|
1424
|
-
}
|
|
1425
|
-
html += '</div>';
|
|
1426
|
-
html += '<div>';
|
|
1427
1453
|
this._SfDetailContainer.innerHTML = html;
|
|
1428
|
-
(_a = this._SfDetailContainer.querySelector('#button-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
console.log(comments, approved);
|
|
1432
|
-
await this.uploadReview(mmddyyyy, event["id"], comments, approved);
|
|
1433
|
-
var clickEvent = new MouseEvent("click", {
|
|
1434
|
-
"view": window,
|
|
1435
|
-
"bubbles": true,
|
|
1436
|
-
"cancelable": false
|
|
1437
|
-
});
|
|
1438
|
-
this._SfDetailContainer.querySelector('#button-detail-close').dispatchEvent(clickEvent);
|
|
1439
|
-
await this.fetchUserCalendar();
|
|
1440
|
-
if (this.getCurrentTab() == this.TAB_STREAM) {
|
|
1441
|
-
this.renderTabs(this.TAB_STREAM);
|
|
1442
|
-
this.renderStream();
|
|
1443
|
-
}
|
|
1454
|
+
(_a = this._SfDetailContainer.querySelector('#button-detail-close')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
|
|
1455
|
+
this._SfDetailContainer.innerHTML = '';
|
|
1456
|
+
this._SfDetailContainer.style.display = 'none';
|
|
1444
1457
|
});
|
|
1445
|
-
(
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
this.clearMessages();
|
|
1452
|
-
}, 3000);
|
|
1453
|
-
}
|
|
1454
|
-
else {
|
|
1455
|
-
await this.uploadReport(mmddyyyy, event["id"], reportercomments, docs);
|
|
1458
|
+
if (this.mode == "consumer") {
|
|
1459
|
+
(_b = this._SfDetailContainer.querySelector('#button-uploader-submit-approve')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', async () => {
|
|
1460
|
+
const comments = this._SfDetailContainer.querySelector('#input-approver-comments').value;
|
|
1461
|
+
const approved = this._SfDetailContainer.querySelector('#input-approve-yes').checked;
|
|
1462
|
+
console.log(comments, approved);
|
|
1463
|
+
await this.uploadReview(mmddyyyy, event["id"], comments, approved);
|
|
1456
1464
|
var clickEvent = new MouseEvent("click", {
|
|
1457
1465
|
"view": window,
|
|
1458
1466
|
"bubbles": true,
|
|
@@ -1464,29 +1472,49 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
1464
1472
|
this.renderTabs(this.TAB_STREAM);
|
|
1465
1473
|
this.renderStream();
|
|
1466
1474
|
}
|
|
1467
|
-
}
|
|
1468
|
-
});
|
|
1469
|
-
(_c = this._SfDetailContainer.querySelector('#button-detail-close')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', () => {
|
|
1470
|
-
this._SfDetailContainer.innerHTML = '';
|
|
1471
|
-
this._SfDetailContainer.style.display = 'none';
|
|
1472
|
-
});
|
|
1473
|
-
if (this._SfUploader[0] != null) {
|
|
1474
|
-
this._SfUploader[0].querySelector('#uploader').addEventListener('uploadCompleted', (ev) => {
|
|
1475
|
-
console.log(ev);
|
|
1476
1475
|
});
|
|
1477
|
-
this.
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1476
|
+
(_c = this._SfDetailContainer.querySelector('#button-uploader-submit-report')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', async () => {
|
|
1477
|
+
const reportercomments = this._SfDetailContainer.querySelector('#input-reporter-comments').value;
|
|
1478
|
+
const docs = this._SfUploader[0].querySelector('#uploader').selectedValues();
|
|
1479
|
+
if (docs.length === 0) {
|
|
1480
|
+
this.setError('No documents uploaded!');
|
|
1481
|
+
setTimeout(() => {
|
|
1482
|
+
this.clearMessages();
|
|
1483
|
+
}, 3000);
|
|
1484
|
+
}
|
|
1485
|
+
else {
|
|
1486
|
+
await this.uploadReport(mmddyyyy, event["id"], reportercomments, docs);
|
|
1487
|
+
var clickEvent = new MouseEvent("click", {
|
|
1488
|
+
"view": window,
|
|
1489
|
+
"bubbles": true,
|
|
1490
|
+
"cancelable": false
|
|
1491
|
+
});
|
|
1492
|
+
this._SfDetailContainer.querySelector('#button-detail-close').dispatchEvent(clickEvent);
|
|
1493
|
+
await this.fetchUserCalendar();
|
|
1494
|
+
if (this.getCurrentTab() == this.TAB_STREAM) {
|
|
1495
|
+
this.renderTabs(this.TAB_STREAM);
|
|
1496
|
+
this.renderStream();
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1499
|
+
});
|
|
1500
|
+
if (this._SfUploader[0] != null) {
|
|
1501
|
+
this._SfUploader[0].querySelector('#uploader').addEventListener('uploadCompleted', (ev) => {
|
|
1502
|
+
console.log(ev);
|
|
1503
|
+
});
|
|
1504
|
+
this._SfUploader[0].querySelector('#uploader').prepopulatedInputArr = JSON.stringify([]);
|
|
1481
1505
|
this._SfUploader[0].querySelector('#uploader').loadMode();
|
|
1506
|
+
if (docs.length) {
|
|
1507
|
+
this._SfUploader[0].querySelector('#uploader').prepopulatedInputArr = JSON.stringify(docs);
|
|
1508
|
+
this._SfUploader[0].querySelector('#uploader').loadMode();
|
|
1509
|
+
}
|
|
1482
1510
|
}
|
|
1483
|
-
}
|
|
1484
|
-
console.log('approved 1', event["approved"], this.myRole, this.TAB_APPROVER);
|
|
1485
|
-
if (this.myRole == this.TAB_APPROVER) {
|
|
1486
1511
|
console.log('approved 1', event["approved"], this.myRole, this.TAB_APPROVER);
|
|
1487
|
-
if (
|
|
1488
|
-
console.log('approved
|
|
1489
|
-
|
|
1512
|
+
if (this.myRole == this.TAB_APPROVER) {
|
|
1513
|
+
console.log('approved 1', event["approved"], this.myRole, this.TAB_APPROVER);
|
|
1514
|
+
if (event["approved"][mmddyyyy] === true) {
|
|
1515
|
+
console.log('approved 2', event["approved"], this.myRole, this.TAB_APPROVER);
|
|
1516
|
+
this._SfDetailContainer.querySelector('#input-approve-yes').checked = true;
|
|
1517
|
+
}
|
|
1490
1518
|
}
|
|
1491
1519
|
}
|
|
1492
1520
|
};
|
|
@@ -2061,7 +2089,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2061
2089
|
}
|
|
2062
2090
|
};
|
|
2063
2091
|
this.clearAllCalendars = () => {
|
|
2064
|
-
this._SfCalendarContainer.innerHTML = "";
|
|
2092
|
+
//(this._SfCalendarContainer as HTMLDivElement).innerHTML = "";
|
|
2065
2093
|
this._SfStreamContainer.innerHTML = "";
|
|
2066
2094
|
this._SfUpcomingContainer.innerHTML = "";
|
|
2067
2095
|
this._SfThisContainer.innerHTML = "";
|
|
@@ -2695,6 +2723,8 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2695
2723
|
</div>
|
|
2696
2724
|
<div class="rb"></div>
|
|
2697
2725
|
</div>
|
|
2726
|
+
<div id="detail-container" class="hide" part="detail-container">
|
|
2727
|
+
</div>
|
|
2698
2728
|
<div class="d-flex justify-between">
|
|
2699
2729
|
<div class="lb"></div>
|
|
2700
2730
|
<div>
|