From 947f45f5a842d855dfba3d0225f14a9b2632dd35 Mon Sep 17 00:00:00 2001 From: almeida-erick <102696058+almeida-erick@users.noreply.github.com> Date: Tue, 19 Apr 2022 16:41:26 -0500 Subject: [PATCH 01/10] TT-610-Time-Tracker-Keys-Pipeline-ENV (#845) * fix: TT-610 Fix pipeline * fix: TT-610 Fix pipeline - CI Time Tracker ui * fix: TT-610 Fix pipeline - read from OS env variable in .ts --- .github/workflows/CI-time-tracker-ui.yml | 4 ++-- Makefile | 6 +++--- scripts/populate-var-file.sh | 10 ++++++++++ scripts/setenv.ts | 17 ++++++++--------- 4 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 scripts/populate-var-file.sh diff --git a/.github/workflows/CI-time-tracker-ui.yml b/.github/workflows/CI-time-tracker-ui.yml index da410589a..f63625e00 100644 --- a/.github/workflows/CI-time-tracker-ui.yml +++ b/.github/workflows/CI-time-tracker-ui.yml @@ -48,8 +48,8 @@ jobs: STACK_EXCHANGE_ACCESS_TOKEN: ${{ secrets.STACK_EXCHANGE_ACCESS_TOKEN }} AZURE_APP_CONFIGURATION_CONNECTION_STRING: ${{ secrets.AZURE_APP_CONFIGURATION_CONNECTION_STRING }} run: | - chmod +x ./scripts/populate-keys.sh - sh ./scripts/populate-keys.sh + chmod +x ./scripts/populate-var-file.sh + sh ./scripts/populate-var-file.sh - name: Running tests run: npm run ci-test --if-present diff --git a/Makefile b/Makefile index f465cfed1..98d231b11 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ cleanup: ## Delete image timetracker_ui .PHONY: run run: ## Execute timetracker_ui docker containe. - docker-compose --env-file ./.env up -d + docker-compose up -d .PHONY: logs logs: ## Show logs of timetracker_ui. @@ -40,12 +40,12 @@ remove: ## Delete container timetracker_ui. .PHONY: test test: ## Run all tests on docker container timetracker_ui at the CLI. - docker-compose -f docker-compose.yml --env-file ./.env up -d + docker-compose -f docker-compose.yml up -d docker exec timetracker_ui bash -c "npm run ci-test" .PHONY: testdev testdev: ## Run all tests on docker container timetracker_ui at the Dev - docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file ./.env up -d + docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d docker exec timetracker_ui bash -c "npm run ci-test" .PHONY: publish diff --git a/scripts/populate-var-file.sh b/scripts/populate-var-file.sh new file mode 100644 index 000000000..f395689af --- /dev/null +++ b/scripts/populate-var-file.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +> src/environments/keys.ts +echo 'export const AUTHORITY = "'$AUTHORITY'";' >> src/environments/keys.ts +echo 'export const CLIENT_ID = "'$CLIENT_ID'";' >> src/environments/keys.ts +echo 'export const SCOPES = ["'$SCOPES'"];' >> src/environments/keys.ts +echo 'export const STACK_EXCHANGE_ID = "'$STACK_EXCHANGE_ID'";' >> src/environments/keys.ts +echo 'export const STACK_EXCHANGE_ACCESS_TOKEN = "'$STACK_EXCHANGE_ACCESS_TOKEN'";' >> src/environments/keys.ts +echo 'export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = "'$AZURE_APP_CONFIGURATION_CONNECTION_STRING'";' >> src/environments/keys.ts +cat src/environments/keys.ts diff --git a/scripts/setenv.ts b/scripts/setenv.ts index 0c07a1b30..659a587b2 100644 --- a/scripts/setenv.ts +++ b/scripts/setenv.ts @@ -1,14 +1,13 @@ const { writeFile } = require('fs'); -require('dotenv').config(); const pathJs = `./src/environments/keys.ts` -const contentKeys = -`export const AUTHORITY = '${process.env.AUTHORITY}'; -export const CLIENT_ID = '${process.env.CLIENT_ID}'; -export const SCOPES = ['${process.env.SCOPES}']; -export const STACK_EXCHANGE_ID = '${process.env.STACK_EXCHANGE_ID}'; -export const STACK_EXCHANGE_ACCESS_TOKEN = '${process.env.STACK_EXCHANGE_ACCESS_TOKEN}'; -export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = '${process.env.AZURE_APP_CONFIGURATION_CONNECTION_STRING}'; +const contentKeys = +`export const AUTHORITY = '${process.env["AUTHORITY"]}'; +export const CLIENT_ID = '${process.env["CLIENT_ID"]}'; +export const SCOPES = ['${process.env["SCOPES"]}']; +export const STACK_EXCHANGE_ID = '${process.env["STACK_EXCHANGE_ID"]}'; +export const STACK_EXCHANGE_ACCESS_TOKEN = '${process.env["STACK_EXCHANGE_ACCESS_TOKEN"]}'; +export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = '${process.env["AZURE_APP_CONFIGURATION_CONNECTION_STRING"]}'; `; writeFile(pathJs, contentKeys, function (err) { @@ -19,7 +18,7 @@ writeFile(pathJs, contentKeys, function (err) { }); const pathJson = `./src/environments/.keys.json` -const contentKeysJson = +const contentKeysJson = `{ "authority": "${process.env.AUTHORITY_JSON}", "client_id": "${process.env.CLIENT_ID_JSON}", From 48b36ccf2fb7d15c10f6bd41bf805c555b4c44bc Mon Sep 17 00:00:00 2001 From: sbateca Date: Tue, 19 Apr 2022 17:32:57 -0500 Subject: [PATCH 02/10] Revert "TT-610-Time-Tracker-Keys-Pipeline-ENV (#845)" (#848) This reverts commit 947f45f5a842d855dfba3d0225f14a9b2632dd35. --- .github/workflows/CI-time-tracker-ui.yml | 4 ++-- Makefile | 6 +++--- scripts/populate-var-file.sh | 10 ---------- scripts/setenv.ts | 17 +++++++++-------- 4 files changed, 14 insertions(+), 23 deletions(-) delete mode 100644 scripts/populate-var-file.sh diff --git a/.github/workflows/CI-time-tracker-ui.yml b/.github/workflows/CI-time-tracker-ui.yml index f63625e00..da410589a 100644 --- a/.github/workflows/CI-time-tracker-ui.yml +++ b/.github/workflows/CI-time-tracker-ui.yml @@ -48,8 +48,8 @@ jobs: STACK_EXCHANGE_ACCESS_TOKEN: ${{ secrets.STACK_EXCHANGE_ACCESS_TOKEN }} AZURE_APP_CONFIGURATION_CONNECTION_STRING: ${{ secrets.AZURE_APP_CONFIGURATION_CONNECTION_STRING }} run: | - chmod +x ./scripts/populate-var-file.sh - sh ./scripts/populate-var-file.sh + chmod +x ./scripts/populate-keys.sh + sh ./scripts/populate-keys.sh - name: Running tests run: npm run ci-test --if-present diff --git a/Makefile b/Makefile index 98d231b11..f465cfed1 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ cleanup: ## Delete image timetracker_ui .PHONY: run run: ## Execute timetracker_ui docker containe. - docker-compose up -d + docker-compose --env-file ./.env up -d .PHONY: logs logs: ## Show logs of timetracker_ui. @@ -40,12 +40,12 @@ remove: ## Delete container timetracker_ui. .PHONY: test test: ## Run all tests on docker container timetracker_ui at the CLI. - docker-compose -f docker-compose.yml up -d + docker-compose -f docker-compose.yml --env-file ./.env up -d docker exec timetracker_ui bash -c "npm run ci-test" .PHONY: testdev testdev: ## Run all tests on docker container timetracker_ui at the Dev - docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d + docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file ./.env up -d docker exec timetracker_ui bash -c "npm run ci-test" .PHONY: publish diff --git a/scripts/populate-var-file.sh b/scripts/populate-var-file.sh deleted file mode 100644 index f395689af..000000000 --- a/scripts/populate-var-file.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -> src/environments/keys.ts -echo 'export const AUTHORITY = "'$AUTHORITY'";' >> src/environments/keys.ts -echo 'export const CLIENT_ID = "'$CLIENT_ID'";' >> src/environments/keys.ts -echo 'export const SCOPES = ["'$SCOPES'"];' >> src/environments/keys.ts -echo 'export const STACK_EXCHANGE_ID = "'$STACK_EXCHANGE_ID'";' >> src/environments/keys.ts -echo 'export const STACK_EXCHANGE_ACCESS_TOKEN = "'$STACK_EXCHANGE_ACCESS_TOKEN'";' >> src/environments/keys.ts -echo 'export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = "'$AZURE_APP_CONFIGURATION_CONNECTION_STRING'";' >> src/environments/keys.ts -cat src/environments/keys.ts diff --git a/scripts/setenv.ts b/scripts/setenv.ts index 659a587b2..0c07a1b30 100644 --- a/scripts/setenv.ts +++ b/scripts/setenv.ts @@ -1,13 +1,14 @@ const { writeFile } = require('fs'); +require('dotenv').config(); const pathJs = `./src/environments/keys.ts` -const contentKeys = -`export const AUTHORITY = '${process.env["AUTHORITY"]}'; -export const CLIENT_ID = '${process.env["CLIENT_ID"]}'; -export const SCOPES = ['${process.env["SCOPES"]}']; -export const STACK_EXCHANGE_ID = '${process.env["STACK_EXCHANGE_ID"]}'; -export const STACK_EXCHANGE_ACCESS_TOKEN = '${process.env["STACK_EXCHANGE_ACCESS_TOKEN"]}'; -export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = '${process.env["AZURE_APP_CONFIGURATION_CONNECTION_STRING"]}'; +const contentKeys = +`export const AUTHORITY = '${process.env.AUTHORITY}'; +export const CLIENT_ID = '${process.env.CLIENT_ID}'; +export const SCOPES = ['${process.env.SCOPES}']; +export const STACK_EXCHANGE_ID = '${process.env.STACK_EXCHANGE_ID}'; +export const STACK_EXCHANGE_ACCESS_TOKEN = '${process.env.STACK_EXCHANGE_ACCESS_TOKEN}'; +export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = '${process.env.AZURE_APP_CONFIGURATION_CONNECTION_STRING}'; `; writeFile(pathJs, contentKeys, function (err) { @@ -18,7 +19,7 @@ writeFile(pathJs, contentKeys, function (err) { }); const pathJson = `./src/environments/.keys.json` -const contentKeysJson = +const contentKeysJson = `{ "authority": "${process.env.AUTHORITY_JSON}", "client_id": "${process.env.CLIENT_ID_JSON}", From 74fac17ce0d067acc6be173367f71a87083e56df Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 19 Apr 2022 22:35:15 +0000 Subject: [PATCH 03/10] chore(release): 1.72.2 [skip ci]nn --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3d2ad4cbb..c0296c159 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.72.1", + "version": "1.72.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 396d1b3fe..bd3ed01b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.72.1", + "version": "1.72.2", "scripts": { "config": "ts-node ./scripts/setenv.ts", "preinstall": "npx npm-force-resolutions", From 954a6179b1a269131c9a1eba75346f51735d856d Mon Sep 17 00:00:00 2001 From: sbateca Date: Tue, 19 Apr 2022 17:43:28 -0500 Subject: [PATCH 04/10] fix: TT-610 Fix pipeline (#849) Co-authored-by: Erick Almeida --- .github/workflows/CD-time-tracker-ui.yml | 4 ++-- .github/workflows/CI-time-tracker-ui.yml | 4 ++-- Makefile | 6 +++--- scripts/populate-var-file.sh | 10 ++++++++++ scripts/setenv.ts | 17 ++++++++--------- 5 files changed, 25 insertions(+), 16 deletions(-) create mode 100644 scripts/populate-var-file.sh diff --git a/.github/workflows/CD-time-tracker-ui.yml b/.github/workflows/CD-time-tracker-ui.yml index db0ed3d19..5934939b6 100644 --- a/.github/workflows/CD-time-tracker-ui.yml +++ b/.github/workflows/CD-time-tracker-ui.yml @@ -35,8 +35,8 @@ jobs: STACK_EXCHANGE_ACCESS_TOKEN: ${{ secrets.stack_exchange_access_token }} AZURE_APP_CONFIGURATION_CONNECTION_STRING: ${{ secrets.azure_app_configuration_connection_string }} run: | - chmod +x ./scripts/populate-keys.sh - sh ./scripts/populate-keys.sh + chmod +x ./scripts/populate-var-file.sh + sh ./scripts/populate-var-file.sh - name: 'run: npm install and build' run: | diff --git a/.github/workflows/CI-time-tracker-ui.yml b/.github/workflows/CI-time-tracker-ui.yml index da410589a..f63625e00 100644 --- a/.github/workflows/CI-time-tracker-ui.yml +++ b/.github/workflows/CI-time-tracker-ui.yml @@ -48,8 +48,8 @@ jobs: STACK_EXCHANGE_ACCESS_TOKEN: ${{ secrets.STACK_EXCHANGE_ACCESS_TOKEN }} AZURE_APP_CONFIGURATION_CONNECTION_STRING: ${{ secrets.AZURE_APP_CONFIGURATION_CONNECTION_STRING }} run: | - chmod +x ./scripts/populate-keys.sh - sh ./scripts/populate-keys.sh + chmod +x ./scripts/populate-var-file.sh + sh ./scripts/populate-var-file.sh - name: Running tests run: npm run ci-test --if-present diff --git a/Makefile b/Makefile index f465cfed1..98d231b11 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ cleanup: ## Delete image timetracker_ui .PHONY: run run: ## Execute timetracker_ui docker containe. - docker-compose --env-file ./.env up -d + docker-compose up -d .PHONY: logs logs: ## Show logs of timetracker_ui. @@ -40,12 +40,12 @@ remove: ## Delete container timetracker_ui. .PHONY: test test: ## Run all tests on docker container timetracker_ui at the CLI. - docker-compose -f docker-compose.yml --env-file ./.env up -d + docker-compose -f docker-compose.yml up -d docker exec timetracker_ui bash -c "npm run ci-test" .PHONY: testdev testdev: ## Run all tests on docker container timetracker_ui at the Dev - docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file ./.env up -d + docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d docker exec timetracker_ui bash -c "npm run ci-test" .PHONY: publish diff --git a/scripts/populate-var-file.sh b/scripts/populate-var-file.sh new file mode 100644 index 000000000..f395689af --- /dev/null +++ b/scripts/populate-var-file.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +> src/environments/keys.ts +echo 'export const AUTHORITY = "'$AUTHORITY'";' >> src/environments/keys.ts +echo 'export const CLIENT_ID = "'$CLIENT_ID'";' >> src/environments/keys.ts +echo 'export const SCOPES = ["'$SCOPES'"];' >> src/environments/keys.ts +echo 'export const STACK_EXCHANGE_ID = "'$STACK_EXCHANGE_ID'";' >> src/environments/keys.ts +echo 'export const STACK_EXCHANGE_ACCESS_TOKEN = "'$STACK_EXCHANGE_ACCESS_TOKEN'";' >> src/environments/keys.ts +echo 'export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = "'$AZURE_APP_CONFIGURATION_CONNECTION_STRING'";' >> src/environments/keys.ts +cat src/environments/keys.ts diff --git a/scripts/setenv.ts b/scripts/setenv.ts index 0c07a1b30..659a587b2 100644 --- a/scripts/setenv.ts +++ b/scripts/setenv.ts @@ -1,14 +1,13 @@ const { writeFile } = require('fs'); -require('dotenv').config(); const pathJs = `./src/environments/keys.ts` -const contentKeys = -`export const AUTHORITY = '${process.env.AUTHORITY}'; -export const CLIENT_ID = '${process.env.CLIENT_ID}'; -export const SCOPES = ['${process.env.SCOPES}']; -export const STACK_EXCHANGE_ID = '${process.env.STACK_EXCHANGE_ID}'; -export const STACK_EXCHANGE_ACCESS_TOKEN = '${process.env.STACK_EXCHANGE_ACCESS_TOKEN}'; -export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = '${process.env.AZURE_APP_CONFIGURATION_CONNECTION_STRING}'; +const contentKeys = +`export const AUTHORITY = '${process.env["AUTHORITY"]}'; +export const CLIENT_ID = '${process.env["CLIENT_ID"]}'; +export const SCOPES = ['${process.env["SCOPES"]}']; +export const STACK_EXCHANGE_ID = '${process.env["STACK_EXCHANGE_ID"]}'; +export const STACK_EXCHANGE_ACCESS_TOKEN = '${process.env["STACK_EXCHANGE_ACCESS_TOKEN"]}'; +export const AZURE_APP_CONFIGURATION_CONNECTION_STRING = '${process.env["AZURE_APP_CONFIGURATION_CONNECTION_STRING"]}'; `; writeFile(pathJs, contentKeys, function (err) { @@ -19,7 +18,7 @@ writeFile(pathJs, contentKeys, function (err) { }); const pathJson = `./src/environments/.keys.json` -const contentKeysJson = +const contentKeysJson = `{ "authority": "${process.env.AUTHORITY_JSON}", "client_id": "${process.env.CLIENT_ID_JSON}", From 07b7778f3ee14ea0e09a07fabca2c26428de8202 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 19 Apr 2022 22:45:57 +0000 Subject: [PATCH 05/10] chore(release): 1.72.3 [skip ci]nn --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0296c159..ca256d7b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.72.2", + "version": "1.72.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bd3ed01b6..8f2b01355 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.72.2", + "version": "1.72.3", "scripts": { "config": "ts-node ./scripts/setenv.ts", "preinstall": "npx npm-force-resolutions", From 59b19136d42328337a082d1b3509416795065c26 Mon Sep 17 00:00:00 2001 From: Oscar H Lucas C <55326984+Olucas7@users.noreply.github.com> Date: Wed, 20 Apr 2022 15:24:40 -0500 Subject: [PATCH 06/10] Tt 37 show complete descriptions on hover (#846) * fix: TT-610 Fix pipeline * fix: TT-610 Fix pipeline - CI Time Tracker ui * fix: TT-610 Fix pipeline - read from OS env variable in .ts * feat: TT-37-show-complete-descriptions-on-hover * Refactoring HTML and CSS Code * Refactoring... * feat: delete text-overflow * Final Refactor * Width box correction Co-authored-by: Erick Almeida Co-authored-by: JaviMiot <51manobandajavier@gmail.com> --- .../time-entries-table.component.html | 20 +++---- .../time-entries-table.component.scss | 54 ++++++++++++++++--- 2 files changed, 54 insertions(+), 20 deletions(-) diff --git a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html index 9b4880904..c473ee890 100644 --- a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html +++ b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html @@ -1,9 +1,5 @@
- @@ -25,7 +21,7 @@ - + - - + +
{{ entry.id }} {{ entry.owner_email }} @@ -48,14 +44,14 @@ {{ entry.description }} + {{ entry.description }} -
- {{ technology }} -
+
+ {{ technology }} +
-
diff --git a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss index 0708ffecd..5c9faf001 100644 --- a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss +++ b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss @@ -1,30 +1,68 @@ @import '../../../../../styles/colors.scss'; -.col{ + +.col { white-space: nowrap; overflow: hidden; - text-overflow: ellipsis; font-size: small; } -.x-sm-col{ + +.col-height { + min-height: auto; + max-height: 8rem; +} + +.x-sm-col { width: 5em; max-width: 7em; } -.sm-col{ +.sm-col { width: 6em; max-width: 8em; } -.md-col{ +.md-col { width: 9em; } -.lg-col{ +.lg-col { width: 12em; overflow: hidden; white-space: normal; + border: none; +} + +@mixin scroll-style { + width: 25em; + overflow: hidden; + white-space: normal; + display: -webkit-box; + -webkit-box-orient: vertical; + margin: 8px 10px 0px 10px; + border: none; + overflow-y: auto; + overflow-wrap: break-word; + + &::-webkit-scrollbar { + width: 0.5em; + } + + &::-webkit-scrollbar-track { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + } + + &::-webkit-scrollbar-thumb { + background-color: #7a8486; + outline: 1px solid #7a8486; + border-radius: 0.5em; + } } -.hidden-col{ + +.lg-scroll { + @include scroll-style; +} + +.hidden-col { display: none; } @@ -94,4 +132,4 @@ table.dataTable thead .sorting_desc { text-transform: capitalize; font-style: italic; cursor: pointer; -} +} \ No newline at end of file From f87093996e34e1e6a3222e31c77057d39432fe00 Mon Sep 17 00:00:00 2001 From: Oscar H Lucas C <55326984+Olucas7@users.noreply.github.com> Date: Wed, 20 Apr 2022 15:57:33 -0500 Subject: [PATCH 07/10] Revert "Tt 37 show complete descriptions on hover (#846)" (#850) This reverts commit 59b19136d42328337a082d1b3509416795065c26. --- .../time-entries-table.component.html | 20 ++++--- .../time-entries-table.component.scss | 54 +++---------------- 2 files changed, 20 insertions(+), 54 deletions(-) diff --git a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html index c473ee890..9b4880904 100644 --- a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html +++ b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html @@ -1,5 +1,9 @@
- @@ -21,7 +25,7 @@ - + - - + +
{{ entry.id }} {{ entry.owner_email }} @@ -44,14 +48,14 @@ {{ entry.description }} + {{ entry.description }} -
- {{ technology }} -
+
+ {{ technology }} +
-
diff --git a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss index 5c9faf001..0708ffecd 100644 --- a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss +++ b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.scss @@ -1,68 +1,30 @@ @import '../../../../../styles/colors.scss'; - -.col { +.col{ white-space: nowrap; overflow: hidden; + text-overflow: ellipsis; font-size: small; } - -.col-height { - min-height: auto; - max-height: 8rem; -} - -.x-sm-col { +.x-sm-col{ width: 5em; max-width: 7em; } -.sm-col { +.sm-col{ width: 6em; max-width: 8em; } -.md-col { +.md-col{ width: 9em; } -.lg-col { +.lg-col{ width: 12em; overflow: hidden; white-space: normal; - border: none; -} - -@mixin scroll-style { - width: 25em; - overflow: hidden; - white-space: normal; - display: -webkit-box; - -webkit-box-orient: vertical; - margin: 8px 10px 0px 10px; - border: none; - overflow-y: auto; - overflow-wrap: break-word; - - &::-webkit-scrollbar { - width: 0.5em; - } - - &::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - } - - &::-webkit-scrollbar-thumb { - background-color: #7a8486; - outline: 1px solid #7a8486; - border-radius: 0.5em; - } } - -.lg-scroll { - @include scroll-style; -} - -.hidden-col { +.hidden-col{ display: none; } @@ -132,4 +94,4 @@ table.dataTable thead .sorting_desc { text-transform: capitalize; font-style: italic; cursor: pointer; -} \ No newline at end of file +} From b4c09ab21ace66da57a3c4416b0cf377ee4f3994 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 20 Apr 2022 20:59:29 +0000 Subject: [PATCH 08/10] chore(release): 1.72.4 [skip ci]nn --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index ca256d7b0..802454f6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.72.3", + "version": "1.72.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8f2b01355..79354f9ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.72.3", + "version": "1.72.4", "scripts": { "config": "ts-node ./scripts/setenv.ts", "preinstall": "npx npm-force-resolutions", From 3bd5600820e479b17cd47b715ad693cb529d42a6 Mon Sep 17 00:00:00 2001 From: sbateca Date: Thu, 21 Apr 2022 14:32:53 -0500 Subject: [PATCH 09/10] TT 589 improve time report presentation (#838) * Adjust start_date and end_date report depending of the administrator time zone * Parsing date in the reports using timezone_offset with moment.js * Adjust entry.service.ts to do loadEntriesByTimeRange without timezone_offset * Implement test to ParseDateTimeOffset --- package-lock.json | 9 +- .../time-entries-table.component.html | 113 ++++++------ .../time-entries-table.component.ts | 3 + .../parse-date-time-offset.spec.ts | 23 +++ .../parse-date-time-offset.ts | 8 + .../pages/time-entries.component.html | 170 +++++++----------- .../pages/time-entries.component.ts | 4 + 7 files changed, 160 insertions(+), 170 deletions(-) create mode 100644 src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.spec.ts create mode 100644 src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.ts diff --git a/package-lock.json b/package-lock.json index 802454f6b..efc54eb98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20539,7 +20539,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -24796,6 +24795,14 @@ "ajv-keywords": "^3.1.0" } }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "requires": { + "randombytes": "^2.1.0" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html index 9b4880904..d3d548016 100644 --- a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html +++ b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.html @@ -1,62 +1,57 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +
IDUser emailDateDurationTime inTime outProjectProject IDCustomerCustomer IDActivityTicketDescriptionTechnologies
{{ entry.id }}{{ entry.owner_email }} - {{ entry.start_date | date: 'MM/dd/yyyy' }} - - {{ entry.end_date | substractDate: entry.start_date }} - {{ entry.start_date | date: 'HH:mm' }}{{ entry.end_date | date: 'HH:mm' }}{{ entry.project_name }}{{ entry.project_id }}{{ entry.customer_name }}{{ entry.customer_id }}{{ entry.activity_name }} - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - -
IDUser emailDateDurationTime inTime outProjectProject IDCustomerCustomer IDActivityTicketDescriptionTechnologies
{{ entry.id }}{{ entry.owner_email }} + {{ entry.start_date | date: 'MM/dd/yyyy' }} + + {{ entry.end_date | substractDate: entry.start_date }} + {{ dateTimeOffset.parseDateTimeOffset(entry.start_date,entry.timezone_offset) }}{{ dateTimeOffset.parseDateTimeOffset(entry.end_date , entry.timezone_offset) }}{{ entry.project_name }}{{ entry.project_id }}{{ entry.customer_name }}{{ entry.customer_id }}{{ entry.activity_name }} + + {{ entry.uri }} - - {{ entry.description }} - -
- {{ technology }} -
-
-
- +
+
{{ entry.description }} + +
+ {{ technology }} +
+
+
+
\ No newline at end of file diff --git a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.ts b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.ts index 5cb6f4988..04af82799 100644 --- a/src/app/modules/reports/components/time-entries-table/time-entries-table.component.ts +++ b/src/app/modules/reports/components/time-entries-table/time-entries-table.component.ts @@ -8,6 +8,7 @@ import { Entry } from 'src/app/modules/shared/models'; import { DataSource } from 'src/app/modules/shared/models/data-source.model'; import { EntryState } from '../../../time-clock/store/entry.reducer'; import { getReportDataSource } from '../../../time-clock/store/entry.selectors'; +import { ParseDateTimeOffset } from '../../../shared/formatters/parse-date-time-offset/parse-date-time-offset'; @Component({ selector: 'app-time-entries-table', @@ -60,9 +61,11 @@ export class TimeEntriesTableComponent implements OnInit, OnDestroy, AfterViewIn isLoading$: Observable; reportDataSource$: Observable>; rerenderTableSubscription: Subscription; + dateTimeOffset: ParseDateTimeOffset; constructor(private store: Store) { this.reportDataSource$ = this.store.pipe(select(getReportDataSource)); + this.dateTimeOffset = new ParseDateTimeOffset(); } ngOnInit(): void { diff --git a/src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.spec.ts b/src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.spec.ts new file mode 100644 index 000000000..93c567e64 --- /dev/null +++ b/src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.spec.ts @@ -0,0 +1,23 @@ +import { ParseDateTimeOffset } from './parse-date-time-offset'; + +describe('ParseDateToUtcComponent', () => { + + it('returns converted date when his offset is 300', () => { + let parseTimeOffset = new ParseDateTimeOffset(); + const date = '2022-03-30T13:00:00Z'; + const timezone_offset = 300; + const dateOffset:string = '08:00'; + + expect(parseTimeOffset.parseDateTimeOffset(date, timezone_offset)).toEqual(dateOffset); + }); + + it('returns converted date when his offset is 420', () => { + let parseTimeOffset = new ParseDateTimeOffset(); + const date = '2022-03-30T16:30:00Z'; + const timezone_offset = 420; + const dateOffset:string = '09:30'; + + expect(parseTimeOffset.parseDateTimeOffset(date, timezone_offset)).toEqual(dateOffset); + }); + +}); diff --git a/src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.ts b/src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.ts new file mode 100644 index 000000000..b0f090a68 --- /dev/null +++ b/src/app/modules/shared/formatters/parse-date-time-offset/parse-date-time-offset.ts @@ -0,0 +1,8 @@ +import * as moment from 'moment'; + +export class ParseDateTimeOffset { + + parseDateTimeOffset(date:string, offset): string{ + return moment.utc(date).utcOffset(-1*offset).format("HH:mm"); + } +} diff --git a/src/app/modules/time-entries/pages/time-entries.component.html b/src/app/modules/time-entries/pages/time-entries.component.html index 5e44df0be..87f2da3c6 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.html +++ b/src/app/modules/time-entries/pages/time-entries.component.html @@ -1,135 +1,85 @@
-
- - -
-
- -
+
+
+ +
-
-
- - - +
+
+ + + +
-
-
- - - - - - - - - - - - - - - - - - - - - - - + + +
DateTime in - outDurationCustomerProjectActivity
{{ entry.start_date | date: 'MM/dd/yyyy' }}{{ entry.start_date | date: 'HH:mm' }} - {{ entry.end_date | date: 'HH:mm' }}{{ entry.end_date | substractDate: entry.start_date }}{{ entry.customer_name }}{{ entry.project_name }}{{ entry.activity_name }} -
+
-
- + \ No newline at end of file diff --git a/src/app/modules/time-entries/pages/time-entries.component.ts b/src/app/modules/time-entries/pages/time-entries.component.ts index 7bbbb794e..7c6e9d993 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.ts +++ b/src/app/modules/time-entries/pages/time-entries.component.ts @@ -16,6 +16,8 @@ import { getActiveTimeEntry, getTimeEntriesDataSource } from './../../time-clock import { CookieService } from 'ngx-cookie-service'; import { FeatureToggle } from './../../../../environments/enum'; import { CalendarView } from 'angular-calendar'; +import { ParseDateTimeOffset } from '../../shared/formatters/parse-date-time-offset/parse-date-time-offset'; + @Component({ selector: 'app-time-entries', templateUrl: './time-entries.component.html', @@ -51,6 +53,7 @@ export class TimeEntriesComponent implements OnInit, OnDestroy, AfterViewInit { isActiveEntryOverlapping = false; calendarView: CalendarView = CalendarView.Month; actualDate: Date; + dateTimeOffset : ParseDateTimeOffset; constructor( private store: Store, private toastrService: ToastrService, @@ -60,6 +63,7 @@ export class TimeEntriesComponent implements OnInit, OnDestroy, AfterViewInit { this.selectedDate = moment(new Date()); this.actualDate = new Date(); this.timeEntriesDataSource$ = this.store.pipe(delay(0), select(getTimeEntriesDataSource)); + this.dateTimeOffset = new ParseDateTimeOffset(); } ngOnInit(): void { From cbd6f0d16db5ab53d39c65538e582774fef5f963 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Apr 2022 19:34:32 +0000 Subject: [PATCH 10/10] Chore(deps): Bump moment from 2.25.3 to 2.29.2 Bumps [moment](https://github.com/moment/moment) from 2.25.3 to 2.29.2. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.25.3...2.29.2) --- updated-dependencies: - dependency-name: moment dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 36 ++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index efc54eb98..f67310f61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6472,15 +6472,6 @@ "p-try": "^2.0.0" } }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -11939,9 +11930,9 @@ "dev": true }, "moment": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz", - "integrity": "sha512-PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==" + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", + "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" }, "move-concurrently": { "version": "1.0.1", @@ -21772,6 +21763,15 @@ } } }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", @@ -23602,9 +23602,9 @@ } }, "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -24838,9 +24838,9 @@ }, "dependencies": { "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { "randombytes": "^2.1.0" diff --git a/package.json b/package.json index 79354f9ae..8b4bc822c 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "jquery": "3.5.1", "jszip": "3.7.0", "minimist": "1.2.5", - "moment": "2.25.3", + "moment": "2.29.2", "msal": "1.2.1", "ngrx-store-localstorage": "11.0.0", "ngx-cookie-service": "11.0.2",