)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"685fb300c9f0a712579ccf4e30e2bb1c145f48cc","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Horizon\u0027s built-in modules are managed as a couple of trees, then only"},{"line_number":19,"context_line":"the top modules of each tree should be listed in the Horizon\u0027s built-in"},{"line_number":20,"context_line":"modules."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: I989a0b5cc8b24f6b168629f4a8fa5e485dcf1a2d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba3cc151_899fb65e","line":21,"updated":"2015-07-07 05:51:36.000000000","message":"Should have associated blueprint or bug for tracking purposes.","commit_id":"30294b8fd541e7208a29310c78cebcb3f3818a1d"}],"openstack_dashboard/static/app/app.module.js":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"685fb300c9f0a712579ccf4e30e2bb1c145f48cc","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  var libraryModules \u003d ["},{"line_number":21,"context_line":"    \u0027ngCookies\u0027"},{"line_number":22,"context_line":"  ];"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  var horizonBuiltinModules \u003d ["},{"line_number":25,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":26,"context_line":"    \u0027hz.dashboard\u0027,"}],"source_content_type":"text/javascript","patch_set":2,"id":"ba3cc151_e9776239","line":23,"updated":"2015-07-07 05:51:36.000000000","message":"It couldn\u0027t hurt to put a comment on each of these categories to help explain the intent.","commit_id":"30294b8fd541e7208a29310c78cebcb3f3818a1d"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"255ee154e3a2a324d96c88fd04feecaee85a2133","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  /**"},{"line_number":38,"context_line":"   * Horizon\u0027s built-in modules, including modules from `framework` components"},{"line_number":39,"context_line":"   * and modules from `oepnstack_dashboard` application core components."},{"line_number":40,"context_line":"   */"},{"line_number":41,"context_line":"  var horizonBuiltInModules \u003d ["},{"line_number":42,"context_line":"    // top module for `framework`, modules inside framework folder should be"}],"source_content_type":"text/javascript","patch_set":5,"id":"ba3cc151_80dd2016","line":39,"updated":"2015-07-07 19:29:05.000000000","message":"\"openstack_dashboard\"","commit_id":"11dc6238f94d1bad889fc04ac785289f7b07ec3e"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"255ee154e3a2a324d96c88fd04feecaee85a2133","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    // organized as a tree under this module node."},{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    // top modules from `oepnstack_dashboard` application core components."},{"line_number":47,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":48,"context_line":"    \u0027hz.dashboard\u0027,"},{"line_number":49,"context_line":"    \u0027horizon.openstack-service-api\u0027"}],"source_content_type":"text/javascript","patch_set":5,"id":"ba3cc151_60ea5cae","line":46,"updated":"2015-07-07 19:29:05.000000000","message":"\"openstack_dashboard\"","commit_id":"11dc6238f94d1bad889fc04ac785289f7b07ec3e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"162cbe4c71033aabe6adc14ca931ece7aed587f9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  \u0027use strict\u0027;"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  /**"},{"line_number":21,"context_line":"   * Horizon\u0027s application level module depends on modules from three"},{"line_number":22,"context_line":"   * sources:"},{"line_number":23,"context_line":"   *"},{"line_number":24,"context_line":"   * 1) Library modules"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_cd5da016","line":21,"updated":"2015-07-07 20:12:39.000000000","message":"include this in the ngdoc below.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"162cbe4c71033aabe6adc14ca931ece7aed587f9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   */"},{"line_number":41,"context_line":"  var horizonBuiltInModules \u003d ["},{"line_number":42,"context_line":"    // top module for `framework`, modules inside framework folder should be"},{"line_number":43,"context_line":"    // organized as a tree under this module node."},{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":46,"context_line":""}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_0d3dc8ba","line":43,"updated":"2015-07-07 20:12:39.000000000","message":"not sure this comment is needed, i think it should be clear, this is how modules work.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"4e26dd6034957ebaa9b7391f2b76047ac16d7430","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   */"},{"line_number":41,"context_line":"  var horizonBuiltInModules \u003d ["},{"line_number":42,"context_line":"    // top module for `framework`, modules inside framework folder should be"},{"line_number":43,"context_line":"    // organized as a tree under this module node."},{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":46,"context_line":""}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_26ca29a2","line":43,"in_reply_to":"ba3cc151_0d3dc8ba","updated":"2015-07-07 21:41:09.000000000","message":"Makes sense. removed.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"b6ef8e687446708d2b14afe4c88b8dbbf9142fc0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   */"},{"line_number":41,"context_line":"  var horizonBuiltInModules \u003d ["},{"line_number":42,"context_line":"    // top module for `framework`, modules inside framework folder should be"},{"line_number":43,"context_line":"    // organized as a tree under this module node."},{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":46,"context_line":""}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_e1966b93","line":43,"in_reply_to":"ba3cc151_0d3dc8ba","updated":"2015-07-07 21:39:45.000000000","message":"Worst nit ever!  \"Remove clarifying comment\".  ;-)","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7f84ddac2a91589142614204db0f7b008ca8acf8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   */"},{"line_number":41,"context_line":"  var horizonBuiltInModules \u003d ["},{"line_number":42,"context_line":"    // top module for `framework`, modules inside framework folder should be"},{"line_number":43,"context_line":"    // organized as a tree under this module node."},{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":46,"context_line":""}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_b070a841","line":43,"in_reply_to":"ba3cc151_26ca29a2","updated":"2015-07-07 23:42:09.000000000","message":"Actually, I was poking fun at Thai.  I didn\u0027t mind the comments inline here at all.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"bae217f40fb1e80668789bdfc353ac4c49a925df","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   */"},{"line_number":41,"context_line":"  var horizonBuiltInModules \u003d ["},{"line_number":42,"context_line":"    // top module for `framework`, modules inside framework folder should be"},{"line_number":43,"context_line":"    // organized as a tree under this module node."},{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":46,"context_line":""}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_b08d08d5","line":43,"in_reply_to":"ba3cc151_b070a841","updated":"2015-07-07 23:55:21.000000000","message":"I know! :)","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"162cbe4c71033aabe6adc14ca931ece7aed587f9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    // top modules from `openstack_dashboard` application core components."},{"line_number":48,"context_line":"    \u0027hz.dashboard\u0027,"},{"line_number":49,"context_line":"    \u0027horizon.openstack-service-api\u0027"},{"line_number":50,"context_line":"  ];"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_8d77989e","line":47,"updated":"2015-07-07 20:12:39.000000000","message":"redundant, mentioned above already.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"4e26dd6034957ebaa9b7391f2b76047ac16d7430","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    \u0027horizon.framework\u0027,"},{"line_number":45,"context_line":"    \u0027horizon.auth\u0027,"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    // top modules from `openstack_dashboard` application core components."},{"line_number":48,"context_line":"    \u0027hz.dashboard\u0027,"},{"line_number":49,"context_line":"    \u0027horizon.openstack-service-api\u0027"},{"line_number":50,"context_line":"  ];"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_e6c44193","line":47,"in_reply_to":"ba3cc151_8d77989e","updated":"2015-07-07 21:41:09.000000000","message":"Done","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"162cbe4c71033aabe6adc14ca931ece7aed587f9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"   * Horizon\u0027s plug-in modules - modules from Horizon\u0027s extensions components via"},{"line_number":54,"context_line":"   * Horizon\u0027s plug-in mechanism."},{"line_number":55,"context_line":"   */"},{"line_number":56,"context_line":"  var horizonPlugInModules \u003d angularModuleExtension;"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  angular"},{"line_number":59,"context_line":"    .module(\u0027horizon.app\u0027, []"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_4d23d0a7","line":56,"updated":"2015-07-07 20:12:39.000000000","message":"maybe we should just rename angularModuleExtension to horizonPlugInModules directly to alleviate future confusion.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"4e26dd6034957ebaa9b7391f2b76047ac16d7430","unresolved":false,"context_lines":[{"line_number":53,"context_line":"   * Horizon\u0027s plug-in modules - modules from Horizon\u0027s extensions components via"},{"line_number":54,"context_line":"   * Horizon\u0027s plug-in mechanism."},{"line_number":55,"context_line":"   */"},{"line_number":56,"context_line":"  var horizonPlugInModules \u003d angularModuleExtension;"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  angular"},{"line_number":59,"context_line":"    .module(\u0027horizon.app\u0027, []"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_a62f19a0","line":56,"in_reply_to":"ba3cc151_4d23d0a7","updated":"2015-07-07 21:41:09.000000000","message":"Done","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"b6ef8e687446708d2b14afe4c88b8dbbf9142fc0","unresolved":false,"context_lines":[{"line_number":53,"context_line":"   * Horizon\u0027s plug-in modules - modules from Horizon\u0027s extensions components via"},{"line_number":54,"context_line":"   * Horizon\u0027s plug-in mechanism."},{"line_number":55,"context_line":"   */"},{"line_number":56,"context_line":"  var horizonPlugInModules \u003d angularModuleExtension;"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  angular"},{"line_number":59,"context_line":"    .module(\u0027horizon.app\u0027, []"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_a1906396","line":56,"in_reply_to":"ba3cc151_4d23d0a7","updated":"2015-07-07 21:39:45.000000000","message":"I like this.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"162cbe4c71033aabe6adc14ca931ece7aed587f9","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   */"},{"line_number":56,"context_line":"  var horizonPlugInModules \u003d angularModuleExtension;"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  angular"},{"line_number":59,"context_line":"    .module(\u0027horizon.app\u0027, []"},{"line_number":60,"context_line":"      .concat(libraryModules)"},{"line_number":61,"context_line":"      .concat(horizonBuiltInModules)"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_ad629cd6","line":58,"updated":"2015-07-07 20:12:39.000000000","message":"since we are documenting stuff, lets add ngdoc to this module as well.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"4e26dd6034957ebaa9b7391f2b76047ac16d7430","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   */"},{"line_number":56,"context_line":"  var horizonPlugInModules \u003d angularModuleExtension;"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  angular"},{"line_number":59,"context_line":"    .module(\u0027horizon.app\u0027, []"},{"line_number":60,"context_line":"      .concat(libraryModules)"},{"line_number":61,"context_line":"      .concat(horizonBuiltInModules)"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba3cc151_861bf57f","line":58,"in_reply_to":"ba3cc151_ad629cd6","updated":"2015-07-07 21:41:09.000000000","message":"Good point. Done.","commit_id":"649afa3dadf03883c82706eff67d14c73c178a6e"}]}
