2019-02-12 09:08:37 +01:00
|
|
|
import {AttractRowBase} from '../../attracttable/rows/AttractRowBase'
|
|
|
|
import { TaskEventListener } from '../../attracttable/rows/TaskEventListener';
|
2019-03-13 13:53:40 +01:00
|
|
|
import { TaskRow } from '../../taskstable/rows/TaskRow';
|
2019-02-12 09:08:37 +01:00
|
|
|
|
|
|
|
class ShotRow extends AttractRowBase {
|
|
|
|
constructor(shot) {
|
|
|
|
super(shot);
|
|
|
|
this.tasks = [];
|
|
|
|
}
|
|
|
|
|
2019-03-13 13:53:40 +01:00
|
|
|
_thenInitImpl() {
|
2019-02-12 09:08:37 +01:00
|
|
|
return attract.api.thenGetTasks(this.getId())
|
|
|
|
.then((response) => {
|
2019-03-13 13:53:40 +01:00
|
|
|
this.tasks = response._items.map(t => new TaskRow(t));
|
2019-02-12 09:08:37 +01:00
|
|
|
this.registerTaskEventListeners();
|
2019-03-13 13:53:40 +01:00
|
|
|
|
|
|
|
return Promise.all(
|
|
|
|
this.tasks.map(t => t.thenInit())
|
|
|
|
);
|
2019-02-12 09:08:37 +01:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
registerTaskEventListeners() {
|
|
|
|
new TaskEventListener(this).register();
|
|
|
|
}
|
|
|
|
|
|
|
|
getTasksOfType(taskType) {
|
|
|
|
return this.tasks.filter((t) => {
|
2019-03-13 13:53:40 +01:00
|
|
|
return t.getProperties().task_type === taskType;
|
2019-02-12 09:08:37 +01:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
getRowClasses() {
|
|
|
|
let classes = super.getRowClasses()
|
|
|
|
if(this.isInitialized) {
|
|
|
|
classes['shot-not-in-edit'] = !this.underlyingObject.properties.used_in_edit;
|
|
|
|
}
|
|
|
|
return classes;
|
|
|
|
}
|
2019-03-13 13:53:40 +01:00
|
|
|
|
|
|
|
getChildObjects() {
|
|
|
|
return this.tasks;
|
|
|
|
}
|
2019-02-12 09:08:37 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
export { ShotRow }
|