aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/libs/graphics/barchart.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-web/src/main/js/libs/graphics/barchart.js')
-rw-r--r--server/sonar-web/src/main/js/libs/graphics/barchart.js123
1 files changed, 0 insertions, 123 deletions
diff --git a/server/sonar-web/src/main/js/libs/graphics/barchart.js b/server/sonar-web/src/main/js/libs/graphics/barchart.js
deleted file mode 100644
index 95301bc8438..00000000000
--- a/server/sonar-web/src/main/js/libs/graphics/barchart.js
+++ /dev/null
@@ -1,123 +0,0 @@
-(function ($) {
-
- function trans (left, top) {
- return 'translate(' + left + ', ' + top + ')';
- }
-
- var defaults = function () {
- return {
- height: 140,
- color: '#1f77b4',
- interpolate: 'basis',
- endDate: moment().format('YYYY-MM-DD'),
-
- marginLeft: 1,
- marginRight: 1,
- marginTop: 18,
- marginBottom: 1
- };
- };
-
- /*
- * data = [
- * { val: '2015-01-30', count: 30 },
- * ...
- * ]
- */
-
- $.fn.barchart = function (data) {
- $(this).each(function () {
- var options = _.defaults($(this).data(), defaults());
- _.extend(options, {
- width: options.width || $(this).width(),
- endDate: moment(options.endDate)
- });
-
- var container = d3.select(this),
- svg = container.append('svg')
- .attr('width', options.width + 2)
- .attr('height', options.height + 2)
- .classed('sonar-d3', true),
-
- plot = svg.append('g')
- .classed('plot', true),
-
- xScale = d3.scale.ordinal()
- .domain(data.map(function (d, i) {
- return i;
- })),
-
- yScaleMax = d3.max(data, function (d) {
- return d.count;
- }),
- yScale = d3.scale.linear()
- .domain([0, yScaleMax]);
-
- _.extend(options, {
- availableWidth: options.width - options.marginLeft - options.marginRight,
- availableHeight: options.height - options.marginTop - options.marginBottom
- });
-
- plot.attr('transform', trans(options.marginLeft, options.marginTop));
- xScale.rangeRoundBands([0, options.availableWidth], 0.05, 0);
- yScale.range([3, options.availableHeight]);
-
- var barWidth = xScale.rangeBand(),
- bars = plot.selectAll('g').data(data);
-
- if (barWidth > 0) {
- var barsEnter = bars.enter()
- .append('g')
- .attr('transform', function (d, i) {
- return trans(xScale(i), Math.ceil(options.availableHeight - yScale(d.count)));
- });
-
- barsEnter.append('rect')
- .style('fill', options.color)
- .attr('width', barWidth)
- .attr('height', function (d) {
- return Math.floor(yScale(d.count));
- })
- .style('cursor', 'pointer')
- .attr('data-period-start', function (d) {
- return moment(d.val).format('YYYY-MM-DD');
- })
- .attr('data-period-end', function (d, i) {
- var beginning = moment(d.val),
- ending = i < data.length - 1 ? moment(data[i + 1].val).subtract(1, 'days') : options.endDate,
- isSameDay = ending.diff(beginning, 'days') <= 1;
- if (isSameDay) {
- ending.add(1, 'days');
- }
- return ending.format('YYYY-MM-DD');
- })
- .attr('title', function (d, i) {
- var beginning = moment(d.val),
- ending = i < data.length - 1 ? moment(data[i + 1].val).subtract(1, 'days') : options.endDate,
- isSameDay = ending.diff(beginning, 'days') <= 1;
- return d.text + '<br>' + beginning.format('LL') + (isSameDay ? '' : (' – ' + ending.format('LL')));
- })
- .attr('data-placement', 'bottom')
- .attr('data-toggle', 'tooltip');
-
- var maxValue = d3.max(data, function (d) {
- return d.count;
- }),
- isValueShown = false;
-
- barsEnter.append('text')
- .classed('subtitle', true)
- .attr('transform', trans(barWidth / 2, -4))
- .style('text-anchor', 'middle')
- .text(function (d) {
- var text = !isValueShown && d.count === maxValue ? d.text : '';
- isValueShown = d.count === maxValue;
- return text;
- });
-
- $(this).find('[data-toggle=tooltip]').tooltip({ container: 'body', html: true });
- }
- });
- };
-
-})(window.jQuery);