- @no_container = true - page_title "Commits", "Graphs" = render 'head' %div{ class: container_class } .sub-header-block .tree-ref-holder = render 'shared/ref_switcher', destination: 'graphs_commits' %ul.breadcrumb.repo-breadcrumb = commits_breadcrumbs %p.lead Commit statistics for %strong #{@ref} #{@commits_graph.start_date.strftime('%b %d')} - #{@commits_graph.end_date.strftime('%b %d')} .row .col-md-6 %ul %li %p.lead %strong #{@commits_graph.commits.size} commits during %strong #{@commits_graph.duration} days %li %p.lead Average %strong #{@commits_graph.commit_per_day} commits per day %li %p.lead Contributed by %strong #{@commits_graph.authors} authors .col-md-6 %div %p.slead Commits per day of month %canvas#month-chart .row .col-md-6 %div %p.slead Commits per day hour (UTC) %canvas#hour-chart .col-md-6 %div %p.slead Commits per weekday %canvas#weekday-chart :javascript var responsiveChart = function (selector, data) { var options = { "scaleOverlay": true, responsive: true, pointHitDetectionRadius: 2, maintainAspectRatio: false }; // get selector by context var ctx = selector.get(0).getContext("2d"); // pointing parent container to make chart.js inherit its width var container = $(selector).parent(); var generateChart = function() { selector.attr('width', $(container).width()); if (window.innerWidth < 768) { // Scale fonts if window width lower than 768px (iPad portrait) options.scaleFontSize = 8 } return new Chart(ctx).Bar(data, options); }; // enabling auto-resizing $(window).resize(generateChart); return generateChart(); }; var chartData = function (keys, values) { var data = { labels : keys, datasets : [{ fillColor : "rgba(220,220,220,0.5)", strokeColor : "rgba(220,220,220,1)", barStrokeWidth: 1, barValueSpacing: 1, barDatasetSpacing: 1, data : values }] }; return data; }; var hourData = chartData(#{@commits_per_time.keys.to_json}, #{@commits_per_time.values.to_json}); responsiveChart($('#hour-chart'), hourData); var dayData = chartData(#{@commits_per_week_days.keys.to_json}, #{@commits_per_week_days.values.to_json}); responsiveChart($('#weekday-chart'), dayData); var monthData = chartData(#{@commits_per_month.keys.to_json}, #{@commits_per_month.values.to_json}); responsiveChart($('#month-chart'), monthData);