Get started
Built-in charts & reports
Dashboard gadgets
Self scripted charts
Manage permissions
Import and export scripted charts
xCharts API Javadoc
Chart scripting examples
Additional product info
changes.mady.by.user Decadis AG
Saved on Feb 23, 2018
changes.mady.by.user Iheb Kharab
Saved on Jun 01, 2022
var div = $("#chart"); var what; if (chartData.sums.length < 2) { $(div).append("<h4>" + chartData.empty + "</h4>"); } else { if (chartData.title) { $(div).append("<h4>" + chartData.title + " <small>" + chartData.sum + "</small></h4>"); } var table = d3.select("#chart").append('table') var thead = table.append('thead') var tbody = table.append('tbody'); $("#chart > table").addClass("table") $("#chart > table").addClass("table-hover") thead.append('tr').selectAll('th').data(chartData.labels).enter().append('th').text(function(column) { return column; }); var expanded = true; $('thead').on("click", function() { var childs = $("tbody").children(); if (expanded) { $.each(childs, function(index, element) { if (!$(element).hasClass("active")) { $(element).hide(); } }); } else { $.each(childs, function(index, element) { if (!$(element).hasClass("active")) { $(element).show(); } }); } expanded = !expanded; }); $('thead > tr').css("cursor", "pointer"); var tr = tbody.selectAll('tr').data(chartData.columns).enter().append("tr").classed("active", function(value, index) { return value.active; }).style("font-weight", function(value, index) { return value.fontweight; }); var td = tr.selectAll("td").data(function(tr_data,index) { return chartData.sums[index]; }).enter().append("td").text(function(d) { return d; }); $.each($(".active:not(:last-child)"), function(index, elem) { $(elem).css("cursor", "pointer"); $(elem).on("click", function(event) { var children = $(this).nextUntil(".active"); $.each($(children), function(index, child) { if ($(child).is(':visible')) { $(child).hide(); } else { $(child).show(); } }); }); }); } updateFrameHeight();