387a4e3dedc67a6e82c5cde90ee7cb1edc2a470c kate Thu Apr 19 15:19:12 2012 -0700 Fix bug that crept in adopting jQuery cookie plugin for search cookie] diff --git src/hg/js/encodeMatrix.js src/hg/js/encodeMatrix.js index 75a8747..8dd3caf 100644 --- src/hg/js/encodeMatrix.js +++ src/hg/js/encodeMatrix.js @@ -10,66 +10,70 @@ // spinning image displayed during AJAX activity var spinnerLoc = 'spinner'; // id of location on HTML page var spinner; // id generated by spinner function var COOKIE_SEARCH = 'encodeMatrix.search'; var COOKIE_SEARCH_FILES = 'file'; var COOKIE_SEARCH_TRACKS = 'track'; var COOKIE_HELP = 'encodeMatrix.help'; // existence implies help has been read // and hasn't been re-enabled function addSearchPanel($div, isFile) { // Create panel of radio buttons for user to change search type // isFileSearch determines initial setting // Add to passed in div ID; e.g. #searchTypePanel - $div.append('<span id="searchPanelInstructions">search for: </span><input type="radio" name="searchType" id="searchTracks" value="tracks" onclick="encodeMatrix.setFileSearch(false);">tracks<input type="radio" name="searchType" id="searchFiles" value="files" onclick="encodeMatrix.setFileSearch(true);" >files'); + $div.append('<span id="searchPanelInstructions">search for: </span>' + + '<input type="radio" name="searchType" id="searchTracks" value=' + + COOKIE_SEARCH_TRACKS + ' onclick="encodeMatrix.setFileSearch(false);">tracks' + + '<input type="radio" name="searchType" id="searchFiles" value=' + + COOKIE_SEARCH_FILES + ' onclick="encodeMatrix.setFileSearch(true);" >files'); if (isFile) { $('#searchFiles').attr('checked', true); } else { $('#searchTracks').attr('checked', true); } encodeMatrix.setFileSearch(isFile); } return { // UI panel for search: select tracks or files setFileSearch: function (isFile) { // Set search type cookie to retain user choice $.cookie(COOKIE_SEARCH, (isFile ? COOKIE_SEARCH_FILES : COOKIE_SEARCH_TRACKS), {expires: 7}); }, isFileSearch: function () { // Check search type cookie to retain user choice // Defaults to track search if no cookie set - return $.cookie(COOKIE_SEARCH, COOKIE_SEARCH_FILES); + return ($.cookie(COOKIE_SEARCH) === COOKIE_SEARCH_FILES); }, getSearchUrl: function () { // Format a URL for search of type requested in search panel // Args are objects having mdbVar/mdbVal properties // Set each arg mdbValN to mdbVarN, empty out remaining vals to a total of 6 // (cheaper than querying for actual number) var prog, cartVar, url, i, j; var argsLen = arguments.length; var mdbVals = []; - if ($('input:radio[name=searchType]:checked').val() === "tracks") { + if ($('input:radio[name=searchType]:checked').val() === COOKIE_SEARCH_TRACKS) { prog = 'hgTracks'; cartVar = 'hgt_tSearch'; } else { prog = "hgFileSearch"; cartVar = "fsFileType=Any&hgfs_Search"; } url = '/cgi-bin/' + prog + '?db=' + encodeProject.getAssembly() + '&' + cartVar + '=search' + '&tsCurTab=advancedTab&hgt_tsPage=' + '&tsName=&tsDescr=&tsGroup=Any'; for (i = 0; i < argsLen; i += 1) { url += '&hgt_mdbVar' + (i + 1) + '=' + arguments[i].mdbVar; // can pass an array or a single string -- so force to array for uniform handling // Search sees multiple mdbValN= variables for the same mdbVarN as a list of vals mdbVals = [].concat(arguments[i].mdbVal); for (j = 0; j < mdbVals.length; j++) {