diff --git a/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.html b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.html
new file mode 100644
index 000000000..813e7cd21
--- /dev/null
+++ b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.html
@@ -0,0 +1,69 @@
+
+
+
+
0; else noAttributes">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ There is currently no {{ callbackInfo ? 'callback information' : 'custom attribute'}}.
+
+
+
+
+
+
+
diff --git a/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.scss b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.scss
new file mode 100644
index 000000000..7b886de1d
--- /dev/null
+++ b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.scss
@@ -0,0 +1,66 @@
+@import 'src/theme/_colors.scss';
+
+.task-attribute-value {
+
+ &__button--primary {
+ background-color: $aquamarine;
+ color: white;
+ margin-top: 16px;
+ }
+
+ &__button--secondary {
+ min-width: 16px;
+ left: 8px;
+ }
+
+ &__table {
+ display: flex;
+ flex-direction: column;
+ }
+
+ &__header {
+ flex-grow: 1;
+ text-align: center;
+ font-weight: bold;
+ }
+
+ &__row {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ padding: 8px 0;
+ }
+
+ &__column--button {
+ width: 60px;
+ display: flex;
+ align-items: center;
+ }
+
+ &__column--inputs {
+ flex-grow: 1;
+ }
+
+ &__spacer {
+ width: 8px;
+ }
+
+ &__background-grey {
+ background-color: $light-grey;
+ }
+
+ &__background-white {
+ background-color: white;
+ }
+}
+
+::ng-deep .mat-form-field-wrapper {
+ padding: 0;
+}
+
+::ng-deep .task-attribute-value__column--inputs > .mat-form-field-appearance-outline > div.mat-form-field-wrapper > div.mat-form-field-flex > div.mat-form-field-infix {
+ border-top-width: 0;
+ height: 40px;
+}
+
+
diff --git a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.spec.ts b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.spec.ts
similarity index 57%
rename from web/src/app/workplace/components/taskdetails-attribute/attribute.component.spec.ts
rename to web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.spec.ts
index 106aeccd8..20ef6392e 100644
--- a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.spec.ts
+++ b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.spec.ts
@@ -1,22 +1,22 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule } from '@angular/forms';
-import { TaskdetailsAttributeComponent } from './attribute.component';
+import { TaskAttributeValueComponent } from './task-attribute-value.component';
// TODO: test pending to test. Failing random
-xdescribe('AttributeComponent', () => {
- let component: TaskdetailsAttributeComponent;
- let fixture: ComponentFixture;
+xdescribe('TaskAttributeValueComponent', () => {
+ let component: TaskAttributeValueComponent;
+ let fixture: ComponentFixture;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [FormsModule],
- declarations: [TaskdetailsAttributeComponent]
+ declarations: [TaskAttributeValueComponent]
}).compileComponents();
}));
beforeEach(() => {
- fixture = TestBed.createComponent(TaskdetailsAttributeComponent);
+ fixture = TestBed.createComponent(TaskAttributeValueComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
diff --git a/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.ts b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.ts
new file mode 100644
index 000000000..ba9abb1d3
--- /dev/null
+++ b/web/src/app/workplace/components/task-attribute-value/task-attribute-value.component.ts
@@ -0,0 +1,22 @@
+import { Component, Input, OnInit } from '@angular/core';
+import { CustomAttribute } from 'app/workplace/models/task';
+
+@Component({
+ selector: 'taskana-task-attribute-value',
+ templateUrl: './task-attribute-value.component.html',
+ styleUrls: ['./task-attribute-value.component.scss']
+})
+export class TaskAttributeValueComponent implements OnInit {
+ @Input() callbackInfo = false;
+ @Input() attributes: CustomAttribute[] = [];
+
+ ngOnInit() {}
+
+ addAttribute(): void {
+ this.attributes.push({ key: '', value: '' });
+ }
+
+ removeAttribute(idx: number): void {
+ this.attributes.splice(idx, 1);
+ }
+}
diff --git a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.html b/web/src/app/workplace/components/taskdetails-attribute/attribute.component.html
deleted file mode 100644
index 79c42d195..000000000
--- a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
diff --git a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.scss b/web/src/app/workplace/components/taskdetails-attribute/attribute.component.scss
deleted file mode 100644
index 5a5e6c4cd..000000000
--- a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.table__remove-col {
- width: 57px;
-}
diff --git a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.ts b/web/src/app/workplace/components/taskdetails-attribute/attribute.component.ts
deleted file mode 100644
index 82f6d0964..000000000
--- a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { CustomAttribute } from 'app/workplace/models/task';
-
-@Component({
- selector: 'taskana-task-details-attributes',
- templateUrl: './attribute.component.html',
- styleUrls: ['./attribute.component.scss']
-})
-export class TaskdetailsAttributeComponent implements OnInit {
- @Input() callbackInfo = false;
- @Input() attributes: CustomAttribute[] = [];
- @Output() attributesChange: EventEmitter = new EventEmitter();
-
- ngOnInit() {}
-
- addAttribute(): void {
- this.attributes.push({ key: '', value: '' });
- }
-
- removeAttribute(idx: number): void {
- this.attributes.splice(idx, 1);
- }
-}
diff --git a/web/src/app/workplace/components/taskdetails/taskdetails.component.html b/web/src/app/workplace/components/taskdetails/taskdetails.component.html
index e0e88c110..68a9e0d3b 100644
--- a/web/src/app/workplace/components/taskdetails/taskdetails.component.html
+++ b/web/src/app/workplace/components/taskdetails/taskdetails.component.html
@@ -66,7 +66,7 @@
{{accordion4State ?
'expand_more' : 'expand_less'}}
-
+
@@ -75,8 +75,8 @@
{{accordion5State ?
'expand_more' : 'expand_less'}}
-
+
diff --git a/web/src/app/workplace/components/taskdetails/taskdetails.component.spec.ts b/web/src/app/workplace/components/taskdetails/taskdetails.component.spec.ts
index 60b905824..2a4407b92 100644
--- a/web/src/app/workplace/components/taskdetails/taskdetails.component.spec.ts
+++ b/web/src/app/workplace/components/taskdetails/taskdetails.component.spec.ts
@@ -9,7 +9,7 @@ import { HttpClient, HttpClientModule } from '@angular/common/http';
import { RequestInProgressService } from 'app/shared/services/request-in-progress/request-in-progress.service';
import { WorkplaceService } from '../../services/workplace.service';
import { TaskService } from '../../services/task.service';
-import { TaskdetailsAttributeComponent } from '../taskdetails-attribute/attribute.component';
+import { TaskAttributeValueComponent } from '../task-attribute-value/task-attribute-value.component';
import { TaskdetailsCustomFieldsComponent } from '../taskdetails-custom-fields/custom-fields.component';
import { TaskdetailsGeneralFieldsComponent } from '../taskdetails-general/general-fields.component';
import { TaskdetailsComponent } from './taskdetails.component';
@@ -35,7 +35,7 @@ xdescribe('TaskdetailsComponent', () => {
SpinnerComponent,
TaskdetailsGeneralFieldsComponent,
TaskdetailsCustomFieldsComponent,
- TaskdetailsAttributeComponent,
+ TaskAttributeValueComponent,
DummyDetailComponent
],
imports: [FormsModule, RouterTestingModule.withRoutes(routes), HttpClientModule],
diff --git a/web/src/app/workplace/workplace.module.ts b/web/src/app/workplace/workplace.module.ts
index a0ff59e2a..6f7ae9834 100644
--- a/web/src/app/workplace/workplace.module.ts
+++ b/web/src/app/workplace/workplace.module.ts
@@ -15,7 +15,7 @@ import { TaskMasterComponent } from './components/task-master/task-master.compon
import { TaskdetailsComponent } from './components/taskdetails/taskdetails.component';
import { TaskdetailsGeneralFieldsComponent } from './components/taskdetails-general/general-fields.component';
import { TaskdetailsCustomFieldsComponent } from './components/taskdetails-custom-fields/custom-fields.component';
-import { TaskdetailsAttributeComponent } from './components/taskdetails-attribute/attribute.component';
+import { TaskAttributeValueComponent } from './components/task-attribute-value/task-attribute-value.component';
import { TaskComponent } from './components/task/task.component';
import { TaskStatusDetailsComponent } from './components/task-status-details/task-status-details.component';
import { TaskListComponent } from './components/task-list/task-list.component';
@@ -56,7 +56,7 @@ const DECLARATIONS = [
TaskdetailsComponent,
TaskdetailsGeneralFieldsComponent,
TaskdetailsCustomFieldsComponent,
- TaskdetailsAttributeComponent,
+ TaskAttributeValueComponent,
TaskComponent,
TaskStatusDetailsComponent,
TaskListComponent