I'm having some problems getting a morris.js chart to show up in a bootstrap modal correctly. Not only is the sizing off but the chart doesn't draw. I have searched around and so far can't find a solution that works for me. Can anyone help?
Edit: Figured out the sizing issue, but it's still not drawing the graph. Thanks!
Modal Markup:
<div class="modal fade" id="clusterpulse" tabindex="-1" role="dialog" aria-labelledby="clusterpulse" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Pulse</h4>
</div>
<div class="modal-body">
<div class="col-lg-4">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i>Versions by Environment</h3>
</div>
<div class="panel-body">
<div id="morris-chart-versions"></div>
</div><!-- /.panel-body -->
</div><!-- /.panel-primary -->
</div><!-- /.col-lg-4 -->
</div><!-- /.modal-body -->
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div> <!-- /.modal -->
JS:
<script>
$(function () {
// Create a Bar Chart with Morris
var chart = Morris.Bar({
element: 'morris-chart-versions',
data: [0, 0], // Set initial data (ideally you would provide an array of default data)
xkey: 'd', // Set the key for X-axis
ykeys: ['test1','test2','test3'], // Set the key for Y-axis
labels: ['test1','test2','test3'], // Set the label when bar is rolled over
resize: true
stacked: true
});
// Fire off an AJAX request to load the data
$.ajax({
type: "GET",
dataType: 'json',
url: "../scripts/all_versions.php", // This is the URL to the API
})
.done(function (data) {
// When the response to the AJAX request comes back render the chart with new data
chart.setData(data);
})
.fail(function () {
// If there is no communication between the server, show an error
alert("error occured");
});
});
</script>
This is what it ends up looking like:
Edit: I figured out the sizing issue. It was the 'col-lg-4' in my markup. Left it in there from another graph on the main page. Now it looks like this:
Edit2: And when I removed the 'resize: true' from the js.