373fab2020528e4b488dffce555dc7cba02cc5a3 kate Sat Oct 29 20:38:01 2011 -0700 1. Add panel of radiobuttons to select track or file search 2. Extensive cleanup diff --git src/hg/js/encodeProject.js src/hg/js/encodeProject.js index e61ab10..91f7fed 100644 --- src/hg/js/encodeProject.js +++ src/hg/js/encodeProject.js @@ -15,56 +15,81 @@ // Helper function for case-insensitive sort var A, B; A = a.toUpperCase(); B = b.toUpperCase(); if (A < B) { return -1; } if (A > B) { return 1; } return 0; } // TODO: modularize by extending Array.sort ? - function cmpCV(a, b) { // Helper function for case-insensitive sort of CV objects // Use label if any, otherwise the term A = (a.label !== undefined ? a.label.toUpperCase() : a.term.toUpperCase()); B = (b.label !== undefined ? b.label.toUpperCase() : b.term.toUpperCase()); if (A < B) { return -1; } if (A > B) { return 1; } return 0; } return { setup: function (settings) { // Change defaults if (settings.server) { server = settings.server; } if (settings.assembly) { server = settings.assembly; } }, + addSearchPanel: function (divId) { + // Create panel of radio buttons for user to select search type + // Add to passed in HTML div ID; e.g. #searchTypePanel + return $(divId).append('<span id="searchPanelTitle"><strong>Search for:</strong></span><input type="radio" name="searchType" id="searchTracks" value="tracks" checked="checked">Tracks<input type="radio" name="searchType" id="searchFiles" value="files">Files'); + }, + + getSearchUrl: function (assembly, vars) { + // Return URL for search of type requested in search panel + + var prog, cartVar, url; + if ($('input:radio[name=searchType]:checked').val() === "tracks") { + prog = 'hgTracks'; + cartVar = 'hgt_tSearch'; + } else { + prog = "hgFileSearch"; + cartVar = "hgfs_Search"; + } + url = '/cgi-bin/' + prog + '?db=' + assembly + '&' + cartVar + '=search' + + '&tsCurTab=advancedTab&hgt_tsPage='; + return (url); + }, + + getSearchType: function () { + return $('input:radio[name=searchType]:checked').val(); + }, + getServer: function () { // Get currently set server return server; }, getDataGroups: function (dataTypes) { // Return sorted array of dataGroup objects each having a .label, // .dataTypes, // and an array of dataTypes, alphasorted, with 'Other' last var dataGroupHash = {}, dataGroups = [], otherGroup, group; $.each(dataTypes, function (i, dataType) { group = dataType.dataGroup; if (!group) {