diff --git a/angular.json b/angular.json index b01a787d3..cd7b53a72 100644 --- a/angular.json +++ b/angular.json @@ -54,7 +54,7 @@ "vendorChunk": true, "extractLicenses": false, "buildOptimizer": false, - "sourceMap": false, + "sourceMap": true, "optimization": false, "namedChunks": true }, @@ -68,7 +68,7 @@ ], "optimization": true, "outputHashing": "all", - "sourceMap": false, + "sourceMap": true, "namedChunks": false, "aot": true, "extractLicenses": true, 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 dd4a86762..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 @@ -187,7 +189,7 @@ export class HomePage implements OnInit { if ("serviceWorker" in navigator) { navigator.serviceWorker.onmessage = (event) => { - console.log('Mensagem recebida do Service Worker:', event.data.data); + console.log('Mensagem recebida do Service Worker:', event.data); let object = { notification: event.data } diff --git a/src/app/interceptors/metter.interceptor.ts b/src/app/interceptors/metter.interceptor.ts index 1796a2eb9..c5e951afe 100644 --- a/src/app/interceptors/metter.interceptor.ts +++ b/src/app/interceptors/metter.interceptor.ts @@ -2,32 +2,8 @@ import { Injectable } from '@angular/core'; import { HTTP_INTERCEPTORS, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http'; import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; -import { metrics } from '@opentelemetry/api'; -import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http'; -import { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'; +import { meter, RequestCounter } from '../services/monitoring/opentelemetry/matrix'; -// Initialize OpenTelemetry metrics -const meterProvider = new MeterProvider(); -metrics.setGlobalMeterProvider(meterProvider); - -if (window.location.protocol !== 'https:') { - const metricReader = new PeriodicExportingMetricReader({ - exporter: new OTLPMetricExporter({ - url: 'http://5-180-182-151.cloud-xip.com:4318/v1/metrics', - // headers: { - // 'Authorization': 'Basic ' + btoa('tabteste@006:tabteste@006'), - // } - }), - exportIntervalMillis: 3000, - }); - - meterProvider.addMetricReader(metricReader); -} - -const meter = meterProvider.getMeter('example-exporter-collector'); -const requestCounter = meter.createCounter('post_requests', { - description: 'Example of a Counter', -}); @Injectable() export class MetricsInterceptor implements HttpInterceptor { @@ -37,13 +13,15 @@ export class MetricsInterceptor implements HttpInterceptor { if (event instanceof HttpResponse) { // Capture the status code and check protocol if (req.method !== 'GET' && !req.urlWithParams.includes('metrics')) { + + console.log('response', event.body) const path = req.urlWithParams; const url = new URL(path); if (window.location.protocol !== 'https:') { let attributes = { path: url.pathname, method: req.method }; const statusCode = event.status; const extendedAttributes = { ...attributes, status: statusCode }; - requestCounter.add(1, extendedAttributes); + RequestCounter.add(1, extendedAttributes); } } } @@ -56,4 +34,4 @@ export const metricsInterceptor = { provide: HTTP_INTERCEPTORS, useClass: MetricsInterceptor, multi: true -}; \ No newline at end of file +}; diff --git a/src/app/interceptors/token.interceptors.ts b/src/app/interceptors/token.interceptors.ts index 0b43c7ce4..2d8027338 100644 --- a/src/app/interceptors/token.interceptors.ts +++ b/src/app/interceptors/token.interceptors.ts @@ -8,7 +8,6 @@ import { HTTP_INTERCEPTORS, HttpClient, } from "@angular/common/http"; -import { AuthService } from '../services/auth.service'; import { Observable, throwError, BehaviorSubject, of } from "rxjs"; import { catchError, filter, take, switchMap, tap } from "rxjs/operators"; import { SessionStore } from '../store/session.service'; diff --git a/src/app/modals/profile/profile.page.html b/src/app/modals/profile/profile.page.html index ea9778bcf..81b0206d2 100644 --- a/src/app/modals/profile/profile.page.html +++ b/src/app/modals/profile/profile.page.html @@ -40,7 +40,7 @@
{{event.event.Subject}}
{{document.subject || document.Description || document.SourceName || document.sourceName || 'Sem título'}}
- Correspondencia
- AccoesPresidenciais
- ArquivoDespachoElect
+ Correspondencia
+ AccoesPresidenciais
+ ArquivoDespachoElect
diff --git a/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts b/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts
index 878d60f41..63cf0681f 100644
--- a/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts
+++ b/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts
@@ -17,6 +17,7 @@ import { ThemeService } from 'src/app/services/theme.service'
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
+import { AttendeesLIstChangeDetector } from 'src/app/services/Repositorys/Agenda/async/change/attendeesLIstChangeDetector';
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
parse: {
@@ -136,7 +137,8 @@ export class EditEventToApprovePage implements OnInit {
private toastService: ToastService,
public ThemeService: ThemeService,
public httpErrorHandler: HttpErrorHandle,
- private agendaDataRepository: AgendaDataRepositoryService
+ private agendaDataRepository: AgendaDataRepositoryService,
+ private httpErroHalde: HttpErrorHandle,
) {
this.isEventEdited = false;
}
@@ -153,28 +155,43 @@ export class EditEventToApprovePage implements OnInit {
}
- async getTask() {
- const res: any = await this.agendaDataRepository.getEventToApproveById(this.serialNumber)
- console.log('evento to apro to edit', res.value)
- this.eventProcess = res.value;
+ @XTracerAsync({name:'edit-event-approve/getTask', bugPrint: true})
+ async getTask(tracing?: TracingType) {
- this.eventProcess.workflowInstanceDataFields.LastOccurrence = new Date(this.eventProcess.workflowInstanceDataFields.LastOccurrence)
+ const res = await this.agendaDataRepository.getEventToApproveById(this.serialNumber)
+ if(res.isOk()) {
+ console.log('evento to apro to edit', res.value)
+ this.eventProcess = res.value as any;
- this.restoreDatepickerData()
+ this.eventProcess.workflowInstanceDataFields.LastOccurrence = new Date(this.eventProcess.workflowInstanceDataFields.LastOccurrence)
- // description
- let body: any = this.eventProcess.workflowInstanceDataFields.Body.replace(/<[^>]+>/g, '')
- this.eventProcess.workflowInstanceDataFields.Body = body
- this.eventProcess.workflowInstanceDataFields.Category = this.setEventType(this.eventProcess.workflowInstanceDataFields.EventType)
+ this.restoreDatepickerData()
- this.InstanceId = this.eventProcess.workflowInstanceDataFields.InstanceId
- this.loadedAttachments = res.value.Attachments;
- console.log(this.loadedAttachments)
+ // description
- this.setOtherData()
+ try {
+ let body: any = this.eventProcess.workflowInstanceDataFields?.Body?.replace(/<[^>]+>/g, '')
+ this.eventProcess.workflowInstanceDataFields.Body = body
+
+ } catch (error) {}
+
+ this.eventProcess.workflowInstanceDataFields.Category = this.setEventType(this.eventProcess.workflowInstanceDataFields.EventType)
+ this.InstanceId = this.eventProcess.workflowInstanceDataFields.InstanceId
+ this.loadedAttachments = res.value.Attachments;
+ console.log(this.loadedAttachments)
+
+ this.setOtherData()
+
+ this.saveTemporaryData()
+ tracing.setAttribute('outcome', 'success')
+
+ } else {
+ tracing.setAttribute('outcome', 'failed')
+ tracing.bugFlag()
+ this.httpErroHalde.httpStatusHandle(res.error)
+ }
- this.saveTemporaryData()
}
getRecurrenceTypes() {
@@ -322,11 +339,10 @@ export class EditEventToApprovePage implements OnInit {
if (this.Form.invalid) return false
- // set dates to eventProcess object
+ const serverCurrentList = this.eventProcess.workflowInstanceDataFields.ParticipantsList
+
this.dateControlStart = new FormControl(moment(new Date(this.eventProcess.workflowInstanceDataFields.StartDate)).add(1, 'hours'));
this.dateControlEnd = new FormControl(moment(new Date(this.eventProcess.workflowInstanceDataFields.EndDate)).add(1, 'hours'));
- // this.restoreDatepickerData()
- // this.getDatepickerData()
this.taskParticipantsCc.forEach(e => {
e.IsRequired = false
@@ -384,15 +400,35 @@ export class EditEventToApprovePage implements OnInit {
tracing.setAttribute('outcome', 'failed')
}));
- this.agendaDataRepository.addEventAttendee(this.eventProcess.serialNumber, this.eventProcess.workflowInstanceDataFields.ParticipantsList).subscribe((value) => {
- console.log(value)
- }, ((error) => {
- console.log('add Attendee error: ', error)
- tracing.setAttribute('failed.attendees', 'true')
- }));
+ console.log({serverCurrentList, list: this.eventProcess.workflowInstanceDataFields.ParticipantsList, e: this.eventProcess})
+
+ const { insert, remove } = AttendeesLIstChangeDetector(serverCurrentList as any, this.eventProcess.workflowInstanceDataFields.ParticipantsList as any)
+
+ console.log({insert, remove})
+
+ if(insert.length >= 1) {
+ this.agendaDataRepository.addEventAttendee(this.eventProcess.serialNumber, insert).subscribe((value) => {
+ console.log(value)
+ }, ((error) => {
+ console.log('add Attendee error: ', error)
+ tracing.setAttribute('failed.attendees', 'true')
+ }));
+ }
+
+
+ if(remove.length >= 1) {
+
+ this.agendaDataRepository.removeEventAttendee(this.eventProcess.serialNumber, remove).subscribe((value) => {
+
+ }, ((error) => {
+ console.log('add Attendee error: ', error)
+ tracing.setAttribute('failed.attendees', 'true')
+ }));
+ }
+
if (this.addedAttachmentsList.length > 0) {
- this.agendaDataRepository.addEventAttachment(this.eventProcess.serialNumber, this.loadedAttachments).subscribe((value) => {
+ this.agendaDataRepository.addEventAttachment(this.eventProcess.serialNumber, this.loadedAttachments, tracing).subscribe((value) => {
console.log(value)
}, ((error) => {
this.showLoader = false
@@ -420,24 +456,24 @@ export class EditEventToApprovePage implements OnInit {
this.toastService._badRequest('Evento não editado');
}
- this.loadedAttachments.forEach((document: any) => {
- if (document['action'] == 'add') {
- delete document.action
- this.attachmentsService.setEventAttachmentById(document).subscribe(() => {
- window['edit-approve-event-desktop']()
- }, error => {
- this.toastService.badRequest();
- });
- } else if (document['action'] == 'delete') {
- delete document.action
- this.attachmentsService.deleteEventAttachmentById(document.Id).subscribe(res => {
- window['edit-approve-event-desktop']()
- }, error => {
- this.toastService.badRequest()
- })
- }
+ // this.loadedAttachments.forEach((document: any) => {
+ // if (document['action'] == 'add') {
+ // delete document.action
+ // this.attachmentsService.setEventAttachmentById(document).subscribe(() => {
+ // window['edit-approve-event-desktop']()
+ // }, error => {
+ // this.toastService.badRequest();
+ // });
+ // } else if (document['action'] == 'delete') {
+ // delete document.action
+ // this.attachmentsService.deleteEventAttachmentById(document.Id).subscribe(res => {
+ // window['edit-approve-event-desktop']()
+ // }, error => {
+ // this.toastService.badRequest()
+ // })
+ // }
- })
+ // })
}
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 537a1042c..353e744c0 100644
--- a/src/app/shared/agenda/edit-event/edit-event.page.ts
+++ b/src/app/shared/agenda/edit-event/edit-event.page.ts
@@ -20,6 +20,7 @@ import { Observable } from 'rxjs';
import { TableSharedCalendar } from 'src/app/services/Repositorys/Agenda/agenda-local-data-source.service';
import { RoleIdService } from 'src/app/services/role-id.service'
import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer';
+import { AttendeesLIstChangeDetector } from 'src/app/services/Repositorys/Agenda/async/change/attendeesLIstChangeDetector';
@Component({
selector: 'app-edit-event',
templateUrl: './edit-event.page.html',
@@ -96,13 +97,13 @@ export class EditEventPage implements OnInit {
SessionStore= SessionStore
CalendarNameOwnerName = ''
- CalendarNamesOptions = []
allDayCheck: boolean = false;
addedAttachmentsList = [];
sharedCalendar: Observable
{{document.subject || document.Description || 'Sem título'}}
- Correspondencia
- AccoesPresidenciais
- ArquivoDespachoElect
+ Correspondencia
+ AccoesPresidenciais
+ ArquivoDespachoElect
diff --git a/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts b/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts
index 2bb93f34e..6dc6eaab2 100644
--- a/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts
+++ b/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts
@@ -16,6 +16,7 @@ import { ThemeService } from 'src/app/services/theme.service'
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
+import { AttendeesLIstChangeDetector } from 'src/app/services/Repositorys/Agenda/async/change/attendeesLIstChangeDetector';
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
parse: {
@@ -115,12 +116,8 @@ export class EditEventToApproveComponent implements OnInit {
constructor(
private modalController: ModalController,
private navParams: NavParams,
- private eventsService: EventsService,
public alertController: AlertController,
private attachmentsService: AttachmentsService,
- private processes: ProcessesService,
- private toastService: ToastService,
- private router: Router,
public ThemeService: ThemeService,
private httpErroHalde: HttpErrorHandle,
private agendaDataRepository: AgendaDataRepositoryService
@@ -149,7 +146,8 @@ export class EditEventToApproveComponent implements OnInit {
})
}, 1000);
- async getTask() {
+ @XTracerAsync({name:'mobile/loadEventToApproveDetails', bugPrint: true})
+ async getTask(tracing?: TracingType) {
/* const result = await this.processes.GetTask(this.serialNumber).toPromise(); */
const res = await this.agendaDataRepository.getEventToApproveById(this.serialNumber)
@@ -164,8 +162,13 @@ export class EditEventToApproveComponent implements OnInit {
this.endDate = new Date(this.eventProcess.workflowInstanceDataFields.EndDate);
// description
- let body: any = this.eventProcess.workflowInstanceDataFields.Body.replace(/<[^>]+>/g, '')
- this.eventProcess.workflowInstanceDataFields.Body = body
+ try {
+
+ let body: any = this.eventProcess.workflowInstanceDataFields.Body.replace(/<[^>]+>/g, '')
+ this.eventProcess.workflowInstanceDataFields.Body = body
+
+ } catch (error) {}
+
this.Location = this.eventProcess.workflowInstanceDataFields.Location
this.InstanceId = this.eventProcess.workflowInstanceDataFields.InstanceId
@@ -189,7 +192,10 @@ export class EditEventToApproveComponent implements OnInit {
}
})
+ tracing.setAttribute('outcome', 'success')
} else {
+ tracing.setAttribute('outcome', 'failed')
+ tracing.bugFlag()
this.httpErroHalde.httpStatusHandle(res.error)
}
@@ -271,6 +277,7 @@ export class EditEventToApproveComponent implements OnInit {
e.IsRequired = false
})
+ const serverCurrentList = this.eventProcess.workflowInstanceDataFields.ParticipantsList
this.eventProcess.workflowInstanceDataFields.ParticipantsList = this.taskParticipants.concat(this.taskParticipantsCc)
this.eventProcess.workflowInstanceDataFields.ParticipantsList.forEach(e => {
@@ -325,16 +332,36 @@ export class EditEventToApproveComponent implements OnInit {
tracing.setAttribute('outcome', 'failed')
}));
- this.agendaDataRepository.addEventAttendee(this.eventProcess.serialNumber, this.eventProcess.workflowInstanceDataFields.ParticipantsList).subscribe((value) => {
+ console.log({serverCurrentList, ParticipantsList:this.eventProcess.workflowInstanceDataFields.ParticipantsList})
+ const { insert, remove } = AttendeesLIstChangeDetector(serverCurrentList as any, this.eventProcess.workflowInstanceDataFields.ParticipantsList as any)
+
+ console.log({insert, remove})
+
+ if(insert.length >= 1) {
+
+ this.agendaDataRepository.addEventAttendee(this.eventProcess.serialNumber, insert).subscribe((value) => {
+
+ }, ((error) => {
+ console.log('add Attendee error: ', error)
+ tracing.setAttribute('failed.attendees', 'true')
+ }));
+ }
+
+
+ if(remove.length >= 1) {
+
+ this.agendaDataRepository.removeEventAttendee(this.eventProcess.serialNumber, remove).subscribe((value) => {
+
+ }, ((error) => {
+ console.log('add Attendee error: ', error)
+ tracing.setAttribute('failed.attendees', 'true')
+ }));
+ }
- }, ((error) => {
- console.log('add Attendee error: ', error)
- tracing.setAttribute('failed.attendees', 'true')
- }));
if (this.addedAttachmentsList.length > 0) {
- this.agendaDataRepository.addEventAttachment(this.eventProcess.serialNumber, this.loadedAttachments).subscribe((value) => {
+ this.agendaDataRepository.addEventAttachment(this.eventProcess.serialNumber, this.loadedAttachments, tracing).subscribe((value) => {
console.log(value)
}, ((error) => {
this.showLoader = false
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/src/app/store/notification-holder.service.ts b/src/app/store/notification-holder.service.ts
index 686f972f7..ca46d96f2 100644
--- a/src/app/store/notification-holder.service.ts
+++ b/src/app/store/notification-holder.service.ts
@@ -54,10 +54,10 @@ export class NotificationHolderService {
id: notification?.id || uuidv4(),
index: i,
title: element.notification.title,
- Service: element.data.Service,
- Object: element.data.Object,
- IdObject: element.data.IdObject,
- FolderId: element.data.FolderId,
+ Service: element.data.Service || element.data.service,
+ Object: element.data.Object || element.data.object,
+ IdObject: element.data.IdObject || element.data.idObject,
+ FolderId: element.data.FolderId || element.data.folderId,
body: element.notification.body,
dateInit: this.getFormatedTime(element.data.dateInit),
dateEnd: this.getFormatedTime(element.data.dateEnd),
@@ -73,10 +73,10 @@ export class NotificationHolderService {
id: notification?.id || uuidv4(),
index: i,
title: element.title,
- Service: element.data.Service,
- Object: element.data.Object,
- IdObject: element.data.IdObject,
- FolderId: element.data.FolderId,
+ Service: element.data.Service || element.data.service,
+ Object: element.data.Object || element.data.object,
+ IdObject: element.data.IdObject || element.data.idObject,
+ FolderId: element.data.FolderId || element.data.folderId,
body: element.body,
dateInit: this.getFormatedTime(element.data.dateInit),
dateEnd: this.getFormatedTime(element.data.dateEnd),
@@ -91,12 +91,12 @@ export class NotificationHolderService {
{
notificationObject = {
id: notification?.id || uuidv4(),
- FolderId: element.FolderId,
- IdObject: element.IdObject,
+ FolderId: element.FolderId || element.data.folderId,
+ IdObject: element.IdObject || element.data.idObject,
Location: element.Location,
- Object: element.Object,
+ Object: element.Object || element.data.object,
Role: element.Role,
- Service: element.Service,
+ Service: element.Service || element.data.service,
Status: element.Status,
TypeAgenda: element.TypeAgenda,
body: element.body,
@@ -124,10 +124,10 @@ export class NotificationHolderService {
notificationObject = {
id: notification?.id || uuidv4(),
title: element.notification.title,
- Service: element.data.Service,
- Object: element.data.Object,
- IdObject: element.data.IdObject,
- FolderId: element.data.FolderId,
+ Service: element.data.Service || element.data.service,
+ Object: element.data.Object || element.data.object,
+ IdObject: element.data.IdObject || element.data.idObject,
+ FolderId: element.data.FolderId || element.data.folderId,
body: element.notification.body,
dateInit: this.getFormatedTime(element.data.dateInit),
dateEnd: this.getFormatedTime(element.data.dateEnd),
@@ -142,10 +142,10 @@ export class NotificationHolderService {
notificationObject = {
id: notification?.id || uuidv4(),
title: element.title,
- Service: element.data.Service,
- Object: element.data.Object,
- IdObject: element.data.IdObject,
- FolderId: element.data.FolderId,
+ Service: element.data.Service || element.data.service,
+ Object: element.data.Object || element.data.object,
+ IdObject: element.data.IdObject || element.data.idObject,
+ FolderId: element.data.FolderId || element.data.folderId,
body: element.body,
dateInit: this.getFormatedTime(element.data.dateInit),
dateEnd: this.getFormatedTime(element.data.dateEnd),
@@ -160,12 +160,12 @@ export class NotificationHolderService {
{
notificationObject = {
id: notification?.id || uuidv4(),
- FolderId: element.FolderId,
- IdObject: element.IdObject,
+ FolderId: element.FolderId || element.data.folderId,
+ IdObject: element.IdObject || element.data.idObject,
Location: element.Location,
- Object: element.Object,
+ Object: element.Object || element.data.object,
Role: element.Role,
- Service: element.Service,
+ Service: element.Service || element.data.service,
Status: element.Status,
TypeAgenda: element.TypeAgenda,
body: element.body,
diff --git a/version/git-version.ts b/version/git-version.ts
index 539f95154..ad37c544b 100644
--- a/version/git-version.ts
+++ b/version/git-version.ts
@@ -1,11 +1,11 @@
export let versionData = {
- "shortSHA": "0c14b9be9",
- "SHA": "0c14b9be979f22b13e627b978767be4a173d9768",
+ "shortSHA": "78c13d1bf",
+ "SHA": "78c13d1bfb0b5e24a79a101990ba73e50e831107",
"branch": "feature/agenda-api-peter",
"lastCommitAuthor": "'Peter Maquiran'",
- "lastCommitTime": "'Fri Jun 21 23:33:29 2024 +0100'",
- "lastCommitMessage": "fix ownertype and category type",
- "lastCommitNumber": "5836",
- "changeStatus": "On branch feature/agenda-api-peter\nYour branch is ahead of 'origin/feature/agenda-api-peter' by 7 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged