Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> p.jsonChart  [in template "20116#20152#524295" at line 209, column 22]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if p.jsonChart.data?has_content  [in template "20116#20152#524295" at line 209, column 17]
----
1<#assign dlAppService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") /> 
2 
3<#assign SPACE_KB = 1024 /> 
4<#assign SPACE_MB = SPACE_KB?int * 1024 /> 
5<#assign SPACE_GB = SPACE_MB?int * 1024 /> 
6<#assign SPACE_TB = SPACE_GB?int * 1024 /> 
7 
8<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
9 
10<script> 
11window.initialize = function(chartData,element) { 
12 
13    // Load the Visualization API and the piechart package. 
14    google.charts.load('current', {packages: ['corechart'], language:'${locale?substring(0,2)}'}); 
15 
16    // Set a callback to run when the Google Visualization API is loaded. 
17    google.charts.setOnLoadCallback(drawChart); 
18 
19    // Callback that creates and populates a data table, 
20    // instantiates the pie chart, passes in the data and 
21    // draws it. 
22    function drawChart() { 
23 
24        // Create the data table.       
25        var data = new google.visualization.DataTable(); 
26        var formatter = new google.visualization.NumberFormat({ 
27            decimalSymbol: chartData.options.decimalSymbol, 
28            groupingSymbol: chartData.options.groupingSymbol, 
29            pattern: chartData.options.pattern  
30        }); 
31 
32        for( i = 0; i < chartData.columns.length; i++ ){ 
33            //console.log(chartData.columns[i] ); 
34            data.addColumn(chartData.columns[i].type,chartData.columns[i].text); 
35
36        var totalRows = []; 
37        for( i = 0; i < chartData.rows.length; i++ ){ 
38            //console.log(chartData.rows[i]); 
39            //data.addColumn(chartData.rows[i].type,chartData.rows[i].text); 
40            var x = 0; 
41            var singleRow = []; 
42            for( var row in chartData.rows[i] ){ 
43                singleRow.push(chartData.rows[i][row]); 
44                x++; 
45
46            totalRows.push(singleRow); 
47
48        data.addRows(totalRows); 
49          /* 
50          data.addColumn('string', 'Year'); 
51          data.addColumn('number', 'Ordinary Shares'); 
52          data.addColumn('number', 'Saving Shares'); 
53           
54          data.addRows([ 
55            ['2010', 0.00, 0.03], 
56            ['2011', 0.00, 0.03], 
57            ['2012', 0.00, 0.03], 
58            ['2013', 0.00, 0.03], 
59            ['2014', 0.00, 0.03], 
60            ['2015', 0.00, 0.03], 
61            ['2016', 0.00, 0.03], 
62            ['2017', 0.00, 0.03], 
63          ]); 
64          */ 
65       
66      var chartType = chartData.options.type; 
67       
68      switch(chartType) { 
69        case 'Pie': 
70            var options = { 
71                fontName:'Helvetica, Arial, sans-serif;', 
72                title: chartData.options.title, 
73                titleTextStyle: { color: '#808080', fontSize: 18, bold: false }, 
74                is3D: true, 
75                width: chartData.options.width, 
76                height: chartData.options.height, 
77                chartArea: { left:0, top:30, width:'100%', height:'100%'}, 
78                legend: { position: 'right', textStyle: {color: '#505050', fontSize: 11}}, 
79                backgroundColor: chartData.options.backgroundColor, 
80                pieSliceText: 'percentage', 
81                pieSliceTextStyle:{color: '#f0f0f0', fontSize: 12}, 
82                colors:['#0c447f','#105cac', '#136dcb', '#167de9', '#1785f8', '#46aaff', '#badaff', '#e3ebff'], 
83                tooltip: {trigger: 'hover', text: 'value', textStyle: {color: '#222', fontSize: 11 }, showColorCode: false} 
84            }; 
85            formatter.format(data, 1); 
86            break; 
87        case 'Column': 
88            var options = { 
89                fontName:'Helvetica, Arial, sans-serif;', 
90                title: chartData.options.title, 
91                titleTextStyle: { color: '#808080', fontSize: 18, bold: false }, 
92                width: chartData.options.width, 
93                height: chartData.options.height, 
94                isStacked: chartData.options.isStacked, 
95                backgroundColor: chartData.options.backgroundColor, 
96                chartArea: {  
97                    left: 50,  
98                    top: 35,  
99                    width: '100%', 
100                    height: '72%' 
101                }, 
102                legend: {  
103                    position: 'bottom',  
104                    textStyle: { 
105                        color: '#505050',  
106                        fontSize: 11 
107
108                }, 
109                colors: ['#0c447f', '#136dcb', '#105cac', '#1785f8', '#167de9', '#46aaff', '#badaff', '#e3ebff'], 
110                tooltip: { trigger: 'hover', isHtml: true, text: 'value', textStyle: { color: '#222', fontSize: 11 }, showColorCode: false }, 
111                vAxis: { 
112                    minValue: chartData.options.minvalue,  
113                    maxValue: chartData.options.maxvalue,  
114                    direction: chartData.options.direction,  
115                    format: chartData.options.vaxis,  
116                    gridlines: { 
117                        count: chartData.options.gridlines + 1,  
118                        color: '#ccc' 
119                    },  
120                    textPosition: 'out',  
121                    textStyle: { 
122                        color: '#222',  
123                        fontSize: 10 
124
125
126            }; 
127            formatter.format(data, 1); 
128            break; 
129        case 'Bar': 
130            var options = {           
131                fontName:'Helvetica, Arial, sans-serif;', 
132                title: chartData.options.title, 
133                titleTextStyle: { color: '#808080', fontSize: 18, bold: false }, 
134                width: chartData.options.width,              
135                height: chartData.options.height, 
136                backgroundColor: chartData.options.backgroundColor, 
137                seriesType: 'bars', 
138                chartArea: { left:100, top:70, width:'100%',height:'83%'}, 
139                colors: ['#105cac', '#136dcb', '#167de9', '#1785f8', '#46aaff', '#badaff', '#e3ebff'], 
140                tooltip: {trigger: 'hover', isHtml: true, text: 'value', textStyle: {color: '#222', fontSize: 11 }, showColorCode: false}, 
141                hAxis: { 
142                    minValue: chartData.options.minvalue, 
143                    maxValue: chartData.options.maxvalue, 
144                    direction: chartData.options.direction,  
145                    format: chartData.options.haxis, 
146                    gridlines: { 
147                        count: chartData.options.gridlines + 1,  
148                    color: '#ccc'},  
149                    textPosition: 'out',  
150                    textStyle: {color: '#222', fontSize: 11} 
151
152            }; 
153            formatter.format(data, 1); 
154            break;      
155        case 'Combo': 
156            var options = { 
157                fontName:'Helvetica, Arial, sans-serif;', 
158                title: chartData.options.title, 
159                titleTextStyle: { color: '#808080', fontSize: 18, bold: false }, 
160                width: chartData.options.width,              
161                height: chartData.options.height, 
162                backgroundColor: chartData.options.backgroundColor, 
163                chartArea: { left:25, top:35, width:'100%', height:'72%'}, 
164                legend: { position: 'bottom', textStyle: {color: '#505050', fontSize: 12}}, 
165                seriesType: 'bars', 
166                series: { 
167                    0: {type: 'line'} 
168                }, 
169                colors:['#A00000', '#105cac', '#136dcb', '#167de9', '#1785f8', '#46aaff', '#badaff', '#e3ebff'], 
170                tooltip: {trigger: 'hover', isHtml: true, textStyle: {color: '#222', fontSize: 12 }, showColorCode: false}, 
171                vAxis: { 
172                    minValue: chartData.options.minvalue,  
173                    maxValue: chartData.options.maxvalue,  
174                    direction: chartData.options.direction,  
175                    format: chartData.options.vaxis, 
176                    gridlines: { 
177                        count: chartData.options.gridlines + 1, 
178                        color: '#ccc'},  
179                        textPosition: 'out',  
180                        textStyle: {color: '#222', fontSize: 11} 
181
182            }; 
183            formatter.format(data, 1); formatter.format(data, 2); 
184            break; 
185        default: 
186            var options = {}; 
187            console.log("Type Chart error..."); 
188
189       
190        // Instantiate and draw our chart, passing in some options. 
191        var googleEval = eval('google.visualization.' + chartType + 'Chart'); 
192        var chart = new googleEval(document.getElementById(element)); 
193        chart.draw(data, options); 
194
195
196</script> 
197 
198<article class="webcontent"> 
199 
200    <div class="webcontent__text"> 
201        <#if Paragraph.getSiblings()?has_content > 
202         
203            <#list Paragraph.getSiblings() as p> 
204                 
205                <#if p.ParagraphTitle.data?has_content> 
206                    <h2>${p.ParagraphTitle.data}</h2> 
207                </#if> 
208                 
209                <#if p.jsonChart.data?has_content> 
210                    <#-- ${p.jsonChart.data} --> 
211                    <div id="chart_${p_index}"></div> 
212                    <script> 
213                        $(function(){ 
214                            var chartData = ${p.jsonChart.data}; 
215                            console.log(chartData); 
216                            initialize(chartData,"chart_${p_index}"); 
217                        }); 
218                    </script> 
219                </#if> 
220                 
221                <#if p.ParagraphBody.data?has_content> 
222                    ${p.ParagraphBody.data} 
223                </#if> 
224 
225                <#if p.ParagraphFile.getSiblings()?has_content > 
226                 
227                    <div class="file-list"> 
228                     
229                       <#list p.ParagraphFile.getSiblings() as file> 
230                        
231                           <#if file?? && validator.isNotNull(file.data) > 
232                               <#assign urlSplitted = file.data?split("/") /> 
233                               <#assign indexToken = urlSplitted?size - 1 /> 
234                               <#assign uuid = urlSplitted[indexToken]?split("?")[0] /> 
235                               <#assign dlDocument = dlAppService.getFileEntryByUuidAndGroupId(uuid,groupId) /> 
236                               <#assign dlDocumentSize = dlDocument.size?int /> 
237                                
238                               <#if dlDocumentSize lt SPACE_KB> 
239                                   <#assign dlDocumentSize = dlDocumentSize?round?string + " Byte" /> 
240                                   <#elseif dlDocumentSize lt SPACE_MB> 
241                                   <#assign dlDocumentSize = dlDocumentSize / SPACE_KB /> 
242                                   <#assign dlDocumentSize = dlDocumentSize?round?string + " KB" /> 
243                                   <#elseif dlDocumentSize lt SPACE_GB > 
244                                   <#assign dlDocumentSize = dlDocumentSize / SPACE_MB /> 
245                                   <#assign dlDocumentSize = dlDocumentSize?round?string + " MB" /> 
246                               <#elseif dlDocumentSize lt SPACE_TB> 
247                                   <#assign dlDocumentSize = dlDocumentSize / SPACE_GB /> 
248                                   <#assign dlDocumentSize = dlDocumentSize?round?string + " GB" /> 
249                               <#else> 
250                                   <#assign dlDocumentSize = dlDocumentSize / SPACE_TB /> 
251                                   <#assign dlDocumentSize = dlDocumentSize?round?string + " TB" /> 
252                               </#if> 
253 
254                               <div class="file has-icon"> 
255                                   <i class="fa fa-file-pdf-o" aria-hidden="true"></i> 
256                                   <div class="file__name"> 
257                                    <#assign fileTitleSplit= dlDocument.getTitle()?split(".pdf") /> 
258                                    <a href="${file.data}" title="${dlDocument.getTitle()}" class="file__link" target="_blank">${fileTitleSplit[0]} 
259                                    </a> 
260                                   </div> 
261                                   <div class="file__info">(${dlDocument.extension?upper_case} ${dlDocumentSize})</div> 
262                               </div> 
263 
264                           </#if> 
265                            
266                       </#list> 
267                        
268                    </div> 
269                     
270                </#if> 
271                 
272            </#list> 
273             
274        </#if> 
275         
276    </div> 
277     
278</article> 
279 
280<#if LinkToPage?? && validator.isNotNull(LinkToPage.data)> 
281    <div class="webcontent__link"> 
282        <a href="${LinkToPage.data}" title="${LinkLabel.data}" class="btn-link">${LinkLabel.data}</a> 
283    </div> 
284</#if>