af730d9e24c0642fe39657f890bc117ed015ccbf
galt
Wed Feb 15 01:12:26 2017 -0800
CSP code cleanup. Using new var-args versions of functions jsInlineF and jsOnEventByIdF to avoid using lots of fixed-size local javascript strings.
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index f684ccc..9bdc66c 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -49,45 +49,42 @@
#include "tagRepo.h"
#define SMALLBUF 256
#define MAX_SUBGROUP 9
#define ADD_BUTTON_LABEL "add"
#define CLEAR_BUTTON_LABEL "clear"
#define JBUFSIZE 2048
#define DEF_BUTTON "\n"
#define DEF_BUTTON_JS "setCheckBoxesThatContain('%s',true,false,'%s','','%s');" \
"setCheckBoxesThatContain('%s',false,false,'%s','_defOff','%s');"
#define DEFAULT_BUTTON(nameOrId,anc,beg,contains) \
printf(DEF_BUTTON,(anc),"defaults_sm.png","default"); \
safef(id, sizeof id, "btn_%s", (anc)); \
- safef(javascript, sizeof javascript, DEF_BUTTON_JS,(nameOrId),(beg),(contains),(nameOrId),(beg),(contains)); \
- jsOnEventById("click", id, javascript);
+ jsOnEventByIdF("click", id, DEF_BUTTON_JS,(nameOrId),(beg),(contains),(nameOrId),(beg),(contains));
#define PM_BUTTON "
\n"
#define PM_BUTTON_JS "setCheckBoxesThatContain('%s',%s,true,'%s','','%s');"
#define PLUS_BUTTON(nameOrId,anc,beg,contains) \
printf(PM_BUTTON, (anc), "add_sm.gif", "+"); \
safef(id, sizeof id, "btn_%s", (anc)); \
- safef(javascript, sizeof javascript, PM_BUTTON_JS, (nameOrId),"true", (beg),(contains)); \
- jsOnEventById("click", id, javascript);
+ jsOnEventByIdF("click", id, PM_BUTTON_JS, (nameOrId),"true", (beg),(contains));
#define MINUS_BUTTON(nameOrId,anc,beg,contains) \
printf(PM_BUTTON, (anc), "remove_sm.gif", "-"); \
safef(id, sizeof id, "btn_%s", (anc)); \
- safef(javascript, sizeof javascript, PM_BUTTON_JS, (nameOrId),"false", (beg),(contains)); \
- jsOnEventById("click", id, javascript);
+ jsOnEventByIdF("click", id, PM_BUTTON_JS, (nameOrId),"false", (beg),(contains));
boolean isEncode2(char *database)
// Return true for ENCODE2 assemblies
{
return (sameString(database, "hg18") || sameString(database, "hg19") || sameString(database, "mm9"));
}
static char *htmlStringForDownloadsLink(char *database, struct trackDb *tdb,
char *name,boolean nameIsFile)
// Returns an HTML string for a downloads link
{
// If has fileSortOrder, then link to new hgFileUi
if (!nameIsFile && trackDbSetting(tdb, FILE_SORT_ORDER) != NULL)
{
char * link = needMem(PATH_LEN); // 512 should be enough
@@ -318,34 +315,32 @@
// If metadata from metaTbl exists, create a link that will allow toggling it's display
{
char *tagStormFile = trackDbSetting(tdb, "metaDb");
if (tagStormFile == NULL)
{
const struct mdbObj *safeObj = metadataForTable(db,tdb,NULL);
if (safeObj == NULL || safeObj->vars == NULL)
return FALSE;
}
char id[256];
safef(id, sizeof id, "div_%s_link", tdb->track);
printf("%s%s
",
(embeddedInText?" ":"
"),id,tdb->track, (title?title:"")); -char javascript[1024]; -safef(javascript, sizeof javascript, "return metadataShowHide(\"%s\",%s,true);", +jsOnEventByIdF("click", id, "return metadataShowHide(\"%s\",%s,true);", tdb->track, showLongLabel?"true":"false"); -jsOnEventById("click", id, javascript); printf("
",tdb->track, metadataAsHtmlTable(db,tdb,showLongLabel,FALSE)); return TRUE; } void extraUiLinks(char *db,struct trackDb *tdb) // Show metadata, and downloads, schema links where appropriate { char *tagStormFile = trackDbSetting(tdb, "metaDb"); boolean hasMetadata = (tagStormFile != NULL) || (!tdbIsComposite(tdb) && !trackHubDatabase(db) && metadataForTable(db, tdb, NULL) != NULL); if (hasMetadata) printf("Metadata:Species selection: ");
cgiContinueHiddenVar("g");
char id[256];
-char javascript[1024];
PLUS_BUTTON( "id", "plus_pw","cb_maf_","_maf_")
MINUS_BUTTON("id","minus_pw","cb_maf_","_maf_")
char prefix[512];
safef(prefix, sizeof prefix, "%s.", name);
char *defaultOffSpecies = trackDbSetting(tdb, "speciesDefaultOff");
struct hash *offHash = NULL;
if (defaultOffSpecies)
{
offHash = newHash(5);
DEFAULT_BUTTON( "id", "default_pw","cb_maf_","_maf_")
int wordCt = chopLine(defaultOffSpecies, words);
defaultOffSpeciesCnt = wordCt;
/* build hash of species that should be off */
@@ -7383,41 +7374,39 @@
continue;
count++;
if (count==1) // First time set up a table
puts("
%s: | ", membersForAll->members[ix]->groupTitle); int aIx; for (aIx=0;aIx"); char objName[SMALLBUF]; - char javascript[JBUFSIZE]; char other[JBUFSIZE]; boolean alreadySet=FALSE; if (membersForAll->members[ix]->selected != NULL) alreadySet = membersForAll->members[ix]->selected[aIx]; safef(objName, sizeof(objName), "%s.mat_%s_dim%c_cb",parentTdb->track, membersForAll->members[ix]->tags[aIx],membersForAll->letters[ix]); - safef(javascript,sizeof(javascript), "matCbClick(this);"); safef(other, sizeof other, "class='matCB abc %s'", membersForAll->members[ix]->tags[aIx]); cgiMakeCheckBoxIdAndMore(objName,alreadySet,objName,other); - jsOnEventById("click", objName, javascript); + jsOnEventById("click", objName, "matCbClick(this);"); printf("%s",compositeLabelWithVocabLink(db,parentTdb, membersForAll->members[ix]->subtrackList[aIx]->val, membersForAll->members[ix]->groupTag, membersForAll->members[ix]->titles[aIx])); puts(" | "); } } puts("
---|