mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-21 13:55:51 +00:00
ITOTEAM-530 Inform the user how many days are left until the end of the wind for each selected day
This commit is contained in:
@@ -11,6 +11,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "../../../Downloads/opentelemetry-js-main/opentelemetry-js-main"
|
"path": "../../../Downloads/opentelemetry-js-main/opentelemetry-js-main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../grayLog"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"settings": {
|
"settings": {
|
||||||
|
|||||||
Generated
+83
-69
@@ -163,6 +163,7 @@
|
|||||||
"ionicons": "^5.5.3",
|
"ionicons": "^5.5.3",
|
||||||
"jest-puppeteer": "^7.0.1",
|
"jest-puppeteer": "^7.0.1",
|
||||||
"lite-server": "^2.6.1",
|
"lite-server": "^2.6.1",
|
||||||
|
"log4js": "^6.9.1",
|
||||||
"minisearch": "^6.0.1",
|
"minisearch": "^6.0.1",
|
||||||
"moment": "^2.29.3",
|
"moment": "^2.29.3",
|
||||||
"neverthrow": "^6.1.0",
|
"neverthrow": "^6.1.0",
|
||||||
@@ -14522,10 +14523,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/date-format": {
|
"node_modules/date-format": {
|
||||||
"version": "4.0.11",
|
"version": "4.0.14",
|
||||||
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz",
|
||||||
"integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==",
|
"integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4.0"
|
"node": ">=4.0"
|
||||||
}
|
}
|
||||||
@@ -17063,10 +17063,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/flatted": {
|
"node_modules/flatted": {
|
||||||
"version": "3.2.6",
|
"version": "3.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
|
||||||
"integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==",
|
"integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/flatten": {
|
"node_modules/flatten": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@@ -26587,16 +26586,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/log4js": {
|
"node_modules/log4js": {
|
||||||
"version": "6.5.2",
|
"version": "6.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz",
|
||||||
"integrity": "sha512-DXtpNtt+KDOMT7RHUDIur/WsSA3rntlUh9Zg4XCdV42wUuMmbFkl38+LZ92Z5QvQA7mD5kAVkLiBSEH/tvUB8A==",
|
"integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"date-format": "^4.0.10",
|
"date-format": "^4.0.14",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"flatted": "^3.2.5",
|
"flatted": "^3.2.7",
|
||||||
"rfdc": "^1.3.0",
|
"rfdc": "^1.3.0",
|
||||||
"streamroller": "^3.1.1"
|
"streamroller": "^3.1.5"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.0"
|
"node": ">=8.0"
|
||||||
@@ -26606,7 +26604,6 @@
|
|||||||
"version": "4.3.4",
|
"version": "4.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ms": "2.1.2"
|
"ms": "2.1.2"
|
||||||
},
|
},
|
||||||
@@ -33376,8 +33373,7 @@
|
|||||||
"node_modules/rfdc": {
|
"node_modules/rfdc": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
|
||||||
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
|
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/right-align": {
|
"node_modules/right-align": {
|
||||||
"version": "0.1.3",
|
"version": "0.1.3",
|
||||||
@@ -35535,24 +35531,22 @@
|
|||||||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
|
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
|
||||||
},
|
},
|
||||||
"node_modules/streamroller": {
|
"node_modules/streamroller": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz",
|
||||||
"integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==",
|
"integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"date-format": "^4.0.10",
|
"date-format": "^4.0.14",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"fs-extra": "^10.1.0"
|
"fs-extra": "^8.1.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.0"
|
"node": ">=8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/streamroller/node_modules/debug": {
|
"node_modules/streamroller/node_modules/debug": {
|
||||||
"version": "4.3.4",
|
"version": "4.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ms": "2.1.2"
|
"ms": "2.1.2"
|
||||||
},
|
},
|
||||||
@@ -35566,17 +35560,32 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/streamroller/node_modules/fs-extra": {
|
"node_modules/streamroller/node_modules/fs-extra": {
|
||||||
"version": "10.1.0",
|
"version": "8.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
|
||||||
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
|
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"graceful-fs": "^4.2.0",
|
"graceful-fs": "^4.2.0",
|
||||||
"jsonfile": "^6.0.1",
|
"jsonfile": "^4.0.0",
|
||||||
"universalify": "^2.0.0"
|
"universalify": "^0.1.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"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": {
|
"node_modules/string_decoder": {
|
||||||
@@ -55162,10 +55171,9 @@
|
|||||||
"integrity": "sha512-6ujwvwgPID6zbI0o7UbURi2vlLDR9uP26+tW6Lg+Ji3w7dd0i3DOcjcClLjLPranT60SSEFBwdSyYwn/ZkPIuw=="
|
"integrity": "sha512-6ujwvwgPID6zbI0o7UbURi2vlLDR9uP26+tW6Lg+Ji3w7dd0i3DOcjcClLjLPranT60SSEFBwdSyYwn/ZkPIuw=="
|
||||||
},
|
},
|
||||||
"date-format": {
|
"date-format": {
|
||||||
"version": "4.0.11",
|
"version": "4.0.14",
|
||||||
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz",
|
||||||
"integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==",
|
"integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"dayjs": {
|
"dayjs": {
|
||||||
"version": "1.11.8",
|
"version": "1.11.8",
|
||||||
@@ -57117,10 +57125,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flatted": {
|
"flatted": {
|
||||||
"version": "3.2.6",
|
"version": "3.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
|
||||||
"integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==",
|
"integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"flatten": {
|
"flatten": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@@ -64567,23 +64574,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"log4js": {
|
"log4js": {
|
||||||
"version": "6.5.2",
|
"version": "6.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz",
|
||||||
"integrity": "sha512-DXtpNtt+KDOMT7RHUDIur/WsSA3rntlUh9Zg4XCdV42wUuMmbFkl38+LZ92Z5QvQA7mD5kAVkLiBSEH/tvUB8A==",
|
"integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"date-format": "^4.0.10",
|
"date-format": "^4.0.14",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"flatted": "^3.2.5",
|
"flatted": "^3.2.7",
|
||||||
"rfdc": "^1.3.0",
|
"rfdc": "^1.3.0",
|
||||||
"streamroller": "^3.1.1"
|
"streamroller": "^3.1.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": {
|
"debug": {
|
||||||
"version": "4.3.4",
|
"version": "4.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.1.2"
|
"ms": "2.1.2"
|
||||||
}
|
}
|
||||||
@@ -69731,8 +69736,7 @@
|
|||||||
"rfdc": {
|
"rfdc": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
|
||||||
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
|
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"right-align": {
|
"right-align": {
|
||||||
"version": "0.1.3",
|
"version": "0.1.3",
|
||||||
@@ -71425,35 +71429,45 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"streamroller": {
|
"streamroller": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz",
|
||||||
"integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==",
|
"integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"date-format": "^4.0.10",
|
"date-format": "^4.0.14",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"fs-extra": "^10.1.0"
|
"fs-extra": "^8.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": {
|
"debug": {
|
||||||
"version": "4.3.4",
|
"version": "4.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.1.2"
|
"ms": "2.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fs-extra": {
|
"fs-extra": {
|
||||||
"version": "10.1.0",
|
"version": "8.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
|
||||||
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
|
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "^4.2.0",
|
"graceful-fs": "^4.2.0",
|
||||||
"jsonfile": "^6.0.1",
|
"jsonfile": "^4.0.0",
|
||||||
"universalify": "^2.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=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -179,6 +179,7 @@
|
|||||||
"ionicons": "^5.5.3",
|
"ionicons": "^5.5.3",
|
||||||
"jest-puppeteer": "^7.0.1",
|
"jest-puppeteer": "^7.0.1",
|
||||||
"lite-server": "^2.6.1",
|
"lite-server": "^2.6.1",
|
||||||
|
"log4js": "^6.9.1",
|
||||||
"minisearch": "^6.0.1",
|
"minisearch": "^6.0.1",
|
||||||
"moment": "^2.29.3",
|
"moment": "^2.29.3",
|
||||||
"neverthrow": "^6.1.0",
|
"neverthrow": "^6.1.0",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import { RoleIdService } from 'src/app/services/role-id.service';
|
|||||||
import { ActiveTabService } from 'src/app/services/active-tab.service';
|
import { ActiveTabService } from 'src/app/services/active-tab.service';
|
||||||
import { Device } from '@capacitor/device';
|
import { Device } from '@capacitor/device';
|
||||||
import { RouteService } from 'src/app/services/route.service';
|
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 { CaptureLogService } from 'src/app/services/monitoring/capture-log/capture-log.service';
|
||||||
import { NetworkServiceService, ConnectionStatus } from 'src/app/services/network-service.service';
|
import { NetworkServiceService, ConnectionStatus } from 'src/app/services/network-service.service';
|
||||||
import { UserSession } from '../models/user.model';
|
import { UserSession } from '../models/user.model';
|
||||||
@@ -104,7 +105,8 @@ export class HomePage implements OnInit {
|
|||||||
private RoleIdService: RoleIdService,
|
private RoleIdService: RoleIdService,
|
||||||
private zone: NgZone,
|
private zone: NgZone,
|
||||||
public alertController: AlertController,
|
public alertController: AlertController,
|
||||||
public CaptureLogService: CaptureLogService
|
public CaptureLogService: CaptureLogService,
|
||||||
|
// private LoggingService: LoggingService
|
||||||
|
|
||||||
// private ChunkService: ChunkService,
|
// private ChunkService: ChunkService,
|
||||||
// private StreamService: StreamService
|
// private StreamService: StreamService
|
||||||
|
|||||||
@@ -236,13 +236,10 @@
|
|||||||
<div *ngFor="let year of TimelineMDList " >
|
<div *ngFor="let year of TimelineMDList " >
|
||||||
<!-- {{year.yearInfo.yearName}} -->
|
<!-- {{year.yearInfo.yearName}} -->
|
||||||
<div *ngFor="let month of year.months " class="header-day" >
|
<div *ngFor="let month of year.months " class="header-day" >
|
||||||
<!-- {{ month.monthInfo.monthName | json }} -->
|
|
||||||
<!-- <hr> -->
|
|
||||||
|
|
||||||
<div *ngFor="let day of month.days; let i = index " class="EventListBox-container" >
|
<div *ngFor="let day of month.days; let i = index " class="EventListBox-container" >
|
||||||
|
|
||||||
<div class="day" *ngIf="!(i == 0 && isSelectedDayHasEvent)" >
|
<div class="day" *ngIf="!(i == 0 && isSelectedDayHasEvent)" >
|
||||||
|
|
||||||
{{ day.daysInfo.dayName }} <div style="text-transform: capitalize; display: inline;">{{month.monthInfo.monthName}}</div>
|
{{ day.daysInfo.dayName }} <div style="text-transform: capitalize; display: inline;">{{month.monthInfo.monthName}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -250,7 +247,8 @@
|
|||||||
|
|
||||||
<div class="d-flex content-{{event.profile}}-{{event.event.CalendarName}} mt-10 cursor-pointer width-100 " (click)="eventClicked(event)">
|
<div class="d-flex content-{{event.profile}}-{{event.event.CalendarName}} mt-10 cursor-pointer width-100 " (click)="eventClicked(event)">
|
||||||
|
|
||||||
<div class="schedule-time" *ngIf="!event.event.IsAllDayEvent">
|
<div class="schedule-time" *ngIf="event.event.IsAllDayEvent != true">
|
||||||
|
|
||||||
<div *ngIf="event.startMany && !event.middle" class="time-start labelb">Início</div>
|
<div *ngIf="event.startMany && !event.middle" class="time-start labelb">Início</div>
|
||||||
<div *ngIf="event.endMany && !event.middle " class="time-end labelb">Fim</div>
|
<div *ngIf="event.endMany && !event.middle " class="time-end labelb">Fim</div>
|
||||||
|
|
||||||
@@ -261,7 +259,7 @@
|
|||||||
<div *ngIf="event.middle" class="time-end text-center"> o dia </div>
|
<div *ngIf="event.middle" class="time-end text-center"> o dia </div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="schedule-time" *ngIf="event.event.IsAllDayEvent">
|
<div class="schedule-time" *ngIf="event.event.IsAllDayEvent == true">
|
||||||
|
|
||||||
<div *ngIf="event.middle" class="time-start">Todo </div>
|
<div *ngIf="event.middle" class="time-start">Todo </div>
|
||||||
<div *ngIf="event.middle" class="time-end text-center">o dia</div>
|
<div *ngIf="event.middle" class="time-end text-center">o dia</div>
|
||||||
@@ -278,7 +276,7 @@
|
|||||||
<p class="m-0">{{event.event.Subject}}</p>
|
<p class="m-0">{{event.event.Subject}}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="location">{{event.event.Location}}</div>
|
<div class="location">{{event.event.Location}} <span style="color:red;" *ngIf="event.daysLeft >= 2">{{ event.daysLeft }}</span> <span style="color:red;" *ngIf="event.event.IsAllDayEvent != true && event.endMany && !event.middle">24h</span> </div>
|
||||||
<div class="font-13 calendar-owner"*ngIf="eventService.getCalendarOwnNameByCalendarId(event.event.CalendarId) == 'Meu calendario'">{{SessionStore.user.FullName}} </div>
|
<div class="font-13 calendar-owner"*ngIf="eventService.getCalendarOwnNameByCalendarId(event.event.CalendarId) == 'Meu calendario'">{{SessionStore.user.FullName}} </div>
|
||||||
<ng-template #other_content>{{eventService.getCalendarOwnNameByCalendarId(event.event.CalendarId)}}</ng-template>
|
<ng-template #other_content>{{eventService.getCalendarOwnNameByCalendarId(event.event.CalendarId)}}</ng-template>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -310,7 +310,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex ion-justify-content-between ">
|
<div class="d-flex ion-justify-content-between ">
|
||||||
<span class="organic-entity"></span>
|
<span class="organic-entity">{{ searchDocument.entity }}</span>
|
||||||
<span class="documente-date">{{ formateIsoDate(searchDocument.dateEntry || searchDocument.Data) }}</span>
|
<span class="documente-date">{{ formateIsoDate(searchDocument.dateEntry || searchDocument.Data) }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ ion-slide {
|
|||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
.result-name {
|
.result-name {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
width: 100%;
|
// width: 100%;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-size: rem(15);
|
font-size: rem(15);
|
||||||
color: var(--title-text-color);
|
color: var(--title-text-color);
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ export class ListBoxService {
|
|||||||
|
|
||||||
daysBetween(){ }
|
daysBetween(){ }
|
||||||
|
|
||||||
|
|
||||||
list(eventSource: EventListStore[], profile: 'md' | 'pr' | 'all', rangeStartDate, randEndDate, {segment = 'Combinado', selectedDate= null}): Year[] {
|
list(eventSource: EventListStore[], profile: 'md' | 'pr' | 'all', rangeStartDate, randEndDate, {segment = 'Combinado', selectedDate= null}): Year[] {
|
||||||
|
|
||||||
// // filter range
|
// // filter range
|
||||||
@@ -306,6 +307,9 @@ export class ListBoxService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
transForm(event: CustomCalendarEvent, {startMany, endMany, middle}) {
|
transForm(event: CustomCalendarEvent, {startMany, endMany, middle}) {
|
||||||
|
|
||||||
|
let daysLeft = this.daysToEndWithJS(event.start, event.end);
|
||||||
|
|
||||||
return Object.assign({}, {
|
return Object.assign({}, {
|
||||||
start: event.start,
|
start: event.start,
|
||||||
end: event.end,
|
end: event.end,
|
||||||
@@ -318,8 +322,10 @@ export class ListBoxService {
|
|||||||
Location: event.event.Location,
|
Location: event.event.Location,
|
||||||
EventId: event.event.EventId,
|
EventId: event.event.EventId,
|
||||||
CalendarName: event.event.CalendarName,
|
CalendarName: event.event.CalendarName,
|
||||||
CalendarId: event.event.CalendarId
|
CalendarId: event.event.CalendarId,
|
||||||
|
daysLeft
|
||||||
},
|
},
|
||||||
|
daysLeft,
|
||||||
Subject: event.event.Subject,
|
Subject: event.event.Subject,
|
||||||
startMany: startMany,
|
startMany: startMany,
|
||||||
endMany: endMany,
|
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) {
|
transformObjectKeyOrder(originalObject, keyOrder) {
|
||||||
const transformedObject = {};
|
const transformedObject = {};
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Device } from '@capacitor/device';
|
import { Device } from '@capacitor/device';
|
||||||
import { SocketLog } from './worker.worker';
|
// import { SocketLog } from './worker.worker';
|
||||||
import { FCM } from '@capacitor-community/fcm';
|
import { FCM } from '@capacitor-community/fcm';
|
||||||
import { ActionPerformed, PushNotificationSchema, PushNotifications, Token, } from '@capacitor/push-notifications';
|
import { ActionPerformed, PushNotificationSchema, PushNotifications, Token, } from '@capacitor/push-notifications';
|
||||||
import { AlertController, Platform } from '@ionic/angular';
|
import { AlertController, Platform } from '@ionic/angular';
|
||||||
@@ -14,7 +14,7 @@ export class CaptureLogService {
|
|||||||
deviceName = ''
|
deviceName = ''
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public socket: SocketLog,
|
// public socket: SocketLog,
|
||||||
private platform: Platform,
|
private platform: Platform,
|
||||||
private afMessaging: AngularFireMessaging,
|
private afMessaging: AngularFireMessaging,
|
||||||
) {
|
) {
|
||||||
@@ -25,6 +25,13 @@ export class CaptureLogService {
|
|||||||
this.deviceName = e.name
|
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() {
|
setToken() {
|
||||||
|
|||||||
@@ -1,13 +1,4 @@
|
|||||||
// src/app/worker.worker.ts
|
/// <reference lib="webworker" />
|
||||||
// addEventListener('message', ({ data }) => {
|
|
||||||
// const response = `Worker response to ${data}`;
|
|
||||||
// postMessage(response);
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { Injectable } from '@angular/core';
|
|
||||||
import { Observable, Subject, BehaviorSubject } from 'rxjs';
|
import { Observable, Subject, BehaviorSubject } from 'rxjs';
|
||||||
import { webSocket, WebSocketSubject } from 'rxjs/webSocket';
|
import { webSocket, WebSocketSubject } from 'rxjs/webSocket';
|
||||||
import { catchError, retryWhen, tap, delay } from 'rxjs/operators';
|
import { catchError, retryWhen, tap, delay } from 'rxjs/operators';
|
||||||
@@ -17,15 +8,7 @@ interface WebSocketMessage {
|
|||||||
payload: any;
|
payload: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface WebSocketError {
|
class SocketLog {
|
||||||
type: string;
|
|
||||||
error: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Injectable({
|
|
||||||
providedIn: 'root'
|
|
||||||
})
|
|
||||||
export class SocketLog {
|
|
||||||
private socket$: WebSocketSubject<WebSocketMessage>;
|
private socket$: WebSocketSubject<WebSocketMessage>;
|
||||||
private messageSubject$: Subject<WebSocketMessage>;
|
private messageSubject$: Subject<WebSocketMessage>;
|
||||||
private connectionStatus$: BehaviorSubject<boolean>;
|
private connectionStatus$: BehaviorSubject<boolean>;
|
||||||
@@ -36,6 +19,8 @@ export class SocketLog {
|
|||||||
this.messageSubject$ = new Subject<WebSocketMessage>();
|
this.messageSubject$ = new Subject<WebSocketMessage>();
|
||||||
this.connectionStatus$ = new BehaviorSubject<boolean>(false);
|
this.connectionStatus$ = new BehaviorSubject<boolean>(false);
|
||||||
this.setupVisibilityChangeHandler();
|
this.setupVisibilityChangeHandler();
|
||||||
|
// this.connect('https://5-180-182-151.cloud-xip.com:85/ws/')
|
||||||
|
//console.log('connect1')
|
||||||
}
|
}
|
||||||
|
|
||||||
public connect(url: string) {
|
public connect(url: string) {
|
||||||
@@ -61,12 +46,14 @@ export class SocketLog {
|
|||||||
this.messageSubject$.next(message);
|
this.messageSubject$.next(message);
|
||||||
this.connectionStatus$.next(true);
|
this.connectionStatus$.next(true);
|
||||||
this.reconnectAttempts = 0;
|
this.reconnectAttempts = 0;
|
||||||
|
|
||||||
|
// console.log({message})
|
||||||
},
|
},
|
||||||
(err) => {
|
(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);
|
this.connectionStatus$.next(false);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -150,3 +137,6 @@ export class SocketLog {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let _ = new SocketLog()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { environment } from 'src/environments/environment';
|
|||||||
const meterProvider = new MeterProvider();
|
const meterProvider = new MeterProvider();
|
||||||
metrics.setGlobalMeterProvider(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({
|
const metricReader = new PeriodicExportingMetricReader({
|
||||||
exporter: new OTLPMetricExporter({
|
exporter: new OTLPMetricExporter({
|
||||||
url: 'http://5-180-182-151.cloud-xip.com:4318/v1/metrics',
|
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);
|
meterProvider.addMetricReader(metricReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const meter = meterProvider.getMeter('example-exporter-collector');
|
export const meter = meterProvider.getMeter('example-exporter-collector');
|
||||||
export const RequestCounter = meter.createCounter('post_requests', {
|
export const RequestCounter = meter.createCounter('post_requests', {
|
||||||
description: 'Example of a Counter',
|
description: 'Example of a Counter',
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
|
|||||||
return data.tags[key]
|
return data.tags[key]
|
||||||
},
|
},
|
||||||
finish: () => {
|
finish: () => {
|
||||||
if(environment.presidential == false) {
|
if(environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') {
|
||||||
span.end();
|
span.end();
|
||||||
UseCaseCounter.add(1, {user: SessionStore?.user?.FullName, outcome:data.tags['outcome'], usecase: name})
|
UseCaseCounter.add(1, {user: SessionStore?.user?.FullName, outcome:data.tags['outcome'], usecase: name})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,13 +97,13 @@ export class EditEventPage implements OnInit {
|
|||||||
SessionStore= SessionStore
|
SessionStore= SessionStore
|
||||||
|
|
||||||
CalendarNameOwnerName = ''
|
CalendarNameOwnerName = ''
|
||||||
CalendarNamesOptions = []
|
|
||||||
allDayCheck: boolean = false;
|
allDayCheck: boolean = false;
|
||||||
addedAttachmentsList = [];
|
addedAttachmentsList = [];
|
||||||
|
|
||||||
sharedCalendar: Observable<TableSharedCalendar[]>
|
sharedCalendar: Observable<TableSharedCalendar[]>
|
||||||
hasChangeCalendar = false
|
hasChangeCalendar = false
|
||||||
selectedUserCalendar:any;
|
selectedUserCalendar:any;
|
||||||
|
CalendarNamesOptions = ['Oficial', 'Pessoal']
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private modalController: ModalController,
|
private modalController: ModalController,
|
||||||
@@ -133,10 +133,10 @@ export class EditEventPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
console.log('this.postEvent', this.postEvent)
|
|
||||||
this.selectedUserCalendar = this.postEvent.owner.wxUserId
|
this.selectedUserCalendar = this.postEvent.owner.wxUserId
|
||||||
this.loadedEventAttachments = this.postEvent.Attachments
|
this.loadedEventAttachments = this.postEvent.Attachments
|
||||||
console.log(this.postEvent.Category)
|
|
||||||
this._postEvent = this.postEvent
|
this._postEvent = this.postEvent
|
||||||
this._postEvent.Category = this.setEventType(this._postEvent.Category)
|
this._postEvent.Category = this.setEventType(this._postEvent.Category)
|
||||||
if (!this._postEvent.IsRecurring) {
|
if (!this._postEvent.IsRecurring) {
|
||||||
|
|||||||
@@ -90,6 +90,9 @@
|
|||||||
<span *ngIf="!loadedEvent.IsRecurring">(Não se repete)</span>
|
<span *ngIf="!loadedEvent.IsRecurring">(Não se repete)</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<!-- <p >
|
||||||
|
{{ daysToEnd }} dias para terminar o evento
|
||||||
|
</p> -->
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ export class ViewEventPage implements OnInit {
|
|||||||
sesseionStora = SessionStore
|
sesseionStora = SessionStore
|
||||||
|
|
||||||
TimeZoneString = ''
|
TimeZoneString = ''
|
||||||
|
daysToEnd = 0
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public eventsService: EventsService,
|
public eventsService: EventsService,
|
||||||
@@ -79,9 +80,35 @@ export class ViewEventPage implements OnInit {
|
|||||||
this.eventBody = { BodyType : "1", Text : ""};
|
this.eventBody = { BodyType : "1", Text : ""};
|
||||||
this.loadedEvent.Body = this.eventBody;
|
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() {
|
ngOnInit() {
|
||||||
|
|
||||||
this.loadEvent();
|
this.loadEvent();
|
||||||
@@ -137,11 +164,23 @@ export class ViewEventPage implements OnInit {
|
|||||||
|
|
||||||
if(res.isOk()) {
|
if(res.isOk()) {
|
||||||
|
|
||||||
|
|
||||||
tracing.setAttribute('outcome', 'success')
|
tracing.setAttribute('outcome', 'success')
|
||||||
|
|
||||||
/* let changeDate = this.dateService.fixDate(res.value as any) as any */
|
/* let changeDate = this.dateService.fixDate(res.value as any) as any */
|
||||||
this.loadedEvent = res.value as any;
|
this.loadedEvent = res.value as any;
|
||||||
console.log('this.loadedEvent', this.loadedEvent)
|
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()
|
this.setTimeZone()
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ export class CalendarService {
|
|||||||
removeRangeForCalendar(rangeStartDate, rangeEndDate, profile, calendarId) {
|
removeRangeForCalendar(rangeStartDate, rangeEndDate, profile, calendarId) {
|
||||||
|
|
||||||
this._eventSource = this._eventSource.filter((e) => {
|
this._eventSource = this._eventSource.filter((e) => {
|
||||||
if(new Date(rangeStartDate).getTime() <= new Date(e.startTime).getTime() &&
|
if( new Date(e.endTime).getTime() >= new Date(rangeStartDate).getTime() &&
|
||||||
new Date(rangeEndDate).getTime() >= new Date(e.endTime).getTime() && e.CalendarId == calendarId) {
|
new Date(rangeEndDate).getTime() >= new Date(e.startTime).getTime() && e.CalendarId == calendarId) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
export let versionData = {
|
export let versionData = {
|
||||||
"shortSHA": "76ff62d42",
|
"shortSHA": "fbaf0afcf",
|
||||||
"SHA": "76ff62d4287fd56a7bfe5e837cc0d63d8fe3679d",
|
"SHA": "fbaf0afcf137adaf815d2013e6c1d6f87561cf95",
|
||||||
"branch": "feature/agenda-api-peter",
|
"branch": "feature/agenda-api-peter",
|
||||||
"lastCommitAuthor": "'Peter Maquiran'",
|
"lastCommitAuthor": "'Peter Maquiran'",
|
||||||
"lastCommitTime": "'Mon Jun 24 16:08:20 2024 +0100'",
|
"lastCommitTime": "'Tue Jun 25 12:11:44 2024 +0100'",
|
||||||
"lastCommitMessage": "ITOTEAM-594 Implementar o endpoint de listagem do tipo de agenda",
|
"lastCommitMessage": "ITOTEAM-523 A app não redireciona as notificações",
|
||||||
"lastCommitNumber": "5841",
|
"lastCommitNumber": "5842",
|
||||||
"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 <file>...\" 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",
|
"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 <file>...\" 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"
|
"changeAuthor": "peter.maquiran"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user