PageSourceSearch

https://www.quotidianoenergia.it/modules/qe_gasday/js/base.js?21

js quotidianoenergia.it collected 2026-10-03 22:28:02 UTC 7,565 bytes, 296 lines download raw bytes

1/*jshint -W087 */
2var qe_gasday = new liwe.module ( 'qe_gasday', { events: [ 
3			"event1"		// The 'event1' event
4 			] } );
5
6// {{{ qe_gasday.init () 
7qe_gasday.init = function ()
8{
9	qe_gasday._set_events ();
10
11	qe_gasday.lang_load ( function ()
12	{
13		qe_gasday.ready ();
14	} );
15	qe_gasday.chart_params =  { "kind" : "immissioni", "period" : 7 };
16};
17// }}}
18
19// {{{ qe_gasday._set_events ()
20qe_gasday._set_events = function ()
21{
22	system.addEventListener ( "start", function ()
23	{
24		// Stuff to do when the website is ready
25	} );
26};
27// }}}
28
29
30qe_gasday.start_page = function ()
31{
32
33	var data = new LiWEDate();
34	qe_gasday._show_date_full ( data, function ()
35	{ 
36		qe_gasday.init_calendar();
37	} );
38};
39
40
41qe_gasday._show_date_full = function ( data, cback )
42{
43	if  ( _.isUndefined ( data ) ) data = new LiWEDate();
44	var qb = new DBQuery();
45	qb.cond_add ( "rub_data", data.format ( "YYYY-MM-DD" ), "<=" );
46	qb.order_add ( "rub_data", "DESC" );
47
48	qe_gasday.action ( "gasday_list_show",  { "query_data" : qb.stringify(), "rows" : 1 } , function ( res )
49	{
50		if ( ! res ) return;
51		var data = res [ 0 ];
52		qe_gasday.rub_data = data.rub_data;
53
54		qe_gasday.datatable ( data , function ( html )
55		{
56			$l( "gasday_table", html );
57		} );
58		qe_gasday.graph ( qe_gasday.rub_data, qe_gasday.chart_params.kind , qe_gasday.chart_params.period , "gasday_chart" );
59		if ( cback ) cback();
60	} );
61};
62
63qe_gasday.show_chart = function ( kind, period )
64{
65	qe_gasday.chart_params = { "kind" : kind, "period" : period };
66	qe_gasday.graph ( qe_gasday.rub_data, kind, period , "gasday_chart" );
67};
68
69
70qe_gasday.init_calendar = function ()
71{
72	qe_gasday._calendar = $ ( "#gasday_calendar").clndr( { 
73		template: $( '#clndr-gasday-template' ).html(),
74		adjacentDaysChangeMonth: true,
75		targets: { day: 'day' },
76		daysOfTheWeek: ['Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab', 'Dom'],
77		showAdjacentMonths : false,
78		clickEvents: { 
79				onMonthChange: qe_gasday.get_gasmonth,
80				click : qe_gasday.show_gasday_calendar 
81		},
82		ready : function () { qe_gasday.get_gasmonth (); }
83	} );
84};
85
86
87qe_gasday.get_gasmonth = function ( date )
88{
89	if ( _.isUndefined ( date ) ) date = moment();
90	var cur_month = date.month()+1;
91	var cur_year = date.year();
92	qe_gasday.action ( "day_of_month" , { month :  cur_month , year : cur_year } , function ( days )
93	{
94		console.log ( days );	
95		var giorni = [];
96		_.each ( days, function ( item )
97		{
98			var clndr_date = moment ( item.rub_data );
99	
100			giorni.push ( {	'date' : clndr_date.format ( "YYYY-MM-DD" ),
101					'day' : clndr_date.format ( "D" )
102				       } );
103		} );
104
105		qe_gasday._calendar.setEvents ( giorni );
106	} );
107};
108
109qe_gasday.show_gasday_calendar = function ( calendar_item )
110{
111	var data = new LiWEDate( calendar_item.date.format ( "YYYY-MM-DD" ) );
112	qe_gasday._show_date_full ( data );
113};
114
115
116qe_gasday.settings = {
117                immissioni_tot : 'Totale immesso (di cui)',
118                immissioni_1 : 'Importazioni',
119                immissioni_1a : '- Mazara del Vallo',
120                immissioni_1b : '- Arnoldstein',
121                immissioni_1c : '- Passo Gries',
122                immissioni_1d : '- Gela',
123                immissioni_1e : '- Gorizia',
124                immissioni_1f : '- Panigaglia',
125                immissioni_1g : '- Cavarzere',
126                immissioni_1h : '- Livorno',
127                immissioni_2 : 'Produzione Nazionale',
128                immissioni_3 : 'Stoccaggi (1)',
129                immissioni_3a : '- Stogit',
130                immissioni_3b : '- Edison Stoccaggio',
131                prelievi_tot: 'Totale prelevato (di cui)',
132                prelievi_1: 'Riconsegne di terzi e consumi di sistema (di cui)',
133                prelievi_1a: '- Termoelettrico',
134                prelievi_1b: '- Industriale',
135                prelievi_1c: '- Impianti di distribuzione (2)',
136                prelievi_2: 'Reti di terzi e consumi di sistema (3)',
137                prelievi_2a: '- Esportazione Gorizia'
138        };
139
140qe_gasday.graph_types = [
141                'AccumulatorBar',
142                'Area',
143                'Bar',
144                'Dot',
145                'Line',
146                'Mini.Bar',
147                'Mini.Pie',
148                'Mini.SideBar', 
149                'Net',
150                'Pie',
151                'SideBar',
152                'SideStackedBar',
153                'Spider',
154                'StackedArea',
155                'StackedBar'
156        ];
157
158
159
160qe_gasday.datatable = function ( data, cback )
161{
162	var context = {};
163        var c = new LiWEDate ( "2015-09-01" );
164        var d = new LiWEDate ( data.rub_data );
165        var old = d < c;
166
167        context.date = d.format ( "DD MMMM YYYY" );
168	context.old = old;
169
170	var values = [];
171	_.each ( qe_gasday.settings , function ( label, key )
172	{
173		var val = data [ key ];
174		values.push ( { "label" : label,
175				 "class" : key,
176				 "value" : val.toFixed ( 1 ).replace ( '.', ',' )
177				} );
178	} );
179
180	context.data = values;
181	context.gasday = context.date;
182
183	qe_gasday.template_get ( "datatable", function ()
184	{
185		var res = qe_gasday.template_render ( "datatable", context );
186		if ( cback ) cback ( res );
187	} );
188	
189	
190	
191};
192
193qe_gasday.graph = function ( end_date, kind, period, dest_div )
194{
195        var params = {
196                end_date: end_date,
197                kind: kind,
198                period: period
199        };
200        qe_gasday.action ( "graph", params,  function ( res )
201        {
202                if ( ! res.data ) return;
203		res.dest_div = dest_div;
204		res.height = 400;
205		qe_gasday.graph_draw ( "qe_gasday", res );
206        } );
207};
208
209
210qe_gasday.graph_draw = function ( name, params )
211{
212
213	if ( ! params )
214	{
215		console.error ( 'Graph error: no parameters supplied!' );
216		return;
217	}
218
219	if ( ! params.type || qe_gasday.graph_types.indexOf ( params.type ) == -1 )
220	{
221		console.error ( 'Graph error: invalid graph type: %s', params.type );
222		return null;
223	}
224
225        var container = $l( params.dest_div );
226
227	container.innerHTML = "";
228	var canvas = null;
229
230        if ( container.firstChild && container.firstChild.tagName == 'CANVAS' )
231        {
232                canvas = container.firstChild;
233                if ( ! canvas.id )
234                {
235                        var i = 1;
236                        while ( $( 'graph-canvas-' + i ) )
237                                i++;
238                        canvas.id = 'graph-canvas-' + i;
239                }
240        }
241        else
242        {
243                canvas = document.createElement ( 'canvas' );
244                canvas.id = 'graph-' + name;
245                container.appendChild ( canvas );
246        }
247
248
249	var size = liwe.dom.get_size ( container );
250	var width = size [ 0 ];
251	var height = size [ 1 ];
252
253	if ( params.width )  width = parseInt ( params.width, 10 );
254	if ( params.height ) height = parseInt ( params.height, 10 );
255
256	var bluff = new Bluff [ params.type ] ( canvas.id, _.format ( "%dx%d", width, height ) );
257
258	//if ( params.theme && this [ 'theme_' + params.theme ] ) this.bluff [ 'theme_' + params.theme ] ();
259	bluff [ 'theme_' + params.theme ] ();
260
261	var colors = [ '#FFF804', '#336699', '#339933', '#ff0000', '#cc99cc', '#cf5910', '#000000' ];
262
263	bluff.set_theme ( {
264		colors: colors,
265		marker_color: 'black',
266		font_color: 'black',
267		background_colors: ['white', 'white']
268	} );
269    
270
271
272	//bluff.theme_37signals();
273
274	if ( ! params.data )
275	{
276		console.error ( 'Graph error: no data supplied!' );
277		return;
278	}
279
280	_.each ( params.data, function ( v, k )
281	{
282		bluff.data ( k, v );
283	} );
284
285	if ( params.options )
286	{
287		_.each ( params.options, function ( v, k )
288		{
289			bluff [ k ] = v;
290		} );
291	}
292
293	qe_gasday._bluff = bluff;
294	bluff.draw ();
295};
296

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.