5ee63c17bf3324e22fba3ab16c2bb21415b102d7 max Fri Jun 14 07:00:44 2024 -0700 increasing buffer for connected hubs, refs #33973 diff --git src/hg/lib/web.c src/hg/lib/web.c index 438da80..569e44f 100644 --- src/hg/lib/web.c +++ src/hg/lib/web.c @@ -684,31 +684,31 @@ static void printSomeGenomeListHtmlNamedMaybeCheck(char *customOrgCgiName, char *db, struct dbDb *dbList, char *event, char *javascript, boolean doCheck) /* Prints to stdout the HTML to render a dropdown list * containing a list of the possible genomes to choose from. * param db - a database whose genome will be the default genome. * If NULL, no default selection. * param onChangeText - Optional (can be NULL) text to pass in * any onChange javascript. */ { char *orgList[1024]; int numGenomes = 0; struct dbDb *cur = NULL; struct hash *hash = hashNew(10); // 2^^10 entries = 1024 char *selGenome = hGenome(db); -char *values [1024]; +char *values [4096]; char *cgiName; for (cur = dbList; cur != NULL; cur = cur->next) { if (!hashFindVal(hash, cur->genome) && (!doCheck || hDbExists(cur->name))) { hashAdd(hash, cur->genome, cur); orgList[numGenomes] = trackHubSkipHubName(cur->genome); values[numGenomes] = cur->genome; numGenomes++; if (numGenomes >= ArraySize(orgList)) internalErr(); } } @@ -1456,57 +1456,72 @@ for(offset = 0; offset < len && !regexec(&re, oldString + offset, ArraySize(match), match, 0); offset += match[0].rm_eo) { dyStringAppendN(dy, oldString + offset, match[0].rm_eo); if(match[1].rm_so == match[1].rm_eo) dyStringAppend(dy, "?"); dyStringAppend(dy, uiVars); if(match[1].rm_so != match[1].rm_eo) dyStringAppend(dy, "&"); } if(offset < len) dyStringAppend(dy, oldString + offset); return dyStringCannibalize(&dy); } +void webIncludeLocalJs() +/* some mirrors want special JS on their site */ +{ +char *addJs = cfgOption("addJs"); +if (addJs) + { + struct slName *jsList = slNameListFromString(addJs, ','); + for(; jsList; jsList = jsList->next) + jsIncludeFile(jsList->name, NULL); + slNameFreeList(&jsList); + } +} + char *menuBar(struct cart *cart, char *db) // Return HTML for the menu bar (read from a configuration file); // we fixup internal CGI's to add hgsid's and include the appropriate js and css files. // // Note this function is also called by hgTracks which extends the menu bar // with a View menu defined in hgTracks/menu.c { char *docRoot = hDocumentRoot(); char *menuStr, buf[4096], uiVars[128]; FILE *fd; char *navBarFile = "inc/globalNavBar.inc"; struct stat statBuf; char *scriptName = cgiScriptName(); if (cart) safef(uiVars, sizeof(uiVars), "%s=%s", cartSessionVarName(), cartSessionId(cart)); else uiVars[0] = 0; if(docRoot == NULL) // tolerate missing docRoot (i.e. don't bother with menu when running from command line) return NULL; jsIncludeFile("jquery.js", NULL); jsIncludeFile("jquery.plugins.js", NULL); jsIncludeFile("utils.js", NULL); webIncludeResourceFile("nice_menu.css"); +webIncludeLocalJs(); + // Read in menu bar html safef(buf, sizeof(buf), "%s/%s", docRoot, navBarFile); fd = mustOpen(buf, "r"); fstat(fileno(fd), &statBuf); int len = statBuf.st_size; menuStr = needMem(len + 1); mustRead(fd, menuStr, statBuf.st_size); menuStr[len] = 0; carefulClose(&fd); if (cart) { char *newMenuStr = menuBarAddUiVars(menuStr, "/cgi-bin/hg", uiVars); freez(&menuStr); menuStr = newMenuStr;