diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 6365744e7..4aeaf92c6 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,3 +1,4 @@
+import { CommonModule } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -11,6 +12,10 @@ import { ClockComponent } from './components/shared/clock/clock.component';
import { ProjectManagementComponent } from './components/options-sidebar/project-management/project-management.component';
import { ProjectListComponent } from './components/shared/project-list/project-list.component';
import { CreateProjectComponent } from './components/shared/create-project/create-project.component';
+import { TimeClockComponent } from './components/options-sidebar/time-clock/time-clock.component';
+import { DetailsFieldsComponent } from './components/shared/details-fields/details-fields.component';
+import { ProjectListHoverComponent } from './components/shared/project-list-hover/project-list-hover.component';
+
@NgModule({
declarations: [
AppComponent,
@@ -20,9 +25,13 @@ import { CreateProjectComponent } from './components/shared/create-project/creat
ClockComponent,
ProjectManagementComponent,
ProjectListComponent,
- CreateProjectComponent
+ CreateProjectComponent,
+ TimeClockComponent,
+ DetailsFieldsComponent,
+ ProjectListHoverComponent,
],
imports: [
+ CommonModule,
BrowserModule,
AppRoutingModule,
FormsModule,
diff --git a/src/app/components/options-sidebar/time-clock/time-clock.component.css b/src/app/components/options-sidebar/time-clock/time-clock.component.css
index e69de29bb..0e808f74e 100644
--- a/src/app/components/options-sidebar/time-clock/time-clock.component.css
+++ b/src/app/components/options-sidebar/time-clock/time-clock.component.css
@@ -0,0 +1,10 @@
+.content-ClockIn {
+ padding: 2.1rem 1rem;
+}
+
+.timer {
+ align-items: center;
+ display: flex;
+ height: 100%;
+ justify-content: center;
+}
diff --git a/src/app/components/options-sidebar/time-clock/time-clock.component.html b/src/app/components/options-sidebar/time-clock/time-clock.component.html
index 80644640c..0f05d7ccc 100644
--- a/src/app/components/options-sidebar/time-clock/time-clock.component.html
+++ b/src/app/components/options-sidebar/time-clock/time-clock.component.html
@@ -1,5 +1,20 @@
-
-
-
time-clock works!
-
-
\ No newline at end of file
+
diff --git a/src/app/components/options-sidebar/time-clock/time-clock.component.spec.ts b/src/app/components/options-sidebar/time-clock/time-clock.component.spec.ts
index 1c55547bb..57bb82d9e 100644
--- a/src/app/components/options-sidebar/time-clock/time-clock.component.spec.ts
+++ b/src/app/components/options-sidebar/time-clock/time-clock.component.spec.ts
@@ -1,16 +1,15 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { async, ComponentFixture, TestBed } from "@angular/core/testing";
-import { TimeClockComponent } from './time-clock.component';
+import { TimeClockComponent } from "./time-clock.component";
-describe('TimeClockComponent', () => {
+describe("TimeClockComponent", () => {
let component: TimeClockComponent;
let fixture: ComponentFixture;
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ TimeClockComponent ]
- })
- .compileComponents();
+ declarations: [TimeClockComponent]
+ }).compileComponents();
}));
beforeEach(() => {
@@ -19,7 +18,14 @@ describe('TimeClockComponent', () => {
fixture.detectChanges();
});
- it('should be created', () => {
+ it("should be created", () => {
expect(component).toBeTruthy();
});
+
+ it("should set showfileds as true", () => {
+ const show = true;
+ component.showFields = show;
+ component.getShowFields(show);
+ expect(component.showFields).toBe(true);
+ });
});
diff --git a/src/app/components/options-sidebar/time-clock/time-clock.component.ts b/src/app/components/options-sidebar/time-clock/time-clock.component.ts
index f34bb7b11..9dee1bba7 100644
--- a/src/app/components/options-sidebar/time-clock/time-clock.component.ts
+++ b/src/app/components/options-sidebar/time-clock/time-clock.component.ts
@@ -1,15 +1,25 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit } from "@angular/core";
@Component({
- selector: 'app-time-clock',
- templateUrl: './time-clock.component.html',
- styleUrls: ['./time-clock.component.css']
+ selector: "app-time-clock",
+ templateUrl: "./time-clock.component.html",
+ styleUrls: ["./time-clock.component.css"]
})
export class TimeClockComponent implements OnInit {
+ projects = [
+ { id: "P1", name: "Project 1" },
+ { id: "P2", name: "Project 2" },
+ { id: "P3", name: "Project 3" },
+ { id: "P4", name: "Project 4" }
+ ];
- constructor() { }
+ showFields: boolean;
- ngOnInit(): void {
- }
+ constructor() {}
+
+ ngOnInit(): void {}
+ getShowFields(show: boolean) {
+ this.showFields = show;
+ }
}
diff --git a/src/app/components/shared/details-fields/details-fields.component.css b/src/app/components/shared/details-fields/details-fields.component.css
new file mode 100644
index 000000000..82869783c
--- /dev/null
+++ b/src/app/components/shared/details-fields/details-fields.component.css
@@ -0,0 +1,3 @@
+.span-width {
+ width: 6rem;
+}
diff --git a/src/app/components/shared/details-fields/details-fields.component.html b/src/app/components/shared/details-fields/details-fields.component.html
new file mode 100644
index 000000000..7365bc192
--- /dev/null
+++ b/src/app/components/shared/details-fields/details-fields.component.html
@@ -0,0 +1,44 @@
+
+
diff --git a/src/app/components/shared/details-fields/details-fields.component.spec.ts b/src/app/components/shared/details-fields/details-fields.component.spec.ts
new file mode 100644
index 000000000..18266ca45
--- /dev/null
+++ b/src/app/components/shared/details-fields/details-fields.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { DetailsFieldsComponent } from './details-fields.component';
+
+describe('DetailsFieldsComponent', () => {
+ let component: DetailsFieldsComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ DetailsFieldsComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(DetailsFieldsComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/components/shared/details-fields/details-fields.component.ts b/src/app/components/shared/details-fields/details-fields.component.ts
new file mode 100644
index 000000000..eea5de70b
--- /dev/null
+++ b/src/app/components/shared/details-fields/details-fields.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-details-fields',
+ templateUrl: './details-fields.component.html',
+ styleUrls: ['./details-fields.component.css']
+})
+export class DetailsFieldsComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit(): void {
+ }
+
+}
diff --git a/src/app/components/shared/project-list-hover/project-list-hover.component.css b/src/app/components/shared/project-list-hover/project-list-hover.component.css
new file mode 100644
index 000000000..4bdee70fe
--- /dev/null
+++ b/src/app/components/shared/project-list-hover/project-list-hover.component.css
@@ -0,0 +1,15 @@
+.content-projects {
+ max-height: 10rem;
+ overflow-x: auto;
+}
+
+.content-projects > li {
+ cursor: pointer;
+ font-size: 0.8rem;
+ padding: 0.5rem 0.8rem;
+}
+
+.button-clockIn {
+ font-size: 0.7rem;
+ padding: 0 0.3rem;
+}
diff --git a/src/app/components/shared/project-list-hover/project-list-hover.component.html b/src/app/components/shared/project-list-hover/project-list-hover.component.html
new file mode 100644
index 000000000..212bf4d2d
--- /dev/null
+++ b/src/app/components/shared/project-list-hover/project-list-hover.component.html
@@ -0,0 +1,17 @@
+
+ -
+ {{ item.name }}
+ Clock In
+
+
diff --git a/src/app/components/shared/project-list-hover/project-list-hover.component.spec.ts b/src/app/components/shared/project-list-hover/project-list-hover.component.spec.ts
new file mode 100644
index 000000000..85024d03a
--- /dev/null
+++ b/src/app/components/shared/project-list-hover/project-list-hover.component.spec.ts
@@ -0,0 +1,38 @@
+import { async, ComponentFixture, TestBed } from "@angular/core/testing";
+
+import { ProjectListHoverComponent } from "./project-list-hover.component";
+
+describe("ProjectListHoverComponent", () => {
+ let component: ProjectListHoverComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ProjectListHoverComponent]
+ }).compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ProjectListHoverComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it("should create", () => {
+ expect(component).toBeTruthy();
+ });
+
+ it("should set selectedId with Id", () => {
+ const id: string = "P1";
+ component.clockIn(id);
+ expect(component.selectedId).toBe(id);
+ });
+
+ it("should emit showFields event", () => {
+ const id: string = "P1";
+ component.showFields.subscribe((showFields: boolean) =>
+ expect(showFields).toEqual(true)
+ );
+ component.clockIn(id);
+ });
+});
diff --git a/src/app/components/shared/project-list-hover/project-list-hover.component.ts b/src/app/components/shared/project-list-hover/project-list-hover.component.ts
new file mode 100644
index 000000000..caf0c8b4c
--- /dev/null
+++ b/src/app/components/shared/project-list-hover/project-list-hover.component.ts
@@ -0,0 +1,25 @@
+import { Component, OnInit, Input, Output, EventEmitter } from "@angular/core";
+
+@Component({
+ selector: "app-project-list-hover",
+ templateUrl: "./project-list-hover.component.html",
+ styleUrls: ["./project-list-hover.component.css"]
+})
+export class ProjectListHoverComponent implements OnInit {
+ @Input() projects: any;
+ @Output() showFields = new EventEmitter();
+
+ selectedId: string;
+ showButton: number;
+
+ constructor() {
+ this.showButton = -1;
+ }
+
+ ngOnInit(): void {}
+
+ clockIn(id: string) {
+ this.selectedId = id;
+ this.showFields.emit(true);
+ }
+}