27aa980683134b5ff14cbaf5bdcbe563eb4af207 tdreszer Wed Apr 6 08:19:34 2011 -0700 Moved common name and description matching code into search lib and removed it from hgFileSearch and hgTracks/searchTracks.c diff --git src/hg/inc/search.h src/hg/inc/search.h index b5d242d..2945512 100644 --- src/hg/inc/search.h +++ src/hg/inc/search.h @@ -1,47 +1,57 @@ // Search code which is shared between different CGIs: hgFileSearch and hgTracks(Track Search) #ifndef SEARCH_H #define SEARCH_H #include "common.h" #include "cart.h" // UNCOMMENT TRACK_SEARCH to turn on 'Track Search' functionality #define TRACK_SEARCH "hgt_tSearch" #define TRACK_SEARCH_PAGER "hgt_tsPage" #define TRACK_SEARCH_ADD_ROW "hgt_tsAddRow" #define TRACK_SEARCH_DEL_ROW "hgt_tsDelRow" #define TRACK_SEARCH_BUTTON "track search" #define TRACK_SEARCH_HINT "Search for tracks in this genome assembly" #define ANYLABEL "Any" #define METADATA_NAME_PREFIX "hgt_mdbVar" #define METADATA_VALUE_PREFIX "hgt_mdbVal" // Currently selected tab enum searchTab { simpleTab = 0, advancedTab = 1, filesTab = 2, }; void getSearchTrixFile(char *database, char *buf, int len); // Fill-in the name of the track search trix file boolean isSearchTracksSupported(char *database, struct cart *cart); // Return TRUE if searchTracks is supported for this database and javascript is supported too struct slPair *fileFormatSearchWhiteList(void); // Gets the whitelist of approved file formats that is allowed for search char *fileFormatSelectHtml(char *name, char *selected, char *extraHtml); // returns an allocated string of HTML for the fileType select drop down struct slPair *mdbSelectPairs(struct cart *cart,enum searchTab selectedTab, struct slPair *mdbVars); // Returns the current mdb vars and vals in the table of drop down selects char *mdbSelectsHtmlRows(struct sqlConnection *conn,struct slPair *mdbSelects, struct slPair *mdbVars,int cols,boolean fileSearch); // generates the html for the table rows containing mdb var and val selects. Assume tableSearch unless fileSearch +boolean searchNameMatches(struct trackDb *tdb, struct slName *wordList); +// returns TRUE if all words in preparsed list matches short or long label +// A "word" can be "multiple words" (parsed from quoteed string). + +boolean searchDescriptionMatches(struct trackDb *tdb, struct slName *wordList); +// returns TRUE if all words in preparsed list matches html description page. +// A "word" can be "multiple words" (parsed from quoteed string). +// Because description contains html, quoted string match has limits. +// DANGER: this will alter html of tdb struct (replacing \n with ' ', so the html should not be displayed after. + #endif /* SEARCH_H */