6d9c6b682199f52ff968deded83fffc1c235e3de kent Fri Feb 20 15:33:12 2015 -0800 Adding a ton of useful web table handling stuff from cdwWebBrowse.c to hg/lib/tablesTables.c and it's header. diff --git src/hg/inc/tablesTables.h src/hg/inc/tablesTables.h index 9c8e6c6..e22fb84 100644 --- src/hg/inc/tablesTables.h +++ src/hg/inc/tablesTables.h @@ -1,12 +1,49 @@ /* tablesTables - this module deals with two types of tables SQL tables in a database, * and fieldedTable objects in memory. It has routines to do sortable, filterable web * displays on tables. */ #ifndef TABLESTABLES_H #define TABLESTABLES_H struct fieldedTable *fieldedTableFromDbQuery(struct sqlConnection *conn, char *query); /* Return fieldedTable from a database query */ +void webSortableFieldedTable(struct cart *cart, struct fieldedTable *table, + char *returnUrl, char *varPrefix, + int maxLenField, struct hash *tagOutputWrappers); +/* Display all of table including a sortable label row. The tagOutputWrappers + * is an optional way to enrich output of specific columns of the table. It is keyed + * by column name and has for values functions of type webTableOutputWrapperType. */ + +struct fieldedTableSegment +/* Information on a segment we're processing out of something larger */ + { + int tableSize; // Size of larger structure + int tableOffset; // Where we are in larger structure + }; + +void webFilteredFieldedTable(struct cart *cart, struct fieldedTable *table, + char *returnUrl, char *varPrefix, int maxLenField, struct hash *tagOutputWrappers, + boolean withFilters, char *itemPlural, + int pageSize, struct fieldedTableSegment *largerContext); +/* Show a fielded table that can be sorted by clicking on column labels and optionally + * that includes a row of filter controls above the labels . + * The maxLenField is maximum character length of field before truncation with ... + * Pass in 0 for no max */ + + +void webFilteredSqlTable(struct cart *cart, struct sqlConnection *conn, + char *fields, char *from, char *initialWhere, + char *returnUrl, char *varPrefix, int maxFieldWidth, struct hash *tagOutWrappers, + boolean withFilters, char *itemPlural, int pageSize); +/* Given a query to the database in conn that is basically a select query broken into + * separate clauses, construct and display an HTML table around results. This HTML table has + * column names that will sort the table, and optionally (if withFilters is set) + * it will also allow field-by-field wildcard queries on a set of controls it draws above + * the labels. + * Much of the functionality rests on the call to webFilteredFieldedTable. This function + * does the work needed to bring in sections of potentially huge results sets into + * the fieldedTable. */ + #endif /* TABLESTABLES_H */