70d2fa98f8f4fe8d805b2172bd26850d19c1a645 angie Mon Mar 23 15:17:04 2015 -0700 Code review feedback from Kate: libify inclusion of libs for new React framework. refs #14965 diff --git src/hg/hgChooseDb/hgChooseDb.c src/hg/hgChooseDb/hgChooseDb.c index ae301c3..c66f6ff 100644 --- src/hg/hgChooseDb/hgChooseDb.c +++ src/hg/hgChooseDb/hgChooseDb.c @@ -4,30 +4,31 @@ * (default, in the absence of special CGI params) * - cart-based JSON responses to ajax requests from javascript (using hg/lib/cartJson.c) * (if CGI param CARTJSON_COMMAND exists) * - no cart; fast JSON responses to species-search autocomplete requests * (if CGI param SEARCH_TERM exists) * The UI view top level is in ../js/react/hgChooseDb/hgChooseDb.jsx * The UI model top level is in ../js/model/hgChooseDb/hgChooseDbModel.js */ #include "common.h" #include "cart.h" #include "cartJson.h" #include "cheapcgi.h" #include "hCommon.h" #include "hdb.h" #include "hui.h" +#include "jsHelper.h" #include "jsonParse.h" #include "obscure.h" // for readInGulp #include "trackHub.h" #include "web.h" /* Global Variables */ struct cart *cart = NULL; /* CGI and other variables */ #define SEARCH_TERM "hgcd_term" static char *getPhotoForGenome(char *genome, char *db) /* If the expected file for this genome's description page photo exists, return the filename. */ { if (db == NULL) db = hDefaultDbForGenome(genome); @@ -164,45 +165,31 @@ char *db = cartUsualString(cart, "db", hDefaultDb()); webStartWrapperDetailedNoArgs(cart, trackHubSkipHubName(db), "", "UCSC Genome Browser Databases", TRUE, FALSE, TRUE, TRUE); // Ideally these would go in the <HEAD> puts("<link rel=\"stylesheet\" href=\"//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css\">"); puts("<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css\">"); puts("<div id=\"appContainer\">Loading...</div>"); // Set a global JS variable hgsid. // Plain old "var ..." doesn't work (other scripts can't see it), it has to belong to window. printf("<script>window.%s='%s';</script>\n", cartSessionVarName(), cartSessionId(cart)); -// We need a package manager and require-handling system... bower and browserify? -puts("<script src=\"../js/es5-shim.4.0.3.min.js\"></script>"); -puts("<script src=\"../js/es5-sham.4.0.3.min.js\"></script>"); -puts("<script src=\"../js/lodash.3.3.1.compat.min.js\"></script>"); -puts("<script src=\"//code.jquery.com/jquery-1.9.1.min.js\"></script>"); -puts("<script src=\"//code.jquery.com/ui/1.10.3/jquery-ui.min.js\"></script>"); -puts("<script src=\"//fb.me/react-with-addons-0.12.2.min.js\"></script>"); -puts("<script src=\"../js/immutable.3.2.1.min.js\"></script>"); -puts("<script src=\"../js/BackboneExtend.js\"></script>"); -puts("<script src=\"../js/cart.js\"></script>"); -puts("<script src=\"../js/ImModel.js\"></script>"); -puts("<script src=\"../js/PathUpdate.js\"></script>"); -puts("<script src=\"../js/PathUpdateOptional.js\"></script>"); -puts("<script src=\"../js/ImmutableUpdate.js\"></script>"); -puts("<script src=\"../js/reactLibBundle.js\"></script>"); +jsIncludeReactLibs(); puts("<script src=\"../js/reactHgChooseDb.js\"></script>"); puts("<script src=\"../js/hgChooseDbModel.js\"></script>"); // Invisible form for jumping to hgTracks printf("\n<form action=\"%s\" method=%s id='mainForm'>\n", hgTracksName(), cartUsualString(cart, "formMethod", "GET")); cartSaveSession(cart); cgiMakeHiddenVar("db", db); puts("</form>"); webEnd(); } void doMiddle(struct cart *theCart) /* Depending on invocation, either perform a query and print out results * or display the main page. */