c0af5f216f8ff00466f0d222cede7f491fd17d81 galt Fri Jan 20 23:09:35 2023 -0800 More fixes for stuff found by htmlCheck, refs #7914 diff --git src/hg/hgTables/mainPage.c src/hg/hgTables/mainPage.c index 316c06e..4642703 100644 --- src/hg/hgTables/mainPage.c +++ src/hg/hgTables/mainPage.c @@ -111,31 +111,31 @@ makeRegionButtonExtraHtml(val, selVal, NULL); } struct grp *showGroupField(char *groupVar, char *event, char *groupScript, struct sqlConnection *conn, boolean allTablesOk) /* Show group control. Returns selected group. */ { struct grp *group, *groupList = fullGroupList; struct grp *selGroup = findSelectedGroup(groupList, groupVar); hPrintf("<B>group:</B>\n"); hPrintf("<SELECT NAME=%s id='%s'>\n", groupVar, groupVar); jsOnEventById(event,groupVar,groupScript); for (group = groupList; group != NULL; group = group->next) { if (allTablesOk || differentString(group->name, "allTables")) - hPrintf(" <OPTION VALUE=%s%s>%s\n", group->name, + hPrintf(" <OPTION VALUE=%s%s>%s</OPTION>\n", group->name, (group == selGroup ? " SELECTED" : ""), group->label); } hPrintf("</SELECT>\n"); return selGroup; } static void addIfExists(struct hash *hash, struct slName **pList, char *name) /* Add name to tail of list if it exists in hash. */ { if (hashLookup(hash, name)) slNameAddTail(pList, name); } struct slName *getDbListForGenome() @@ -168,31 +168,31 @@ boolean disableNoGenome) /* Show track control. Returns selected track. */ { struct trackDb *track, *selTrack = NULL; if (trackScript == NULL) trackScript = ""; if (sameString(selGroup->name, "allTables")) { char *selDb = findSelDb(); struct slName *dbList = getDbListForGenome(), *db; hPrintf("<B>database:</B>\n"); hPrintf("<SELECT NAME=\"%s\" id='%s'>\n", trackVar, trackVar); jsOnEventById(event, trackVar, trackScript); for (db = dbList; db != NULL; db = db->next) { - hPrintf(" <OPTION VALUE=%s%s>%s\n", db->name, + hPrintf(" <OPTION VALUE=%s%s>%s</OPTION>\n", db->name, (sameString(db->name, selDb) ? " SELECTED" : ""), db->name); } hPrintf("</SELECT>\n"); } else { boolean allTracks = sameString(selGroup->name, "allTracks"); hPrintf("<B>track:</B>\n"); hPrintf("<SELECT NAME=\"%s\" id='%s'>\n", trackVar, trackVar); jsOnEventById(event, trackVar, trackScript); if (allTracks) { selTrack = findSelectedTrack(fullTrackList, NULL, trackVar); slSort(&fullTrackList, trackDbCmpShortLabel); @@ -316,35 +316,36 @@ if (track != NULL) tdb = findTdbForTable(database,track,name->name, ctLookupName); hPrintf("<OPTION VALUE=\"%s\"", name->name); // Disable options for related tables that are noGenome -- if a non-positional table // is selected then we output its entire contents. if (cartTrackDbIsNoGenome(database, name->name) && (track == NULL || differentString(track->table, name->name))) hPrintf(" DISABLED"NO_GENOME_CLASS); else if (sameString(selTable, name->name)) { hPrintf(" SELECTED"); selTdb = tdb; } if (tdb != NULL) if ((curTrack == NULL) || differentWord(tdb->shortLabel, curTrack->shortLabel)) - hPrintf(">%s (%s)\n", tdb->shortLabel, name->name); + hPrintf(">%s (%s)", tdb->shortLabel, name->name); else - hPrintf(">%s\n", name->name); + hPrintf(">%s", name->name); else - hPrintf(">%s\n", name->name); + hPrintf(">%s", name->name); + hPrintf("</OPTION>\n"); } hPrintf("</SELECT>\n"); if (!trackHubDatabase(database)) { char *restrictDate = encodeRestrictionDateDisplay(database,selTdb); if (restrictDate) { hPrintf("<A HREF=\'%s\' TARGET=BLANK>restricted until:</A> %s", ENCODE_DATA_RELEASE_POLICY, restrictDate); freeMem(restrictDate); } } return selTable; } @@ -371,31 +372,31 @@ { otInOtList = TRUE; break; } if (! otInOtList) outputType = otDefault->name; } hPrintf("<SELECT id='outputTypeDropdown' NAME=\"%s\">", hgtaOutputType); for (ot = otList; ot != NULL; ot = ot->next) { hPrintf(" <OPTION VALUE=%s", ot->name); if (sameString(ot->name, outputType)) hPrintf(" SELECTED"); if (sameString(ot->name, outBed) || sameString(ot->name, outWigBed)) hPrintf(" id=\"outBed\""); - hPrintf(">%s\n", ot->label); + hPrintf(">%s</OPTION>\n", ot->label); } hPrintf("</SELECT>\n"); hPrintf(" "); hPrintf("<DIV style='display:none; opacity:0.9; border: 1px solid #EEE; margin: 2px; padding: 4px' id='gffNote'>" "<b>Note:</b> Table Browser GTF files contain transcripts, but no gene identifiers or symbols.<br> " "If you are looking for fully formatted " "gene model files for use in genome analysis pipelines,<br>check the " "<a href='https://hgdownload.soe.ucsc.edu/goldenPath/%s/bigZips/genes'>bigZips/genes</a> " "directory on our download server.</DIV>", database); hPrintf(" "); jsInline("function checkGtfNote(event) {\n" "if (document.getElementById('outputTypeDropdown').value==='gff')\n" " document.getElementById('gffNote').style.display='';\n"