Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 14.51 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <!-- Disclaimer: I hate HTML/CSS/JS
  5.        Hours spent on this dumb assignment: 3
  6.    -->
  7.     <meta charset="UTF-8">
  8.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9.     <title>BabyName SQL Chart PL</title>
  10.     <link rel="stylesheet" href="./css/BabyNamesMobile.css">
  11.     <!-- This is not a secure content policy, should be locked down for prod -->
  12.     <meta http-equiv="Content-Security-Policy"
  13.         content="default-src 'self' data: gap: 'unsafe-inline'
  14.                    https://ssl.gstatic.com
  15.                    https://*.phonegap.com;
  16.                 style-src 'self' 'unsafe-inline';
  17.                 script-src  'self' 'unsafe-inline' 'unsafe-eval'
  18.                    http://mysqljs.com
  19.                    https://cdnjs.cloudflare.com
  20.                     https://*.phonegap.com ;
  21.                 media-src *" />
  22.     <!-- ======================================================================================== -->
  23.     <!-- script for chart -->
  24.     <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"></script>
  25.    
  26. <style>
  27.     /* portrait/landscape styles */
  28.         * {
  29.             box-sizing    : border-box;
  30.             margin        : 0;
  31.             font-family   : sans-serif;
  32.         }
  33.        
  34.         html, body  {
  35.             height        : 100vh;
  36.             width         : 100vw;
  37.         }
  38.  
  39.         @media (orientation: portrait) {
  40.             /* h2::after { content: "Portrait Mode"                    }
  41.             h3::after { content: "Height: Head: 20vh, Main: 80vh"   }
  42.             h4::after { content: "Width: Head: 100vw, Main: 100vw"  } */
  43.             #head { height: 20vh;   }
  44.             #main { height: 80vh;   }
  45.             #head { width:  100vw;  }
  46.             #main { width:  100vw;  }
  47.             #head { float:  none;   }
  48.             #main { float:  none;   }
  49.         }
  50.         /* NOT WORKING Landscape mode, not sure why and super frustrating */
  51.         @media (orientation: landscape) {
  52.             /* h2::after { content: "Landscape Mode"                   }
  53.             h3::after { content: "Height: Head: 100vh, Main: 100vh" }
  54.             h4::after { content: "Width: Head: 50vw, Main: 50vw"    } */
  55.             #head { height: 100vh;  }
  56.             #main { height: 100vh;  }
  57.             #head { width:  50vw;   }
  58.             #main { width:  50vw;   }
  59.             #head { float:  left;   }
  60.             #main { float:  left;   }
  61.         }
  62.  
  63.         #head { background-color: cadetblue;
  64.         height: 30vh; }
  65.         #main { background-color: cornsilk;
  66.         height: 70vh; }
  67.  
  68. /* ===================================== style for chart ======================================= */
  69.  
  70. /* style for baby names dropdown boxes */
  71. * {
  72.             box-sizing          : border-box;
  73.             margin              : 0;
  74.             font-family         : sans-serif;
  75.         }
  76.  
  77.         body, html  {
  78.             height                  : 100vh;
  79.             width                   : 100vw;
  80.         }
  81.  
  82.         #head    {
  83.             background-color    : cadetblue;
  84.             height: vh;
  85.         }
  86.  
  87.        
  88.         #sqlDebug  {
  89.             margin              : 3vh;
  90.         }
  91.  
  92.         #sqlDebug pre {
  93.             background-color    : lightblue;
  94.             border              : 1px solid black;
  95.             border-radius       : 2vw;
  96.             padding             : 0.5vw;
  97.             font-size           : 2vw;
  98.         }
  99.  
  100.         pre span, pre {
  101.             font-family         : monospace;
  102.         }
  103.  
  104.         h1 {
  105.             text-align          : center;
  106.         }
  107.  
  108.         #controlDiv {
  109.             width               : 100vw;
  110.             margin              : 0 auto;
  111.             text-align          : center;
  112.             padding-top         : 1vw;
  113.         }
  114.  
  115.         #controlDiv button, select {
  116.             width               : 20vw;
  117.             height              : 6vw;
  118.             font-size           : 3vw;
  119.             vertical-align      : middle;
  120.         }        
  121.  
  122.  
  123.     </style>
  124. </head>
  125.  
  126. <body onload="initialize()">
  127.  
  128.  
  129.     <div id="head">
  130.         <div id="controlDiv">
  131.             <h1>Top Baby Names</h1>
  132.             <select name="state" id="stateId" onchange="updateState(value)">
  133.                 <option value="AL">Alabama</option>
  134.                 <option value="AK">Alaska</option>
  135.                 <option value="AZ">Arizona</option>
  136.                 <option value="AR">Arkansas</option>
  137.                 <option value="CA">California</option>
  138.                 <option value="CO">Colorado</option>
  139.                 <option value="CT">Connecticut</option>
  140.                 <option value="DE">Delaware</option>
  141.                 <option value="DC">District Of Columbia</option>
  142.                 <option value="FL">Florida</option>
  143.                 <option value="GA">Georgia</option>
  144.                 <option value="HI">Hawaii</option>
  145.                 <option value="ID">Idaho</option>
  146.                 <option value="IL">Illinois</option>
  147.                 <option value="IN">Indiana</option>
  148.                 <option value="IA">Iowa</option>
  149.                 <option value="KS">Kansas</option>
  150.                 <option value="KY">Kentucky</option>
  151.                 <option value="LA">Louisiana</option>
  152.                 <option value="ME">Maine</option>
  153.                 <option value="MD">Maryland</option>
  154.                 <option value="MA">Massachusetts</option>
  155.                 <option value="MI">Michigan</option>
  156.                 <option value="MN">Minnesota</option>
  157.                 <option value="MS">Mississippi</option>
  158.                 <option value="MO">Missouri</option>
  159.                 <option value="MT">Montana</option>
  160.                 <option value="NE">Nebraska</option>
  161.                 <option value="NV">Nevada</option>
  162.                 <option value="NH">New Hampshire</option>
  163.                 <option value="NJ">New Jersey</option>
  164.                 <option value="NM">New Mexico</option>
  165.                 <option value="NY">New York</option>
  166.                 <option value="NC">North Carolina</option>
  167.                 <option value="ND">North Dakota</option>
  168.                 <option value="OH">Ohio</option>
  169.                 <option value="OK">Oklahoma</option>
  170.                 <option value="OR">Oregon</option>
  171.                 <option value="PA">Pennsylvania</option>
  172.                 <option value="RI">Rhode Island</option>
  173.                 <option value="SC">South Carolina</option>
  174.                 <option value="SD">South Dakota</option>
  175.                 <option value="TN">Tennessee</option>
  176.                 <option value="TX">Texas</option>
  177.                 <option value="UT">Utah</option>
  178.                 <option value="VT">Vermont</option>
  179.                 <option value="VA">Virginia</option>
  180.                 <option value="WA">Washington</option>
  181.                 <option value="WV">West Virginia</option>
  182.                 <option value="WI">Wisconsin</option>
  183.                 <option value="WY">Wyoming</option>
  184.             </select>  
  185.            
  186.             <select name="sex" id="sexId" onchange="updateSex(value)">
  187.                 <option value="girl">Girl</option>
  188.                 <option value="boy">Boy</option>
  189.             </select>
  190.  
  191.             <select name="year" id="yearId" onchange="updateYear(value)">
  192.                 <option value="1960">1960</option>
  193.                 <option value="1961">1961</option>
  194.                 <option value="1962">1962</option>
  195.                 <option value="1963">1963</option>
  196.                 <option value="1964">1964</option>
  197.                 <option value="1965">1965</option>
  198.                 <option value="1966">1966</option>
  199.                 <option value="1967">1967</option>
  200.                 <option value="1968">1968</option>
  201.                 <option value="1969">1969</option>
  202.                 <option value="1970">1970</option>
  203.                 <option value="1971">1971</option>
  204.                 <option value="1972">1972</option>
  205.                 <option value="1973">1973</option>
  206.                 <option value="1974">1974</option>
  207.                 <option value="1975">1975</option>
  208.                 <option value="1976">1976</option>
  209.                 <option value="1977">1977</option>
  210.                 <option value="1978">1978</option>
  211.                 <option value="1979">1979</option>
  212.                 <option value="1980">1980</option>
  213.                 <option value="1981">1981</option>
  214.                 <option value="1982">1982</option>
  215.                 <option value="1983">1983</option>
  216.                 <option value="1984">1984</option>
  217.                 <option value="1985">1985</option>
  218.                 <option value="1986">1986</option>
  219.                 <option value="1987">1987</option>
  220.                 <option value="1988">1988</option>
  221.                 <option value="1989">1989</option>
  222.                 <option value="1990">1990</option>
  223.                 <option value="1991">1991</option>
  224.                 <option value="1992">1992</option>
  225.                 <option value="1993">1993</option>
  226.                 <option value="1994">1994</option>
  227.                 <option value="1995">1995</option>
  228.                 <option value="1996">1996</option>
  229.                 <option value="1997">1997</option>
  230.                 <option value="1998">1998</option>
  231.                 <option value="1999">1999</option>
  232.                 <option value="2000">2000</option>
  233.                 <option value="2001">2001</option>
  234.                 <option value="2002">2002</option>
  235.                 <option value="2003">2003</option>
  236.                 <option value="2004">2004</option>
  237.                 <option value="2005">2005</option>
  238.                 <option value="2006">2006</option>
  239.                 <option value="2007">2007</option>
  240.                 <option value="2008">2008</option>                
  241.             </select>
  242.  
  243.             <!-- <button type="button" onclick="runQuery()">Run</button> -->
  244.         </div>
  245.         <div id="sqlDebug">
  246.             <pre><span id="queryStingId"></span></pre>
  247.         </div>
  248.     </div>
  249.  
  250.  
  251.     <!-- ==================================== chart main canvas div ========================================== -->
  252.     <div id="main">
  253.             <canvas id="chartCanvasId"></canvas>
  254.    
  255.     <!-- chart scripting  -->
  256.     <script>
  257.         // NOT WORKING not sure how to add a border around the chart bar
  258.        
  259.         </script>
  260.     </div>
  261.  
  262.    
  263.  
  264.     <script src="cordova.js"></script>
  265.     <script src="http://mysqljs.com/mysql.js"></script>
  266.     <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"></script>
  267.     <script src="./js/BabyNamesMobile.js"></script>
  268.  
  269.     <!-- BabyNameWebApp sql script -->
  270.     <script src="http://mysqljs.com/mysql.js"></script>
  271.     <script>
  272.         // default query values
  273.         var state       = "AL"
  274.         var sex         = "girl"
  275.         var year        = "1960"
  276.         var queryString = ""
  277.    
  278.         function updateState(value) {
  279.             state = value
  280.             updateQueryString()
  281.             runQuery()
  282.         }
  283.  
  284.         function updateSex(value)   {
  285.             sex = value
  286.             updateQueryString()
  287.             runQuery()
  288.         }
  289.  
  290.         function updateYear(value)  {
  291.             year = value
  292.             updateQueryString()
  293.             runQuery()
  294.         }
  295.  
  296.         function initialize() {
  297.             updateQueryString()
  298.             runQuery()
  299.         }
  300.        
  301.         function updateQueryString() {
  302.             queryString =
  303.  
  304.               "SELECT name, number, state, sex, year \n"
  305.             + "FROM   NamesNumberByStateYear \n"
  306.             + "WHERE\n "
  307.             + " state = "    + "'" + state   + "'"
  308.             + " AND sex = "  + "'" + sex     + "'"
  309.             + " AND year = " + "'" + year    + "'\n"
  310.             + "ORDER BY number DESC LIMIT 5;"
  311.             document.getElementById('queryStingId').innerHTML = queryString;
  312.         }
  313.  
  314.         function runQuery() {
  315.             MySql.Execute(
  316.                 "sql.wpc-is.online",    // mySQL server
  317.                 "demo",                 // login name
  318.                 "demo12345",            // login password
  319.                 "BabyNames",            // database to use
  320.                                         // SQL query string:
  321.                 queryString,
  322.                 function (data) {
  323.                     processQueryResult(data);
  324.                 }
  325.             );
  326.         }
  327.  
  328.         function processQueryResult(queryReturned) {
  329.             if (!queryReturned.Success) {
  330.                 alert(queryReturned.Error)
  331.             } else {
  332.             let names   = ["Mary", "Lisa", "Patricia", "Linda", "Susan"]
  333.             let numbers = [407, 250, 245, 241, 214]
  334.             data = queryReturned.Result;
  335.             names = [];
  336.             number = [];
  337.  
  338.             for (let i=0; i<data.length;i++) {
  339.            names.push(data[i].name)
  340.            numbers.push(data[i].number)
  341.        }
  342.  
  343.            let chartCanvas  = document.getElementById('chartCanvasId')
  344.            let chartContext = chartCanvas.getContext('2d')
  345.  
  346.        let myChart = new Chart(chartContext, {
  347.            type: 'bar',
  348.            data: {
  349.                labels: names,
  350.                datasets: [{
  351.                    // NOT WORKING cant get label to disappear
  352.                    label: 'Number of Babies Named...',
  353.                    data: numbers,
  354.                    backgroundColor:[
  355.                        'blue',
  356.                        'red',
  357.                        'grey',
  358.                        'yellow',
  359.                        '#eee',
  360.                    ]
  361.                }]
  362.            },
  363.            options: {
  364.                title: {
  365.                    display: true,
  366.                    // NOT WORKING cant get this text to update
  367.                    text: "Most Popular " + sex + " Names from " + state + " in " + year + "."
  368.                    // "Most Popular Girl Names from Alabama in 1960"
  369.                    // "Most Popular" + sex + "Names from" + state + "in " + year + "."
  370.                },
  371.                responsive: true,           // chartjs RWD requirement
  372.                maintainAspectRatio: false,  // chartjs RWD requirement
  373.                legend: false
  374.            }
  375.        });
  376.                 document.getElementById("output").innerHTML =
  377.                     JSON.stringify(queryReturned.Result, null, 2);
  378.            }
  379.         }
  380.     </script>
  381. </body>
  382.  
  383. </html>
  384. <!-- NOT WORKING no idea how to populate the JSON data into the chart, no clue where to even put this in the code -->
  385. <!-- NOT WORKING no idea how to perform a search dynamically without a run button, no idea where to put this in the code -->
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement