a68ef370181a2876f6bbf788e72037779b11a60a kate Thu Oct 13 18:57:35 2011 -0700 Changes from code review: 1. Discover server 2. CLose html and body in single file 3. Replace hidden vars with js variables diff --git src/hg/js/encodeDataSummary.js src/hg/js/encodeDataSummary.js index b64ec3f..7293c54 100644 --- src/hg/js/encodeDataSummary.js +++ src/hg/js/encodeDataSummary.js @@ -1,50 +1,52 @@ -//encodeDataSummary.js - pull experiment table and metadata from server -// and display in summary tables -// Formatted: jsbeautify.py -j -// Syntax checked: jslint indent:4, plusplus: true, continue: true, unparam: true, sloppy: true, browser: true */ +/* encodeDataSummary.js - pull experiment table and metadata from server + and display in summary tables + + Formatted: jsbeautify.py -j -k + Syntax checked: jslint indent:4, plusplus: true, continue: true, unparam: true, sloppy: true, browser: true +*/ /*global $, encodeProject */ $(function () { - var requests = [ + var selectedDataType = null, + dataTypeLabelHash = {}, + server, requests = [ // Requests to server API - encodeProject.serverRequests.experiment, encodeProject.serverRequests.dataType, encodeProject.serverRequests.antibody], - selectedDataType = null, - dataTypeLabelHash = {}; + encodeProject.serverRequests.experiment, + encodeProject.serverRequests.dataType, + encodeProject.serverRequests.antibody]; function tableOut(table, types, exps, selectableData) { // Helper function to output tables to document var total = 0, row = 0, - assembly = $("#var_assembly").val(); + assembly = encodeDataSummary_assembly // lay out table $.each(exps, function (key, value) { types.push(key); total += parseInt(value, 10); }); types.sort(); $.each(types, function (i, value) { if (dataTypeLabelHash[value]) { description = dataTypeLabelHash[value].description; } else { description = ''; } // quote the end tags so HTML validator doesn't whine - $(table).append("<tr class='" + - (row % 2 === 0 ? "even" : "odd") + - "'><td title='" + description + "'>" + value + "<\/td><td id='" + value + "' class='dataItem' title='Click to search for " + value + " data'>" + exps[value] + "<\/td><\/tr>"); + $(table).append("<tr class='" + (row % 2 === 0 ? "even" : "odd") + "'><td title='" + description + "'>" + value + "<\/td><td id='" + value + "' class='dataItem' title='Click to search for " + value + " data'>" + exps[value] + "<\/td><\/tr>"); row++; }); if (selectableData) { // TODO: suppress 'Click' title for non-selectables //if (!selectableData) { //$(".dataItem").removeAttr("title"); //} else { // set up search buttons, initially disabled (must select data to enable) $(".searchButton").attr("disabled", "true"); $("#buttonTrackSearch").click(function () { // TODO: base on preview window.location = "/cgi-bin/hgTracks?db=" + assembly + "&tsCurTab=advancedTab&hgt_tsPage=&hgt_tSearch=search&hgt_mdbVar1=dataType&hgt_mdbVal1=" + selectedDataType; }); $("#buttonFileSearch").click(function () { // TODO: base on preview @@ -80,33 +82,33 @@ // Main actions, called when loading data from server is complete var experiments = responses[0], dataTypes = responses[1], antibodies = responses[2], antibodyHash = {}, dataTypeHash = {}, refGenomeExps = {}, cellAssayExps = {}, tfbsExps = {}, antibody, target, dataType, total, refGenomeTypes = [], elementTypes = [], tfbsTypes = [], organism, assembly, header; // variables passed in hidden fields - organism = $("#var_organism").val(); - assembly = $("#var_assembly").val(); - header = $("#var_pageHeader").val(); + organism = encodeDataSummary_organism; + assembly = encodeDataSummary_assembly; + header = encodeDataSummary_pageHeader; $("#pageHeader").text(header); $("title").text('ENCODE ' + header); $.each(antibodies, function (i, item) { antibodyHash[item.term] = item; }); $.each(dataTypes, function (i, item) { dataTypeHash[item.term] = item; dataTypeLabelHash[item.label] = item; }); $.each(experiments, function (i, exp) { // todo: filter out with arg to hgApi if (exp.organism !== organism) { @@ -148,24 +150,28 @@ cellAssayExps[dataType]++; } }); // fill in tables and activate buttons tableOut("#refGenomeTable", refGenomeTypes, refGenomeExps, true); tableOut("#elementTable", elementTypes, cellAssayExps, false); $("#buttonDataMatrix").click(function () { window.location = "encodeDataMatrixHuman.html"; }); tableOut("#tfbsTable", tfbsTypes, tfbsExps, false); $("#buttonChipMatrix").click(function () { window.location = "encodeChipMatrixHuman.html"; }); } - + // get server from calling web page (intended for genome-preview) + if ('encodeDataMatrix_server' in window) { + server = encodeDataMatrix_server; + } else { + server = document.location.hostname; + // or document.domain ? + } // initialize encodeProject.setup({ - // todo: add hidden page variable for server - server: "hgwdev.cse.ucsc.edu" - //server: "genome-preview.ucsc.edu" + server: server }); encodeProject.loadAllFromServer(requests, handleServerData); });