diff --git a/src/scripts/js/es6/common/vuecomponents/assetstable/rows/AssetRowsSource.js b/src/scripts/js/es6/common/vuecomponents/assetstable/rows/AssetRowsSource.js
index 1a94caa..d3c36a2 100644
--- a/src/scripts/js/es6/common/vuecomponents/assetstable/rows/AssetRowsSource.js
+++ b/src/scripts/js/es6/common/vuecomponents/assetstable/rows/AssetRowsSource.js
@@ -6,7 +6,7 @@ class AssetRowsSource extends AttractRowsSourceBase {
super(projectId, 'attract_asset', AssetRow);
}
- thenFetchObjects() {
+ thenGetRowObjects() {
return attract.api.thenGetProjectAssets(this.projectId)
.then((result) => {
let assets = result._items;
diff --git a/src/scripts/js/es6/common/vuecomponents/attracttable/rows/AttractRowsSourceBase.js b/src/scripts/js/es6/common/vuecomponents/attracttable/rows/AttractRowsSourceBase.js
index 434c6c9..9970050 100644
--- a/src/scripts/js/es6/common/vuecomponents/attracttable/rows/AttractRowsSourceBase.js
+++ b/src/scripts/js/es6/common/vuecomponents/attracttable/rows/AttractRowsSourceBase.js
@@ -1,5 +1,9 @@
let RowObjectsSourceBase = pillar.vuecomponents.table.rows.RowObjectsSourceBase;
+/**
+ * Base for all attract tables. Listens to events on create/delete events and keeps the the source up to date
+ * accordingly.
+ */
class AttractRowsSourceBase extends RowObjectsSourceBase {
constructor(projectId, node_type, rowClass) {
super(projectId);
diff --git a/src/scripts/js/es6/common/vuecomponents/attracttable/rows/TaskEventListener.js b/src/scripts/js/es6/common/vuecomponents/attracttable/rows/TaskEventListener.js
index a79dd6e..cea6eeb 100644
--- a/src/scripts/js/es6/common/vuecomponents/attracttable/rows/TaskEventListener.js
+++ b/src/scripts/js/es6/common/vuecomponents/attracttable/rows/TaskEventListener.js
@@ -21,6 +21,7 @@ export class TaskEventListener {
onTaskCreated(event) {
let task = new TaskRow(event.detail);
+ task.thenInit();
this.registerEventListeners(task);
this.rowObject.tasks = this.rowObject.tasks.concat(task);
}
diff --git a/src/scripts/js/es6/common/vuecomponents/detailedview/Empty.js b/src/scripts/js/es6/common/vuecomponents/detailedview/Empty.js
index 09821f9..6b87c7f 100644
--- a/src/scripts/js/es6/common/vuecomponents/detailedview/Empty.js
+++ b/src/scripts/js/es6/common/vuecomponents/detailedview/Empty.js
@@ -2,6 +2,9 @@ const TEMPLATE =`
Select Something
`;
+/**
+ * For when nothing is selected in the table
+ */
let Empty = Vue.component('attract-editor-empty', {
template: TEMPLATE,
});
diff --git a/src/scripts/js/es6/common/vuecomponents/detailedview/MultipleTypes.js b/src/scripts/js/es6/common/vuecomponents/detailedview/MultipleTypes.js
index 870c423..02e1ddd 100644
--- a/src/scripts/js/es6/common/vuecomponents/detailedview/MultipleTypes.js
+++ b/src/scripts/js/es6/common/vuecomponents/detailedview/MultipleTypes.js
@@ -4,6 +4,9 @@ const TEMPLATE =`
`;
+/**
+ * For when objects of different node_type is selected.
+ */
let MultipleTypes = Vue.component('attract-editor-multiple-types', {
template: TEMPLATE,
});
diff --git a/src/scripts/js/es6/common/vuecomponents/detailedview/Viewer.js b/src/scripts/js/es6/common/vuecomponents/detailedview/Viewer.js
index 8490074..c7282ad 100644
--- a/src/scripts/js/es6/common/vuecomponents/detailedview/Viewer.js
+++ b/src/scripts/js/es6/common/vuecomponents/detailedview/Viewer.js
@@ -51,11 +51,6 @@ Vue.component('attract-detailed-view', {
isActivitiesOutdated: true
}
},
- data() {
- return {
- isActivitiesOutdated: true
- }
- },
computed: {
headerText() {
switch(this.items.length) {
@@ -111,4 +106,3 @@ Vue.component('attract-detailed-view', {
}
},
});
-
diff --git a/src/scripts/js/es6/common/vuecomponents/editor/base/ConclusiveMark.js b/src/scripts/js/es6/common/vuecomponents/editor/base/ConclusiveMark.js
index 6675b7f..4c2c04f 100644
--- a/src/scripts/js/es6/common/vuecomponents/editor/base/ConclusiveMark.js
+++ b/src/scripts/js/es6/common/vuecomponents/editor/base/ConclusiveMark.js
@@ -6,10 +6,13 @@ const TEMPLATE =`
/>
`;
+/**
+ * Draws a chain icon. If property is inconclusive it becomes a broken chain.
+ */
Vue.component('attract-property-conslusive-mark', {
template: TEMPLATE,
props: {
- prop: Object,
+ prop: Object, // MultiProperty
},
computed: {
classes() {
diff --git a/src/scripts/js/es6/common/vuecomponents/editor/base/DatePicker.js b/src/scripts/js/es6/common/vuecomponents/editor/base/DatePicker.js
index 7b47fe8..1175aff 100644
--- a/src/scripts/js/es6/common/vuecomponents/editor/base/DatePicker.js
+++ b/src/scripts/js/es6/common/vuecomponents/editor/base/DatePicker.js
@@ -47,4 +47,5 @@ Vue.component('attract-date-picker', {
this.picker.setDate(this.value);
}
},
- })
+ }
+);
diff --git a/src/scripts/js/es6/common/vuecomponents/editor/base/EditorBase.js b/src/scripts/js/es6/common/vuecomponents/editor/base/EditorBase.js
index c9faa6b..d88afe6 100644
--- a/src/scripts/js/es6/common/vuecomponents/editor/base/EditorBase.js
+++ b/src/scripts/js/es6/common/vuecomponents/editor/base/EditorBase.js
@@ -2,6 +2,9 @@ import {MultiEditEngine} from './MultiEditEngine'
let UnitOfWorkTracker = pillar.vuecomponents.mixins.UnitOfWorkTracker;
+/**
+ * Properties to be edited and/or read using the multi editor engine.
+ */
const BaseProps = Object.freeze({
NAME: 'name',
DESCRIPTION: 'description',
@@ -15,10 +18,16 @@ for (const key in BaseProps) {
ALL_BASE_PROPERTIES.push(BaseProps[key]);
}
+
+/**
+ * The base implementation of node editor.
+ * Extend to fit your needs.
+ * @emits objects-are-edited(isEdited) When the user starts editing the objects.
+ */
let EditorBase = Vue.component('attract-editor-Base', {
mixins: [UnitOfWorkTracker],
props: {
- items: Array,
+ items: Array, // Array of objects to be edited.
project: Object,
},
data() {
@@ -29,7 +38,7 @@ let EditorBase = Vue.component('attract-editor-Base', {
},
watch: {
items() {
- this.multiEditEngine = this.createEditorEngine(ALL_BASE_PROPERTIES);
+ this.multiEditEngine = this.createEditorEngine(ALL_BASE_PROPERTIES); // MultiEditEngine
},
statusPropEdited(isEdited) {
if(isEdited && this.items.length === 1) {
@@ -98,15 +107,16 @@ let EditorBase = Vue.component('attract-editor-Base', {
}
},
methods: {
+ /**
+ * @param {MultiProperty} prop
+ * @returns {Object} Css classes for property
+ */
classesForProperty(prop) {
return {
'inconclusive': !prop.isConclusive(),
'edited': prop.isEdited(),
}
},
- conclusiveIcon(prop) {
- return prop.isConclusive() ? 'pi-link' : 'pi-unlink';
- },
createEditorEngine(props) {
return new MultiEditEngine(this.items, ...props);
},
diff --git a/src/scripts/js/es6/common/vuecomponents/editor/base/TextArea.js b/src/scripts/js/es6/common/vuecomponents/editor/base/TextArea.js
index 7745b75..8918139 100644
--- a/src/scripts/js/es6/common/vuecomponents/editor/base/TextArea.js
+++ b/src/scripts/js/es6/common/vuecomponents/editor/base/TextArea.js
@@ -6,6 +6,9 @@ const TEMPLATE = `
type="text"
rows="2"/>
`;
+/**
+ * Wrapper around regular textarea to make it grow in length as you type.
+ */
Vue.component('attract-editor-text-area', {
template: TEMPLATE,
props: {
diff --git a/src/scripts/js/es6/common/vuecomponents/shotstable/rows/ShotRowsSource.js b/src/scripts/js/es6/common/vuecomponents/shotstable/rows/ShotRowsSource.js
index a919095..657edb2 100644
--- a/src/scripts/js/es6/common/vuecomponents/shotstable/rows/ShotRowsSource.js
+++ b/src/scripts/js/es6/common/vuecomponents/shotstable/rows/ShotRowsSource.js
@@ -6,7 +6,7 @@ class ShotRowsSource extends AttractRowsSourceBase {
super(projectId, 'attract_asset', ShotRow);
}
- thenFetchObjects() {
+ thenGetRowObjects() {
return attract.api.thenGetProjectShots(this.projectId)
.then((result) => {
let shots = result._items;
diff --git a/src/scripts/js/es6/common/vuecomponents/taskstable/rows/TaskRowsSource.js b/src/scripts/js/es6/common/vuecomponents/taskstable/rows/TaskRowsSource.js
index d02ff87..73e01cb 100644
--- a/src/scripts/js/es6/common/vuecomponents/taskstable/rows/TaskRowsSource.js
+++ b/src/scripts/js/es6/common/vuecomponents/taskstable/rows/TaskRowsSource.js
@@ -6,7 +6,7 @@ class TaskRowsSource extends AttractRowsSourceBase {
super(projectId, 'attract_task', TaskRow);
}
- thenFetchObjects() {
+ thenGetRowObjects() {
return attract.api.thenGetProjectTasks(this.projectId)
.then((result) => {
let tasks = result._items;