var project={"_id":"6091b6edf2b9a3f8f8bd7e1f","id":"548ee6f6a3769956381fa6acd8d269661e60b270","name":"TEs dashboard","user":"5969034e9b111eaf654f4aab","description":"","created":"2021-05-04T19:46:38.432Z","shared":false,"server":"micro","datafiles":[{"file":{"link":"https://wqzr3klah5.execute-api.us-east-1.amazonaws.com/pro/te/gette_accetability?id=istars4","type":"URL/API","url":"https://wqzr3klah5.execute-api.us-east-1.amazonaws.com/pro/te/gette_accetability?id=istars4","message":{"error":false,"text":""}},"varname":"te_accetability","title":"API","activated":true,"name":"datafile","linkedtofile":true,"optional":true,"content":"","sendtojs":true},{"file":{"link":"https://v4p4sz5ijk.execute-api.us-east-1.amazonaws.com/anbdata/states/names/icao-member-states?api_key=f8daad30-6807-11e7-b26b-e942a59cce42&format=json","type":"URL/API","url":"https://v4p4sz5ijk.execute-api.us-east-1.amazonaws.com/anbdata/states/names/icao-member-states?api_key=f8daad30-6807-11e7-b26b-e942a59cce42&format=json","message":{"error":false,"text":""}},"varname":"icaoStates","title":"API","activated":true,"name":"datafile","linkedtofile":true,"optional":true,"content":"","sendtojs":true}],"packs":["bootstrap","jquery"],"container":"mainpart","js":{"file":{"type":"","url":"","link":"","message":{"error":true,"text":"File not defined"},"depurl":"https://quipslibistars.s3.amazonaws.com/prod/548ee6f6a3769956381fa6acd8d269661e60b270/script.js"},"title":"Javascript","activated":true,"name":"js","linkedtofile":false,"optional":true,"content":"var WACAF = [], \nAPAC=[],\nEURNAT = [],\nMID=[],\nSAM=[],\nNACC=[],\nESAF=[];\nvar WACAF2 = [], APAC2=[],EURNAT2 = [],MID2=[],SAM2=[],NACC2=[],ESAF2=[];\nvar acceptability = []; \nvar statesTe = [];\nvar WACAF_color = 'rgba(124,181,236,0.5)', \nAPAC_color='rgba(240,190,50,0.80)',\nEURNAT_color = 'rgba(90,200,90,0.80)',\nMID_color='#FF7F00',\nSAM_color='#0000FF',\nNACC_color='rgba(244,91,91,0.5)',\nESAF_color='#8B00FF',\nWorld_color='#006400'/*'rgba(74,131,240,0.80)'*/;\n\nvar distinctStates = [],table;\n\n\n\n// New map-pie series type that also allows lat/lon as center option.\n// Also adds a sizeFormatter option to the series, to allow dynamic sizing\n// of the pies.\nHighcharts.seriesType('mappie', 'pie', {\n center: null, // Can't be array by default anymore\n clip: true, // For map navigation\n states: {\n hover: {\n halo: {\n size: 5\n }\n }\n },\n dataLabels: {\n distance: -15,\n\tformatter: function () {return this.y +\"%\"}\n }\n}, {\n getCenter: function() {\n var options = this.options,\n chart = this.chart,\n slicingRoom = 2 * (options.slicedOffset || 0);\n if (!options.center) {\n options.center = [null, null]; // Do the default here instead\n }\n // Handle lat/lon support\n /*\n if (options.center.lat !== undefined) {\n var point = chart.fromLatLonToPoint(options.center);\n options.center = [\n chart.xAxis[0].toPixels(point.x, true),\n chart.yAxis[0].toPixels(point.y, true)\n ];\n }\n\t\t*/\n\n // Replace lat/lon with plotX/plotY\n if (options.center.plotX !== undefined) {\n options.center = [options.center.plotX, options.center.plotY];\n }\n // Handle dynamic size\n if (options.sizeFormatter) {\n options.size = options.sizeFormatter.call(this);\n }\n // Call parent function\n var result = Highcharts.seriesTypes.pie.prototype.getCenter.call(this);\n // Must correct for slicing room to get exact pixel pos\n result[0] -= slicingRoom;\n result[1] -= slicingRoom;\n return result;\n },\n translate: function(p) {\n this.options.center = this.userOptions.center;\n this.center = this.getCenter();\n return Highcharts.seriesTypes.pie.prototype.translate.call(this, p);\n }\n});\n\n\ninit();\n\nfunction init(){\n te_accetability.forEach(function(v){\n if(acceptability.indexOf(v.StateCode) < 0 && v.Source == \"TE Update\")\n {\n acceptability.push(v.StateCode);\n statesTe.push({state:v.StateCode, region:v.ICAORegion});\n }\n \n });\n \n //console.log(acceptability);\n \n te_accetability.forEach(function(v){\n var flag = true;\n distinctStates.forEach(function(u){\n if(v.StateCode == u.value)\n flag = false;\n });\n if(flag)\n {\n distinctStates.push({value: v.StateCode, name : v.State});\n }\n });\n \n //console.log(distinctStates);\n \n statesTe.forEach(function(v){\n\t\t\tif(v.region == \"WACAF\")\n\t\t\t\tWACAF2.push(v.state);\n\t\t\tif(v.region == \"APAC\")\n\t\t\t\tAPAC2.push(v.state);\n\t\t\tif(v.region == \"EUR/NAT\")\n\t\t\t\tEURNAT2.push(v.state);\n\t\t\tif(v.region == \"MID\")\n\t\t\t\tMID2.push(v.state);\n\t\t\tif(v.region == \"SAM\")\n\t\t\t\tSAM2.push(v.state);\n\t\t\tif(v.region == \"NACC\")\n\t\t\t\tNACC2.push(v.state);\n\t\t\tif(v.region == \"ESAF\")\n\t\t\t\tESAF2.push(v.state);\n\t\t});\n \n \n icaoStates.forEach(function(v){\n\t\tswitch(v.ICAO_regional_office){\n\t\t\tcase \"WACAF\":\n\t\t\t\tWACAF.push(v.iso_3_code);\n\t\t\t\tbreak;\n\t\t\tcase \"APAC\":\n\t\t\t\tAPAC.push(v.iso_3_code);\n\t\t\t\tbreak;\n\t\t\tcase \"EUR/NAT\":\n\t\t\t\tEURNAT.push(v.iso_3_code);\n\t\t\t\tbreak;\n\t\t\tcase \"MID\":\n\t\t\t\tMID.push(v.iso_3_code);\n\t\t\t\tbreak;\n\t\t\tcase \"SAM\":\n\t\t\t\tSAM.push(v.iso_3_code);\n\t\t\t\tbreak;\n\t\t\tcase \"NACC\":\n\t\t\t\tNACC.push(v.iso_3_code);\n\t\t\t\tbreak;\n\t\t\tcase \"ESAF\":\n\t\t\t\tESAF.push(v.iso_3_code);\n\t\t\t\tbreak;\n\t\t\t\n\t\t}\n\t});\n\t\n\t//console.log(statesTe);\n\t//console.log(WACAF2,APAC2,EURNAT2,MID2,SAM2,NACC2,ESAF2);\n\tdrawMap();\n\t\n\tdistinctStates.forEach(function(v){\n $(\"#state\").append(\"\");\n });\n if(distinctStates.length > 0)\n {\n $(\"#state\").val(distinctStates[0].value);\n drawTable();\n }\n}\n\n$(\"#state\").on(\"change\",function(){\n //console.log(\"111\");\n drawTable();\n});\n\nfunction drawTable(){\n var selectedVal = $(\"#state\").val();\n\tvar data = [];\n\t\n\t//console.log(selectedVal)\n\t\n\tte_accetability.forEach(function(v){\n\t if(v.StateCode == selectedVal)\n\t {\n\t if(v.AcceptTEs === null || v.AcceptTEs === \"\")\n\t temp = v.AcceptanceOfOtherStatesTEs;\n\t else\n\t temp = v.AcceptTEs;\n\t \n data.push([\n v.State,\n v.ICAORegion,\n v.TEType,\n v.Annex,\n v.Part,\n v.Standard,\n temp,\n v.Source,\n new Date(parseFloat(v.Modified.substring(6, 19))).toLocaleDateString(\"en-US\")\n ]);\n \n //console.log(v.Modified.substring(6, 19),v.Modified,new Date(parseFloat(v.Modified.substring(6, 19))))\n\t }\n\t});\n\t\n\t\n\t//console.log(data[0][9])\n\t\n\tif (table) \n\t{\n\t\ttable.clear();\n\t\t//$('#tableBody').empty();\n\t\t//table = null;\n\t}\n\t\n\ttable = $('#provTable').DataTable({\n\t data:data,\n\t destroy: true,\n\t responsive: true,\n\t bFilter: false,\n\t paging: false\n\t});\n\t\n\t//new $.fn.dataTable.FixedHeader( table );\n\t//console.log(table)\n}\n\n\n$(\"#statesel\").on(\"change\",function(){\n\t//console.log(\"change\")\n\tdrawMap();\n})\t\n\n$(\"#pieCharts\").change(function(){\n\tdrawMap();\n})\n\nfunction drawMap(){\t\n\tvar selectedVal = $(\"#statesel\").val();\n\tvar data;\n\tvar dataTemp = [\n\t\t{id:\"WACAF\",pro:WACAF2.length,nonpro:(WACAF.length - WACAF2.length),centerLon:-17.4677,centerLat:14.7167,color:WACAF_color},\n\t\t{id:\"APAC\",pro:APAC2.length,nonpro:(APAC.length - APAC2.length),centerLon:100.5018,centerLat:13.7563,color:APAC_color},\n\t\t{id:\"EUR/NAT\",pro:EURNAT2.length,nonpro:(EURNAT.length - EURNAT2.length),centerLon:2.3522,centerLat:48.8566,color:EURNAT_color},\n\t\t{id:\"MID\",pro:MID2.length,nonpro:(MID.length - MID2.length),centerLon:31.2357,centerLat:30.0444,color:MID_color},\n\t\t{id:\"SAM\",pro:SAM2.length,nonpro:(SAM.length - SAM2.length),centerLon:-77.0428,centerLat:-12.0464,color:SAM_color},\n\t\t{id:\"NACC\",pro:NACC2.length,nonpro:(NACC.length - NACC2.length),centerLon:-99.1332,centerLat:19.4326,color:NACC_color},\n\t\t{id:\"ESAF\",pro:ESAF2.length,nonpro:(ESAF.length - ESAF2.length),centerLon:36.8219,centerLat:-1.2921,color:ESAF_color},\n\t\t{id:\"World\",pro:(WACAF2.length + APAC2.length + EURNAT2.length + MID2.length + SAM2.length + NACC2.length + ESAF2.length),nonpro:((WACAF.length + APAC.length + EURNAT.length + MID.length + SAM.length + NACC.length + ESAF.length) - (WACAF2.length + APAC2.length + EURNAT2.length + MID2.length + SAM2.length + NACC2.length + ESAF2.length)),centerLon:-73.5673,centerLat:45.5017,color:World_color}\n\t];\n\t\n\tif(selectedVal == \"icao\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < WACAF2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: WACAF2[i],\n\t\t\t\tvalue: 1,\n\t\t\t\tid: WACAF2[i],\n\t\t\t});\n\t\t}\n\t\tfor (var i = 0; i < APAC2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: APAC2[i],\n\t\t\t\tvalue: 2,\n\t\t\t\tid: APAC2[i],\n\t\t\t});\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < EURNAT2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: EURNAT2[i],\n\t\t\t\tvalue: 3,\n\t\t\t\tid: EURNAT2[i],\n\t\t\t});\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < MID2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: MID2[i],\n\t\t\t\tvalue: 4,\n\t\t\t\tid: MID2[i],\n\t\t\t});\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < SAM2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: SAM2[i],\n\t\t\t\tvalue: 5,\n\t\t\t\tid: SAM2[i],\n\t\t\t});\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < NACC2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: NACC2[i],\n\t\t\t\tvalue: 6,\n\t\t\t\tid: NACC2[i],\n\t\t\t});\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < ESAF2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: ESAF2[i],\n\t\t\t\tvalue: 0,\n\t\t\t\tid: ESAF2[i],\n\t\t\t});\n\t\t}\n\t}\n\tif(selectedVal == \"WACAF\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < WACAF2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: WACAF2[i],\n\t\t\t\tvalue: 1,\n\t\t\t\tid: WACAF2[i],\n\t\t\t});\n\t\t}\n\t}\n\t\n\tif(selectedVal == \"APAC\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < APAC2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: APAC2[i],\n\t\t\t\tvalue: 2,\n\t\t\t\tid: APAC2[i],\n\t\t\t});\n\t\t}\n\t}\n\t\n\tif(selectedVal == \"EURNAT\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < EURNAT2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: EURNAT2[i],\n\t\t\t\tvalue: 3,\n\t\t\t\tid: EURNAT2[i],\n\t\t\t});\n\t\t}\n\t}\n\t\n\tif(selectedVal == \"MID\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < MID2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: MID2[i],\n\t\t\t\tvalue: 4,\n\t\t\t\tid: MID2[i],\n\t\t\t});\n\t\t}\n\t}\n\t\n\tif(selectedVal == \"SAM\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < SAM2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: SAM2[i],\n\t\t\t\tvalue: 5,\n\t\t\t\tid: SAM2[i],\n\t\t\t});\n\t\t}\n\t}\n\t\n\tif(selectedVal == \"NACC\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < NACC2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: NACC2[i],\n\t\t\t\tvalue: 6,\n\t\t\t\tid: NACC2[i],\n\t\t\t});\n\t\t}\n\t}\n\t\n\tif(selectedVal == \"ESAF\")\n\t{\n\t\tmapData = [];\n\t\tfor (var i = 0; i < ESAF2.length; i++){\n\t\t\tmapData.push({\n\t\t\t\tcode: ESAF2[i],\n\t\t\t\tvalue: 0,\n\t\t\t\tid: ESAF2[i],\n\t\t\t});\n\t\t}\n\t}\n var map_width = document.getElementById('map').getBoundingClientRect().width;\n var map_height = document.getElementById('map').getBoundingClientRect().height;\n\tchart = Highcharts.mapChart('map', {\n\t\t\t\tchart: {\n\t\t\t\t\tborderWidth: 1,\n\t\t\t\t\t//zoomType : ''\n\t\t\t\t},\n\n\t\t\t\ttitle: {\n\t\t\t\t\ttext: 'Licensing TEs Acceptability Dashboard:
States that have indicated their TE acceptability status'\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tsubtitle: {\n\t\t\t\t\ttext: 'States and Regions'\n\t\t\t\t},\n\n\t\t\t\tmapNavigation: {\n\t\t\t\t\tenabled: false\n\t\t\t\t},\n\n\t\t\t\tcolorAxis: {\n\t\t\t\t\tdataClasses: [{\n\t\t\t\t\t\tfrom: -1,\n\t\t\t\t\t\tto: 0.1,\n\t\t\t\t\t\tcolor: ESAF_color,\n\t\t\t\t\t\tname: 'ESAF'\n\t\t\t\t\t}, {\n\t\t\t\t\t\tfrom: 0.1,\n\t\t\t\t\t\tto: 1,\n\t\t\t\t\t\tcolor: WACAF_color,\n\t\t\t\t\t\tname: 'WACAF'\n\t\t\t\t\t}, {\n\t\t\t\t\t\tfrom: 2,\n\t\t\t\t\t\tto: 3,\n\t\t\t\t\t\tname: 'APAC',\n\t\t\t\t\t\tcolor: APAC_color\n\t\t\t\t\t}, {\n\t\t\t\t\t\tfrom: 3,\n\t\t\t\t\t\tto: 4,\n\t\t\t\t\t\tname: 'EURNAT',\n\t\t\t\t\t\tcolor: EURNAT_color\n\t\t\t\t\t},{\n\t\t\t\t\t\tfrom: 4,\n\t\t\t\t\t\tto: 5,\n\t\t\t\t\t\tname: 'MID',\n\t\t\t\t\t\tcolor: MID_color\n\t\t\t\t\t},{\n\t\t\t\t\t\tfrom: 5,\n\t\t\t\t\t\tto: 6,\n\t\t\t\t\t\tname: 'SAM',\n\t\t\t\t\t\tcolor: SAM_color\n\t\t\t\t\t},{\n\t\t\t\t\t\tfrom: 6,\n\t\t\t\t\t\tto: 7,\n\t\t\t\t\t\tname: 'NACC',\n\t\t\t\t\t\tcolor: NACC_color\n\t\t\t\t\t},/*{\n\t\t\t\t\t\tfrom: 7,\n\t\t\t\t\t\tto: 8,\n\t\t\t\t\t\tname: 'World',\n\t\t\t\t\t\tcolor: World_color\n\t\t\t\t\t\t\n\t\t\t\t\t},*/{\n\t\t\t\t\t\tfrom: 8,\n\t\t\t\t\t\tto: 9,\n\t\t\t\t\t\tname: 'Yet to submit TEs',\n\t\t\t\t\t\tcolor: 'grey'\n\t\t\t\t\t}]\n\t\t\t\t},\n\n plotOptions:{\n \tseries:{\n \tpoint:{\n \tevents:{\n \tclick: function(){\n \t//alert(this[\"iso-a3\"]);\n \tconsole.log(this)\n \t$(\"#state\").val(this[\"iso-a3\"]);\n \t$(\"#state\").trigger(\"change\");\n \t//$(\"#jump\").trigger(\"click\");\n \tdocument.getElementById('jump').click();\n \t//$('html, body').animate({scrollTop: $(\"#state\").offset().top},'slow');\n \t//document.body.scrollTop = $(\"#state\").offset().top\n \t//console.log($(\"#state\").offset().top);\n }\n }\n }\n }\n },\n \n tooltip: {\n useHTML: true\n },\n\n\t\t\t\tseries: [{\n\t\t\t\t\tdata: mapData,\n\t\t\t\t\tname:'TE acceptability status: Indicated', \n\t\t\t\t\tmapData: Highcharts.maps['custom/world'],\n\t\t\t\t\tjoinBy: ['iso-a3', 'code'],\n\t\t\t\t\tanimation: true,\n\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t// Use the state tooltip for the pies as well\n\t\t\t\t\t\tpointFormatter: function () {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\"
'+data.id+' |
Indicated: '+data.pro+' |
YET to indicate: '+data.pro+' |