Browse Source

Refactored the property names of DataSet and DataView to having underscore prefixes

css_transitions
jos 10 years ago
parent
commit
b6d5da3a8c
4 changed files with 103 additions and 153 deletions
  1. +62
    -100
      src/DataSet.js
  2. +35
    -37
      src/DataView.js
  3. +4
    -5
      src/timeline/component/ItemSet.js
  4. +2
    -11
      test/dataset.js

+ 62
- 100
src/DataSet.js View File

@ -37,43 +37,39 @@
*/ */
// TODO: add a DataSet constructor DataSet(data, options) // TODO: add a DataSet constructor DataSet(data, options)
function DataSet (data, options) { function DataSet (data, options) {
this.id = util.randomUUID();
// correctly read optional arguments // correctly read optional arguments
if (data && !Array.isArray(data) && !util.isDataTable(data)) { if (data && !Array.isArray(data) && !util.isDataTable(data)) {
options = data; options = data;
data = null; data = null;
} }
this.options = options || {};
this.data = {}; // map with data indexed by id
this.fieldId = this.options.fieldId || 'id'; // name of the field containing id
this.type = {}; // internal field types (NOTE: this can differ from this.options.type)
this.showInternalIds = this.options.showInternalIds || false; // show internal ids with the get function
this._options = options || {};
this._data = {}; // map with data indexed by id
this._fieldId = this._options.fieldId || 'id'; // name of the field containing id
this._type = {}; // internal field types (NOTE: this can differ from this._options.type)
// all variants of a Date are internally stored as Date, so we can convert // all variants of a Date are internally stored as Date, so we can convert
// from everything to everything (also from ISODate to Number for example) // from everything to everything (also from ISODate to Number for example)
if (this.options.type) {
for (var field in this.options.type) {
if (this.options.type.hasOwnProperty(field)) {
var value = this.options.type[field];
if (this._options.type) {
for (var field in this._options.type) {
if (this._options.type.hasOwnProperty(field)) {
var value = this._options.type[field];
if (value == 'Date' || value == 'ISODate' || value == 'ASPDate') { if (value == 'Date' || value == 'ISODate' || value == 'ASPDate') {
this.type[field] = 'Date';
this._type[field] = 'Date';
} }
else { else {
this.type[field] = value;
this._type[field] = value;
} }
} }
} }
} }
// TODO: deprecated since version 1.1.1 (or 2.0.0?) // TODO: deprecated since version 1.1.1 (or 2.0.0?)
if (this.options.convert) {
if (this._options.convert) {
throw new Error('Option "convert" is deprecated. Use "type" instead.'); throw new Error('Option "convert" is deprecated. Use "type" instead.');
} }
this.subscribers = {}; // event subscribers
this.internalIds = {}; // internally generated id's
this._subscribers = {}; // event subscribers
// add initial data when provided // add initial data when provided
if (data) { if (data) {
@ -91,10 +87,10 @@ function DataSet (data, options) {
* {String | Number} senderId * {String | Number} senderId
*/ */
DataSet.prototype.on = function(event, callback) { DataSet.prototype.on = function(event, callback) {
var subscribers = this.subscribers[event];
var subscribers = this._subscribers[event];
if (!subscribers) { if (!subscribers) {
subscribers = []; subscribers = [];
this.subscribers[event] = subscribers;
this._subscribers[event] = subscribers;
} }
subscribers.push({ subscribers.push({
@ -111,9 +107,9 @@ DataSet.prototype.subscribe = DataSet.prototype.on;
* @param {function} callback * @param {function} callback
*/ */
DataSet.prototype.off = function(event, callback) { DataSet.prototype.off = function(event, callback) {
var subscribers = this.subscribers[event];
var subscribers = this._subscribers[event];
if (subscribers) { if (subscribers) {
this.subscribers[event] = subscribers.filter(function (listener) {
this._subscribers[event] = subscribers.filter(function (listener) {
return (listener.callback != callback); return (listener.callback != callback);
}); });
} }
@ -135,11 +131,11 @@ DataSet.prototype._trigger = function (event, params, senderId) {
} }
var subscribers = []; var subscribers = [];
if (event in this.subscribers) {
subscribers = subscribers.concat(this.subscribers[event]);
if (event in this._subscribers) {
subscribers = subscribers.concat(this._subscribers[event]);
} }
if ('*' in this.subscribers) {
subscribers = subscribers.concat(this.subscribers['*']);
if ('*' in this._subscribers) {
subscribers = subscribers.concat(this._subscribers['*']);
} }
for (var i = 0; i < subscribers.length; i++) { for (var i = 0; i < subscribers.length; i++) {
@ -209,11 +205,11 @@ DataSet.prototype.update = function (data, senderId) {
var addedIds = [], var addedIds = [],
updatedIds = [], updatedIds = [],
me = this, me = this,
fieldId = me.fieldId;
fieldId = me._fieldId;
var addOrUpdate = function (item) { var addOrUpdate = function (item) {
var id = item[fieldId]; var id = item[fieldId];
if (me.data[id]) {
if (me._data[id]) {
// update item // update item
id = me._updateItem(item); id = me._updateItem(item);
updatedIds.push(id); updatedIds.push(id);
@ -299,7 +295,6 @@ DataSet.prototype.update = function (data, senderId) {
*/ */
DataSet.prototype.get = function (args) { DataSet.prototype.get = function (args) {
var me = this; var me = this;
var globalShowInternalIds = this.showInternalIds;
// parse the arguments // parse the arguments
var id, ids, options, data; var id, ids, options, data;
@ -343,15 +338,8 @@ DataSet.prototype.get = function (args) {
returnType = 'Array'; returnType = 'Array';
} }
// we allow the setting of this value for a single get request.
if (options != undefined) {
if (options.showInternalIds != undefined) {
this.showInternalIds = options.showInternalIds;
}
}
// build options // build options
var type = options && options.type || this.options.type;
var type = options && options.type || this._options.type;
var filter = options && options.filter; var filter = options && options.filter;
var items = [], item, itemId, i, len; var items = [], item, itemId, i, len;
@ -374,8 +362,8 @@ DataSet.prototype.get = function (args) {
} }
else { else {
// return all items // return all items
for (itemId in this.data) {
if (this.data.hasOwnProperty(itemId)) {
for (itemId in this._data) {
if (this._data.hasOwnProperty(itemId)) {
item = me._getItem(itemId, type); item = me._getItem(itemId, type);
if (!filter || filter(item)) { if (!filter || filter(item)) {
items.push(item); items.push(item);
@ -384,9 +372,6 @@ DataSet.prototype.get = function (args) {
} }
} }
// restore the global value of showInternalIds
this.showInternalIds = globalShowInternalIds;
// order the results // order the results
if (options && options.order && id == undefined) { if (options && options.order && id == undefined) {
this._sort(items, options.order); this._sort(items, options.order);
@ -452,10 +437,10 @@ DataSet.prototype.get = function (args) {
* @return {Array} ids * @return {Array} ids
*/ */
DataSet.prototype.getIds = function (options) { DataSet.prototype.getIds = function (options) {
var data = this.data,
var data = this._data,
filter = options && options.filter, filter = options && options.filter,
order = options && options.order, order = options && options.order,
type = options && options.type || this.options.type,
type = options && options.type || this._options.type,
i, i,
len, len,
id, id,
@ -480,7 +465,7 @@ DataSet.prototype.getIds = function (options) {
this._sort(items, order); this._sort(items, order);
for (i = 0, len = items.length; i < len; i++) { for (i = 0, len = items.length; i < len; i++) {
ids[i] = items[i][this.fieldId];
ids[i] = items[i][this._fieldId];
} }
} }
else { else {
@ -489,7 +474,7 @@ DataSet.prototype.getIds = function (options) {
if (data.hasOwnProperty(id)) { if (data.hasOwnProperty(id)) {
item = this._getItem(id, type); item = this._getItem(id, type);
if (filter(item)) { if (filter(item)) {
ids.push(item[this.fieldId]);
ids.push(item[this._fieldId]);
} }
} }
} }
@ -509,7 +494,7 @@ DataSet.prototype.getIds = function (options) {
this._sort(items, order); this._sort(items, order);
for (i = 0, len = items.length; i < len; i++) { for (i = 0, len = items.length; i < len; i++) {
ids[i] = items[i][this.fieldId];
ids[i] = items[i][this._fieldId];
} }
} }
else { else {
@ -517,7 +502,7 @@ DataSet.prototype.getIds = function (options) {
for (id in data) { for (id in data) {
if (data.hasOwnProperty(id)) { if (data.hasOwnProperty(id)) {
item = data[id]; item = data[id];
ids.push(item[this.fieldId]);
ids.push(item[this._fieldId]);
} }
} }
} }
@ -538,8 +523,8 @@ DataSet.prototype.getIds = function (options) {
*/ */
DataSet.prototype.forEach = function (callback, options) { DataSet.prototype.forEach = function (callback, options) {
var filter = options && options.filter, var filter = options && options.filter,
type = options && options.type || this.options.type,
data = this.data,
type = options && options.type || this._options.type,
data = this._data,
item, item,
id; id;
@ -549,7 +534,7 @@ DataSet.prototype.forEach = function (callback, options) {
for (var i = 0, len = items.length; i < len; i++) { for (var i = 0, len = items.length; i < len; i++) {
item = items[i]; item = items[i];
id = item[this.fieldId];
id = item[this._fieldId];
callback(item, id); callback(item, id);
} }
} }
@ -579,9 +564,9 @@ DataSet.prototype.forEach = function (callback, options) {
*/ */
DataSet.prototype.map = function (callback, options) { DataSet.prototype.map = function (callback, options) {
var filter = options && options.filter, var filter = options && options.filter,
type = options && options.type || this.options.type,
type = options && options.type || this._options.type,
mappedItems = [], mappedItems = [],
data = this.data,
data = this._data,
item; item;
// convert and filter items // convert and filter items
@ -689,17 +674,15 @@ DataSet.prototype.remove = function (id, senderId) {
*/ */
DataSet.prototype._remove = function (id) { DataSet.prototype._remove = function (id) {
if (util.isNumber(id) || util.isString(id)) { if (util.isNumber(id) || util.isString(id)) {
if (this.data[id]) {
delete this.data[id];
delete this.internalIds[id];
if (this._data[id]) {
delete this._data[id];
return id; return id;
} }
} }
else if (id instanceof Object) { else if (id instanceof Object) {
var itemId = id[this.fieldId];
if (itemId && this.data[itemId]) {
delete this.data[itemId];
delete this.internalIds[itemId];
var itemId = id[this._fieldId];
if (itemId && this._data[itemId]) {
delete this._data[itemId];
return itemId; return itemId;
} }
} }
@ -712,10 +695,9 @@ DataSet.prototype._remove = function (id) {
* @return {Array} removedIds The ids of all removed items * @return {Array} removedIds The ids of all removed items
*/ */
DataSet.prototype.clear = function (senderId) { DataSet.prototype.clear = function (senderId) {
var ids = Object.keys(this.data);
var ids = Object.keys(this._data);
this.data = {};
this.internalIds = {};
this._data = {};
this._trigger('remove', {items: ids}, senderId); this._trigger('remove', {items: ids}, senderId);
@ -728,7 +710,7 @@ DataSet.prototype.clear = function (senderId) {
* @return {Object | null} item Item containing max value, or null if no items * @return {Object | null} item Item containing max value, or null if no items
*/ */
DataSet.prototype.max = function (field) { DataSet.prototype.max = function (field) {
var data = this.data,
var data = this._data,
max = null, max = null,
maxField = null; maxField = null;
@ -752,7 +734,7 @@ DataSet.prototype.max = function (field) {
* @return {Object | null} item Item containing max value, or null if no items * @return {Object | null} item Item containing max value, or null if no items
*/ */
DataSet.prototype.min = function (field) { DataSet.prototype.min = function (field) {
var data = this.data,
var data = this._data,
min = null, min = null,
minField = null; minField = null;
@ -778,9 +760,9 @@ DataSet.prototype.min = function (field) {
* The returned array is unordered. * The returned array is unordered.
*/ */
DataSet.prototype.distinct = function (field) { DataSet.prototype.distinct = function (field) {
var data = this.data,
var data = this._data,
values = [], values = [],
fieldType = this.options.type[field],
fieldType = this._options.type[field],
count = 0; count = 0;
for (var prop in data) { for (var prop in data) {
@ -811,11 +793,11 @@ DataSet.prototype.distinct = function (field) {
* @private * @private
*/ */
DataSet.prototype._addItem = function (item) { DataSet.prototype._addItem = function (item) {
var id = item[this.fieldId];
var id = item[this._fieldId];
if (id != undefined) { if (id != undefined) {
// check whether this id is already taken // check whether this id is already taken
if (this.data[id]) {
if (this._data[id]) {
// item already exists // item already exists
throw new Error('Cannot add item: item with id ' + id + ' already exists'); throw new Error('Cannot add item: item with id ' + id + ' already exists');
} }
@ -823,18 +805,17 @@ DataSet.prototype._addItem = function (item) {
else { else {
// generate an id // generate an id
id = util.randomUUID(); id = util.randomUUID();
item[this.fieldId] = id;
this.internalIds[id] = item;
item[this._fieldId] = id;
} }
var d = {}; var d = {};
for (var field in item) { for (var field in item) {
if (item.hasOwnProperty(field)) { if (item.hasOwnProperty(field)) {
var fieldType = this.type[field]; // type may be undefined
var fieldType = this._type[field]; // type may be undefined
d[field] = util.convert(item[field], fieldType); d[field] = util.convert(item[field], fieldType);
} }
} }
this.data[id] = d;
this._data[id] = d;
return id; return id;
}; };
@ -842,31 +823,26 @@ DataSet.prototype._addItem = function (item) {
/** /**
* Get an item. Fields can be converted to a specific type * Get an item. Fields can be converted to a specific type
* @param {String} id * @param {String} id
* @param {Object.<String, String>} [type] field types to convert
* @param {Object.<String, String>} [types] field types to convert
* @return {Object | null} item * @return {Object | null} item
* @private * @private
*/ */
DataSet.prototype._getItem = function (id, type) {
DataSet.prototype._getItem = function (id, types) {
var field, value; var field, value;
// get the item from the dataset // get the item from the dataset
var raw = this.data[id];
var raw = this._data[id];
if (!raw) { if (!raw) {
return null; return null;
} }
// convert the items field types // convert the items field types
var converted = {},
fieldId = this.fieldId,
internalIds = this.internalIds;
if (type) {
var converted = {};
if (types) {
for (field in raw) { for (field in raw) {
if (raw.hasOwnProperty(field)) { if (raw.hasOwnProperty(field)) {
value = raw[field]; value = raw[field];
// output all fields, except internal ids
if ((field != fieldId) || (!(value in internalIds) || this.showInternalIds)) {
converted[field] = util.convert(value, type[field]);
}
converted[field] = util.convert(value, types[field]);
} }
} }
} }
@ -875,10 +851,7 @@ DataSet.prototype._getItem = function (id, type) {
for (field in raw) { for (field in raw) {
if (raw.hasOwnProperty(field)) { if (raw.hasOwnProperty(field)) {
value = raw[field]; value = raw[field];
// output all fields, except internal ids
if ((field != fieldId) || (!(value in internalIds) || this.showInternalIds)) {
converted[field] = value;
}
converted[field] = value;
} }
} }
} }
@ -894,11 +867,11 @@ DataSet.prototype._getItem = function (id, type) {
* @private * @private
*/ */
DataSet.prototype._updateItem = function (item) { DataSet.prototype._updateItem = function (item) {
var id = item[this.fieldId];
var id = item[this._fieldId];
if (id == undefined) { if (id == undefined) {
throw new Error('Cannot update item: item has no id (item: ' + JSON.stringify(item) + ')'); throw new Error('Cannot update item: item has no id (item: ' + JSON.stringify(item) + ')');
} }
var d = this.data[id];
var d = this._data[id];
if (!d) { if (!d) {
// item doesn't exist // item doesn't exist
throw new Error('Cannot update item: no item with id ' + id + ' found'); throw new Error('Cannot update item: no item with id ' + id + ' found');
@ -907,7 +880,7 @@ DataSet.prototype._updateItem = function (item) {
// merge with current item // merge with current item
for (var field in item) { for (var field in item) {
if (item.hasOwnProperty(field)) { if (item.hasOwnProperty(field)) {
var fieldType = this.type[field]; // type may be undefined
var fieldType = this._type[field]; // type may be undefined
d[field] = util.convert(item[field], fieldType); d[field] = util.convert(item[field], fieldType);
} }
} }
@ -915,17 +888,6 @@ DataSet.prototype._updateItem = function (item) {
return id; return id;
}; };
/**
* check if an id is an internal or external id
* @param id
* @returns {boolean}
* @private
*/
DataSet.prototype.isInternalId = function(id) {
return (id in this.internalIds);
};
/** /**
* Get an array with the column names of a Google DataTable * Get an array with the column names of a Google DataTable
* @param {DataTable} dataTable * @param {DataTable} dataTable

+ 35
- 37
src/DataView.js View File

@ -9,13 +9,11 @@
* @constructor DataView * @constructor DataView
*/ */
function DataView (data, options) { function DataView (data, options) {
this.id = util.randomUUID();
this.data = null;
this.ids = {}; // ids of the items currently in memory (just contains a boolean true)
this.options = options || {};
this.fieldId = 'id'; // name of the field containing id
this.subscribers = {}; // event subscribers
this._data = null;
this._ids = {}; // ids of the items currently in memory (just contains a boolean true)
this._options = options || {};
this._fieldId = 'id'; // name of the field containing id
this._subscribers = {}; // event subscribers
var me = this; var me = this;
this.listener = function () { this.listener = function () {
@ -33,44 +31,44 @@ function DataView (data, options) {
* @param {DataSet | DataView} data * @param {DataSet | DataView} data
*/ */
DataView.prototype.setData = function (data) { DataView.prototype.setData = function (data) {
var ids, dataItems, i, len;
var ids, i, len;
if (this.data) {
if (this._data) {
// unsubscribe from current dataset // unsubscribe from current dataset
if (this.data.unsubscribe) {
this.data.unsubscribe('*', this.listener);
if (this._data.unsubscribe) {
this._data.unsubscribe('*', this.listener);
} }
// trigger a remove of all items in memory // trigger a remove of all items in memory
ids = []; ids = [];
for (var id in this.ids) {
if (this.ids.hasOwnProperty(id)) {
for (var id in this._ids) {
if (this._ids.hasOwnProperty(id)) {
ids.push(id); ids.push(id);
} }
} }
this.ids = {};
this._ids = {};
this._trigger('remove', {items: ids}); this._trigger('remove', {items: ids});
} }
this.data = data;
this._data = data;
if (this.data) {
if (this._data) {
// update fieldId // update fieldId
this.fieldId = this.options.fieldId ||
(this.data && this.data.options && this.data.options.fieldId) ||
this._fieldId = this._options.fieldId ||
(this._data && this._data.options && this._data.options.fieldId) ||
'id'; 'id';
// trigger an add of all added items // trigger an add of all added items
ids = this.data.getIds({filter: this.options && this.options.filter});
ids = this._data.getIds({filter: this._options && this._options.filter});
for (i = 0, len = ids.length; i < len; i++) { for (i = 0, len = ids.length; i < len; i++) {
id = ids[i]; id = ids[i];
this.ids[id] = true;
this._ids[id] = true;
} }
this._trigger('add', {items: ids}); this._trigger('add', {items: ids});
// subscribe to new dataset // subscribe to new dataset
if (this.data.on) {
this.data.on('*', this.listener);
if (this._data.on) {
this._data.on('*', this.listener);
} }
} }
}; };
@ -128,12 +126,12 @@ DataView.prototype.get = function (args) {
} }
// extend the options with the default options and provided options // extend the options with the default options and provided options
var viewOptions = util.extend({}, this.options, options);
var viewOptions = util.extend({}, this._options, options);
// create a combined filter method when needed // create a combined filter method when needed
if (this.options.filter && options && options.filter) {
if (this._options.filter && options && options.filter) {
viewOptions.filter = function (item) { viewOptions.filter = function (item) {
return me.options.filter(item) && options.filter(item);
return me._options.filter(item) && options.filter(item);
} }
} }
@ -145,7 +143,7 @@ DataView.prototype.get = function (args) {
getArguments.push(viewOptions); getArguments.push(viewOptions);
getArguments.push(data); getArguments.push(data);
return this.data && this.data.get.apply(this.data, getArguments);
return this._data && this._data.get.apply(this._data, getArguments);
}; };
/** /**
@ -159,8 +157,8 @@ DataView.prototype.get = function (args) {
DataView.prototype.getIds = function (options) { DataView.prototype.getIds = function (options) {
var ids; var ids;
if (this.data) {
var defaultFilter = this.options.filter;
if (this._data) {
var defaultFilter = this._options.filter;
var filter; var filter;
if (options && options.filter) { if (options && options.filter) {
@ -177,7 +175,7 @@ DataView.prototype.getIds = function (options) {
filter = defaultFilter; filter = defaultFilter;
} }
ids = this.data.getIds({
ids = this._data.getIds({
filter: filter, filter: filter,
order: options && options.order order: options && options.order
}); });
@ -201,7 +199,7 @@ DataView.prototype.getIds = function (options) {
DataView.prototype._onEvent = function (event, params, senderId) { DataView.prototype._onEvent = function (event, params, senderId) {
var i, len, id, item, var i, len, id, item,
ids = params && params.items, ids = params && params.items,
data = this.data,
data = this._data,
added = [], added = [],
updated = [], updated = [],
removed = []; removed = [];
@ -214,7 +212,7 @@ DataView.prototype._onEvent = function (event, params, senderId) {
id = ids[i]; id = ids[i];
item = this.get(id); item = this.get(id);
if (item) { if (item) {
this.ids[id] = true;
this._ids[id] = true;
added.push(id); added.push(id);
} }
} }
@ -229,17 +227,17 @@ DataView.prototype._onEvent = function (event, params, senderId) {
item = this.get(id); item = this.get(id);
if (item) { if (item) {
if (this.ids[id]) {
if (this._ids[id]) {
updated.push(id); updated.push(id);
} }
else { else {
this.ids[id] = true;
this._ids[id] = true;
added.push(id); added.push(id);
} }
} }
else { else {
if (this.ids[id]) {
delete this.ids[id];
if (this._ids[id]) {
delete this._ids[id];
removed.push(id); removed.push(id);
} }
else { else {
@ -254,8 +252,8 @@ DataView.prototype._onEvent = function (event, params, senderId) {
// filter the ids of the removed items // filter the ids of the removed items
for (i = 0, len = ids.length; i < len; i++) { for (i = 0, len = ids.length; i < len; i++) {
id = ids[i]; id = ids[i];
if (this.ids[id]) {
delete this.ids[id];
if (this._ids[id]) {
delete this._ids[id];
removed.push(id); removed.push(id);
} }
} }

+ 4
- 5
src/timeline/component/ItemSet.js View File

@ -1081,12 +1081,12 @@ ItemSet.prototype._onDragEnd = function (event) {
if ('start' in props.item.data) { if ('start' in props.item.data) {
changed = (props.start != props.item.data.start.valueOf()); changed = (props.start != props.item.data.start.valueOf());
itemData.start = util.convert(props.item.data.start, itemData.start = util.convert(props.item.data.start,
dataset.options.type && dataset.options.type.start || 'Date');
dataset._options.type && dataset._options.type.start || 'Date');
} }
if ('end' in props.item.data) { if ('end' in props.item.data) {
changed = changed || (props.end != props.item.data.end.valueOf()); changed = changed || (props.end != props.item.data.end.valueOf());
itemData.end = util.convert(props.item.data.end, itemData.end = util.convert(props.item.data.end,
dataset.options.type && dataset.options.type.end || 'Date');
dataset._options.type && dataset._options.type.end || 'Date');
} }
if ('group' in props.item.data) { if ('group' in props.item.data) {
changed = changed || (props.group != props.item.data.group); changed = changed || (props.group != props.item.data.group);
@ -1098,7 +1098,7 @@ ItemSet.prototype._onDragEnd = function (event) {
me.options.onMove(itemData, function (itemData) { me.options.onMove(itemData, function (itemData) {
if (itemData) { if (itemData) {
// apply changes // apply changes
itemData[dataset.fieldId] = id; // ensure the item contains its id (can be undefined)
itemData[dataset._fieldId] = id; // ensure the item contains its id (can be undefined)
changes.push(itemData); changes.push(itemData);
} }
else { else {
@ -1197,8 +1197,7 @@ ItemSet.prototype._onAddItem = function (event) {
newItem.end = snap ? snap(end) : end; newItem.end = snap ? snap(end) : end;
} }
var id = util.randomUUID();
newItem[this.itemsData.fieldId] = id;
newItem[this.itemsData.fieldId] = util.randomUUID();
var group = ItemSet.groupFromTarget(event); var group = ItemSet.groupFromTarget(event);
if (group) { if (group) {

+ 2
- 11
test/dataset.js View File

@ -31,6 +31,7 @@ items.forEach(function (item) {
var sort = function (a, b) { var sort = function (a, b) {
return a.id > b.id; return a.id > b.id;
}; };
assert.deepEqual(data.get({ assert.deepEqual(data.get({
fields: ['id', 'content'] fields: ['id', 'content']
}).sort(sort), [ }).sort(sort), [
@ -150,17 +151,7 @@ data.clear();
data.add({content: 'Item 1'}); data.add({content: 'Item 1'});
data.add({content: 'Item 2'}); data.add({content: 'Item 2'});
assert.strictEqual(data.get()[0].id, undefined);
assert.deepEqual((data.get({"showInternalIds": true})[0].id == undefined),false);
assert.deepEqual(data.isInternalId(data.get({"showInternalIds": true})[0].id), true);
assert.deepEqual((data.get()[0].id == undefined), true);
// check if the global setting is applied correctly
var data = new DataSet({showInternalIds: true});
data.add({content: 'Item 1'});
assert.deepEqual((data.get()[0].id == undefined), false);
assert.deepEqual(data.isInternalId(data.get()[0].id), true);
assert.deepEqual((data.get({"showInternalIds": false})[0].id == undefined),true);
assert.notStrictEqual(data.get()[0].id, undefined);
// create a dataset with initial data // create a dataset with initial data
var data = new DataSet([ var data = new DataSet([

Loading…
Cancel
Save