
js.jquery.molgenis.attributemetadata.table.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of molgenis-core-ui Show documentation
Show all versions of molgenis-core-ui Show documentation
Spaghetti module containing core plugins and legacy UI components.
(function($, molgenis) {
"use strict";
var restApi = new molgenis.RestClient();
var ATTRIBUTE_KEYS = [ 'name', 'label', 'fieldType', 'description', 'nillable', 'readOnly', 'unique' ];
$.fn.attributeMetadataTable = function(options) {
var container = this;
var attributeMetadata = options.attributeMetadata;
container.html('');
var panel = $('');
container.append(panel);
panel.append('Data item details
');
var panelBody = $('');
panel.append(panelBody);
var table = $('
');
panelBody.append(table);
var tbody = $('');
table.append(tbody);
for (var i = 0; i < ATTRIBUTE_KEYS.length; i++) {
var key = ATTRIBUTE_KEYS[i];
var value = attributeMetadata[key] !== undefined ? attributeMetadata[key] : '';
tbody.append('' + key + ' ' + value + ' ');
}
var refEntity = attributeMetadata['refEntity'];
if (refEntity && (attributeMetadata.fieldType !== 'COMPOUND')) {
restApi.getAsync(refEntity.href, {}, function(entity) {
tbody.append('refEntity ' + entity.label + ' ');
});
}
if (attributeMetadata.fieldType === 'CATEGORICAL') {
var panel = $('');
container.append(panel);
restApi.getAsync(attributeMetadata.refEntity.href, {
'expand' : [ 'attributes' ]
}, function(refEntityMetadata) {
panel.append('Possible values (refEntity = ' + refEntityMetadata.label + ')
');
var panelBody = $('');
panel.append(panelBody);
var table = $('
');
panelBody.append(table);
var tbody = $('');
table.append(tbody);
var headerRow = $(' ');
tbody.append(headerRow);
$.each(refEntityMetadata.attributes, function() {
headerRow.append('' + this.label + ' ');
});
var maxRows = 3;
restApi.getAsync(attributeMetadata.refEntity.href.replace('/meta', ''), {
num : maxRows
}, function(data) {
$.each(data.items, function(index, item) {
var tr = $(' ');
tbody.append(tr);
$.each(refEntityMetadata.attributes, function(index, attr) {
tr.append('' + item[attr.name] + ' ');
});
});
if (data.total > maxRows) {
panelBody.append('And ' + (data.total - maxRows) + ' more...');
}
});
});
}
}
}($, window.top.molgenis = window.top.molgenis || {}));
© 2015 - 2025 Weber Informatics LLC | Privacy Policy