From 02891dbb9a9d1123f7cd0ca2414fd6014599aec1 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 26 Jun 2024 10:11:02 +0100 Subject: [PATCH] ITOTEAM-530 Inform the user how many days are left until the end of the wind for each selected day --- gabinete-digital-fo.code-workspace | 3 + package-lock.json | 152 ++++++++++-------- package.json | 1 + src/app/home/home.page.ts | 4 +- src/app/pages/agenda/agenda.page.html | 10 +- src/app/pages/search/search.page.html | 2 +- src/app/pages/search/search.page.scss | 2 +- src/app/services/agenda/list-box.service.ts | 28 +++- .../services/logger/log4js/logging.service.ts | 46 ++++++ .../capture-log/capture-log.service.ts | 11 +- .../monitoring/capture-log/worker.worker.ts | 32 ++-- .../monitoring/opentelemetry/matrix.ts | 3 +- .../monitoring/opentelemetry/tracer.ts | 2 +- .../agenda/edit-event/edit-event.page.ts | 6 +- .../agenda/view-event/view-event.page.html | 3 + .../agenda/view-event/view-event.page.ts | 41 ++++- src/app/store/calendar.service.ts | 6 +- version/git-version.ts | 12 +- 18 files changed, 246 insertions(+), 118 deletions(-) create mode 100644 src/app/services/logger/log4js/logging.service.ts diff --git a/gabinete-digital-fo.code-workspace b/gabinete-digital-fo.code-workspace index 9ea28d270..ef69354cc 100644 --- a/gabinete-digital-fo.code-workspace +++ b/gabinete-digital-fo.code-workspace @@ -11,6 +11,9 @@ }, { "path": "../../../Downloads/opentelemetry-js-main/opentelemetry-js-main" + }, + { + "path": "../grayLog" } ], "settings": { diff --git a/package-lock.json b/package-lock.json index d30077b9d..4855cc62a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -163,6 +163,7 @@ "ionicons": "^5.5.3", "jest-puppeteer": "^7.0.1", "lite-server": "^2.6.1", + "log4js": "^6.9.1", "minisearch": "^6.0.1", "moment": "^2.29.3", "neverthrow": "^6.1.0", @@ -14522,10 +14523,9 @@ } }, "node_modules/date-format": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.11.tgz", - "integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==", - "dev": true, + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "engines": { "node": ">=4.0" } @@ -17063,10 +17063,9 @@ } }, "node_modules/flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" }, "node_modules/flatten": { "version": "1.0.3", @@ -26587,16 +26586,15 @@ } }, "node_modules/log4js": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.5.2.tgz", - "integrity": "sha512-DXtpNtt+KDOMT7RHUDIur/WsSA3rntlUh9Zg4XCdV42wUuMmbFkl38+LZ92Z5QvQA7mD5kAVkLiBSEH/tvUB8A==", - "dev": true, + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dependencies": { - "date-format": "^4.0.10", + "date-format": "^4.0.14", "debug": "^4.3.4", - "flatted": "^3.2.5", + "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.1.1" + "streamroller": "^3.1.5" }, "engines": { "node": ">=8.0" @@ -26606,7 +26604,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -33376,8 +33373,7 @@ "node_modules/rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, "node_modules/right-align": { "version": "0.1.3", @@ -35535,24 +35531,22 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/streamroller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz", - "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", - "dev": true, + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dependencies": { - "date-format": "^4.0.10", + "date-format": "^4.0.14", "debug": "^4.3.4", - "fs-extra": "^10.1.0" + "fs-extra": "^8.1.0" }, "engines": { "node": ">=8.0" } }, "node_modules/streamroller/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dependencies": { "ms": "2.1.2" }, @@ -35566,17 +35560,32 @@ } }, "node_modules/streamroller/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=12" + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" } }, "node_modules/string_decoder": { @@ -55162,10 +55171,9 @@ "integrity": "sha512-6ujwvwgPID6zbI0o7UbURi2vlLDR9uP26+tW6Lg+Ji3w7dd0i3DOcjcClLjLPranT60SSEFBwdSyYwn/ZkPIuw==" }, "date-format": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.11.tgz", - "integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==", - "dev": true + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==" }, "dayjs": { "version": "1.11.8", @@ -57117,10 +57125,9 @@ } }, "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" }, "flatten": { "version": "1.0.3", @@ -64567,23 +64574,21 @@ } }, "log4js": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.5.2.tgz", - "integrity": "sha512-DXtpNtt+KDOMT7RHUDIur/WsSA3rntlUh9Zg4XCdV42wUuMmbFkl38+LZ92Z5QvQA7mD5kAVkLiBSEH/tvUB8A==", - "dev": true, + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "requires": { - "date-format": "^4.0.10", + "date-format": "^4.0.14", "debug": "^4.3.4", - "flatted": "^3.2.5", + "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.1.1" + "streamroller": "^3.1.5" }, "dependencies": { "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -69731,8 +69736,7 @@ "rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, "right-align": { "version": "0.1.3", @@ -71425,35 +71429,45 @@ } }, "streamroller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz", - "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", - "dev": true, + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "requires": { - "date-format": "^4.0.10", + "date-format": "^4.0.14", "debug": "^4.3.4", - "fs-extra": "^10.1.0" + "fs-extra": "^8.1.0" }, "dependencies": { "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "requires": { "ms": "2.1.2" } }, "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" } } }, diff --git a/package.json b/package.json index 74a414585..97b4363f7 100644 --- a/package.json +++ b/package.json @@ -179,6 +179,7 @@ "ionicons": "^5.5.3", "jest-puppeteer": "^7.0.1", "lite-server": "^2.6.1", + "log4js": "^6.9.1", "minisearch": "^6.0.1", "moment": "^2.29.3", "neverthrow": "^6.1.0", diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 441a20b5b..b58972a82 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -17,6 +17,7 @@ import { RoleIdService } from 'src/app/services/role-id.service'; import { ActiveTabService } from 'src/app/services/active-tab.service'; import { Device } from '@capacitor/device'; import { RouteService } from 'src/app/services/route.service'; +// import { LoggingService } from 'src/app/services/logger/log4js/logging.service'; import { CaptureLogService } from 'src/app/services/monitoring/capture-log/capture-log.service'; import { NetworkServiceService, ConnectionStatus } from 'src/app/services/network-service.service'; import { UserSession } from '../models/user.model'; @@ -104,7 +105,8 @@ export class HomePage implements OnInit { private RoleIdService: RoleIdService, private zone: NgZone, public alertController: AlertController, - public CaptureLogService: CaptureLogService + public CaptureLogService: CaptureLogService, + // private LoggingService: LoggingService // private ChunkService: ChunkService, // private StreamService: StreamService diff --git a/src/app/pages/agenda/agenda.page.html b/src/app/pages/agenda/agenda.page.html index d1a69212f..2bf4cf8f5 100644 --- a/src/app/pages/agenda/agenda.page.html +++ b/src/app/pages/agenda/agenda.page.html @@ -236,13 +236,10 @@
- -
- {{ day.daysInfo.dayName }}
{{month.monthInfo.monthName}}
@@ -250,7 +247,8 @@
-
+
+
Início
Fim
@@ -261,7 +259,7 @@
o dia
-
+
Todo
o dia
@@ -278,7 +276,7 @@

{{event.event.Subject}}

-
{{event.event.Location}}
+
{{event.event.Location}} {{ event.daysLeft }} 24h
{{SessionStore.user.FullName}}
{{eventService.getCalendarOwnNameByCalendarId(event.event.CalendarId)}}
diff --git a/src/app/pages/search/search.page.html b/src/app/pages/search/search.page.html index d6b4a887b..fa18aa703 100644 --- a/src/app/pages/search/search.page.html +++ b/src/app/pages/search/search.page.html @@ -310,7 +310,7 @@
- + {{ searchDocument.entity }} {{ formateIsoDate(searchDocument.dateEntry || searchDocument.Data) }}
diff --git a/src/app/pages/search/search.page.scss b/src/app/pages/search/search.page.scss index 0925f9efe..f15046abd 100644 --- a/src/app/pages/search/search.page.scss +++ b/src/app/pages/search/search.page.scss @@ -185,7 +185,7 @@ ion-slide { margin-left: 10px; .result-name { margin: 0px; - width: 100%; + // width: 100%; font-family: Roboto; font-size: rem(15); color: var(--title-text-color); diff --git a/src/app/services/agenda/list-box.service.ts b/src/app/services/agenda/list-box.service.ts index 30ee3cf96..16791d8f1 100644 --- a/src/app/services/agenda/list-box.service.ts +++ b/src/app/services/agenda/list-box.service.ts @@ -37,6 +37,7 @@ export class ListBoxService { daysBetween(){ } + list(eventSource: EventListStore[], profile: 'md' | 'pr' | 'all', rangeStartDate, randEndDate, {segment = 'Combinado', selectedDate= null}): Year[] { // // filter range @@ -306,6 +307,9 @@ export class ListBoxService { } transForm(event: CustomCalendarEvent, {startMany, endMany, middle}) { + + let daysLeft = this.daysToEndWithJS(event.start, event.end); + return Object.assign({}, { start: event.start, end: event.end, @@ -318,8 +322,10 @@ export class ListBoxService { Location: event.event.Location, EventId: event.event.EventId, CalendarName: event.event.CalendarName, - CalendarId: event.event.CalendarId + CalendarId: event.event.CalendarId, + daysLeft }, + daysLeft, Subject: event.event.Subject, startMany: startMany, endMany: endMany, @@ -329,6 +335,26 @@ export class ListBoxService { + + daysToEndWithJS(startDateStr: any, endDateStr: any) { + // Define the start and end dates + const startDate: any = new Date(startDateStr); + const endDate: any = new Date(endDateStr); + + // Calculate the difference in milliseconds between the two dates + const differenceMs = Math.abs(endDate - startDate); + + // Convert milliseconds to days + const millisecondsPerDay = 1000 * 60 * 60 * 24; + const differenceDays = Math.ceil(differenceMs / millisecondsPerDay); + + // console.log(`Number of days between the dates: ${differenceDays}`); + + return differenceDays + + } + + transformObjectKeyOrder(originalObject, keyOrder) { const transformedObject = {}; diff --git a/src/app/services/logger/log4js/logging.service.ts b/src/app/services/logger/log4js/logging.service.ts new file mode 100644 index 000000000..22a6066cb --- /dev/null +++ b/src/app/services/logger/log4js/logging.service.ts @@ -0,0 +1,46 @@ +// import { Injectable } from '@angular/core'; +// import * as log4js from 'log4js'; + +// @Injectable({ +// providedIn: 'root' +// }) +// export class LoggingService { +// private logger; + +// constructor() { +// log4js.configure({ +// appenders: { +// graylog: { +// type: '@log4js-node/gelf', +// host: 'localhost', // Replace with your Graylog server hostname or IP +// port: 1514, // GELF TCP port configured in Graylog Docker Compose +// hostname: 'angular-app', // Optional: Name of your application or hostname +// facility: 'angular-app', // Optional: Facility for categorizing logs +// customFields: { // Optional: Additional fields you want to include +// app: 'AngularApp', +// env: 'development' +// } +// } +// }, +// categories: { +// default: { appenders: ['graylog'], level: 'debug' } +// } +// }); + +// this.logger = log4js.getLogger(); + +// this.log("teste-123s") +// } + +// log(message: string) { +// this.logger.info(message); +// } + +// error(message: string) { +// this.logger.error(message); +// } + +// debug(message: string) { +// this.logger.debug(message); +// } +// } diff --git a/src/app/services/monitoring/capture-log/capture-log.service.ts b/src/app/services/monitoring/capture-log/capture-log.service.ts index 41360a00f..afd4a1080 100644 --- a/src/app/services/monitoring/capture-log/capture-log.service.ts +++ b/src/app/services/monitoring/capture-log/capture-log.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { Device } from '@capacitor/device'; -import { SocketLog } from './worker.worker'; +// import { SocketLog } from './worker.worker'; import { FCM } from '@capacitor-community/fcm'; import { ActionPerformed, PushNotificationSchema, PushNotifications, Token, } from '@capacitor/push-notifications'; import { AlertController, Platform } from '@ionic/angular'; @@ -14,7 +14,7 @@ export class CaptureLogService { deviceName = '' constructor( - public socket: SocketLog, + // public socket: SocketLog, private platform: Platform, private afMessaging: AngularFireMessaging, ) { @@ -25,6 +25,13 @@ export class CaptureLogService { this.deviceName = e.name }); + // Create a new + const worker = new Worker(new URL('./worker.worker', import.meta.url)); + worker.onmessage = ({ data }) => { + console.log(`page got message: ${data}`); + }; + worker.postMessage('hello'); + } setToken() { diff --git a/src/app/services/monitoring/capture-log/worker.worker.ts b/src/app/services/monitoring/capture-log/worker.worker.ts index c46e88887..f587c10ab 100644 --- a/src/app/services/monitoring/capture-log/worker.worker.ts +++ b/src/app/services/monitoring/capture-log/worker.worker.ts @@ -1,13 +1,4 @@ -// src/app/worker.worker.ts -// addEventListener('message', ({ data }) => { -// const response = `Worker response to ${data}`; -// postMessage(response); -// }); - - - - -import { Injectable } from '@angular/core'; +/// import { Observable, Subject, BehaviorSubject } from 'rxjs'; import { webSocket, WebSocketSubject } from 'rxjs/webSocket'; import { catchError, retryWhen, tap, delay } from 'rxjs/operators'; @@ -17,15 +8,7 @@ interface WebSocketMessage { payload: any; } -interface WebSocketError { - type: string; - error: any; -} - -@Injectable({ - providedIn: 'root' -}) -export class SocketLog { +class SocketLog { private socket$: WebSocketSubject; private messageSubject$: Subject; private connectionStatus$: BehaviorSubject; @@ -36,6 +19,8 @@ export class SocketLog { this.messageSubject$ = new Subject(); this.connectionStatus$ = new BehaviorSubject(false); this.setupVisibilityChangeHandler(); + // this.connect('https://5-180-182-151.cloud-xip.com:85/ws/') + //console.log('connect1') } public connect(url: string) { @@ -61,12 +46,14 @@ export class SocketLog { this.messageSubject$.next(message); this.connectionStatus$.next(true); this.reconnectAttempts = 0; + + // console.log({message}) }, (err) => { - console.error('WebSocket connection error:', err); + // console.error('WebSocket connection error:', err); }, () => { - console.log('WebSocket connection closed'); + // console.log('WebSocket connection closed'); this.connectionStatus$.next(false); } ); @@ -150,3 +137,6 @@ export class SocketLog { ); } } + + +let _ = new SocketLog() diff --git a/src/app/services/monitoring/opentelemetry/matrix.ts b/src/app/services/monitoring/opentelemetry/matrix.ts index 3d1f0964e..ad038fd5f 100644 --- a/src/app/services/monitoring/opentelemetry/matrix.ts +++ b/src/app/services/monitoring/opentelemetry/matrix.ts @@ -7,7 +7,7 @@ import { environment } from 'src/environments/environment'; const meterProvider = new MeterProvider(); metrics.setGlobalMeterProvider(meterProvider); -if (window.location.protocol !== 'https:' && environment.presidential == false) { +if (window.location.protocol !== 'https:' && environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') { const metricReader = new PeriodicExportingMetricReader({ exporter: new OTLPMetricExporter({ url: 'http://5-180-182-151.cloud-xip.com:4318/v1/metrics', @@ -20,7 +20,6 @@ if (window.location.protocol !== 'https:' && environment.presidential == false) meterProvider.addMetricReader(metricReader); } - export const meter = meterProvider.getMeter('example-exporter-collector'); export const RequestCounter = meter.createCounter('post_requests', { description: 'Example of a Counter', diff --git a/src/app/services/monitoring/opentelemetry/tracer.ts b/src/app/services/monitoring/opentelemetry/tracer.ts index ed5dfaa83..bcab1cd38 100644 --- a/src/app/services/monitoring/opentelemetry/tracer.ts +++ b/src/app/services/monitoring/opentelemetry/tracer.ts @@ -64,7 +64,7 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp return data.tags[key] }, finish: () => { - if(environment.presidential == false) { + if(environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') { span.end(); UseCaseCounter.add(1, {user: SessionStore?.user?.FullName, outcome:data.tags['outcome'], usecase: name}) } diff --git a/src/app/shared/agenda/edit-event/edit-event.page.ts b/src/app/shared/agenda/edit-event/edit-event.page.ts index 10cb6e355..353e744c0 100644 --- a/src/app/shared/agenda/edit-event/edit-event.page.ts +++ b/src/app/shared/agenda/edit-event/edit-event.page.ts @@ -97,13 +97,13 @@ export class EditEventPage implements OnInit { SessionStore= SessionStore CalendarNameOwnerName = '' - CalendarNamesOptions = [] allDayCheck: boolean = false; addedAttachmentsList = []; sharedCalendar: Observable hasChangeCalendar = false selectedUserCalendar:any; + CalendarNamesOptions = ['Oficial', 'Pessoal'] constructor( private modalController: ModalController, @@ -133,10 +133,10 @@ export class EditEventPage implements OnInit { } ngOnInit() { - console.log('this.postEvent', this.postEvent) + this.selectedUserCalendar = this.postEvent.owner.wxUserId this.loadedEventAttachments = this.postEvent.Attachments - console.log(this.postEvent.Category) + this._postEvent = this.postEvent this._postEvent.Category = this.setEventType(this._postEvent.Category) if (!this._postEvent.IsRecurring) { diff --git a/src/app/shared/agenda/view-event/view-event.page.html b/src/app/shared/agenda/view-event/view-event.page.html index e33a38df1..4d3b66a41 100644 --- a/src/app/shared/agenda/view-event/view-event.page.html +++ b/src/app/shared/agenda/view-event/view-event.page.html @@ -90,6 +90,9 @@ (Não se repete)

+
diff --git a/src/app/shared/agenda/view-event/view-event.page.ts b/src/app/shared/agenda/view-event/view-event.page.ts index 5edde04a4..4def1737e 100644 --- a/src/app/shared/agenda/view-event/view-event.page.ts +++ b/src/app/shared/agenda/view-event/view-event.page.ts @@ -57,6 +57,7 @@ export class ViewEventPage implements OnInit { sesseionStora = SessionStore TimeZoneString = '' + daysToEnd = 0 constructor( public eventsService: EventsService, @@ -79,9 +80,35 @@ export class ViewEventPage implements OnInit { this.eventBody = { BodyType : "1", Text : ""}; this.loadedEvent.Body = this.eventBody; - console.log() } + + daysToEndWithJS(startDateStr: any, endDateStr: any) { + // Define the start and end dates + const startDate: any = new Date(startDateStr); + const endDate: any = new Date(endDateStr); + + // Calculate the difference in milliseconds between the two dates + const differenceMs = Math.abs(endDate - startDate); + + // Convert milliseconds to days + const millisecondsPerDay = 1000 * 60 * 60 * 24; + const differenceDays = Math.ceil(differenceMs / millisecondsPerDay); + + console.log(`Number of days between the dates: ${differenceDays}`); + + return differenceDays + + } + + deferenceBetweenDays(start: any, end: any) { + start.setHours(0, 0, 0, 0); + end.setHours(0, 0, 0, 0); + const diffTime = Math.abs(end - start); + return Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + } + + ngOnInit() { this.loadEvent(); @@ -137,11 +164,23 @@ export class ViewEventPage implements OnInit { if(res.isOk()) { + tracing.setAttribute('outcome', 'success') /* let changeDate = this.dateService.fixDate(res.value as any) as any */ this.loadedEvent = res.value as any; console.log('this.loadedEvent', this.loadedEvent) + + if(new Date().getTime() <= new Date(this.loadedEvent.EndDate).getTime()) { + if(this.deferenceBetweenDays(new Date(), new Date(this.loadedEvent.EndDate))) { + this.daysToEnd = this.daysToEndWithJS(new Date(this.loadedEvent.StartDate), new Date(this.loadedEvent.EndDate)) + } else { + this.daysToEnd = 0 + } + } else { + this.daysToEnd = 0 + } + this.setTimeZone() } else { diff --git a/src/app/store/calendar.service.ts b/src/app/store/calendar.service.ts index 5689921ad..a66a144db 100644 --- a/src/app/store/calendar.service.ts +++ b/src/app/store/calendar.service.ts @@ -53,9 +53,9 @@ export class CalendarService { removeRangeForCalendar(rangeStartDate, rangeEndDate, profile, calendarId) { - this._eventSource = this._eventSource.filter((e)=> { - if(new Date(rangeStartDate).getTime() <= new Date(e.startTime).getTime() && - new Date(rangeEndDate).getTime() >= new Date(e.endTime).getTime() && e.CalendarId == calendarId) { + this._eventSource = this._eventSource.filter((e) => { + if( new Date(e.endTime).getTime() >= new Date(rangeStartDate).getTime() && + new Date(rangeEndDate).getTime() >= new Date(e.startTime).getTime() && e.CalendarId == calendarId) { return false } return true diff --git a/version/git-version.ts b/version/git-version.ts index d36919c2f..a3d18be96 100644 --- a/version/git-version.ts +++ b/version/git-version.ts @@ -1,11 +1,11 @@ export let versionData = { - "shortSHA": "76ff62d42", - "SHA": "76ff62d4287fd56a7bfe5e837cc0d63d8fe3679d", + "shortSHA": "fbaf0afcf", + "SHA": "fbaf0afcf137adaf815d2013e6c1d6f87561cf95", "branch": "feature/agenda-api-peter", "lastCommitAuthor": "'Peter Maquiran'", - "lastCommitTime": "'Mon Jun 24 16:08:20 2024 +0100'", - "lastCommitMessage": "ITOTEAM-594 Implementar o endpoint de listagem do tipo de agenda", - "lastCommitNumber": "5841", - "changeStatus": "On branch feature/agenda-api-peter\nYour branch is ahead of 'origin/feature/agenda-api-peter' by 4 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/home/home.page.ts\n\tmodified: src/app/interceptors/metter.interceptor.ts\n\tmodified: src/app/modals/profile/profile.page.ts\n\tmodified: src/app/modals/view-document/view-document.page.ts\n\tmodified: src/app/services/Repositorys/Agenda/agendaDataModels.ts\n\tmodified: src/app/services/agenda/list-box.service.ts\n\tmodified: src/app/services/monitoring/opentelemetry/matrix.ts\n\tmodified: src/app/services/monitoring/opentelemetry/tracer.ts\n\tmodified: src/app/services/notification/notifications.service.ts\n\tmodified: src/app/services/notifications.service.ts\n\tmodified: src/app/services/toast.service.ts\n\tmodified: src/app/shared/agenda/view-event/view-event.page.ts\n\tmodified: src/app/store/notification-holder.service.ts\n\tmodified: version/git-version.ts", + "lastCommitTime": "'Tue Jun 25 12:11:44 2024 +0100'", + "lastCommitMessage": "ITOTEAM-523 A app não redireciona as notificações", + "lastCommitNumber": "5842", + "changeStatus": "On branch feature/agenda-api-peter\nYour branch is ahead of 'origin/feature/agenda-api-peter' by 5 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: gabinete-digital-fo.code-workspace\n\tmodified: package-lock.json\n\tmodified: package.json\n\tmodified: src/app/home/home.page.ts\n\tmodified: src/app/pages/agenda/agenda.page.html\n\tmodified: src/app/pages/search/search.page.html\n\tmodified: src/app/pages/search/search.page.scss\n\tmodified: src/app/services/agenda/list-box.service.ts\n\tnew file: src/app/services/logger/log4js/logging.service.ts\n\tmodified: src/app/services/monitoring/capture-log/capture-log.service.ts\n\tmodified: src/app/services/monitoring/capture-log/worker.worker.ts\n\tmodified: src/app/services/monitoring/opentelemetry/matrix.ts\n\tmodified: src/app/services/monitoring/opentelemetry/tracer.ts\n\tmodified: src/app/shared/agenda/edit-event/edit-event.page.ts\n\tmodified: src/app/shared/agenda/view-event/view-event.page.html\n\tmodified: src/app/shared/agenda/view-event/view-event.page.ts\n\tmodified: src/app/store/calendar.service.ts", "changeAuthor": "peter.maquiran" } \ No newline at end of file