All Downloads are FREE. Search and download functionalities are using the official Maven repository.

js.jquery.molgenis.attributemetadata.table.js Maven / Gradle / Ivy

There is a newer version: 8.4.5
Show newest version
(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