09b32596f71fa9eac6a68820255b090f28546a05 tdreszer Mon Apr 25 14:04:06 2011 -0700 Checking in CGI usage of DOCTYPE 4.01 Transitional (instead of 3.2). Also removed some minor FONT tags that should be replaced by CSS. diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 802e93c..61fea97 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -335,31 +335,31 @@ { return cfgOptionDefault("downloads.server", "hgdownload.cse.ucsc.edu"); } void setUdcCacheDir() /* set the path to the udc cache dir */ { udcSetDefaultDir(cfgOptionDefault("udc.cacheDir", udcDefaultDir())); } char *wrapWhiteFont(char *s) /* Write white font around s */ { static char buf[256]; -safef(buf, sizeof(buf), "<FONT COLOR=\"#FFFFFF\">%s</FONT>", s); +safef(buf, sizeof(buf), "<span style='color:#FFFFFF;'>%s</span>", s); return buf; } char *hDocumentRoot() /* get the path to the DocumentRoot, or the default */ { return cfgOptionDefault("browser.documentRoot", DOCUMENT_ROOT); } char *hHelpFile(char *fileRoot) /* Given a help file root name (e.g. "hgPcrResult" or "cutters"), * prepend the complete help directory path and add .html suffix. * Do not free the statically allocated result. */ { static char helpName[PATH_LEN]; @@ -3877,31 +3877,31 @@ printf("<A NAME='DISPLAY_SUBTRACKS'></A>"); if (sortOrder != NULL) { // First table row contains the display "selected/visible" or "all" radio buttons // NOTE: list subtrack radio buttons are inside tracklist table header if there are no sort columns // The reason is to ensure spacing of lines column headers when the only column header is "Restricted Until" printf("<B>List subtracks: "); char javascript[JBUFSIZE]; safef(javascript, sizeof(javascript), "onclick=\"showOrHideSelectedSubtracks(true);\""); cgiMakeOnClickRadioButton("displaySubtracks", "selected", !displayAll,javascript); puts("only selected/visible "); safef(javascript, sizeof(javascript), "onclick=\"showOrHideSelectedSubtracks(false);\""); cgiMakeOnClickRadioButton("displaySubtracks", "all", displayAll,javascript); printf("all</B>"); if (slCount(subtrackRefList) > 5) - printf(" (<FONT class='subCBcount'></font>)"); + printf(" (<span class='subCBcount'></span>)"); makeTopLink(parentTdb); printf("</td></tr></table>"); } else makeTopLink(parentTdb); // Now we can start in on the table of subtracks It may be sortable and/or dragAndDroppable printf("\n<TABLE CELLSPACING='2' CELLPADDING='0' border='0'"); dyStringClear(dyHtml); if (sortOrder != NULL) dyStringPrintf(dyHtml, "sortable"); if (useDragAndDrop) { if (dyStringLen(dyHtml) > 0) dyStringAppendC(dyHtml,' '); @@ -3930,31 +3930,31 @@ else { printf("<TR%s>",useDragAndDrop?" id='noDrag' class='nodrop nodrag'":""); // First table row contains the display "selected/visible" or "all" radio buttons // NOTE: list subtrack radio buttons are inside tracklist table header if there are no sort columns // The reason is to ensure spacing of lines column headers when the only column header is "Restricted Until" printf("<TD colspan='%d'><B>List subtracks: ", colspan); char javascript[JBUFSIZE]; safef(javascript, sizeof(javascript), "onclick=\"showOrHideSelectedSubtracks(true);\""); cgiMakeOnClickRadioButton("displaySubtracks", "selected", !displayAll,javascript); puts("only selected/visible "); safef(javascript, sizeof(javascript), "onclick=\"showOrHideSelectedSubtracks(false);\""); cgiMakeOnClickRadioButton("displaySubtracks", "all", displayAll,javascript); printf("all</B>"); if (slCount(subtrackRefList) > 5) - printf(" (<FONT class='subCBcount'></font>)"); + printf(" (<span class='subCBcount'></span>)"); puts("</TD>"); columnCount = colspan; } // Add column headers which are sort button links if (sortOrder != NULL) { printf("<TH> <INPUT TYPE=HIDDEN NAME='%s' class='sortOrder' VALUE='%s'></TH>\n", sortOrder->htmlId, sortOrder->sortOrder); // keeing track of sortOrder columnCount++; // Columns in tdb order (unchanging), sort in cart order (changed by user action) int sIx=0; for(sIx=0;sIx<sortOrder->count;sIx++) { #ifdef SORT_ON_TRACK_NAME if (sameString(SORT_ON_TRACK_NAME,sortOrder->column[sIx])) @@ -4271,31 +4271,31 @@ cgiMakeHiddenBoolean(htmlIdentifier, TRUE); puts("[on] "); printf ("</TD><TD>%s [selected on main page]</TD></TR>\n", subtrack->longLabel); } else if (hSameTrackDbType(primaryType, subtrack->type)) { puts("<TR><TD>"); cgiMakeCheckBox(htmlIdentifier, checkedCB && enabledCB); printf ("</TD><TD>%s</TD></TR>\n", subtrack->longLabel); } } puts("</TBODY><TFOOT></TFOOT>"); puts("</TABLE>"); if (slCount(subtrackRefList) > 5) - puts(" <FONT class='subCBcount'></font>"); + puts(" <span class='subCBcount'></span>"); puts("<P>"); if (!primarySubtrack) puts("<script type='text/javascript'>matInitializeMatrix();</script>"); } static void makeAddClearSubmitTweak(char javascript[JBUFSIZE], char *formName, char *buttonVar, char *label) /* safef into javascript a sequence of commands that will force a refresh * of this same form, updating the values of whatever variables are necessary * to say what we want to do. */ { safef(javascript, JBUFSIZE*sizeof(char), "document.%s.action = '%s'; document.%s.%s.value='%s'; " "document.%s.submit();", formName, cgiScriptName(), formName, buttonVar, label, @@ -6043,32 +6043,32 @@ return tdb; struct trackDb *view = rFindView(tdb->subtracks, viewName); if (view) return view; } return NULL; } static boolean hCompositeDisplayViewDropDowns(char *db, struct cart *cart, struct trackDb *parentTdb) /* UI for composite view drop down selections. */ { int ix; char varName[SMALLBUF]; char classes[SMALLBUF]; char javascript[JBUFSIZE]; -#define CFG_LINK "<B><A NAME=\"a_cfg_%s\"></A><A id='a_cfg_%s' HREF=\"#a_cfg_%s\" onclick=\"return (showConfigControls('%s') == false);\" title=\"%s Configuration\">%s</A><INPUT TYPE=HIDDEN NAME='%s.%s.showCfg' value='%s'></B>\n" -#define MAKE_CFG_LINK(name,title,tbl,open) printf(CFG_LINK, (name),(name),(name),(name),(title),(title),(tbl),(name),((open)?"on":"off")) +#define CFG_LINK "<B><A HREF=\"#a_cfg_%s\" onclick=\"return (showConfigControls('%s') == false);\" title=\"%s Configuration\">%s</A><INPUT TYPE=HIDDEN NAME='%s.%s.showCfg' value='%s'></B>" +#define MAKE_CFG_LINK(name,title,tbl,open) printf(CFG_LINK, (name),(name),(title),(title),(tbl),(name),((open)?"on":"off")) members_t *membersOfView = subgroupMembersGet(parentTdb,"view"); if(membersOfView == NULL) return FALSE; char configurable[membersOfView->count]; memset(configurable,cfgNone,sizeof(configurable)); int firstOpened = -1; boolean makeCfgRows = FALSE; struct trackDb **matchedSubtracks = needMem(sizeof(struct trackDb *)*membersOfView->count); for (ix = 0; ix < membersOfView->count; ix++) { char *viewName = membersOfView->tags[ix]; struct trackDb *view = rFindView(parentTdb->subtracks, viewName); @@ -6078,46 +6078,46 @@ configurable[ix] = (char)cfgTypeFromTdb(view->subtracks, TRUE); if(configurable[ix] != cfgNone) { if(firstOpened == -1) { safef(varName, sizeof(varName), "%s.%s.showCfg", parentTdb->track, viewName); if(cartUsualBoolean(cart,varName,FALSE)) firstOpened = ix; } makeCfgRows = TRUE; } } } toLowerN(membersOfView->groupTitle, 1); -printf("<B>Select %s </B>(<A HREF=\"../goldenPath/help/multiView.html\" title='Help on views' TARGET=_BLANK>help</A>):<BR>\n", membersOfView->groupTitle); -puts("<TABLE><TR align=\"LEFT\">"); +printf("<B>Select %s</B> (<A HREF='../goldenPath/help/multiView.html' title='Help on views' TARGET=_BLANK>help</A>):\n", membersOfView->groupTitle); +printf("<TABLE><TR style='text-align:left;'>\n"); // Make row of vis drop downs for (ix = 0; ix < membersOfView->count; ix++) { struct trackDb *view = matchedSubtracks[ix]; char *viewName = membersOfView->tags[ix]; if (view != NULL) { printf("<TD>"); if(configurable[ix] != cfgNone) { MAKE_CFG_LINK(membersOfView->tags[ix],membersOfView->titles[ix],parentTdb->track,(firstOpened == ix)); } else - printf("<B>%s</B>\n",membersOfView->titles[ix]); + printf("<B>%s</B>",membersOfView->titles[ix]); puts("</TD>"); safef(varName, sizeof(varName), "%s.%s.vis", parentTdb->track, viewName); enum trackVisibility tv = hTvFromString(cartUsualString(cart, varName,hStringFromTv(visCompositeViewDefault(parentTdb,viewName)))); safef(javascript, sizeof(javascript), "onchange=\"matSelectViewForSubTracks(this,'%s');\" onfocus='this.lastIndex=this.selectedIndex;'", viewName); printf("<TD>"); safef(classes, sizeof(classes), "viewDD normalText %s", membersOfView->tags[ix]); hTvDropDownClassWithJavascript(varName, tv, parentTdb->canPack,classes,javascript); puts(" </TD>"); } } puts("</TR>"); @@ -6943,31 +6943,31 @@ if(trackDbSetting(tdb, "dragAndDrop") != NULL) jsIncludeFile("jquery.tablednd.js", NULL); jsIncludeFile("ajax.js",NULL); #ifdef TABLE_SCROLL jsIncludeFile("jquery.fixedtable.js",NULL); #endif//def TABLE_SCROLL } jsIncludeFile("hui.js",NULL); } #ifdef SUBTRACK_CFG_POPUP printf("<div id='popit' style='display: none'></div>"); cgiMakeHiddenVar("db", db); printf("<input type=HIDDEN id='track' value='%s';</input>\n",tdb->track); #endif -puts("<P>"); +puts("<BR>"); if (trackDbCountDescendantLeaves(tdb) < MANY_SUBTRACKS && !hasSubgroups) { if(primarySubtrack) compositeUiSubtracksMatchingPrimary(db, cart, tdb,primarySubtrack); else compositeUiSubtracks(db, cart, tdb, trackHash); return; } if (fakeSubmit) cgiMakeHiddenVar(fakeSubmit, "submit"); if(primarySubtrack == NULL) { if(subgroupingExists(tdb,"view")) {