void doControls(struct sqlConnection *conn) /* Put up controls pane. */ { char *listSpec = cartUsualString(cart, hgpListSpec, ""); htmlSetBgColor(0xD0FFE0); // resource file link wrapped in html char * link = webTimeStampedLinkToResourceOnFirstCall("HGStyle.css",TRUE); if (link) htmlSetStyle(link); htmStart(stdout, "do controls"); printf("<FORM ACTION=\"%s\" NAME=\"mainForm\" target=\"_parent\" METHOD=GET>\n", hgVisiGeneCgiName()); cartSaveSession(cart); printf("<TABLE WIDTH=100%%><TR>"); printf("<TD WIDTH=230 bgcolor=\"#"HG_COL_HOTLINKS"\">"); printf(" <B><A HREF=\"../index.html\" target=\"_parent\" class=\"topbar\">UCSC</A> "); printf(" <A HREF=\"%s?%s=\" target=\"_parent\" class=\"topbar\">VisiGene</A></B> ", hgVisiGeneCgiName(), hgpListSpec); printf("</TD>"); printf("<TD>"); printf(" "); cgiMakeTextVar(hgpListSpec, listSpec, 16); cgiMakeButton(hgpDoSearch, "search"); printf("</TD>"); #ifdef SOON printf("<TD>"); cgiMakeButton(hgpDoConfig, "configure"); printf("</TD>"); #endif /* SOON */ printf("<TD>"); printf("Zoom: "); printf( "<INPUT TYPE=SUBMIT NAME=\"hgp_zmOut\" VALUE=\" out \"" " onclick=\"parent.image.bigImg.zoomer('out');return false;\"> " "<INPUT TYPE=SUBMIT NAME=\"hgp_zmIn\" VALUE=\" in \"" " onclick=\"parent.image.bigImg.zoomer('in');return false;\"> " "<INPUT TYPE=SUBMIT NAME=\"hgp_zmFull\" VALUE=\" full \"" " onclick=\"parent.image.bigImg.zoomer('full');return false;\"> " "<INPUT TYPE=SUBMIT NAME=\"hgp_zmFit\" VALUE=\" fit \"" " onclick=\"parent.image.bigImg.zoomer('fit');return false;\"> " "\n"); printf("</TD>"); printf("<TD ALIGN=Right>"); printf("<A HREF=\"../goldenPath/help/hgTracksHelp.html#VisiGeneHelp\" target=_parent>"); printf("Help"); printf("</A> "); printf("</TD>"); printf("</TR></TABLE>"); printf("</FORM>\n"); htmlEnd(); }
int main(int argc, char *argv[]) /* Process command line */ { long enteredMainTime = clock1000(); cgiSpoof(&argc, argv); termOpt = cgiOptionalString(CV_TERM); tagOpt = cgiOptionalString(CV_TAG); typeOpt = cgiOptionalString(CV_TYPE); targetOpt = cgiOptionalString(CV_TARGET); labelOpt = cgiOptionalString(CV_LABEL); organismOpt = cgiUsualString(ORGANISM, organismOpt); if (organismOpt != NULL) { organismOptLower=cloneString(organismOpt); strLower(organismOptLower); } char *bgColor = cgiOptionalString("bgcolor"); if (bgColor) htmlSetBgColor(strtol(bgColor, 0, 16)); htmlSetStyle(htmlStyleUndecoratedLink); htmShell("ENCODE Controlled Vocabulary", doMiddle, "get"); cgiExitTime("hgEncodeVocab", enteredMainTime); return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { pushCarefulMemHandler(100000000); cgiSpoof(&argc, argv); htmlSetStyle(htmlStyleUndecoratedLink); htmlSetBgColor(HG_CL_OUTSIDE); oldCart = hashNew(10); cart = cartAndCookie(hUserCookie(), excludeVars, oldCart); getDbAndGenome(cart, &database, &genome, oldCart); //hSetDb(database); conn = hAllocConn(database); database = strdup("h1n1"); /* Get sortOn. Revert to default by subject Id. */ orderOn = cartUsualString(cart, orderVarName, "+subjId"); displayCountString = cartUsualString(cart, countVarName, "50"); if (sameString(displayCountString, "all")) displayCount = BIGNUM; else displayCount = atoi(displayCountString); colList = getColumns(conn); if (cgiVarExists("submit_filter")) { struct dyString *head = dyStringNew(1024); boolean redir = cgiVarExists(redirectName); struct subjInfo *subjList = NULL; struct column *ordList = colList; struct column *ord = curOrder(ordList); subjList = getOrderedList(ord, colList, conn, BIGNUM); saveSubjList(subjList); if ((!subjList || redir)) { if (subjList && redir) { dyStringPrintf(head, "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0;URL=/cgi-bin/%s\">" "<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">" "<META HTTP-EQUIV=\"Expires\" CONTENT=\"-1\">" , cgiString(redirectName)); cartRemove(cart, redirectName); } htmStartWithHead(stdout, head->string, "GISAID Table View"); if (!subjList) /* if everything has been filtered out, we'll have to go back */ { hPrintf("No subject(s) found with the filtering conditions specified.<br>"); hPrintf("Click <a href=\"gisaidTable?gisaidTable.do.advFilter=filter+%%28now+on%%29\">here</a> " "to return to Select Subjects.<br>"); } cartCheckout(&cart); htmlEnd(); hFreeConn(&conn); return 0; } } htmStart(stdout, "GISAID Table View"); cartWarnCatcher(doMiddle, cart, htmlVaWarn); cartCheckout(&cart); htmlEnd(); hFreeConn(&conn); return 0; }
void doImage(struct sqlConnection *conn) /* Put up image page. */ { int imageId = cartUsualInt(cart, hgpId, 0); char *sidUrl = cartSidUrlString(cart); char buf[1024]; char url[1024]; char *p = NULL; char dir[256]; char name[128]; char extension[64]; int w = 0, h = 0; htmlSetBgColor(0xE0E0E0); htmStart(stdout, "do image"); puts( "<script type=\"text/JavaScript\">" "document.getElementsByTagName('html')[0].style.height=\"100%\";" "document.getElementsByTagName('body')[0].style.height=\"100%\";" "</script>" ); if (!visiGeneImageSize(conn, imageId, &w, &h)) imageId = 0; if (imageId != 0) { printf("<B>"); smallCaption(conn, imageId); printf(".</B> Click image to zoom in, drag or arrow keys to move. " "Caption is below.<BR>\n"); p=visiGeneFullSizePath(conn, imageId); splitPath(p, dir, name, extension); #ifdef DEBUG safef(buf,sizeof(buf),"../bigImageTest.html?url=%s%s/%s&w=%d&h=%d", dir,name,name,w,h); #else safef(buf,sizeof(buf),"../bigImage.html?url=%s%s/%s&w=%d&h=%d", dir,name,name,w,h); #endif printf("<IFRAME name=\"bigImg\" width=\"100%%\" height=\"90%%\" SRC=\"%s\"></IFRAME><BR>\n", buf); fullCaption(conn, imageId); safef(buf,sizeof(buf),"%s%s%s", dir, name, extension); safef(url,sizeof(url),"%s?%s=go&%s&%s=%d", hgVisiGeneCgiName(), hgpDoDownload, sidUrl, hgpId, imageId); printf("<B>Full-size image:</B> %d x %d <A HREF='%s'> download </A> ", w, h, url); /* Currently this is dangerous for users with less than 1 GB RAM to use on large images, because their machines can thrash themselves into a coma. X-windows (i.e. used by FireFox) will allocate 5 bytes per pixel. If the image size in pixels times 5 exceeds real ram size, then Linux thrashes incessantly. But you can hit ctrl-alt-F1 to get a text only screen, then kill the bad processes (FF) and then you can restore desktop with ctrl-alt-F7. Hiram says that's a feature credited to SCO-Unix. On my 1GB machines at work/home, I never encountered any problem what-so-ever, even with the largest visiGene AllenBrain - about 19000x9000 pix. printf(" <A HREF='%s'> view </A>\n", buf); */ printf("\n"); } htmlEnd(); }
static void doThumbnails(struct sqlConnection *conn) /* Write out list of thumbnail images. */ { char *sidUrl = cartSidUrlString(cart); char *listSpec = cartUsualString(cart, hgpListSpec, ""); char *matchFile = cartString(cart, hgpMatchFile); struct visiMatch *matchList = NULL, *match; int maxCount = 25, count = 0; int startAt = cartUsualInt(cart, hgpStartAt, 0); int imageCount; htmlSetStyle( "<STYLE TYPE=\"text/css\">\n" " BODY {margin: 2px}\n" " </STYLE>\n" ); htmlSetBgColor(0xC0C0D6); htmStart(stdout, "doThumbnails"); matchList = readMatchFile(matchFile); imageCount = slCount(matchList); if (imageCount > 0) { printf( " <DIV" " ID='perspClip'" " STYLE='position:absolute;left:-1000px;top:-1000px;z-index:2;visibility:visible;overflow:hidden!important;'" " onmouseover='this.style.left=\"-1000px\";' " " >" " <DIV" " ID='perspective'" " STYLE='position:absolute;left:0px;top:0px;'" " >" " <IMG ID='perspBox' SRC='../images/dot_clear.gif' STYLE='position:absolute;left:0px;top:0px;width:100px;height:100px;border-style:solid;border-color:#8080FF;border-width:1px' " ">" " </DIV>" " </DIV>" ); printf("<TABLE>\n"); printf("<TR><TD><B>"); printf("%d images match<BR>\n", imageCount); printf("</B></TD></TR>\n"); for (match = slElementFromIx(matchList, startAt); match != NULL; match = match->next) { int id = match->imageId; char *imageFile = visiGeneThumbSizePath(conn, id); printf("<TR>"); printf("<TD>"); printf("<A HREF=\"%s?%s&%s=%d&%s=do\" target=\"image\" >", hgVisiGeneCgiName(), sidUrl, hgpId, id, hgpDoImage); printf("<IMG SRC=\"%s\"></A><BR>\n", imageFile); smallCaption(conn, id); printf("<BR>\n"); printf("</TD>"); printf("</TR>"); if (++count >= maxCount) break; } printf("</TABLE>\n"); printf("<HR>\n"); } if (count != imageCount) { int start; int page = 0; printf("%d-%d of %d for:<BR>", startAt+1, startAt+count, imageCount); printf(" %s<BR>\n", listSpec); printf("Page:\n"); for (start=0; start<imageCount; start += maxCount) { ++page; if (start != startAt) { printf("<A HREF=\"%s?", hgVisiGeneCgiName()); printf("%s&", sidUrl); printf("%s=on&", hgpDoThumbnails); printf("%s=%s&", hgpListSpec, listSpec); if (start != 0) printf("%s=%d", hgpStartAt, start); printf("\">"); } printf("%d", page); if (start != startAt) printf("</A>"); printf(" "); } } else { printf("%d images for:<BR>", imageCount); printf(" %s<BR>\n", listSpec); } cartRemove(cart, hgpStartAt); htmlEnd(); }