AnyChart / export-server

Export Server is a Java based server intended for exporting charts in .pdf, .jpg, .png, .svg, .csv, .xslx, .json and .xml formats
http://export.anychart.com/status
Apache License 2.0
20 stars 6 forks source link

timeline not in export bundle? #5

Open joshco opened 1 year ago

joshco commented 1 year ago

Hi, I'm using anychart export server, and most things work great. However, the timeline chart does not. I'm getting "undefined is not a function (evaluating 'anychart.timeline()')" (see full log below)

I'm using data-type=script, to run the javascript on the export server and return SVGs to my app. This example is using the Timeline example script from

https://playground.anychart.com/docs/v8/samples/BCT_Timeline_Chart_01

Is there way to configure the export server where to find the anychart JS files and which ones to use?

java_1_d7580c54eaa5 | [INFO  - 2022-10-02T23:12:45.107Z] Session [f578c350-42a6-11ed-8a2b-bf610ea5d015] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1","webSecurityEnabled":true}
java_1_d7580c54eaa5 | [INFO  - 2022-10-02T23:12:45.108Z] Session [f578c350-42a6-11ed-8a2b-bf610ea5d015] - page.customHeaders:  - {}
java_1_d7580c54eaa5 | 22-10-02 23:12:48 23152635c85e INFO [export-server.utils.logging:8] - Error occurred during processing /svg
java_1_d7580c54eaa5 |   Error message:
java_1_d7580c54eaa5 |  Failed to execute Script
java_1_d7580c54eaa5 | {"errorMessage":"undefined is not a function (evaluating 'anychart.timeline()')","request":{"headers"...
java_1_d7580c54eaa5 | Command duration or timeout: 109 milliseconds
java_1_d7580c54eaa5 | Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
java_1_d7580c54eaa5 | System info: host: '23152635c85e', ip: '172.19.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.16.3-microsoft-standard-WSL2', java.version: '1.8.0_302'
java_1_d7580c54eaa5 | Driver info: org.openqa.selenium.phantomjs.PhantomJSDriver
java_1_d7580c54eaa5 | Capabilities [{applicationCacheEnabled=false, rotatable=false, handlesAlerts=false, databaseEnabled=false, version=2.1.1, platform=LINUX, browserConnectionEnabled=false, proxy={proxyType=direct}, nativeEvents=true, acceptSslCerts=false, driverVersion=1.2.0, locationContextEnabled=false, webStorageEnabled=false, browserName=phantomjs, takesScreenshot=true, driverName=ghostdriver, javascriptEnabled=true, cssSelectorsEnabled=true}]
java_1_d7580c54eaa5 | Session ID: f578c350-42a6-11ed-8a2b-bf610ea5d015
java_1_d7580c54eaa5 |   Request's parameters:
java_1_d7580c54eaa5 | container-height: 400
java_1_d7580c54eaa5 | container-width: 800
java_1_d7580c54eaa5 | data-type: script
java_1_d7580c54eaa5 | data: var any_container = "container_51ec4e";
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // create data
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     var rangeData1 = [
java_1_d7580c54eaa5 |       ["Task 1", Date.UTC(2004,0,4), Date.UTC(2004,7,1)],
java_1_d7580c54eaa5 |       ["Task 2", Date.UTC(2004,7,1), Date.UTC(2005,8,10)]
java_1_d7580c54eaa5 |     ];
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     var rangeData2 = [
java_1_d7580c54eaa5 |       ["New Task 1", Date.UTC(2005,10,1), Date.UTC(2006,5,1)],
java_1_d7580c54eaa5 |       ["New Task 2", Date.UTC(2006,5,15), Date.UTC(2006,11,1)]
java_1_d7580c54eaa5 |     ];
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     var momentData1 = [
java_1_d7580c54eaa5 |       [Date.UTC(2004,2,21), "Meeting 1"],
java_1_d7580c54eaa5 |       [Date.UTC(2005,3,19), "Meeting 2"],
java_1_d7580c54eaa5 |       [Date.UTC(2006,1,1),  "Meeting 3"]
java_1_d7580c54eaa5 |     ];
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     var momentData2 = [
java_1_d7580c54eaa5 |       [Date.UTC(2004,5,12), "Training 1"],
java_1_d7580c54eaa5 |       [Date.UTC(2005,5,1),  "Training 2"],
java_1_d7580c54eaa5 |       [Date.UTC(2006,1,26), "Training 3"]
java_1_d7580c54eaa5 |     ];
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // create a chart
java_1_d7580c54eaa5 |     var chart = anychart.timeline();
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // prevent zooming the chart with the mouse wheel
java_1_d7580c54eaa5 |     chart.interactivity().zoomOnMouseWheel(false);
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // create the first range series, set the data and name
java_1_d7580c54eaa5 |     var rangeSeries1 = chart.range(rangeData1);
java_1_d7580c54eaa5 |     rangeSeries1.name("Tasks");
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // create the second range series, set the data and name
java_1_d7580c54eaa5 |     var rangeSeries2 = chart.range(rangeData2);
java_1_d7580c54eaa5 |     rangeSeries2.name("New Tasks");
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // create the first moment series, set the data and name
java_1_d7580c54eaa5 |     var momentSeries1 = chart.moment(momentData1);
java_1_d7580c54eaa5 |     momentSeries1.name("Meetings");
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // create the second moment series, set the data and name
java_1_d7580c54eaa5 |     var momentSeries2 = chart.moment(momentData2);
java_1_d7580c54eaa5 |     momentSeries2.name("Trainings");
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // set the chart title
java_1_d7580c54eaa5 |     chart.title("Timeline Chart: Basic Sample");
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // set the container id
java_1_d7580c54eaa5 |     chart.container("container");
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |     // initiate drawing the chart
java_1_d7580c54eaa5 |     chart.draw();
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |
java_1_d7580c54eaa5 |
joshco commented 1 year ago

The current release jar uses anychart 8.0 (!) I found a workaround. It's kind of a hack, but it works until an updated build arrives. I was able to use 7-zip to open the archive and replace the bundle js, which is inside the /js folder in the jar.

image

  1. Download the new version

    wget https://cdn.anychart.com/releases/8.11.0/js/anychart-bundle.min.js

  2. Use 7-zip to open the archive,
  3. navigate into the /js directory.
  4. delete the existing anychart-bundle.min.js file
  5. copy (drag and drop) the new file into the folder
  6. close 7-zip