Upload and Select Functionality

by Lakshay Akula

HTML

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="sankey_basic" style="width: 900px; height: 300px;"></div>

JavaScript

google.load('visualization', '1.1', {packages: ['sankey']});      
google.setOnLoadCallback(queryData);

var sheetDisplayed;
var defaultSheet = 'All';

function queryData() {
    var queryString = encodeURIComponent('');
    
    sheetDisplayed = defaultSheet;
    var query = queryHelper(sheetDisplayed);
    query.send(drawChart);
}

function queryHelper(sheetName) {
    return new google.visualization.Query('https://docs.google.com/spreadsheets/d/1jQ8js4AC51Y5-_k00k0qOt7XCoagB9kNZq6C-47JqZM/gviz/tq?sheet='+sheetName+'&headers=1');
}

function drawChart(response) {
    
    if (response.isError()) {
       alert('Error in query: ' + response.getMessage() + ' ' 
             + response.getDetailedMessage());
       return;
    }
        
    var data = response.getDataTable();    
      
    // Sets chart options.
    var options = {
        width: 600,
        sankey: {
            node: {
                interactivity: true
            }
        }
    };

    // Instantiates and draws our chart, passing in some options.
    var chart = new        
    google.visualization.Sankey(document.getElementById('sankey_basic'));
        
    addAppropriateListener();
    
    function addAppropriateListener() {
        if(sheetDisplayed == defaultSheet) {
            google.visualization.events.addListener(chart, 'select', zoom);
        } else {
            google.visualization.events.addListener(chart, 'select', unZoom);
        }
    }
    
    function zoom(e) {
        google.visualization.events.removeListener(chart, 'select', zoom);
        var selection = chart.getSelection();
        var item = selection[0];
        sheetDisplayed = item.name;
        display(sheetDisplayed);
    }
    
    function unZoom(e) {
         google.visualization.events.removeListener(chart, 'select', unZoom);  
         sheetDisplayed = 'All';
         display('All');
    }
    
    function display(toDisplay) {
        var query = queryHelper(toDisplay);
       ...