Add metadata support to JavaScript dataset objects.

This commit is contained in:
Jeremy Goecks
2013-01-29 16:41:04 -05:00
parent 5996602928
commit 122d274a6a
+32 -1
View File
@@ -1,5 +1,10 @@
define(["libs/backbone/backbone-relational"], function() {
/**
* Dataset metedata.
*/
var DatasetMetadata = Backbone.RelationalModel.extend({});
/**
* A dataset. In Galaxy, datasets are associated with a history, so
* this object is also known as a HistoryDatasetAssociation.
@@ -9,7 +14,33 @@ var Dataset = Backbone.RelationalModel.extend({
id: '',
type: '',
name: '',
hda_ldda: 'hda'
hda_ldda: 'hda',
metadata: null
},
initialize: function() {
// -- Create and initialize metadata. --
var metadata = new DatasetMetadata();
// Move metadata from dataset attributes to metadata object.
_.each(_.keys(this.attributes), function(k) {
if (k.indexOf('metadata_') === 0) {
// Found metadata.
var new_key = k.split('metadata_')[1];
metadata.set(new_key, this.attributes[k]);
delete this.attributes[k];
}
}, this);
this.set('metadata', metadata);
},
/**
* Returns dataset metadata for a given attribute.
*/
get_metadata: function(attribute) {
return this.attributes.metadata.get(attribute);
},
urlRoot: galaxy_paths.get('datasets_url')