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;