From 5124806070532df33c95adbe9b59831d3e2a0c6f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 12:07:33 -0500 Subject: [PATCH 1/6] Chore(deps): Bump browserslist from 4.14.6 to 4.16.6 (#688) Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.14.6 to 4.16.6. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.14.6...4.16.6) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 51 ++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index a533ce88d..99bbe3c61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4915,15 +4915,42 @@ } }, "browserslist": { - "version": "4.14.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.6.tgz", - "integrity": "sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001154", - "electron-to-chromium": "^1.3.585", + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", - "node-releases": "^1.1.65" + "node-releases": "^1.1.71" + }, + "dependencies": { + "caniuse-lite": { + "version": "1.0.30001230", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz", + "integrity": "sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.739", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz", + "integrity": "sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A==", + "dev": true + }, + "node-releases": { + "version": "1.1.72", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", + "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==", + "dev": true + } } }, "browserstack": { @@ -7048,12 +7075,6 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.591", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz", - "integrity": "sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw==", - "dev": true - }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -11094,12 +11115,6 @@ } } }, - "node-releases": { - "version": "1.1.66", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", - "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", - "dev": true - }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", From 1add6129835e7970da34f5d37a04eb37cf236ff7 Mon Sep 17 00:00:00 2001 From: Kevin Jefferson Lopez De la O Date: Mon, 14 Jun 2021 10:47:47 -0500 Subject: [PATCH 2/6] fix: TT-262 disable buttons futures in time entries and disable input date futures (#697) * fix: TT-262 disable buttoms futures in time entries and disable input-date futures in reports, test of method monthEnable * fix: TT-262 disable buttoms futures in time entries and disable input-date futures in reports, test of method monthEnable * fix: TT-262 refactor code based on PR reviews --- .gitignore | 1 + .../time-range-form/time-range-form.component.ts | 3 +-- .../components/input-date/input-date.component.html | 1 + .../shared/components/input-date/input-date.component.ts | 3 +++ .../components/month-picker/month-picker.component.html | 3 ++- .../month-picker/month-picker.component.spec.ts | 6 +++++- .../components/month-picker/month-picker.component.ts | 9 +++++++-- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 22cd5e848..93e5cb260 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,7 @@ testem.log keys.ts src/environments/keys.ts debug.log +*.vscode # System Files .DS_Store diff --git a/src/app/modules/reports/components/time-range-form/time-range-form.component.ts b/src/app/modules/reports/components/time-range-form/time-range-form.component.ts index a4d1de86f..0c9c01e28 100644 --- a/src/app/modules/reports/components/time-range-form/time-range-form.component.ts +++ b/src/app/modules/reports/components/time-range-form/time-range-form.component.ts @@ -30,11 +30,10 @@ export class TimeRangeFormComponent implements OnInit { setInitialDataOnScreen() { this.reportForm.setValue({ startDate: formatDate(moment().startOf('week').format('l'), DATE_FORMAT, 'en'), - endDate: formatDate(moment().endOf('week').format('l'), DATE_FORMAT, 'en') + endDate: formatDate(moment().format('l'), DATE_FORMAT, 'en') }); this.onSubmit(); } - onSubmit() { const endDate = moment(this.endDate.value).endOf('day'); const startDate = moment(this.startDate.value).startOf('day'); diff --git a/src/app/modules/shared/components/input-date/input-date.component.html b/src/app/modules/shared/components/input-date/input-date.component.html index 1eaf0a384..80ee3f11d 100644 --- a/src/app/modules/shared/components/input-date/input-date.component.html +++ b/src/app/modules/shared/components/input-date/input-date.component.html @@ -8,5 +8,6 @@ required="required" [matDatepicker]="datepicker" (click)="openOrCloseDatePicker(datepicker)" + [max]="getCurrentDate()" /> diff --git a/src/app/modules/shared/components/input-date/input-date.component.ts b/src/app/modules/shared/components/input-date/input-date.component.ts index e81c1b221..352787d94 100644 --- a/src/app/modules/shared/components/input-date/input-date.component.ts +++ b/src/app/modules/shared/components/input-date/input-date.component.ts @@ -54,4 +54,7 @@ export class InputDateComponent implements ControlValueAccessor { openOrCloseDatePicker(datepicker: MatDatepicker): void { return datepicker.opened ? datepicker.close() : datepicker.open(); } + getCurrentDate(): string { + return moment(new Date()).format(DATE_FORMAT_YEAR); + } } diff --git a/src/app/modules/shared/components/month-picker/month-picker.component.html b/src/app/modules/shared/components/month-picker/month-picker.component.html index aac899ad4..431d75ffc 100644 --- a/src/app/modules/shared/components/month-picker/month-picker.component.html +++ b/src/app/modules/shared/components/month-picker/month-picker.component.html @@ -23,7 +23,8 @@
diff --git a/src/app/modules/shared/components/month-picker/month-picker.component.spec.ts b/src/app/modules/shared/components/month-picker/month-picker.component.spec.ts index b55811102..9f1cb151f 100644 --- a/src/app/modules/shared/components/month-picker/month-picker.component.spec.ts +++ b/src/app/modules/shared/components/month-picker/month-picker.component.spec.ts @@ -7,7 +7,6 @@ import { MonthPickerComponent } from './month-picker.component'; describe('MonthPickerComponent', () => { let component: MonthPickerComponent; let fixture: ComponentFixture; - beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ declarations: [ MonthPickerComponent ] @@ -69,4 +68,9 @@ describe('MonthPickerComponent', () => { expect(component.selectDate).toHaveBeenCalledWith(monthSelect, yearSelect); }); + it('monthEnable sets disabled to true on futures months', () => { + const monthFuture = component.monthCurrent + 1; + expect(component.monthEnable(monthFuture)).toBeTrue(); + }); + }); diff --git a/src/app/modules/shared/components/month-picker/month-picker.component.ts b/src/app/modules/shared/components/month-picker/month-picker.component.ts index fc457f33f..156f7a02f 100644 --- a/src/app/modules/shared/components/month-picker/month-picker.component.ts +++ b/src/app/modules/shared/components/month-picker/month-picker.component.ts @@ -20,7 +20,7 @@ export class MonthPickerComponent implements OnInit { months: Array = []; currentYear = new Date().getFullYear(); showArrowNext = false; - + monthCurrent = moment().month(); constructor() { this.selectedYearMoment = moment(); this.selectedMonthMoment = moment(); @@ -49,7 +49,12 @@ export class MonthPickerComponent implements OnInit { this.selectedMonthIndex = monthIndex; this.selectDate(this.selectedMonthIndex, this.selectedYear); } - + monthEnable(monthIndex: number){ + return( + this.monthCurrent < monthIndex && + this.selectedYear === this.currentYear + ); + } isSelectedMonth(monthIndex: number) { return ( this.selectedMonthIndex === monthIndex && From b581c2e53ad40a3b6608bb9ca5d9ff9d42a13d3a Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 14 Jun 2021 15:49:21 +0000 Subject: [PATCH 3/6] chore(release): 1.45.4 [skip ci]nn --- package-lock.json | 32 ++++++++++++++++---------------- package.json | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 99bbe3c61..bc153593b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.45.3", + "version": "1.45.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -6090,6 +6090,15 @@ "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", @@ -18443,15 +18452,6 @@ } } }, - "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", @@ -19873,9 +19873,9 @@ } }, "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "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" @@ -21103,9 +21103,9 @@ }, "dependencies": { "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "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" diff --git a/package.json b/package.json index bfcdb1d05..7fdb3681f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.45.3", + "version": "1.45.4", "scripts": { "preinstall": "npx npm-force-resolutions", "ng": "ng", From 5a716defbfeac928b6b47d6bf2694bbfe4ae2108 Mon Sep 17 00:00:00 2001 From: Kevin Lopez Date: Tue, 1 Jun 2021 18:49:15 -0500 Subject: [PATCH 4/6] fix: TT-258 modificate atribute star_date to view time in --- .../modules/time-entries/pages/time-entries.component.spec.ts | 2 +- src/app/modules/time-entries/pages/time-entries.component.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/modules/time-entries/pages/time-entries.component.spec.ts b/src/app/modules/time-entries/pages/time-entries.component.spec.ts index c4cf0b699..4dde329e6 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.spec.ts +++ b/src/app/modules/time-entries/pages/time-entries.component.spec.ts @@ -381,7 +381,7 @@ describe('TimeEntriesComponent', () => { uri: 'http://testing.is.fun', activity_id: 'sss', project_id: 'id', - start_date: new Date(new Date().setHours(0, 0, 0, 0)), + start_date: new Date(), end_date: new Date(new Date().setHours(0, 0, 0, 0)) }; state.timeEntriesDataSource.data = [lastEntry]; 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 7c06b05fe..454ec17af 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.ts +++ b/src/app/modules/time-entries/pages/time-entries.component.ts @@ -129,7 +129,7 @@ export class TimeEntriesComponent implements OnInit, OnDestroy { uri: dataToUse.uri ? dataToUse.uri : '', activity_id: dataToUse.activity_id, project_id: dataToUse.project_id, - start_date: startDate, + start_date: new Date(), end_date: startDate }; this.entry = entry; From face70be08f9702e88712992b7e1bd2b626b5672 Mon Sep 17 00:00:00 2001 From: Kevin Lopez Date: Fri, 11 Jun 2021 12:47:45 -0500 Subject: [PATCH 5/6] fix: TT-258 refactor code based on PR reviews --- src/app/modules/time-entries/pages/time-entries.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 454ec17af..6ed454e34 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.ts +++ b/src/app/modules/time-entries/pages/time-entries.component.ts @@ -122,7 +122,7 @@ export class TimeEntriesComponent implements OnInit, OnDestroy { this.store.pipe(select(getTimeEntriesDataSource)).subscribe(ds => { const dataToUse = ds.data.find(item => item.project_id === event.projectId); if (dataToUse && this.isNewEntry()) { - const startDate = new Date(new Date().setHours(0, 0, 0, 0)); + const endDate = new Date(new Date().setHours(0, 0, 0, 0)); const entry = { description: dataToUse.description ? dataToUse.description : '', technologies: dataToUse.technologies ? dataToUse.technologies : [], @@ -130,7 +130,7 @@ export class TimeEntriesComponent implements OnInit, OnDestroy { activity_id: dataToUse.activity_id, project_id: dataToUse.project_id, start_date: new Date(), - end_date: startDate + end_date: endDate }; this.entry = entry; } From 86ccb948b2a44250f27e2efa93accd2b94e6cb22 Mon Sep 17 00:00:00 2001 From: Kevin Lopez Date: Mon, 14 Jun 2021 16:17:06 -0500 Subject: [PATCH 6/6] fix: TT-258 added canMarkEntryAsWIP how conditions in start_date --- .../components/details-fields/details-fields.component.html | 3 ++- src/app/modules/shared/models/entry.model.ts | 2 +- .../time-entries/pages/time-entries.component.spec.ts | 2 +- .../modules/time-entries/pages/time-entries.component.ts | 6 +++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.html b/src/app/modules/shared/components/details-fields/details-fields.component.html index fcca79501..766d48690 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.html +++ b/src/app/modules/shared/components/details-fields/details-fields.component.html @@ -78,7 +78,7 @@ -
+
diff --git a/src/app/modules/shared/models/entry.model.ts b/src/app/modules/shared/models/entry.model.ts index 65737d410..731d0d8b6 100644 --- a/src/app/modules/shared/models/entry.model.ts +++ b/src/app/modules/shared/models/entry.model.ts @@ -1,7 +1,7 @@ export interface Entry { running?: boolean; id?: string; - start_date: Date; + start_date?: Date; end_date?: Date; activity_id?: string; technologies?: string[]; diff --git a/src/app/modules/time-entries/pages/time-entries.component.spec.ts b/src/app/modules/time-entries/pages/time-entries.component.spec.ts index 4dde329e6..379a60ef9 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.spec.ts +++ b/src/app/modules/time-entries/pages/time-entries.component.spec.ts @@ -381,7 +381,7 @@ describe('TimeEntriesComponent', () => { uri: 'http://testing.is.fun', activity_id: 'sss', project_id: 'id', - start_date: new Date(), + start_date: component.canMarkEntryAsWIP ? new Date() : new Date(new Date().setHours(0, 0, 0, 0)), end_date: new Date(new Date().setHours(0, 0, 0, 0)) }; state.timeEntriesDataSource.data = [lastEntry]; 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 6ed454e34..c6b7cf9fe 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.ts +++ b/src/app/modules/time-entries/pages/time-entries.component.ts @@ -122,15 +122,15 @@ export class TimeEntriesComponent implements OnInit, OnDestroy { this.store.pipe(select(getTimeEntriesDataSource)).subscribe(ds => { const dataToUse = ds.data.find(item => item.project_id === event.projectId); if (dataToUse && this.isNewEntry()) { - const endDate = new Date(new Date().setHours(0, 0, 0, 0)); + const startDate = new Date(new Date().setHours(0, 0, 0, 0)); const entry = { description: dataToUse.description ? dataToUse.description : '', technologies: dataToUse.technologies ? dataToUse.technologies : [], uri: dataToUse.uri ? dataToUse.uri : '', activity_id: dataToUse.activity_id, project_id: dataToUse.project_id, - start_date: new Date(), - end_date: endDate + start_date: this.canMarkEntryAsWIP ? new Date() : startDate, + end_date: startDate }; this.entry = entry; }