Hello. Sorry if this is duplicated, I could not find a similar issue
in the posts.
I'm trying to create an Annotated Timeline using a JSON and Google
Query and I've found out that if you send the date (or datetime) types
in your JSON using double quotes it will fail with "Error: v[vb] is
not a function"
"v": new Date(2009,8,9) <--- this is OK
vs
"v": "new Date(2009,8,9)" <--- this will FAIL
The Table chart works fine with both kinds of syntax. I think the
proper one is using the double quotes (at least is what I've seen in
online validators). Is this a bug? Is this the expected behaviour?
Thanks,
Jose.
PS here's an index.html and datasource.json to test it.
index.html
==================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/
TR/html4/strict.dtd">
<html>
<head>
<script type='text/javascript' src='
http://www.google.com/jsapi'></
script>
<script type='text/javascript'>
google.load('visualization', '1', {'packages':
['table','annotatedtimeline']});
google.setOnLoadCallback(drawChart);
function drawChart() {
query = new google.visualization.Query('datasources.json');
query.send( function(response) {
if (response.isError()) {
alert('Error found: ' + response.getMessage() + ' -> ' +
response.getDetailedMessage());
} else {
var datatable = response.getDataTable();
var table = new google.visualization.Table(document.getElementById
('table_div'));
table.draw(datatable);
var chart = new google.visualization.AnnotatedTimeLine
(document.getElementById('chart_div'));
chart.draw(datatable, {displayAnnotations: true});
}
});
}
</script>
</head>
<body>
<div id='table_div' style='width: 700px; height: 240px;'></div>
<div id='chart_div' style='width: 700px; height: 240px;'></
div>
</body>
</html>
==================================================
datasources.json Just add or remove quotes on the json to see the
error, this will fail since the first datetime value is using the
double quotes.
==================================================
google.visualization.Query.setResponse(
{
"version":"0.6",
"reqId":"0",
"status":"ok",
"requestID":"0",
"table":{
"cols":[
{"id":"Datetime","label":"DateTime","type":"datetime"},
{"id":"Application","label":"Application","type":"number"}
],
"rows":[
{"c":[
{"v":"new Date(2009,06,09,11,14,10)","f":"2009-06-09 11:14:10"},
{"v":0}
]
},
{"c":[
{"v":new Date(2009,06,09,11,15,11),"f":"2009-06-09 11:15:11"},
{"v":0}
]
}
]
}
}
)
==================================================