Subversion Repositories php-qbpwcf

Rev

Rev 23 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23 liveuser 1
/**
2
 * This is a sample chart export config file. It is provided as a reference on
3
 * how miscelaneous items in export menu can be used and set up.
4
 *
5
 * Please refer to README.md for more information.
6
 */
7
 
8
/**
9
 * PDF-specfic configuration
10
 */
11
AmCharts.exportDrawingMenu = [ {
12
  class: "export-drawing",
13
  label: "Export",
14
  menu: [ {
15
    label: "Undo",
16
    click: function() {
17
      this.drawing.undo();
18
    }
19
  }, {
20
    label: "Redo",
21
    click: function() {
22
      this.drawing.redo();
23
    }
24
  }, {
25
    label: "Cancel",
26
    click: function() {
27
      this.drawing.done();
28
    }
29
  }, {
30
    label: "Save",
31
    menu: [ {
32
      label: "JPG",
33
      click: function() {
34
        this.drawing.done();
35
        this.toJPG( {}, function( data ) {
36
          this.download( data, "image/jpg", "amCharts.jpg" );
37
        } );
38
      }
39
    }, {
40
      label: "PNG",
41
      click: function() {
42
        this.drawing.done();
43
        this.toPNG( {}, function( data ) {
44
          this.download( data, "image/png", "amCharts.png" );
45
        } );
46
      }
47
    }, {
48
      label: "PDF",
49
      click: function() {
50
        this.drawing.done();
51
        this.toPDF( {}, function( data ) {
52
          this.download( data, "application/pdf", "amCharts.pdf" );
53
        } );
54
      }
55
    }, {
56
      label: "SVG",
57
      click: function() {
58
        this.drawing.done();
59
        this.toSVG( {}, function( data ) {
60
          this.download( data, "text/xml", "amCharts.svg" );
61
        } );
62
      }
63
    } ]
64
  } ]
65
} ];
66
 
67
 
68
/**
69
 * Define main universal config
70
 */
71
AmCharts.exportCFG = {
72
  enabled: true,
73
  libs: {
74
    path: "../libs/"
75
  },
76
  menu: [ {
77
    class: "export-main",
78
    label: "Export",
79
    menu: [
80
      /*
81
       ** DRAWING
82
       */
83
      {
84
        label: "Draw",
85
        click: function() {
86
          this.capture( {
87
            action: "draw",
88
            freeDrawingBrush: {
89
              width: 2,
90
              color: "#000000",
91
              shadow: {
92
                color: "rgba(0,0,0,0.3)",
93
                blur: 10,
94
                offsetX: 3,
95
                offsetY: 3
96
              }
97
            }
98
          }, function() {
99
            this.createMenu( AmCharts.exportDrawingMenu );
100
          } );
101
        }
102
      },
103
 
104
      /*
105
       ** DELAYED EXPORT
106
       */
107
      {
108
        label: "Delayed",
109
        click: function() {
110
          var _this = this;
111
          var delay = 2;
112
          var timer = 0;
113
          var starttime = Number( new Date() );
114
          var menu = this.createMenu( [ {
115
            label: "Capturing: " + delay,
116
            click: function() {
117
              clearTimeout( timer );
118
              this.createMenu( this.defaults.menu );
119
            }
120
          } ] );
121
          var label = menu.getElementsByTagName( "span" )[ 0 ];
122
 
123
          timer = setInterval( function() {
124
            diff = ( delay - ( Number( new Date() ) - starttime ) / 1000 );
125
            label.innerHTML = "Capturing: " + ( diff < 0 ? 0 : diff ).toFixed( 2 );
126
 
127
            if ( diff <= 0 ) {
128
              clearTimeout( timer );
129
              _this.capture( {}, function() {
130
                this.toJPG( {}, function( data ) {
131
                  this.download( data, "image/jpg", "amCharts.jpg" );
132
                } );
133
                this.createMenu( this.defaults.menu );
134
              } );
135
            }
136
          }, 10 );
137
        }
138
      },
139
 
140
      /*
141
       ** DELAYED EXPORT WITH DRAWING
142
       */
143
      {
144
        label: "Delayed Draw",
145
        click: function() {
146
          var _this = this;
147
          var delay = 2;
148
          var timer = 0;
149
          var starttime = Number( new Date() );
150
          var menu = this.createMenu( [ {
151
            label: "Capturing: " + delay,
152
            click: function() {
153
              clearTimeout( timer );
154
              this.createMenu( this.defaults.menu );
155
            }
156
          } ] );
157
          var label = menu.getElementsByTagName( "span" )[ 0 ];
158
 
159
          timer = setInterval( function() {
160
            var diff = ( delay - ( Number( new Date() ) - starttime ) / 1000 );
161
            label.innerHTML = "Capturing: " + ( diff < 0 ? 0 : diff ).toFixed( 2 );
162
 
163
            if ( diff <= 0 ) {
164
              clearTimeout( timer );
165
              _this.capture( {
166
                action: "draw"
167
              }, function() {
168
                _this.createMenu( AmCharts.exportDrawingMenu );
169
              } );
170
            }
171
          }, 10 );
172
        }
173
      },
174
 
175
      /*
176
       ** DOWNLOAD
177
       */
178
      {
179
        label: "Download",
180
        menu: [ {
181
          label: "JPG",
182
          click: function() {
183
            this.capture( {}, function() {
184
              this.toJPG( {}, function( data ) {
185
                this.download( data, "image/jpg", "amCharts.jpg" );
186
              } );
187
            } );
188
          }
189
        }, {
190
          label: "PNG",
191
          click: function() {
192
            this.capture( {}, function() {
193
              this.toPNG( {}, function( data ) {
194
                this.download( data, "image/png", "amCharts.png" );
195
              } );
196
            } );
197
          }
198
        }, {
199
          label: "PDF",
200
          click: function() {
201
            this.capture( {}, function() {
202
              this.toPDF( {}, function( data ) {
203
                this.download( data, "application/pdf", "amCharts.pdf" );
204
              } );
205
            } );
206
          }
207
        }, {
208
          label: "PDF + data",
209
          click: function() {
210
            this.capture( {}, function() {
211
              var tableData = this.setup.chart.dataProvider;
212
              var tableBody = this.toArray( {
213
                withHeader: true,
214
                data: tableData
215
              } );
216
 
217
              var tableWidths = [];
218
              var content = [ {
219
                image: "reference",
220
                fit: [ 523.28, 769.89 ]
221
              } ];
222
 
223
              for ( i in tableBody[ 0 ] ) {
224
                tableWidths.push( "*" );
225
              }
226
 
227
              content.push( {
228
                table: {
229
                  headerRows: 1,
230
                  widths: tableWidths,
231
                  body: tableBody
232
                },
233
                layout: 'lightHorizontalLines'
234
              } );
235
 
236
              this.toPDF( {
237
                content: content
238
              }, function( data ) {
239
                this.download( data, "application/pdf", "amCharts.pdf" );
240
              } );
241
            } );
242
          }
243
        }, {
244
          label: "SVG",
245
          click: function() {
246
            this.capture( {}, function() {
247
              this.toSVG( {}, function( data ) {
248
                this.download( data, "text/xml", "amCharts.svg" );
249
              } );
250
            } );
251
          }
252
        }, {
253
          label: "CSV",
254
          click: function() {
255
            this.toCSV( {}, function( data ) {
256
              this.download( data, "text/plain", "amCharts.csv" );
257
            } );
258
          }
259
        }, {
260
          label: "JSON",
261
          click: function() {
262
            this.toJSON( {}, function( data ) {
263
              this.download( data, "text/plain", "amCharts.json" );
264
            } );
265
          }
266
        }, {
267
          label: "XLSX",
268
          click: function() {
269
            this.toXLSX( {}, function( data ) {
270
              this.download( data, "application/octet-stream", "amCharts.xlsx" );
271
            } );
272
          }
273
        } ]
274
      }
275
    ]
276
  } ]
277
};