Difference between revisions of "Widget:WFSPCompare"

From Open Energy Information

(changing button colors (again))
(added download data button)
Line 78: Line 78:
 
g.button text.buttonText {
 
g.button text.buttonText {
 
   font-family: Oxygen;
 
   font-family: Oxygen;
  fill: #333322;
 
 
}
 
}
  
Line 187: Line 186:
 
<!-- Preset Buttons -->
 
<!-- Preset Buttons -->
 
<div id="div_preset_btns" style="overflow: scroll; display: none">
 
<div id="div_preset_btns" style="overflow: scroll; display: none">
   <svg id="svg_preset_btns" width="700" height="50"></svg>
+
   <svg id="svg_preset_btns" width="815" height="50"></svg>
 
</div>
 
</div>
  
Line 422: Line 421:
 
     var e = document.getElementById("sel");
 
     var e = document.getElementById("sel");
 
     var turbineID_selected = e.options[e.selectedIndex].value;
 
     var turbineID_selected = e.options[e.selectedIndex].value;
     //if ( (turbineID_selected != "n/a") && !turbineIDs_selected.includes(turbineID_selected) ) {
+
     if ( (turbineID_selected != "n/a") && !turbineIDs_selected.includes(turbineID_selected) ) {
     if ( (turbineID_selected != "n/a") && !turbineIDs_selected.indexOf(turbineID_selected) >= 0 ) {
+
     // if ( (turbineID_selected != "n/a") && !turbineIDs_selected.indexOf(turbineID_selected) >= 0 ) {
 
       turbineIDs_selected.push(turbineID_selected)
 
       turbineIDs_selected.push(turbineID_selected)
 
     }
 
     }
 
     if (turbineID_init != "NULL") {
 
     if (turbineID_init != "NULL") {
       //if (available_turbineIDs.includes(turbineID_init)) {  
+
       if (available_turbineIDs.includes(turbineID_init)) {  
       if (available_turbineIDs.indexOf(turbineID_init) >= 0) {  
+
       // if (available_turbineIDs.indexOf(turbineID_init) >= 0) {  
 
         turbineIDs_selected.push(turbineID_init);
 
         turbineIDs_selected.push(turbineID_init);
 
         turbineID_init = "NULL";
 
         turbineID_init = "NULL";
Line 882: Line 881:
 
                           .attr("id","allButtons");
 
                           .attr("id","allButtons");
  
       var labels= ['Today','Last 7 Days','Last 30 Days','Last Year','Custom Range','Reset'];
+
       var labels= ['Today','Last 7 Days','Last 30 Days','Last Year','Custom Range','Reset', 'Download'];
  
       var defaultColor= "#12f494";
+
       var defaultColor= "#303f9f";
       var hoverColor= "#2BDA82";
+
       var hoverColor= "#001980";
       var pressedColor= "#12f494";
+
       var pressedColor= "#303f9f";
  
 
       var buttonGroups= allButtons.selectAll("g.button")
 
       var buttonGroups= allButtons.selectAll("g.button")
Line 966: Line 965:
 
                                     .scale(width_context / (s[1] - s[0]))
 
                                     .scale(width_context / (s[1] - s[0]))
 
                                     .translate(-s[0], 0));
 
                                     .translate(-s[0], 0));
 +
                                } else if (i == 6) {
 +
                                    var s = d3.event.selection || xScale_focus1.range();
 +
                                    console.log(xScale_focus1.invert(s[0]))
 +
                                    var formatMonth = d3.timeFormat("%m");
 +
                                    var formatYear = d3.timeFormat("%Y");
 +
                                    var minDate = formatYear(xScale_focus1.invert(s[0])) + formatMonth(xScale_focus1.invert(s[0]));
 +
                                    var maxDate = formatYear(xScale_focus1.invert(s[1])) + formatMonth(xScale_focus1.invert(s[1]));
 +
                                    console.log(minDate);
 +
                                    base_url = "/services/api/3/WFS/?turbine_id="
 +
 
 +
                                    function ajax_loop_download(idx) {
 +
                                      var Turbine_ID = turbineIDs_selected[idx];
 +
                                      var turbine_url = base_url + Turbine_ID
 +
                                      $.ajax({
 +
                                        'url': turbine_url,
 +
                                        cache: false,
 +
                                        dataType: 'json',
 +
                                        success: function (available_months) {
 +
                                            console.log(available_months)
 +
                                            for (var k = 0; k < available_months.length; k++) {
 +
                                              if ( (available_months[k] >= minDate) && (available_months[k] <= maxDate)) {
 +
                                                turbine_url = turbine_url.concat("&months[]=");
 +
                                                turbine_url = turbine_url.concat(available_months[k]);
 +
                                              };
 +
                                            };
 +
                                            turbine_url = turbine_url.concat("&format=10min");
 +
                                            console.log(turbine_url)
 +
                                            window.open(turbine_url, '_blank');
 +
                                            idx += 1;
 +
                                            if (idx < num_turbineIDs) { ajax_loop_download(idx) }
 +
                                        },
 +
                                        fail: function (jqXHR, textStatus, errorThrown) {
 +
                                          $element.html(errorHTML);
 +
                                          // console.log('fail');
 +
                                        }
 +
                                      });
 +
                                    };
 +
                                    var idx = 0;
 +
                                    ajax_loop_download(idx);
 
                                 }
 
                                 }
 
                             })
 
                             })

Revision as of 11:25, 27 September 2017

This widget provides a comparison tool for the Wind for Schools Portal content. It generates a table, visualizations, and interactive interface for exploring/comparing wind turbine data between participating schools.

For example:

{{#Widget:WFSPCompare}}