Browse Source

Merge pull request #2231 from yotamberk/template-fix

Fix templates and Item options
codeClimate
yotamberk 8 years ago
committed by GitHub
parent
commit
1d8a1820e0
4 changed files with 15 additions and 15 deletions
  1. +1
    -1
      lib/timeline/Core.js
  2. +9
    -11
      lib/timeline/Timeline.js
  3. +4
    -2
      lib/timeline/component/ItemSet.js
  4. +1
    -1
      lib/timeline/component/item/Item.js

+ 1
- 1
lib/timeline/Core.js View File

@ -1146,4 +1146,4 @@ Core.prototype._createConfigurator = function () {
throw new Error('Cannot invoke abstract method _createConfigurator'); throw new Error('Cannot invoke abstract method _createConfigurator');
}; };
module.exports = Core;
module.exports = Core;

+ 9
- 11
lib/timeline/Timeline.js View File

@ -28,8 +28,8 @@ import Validator from '../shared/Validator';
* @constructor * @constructor
* @extends Core * @extends Core
*/ */
function Timeline (container, items, groups, options) { function Timeline (container, items, groups, options) {
if (!(this instanceof Timeline)) { if (!(this instanceof Timeline)) {
throw new SyntaxError('Constructor must be called with the new operator'); throw new SyntaxError('Constructor must be called with the new operator');
} }
@ -45,22 +45,21 @@ function Timeline (container, items, groups, options) {
this.defaultOptions = { this.defaultOptions = {
start: null, start: null,
end: null, end: null,
autoResize: true, autoResize: true,
orientation: { orientation: {
axis: 'bottom', // axis orientation: 'bottom', 'top', or 'both' axis: 'bottom', // axis orientation: 'bottom', 'top', or 'both'
item: 'bottom' // not relevant item: 'bottom' // not relevant
}, },
moment: moment, moment: moment,
width: null, width: null,
height: null, height: null,
maxHeight: null, maxHeight: null,
minHeight: null minHeight: null
}; };
this.options = util.deepExtend({}, this.defaultOptions); this.options = util.deepExtend({}, this.defaultOptions);
if (options) {
this.options.rtl = options.rtl
}
// Create the DOM, props, and emitter // Create the DOM, props, and emitter
this._create(container); this._create(container);
@ -104,11 +103,6 @@ function Timeline (container, items, groups, options) {
// current time bar // current time bar
this.currentTime = new CurrentTime(this.body); this.currentTime = new CurrentTime(this.body);
this.components.push(this.currentTime); this.components.push(this.currentTime);
// apply options
if (options) {
this.setOptions(options);
}
// item set // item set
this.itemSet = new ItemSet(this.body, this.options); this.itemSet = new ItemSet(this.body, this.options);
@ -149,6 +143,11 @@ function Timeline (container, items, groups, options) {
} }
}); });
// apply options
if (options) {
this.setOptions(options);
}
// IMPORTANT: THIS HAPPENS BEFORE SET ITEMS! // IMPORTANT: THIS HAPPENS BEFORE SET ITEMS!
if (groups) { if (groups) {
this.setGroups(groups); this.setGroups(groups);
@ -194,7 +193,6 @@ Timeline.prototype.setOptions = function (options) {
if (errorFound === true) { if (errorFound === true) {
console.log('%cErrors have been found in the supplied options object.', printStyle); console.log('%cErrors have been found in the supplied options object.', printStyle);
} }
Core.prototype.setOptions.call(this, options); Core.prototype.setOptions.call(this, options);
if ('type' in options) { if ('type' in options) {

+ 4
- 2
lib/timeline/component/ItemSet.js View File

@ -95,7 +95,9 @@ function ItemSet(body, options) {
// options is shared by this ItemSet and all its items // options is shared by this ItemSet and all its items
this.options = util.extend({}, this.defaultOptions); this.options = util.extend({}, this.defaultOptions);
this.options.rtl = options.rtl;
if (options) {
this.options.rtl = options.rtl; // required to determine from the initial creation if rtl
}
// options for getting items from the DataSet with the correct type // options for getting items from the DataSet with the correct type
this.itemOptions = { this.itemOptions = {
@ -318,7 +320,7 @@ ItemSet.prototype.setOptions = function(options) {
// copy all options that we know // copy all options that we know
var fields = ['type', 'rtl', 'align', 'order', 'stack', 'selectable', 'multiselect', 'itemsAlwaysDraggable', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap']; var fields = ['type', 'rtl', 'align', 'order', 'stack', 'selectable', 'multiselect', 'itemsAlwaysDraggable', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap'];
util.selectiveExtend(fields, this.options, options); util.selectiveExtend(fields, this.options, options);
if ('orientation' in options) { if ('orientation' in options) {
if (typeof options.orientation === 'string') { if (typeof options.orientation === 'string') {
this.options.orientation.item = options.orientation === 'top' ? 'top' : 'bottom'; this.options.orientation.item = options.orientation === 'top' ? 'top' : 'bottom';

+ 1
- 1
lib/timeline/component/item/Item.js View File

@ -197,7 +197,7 @@ Item.prototype._updateContents = function (element) {
content = this.data.content; content = this.data.content;
} }
if (content instanceof Object) {
if ((content instanceof Object) && !(content instanceof Element)) {
templateFunction(itemData, element) templateFunction(itemData, element)
} else { } else {
var changed = this._contentToString(this.content) !== this._contentToString(content); var changed = this._contentToString(this.content) !== this._contentToString(content);

Loading…
Cancel
Save