sf-i-events 1.0.778 → 1.0.779
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 +4 -4
- package/package.json +1 -1
- package/sf-i-events.d.ts +2 -1
- package/sf-i-events.js +210 -18
- package/src/sf-i-events.ts +238 -19
package/dev/index.html
CHANGED
|
@@ -648,7 +648,7 @@
|
|
|
648
648
|
</div>
|
|
649
649
|
|
|
650
650
|
</sf-i-events> -->
|
|
651
|
-
|
|
651
|
+
<sf-i-events name="Calendar" apiid="dwqyez2puoxmu.cloudfront.net/event" mode="consumer" apiidtags="dnytrdlrmxgsy.cloudfront.net/tagging" apiidstatutes="dnytrdlrmxgsy.cloudfront.net/statute" apiiddefinitions="dwqyez2puoxmu.cloudfront.net/definition" apiidreportformats="dwqyez2puoxmu.cloudfront.net/reportformat" apiidnotices="gghnbi7hku2qj5twrea6xxcaya0aqeis.lambda-url.us-east-1.on.aws" fill="solid" username="Viewer J1" userprofileid="344c84d2-5976-47ff-949b-49f6fa9627eb" projectid="41ab3c86-ccc0-4c0e-8e31-cd079a07a710" projectname="ABC Global" countryid="07d73b44-648d-4301-82c4-d6df43397824" myrole="viewer" showregisterexport="false" features="["notices"]" eventfielddependencies="[{"type": "foreignkey", "parent": "country", "child": "state"},{"type": "foreignkey", "parent": "category", "child": "subcategory"},{"type": "foreignkey", "parent": "frequency", "child": "subfrequency"}]" eventfields="[{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/riskarea", "field": "riskarea"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/jurisdiction", "field": "jurisdiction"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/updatetype", "field": "updatetype"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/country", "field": "country"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/specificity", "field": "specificity"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/risk", "field": "risk"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/frequency", "field": "frequency"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/category", "field": "category"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/obligationtype", "field": "obligationtype"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/state", "field": "state"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/subfrequency", "field": "subfrequency"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/subcategory", "field": "subcategory"},{"type": "sf-i-form", "apiId": "dnytrdlrmxgsy.cloudfront.net/statute", "field": "statute", "projectField": "name"}]" eventpreviewfields="["obligation"]" eventhidefields="["comments","documents","lastupdated","approved","tags"]" calendarstartdd="01" calendarstartmm="04" calendarstartyyyy="2024">
|
|
652
652
|
|
|
653
653
|
<div slot="uploader">
|
|
654
654
|
<sf-i-uploader id="uploader" max="10" apiid="1peg5170d3" allowedextensions="["jpg","png","pdf","xls","xlsx","doc","docx"]" extract="yes" projectid="41ab3c86-ccc0-4c0e-8e31-cd079a07a710" maxsize="5242880" allowdownload="yes"></sf-i-uploader>
|
|
@@ -657,7 +657,7 @@
|
|
|
657
657
|
<sf-i-reporting id="reporting-format" mode="view"></sf-i-reporting>
|
|
658
658
|
</div>
|
|
659
659
|
|
|
660
|
-
</sf-i-events>
|
|
660
|
+
</sf-i-events>
|
|
661
661
|
<!-- <sf-i-events name="Calendar" apiid="dwqyez2puoxmu.cloudfront.net/event" mode="consumer" apiidtags="dnytrdlrmxgsy.cloudfront.net/tagging" apiidstatutes="dnytrdlrmxgsy.cloudfront.net/statute" apiiddefinitions="dwqyez2puoxmu.cloudfront.net/definition" apiidreportformats="dwqyez2puoxmu.cloudfront.net/reportformat" fill="pattern" username="GJR Sharma" userprofileid="bc259a1f-9ee7-4141-85dd-824aa63f983b" projectid="f0f17ddb-546a-45f5-8a94-a5689fde8e64" projectname="Signode" countryid="4ab8901c-4407-4c4d-a2c7-df1a690aa0a3" enabledeletelatestreport="true" eventfielddependencies="[{"type": "foreignkey", "parent": "country", "child": "state"},{"type": "foreignkey", "parent": "category", "child": "subcategory"},{"type": "foreignkey", "parent": "frequency", "child": "subfrequency"}]" eventfields="[{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/riskarea", "field": "riskarea"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/jurisdiction", "field": "jurisdiction"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/updatetype", "field": "updatetype"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/country", "field": "country"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/specificity", "field": "specificity"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/risk", "field": "risk"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/frequency", "field": "frequency"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/category", "field": "category"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/obligationtype", "field": "obligationtype"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/state", "field": "state"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/subfrequency", "field": "subfrequency"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/subcategory", "field": "subcategory"},{"type": "sf-i-form", "apiId": "dnytrdlrmxgsy.cloudfront.net/statute", "field": "statute", "projectField": "name"}]" eventpreviewfields="["obligationtitle"]" eventhidefields="["comments","documents","lastupdated","approved","tags"]" calendarstartdd="01" calendarstartmm="04" calendarstartyyyy="2024">
|
|
662
662
|
|
|
663
663
|
<div slot="uploader">
|
|
@@ -668,9 +668,9 @@
|
|
|
668
668
|
</div>
|
|
669
669
|
|
|
670
670
|
</sf-i-events> -->
|
|
671
|
-
<sf-i-events projectid="f0f17ddb-546a-45f5-8a94-a5689fde8e64" projectname="Signode" mode="onboarding" locations="{"India":{"Telangana":["Corporate Office","Telangana Plant"],"Karnataka":["Prime","Stopak","Wintek","Tools","Conversion"],"Gujarat":["Dahej"],"Dadra and Nagar Haveli and Daman and Diu":["Silvassa"],"Uttarakhand":["Uttarakhand"],"Maharashtra":["Pune"],"Andhra Pradesh":["AP"],"Chhattisgarh":["Chhattisgarh"],"Goa":["Goa"],"Himachal Pradesh":["HP"],"Haryana":["Haryana"],"Jharkhand":["Jharkhand"],"Madhya Pradesh":["MP"],"Odisha":["Odisha"],"Punjab":["Punjab"],"Tamil Nadu":["TN"],"Uttar Pradesh":["UP"],"West Bengal":["WB"]}}" contractstartdate="01/04/2024" apiid="dwqyez2puoxmu.cloudfront.net/event" username="ninad.t@flagggrc.tech" apiidstatutes="dnytrdlrmxgsy.cloudfront.net/statute" apiidcompliances="dnytrdlrmxgsy.cloudfront.net/compliance" apiidtags="dnytrdlrmxgsy.cloudfront.net/tagging" apiidusers="dnytrdlrmxgsy.cloudfront.net/userprofile" disablesignoff="yes" disableclientresponse="yes">
|
|
671
|
+
<!-- <sf-i-events projectid="f0f17ddb-546a-45f5-8a94-a5689fde8e64" projectname="Signode" mode="onboarding" locations="{"India":{"Telangana":["Corporate Office","Telangana Plant"],"Karnataka":["Prime","Stopak","Wintek","Tools","Conversion"],"Gujarat":["Dahej"],"Dadra and Nagar Haveli and Daman and Diu":["Silvassa"],"Uttarakhand":["Uttarakhand"],"Maharashtra":["Pune"],"Andhra Pradesh":["AP"],"Chhattisgarh":["Chhattisgarh"],"Goa":["Goa"],"Himachal Pradesh":["HP"],"Haryana":["Haryana"],"Jharkhand":["Jharkhand"],"Madhya Pradesh":["MP"],"Odisha":["Odisha"],"Punjab":["Punjab"],"Tamil Nadu":["TN"],"Uttar Pradesh":["UP"],"West Bengal":["WB"]}}" contractstartdate="01/04/2024" apiid="dwqyez2puoxmu.cloudfront.net/event" username="ninad.t@flagggrc.tech" apiidstatutes="dnytrdlrmxgsy.cloudfront.net/statute" apiidcompliances="dnytrdlrmxgsy.cloudfront.net/compliance" apiidtags="dnytrdlrmxgsy.cloudfront.net/tagging" apiidusers="dnytrdlrmxgsy.cloudfront.net/userprofile" disablesignoff="yes" disableclientresponse="yes">
|
|
672
672
|
|
|
673
|
-
</sf-i-events>
|
|
673
|
+
</sf-i-events> -->
|
|
674
674
|
<!-- <sf-i-events name="Calendar" apiid="dwqyez2puoxmu.cloudfront.net/event" mode="consumer" apiidtags="dnytrdlrmxgsy.cloudfront.net/tagging" apiidstatutes="dnytrdlrmxgsy.cloudfront.net/statute" apiiddefinitions="dwqyez2puoxmu.cloudfront.net/definition" apiidreportformats="dwqyez2puoxmu.cloudfront.net/reportformat" fill="solid" username="Ankur Singhal" userprofileid="010834e8-108e-4a87-b58d-f5b429f184be" projectid="f0f17ddb-546a-45f5-8a94-a5689fde8e64" projectname="Signode" countryid="4ab8901c-4407-4c4d-a2c7-df1a690aa0a3" myrole="viewer" showregisterexport="false" eventfielddependencies="[{"type": "foreignkey", "parent": "country", "child": "state"},{"type": "foreignkey", "parent": "category", "child": "subcategory"},{"type": "foreignkey", "parent": "frequency", "child": "subfrequency"}]" eventfields="[{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/riskarea", "field": "riskarea"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/jurisdiction", "field": "jurisdiction"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/updatetype", "field": "updatetype"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/country", "field": "country"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/specificity", "field": "specificity"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/risk", "field": "risk"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/frequency", "field": "frequency"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/category", "field": "category"},{"type": "sf-i-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/obligationtype", "field": "obligationtype"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/state", "field": "state"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/subfrequency", "field": "subfrequency"},{"type": "sf-i-sub-select", "apiId": "dnytrdlrmxgsy.cloudfront.net/subcategory", "field": "subcategory"},{"type": "sf-i-form", "apiId": "dnytrdlrmxgsy.cloudfront.net/statute", "field": "statute", "projectField": "name"}]" eventpreviewfields="["obligation"]" eventhidefields="["comments","documents","lastupdated","approved","tags"]" calendarstartdd="01" calendarstartmm="04" calendarstartyyyy="2024">
|
|
675
675
|
|
|
676
676
|
<div slot="uploader">
|
package/package.json
CHANGED
package/sf-i-events.d.ts
CHANGED
|
@@ -460,6 +460,7 @@ export declare class SfIEvents extends LitElement {
|
|
|
460
460
|
renderCalendarContainerDivStart: (index: number) => string;
|
|
461
461
|
renderCalendarContainerDivEnd: () => string;
|
|
462
462
|
renderCalendarEventSummary: () => string;
|
|
463
|
+
renderCalendarEventSummaryViewer: () => string;
|
|
463
464
|
renderStatisticsFiltersTableStart: () => string;
|
|
464
465
|
renderStatisticsFiltersTableRow: () => string;
|
|
465
466
|
renderStatisticsFiltersTableEnd: () => string;
|
|
@@ -792,7 +793,7 @@ export declare class SfIEvents extends LitElement {
|
|
|
792
793
|
renderWithFeatures: (startDate?: string, endDate?: string, searchString?: string, list?: string, month?: string) => Promise<void>;
|
|
793
794
|
fetchAndYearlyRenderUserCalendar_2: (startDate?: string, endDate?: string, searchString?: string, list?: string, month?: string) => Promise<void>;
|
|
794
795
|
fetchAndRenderNotices: (startDate?: string, endDate?: string, searchString?: string, list?: string, month?: string) => Promise<void>;
|
|
795
|
-
fetchStatistics: (startDate: string | undefined, endDate: string | undefined, filtercriteria: string, filterid: string) => Promise<any>;
|
|
796
|
+
fetchStatistics: (startDate: string | undefined, endDate: string | undefined, filtercriteria: string, filterid: string, subfiltercriteria: string, subfilterid: string) => Promise<any>;
|
|
796
797
|
fetchBulkReportingData: () => Promise<void>;
|
|
797
798
|
fetchUserCalendar: () => Promise<void>;
|
|
798
799
|
fetchCalendar: () => Promise<void>;
|
package/sf-i-events.js
CHANGED
|
@@ -2267,6 +2267,27 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2267
2267
|
html += '<div id="stream-event-filter" part="stream-event-total" class="d-flex flex-wrap"></div>';
|
|
2268
2268
|
return html;
|
|
2269
2269
|
};
|
|
2270
|
+
this.renderCalendarEventSummaryViewer = () => {
|
|
2271
|
+
var html = '';
|
|
2272
|
+
html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex flex-wrap">';
|
|
2273
|
+
html += '<div part="badge-dashboard" class="d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span>Total:</span> <span id="graph-total">DASHBOARD_TOTAL</span></div><div class="d-flex justify-center">DASHBOARD_TOTAL_SUBFILTER</div></div>';
|
|
2274
|
+
html += '<div part="badge-dashboard" id="chip-completeness-0" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-icons color-not-started">schedule</span> <span>Not Started:</span> <span id="graph-not-started">DASHBOARD_NOT_STARTED</span></div><div class="d-flex justify-center">DASHBOARD_NOT_STARTED_SUBFILTER</div></div>';
|
|
2275
|
+
html += '<div part="badge-dashboard" id="chip-completeness-1" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-symbols-outlined color-pending">pending</span> <span>Pending Approval:</span> <span id="graph-pending-approval">DASHBOARD_PENDING_APPROVAL</span></div><div class="d-flex justify-center">DASHBOARD_PENDING_APPROVAL_SUBFILTER</div></div>';
|
|
2276
|
+
html += '<div part="badge-dashboard" id="chip-completeness-2" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-symbols-outlined color-rejected">block</span> <span>Rejected:</span> <span id="graph-rejected">DASHBOARD_REJECTED</span></div><div class="d-flex justify-center">DASHBOARD_REJECTED_SUBFILTER</div></div>';
|
|
2277
|
+
html += '<div part="badge-dashboard" id="chip-completeness-3" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-symbols-outlined color-done">check_circle</span> <span>Approved:</span> <span id="graph-approved">DASHBOARD_APPROVED</span></div><div class="d-flex justify-center">DASHBOARD_APPROVED_SUBFILTER</div></div>';
|
|
2278
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-0" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-in-time">schedule</span> <span>In Time:</span> <span id="graph-in-time">DASHBOARD_IN_TIME</span></div>';
|
|
2279
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-1" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-past-due-date">timer</span> <span>Past Due Date:</span> <span id="graph-past-due-date">DASHBOARD_PAST_DUE_DATE</span></div>';
|
|
2280
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-2" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-late-reported">report_off</span> <span>Late Reported:</span> <span id="graph-late-reported">DASHBOARD_LATE_REPORTED</span></div>';
|
|
2281
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-3" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-late-approved">remove_done</span> <span>Late Approved:</span> <span id="graph-late-approved">DASHBOARD_LATE_APPROVED</span></div>';
|
|
2282
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-4" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-late-executed">running_with_errors</span> <span>Late Executed:</span> <span id="graph-late-executed">DASHBOARD_LATE_EXECUTED</span></div>';
|
|
2283
|
+
html += '<div part="badge-dashboard" id="chip-compliance-0" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-icons color-scheduled">schedule</span> <span>Scheduled:</span> <span id="graph-scheduled">DASHBOARD_SCHEDULED</span></div>';
|
|
2284
|
+
html += '<div part="badge-dashboard" id="chip-compliance-1" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-icons color-not-complied">disabled_by_default</span> <span>Not Complied:</span> <span id="graph-not-complied">DASHBOARD_NOT_COMPLIED</span></div>';
|
|
2285
|
+
html += '<div part="badge-dashboard" id="chip-compliance-2" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-icons color-partially-complied">rule</span> <span>Partially Complied:</span> <span id="graph-partially-complied">DASHBOARD_PARTIALLY_COMPLIED</span></div>';
|
|
2286
|
+
html += '<div part="badge-dashboard" id="chip-compliance-3" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-symbols-outlined color-complied">sweep</span> <span>Complied:</span> <span id="graph-complied">DASHBOARD_COMPLIED</span></div>';
|
|
2287
|
+
html += '</div>';
|
|
2288
|
+
html += '<div id="stream-event-filter" part="stream-event-total" class="d-flex flex-wrap"></div>';
|
|
2289
|
+
return html;
|
|
2290
|
+
};
|
|
2270
2291
|
this.renderStatisticsFiltersTableStart = () => {
|
|
2271
2292
|
var html = '';
|
|
2272
2293
|
html += '<div class="w-100 scroll-x">';
|
|
@@ -2287,7 +2308,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2287
2308
|
};
|
|
2288
2309
|
this.renderStatisticsFiltersTableEnd = () => {
|
|
2289
2310
|
var html = '';
|
|
2290
|
-
html += '</tbody></table
|
|
2311
|
+
html += '</tbody></table></div>';
|
|
2291
2312
|
return html;
|
|
2292
2313
|
};
|
|
2293
2314
|
this.getCalendarRowHide = (events, i, lastDay, month, firstDate = null, currDate = null) => {
|
|
@@ -2826,8 +2847,13 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2826
2847
|
return html;
|
|
2827
2848
|
};
|
|
2828
2849
|
this.renderStatistics = (_firstDay, _endDay, iInit, iLast, showGraph, index, month, period, firstDate = null, parametersTitle) => {
|
|
2829
|
-
var _a, _b, _c, _f, _g, _h, _j, _k;
|
|
2850
|
+
var _a, _b, _c, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
2830
2851
|
var total = 0, notStarted = 0, approved = 0, pendingApproval = 0, rejected = 0;
|
|
2852
|
+
let subfiltersTotal = {};
|
|
2853
|
+
let subfiltersNotStarted = {};
|
|
2854
|
+
let subfiltersPendingApproval = {};
|
|
2855
|
+
let subfiltersRejected = {};
|
|
2856
|
+
let subfiltersApproved = {};
|
|
2831
2857
|
var html = '';
|
|
2832
2858
|
// var lastDay = iLast;
|
|
2833
2859
|
// var slice = 2;
|
|
@@ -2836,7 +2862,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2836
2862
|
this.clearSelectedLegend();
|
|
2837
2863
|
html += this.renderCalendarStatisticsGraphs(showGraph, parametersTitle);
|
|
2838
2864
|
html += this.renderCalendarContainerDivStart(index);
|
|
2839
|
-
html += this.
|
|
2865
|
+
html += this.renderCalendarEventSummaryViewer();
|
|
2840
2866
|
let filtersTableHtml = "";
|
|
2841
2867
|
if (Object.keys(this.statisticsFiltersData).length > 0) {
|
|
2842
2868
|
filtersTableHtml += this.renderStatisticsFiltersTableStart();
|
|
@@ -2868,6 +2894,30 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2868
2894
|
pendingApproval += (_b = this.statistics[mmdd]["pending-approval"]) !== null && _b !== void 0 ? _b : 0;
|
|
2869
2895
|
rejected += (_c = this.statistics[mmdd]["rejected"]) !== null && _c !== void 0 ? _c : 0;
|
|
2870
2896
|
approved += (_f = this.statistics[mmdd]["approved"]) !== null && _f !== void 0 ? _f : 0;
|
|
2897
|
+
for (let subfilter of Object.keys(this.statistics['subfilters'])) {
|
|
2898
|
+
if (subfiltersTotal[subfilter] == null) {
|
|
2899
|
+
subfiltersTotal[subfilter] = 0;
|
|
2900
|
+
}
|
|
2901
|
+
if (subfiltersNotStarted[subfilter] == null) {
|
|
2902
|
+
subfiltersNotStarted[subfilter] = 0;
|
|
2903
|
+
}
|
|
2904
|
+
if (subfiltersPendingApproval[subfilter] == null) {
|
|
2905
|
+
subfiltersPendingApproval[subfilter] = 0;
|
|
2906
|
+
}
|
|
2907
|
+
if (subfiltersRejected[subfilter] == null) {
|
|
2908
|
+
subfiltersRejected[subfilter] = 0;
|
|
2909
|
+
}
|
|
2910
|
+
if (subfiltersApproved[subfilter] == null) {
|
|
2911
|
+
subfiltersApproved[subfilter] = 0;
|
|
2912
|
+
}
|
|
2913
|
+
if (this.statistics['subfilters'][subfilter][mmdd] != null) {
|
|
2914
|
+
subfiltersTotal[subfilter] += (this.statistics['subfilters'][subfilter][mmdd].count);
|
|
2915
|
+
subfiltersNotStarted[subfilter] += ((_g = this.statistics['subfilters'][subfilter][mmdd]['not-started']) !== null && _g !== void 0 ? _g : 0);
|
|
2916
|
+
subfiltersPendingApproval[subfilter] += ((_h = this.statistics['subfilters'][subfilter][mmdd]['pending-approval']) !== null && _h !== void 0 ? _h : 0);
|
|
2917
|
+
subfiltersRejected[subfilter] += ((_j = this.statistics['subfilters'][subfilter][mmdd]['rejected']) !== null && _j !== void 0 ? _j : 0);
|
|
2918
|
+
subfiltersApproved[subfilter] += ((_k = this.statistics['subfilters'][subfilter][mmdd]['approved']) !== null && _k !== void 0 ? _k : 0);
|
|
2919
|
+
}
|
|
2920
|
+
}
|
|
2871
2921
|
}
|
|
2872
2922
|
}
|
|
2873
2923
|
if (Object.keys(this.statisticsFiltersData).length > 0) {
|
|
@@ -2877,6 +2927,11 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2877
2927
|
let filtername = filterval.split(';')[0];
|
|
2878
2928
|
let filterid = filterval.split(';')[1];
|
|
2879
2929
|
let filterTotal = 0, filterNotStarted = 0, filterPendingApproval = 0, filterRejected = 0, filterApproved = 0;
|
|
2930
|
+
let subfiltersFilterTotal = {};
|
|
2931
|
+
let subfiltersFilterNotStarted = {};
|
|
2932
|
+
let subfiltersFilterPendingApproval = {};
|
|
2933
|
+
let subfiltersFilterRejected = {};
|
|
2934
|
+
let subfiltersFilterApproved = {};
|
|
2880
2935
|
for (var i = iInit; i <= iLast; i++) {
|
|
2881
2936
|
let mmdd = "";
|
|
2882
2937
|
if (firstDate == null) {
|
|
@@ -2890,10 +2945,35 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2890
2945
|
if (this.statisticsFiltersData[filtercriteria][filterid] != null) {
|
|
2891
2946
|
if (this.statisticsFiltersData[filtercriteria][filterid][mmdd] != null) {
|
|
2892
2947
|
filterTotal += this.statisticsFiltersData[filtercriteria][filterid][mmdd].count;
|
|
2893
|
-
filterNotStarted += (
|
|
2894
|
-
filterPendingApproval += (
|
|
2895
|
-
filterRejected += (
|
|
2896
|
-
filterApproved += (
|
|
2948
|
+
filterNotStarted += (_l = this.statisticsFiltersData[filtercriteria][filterid][mmdd]['not-started']) !== null && _l !== void 0 ? _l : 0;
|
|
2949
|
+
filterPendingApproval += (_m = this.statisticsFiltersData[filtercriteria][filterid][mmdd]['pending-approval']) !== null && _m !== void 0 ? _m : 0;
|
|
2950
|
+
filterRejected += (_o = this.statisticsFiltersData[filtercriteria][filterid][mmdd]['rejected']) !== null && _o !== void 0 ? _o : 0;
|
|
2951
|
+
filterApproved += (_p = this.statisticsFiltersData[filtercriteria][filterid][mmdd]['approved']) !== null && _p !== void 0 ? _p : 0;
|
|
2952
|
+
for (let subfilter of Object.keys(this.statisticsFiltersData[filtercriteria][filterid]['subfilters'])) {
|
|
2953
|
+
if (subfiltersFilterTotal[subfilter] == null) {
|
|
2954
|
+
subfiltersFilterTotal[subfilter] = 0;
|
|
2955
|
+
}
|
|
2956
|
+
if (subfiltersFilterNotStarted[subfilter] == null) {
|
|
2957
|
+
subfiltersFilterNotStarted[subfilter] = 0;
|
|
2958
|
+
}
|
|
2959
|
+
if (subfiltersFilterPendingApproval[subfilter] == null) {
|
|
2960
|
+
subfiltersFilterPendingApproval[subfilter] = 0;
|
|
2961
|
+
}
|
|
2962
|
+
if (subfiltersFilterRejected[subfilter] == null) {
|
|
2963
|
+
subfiltersFilterRejected[subfilter] = 0;
|
|
2964
|
+
}
|
|
2965
|
+
if (subfiltersFilterApproved[subfilter] == null) {
|
|
2966
|
+
subfiltersFilterApproved[subfilter] = 0;
|
|
2967
|
+
}
|
|
2968
|
+
if (this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd] != null) {
|
|
2969
|
+
subfiltersFilterTotal[subfilter] += (this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd].count);
|
|
2970
|
+
console.log('subfilterTotal', subfiltersFilterTotal);
|
|
2971
|
+
subfiltersFilterNotStarted[subfilter] += ((_q = this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['not-started']) !== null && _q !== void 0 ? _q : 0);
|
|
2972
|
+
subfiltersFilterPendingApproval[subfilter] += ((_r = this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['pending-approval']) !== null && _r !== void 0 ? _r : 0);
|
|
2973
|
+
subfiltersFilterRejected[subfilter] += ((_s = this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['rejected']) !== null && _s !== void 0 ? _s : 0);
|
|
2974
|
+
subfiltersFilterApproved[subfilter] += ((_t = this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['approved']) !== null && _t !== void 0 ? _t : 0);
|
|
2975
|
+
}
|
|
2976
|
+
}
|
|
2897
2977
|
}
|
|
2898
2978
|
}
|
|
2899
2979
|
}
|
|
@@ -2906,11 +2986,24 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2906
2986
|
}
|
|
2907
2987
|
filtersTableHtml = filtersTableHtml.replace("FILTER_CRITERIA_NAME", filtercriteria + "");
|
|
2908
2988
|
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_FILTER_NAME", (filtername + "").replace(/\([^)]*\)/g, ""));
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2989
|
+
let filterTotalHtml = filterTotal + "";
|
|
2990
|
+
let filterNotStartedHtml = filterNotStarted + Util.percentageString(filterNotStarted, filterTotal);
|
|
2991
|
+
let filterPendingApprovalHtml = filterPendingApproval + Util.percentageString(filterPendingApproval, filterTotal);
|
|
2992
|
+
let filterRejectedHtml = filterRejected + Util.percentageString(filterRejected, filterTotal);
|
|
2993
|
+
let filterApprovedHtml = filterApproved + Util.percentageString(filterApproved, filterTotal);
|
|
2994
|
+
for (let subfilter of Object.keys(this.statisticsFiltersData[filtercriteria][filterid]['subfilters'])) {
|
|
2995
|
+
filterTotalHtml += `<br />${subfilter}: ${subfiltersFilterTotal[subfilter]}${Util.percentageString(subfiltersFilterTotal[subfilter], filterTotal)}`;
|
|
2996
|
+
filterNotStartedHtml += `<br />${subfilter}: ${subfiltersFilterNotStarted[subfilter]}${Util.percentageString(subfiltersFilterNotStarted[subfilter], filterNotStarted)}`;
|
|
2997
|
+
filterPendingApprovalHtml += `<br />${subfilter}: ${subfiltersFilterPendingApproval[subfilter]}${Util.percentageString(subfiltersFilterPendingApproval[subfilter], filterPendingApproval)}`;
|
|
2998
|
+
filterRejectedHtml += `<br />${subfilter}: ${subfiltersFilterRejected[subfilter]}${Util.percentageString(subfiltersFilterRejected[subfilter], filterRejected)}`;
|
|
2999
|
+
filterApprovedHtml += `<br />${subfilter}: ${subfiltersFilterApproved[subfilter]}${Util.percentageString(subfiltersFilterApproved[subfilter], filterApproved)}`;
|
|
3000
|
+
}
|
|
3001
|
+
console.log('subfilterstotal', subfiltersFilterTotal);
|
|
3002
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_TOTAL", filterTotalHtml);
|
|
3003
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_NOT_STARTED", filterNotStartedHtml);
|
|
3004
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_APPROVED", filterApprovedHtml);
|
|
3005
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_PENDING_APPROVAL", filterPendingApprovalHtml);
|
|
3006
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_REJECTED", filterRejectedHtml);
|
|
2914
3007
|
}
|
|
2915
3008
|
filtersTableHtml += this.renderStatisticsFiltersTableEnd();
|
|
2916
3009
|
}
|
|
@@ -2921,13 +3014,30 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2921
3014
|
this.period = period;
|
|
2922
3015
|
//console.log('renderevents htmlcols', this.htmlDataCompliances);
|
|
2923
3016
|
console.log('progress', this.period, total, notStarted, approved, this.statistics);
|
|
3017
|
+
let totalHtml = "";
|
|
3018
|
+
let notStartedHtml = "";
|
|
3019
|
+
let pendingApprovalHtml = "";
|
|
3020
|
+
let rejectedHtml = "";
|
|
3021
|
+
let approvedHtml = "";
|
|
3022
|
+
for (let subfilter of Object.keys(this.statistics['subfilters'])) {
|
|
3023
|
+
totalHtml += `<br />${subfilter}: ${subfiltersTotal[subfilter]}${Util.percentageString(subfiltersTotal[subfilter], total)}`;
|
|
3024
|
+
notStartedHtml += `<br />${subfilter}: ${subfiltersNotStarted[subfilter]}${Util.percentageString(subfiltersNotStarted[subfilter], notStarted)}`;
|
|
3025
|
+
pendingApprovalHtml += `<br />${subfilter}: ${subfiltersPendingApproval[subfilter]}${Util.percentageString(subfiltersPendingApproval[subfilter], pendingApproval)}`;
|
|
3026
|
+
rejectedHtml += `<br />${subfilter}: ${subfiltersRejected[subfilter]}${Util.percentageString(subfiltersRejected[subfilter], rejected)}`;
|
|
3027
|
+
approvedHtml += `<br />${subfilter}: ${subfiltersApproved[subfilter]}${Util.percentageString(subfiltersApproved[subfilter], approved)}`;
|
|
3028
|
+
}
|
|
2924
3029
|
html = html.replace("DASHBOARD_TOTAL", total + "");
|
|
3030
|
+
html = html.replace("DASHBOARD_TOTAL_SUBFILTER", totalHtml.replace('<br />', ''));
|
|
2925
3031
|
html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
|
|
3032
|
+
html = html.replace("DASHBOARD_NOT_STARTED_SUBFILTER", notStartedHtml.replace('<br />', ''));
|
|
2926
3033
|
html = html.replace("DASHBOARD_APPROVED", approved + "");
|
|
3034
|
+
html = html.replace("DASHBOARD_APPROVED_SUBFILTER", approvedHtml.replace('<br />', ''));
|
|
2927
3035
|
html = html.replace("DASHBOARD_PENDING_APPROVAL", pendingApproval + "");
|
|
3036
|
+
html = html.replace("DASHBOARD_PENDING_APPROVAL_SUBFILTER", pendingApprovalHtml.replace('<br />', ''));
|
|
2928
3037
|
html = html.replace("DASHBOARD_REJECTED", rejected + "");
|
|
3038
|
+
html = html.replace("DASHBOARD_REJECTED_SUBFILTER", rejectedHtml.replace('<br />', ''));
|
|
2929
3039
|
this.htmlDataStats = 'Completeness<br /><br /><table class="w-100"><tr><th class="w-14">Total</th><th class="w-14">Not Started</th><th class="w-14">Approved</th><th class="w-14">Pending Approval</th><th class="w-14">Rejected</th><tr>';
|
|
2930
|
-
this.htmlDataStats += '<tr><td class="w-14 text-center td-odd">' + total + '</td><td class="w-14 text-center td-odd">' + notStarted + '</td><td class="w-14 text-center td-odd">' + approved + '</td><td class="w-14 text-center td-odd">' + pendingApproval + '</td><td class="w-14 text-center td-odd">' + rejected + '</td></table>';
|
|
3040
|
+
this.htmlDataStats += '<tr><td class="w-14 text-center td-odd">' + total + totalHtml + '</td><td class="w-14 text-center td-odd">' + notStarted + notStartedHtml + '</td><td class="w-14 text-center td-odd">' + approved + approvedHtml + '</td><td class="w-14 text-center td-odd">' + pendingApproval + pendingApprovalHtml + '</td><td class="w-14 text-center td-odd">' + rejected + rejectedHtml + '</td></table>';
|
|
2931
3041
|
if (Object.keys(this.statisticsFiltersData).length > 0) {
|
|
2932
3042
|
this.htmlDataStats += '<br /><br />Report<br /><br />';
|
|
2933
3043
|
this.htmlDataStats += filtersTableHtml;
|
|
@@ -4455,6 +4565,9 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4455
4565
|
filterscriteria = Object.keys(this.statisticsFiltersData)[0];
|
|
4456
4566
|
}
|
|
4457
4567
|
for (let criteria of Object.keys(this.statisticsMeta)) {
|
|
4568
|
+
if (criteria == "subfilters") {
|
|
4569
|
+
continue;
|
|
4570
|
+
}
|
|
4458
4571
|
let option = new Option();
|
|
4459
4572
|
option.value = criteria;
|
|
4460
4573
|
console.log('statistics filters criteria', criteria, filterscriteria, criteria == filterscriteria);
|
|
@@ -4483,7 +4596,9 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4483
4596
|
let inputLabelCriteria = eventsContainer.querySelector('#input-label-criteria');
|
|
4484
4597
|
let selectFilterValues = eventsContainer.querySelector('#select-filter-values');
|
|
4485
4598
|
selectFilterValues.value = "";
|
|
4486
|
-
|
|
4599
|
+
let inputLabelSubfilters = eventsContainer.querySelector('#input-label-subfilter');
|
|
4600
|
+
let selectSubfilterCriteria = eventsContainer.querySelector('#select-subfilter-criteria');
|
|
4601
|
+
selectSubfilterCriteria.value = "";
|
|
4487
4602
|
selectFilterValues.innerHTML = "";
|
|
4488
4603
|
let option = new Option();
|
|
4489
4604
|
option.value = "";
|
|
@@ -4505,11 +4620,37 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4505
4620
|
console.log('changed');
|
|
4506
4621
|
this.processDateSelectionViewer(eventsContainer);
|
|
4507
4622
|
});
|
|
4623
|
+
selectSubfilterCriteria.style.display = 'block';
|
|
4624
|
+
inputLabelSubfilters.style.display = 'block';
|
|
4625
|
+
let sortedSubfilters = Util.alphabeticalSort(Object.keys(this.statisticsMeta.subfilters));
|
|
4626
|
+
if (sortedSubfilters.length > 1) {
|
|
4627
|
+
let option = new Option();
|
|
4628
|
+
option.value = "";
|
|
4629
|
+
option.innerHTML = "All";
|
|
4630
|
+
selectSubfilterCriteria.add(option);
|
|
4631
|
+
}
|
|
4632
|
+
for (let subfilter of sortedSubfilters) {
|
|
4633
|
+
let option = new Option();
|
|
4634
|
+
option.value = subfilter;
|
|
4635
|
+
option.innerHTML = subfilter;
|
|
4636
|
+
selectSubfilterCriteria.add(option);
|
|
4637
|
+
}
|
|
4638
|
+
let inputLabelSubfiltersValue = eventsContainer.querySelector('#input-label-subfilter-value');
|
|
4639
|
+
let selectSubfilterValues = eventsContainer.querySelector('#select-subfilter-values');
|
|
4640
|
+
inputLabelSubfiltersValue.style.display = 'none';
|
|
4641
|
+
selectSubfilterValues.style.display = 'none';
|
|
4642
|
+
let selectSubfilterCriteriaNew = Util.clearListeners(selectSubfilterCriteria);
|
|
4643
|
+
selectSubfilterCriteriaNew.addEventListener('change', () => {
|
|
4644
|
+
this.processDateSelectionViewer(eventsContainer);
|
|
4645
|
+
});
|
|
4508
4646
|
}
|
|
4509
4647
|
else {
|
|
4510
4648
|
selectFilterValues.style.display = 'none';
|
|
4511
4649
|
inputLabelCriteria.style.display = 'none';
|
|
4650
|
+
selectSubfilterCriteria.style.display = 'none';
|
|
4651
|
+
inputLabelSubfilters.style.display = 'none';
|
|
4512
4652
|
}
|
|
4653
|
+
this.processDateSelectionViewer(eventsContainer);
|
|
4513
4654
|
});
|
|
4514
4655
|
let selectFilterCriteriaMobileNew = Util.clearListeners(selectFilterCriteriaMobile);
|
|
4515
4656
|
selectFilterCriteriaMobileNew.addEventListener('change', (ev) => {
|
|
@@ -4918,7 +5059,6 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4918
5059
|
//console.log('valueend', valueEnd);
|
|
4919
5060
|
let filtercriteria = this._SfCustomContainer.querySelector('#select-filter-criteria').value;
|
|
4920
5061
|
let filtercriterianame = "";
|
|
4921
|
-
console.log('criteria', this._SfCustomContainer.querySelector('#select-filter-criteria').options[this._SfCustomContainer.querySelector('#select-filter-criteria').selectedIndex]);
|
|
4922
5062
|
if (this._SfCustomContainer.querySelector('#select-filter-criteria').options[this._SfCustomContainer.querySelector('#select-filter-criteria').selectedIndex] != null) {
|
|
4923
5063
|
filtercriterianame = this._SfCustomContainer.querySelector('#select-filter-criteria').options[this._SfCustomContainer.querySelector('#select-filter-criteria').selectedIndex].innerHTML;
|
|
4924
5064
|
}
|
|
@@ -4950,6 +5090,30 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4950
5090
|
this.htmlStatsFilter = "Filters Selected -> " + Util.titleCase(filtercriterianame) + " -> " + Util.titleCase(filtervaluename);
|
|
4951
5091
|
}
|
|
4952
5092
|
}
|
|
5093
|
+
let subfiltervalue = this._SfCustomContainer.querySelector('#select-subfilter-values').value;
|
|
5094
|
+
let subfiltervaluename = "";
|
|
5095
|
+
if (this._SfCustomContainer.querySelector('#select-subfilter-values').options[this._SfCustomContainer.querySelector('#select-subfilter-values').selectedIndex] != null) {
|
|
5096
|
+
subfiltervaluename = this._SfCustomContainer.querySelector('#select-subfilter-values').options[this._SfCustomContainer.querySelector('#select-subfilter-values').selectedIndex].innerHTML;
|
|
5097
|
+
}
|
|
5098
|
+
if (subfiltervalue == "") {
|
|
5099
|
+
subfiltervalue = this._SfCustomContainer.querySelector('#select-subfilter-values-mobile').value;
|
|
5100
|
+
if (this._SfCustomContainer.querySelector('#select-subfilter-values-mobile').options[this._SfCustomContainer.querySelector('#select-subfilter-values-mobile').selectedIndex] != null) {
|
|
5101
|
+
subfiltervaluename = this._SfCustomContainer.querySelector('#select-subfilter-values-mobile').options[this._SfCustomContainer.querySelector('#select-subfilter-values-mobile').selectedIndex].innerHTML;
|
|
5102
|
+
}
|
|
5103
|
+
}
|
|
5104
|
+
console.log('subfiltervalue, subfiltervaluename', subfiltervalue, subfiltervaluename);
|
|
5105
|
+
let subfiltercriteria = this._SfCustomContainer.querySelector('#select-subfilter-criteria').value;
|
|
5106
|
+
let subfiltercriterianame = "";
|
|
5107
|
+
if (this._SfCustomContainer.querySelector('#select-subfilter-criteria').options[this._SfCustomContainer.querySelector('#select-subfilter-criteria').selectedIndex] != null) {
|
|
5108
|
+
subfiltercriterianame = this._SfCustomContainer.querySelector('#select-subfilter-criteria').options[this._SfCustomContainer.querySelector('#select-subfilter-criteria').selectedIndex].innerHTML;
|
|
5109
|
+
}
|
|
5110
|
+
if (subfiltercriteria == "") {
|
|
5111
|
+
subfiltercriteria = this._SfCustomContainer.querySelector('#select-subfilter-criteria-mobile').value;
|
|
5112
|
+
if (this._SfCustomContainer.querySelector('#select-subfilter-criteria-mobile').options[this._SfCustomContainer.querySelector('#select-subfilter-criteria-mobile').selectedIndex] != null) {
|
|
5113
|
+
subfiltercriterianame = this._SfCustomContainer.querySelector('#select-subfilter-criteria-mobile').options[this._SfCustomContainer.querySelector('#select-subfilter-criteria-mobile').selectedIndex].innerHTML;
|
|
5114
|
+
}
|
|
5115
|
+
}
|
|
5116
|
+
console.log('subfiltercriteria, subfiltercriterianame', subfiltercriteria, subfiltercriterianame);
|
|
4953
5117
|
if (valueStart != "" && valueEnd != "") {
|
|
4954
5118
|
this.initCustomRightColViewer();
|
|
4955
5119
|
if (!this.checkStartDateEarliness(valueStart)) {
|
|
@@ -4974,7 +5138,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4974
5138
|
tsEnd.setDate(tsEnd.getDate() + 2);
|
|
4975
5139
|
//console.log('tsstart', tsStart);
|
|
4976
5140
|
//console.log('tsend', tsEnd);
|
|
4977
|
-
let meta = await this.fetchStatistics((tsStart.getMonth() + 1) + "/" + tsStart.getDate() + "/" + tsStart.getFullYear(), (tsEnd.getMonth() + 1) + "/" + tsEnd.getDate() + "/" + tsEnd.getFullYear(), filtercriteria, filtervalue);
|
|
5141
|
+
let meta = await this.fetchStatistics((tsStart.getMonth() + 1) + "/" + tsStart.getDate() + "/" + tsStart.getFullYear(), (tsEnd.getMonth() + 1) + "/" + tsEnd.getDate() + "/" + tsEnd.getFullYear(), filtercriteria, filtervalue, subfiltercriteria, subfiltervalue);
|
|
4978
5142
|
this.renderRangeStatistics(new Date(valueStart), ((new Date(valueEnd).getTime() + 24 * 60 * 60 * 1000) - new Date(valueStart).getTime()) / (1000 * 60 * 60 * 24), this._SfCustomContainer);
|
|
4979
5143
|
if (meta != null)
|
|
4980
5144
|
this.renderStatisticsFilters(this._SfCustomContainer);
|
|
@@ -6660,6 +6824,14 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
6660
6824
|
html += '<label part="input-label-filter-value" id="input-label-criteria-mobile"></label>';
|
|
6661
6825
|
html += '<select id="select-filter-values-mobile"></select>';
|
|
6662
6826
|
html += '</div>';
|
|
6827
|
+
html += '<div class="title-item-date">';
|
|
6828
|
+
html += '<label part="input-label-subfilter-criteria" id="input-label-subfilter-mobile">Subfilter Criteria</label>';
|
|
6829
|
+
html += '<select id="select-subfilter-criteria-mobile"></select>';
|
|
6830
|
+
html += '</div>';
|
|
6831
|
+
html += '<div class="title-item-date">';
|
|
6832
|
+
html += '<label part="input-label-subfilter-value" id="input-label-subfilter-value-mobile"></label>';
|
|
6833
|
+
html += '<select id="select-subfilter-values-mobile"></select>';
|
|
6834
|
+
html += '</div>';
|
|
6663
6835
|
html += '</div>';
|
|
6664
6836
|
html += '<div class="d-flex w-100">';
|
|
6665
6837
|
html += '<div class="calendar-left-col desktop-only flex-col justify-start align-end">';
|
|
@@ -6688,6 +6860,14 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
6688
6860
|
html += '<label part="input-label-filter-value" id="input-label-criteria"></label>';
|
|
6689
6861
|
html += '<select part="input-select-calendar-filter" id="select-filter-values"></select>';
|
|
6690
6862
|
html += '</div>';
|
|
6863
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
6864
|
+
html += '<label part="input-label-subfilter-criteria" id="input-label-subfilter">Subfilter Criteria</label>';
|
|
6865
|
+
html += '<select part="input-select-calendar-subfilter" id="select-subfilter-criteria"></select>';
|
|
6866
|
+
html += '</div>';
|
|
6867
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
6868
|
+
html += '<label part="input-label-subfilter-value" id="input-label-subfilter-value"></label>';
|
|
6869
|
+
html += '<select part="input-select-calendar-subfilter" id="select-subfilter-values"></select>';
|
|
6870
|
+
html += '</div>';
|
|
6691
6871
|
html += '</div>';
|
|
6692
6872
|
html += '<div class="calendar-right-data flex-grow">';
|
|
6693
6873
|
html += '</div>';
|
|
@@ -6803,12 +6983,24 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
6803
6983
|
selectFilterValues.style.display = 'none';
|
|
6804
6984
|
let inputLabelFilter = this._SfCustomContainer.querySelector('#input-label-filter');
|
|
6805
6985
|
inputLabelFilter.style.display = 'none';
|
|
6986
|
+
let selectSubfilterCriteria = this._SfCustomContainer.querySelector('#select-subfilter-criteria');
|
|
6987
|
+
selectSubfilterCriteria.style.display = 'none';
|
|
6988
|
+
let selectSubfilterValues = this._SfCustomContainer.querySelector('#select-subfilter-values');
|
|
6989
|
+
selectSubfilterValues.style.display = 'none';
|
|
6990
|
+
let inputLabelSubfilter = this._SfCustomContainer.querySelector('#input-label-subfilter');
|
|
6991
|
+
inputLabelSubfilter.style.display = 'none';
|
|
6806
6992
|
let selectFilterCriteriaMobile = this._SfCustomContainer.querySelector('#select-filter-criteria-mobile');
|
|
6807
6993
|
selectFilterCriteriaMobile.style.display = 'none';
|
|
6808
6994
|
let selectFilterValuesMobile = this._SfCustomContainer.querySelector('#select-filter-values-mobile');
|
|
6809
6995
|
selectFilterValuesMobile.style.display = 'none';
|
|
6810
6996
|
let inputLabelFilterMobile = this._SfCustomContainer.querySelector('#input-label-filter-mobile');
|
|
6811
6997
|
inputLabelFilterMobile.style.display = 'none';
|
|
6998
|
+
let selectSubfilterCriteriaMobile = this._SfCustomContainer.querySelector('#select-subfilter-criteria-mobile');
|
|
6999
|
+
selectSubfilterCriteriaMobile.style.display = 'none';
|
|
7000
|
+
let selectSubfilterValuesMobile = this._SfCustomContainer.querySelector('#select-subfilter-values-mobile');
|
|
7001
|
+
selectSubfilterValuesMobile.style.display = 'none';
|
|
7002
|
+
let inputLabelSubfilterMobile = this._SfCustomContainer.querySelector('#input-label-subfilter-mobile');
|
|
7003
|
+
inputLabelSubfilterMobile.style.display = 'none';
|
|
6812
7004
|
this._SfCustomContainer.querySelector('#button-year-to-date').click();
|
|
6813
7005
|
};
|
|
6814
7006
|
this.renderThis = (index = 1, showGraph = true, showBackgroundButton) => {
|
|
@@ -17797,7 +17989,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
17797
17989
|
}
|
|
17798
17990
|
}
|
|
17799
17991
|
};
|
|
17800
|
-
this.fetchStatistics = async (startDate = "", endDate = "", filtercriteria, filterid) => {
|
|
17992
|
+
this.fetchStatistics = async (startDate = "", endDate = "", filtercriteria, filterid, subfiltercriteria, subfilterid) => {
|
|
17801
17993
|
var _a;
|
|
17802
17994
|
let path = "";
|
|
17803
17995
|
this.sdate = startDate;
|
|
@@ -17822,7 +18014,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
17822
18014
|
url = "https://" + this.apiIdNotices + "/" + path;
|
|
17823
18015
|
}
|
|
17824
18016
|
//console.log('fetch calendar url', url);
|
|
17825
|
-
let urlBody = { "projectid": this.projectId, "userid": this.userProfileId, "role": this.myRole, "sdate": sDate, "edate": eDate, "filtercriteria": filtercriteria };
|
|
18017
|
+
let urlBody = { "projectid": this.projectId, "userid": this.userProfileId, "role": this.myRole, "sdate": sDate, "edate": eDate, "filtercriteria": filtercriteria, "subfiltercriteria": subfiltercriteria, "subfilterid": subfilterid };
|
|
17826
18018
|
if (filtercriteria == 'function') {
|
|
17827
18019
|
urlBody["functionid"] = filterid;
|
|
17828
18020
|
urlBody["locationid"] = '';
|
package/src/sf-i-events.ts
CHANGED
|
@@ -4403,7 +4403,33 @@ export class SfIEvents extends LitElement {
|
|
|
4403
4403
|
return html;
|
|
4404
4404
|
|
|
4405
4405
|
}
|
|
4406
|
+
renderCalendarEventSummaryViewer = () => {
|
|
4406
4407
|
|
|
4408
|
+
var html = '';
|
|
4409
|
+
|
|
4410
|
+
html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex flex-wrap">';
|
|
4411
|
+
html += '<div part="badge-dashboard" class="d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span>Total:</span> <span id="graph-total">DASHBOARD_TOTAL</span></div><div class="d-flex justify-center">DASHBOARD_TOTAL_SUBFILTER</div></div>';
|
|
4412
|
+
html += '<div part="badge-dashboard" id="chip-completeness-0" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-icons color-not-started">schedule</span> <span>Not Started:</span> <span id="graph-not-started">DASHBOARD_NOT_STARTED</span></div><div class="d-flex justify-center">DASHBOARD_NOT_STARTED_SUBFILTER</div></div>';
|
|
4413
|
+
html += '<div part="badge-dashboard" id="chip-completeness-1" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-symbols-outlined color-pending">pending</span> <span>Pending Approval:</span> <span id="graph-pending-approval">DASHBOARD_PENDING_APPROVAL</span></div><div class="d-flex justify-center">DASHBOARD_PENDING_APPROVAL_SUBFILTER</div></div>';
|
|
4414
|
+
html += '<div part="badge-dashboard" id="chip-completeness-2" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-symbols-outlined color-rejected">block</span> <span>Rejected:</span> <span id="graph-rejected">DASHBOARD_REJECTED</span></div><div class="d-flex justify-center">DASHBOARD_REJECTED_SUBFILTER</div></div>';
|
|
4415
|
+
html += '<div part="badge-dashboard" id="chip-completeness-3" class="chip stat-completeness d-flex flex-col align-start mr-10 mb-10 no-shrink"><div class="d-flex justify-center"><span class="material-symbols-outlined color-done">check_circle</span> <span>Approved:</span> <span id="graph-approved">DASHBOARD_APPROVED</span></div><div class="d-flex justify-center">DASHBOARD_APPROVED_SUBFILTER</div></div>';
|
|
4416
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-0" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-in-time">schedule</span> <span>In Time:</span> <span id="graph-in-time">DASHBOARD_IN_TIME</span></div>';
|
|
4417
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-1" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-past-due-date">timer</span> <span>Past Due Date:</span> <span id="graph-past-due-date">DASHBOARD_PAST_DUE_DATE</span></div>';
|
|
4418
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-2" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-late-reported">report_off</span> <span>Late Reported:</span> <span id="graph-late-reported">DASHBOARD_LATE_REPORTED</span></div>';
|
|
4419
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-3" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-late-approved">remove_done</span> <span>Late Approved:</span> <span id="graph-late-approved">DASHBOARD_LATE_APPROVED</span></div>';
|
|
4420
|
+
html += '<div part="badge-dashboard" id="chip-timeliness-4" class="chip stat-timeliness justify-center align-center mr-10 mb-10 no-shrink late-statuses"><span class="material-icons color-late-executed">running_with_errors</span> <span>Late Executed:</span> <span id="graph-late-executed">DASHBOARD_LATE_EXECUTED</span></div>';
|
|
4421
|
+
|
|
4422
|
+
html += '<div part="badge-dashboard" id="chip-compliance-0" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-icons color-scheduled">schedule</span> <span>Scheduled:</span> <span id="graph-scheduled">DASHBOARD_SCHEDULED</span></div>';
|
|
4423
|
+
html += '<div part="badge-dashboard" id="chip-compliance-1" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-icons color-not-complied">disabled_by_default</span> <span>Not Complied:</span> <span id="graph-not-complied">DASHBOARD_NOT_COMPLIED</span></div>';
|
|
4424
|
+
html += '<div part="badge-dashboard" id="chip-compliance-2" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-icons color-partially-complied">rule</span> <span>Partially Complied:</span> <span id="graph-partially-complied">DASHBOARD_PARTIALLY_COMPLIED</span></div>';
|
|
4425
|
+
html += '<div part="badge-dashboard" id="chip-compliance-3" class="chip stat-compliance justify-center align-center mr-10 mb-10 no-shrink compliance-statuses"><span class="material-symbols-outlined color-complied">sweep</span> <span>Complied:</span> <span id="graph-complied">DASHBOARD_COMPLIED</span></div>';
|
|
4426
|
+
html += '</div>';
|
|
4427
|
+
|
|
4428
|
+
html += '<div id="stream-event-filter" part="stream-event-total" class="d-flex flex-wrap"></div>';
|
|
4429
|
+
|
|
4430
|
+
return html;
|
|
4431
|
+
|
|
4432
|
+
}
|
|
4407
4433
|
renderStatisticsFiltersTableStart = () => {
|
|
4408
4434
|
|
|
4409
4435
|
var html = '';
|
|
@@ -4433,7 +4459,7 @@ export class SfIEvents extends LitElement {
|
|
|
4433
4459
|
renderStatisticsFiltersTableEnd = () => {
|
|
4434
4460
|
|
|
4435
4461
|
var html = '';
|
|
4436
|
-
html += '</tbody></table
|
|
4462
|
+
html += '</tbody></table></div>';
|
|
4437
4463
|
|
|
4438
4464
|
return html;
|
|
4439
4465
|
|
|
@@ -5099,7 +5125,13 @@ export class SfIEvents extends LitElement {
|
|
|
5099
5125
|
|
|
5100
5126
|
renderStatistics = (_firstDay: any, _endDay: any, iInit: number, iLast: number, showGraph: boolean, index: number, month: number, period: string, firstDate: any = null, parametersTitle: string) => {
|
|
5101
5127
|
var total = 0, notStarted = 0, approved = 0, pendingApproval = 0, rejected = 0;
|
|
5128
|
+
let subfiltersTotal:any = {}
|
|
5129
|
+
let subfiltersNotStarted:any = {}
|
|
5130
|
+
let subfiltersPendingApproval:any = {}
|
|
5131
|
+
let subfiltersRejected:any = {}
|
|
5132
|
+
let subfiltersApproved:any = {}
|
|
5102
5133
|
var html = '';
|
|
5134
|
+
|
|
5103
5135
|
// var lastDay = iLast;
|
|
5104
5136
|
// var slice = 2;
|
|
5105
5137
|
this.clearGraphData();
|
|
@@ -5108,7 +5140,7 @@ export class SfIEvents extends LitElement {
|
|
|
5108
5140
|
|
|
5109
5141
|
html += this.renderCalendarStatisticsGraphs(showGraph, parametersTitle);
|
|
5110
5142
|
html += this.renderCalendarContainerDivStart(index)
|
|
5111
|
-
html += this.
|
|
5143
|
+
html += this.renderCalendarEventSummaryViewer();
|
|
5112
5144
|
let filtersTableHtml = ""
|
|
5113
5145
|
if(Object.keys(this.statisticsFiltersData).length > 0){
|
|
5114
5146
|
filtersTableHtml += this.renderStatisticsFiltersTableStart()
|
|
@@ -5146,7 +5178,40 @@ export class SfIEvents extends LitElement {
|
|
|
5146
5178
|
pendingApproval += this.statistics[mmdd]["pending-approval"] ?? 0;
|
|
5147
5179
|
rejected += this.statistics[mmdd]["rejected"] ?? 0;
|
|
5148
5180
|
approved += this.statistics[mmdd]["approved"] ?? 0;
|
|
5149
|
-
|
|
5181
|
+
for(let subfilter of Object.keys(this.statistics['subfilters'])){
|
|
5182
|
+
if(subfiltersTotal[subfilter] == null){
|
|
5183
|
+
subfiltersTotal[subfilter] = 0
|
|
5184
|
+
}
|
|
5185
|
+
if(subfiltersNotStarted[subfilter] == null){
|
|
5186
|
+
subfiltersNotStarted[subfilter] = 0
|
|
5187
|
+
}
|
|
5188
|
+
if(subfiltersPendingApproval[subfilter] == null){
|
|
5189
|
+
subfiltersPendingApproval[subfilter] = 0
|
|
5190
|
+
}
|
|
5191
|
+
if(subfiltersRejected[subfilter] == null){
|
|
5192
|
+
subfiltersRejected[subfilter] = 0
|
|
5193
|
+
}
|
|
5194
|
+
if(subfiltersApproved[subfilter] == null){
|
|
5195
|
+
subfiltersApproved[subfilter] = 0
|
|
5196
|
+
}
|
|
5197
|
+
if(this.statistics['subfilters'][subfilter][mmdd] != null){
|
|
5198
|
+
|
|
5199
|
+
|
|
5200
|
+
subfiltersTotal[subfilter] += (this.statistics['subfilters'][subfilter][mmdd].count)
|
|
5201
|
+
|
|
5202
|
+
|
|
5203
|
+
subfiltersNotStarted[subfilter] += (this.statistics['subfilters'][subfilter][mmdd]['not-started'] ?? 0)
|
|
5204
|
+
|
|
5205
|
+
|
|
5206
|
+
subfiltersPendingApproval[subfilter] += (this.statistics['subfilters'][subfilter][mmdd]['pending-approval'] ?? 0)
|
|
5207
|
+
|
|
5208
|
+
|
|
5209
|
+
subfiltersRejected[subfilter] += (this.statistics['subfilters'][subfilter][mmdd]['rejected'] ?? 0)
|
|
5210
|
+
|
|
5211
|
+
|
|
5212
|
+
subfiltersApproved[subfilter] += (this.statistics['subfilters'][subfilter][mmdd]['approved'] ?? 0)
|
|
5213
|
+
}
|
|
5214
|
+
}
|
|
5150
5215
|
}
|
|
5151
5216
|
|
|
5152
5217
|
|
|
@@ -5159,6 +5224,11 @@ export class SfIEvents extends LitElement {
|
|
|
5159
5224
|
let filtername = filterval.split(';')[0]
|
|
5160
5225
|
let filterid = filterval.split(';')[1]
|
|
5161
5226
|
let filterTotal = 0, filterNotStarted = 0, filterPendingApproval = 0, filterRejected = 0, filterApproved = 0;
|
|
5227
|
+
let subfiltersFilterTotal:any = {}
|
|
5228
|
+
let subfiltersFilterNotStarted:any = {}
|
|
5229
|
+
let subfiltersFilterPendingApproval:any = {}
|
|
5230
|
+
let subfiltersFilterRejected:any = {}
|
|
5231
|
+
let subfiltersFilterApproved:any = {}
|
|
5162
5232
|
for(var i = iInit; i <= iLast; i++) {
|
|
5163
5233
|
|
|
5164
5234
|
let mmdd : string = "";
|
|
@@ -5177,6 +5247,36 @@ export class SfIEvents extends LitElement {
|
|
|
5177
5247
|
filterPendingApproval += this.statisticsFiltersData[filtercriteria][filterid][mmdd]['pending-approval'] ?? 0
|
|
5178
5248
|
filterRejected += this.statisticsFiltersData[filtercriteria][filterid][mmdd]['rejected'] ?? 0
|
|
5179
5249
|
filterApproved += this.statisticsFiltersData[filtercriteria][filterid][mmdd]['approved'] ?? 0
|
|
5250
|
+
for(let subfilter of Object.keys(this.statisticsFiltersData[filtercriteria][filterid]['subfilters'])){
|
|
5251
|
+
if(subfiltersFilterTotal[subfilter] == null){
|
|
5252
|
+
subfiltersFilterTotal[subfilter] = 0
|
|
5253
|
+
}
|
|
5254
|
+
if(subfiltersFilterNotStarted[subfilter] == null){
|
|
5255
|
+
subfiltersFilterNotStarted[subfilter] = 0
|
|
5256
|
+
}
|
|
5257
|
+
if(subfiltersFilterPendingApproval[subfilter] == null){
|
|
5258
|
+
subfiltersFilterPendingApproval[subfilter] = 0
|
|
5259
|
+
}
|
|
5260
|
+
if(subfiltersFilterRejected[subfilter] == null){
|
|
5261
|
+
subfiltersFilterRejected[subfilter] = 0
|
|
5262
|
+
}
|
|
5263
|
+
if(subfiltersFilterApproved[subfilter] == null){
|
|
5264
|
+
subfiltersFilterApproved[subfilter] = 0
|
|
5265
|
+
}
|
|
5266
|
+
if(this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd] != null){
|
|
5267
|
+
|
|
5268
|
+
subfiltersFilterTotal[subfilter] += (this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd].count)
|
|
5269
|
+
console.log('subfilterTotal',subfiltersFilterTotal);
|
|
5270
|
+
|
|
5271
|
+
subfiltersFilterNotStarted[subfilter] += (this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['not-started'] ?? 0)
|
|
5272
|
+
|
|
5273
|
+
subfiltersFilterPendingApproval[subfilter] += (this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['pending-approval'] ?? 0)
|
|
5274
|
+
|
|
5275
|
+
subfiltersFilterRejected[subfilter] += (this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['rejected'] ?? 0)
|
|
5276
|
+
|
|
5277
|
+
subfiltersFilterApproved[subfilter] += (this.statisticsFiltersData[filtercriteria][filterid]['subfilters'][subfilter][mmdd]['approved'] ?? 0)
|
|
5278
|
+
}
|
|
5279
|
+
}
|
|
5180
5280
|
}
|
|
5181
5281
|
}
|
|
5182
5282
|
}
|
|
@@ -5188,11 +5288,24 @@ export class SfIEvents extends LitElement {
|
|
|
5188
5288
|
}
|
|
5189
5289
|
filtersTableHtml = filtersTableHtml.replace("FILTER_CRITERIA_NAME", filtercriteria+"");
|
|
5190
5290
|
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_FILTER_NAME", (filtername+"").replace(/\([^)]*\)/g,""));
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5291
|
+
let filterTotalHtml = filterTotal + ""
|
|
5292
|
+
let filterNotStartedHtml = filterNotStarted + Util.percentageString(filterNotStarted, filterTotal)
|
|
5293
|
+
let filterPendingApprovalHtml = filterPendingApproval + Util.percentageString(filterPendingApproval, filterTotal)
|
|
5294
|
+
let filterRejectedHtml = filterRejected + Util.percentageString(filterRejected, filterTotal)
|
|
5295
|
+
let filterApprovedHtml = filterApproved + Util.percentageString(filterApproved, filterTotal)
|
|
5296
|
+
for(let subfilter of Object.keys(this.statisticsFiltersData[filtercriteria][filterid]['subfilters'])){
|
|
5297
|
+
filterTotalHtml += `<br />${subfilter}: ${subfiltersFilterTotal[subfilter]}${Util.percentageString(subfiltersFilterTotal[subfilter], filterTotal)}`
|
|
5298
|
+
filterNotStartedHtml += `<br />${subfilter}: ${subfiltersFilterNotStarted[subfilter]}${Util.percentageString(subfiltersFilterNotStarted[subfilter], filterNotStarted)}`
|
|
5299
|
+
filterPendingApprovalHtml += `<br />${subfilter}: ${subfiltersFilterPendingApproval[subfilter]}${Util.percentageString(subfiltersFilterPendingApproval[subfilter], filterPendingApproval)}`
|
|
5300
|
+
filterRejectedHtml += `<br />${subfilter}: ${subfiltersFilterRejected[subfilter]}${Util.percentageString(subfiltersFilterRejected[subfilter], filterRejected)}`
|
|
5301
|
+
filterApprovedHtml += `<br />${subfilter}: ${subfiltersFilterApproved[subfilter]}${Util.percentageString(subfiltersFilterApproved[subfilter], filterApproved)}`
|
|
5302
|
+
}
|
|
5303
|
+
console.log('subfilterstotal', subfiltersFilterTotal)
|
|
5304
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_TOTAL", filterTotalHtml);
|
|
5305
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_NOT_STARTED", filterNotStartedHtml);
|
|
5306
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_APPROVED", filterApprovedHtml);
|
|
5307
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_PENDING_APPROVAL", filterPendingApprovalHtml);
|
|
5308
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_REJECTED", filterRejectedHtml);
|
|
5196
5309
|
}
|
|
5197
5310
|
filtersTableHtml += this.renderStatisticsFiltersTableEnd()
|
|
5198
5311
|
}
|
|
@@ -5208,14 +5321,31 @@ export class SfIEvents extends LitElement {
|
|
|
5208
5321
|
|
|
5209
5322
|
console.log('progress', this.period, total, notStarted, approved, this.statistics)
|
|
5210
5323
|
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5324
|
+
let totalHtml = ""
|
|
5325
|
+
let notStartedHtml = ""
|
|
5326
|
+
let pendingApprovalHtml = ""
|
|
5327
|
+
let rejectedHtml = ""
|
|
5328
|
+
let approvedHtml = ""
|
|
5329
|
+
for(let subfilter of Object.keys(this.statistics['subfilters'])){
|
|
5330
|
+
totalHtml += `<br />${subfilter}: ${subfiltersTotal[subfilter]}${Util.percentageString(subfiltersTotal[subfilter], total)}`
|
|
5331
|
+
notStartedHtml += `<br />${subfilter}: ${subfiltersNotStarted[subfilter]}${Util.percentageString(subfiltersNotStarted[subfilter], notStarted)}`
|
|
5332
|
+
pendingApprovalHtml += `<br />${subfilter}: ${subfiltersPendingApproval[subfilter]}${Util.percentageString(subfiltersPendingApproval[subfilter], pendingApproval)}`
|
|
5333
|
+
rejectedHtml += `<br />${subfilter}: ${subfiltersRejected[subfilter]}${Util.percentageString(subfiltersRejected[subfilter], rejected)}`
|
|
5334
|
+
approvedHtml += `<br />${subfilter}: ${subfiltersApproved[subfilter]}${Util.percentageString(subfiltersApproved[subfilter], approved)}`
|
|
5335
|
+
}
|
|
5336
|
+
html = html.replace("DASHBOARD_TOTAL", total + "");
|
|
5337
|
+
html = html.replace("DASHBOARD_TOTAL_SUBFILTER", totalHtml.replace('<br />',''));
|
|
5338
|
+
html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
|
|
5339
|
+
html = html.replace("DASHBOARD_NOT_STARTED_SUBFILTER", notStartedHtml.replace('<br />',''));
|
|
5340
|
+
html = html.replace("DASHBOARD_APPROVED", approved + "");
|
|
5341
|
+
html = html.replace("DASHBOARD_APPROVED_SUBFILTER", approvedHtml.replace('<br />',''));
|
|
5342
|
+
html = html.replace("DASHBOARD_PENDING_APPROVAL", pendingApproval + "");
|
|
5343
|
+
html = html.replace("DASHBOARD_PENDING_APPROVAL_SUBFILTER", pendingApprovalHtml.replace('<br />',''));
|
|
5344
|
+
html = html.replace("DASHBOARD_REJECTED", rejected + "");
|
|
5345
|
+
html = html.replace("DASHBOARD_REJECTED_SUBFILTER", rejectedHtml.replace('<br />',''));
|
|
5216
5346
|
|
|
5217
5347
|
this.htmlDataStats = 'Completeness<br /><br /><table class="w-100"><tr><th class="w-14">Total</th><th class="w-14">Not Started</th><th class="w-14">Approved</th><th class="w-14">Pending Approval</th><th class="w-14">Rejected</th><tr>';
|
|
5218
|
-
this.htmlDataStats += '<tr><td class="w-14 text-center td-odd">'+total+'</td><td class="w-14 text-center td-odd">'+notStarted+'</td><td class="w-14 text-center td-odd">'+approved+'</td><td class="w-14 text-center td-odd">'+pendingApproval+'</td><td class="w-14 text-center td-odd">'+rejected+'</td></table>'
|
|
5348
|
+
this.htmlDataStats += '<tr><td class="w-14 text-center td-odd">'+total+totalHtml+'</td><td class="w-14 text-center td-odd">'+notStarted+notStartedHtml+'</td><td class="w-14 text-center td-odd">'+approved+approvedHtml+'</td><td class="w-14 text-center td-odd">'+pendingApproval+pendingApprovalHtml+'</td><td class="w-14 text-center td-odd">'+rejected+rejectedHtml+'</td></table>'
|
|
5219
5349
|
if(Object.keys(this.statisticsFiltersData).length > 0){
|
|
5220
5350
|
this.htmlDataStats += '<br /><br />Report<br /><br />'
|
|
5221
5351
|
this.htmlDataStats += filtersTableHtml
|
|
@@ -6979,10 +7109,14 @@ export class SfIEvents extends LitElement {
|
|
|
6979
7109
|
}
|
|
6980
7110
|
|
|
6981
7111
|
for(let criteria of Object.keys(this.statisticsMeta)){
|
|
7112
|
+
if(criteria == "subfilters"){
|
|
7113
|
+
continue;
|
|
7114
|
+
}
|
|
6982
7115
|
let option = new Option()
|
|
6983
7116
|
option.value = criteria;
|
|
6984
7117
|
console.log('statistics filters criteria',criteria, filterscriteria, criteria == filterscriteria)
|
|
6985
7118
|
option.selected = (criteria == filterscriteria)
|
|
7119
|
+
|
|
6986
7120
|
if(criteria == "reporter" || criteria == "approver" || criteria == "functionhead"){
|
|
6987
7121
|
option.innerHTML = "user:" + criteria
|
|
6988
7122
|
}else{
|
|
@@ -7006,7 +7140,10 @@ export class SfIEvents extends LitElement {
|
|
|
7006
7140
|
let inputLabelCriteria = eventsContainer.querySelector('#input-label-criteria') as HTMLLabelElement
|
|
7007
7141
|
let selectFilterValues = eventsContainer.querySelector('#select-filter-values') as HTMLSelectElement
|
|
7008
7142
|
selectFilterValues.value = ""
|
|
7009
|
-
|
|
7143
|
+
let inputLabelSubfilters = eventsContainer.querySelector('#input-label-subfilter') as HTMLLabelElement
|
|
7144
|
+
let selectSubfilterCriteria = eventsContainer.querySelector('#select-subfilter-criteria') as HTMLSelectElement
|
|
7145
|
+
selectSubfilterCriteria.value = ""
|
|
7146
|
+
|
|
7010
7147
|
|
|
7011
7148
|
selectFilterValues.innerHTML = ""
|
|
7012
7149
|
let option = new Option()
|
|
@@ -7029,10 +7166,37 @@ export class SfIEvents extends LitElement {
|
|
|
7029
7166
|
console.log('changed')
|
|
7030
7167
|
this.processDateSelectionViewer(eventsContainer);
|
|
7031
7168
|
})
|
|
7169
|
+
selectSubfilterCriteria.style.display = 'block'
|
|
7170
|
+
inputLabelSubfilters.style.display = 'block'
|
|
7171
|
+
let sortedSubfilters = Util.alphabeticalSort(Object.keys(this.statisticsMeta.subfilters))
|
|
7172
|
+
|
|
7173
|
+
if(sortedSubfilters.length > 1){
|
|
7174
|
+
let option = new Option()
|
|
7175
|
+
option.value = "";
|
|
7176
|
+
option.innerHTML = "All";
|
|
7177
|
+
selectSubfilterCriteria.add(option)
|
|
7178
|
+
}
|
|
7179
|
+
for(let subfilter of sortedSubfilters){
|
|
7180
|
+
let option = new Option()
|
|
7181
|
+
option.value = subfilter;
|
|
7182
|
+
option.innerHTML = subfilter
|
|
7183
|
+
selectSubfilterCriteria.add(option)
|
|
7184
|
+
}
|
|
7185
|
+
let inputLabelSubfiltersValue = eventsContainer.querySelector('#input-label-subfilter-value') as HTMLLabelElement
|
|
7186
|
+
let selectSubfilterValues = eventsContainer.querySelector('#select-subfilter-values') as HTMLSelectElement
|
|
7187
|
+
inputLabelSubfiltersValue.style.display = 'none'
|
|
7188
|
+
selectSubfilterValues.style.display = 'none'
|
|
7189
|
+
let selectSubfilterCriteriaNew = Util.clearListeners(selectSubfilterCriteria)
|
|
7190
|
+
selectSubfilterCriteriaNew.addEventListener('change',() => {
|
|
7191
|
+
this.processDateSelectionViewer(eventsContainer)
|
|
7192
|
+
})
|
|
7032
7193
|
}else{
|
|
7033
7194
|
selectFilterValues.style.display = 'none'
|
|
7034
7195
|
inputLabelCriteria.style.display = 'none'
|
|
7196
|
+
selectSubfilterCriteria.style.display = 'none'
|
|
7197
|
+
inputLabelSubfilters.style.display = 'none'
|
|
7035
7198
|
}
|
|
7199
|
+
this.processDateSelectionViewer(eventsContainer)
|
|
7036
7200
|
})
|
|
7037
7201
|
let selectFilterCriteriaMobileNew = Util.clearListeners(selectFilterCriteriaMobile)
|
|
7038
7202
|
selectFilterCriteriaMobileNew.addEventListener('change',(ev: any) => {
|
|
@@ -7541,7 +7705,6 @@ export class SfIEvents extends LitElement {
|
|
|
7541
7705
|
//console.log('valueend', valueEnd);
|
|
7542
7706
|
let filtercriteria = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria') as HTMLSelectElement).value
|
|
7543
7707
|
let filtercriterianame = ""
|
|
7544
|
-
console.log('criteria', ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria') as HTMLSelectElement).selectedIndex]);
|
|
7545
7708
|
if(((this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria') as HTMLSelectElement).selectedIndex] != null){
|
|
7546
7709
|
filtercriterianame = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria') as HTMLSelectElement).selectedIndex].innerHTML
|
|
7547
7710
|
}
|
|
@@ -7571,6 +7734,31 @@ export class SfIEvents extends LitElement {
|
|
|
7571
7734
|
this.htmlStatsFilter = "Filters Selected -> " + Util.titleCase(filtercriterianame) + " -> " + Util.titleCase(filtervaluename)
|
|
7572
7735
|
}
|
|
7573
7736
|
}
|
|
7737
|
+
|
|
7738
|
+
let subfiltervalue = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values') as HTMLSelectElement).value
|
|
7739
|
+
let subfiltervaluename = ""
|
|
7740
|
+
if(((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values') as HTMLSelectElement).selectedIndex] != null){
|
|
7741
|
+
subfiltervaluename = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values') as HTMLSelectElement).selectedIndex].innerHTML
|
|
7742
|
+
}
|
|
7743
|
+
if(subfiltervalue == ""){
|
|
7744
|
+
subfiltervalue = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values-mobile') as HTMLSelectElement).value
|
|
7745
|
+
if(((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values-mobile') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values-mobile') as HTMLSelectElement).selectedIndex] != null){
|
|
7746
|
+
subfiltervaluename = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values-mobile') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values-mobile') as HTMLSelectElement).selectedIndex].innerHTML
|
|
7747
|
+
}
|
|
7748
|
+
}
|
|
7749
|
+
console.log('subfiltervalue, subfiltervaluename', subfiltervalue, subfiltervaluename)
|
|
7750
|
+
let subfiltercriteria = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria') as HTMLSelectElement).value
|
|
7751
|
+
let subfiltercriterianame = ""
|
|
7752
|
+
if(((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria') as HTMLSelectElement).selectedIndex] != null){
|
|
7753
|
+
subfiltercriterianame = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria') as HTMLSelectElement).selectedIndex].innerHTML
|
|
7754
|
+
}
|
|
7755
|
+
if(subfiltercriteria == ""){
|
|
7756
|
+
subfiltercriteria = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria-mobile') as HTMLSelectElement).value
|
|
7757
|
+
if(((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria-mobile') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria-mobile') as HTMLSelectElement).selectedIndex] != null){
|
|
7758
|
+
subfiltercriterianame = ((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria-mobile') as HTMLSelectElement).options[((this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria-mobile') as HTMLSelectElement).selectedIndex].innerHTML
|
|
7759
|
+
}
|
|
7760
|
+
}
|
|
7761
|
+
console.log('subfiltercriteria, subfiltercriterianame', subfiltercriteria, subfiltercriterianame)
|
|
7574
7762
|
if(valueStart != "" && valueEnd != "") {
|
|
7575
7763
|
this.initCustomRightColViewer();
|
|
7576
7764
|
if(!this.checkStartDateEarliness(valueStart)) {
|
|
@@ -7597,7 +7785,7 @@ export class SfIEvents extends LitElement {
|
|
|
7597
7785
|
//console.log('tsstart', tsStart);
|
|
7598
7786
|
//console.log('tsend', tsEnd);
|
|
7599
7787
|
|
|
7600
|
-
let meta = await this.fetchStatistics((tsStart.getMonth() + 1) + "/" + tsStart.getDate() + "/" + tsStart.getFullYear(), (tsEnd.getMonth() + 1) + "/" + tsEnd.getDate() + "/" + tsEnd.getFullYear(), filtercriteria, filtervalue);
|
|
7788
|
+
let meta = await this.fetchStatistics((tsStart.getMonth() + 1) + "/" + tsStart.getDate() + "/" + tsStart.getFullYear(), (tsEnd.getMonth() + 1) + "/" + tsEnd.getDate() + "/" + tsEnd.getFullYear(), filtercriteria, filtervalue, subfiltercriteria, subfiltervalue);
|
|
7601
7789
|
this.renderRangeStatistics(new Date(valueStart), ((new Date(valueEnd).getTime()+24*60*60*1000) - new Date(valueStart).getTime())/(1000*60*60*24), (this._SfCustomContainer as HTMLDivElement));
|
|
7602
7790
|
|
|
7603
7791
|
if(meta != null) this.renderStatisticsFilters((this._SfCustomContainer as HTMLDivElement))
|
|
@@ -9678,6 +9866,16 @@ export class SfIEvents extends LitElement {
|
|
|
9678
9866
|
html += '<label part="input-label-filter-value" id="input-label-criteria-mobile"></label>'
|
|
9679
9867
|
html += '<select id="select-filter-values-mobile"></select>'
|
|
9680
9868
|
html += '</div>';
|
|
9869
|
+
|
|
9870
|
+
html += '<div class="title-item-date">';
|
|
9871
|
+
html += '<label part="input-label-subfilter-criteria" id="input-label-subfilter-mobile">Subfilter Criteria</label>'
|
|
9872
|
+
html += '<select id="select-subfilter-criteria-mobile"></select>'
|
|
9873
|
+
html += '</div>';
|
|
9874
|
+
html += '<div class="title-item-date">';
|
|
9875
|
+
html += '<label part="input-label-subfilter-value" id="input-label-subfilter-value-mobile"></label>'
|
|
9876
|
+
html += '<select id="select-subfilter-values-mobile"></select>'
|
|
9877
|
+
html += '</div>';
|
|
9878
|
+
|
|
9681
9879
|
|
|
9682
9880
|
html += '</div>';
|
|
9683
9881
|
|
|
@@ -9709,6 +9907,15 @@ export class SfIEvents extends LitElement {
|
|
|
9709
9907
|
html += '<label part="input-label-filter-value" id="input-label-criteria"></label>'
|
|
9710
9908
|
html += '<select part="input-select-calendar-filter" id="select-filter-values"></select>'
|
|
9711
9909
|
html += '</div>';
|
|
9910
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
9911
|
+
html += '<label part="input-label-subfilter-criteria" id="input-label-subfilter">Subfilter Criteria</label>'
|
|
9912
|
+
html += '<select part="input-select-calendar-subfilter" id="select-subfilter-criteria"></select>'
|
|
9913
|
+
html += '</div>';
|
|
9914
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
9915
|
+
html += '<label part="input-label-subfilter-value" id="input-label-subfilter-value"></label>'
|
|
9916
|
+
html += '<select part="input-select-calendar-subfilter" id="select-subfilter-values"></select>'
|
|
9917
|
+
|
|
9918
|
+
html += '</div>';
|
|
9712
9919
|
|
|
9713
9920
|
|
|
9714
9921
|
html += '</div>';
|
|
@@ -9851,6 +10058,12 @@ export class SfIEvents extends LitElement {
|
|
|
9851
10058
|
selectFilterValues.style.display = 'none'
|
|
9852
10059
|
let inputLabelFilter = (this._SfCustomContainer as HTMLDivElement).querySelector('#input-label-filter') as HTMLLabelElement
|
|
9853
10060
|
inputLabelFilter.style.display = 'none';
|
|
10061
|
+
let selectSubfilterCriteria = (this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria') as HTMLSelectElement
|
|
10062
|
+
selectSubfilterCriteria.style.display = 'none'
|
|
10063
|
+
let selectSubfilterValues = (this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values') as HTMLSelectElement
|
|
10064
|
+
selectSubfilterValues.style.display = 'none'
|
|
10065
|
+
let inputLabelSubfilter = (this._SfCustomContainer as HTMLDivElement).querySelector('#input-label-subfilter') as HTMLLabelElement
|
|
10066
|
+
inputLabelSubfilter.style.display = 'none';
|
|
9854
10067
|
|
|
9855
10068
|
let selectFilterCriteriaMobile = (this._SfCustomContainer as HTMLDivElement).querySelector('#select-filter-criteria-mobile') as HTMLSelectElement
|
|
9856
10069
|
selectFilterCriteriaMobile.style.display = 'none'
|
|
@@ -9858,6 +10071,12 @@ export class SfIEvents extends LitElement {
|
|
|
9858
10071
|
selectFilterValuesMobile.style.display = 'none'
|
|
9859
10072
|
let inputLabelFilterMobile = (this._SfCustomContainer as HTMLDivElement).querySelector('#input-label-filter-mobile') as HTMLLabelElement
|
|
9860
10073
|
inputLabelFilterMobile.style.display = 'none';
|
|
10074
|
+
let selectSubfilterCriteriaMobile = (this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-criteria-mobile') as HTMLSelectElement
|
|
10075
|
+
selectSubfilterCriteriaMobile.style.display = 'none'
|
|
10076
|
+
let selectSubfilterValuesMobile = (this._SfCustomContainer as HTMLDivElement).querySelector('#select-subfilter-values-mobile') as HTMLSelectElement
|
|
10077
|
+
selectSubfilterValuesMobile.style.display = 'none'
|
|
10078
|
+
let inputLabelSubfilterMobile = (this._SfCustomContainer as HTMLDivElement).querySelector('#input-label-subfilter-mobile') as HTMLLabelElement
|
|
10079
|
+
inputLabelSubfilterMobile.style.display = 'none';
|
|
9861
10080
|
|
|
9862
10081
|
((this._SfCustomContainer as HTMLDivElement).querySelector('#button-year-to-date') as HTMLButtonElement).click();
|
|
9863
10082
|
}
|
|
@@ -23839,7 +24058,7 @@ export class SfIEvents extends LitElement {
|
|
|
23839
24058
|
|
|
23840
24059
|
}
|
|
23841
24060
|
|
|
23842
|
-
fetchStatistics = async(startDate: string = "", endDate: string = "", filtercriteria: string, filterid: string) => {
|
|
24061
|
+
fetchStatistics = async(startDate: string = "", endDate: string = "", filtercriteria: string, filterid: string, subfiltercriteria: string, subfilterid: string) => {
|
|
23843
24062
|
|
|
23844
24063
|
let path = "";
|
|
23845
24064
|
this.sdate = startDate;
|
|
@@ -23869,7 +24088,7 @@ export class SfIEvents extends LitElement {
|
|
|
23869
24088
|
}
|
|
23870
24089
|
|
|
23871
24090
|
//console.log('fetch calendar url', url);
|
|
23872
|
-
let urlBody :any = {"projectid": this.projectId, "userid": this.userProfileId, "role": this.myRole, "sdate": sDate, "edate": eDate,"filtercriteria": filtercriteria};
|
|
24091
|
+
let urlBody :any = {"projectid": this.projectId, "userid": this.userProfileId, "role": this.myRole, "sdate": sDate, "edate": eDate,"filtercriteria": filtercriteria, "subfiltercriteria":subfiltercriteria, "subfilterid": subfilterid};
|
|
23873
24092
|
|
|
23874
24093
|
if(filtercriteria == 'function') {
|
|
23875
24094
|
urlBody["functionid"] = filterid;
|