Chart js

Replaces #1749 
Yep, :+1: