diff options
Diffstat (limited to 'Timeline/ClientApp/src/app/todo-item')
4 files changed, 77 insertions, 0 deletions
diff --git a/Timeline/ClientApp/src/app/todo-item/todo-item.component.css b/Timeline/ClientApp/src/app/todo-item/todo-item.component.css new file mode 100644 index 00000000..ef952a04 --- /dev/null +++ b/Timeline/ClientApp/src/app/todo-item/todo-item.component.css @@ -0,0 +1,27 @@ +.item-card { + padding: 0; + display: flex; + overflow: hidden; +} + +.item-color-block { + width: 15px; + align-self: stretch; + flex: 0 0 auto; +} + +.item-icon { + width: 1.2em; + height: 1.2em; + vertical-align: -0.25em; +} + +.item-title { + vertical-align: middle; +} + +.item-detail-button { + width: unset; + height: unset; + line-height: unset; +} diff --git a/Timeline/ClientApp/src/app/todo-item/todo-item.component.html b/Timeline/ClientApp/src/app/todo-item/todo-item.component.html new file mode 100644 index 00000000..624586cb --- /dev/null +++ b/Timeline/ClientApp/src/app/todo-item/todo-item.component.html @@ -0,0 +1,11 @@ +<mat-card class="mat-elevation-z2 item-card"> + <span class="item-color-block" [class.color-block-closed]="item.closed" [class.color-block-open]="!item.closed"></span> + <!-- Do not move the margin style to class because there is some preset classes on mat-card children making it invalid. --> + <div class="mat-h3 item-body-box" style="margin: 5px;"> + <img class="item-icon" [src]="item.iconUrl" /> + <span class="item-title">{{ item.id }}. {{ item.title }}</span> + <a mat-icon-button class="item-detail-button" [href]="item.detailUrl"> + <mat-icon>arrow_forward</mat-icon> + </a> + </div> +</mat-card> diff --git a/Timeline/ClientApp/src/app/todo-item/todo-item.component.spec.ts b/Timeline/ClientApp/src/app/todo-item/todo-item.component.spec.ts new file mode 100644 index 00000000..7ec7d768 --- /dev/null +++ b/Timeline/ClientApp/src/app/todo-item/todo-item.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TodoItemComponent } from './todo-item.component'; + +describe('TodoItemComponent', () => { + let component: TodoItemComponent; + let fixture: ComponentFixture<TodoItemComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ TodoItemComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TodoItemComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Timeline/ClientApp/src/app/todo-item/todo-item.component.ts b/Timeline/ClientApp/src/app/todo-item/todo-item.component.ts new file mode 100644 index 00000000..27d57e28 --- /dev/null +++ b/Timeline/ClientApp/src/app/todo-item/todo-item.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit, Input } from '@angular/core'; +import { WorkItem } from '../todo-list-page/todo-list.service'; + +@Component({ + selector: 'app-todo-item', + templateUrl: './todo-item.component.html', + styleUrls: ['./todo-item.component.css', '../todo-list-page/todo-list-color-block.css'] +}) +export class TodoItemComponent { + + @Input() item: WorkItem; + + +} |