src/hg/hgTrackUi/hgTrackUi.c 1.483
1.483 2009/03/19 21:13:00 tdreszer
Add 'Reset to defaults' to hgTrackUi. Currently only applied to multi-view, because it relies on cart var naming convention {tableName}.{varName}...
Index: src/hg/hgTrackUi/hgTrackUi.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTrackUi/hgTrackUi.c,v
retrieving revision 1.482
retrieving revision 1.483
diff -b -B -U 4 -r1.482 -r1.483
--- src/hg/hgTrackUi/hgTrackUi.c 18 Mar 2009 21:10:26 -0000 1.482
+++ src/hg/hgTrackUi/hgTrackUi.c 19 Mar 2009 21:13:00 -0000 1.483
@@ -2429,11 +2429,31 @@
}
makeDownloadsLink(tdb);
}
+
void trackUi(struct trackDb *tdb, struct customTrack *ct)
/* Put up track-specific user interface. */
{
+jsIncludeFile("jquery.js", NULL);
+jsIncludeFile("utils.js",NULL);
+jsIncludeFile("ajax.js", NULL);
+#define SUPPORT_RESET_TO_DEFAULTS
+#ifdef SUPPORT_RESET_TO_DEFAULTS
+#define RESET_TO_DEFAULTS "defaults"
+char setting[128];
+// NOTE: Currently only composite multi-view tracks because
+// reset relies upon all cart vars following naming convention:
+// {tableName}.{varName}... ( One exception supported: {tableName}_sel ).
+if(tdbIsComposite(tdb) && subgroupingExists(tdb,"view"))
+ {
+ safef(setting,sizeof(setting),"%s.%s",tdb->tableName,RESET_TO_DEFAULTS);
+ // NOTE: if you want track vis to not be reset, move to after vis dropdown
+ if(1 == cartUsualInt(cart, setting, 0))
+ cartRemoveAllForTdbAndChildren(cart,tdb);
+ }
+#endif//def SUPPORT_RESET_TO_DEFAULTS
+
printf("<FORM ACTION=\"%s\" NAME=\""MAIN_FORM"\" METHOD=%s>\n\n",
hgTracksName(), cartUsualString(cart, "formMethod", "POST"));
cartSaveSession(cart);
printf("<H1>%s%s</H1>\n", tdb->longLabel, tdbIsSuper(tdb) ? " Tracks" : "");
@@ -2476,8 +2496,14 @@
tdb->canPack, "normalText", trackDbSetting(tdb, "onlyVisibility"));
}
printf(" ");
cgiMakeButton("Submit", "Submit");
+
+#ifdef SUPPORT_RESET_TO_DEFAULTS
+if(tdbIsComposite(tdb) && subgroupingExists(tdb,"view"))
+ printf("\n <a href='#' onclick='setCartVarAndRefresh(\"%s\",\"1\"); return false;'>Reset to defaults</a>\n",setting);
+#endif//def SUPPORT_RESET_TO_DEFAULTS
+
if (ct)
{
puts(" ");
cgiMakeButton(CT_DO_REMOVE_VAR, "Remove custom track");