diff --git a/Docker/Dockerfile.dev b/Docker/Dockerfile.dev index ec0754c84..3dbb70414 100644 --- a/Docker/Dockerfile.dev +++ b/Docker/Dockerfile.dev @@ -5,11 +5,12 @@ ENV HOME /home/${USERNAME} RUN useradd -ms /bin/bash ${USERNAME} WORKDIR ${HOME}/time-tracker-ui +COPY package.json package-lock.json ./ +RUN npm cache clean --force && npm install COPY . . RUN chown ${USERNAME}:${USERNAME} -R ${HOME}/time-tracker-ui \ && chmod -R 777 ${HOME}/time-tracker-ui USER ${USERNAME} -RUN npm cache clean --force && npm install EXPOSE 4200 CMD ${HOME}/time-tracker-ui/node_modules/.bin/ng serve --host 0.0.0.0 --disableHostCheck diff --git a/Docker/Dockerfile.test b/Docker/Dockerfile.test index b65c0e2a9..ae536a542 100644 --- a/Docker/Dockerfile.test +++ b/Docker/Dockerfile.test @@ -34,6 +34,8 @@ RUN mkdir -p /opt/selenium \ RUN useradd -ms /bin/bash ${USERNAME} WORKDIR ${HOME}/time-tracker-ui +COPY package.json package-lock.json ./ +RUN npm cache clean --force && npm install COPY . . RUN chown ${USERNAME}:${USERNAME} -R ${HOME}/time-tracker-ui RUN chmod -R 777 ${HOME}/time-tracker-ui @@ -41,5 +43,4 @@ RUN chmod -R 777 ${HOME}/time-tracker-ui USER ${USERNAME} EXPOSE 4200 EXPOSE 9876 -RUN npm cache clean --force && npm install CMD npm run ci-test \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0a725bb0c..c6a1f3674 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.73.2", + "version": "1.74.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c663afb8a..fea687a42 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.73.2", + "version": "1.74.0", "scripts": { "preinstall": "npx npm-force-resolutions", "ng": "ng", diff --git a/src/app/modules/customer-management/components/projects/components/services/project.service.spec.ts b/src/app/modules/customer-management/components/projects/components/services/project.service.spec.ts index f1fd70831..83cb39475 100644 --- a/src/app/modules/customer-management/components/projects/components/services/project.service.spec.ts +++ b/src/app/modules/customer-management/components/projects/components/services/project.service.spec.ts @@ -104,7 +104,7 @@ describe('ProjectService', () => { it('update project using PUT from url locally', () => { const project: Project = { id: '1', name: 'new name', description: 'description', project_type_id: '123', status: 'active'}; service.url = 'projects'; - service.isDevelopment = true; + service.isDevelopmentOrProd = true; service.updateProject(project).subscribe((response) => { expect(response.name).toBe('new name'); }); @@ -115,7 +115,7 @@ describe('ProjectService', () => { it('delete project using DELETE from baseUrl', () => { const url = `${service.url}/1`; - service.isDevelopment = false; + service.isDevelopmentOrProd = false; service.deleteProject(projectsList[0].id).subscribe((projectsInResponse) => { expect(projectsInResponse.filter((project) => project.id !== projectsList[0].id).length).toEqual(2); }); @@ -126,7 +126,7 @@ describe('ProjectService', () => { it('update status project using PUT from baseUrl locally', () => { const url = `${service.url}/1`; - service.isDevelopment = true; + service.isDevelopmentOrProd = true; service.deleteProject(projectsList[0].id).subscribe((projectsInResponse) => { expect(projectsInResponse.filter((project) => project.id !== projectsList[0].id).length).toEqual(2); }); diff --git a/src/app/modules/customer-management/components/projects/components/services/project.service.ts b/src/app/modules/customer-management/components/projects/components/services/project.service.ts index 3362dea24..c5b431b1a 100644 --- a/src/app/modules/customer-management/components/projects/components/services/project.service.ts +++ b/src/app/modules/customer-management/components/projects/components/services/project.service.ts @@ -11,7 +11,7 @@ import { Project } from '../../../../../shared/models'; export class ProjectService { projects: Project[] = []; url = `${environment.timeTrackerApiUrl}/projects`; - isDevelopment = environment.production === EnvironmentType.TT_DEV; + isDevelopmentOrProd = environment.production === EnvironmentType.TT_DEV || environment.production === EnvironmentType.TT_PROD; constructor(private http: HttpClient) {} @@ -34,7 +34,7 @@ export class ProjectService { updateProject(projectData): Observable { const { id } = projectData; - if (this.isDevelopment) { + if (this.isDevelopmentOrProd) { if (projectData.status === 'active') { projectData.status = 1; } @@ -43,7 +43,7 @@ export class ProjectService { } deleteProject(projectId: string): Observable { - return this.isDevelopment + return this.isDevelopmentOrProd ? this.http.put(`${this.url}/${projectId}`, { status: 0 }) : this.http.delete(`${this.url}/${projectId}`); } 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 3ecc6f7e6..6954cc808 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 @@ -21,7 +21,7 @@ (search)="onClearedComponent($event)" (change)="onSelectedProject($event)" ngDefaultControl="project_name"> - +
diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.ts b/src/app/modules/shared/components/details-fields/details-fields.component.ts index 32b8c408b..580f0794d 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.ts +++ b/src/app/modules/shared/components/details-fields/details-fields.component.ts @@ -22,7 +22,7 @@ import { TechnologyState } from '../../store/technology.reducers'; import { EntryActionTypes } from './../../../time-clock/store/entry.actions'; import { SaveEntryEvent } from './save-entry-event'; import { ProjectSelectedEvent } from './project-selected-event'; -import { get } from 'lodash'; +import { get, isEmpty } from 'lodash'; import { DATE_FORMAT, DATE_FORMAT_YEAR } from 'src/environments/environment'; import { TechnologiesComponent } from '../technologies/technologies.component'; import { MatDatepicker } from '@angular/material/datepicker'; @@ -179,7 +179,7 @@ export class DetailsFieldsComponent implements OnChanges, OnInit { this.goingToWorkOnThis = this.entryToEdit?.running ? true : false; this.shouldRestartEntry = false; this.getRecentProjects(); - if (this.entryToEdit) { + if (this.entryToEdit && !isEmpty(this.entryToEdit)) { this.isTechnologiesDisabled = false; this.selectedTechnologies = this.entryToEdit.technologies; const projectFound = this.listProjects.find((project) => project.id === this.entryToEdit.project_id); diff --git a/src/app/modules/shared/components/sidebar/sidebar.component.html b/src/app/modules/shared/components/sidebar/sidebar.component.html index a7ebe74b9..66d7881b5 100644 --- a/src/app/modules/shared/components/sidebar/sidebar.component.html +++ b/src/app/modules/shared/components/sidebar/sidebar.component.html @@ -2,7 +2,7 @@