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.