a65191178abf20e941ffab2da9bcde554de0a360 hiram Wed Aug 31 11:19:57 2011 -0700 very initial experiment for progress meter, long way to go diff --git src/hg/hgCustom/hgCustom.c src/hg/hgCustom/hgCustom.c index 05b4181..1977ba9 100644 --- src/hg/hgCustom/hgCustom.c +++ src/hg/hgCustom/hgCustom.c @@ -58,30 +58,33 @@ #define hgCtDeletePrefix "hgct_del" #define hgCtRefreshPrefix "hgct_refresh" #define hgCtConfigLines "hgct_configLines" /* commands */ #define hgCtDo hgCt "do_" /* prefix for all commands */ #define hgCtDoAdd hgCtDo "add" #define hgCtDoDelete hgCtDo "delete" #define hgCtDoDeleteSet hgCtDo "delete_set" #define hgCtDoDeleteClr hgCtDo "delete_clr" #define hgCtDoRefresh hgCtDo "refresh" #define hgCtDoRefreshSet hgCtDo "refresh_set" #define hgCtDoRefreshClr hgCtDo "refresh_clr" #define hgCtDoGenomeBrowser hgCtDo "gb" #define hgCtDoTableBrowser hgCtDo "tb" +#ifdef PROGRESS_METER +#define hgCtDoProgress hgCtDo "progress" +#endif /* Global variables */ struct cart *cart; struct hash *oldVars = NULL; char *excludeVars[] = {"Submit", "submit", "SubmitFile", NULL}; char *database = NULL; char *organism = NULL; struct customTrack *ctList = NULL; void makeClearButton(char *field) /* UI button that clears a text field */ { char javascript[1024]; safef(javascript, sizeof javascript, "document.mainForm.%s.value = '';", field); @@ -822,30 +825,51 @@ } if (!hgParseChromRange(database, words[2], &chrom, &start, &end) || start < 0 || end > hChromSize(database, chrom)) { err ="Invalid browser position (use chrN:123-456 format)"; break; } cartSetString(cart, "position", words[2]); } } } if (retErr) *retErr = err; } +#ifdef PROGRESS_METER +static void progressMeter() +{ +printf("
"); +} +static void doProgress(char *err) +/* display progress meter to show loading process */ +{ +cartWebStart(cart, database, "Custom Track loading progress meter"); +progressMeter(); +// addCustomForm(NULL, err); +helpCustom(); +cartWebEnd(cart); +} +#endif + void doAddCustom(char *err) /* display form for adding custom tracks. * Include error message, if any */ { cartWebStart(cart, database, "Add Custom Tracks"); addCustomForm(NULL, err); helpCustom(); cartWebEnd(cart); } void doUpdateCustom(struct customTrack *ct, char *err) /* display form for adding custom tracks. * Include error message, if any */ { char *longLabel = htmlEncode(ct->tdb->longLabel); @@ -1052,30 +1076,36 @@ if (!dbWithCts) dbWithCts = cloneString(dbDb->name); } } if (dbWithCts) /* set the database for the selected organism to an assembly that * has custom tracks */ { database = dbWithCts; cartSetString(cart, "db", database); } } if (cartVarExists(cart, hgCtDoAdd)) doAddCustom(NULL); +#ifdef PROGRESS_METER +else if (cartVarExists(cart, hgCtDoProgress)) + { + doProgress(NULL); + } +#endif else if (cartVarExists(cart, hgCtTable)) { /* update track */ /* need to clone the hgCtTable value, as the ParseCart will remove the variable */ selectedTable = cloneString(cartString(cart, hgCtTable)); if (isNotEmpty(selectedTable)) { ctList = customTracksParseCart(database, cart, NULL, NULL); ct = ctFromList(ctList, selectedTable); } if (ct) doUpdateCustom(ct, NULL); else doAddCustom(NULL);