)]}'
{"openstack_dashboard/dashboards/project/ngcontainers/templates/ngcontainers/index.html":[{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"f94b17c9050411ee4d94621d84cce6f41eda7098","unresolved":false,"context_lines":[{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}{% trans \"Containers\" %}{% endblock %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% block ng_route_base %}"},{"line_number":6,"context_line":"  \u003cbase href\u003d\"{{ WEBROOT }}\"\u003e"},{"line_number":7,"context_line":"{% endblock %}"},{"line_number":8,"context_line":""}],"source_content_type":"text/html","patch_set":39,"id":"7af24918_0e54f0c7","line":5,"updated":"2016-03-03 01:31:49.000000000","message":"Do we need this ?\nIn my env, when I clicked ngcontainer panel, ngcontainer url was http:/xxx/project/ngcontainers and not fount error occurred.\n\nI think the correct url is http:/xxx/dashboard/project/ngcontainers. Does it cause that my env is broken?","commit_id":"44b3198b7010096dcfb9f0151f9e8cafafb4df10"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"9ea452d76ca850be5e6578d2363625021af463a8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}{% trans \"Containers\" %}{% endblock %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% block ng_route_base %}"},{"line_number":6,"context_line":"  \u003cbase href\u003d\"{{ WEBROOT }}\"\u003e"},{"line_number":7,"context_line":"{% endblock %}"},{"line_number":8,"context_line":""}],"source_content_type":"text/html","patch_set":39,"id":"7af24918_2d728049","line":5,"in_reply_to":"7af24918_0e54f0c7","updated":"2016-03-03 10:30:03.000000000","message":"Yes, I believe we need this for angular routing to work. What is your environment setup?","commit_id":"44b3198b7010096dcfb9f0151f9e8cafafb4df10"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"6eca067ac49424d1f21cbe68ce38194cf0bb5c89","unresolved":false,"context_lines":[{"line_number":7,"context_line":"{% endblock %}"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"{% block page_header %}"},{"line_number":10,"context_line":"  {% include \"horizon/common/_page_header.html\" with title\u003d_(\"Containers\") %}"},{"line_number":11,"context_line":"{% endblock page_header %}"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"{% block main %}"}],"source_content_type":"text/html","patch_set":42,"id":"5aef4532_ad68d2bb","line":10,"updated":"2016-03-07 16:47:10.000000000","message":"Can this be switched to hz-page-header? \n\n\u003chz-page-header header\u003d\"{$ \u0027Containers\u0027 | translate $}\"\u003e\u003c/hz-page-header\u003e\n\nLike images:\n\nhttps://github.com/openstack/horizon/blob/master/openstack_dashboard/dashboards/project/ngimages/templates/ngimages/index.html#L6","commit_id":"4c391369975ad4c0c1a938c0678018009026bab6"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"6eca067ac49424d1f21cbe68ce38194cf0bb5c89","unresolved":false,"context_lines":[{"line_number":11,"context_line":"{% endblock page_header %}"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"{% block main %}"},{"line_number":14,"context_line":"  \u003cng-include src\u003d\"\u0027{{ STATIC_URL }}dashboard/project/containers/containers.html\u0027\"\u003e\u003c/ng-include\u003e"},{"line_number":15,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":42,"id":"5aef4532_5e0c5694","line":14,"updated":"2016-03-07 16:47:10.000000000","message":"Were you not able to make this an ng-view and then have nested views?","commit_id":"4c391369975ad4c0c1a938c0678018009026bab6"}],"openstack_dashboard/dashboards/project/ngcontainers/urls.py":[{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"f94b17c9050411ee4d94621d84cce6f41eda7098","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"VIEW_MOD \u003d \u0027openstack_dashboard.dashboards.project.ngcontainers.views\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"urlpatterns \u003d patterns("},{"line_number":24,"context_line":"    \u0027openstack_dashboard.dashboards.project.ngcontainers.views\u0027,"},{"line_number":25,"context_line":"    url(\u0027\u0027, views.IndexView.as_view(), name\u003d\u0027index\u0027),"},{"line_number":26,"context_line":")"}],"source_content_type":"text/x-python","patch_set":39,"id":"7af24918_4bd26a5d","line":23,"updated":"2016-03-03 01:31:49.000000000","message":"I think we need to follow how to write below.\nhttps://review.openstack.org/#/c/280901/","commit_id":"44b3198b7010096dcfb9f0151f9e8cafafb4df10"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"9ea452d76ca850be5e6578d2363625021af463a8","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"VIEW_MOD \u003d \u0027openstack_dashboard.dashboards.project.ngcontainers.views\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"urlpatterns \u003d patterns("},{"line_number":24,"context_line":"    \u0027openstack_dashboard.dashboards.project.ngcontainers.views\u0027,"},{"line_number":25,"context_line":"    url(\u0027\u0027, views.IndexView.as_view(), name\u003d\u0027index\u0027),"},{"line_number":26,"context_line":")"}],"source_content_type":"text/x-python","patch_set":39,"id":"7af24918_b531b65c","line":23,"in_reply_to":"7af24918_4bd26a5d","updated":"2016-03-03 10:30:03.000000000","message":"Fixed, thanks!","commit_id":"44b3198b7010096dcfb9f0151f9e8cafafb4df10"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/_containers.scss":[{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"f94b17c9050411ee4d94621d84cce6f41eda7098","unresolved":false,"context_lines":[{"line_number":1,"context_line":"@import \"/dashboard/scss/variables\";"},{"line_number":2,"context_line":"@import \"/custom/variables\";"},{"line_number":3,"context_line":"@import \"/bootstrap/scss/bootstrap/mixins/vendor-prefixes\";"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-scss","patch_set":39,"id":"7af24918_ee6704b5","line":1,"updated":"2016-03-03 01:31:49.000000000","message":"Do we need these imports ?","commit_id":"44b3198b7010096dcfb9f0151f9e8cafafb4df10"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"9ea452d76ca850be5e6578d2363625021af463a8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"@import \"/dashboard/scss/variables\";"},{"line_number":2,"context_line":"@import \"/custom/variables\";"},{"line_number":3,"context_line":"@import \"/bootstrap/scss/bootstrap/mixins/vendor-prefixes\";"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-scss","patch_set":39,"id":"7af24918_75444eb6","line":1,"in_reply_to":"7af24918_ee6704b5","updated":"2016-03-03 10:30:03.000000000","message":"Indeed, they are unnecessary, thanks!","commit_id":"44b3198b7010096dcfb9f0151f9e8cafafb4df10"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/containers-model.service.js":[{"author":{"_account_id":17013,"name":"Rajat Vig","email":"rajatv@thoughtworks.com","username":"rajatvig"},"change_message_id":"b7959747617c9929103a961e9c41a2b14ad8c836","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  angular"},{"line_number":16,"context_line":"    .module(\u0027horizon.dashboard.project.containers\u0027)"},{"line_number":17,"context_line":"    .factory(\u0027containersModel\u0027, containersModel);"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  containersModel.$inject \u003d ["},{"line_number":20,"context_line":"    \u0027$q\u0027,"},{"line_number":21,"context_line":"    \u0027$log\u0027,"}],"source_content_type":"text/javascript","patch_set":7,"id":"1a7b0d38_5920c09b","line":18,"updated":"2015-12-23 19:06:07.000000000","message":"Should it be namespaced to the module? Or is it intentionally so?","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"c2b28c276315ff1d37a2bdec52560374705d33c9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  angular"},{"line_number":16,"context_line":"    .module(\u0027horizon.dashboard.project.containers\u0027)"},{"line_number":17,"context_line":"    .factory(\u0027containersModel\u0027, containersModel);"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  containersModel.$inject \u003d ["},{"line_number":20,"context_line":"    \u0027$q\u0027,"},{"line_number":21,"context_line":"    \u0027$log\u0027,"}],"source_content_type":"text/javascript","patch_set":7,"id":"fa69d971_15eab3db","line":18,"in_reply_to":"1a7b0d38_5920c09b","updated":"2016-01-05 05:00:20.000000000","message":"I followed the pattern previously set in other places in the code...","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"},{"author":{"_account_id":17013,"name":"Rajat Vig","email":"rajatv@thoughtworks.com","username":"rajatvig"},"change_message_id":"b7959747617c9929103a961e9c41a2b14ad8c836","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  containersModel.$inject \u003d ["},{"line_number":20,"context_line":"    \u0027$q\u0027,"},{"line_number":21,"context_line":"    \u0027$log\u0027,"},{"line_number":22,"context_line":"    \u0027horizon.app.core.openstack-service-api.swift\u0027"},{"line_number":23,"context_line":"  ];"},{"line_number":24,"context_line":""}],"source_content_type":"text/javascript","patch_set":7,"id":"1a7b0d38_f9316ced","line":21,"updated":"2015-12-23 19:06:07.000000000","message":"$log is unused","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"c2b28c276315ff1d37a2bdec52560374705d33c9","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  containersModel.$inject \u003d ["},{"line_number":20,"context_line":"    \u0027$q\u0027,"},{"line_number":21,"context_line":"    \u0027$log\u0027,"},{"line_number":22,"context_line":"    \u0027horizon.app.core.openstack-service-api.swift\u0027"},{"line_number":23,"context_line":"  ];"},{"line_number":24,"context_line":""}],"source_content_type":"text/javascript","patch_set":7,"id":"fa69d971_35a3379f","line":21,"in_reply_to":"1a7b0d38_f9316ced","updated":"2016-01-05 05:00:20.000000000","message":"Also $q :-)","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"},{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"38ddf7e3fb0b3d81ece711d05573e741650e4481","unresolved":false,"context_lines":[{"line_number":1,"context_line":"(function () {"},{"line_number":2,"context_line":"  \u0027use strict\u0027;"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"  var push \u003d Array.prototype.push;"}],"source_content_type":"text/javascript","patch_set":11,"id":"da6ed579_b3b55ed1","line":1,"updated":"2016-01-18 05:58:28.000000000","message":"need to write Apache License.","commit_id":"36d7ec025f30125127076ae4c9a710662883d844"},{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"38ddf7e3fb0b3d81ece711d05573e741650e4481","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        push.apply(model.selected_container.contents, response.data.items);"},{"line_number":83,"context_line":"        model.pseudo_folder_hierarchy.length \u003d 0;"},{"line_number":84,"context_line":"        if (folder) {"},{"line_number":85,"context_line":"          push.apply(model.pseudo_folder_hierarchy, folder.split(\u0027/\u0027) || [folder]);"},{"line_number":86,"context_line":"        }"},{"line_number":87,"context_line":"      });"},{"line_number":88,"context_line":"    }"}],"source_content_type":"text/javascript","patch_set":11,"id":"da6ed579_738126fb","line":85,"updated":"2016-01-18 05:58:28.000000000","message":"It is better to use \"folder.split(model.DELIMETER)\"","commit_id":"36d7ec025f30125127076ae4c9a710662883d844"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/containers.controller.js":[{"author":{"_account_id":17013,"name":"Rajat Vig","email":"rajatv@thoughtworks.com","username":"rajatvig"},"change_message_id":"b7959747617c9929103a961e9c41a2b14ad8c836","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  angular"},{"line_number":21,"context_line":"    .module(\u0027horizon.dashboard.project.containers\u0027)"},{"line_number":22,"context_line":"    .controller(\u0027ContainersController\u0027, ContainersController);"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  ContainersController.$inject \u003d ["},{"line_number":25,"context_line":"    \u0027horizon.app.core.openstack-service-api.swift\u0027,"},{"line_number":26,"context_line":"    \u0027containersModel\u0027,"}],"source_content_type":"text/javascript","patch_set":7,"id":"1a7b0d38_b9520412","line":23,"updated":"2015-12-23 19:06:07.000000000","message":"Should be namespaced.","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"c2b28c276315ff1d37a2bdec52560374705d33c9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  angular"},{"line_number":21,"context_line":"    .module(\u0027horizon.dashboard.project.containers\u0027)"},{"line_number":22,"context_line":"    .controller(\u0027ContainersController\u0027, ContainersController);"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  ContainersController.$inject \u003d ["},{"line_number":25,"context_line":"    \u0027horizon.app.core.openstack-service-api.swift\u0027,"},{"line_number":26,"context_line":"    \u0027containersModel\u0027,"}],"source_content_type":"text/javascript","patch_set":7,"id":"fa69d971_157f1316","line":23,"in_reply_to":"1a7b0d38_b9520412","updated":"2016-01-05 05:00:20.000000000","message":"That is not the pattern we\u0027ve set in other places.","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"},{"author":{"_account_id":17013,"name":"Rajat Vig","email":"rajatv@thoughtworks.com","username":"rajatvig"},"change_message_id":"b7959747617c9929103a961e9c41a2b14ad8c836","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \u0027$modal\u0027,"},{"line_number":29,"context_line":"    \u0027horizon.dashboard.project.containers.basePath\u0027"},{"line_number":30,"context_line":"  ];"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  /**"},{"line_number":33,"context_line":"   * @ngdoc controller"},{"line_number":34,"context_line":"   * @name horizon.dashboard.project.containers.ContainersController"}],"source_content_type":"text/javascript","patch_set":7,"id":"1a7b0d38_1942383f","line":31,"updated":"2015-12-23 19:06:07.000000000","message":"Should be imported alphabetically","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"c2b28c276315ff1d37a2bdec52560374705d33c9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    \u0027$modal\u0027,"},{"line_number":29,"context_line":"    \u0027horizon.dashboard.project.containers.basePath\u0027"},{"line_number":30,"context_line":"  ];"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  /**"},{"line_number":33,"context_line":"   * @ngdoc controller"},{"line_number":34,"context_line":"   * @name horizon.dashboard.project.containers.ContainersController"}],"source_content_type":"text/javascript","patch_set":7,"id":"fa69d971_15cdd365","line":31,"in_reply_to":"1a7b0d38_1942383f","updated":"2016-01-05 05:00:20.000000000","message":"Done","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/containers.html":[{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"38ddf7e3fb0b3d81ece711d05573e741650e4481","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cbutton type\u003d\"button\""},{"line_number":2,"context_line":"   class\u003d\"btn btn-sm btn-default\""},{"line_number":3,"context_line":"   ng-click\u003d\"cc.openCreateContainer()\"\u003e"},{"line_number":4,"context_line":"  \u003cspan class\u003d\"fa fa-plus\"\u003e\u003c/span\u003e"},{"line_number":5,"context_line":"  Create Container"},{"line_number":6,"context_line":"\u003c/button\u003e"},{"line_number":7,"context_line":""}],"source_content_type":"text/html","patch_set":11,"id":"da6ed579_13d8ea1c","line":4,"updated":"2016-01-18 05:58:28.000000000","message":"It needs a translate","commit_id":"36d7ec025f30125127076ae4c9a710662883d844"},{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"38ddf7e3fb0b3d81ece711d05573e741650e4481","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \u003ctr ng-repeat-end class\u003d\u0027detail-row\u0027\u003e"},{"line_number":26,"context_line":"      \u003ctd colspan\u003d\"2\" class\u003d\u0027detail\u0027\u003e"},{"line_number":27,"context_line":"        \u003cul\u003e"},{"line_number":28,"context_line":"          \u003cli\u003eObject Count: {$container.container_object_count$}\u003c/li\u003e"},{"line_number":29,"context_line":"          \u003cli\u003eSize: {$container.container_bytes_used | bytes$}\u003c/li\u003e"},{"line_number":30,"context_line":"          \u003cli\u003e"},{"line_number":31,"context_line":"            Access:"}],"source_content_type":"text/html","patch_set":11,"id":"da6ed579_33f88e7c","line":28,"updated":"2016-01-18 05:58:28.000000000","message":"Same as above.","commit_id":"36d7ec025f30125127076ae4c9a710662883d844"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/containers.module.js":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"6eca067ac49424d1f21cbe68ce38194cf0bb5c89","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    var containerRoute \u003d baseRoute + \u0027container/\u0027;"},{"line_number":48,"context_line":"    $provide.constant(\u0027horizon.dashboard.project.containers.containerRoute\u0027, containerRoute);"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    $routeProvider"},{"line_number":51,"context_line":"      .when(baseRoute, {"},{"line_number":52,"context_line":"        templateUrl: path + \u0027select-container.html\u0027"},{"line_number":53,"context_line":"      })"}],"source_content_type":"text/javascript","patch_set":42,"id":"5aef4532_d9908098","line":50,"updated":"2016-03-07 16:47:10.000000000","message":"Did you have to do it this way because of not having good nested view support?  Is this an example of where ui-router would have been better for us?","commit_id":"4c391369975ad4c0c1a938c0678018009026bab6"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"6eca067ac49424d1f21cbe68ce38194cf0bb5c89","unresolved":false,"context_lines":[{"line_number":57,"context_line":"      .when(containerRoute + \u0027:containerName/:folder*\u0027, {"},{"line_number":58,"context_line":"        templateUrl: path + \u0027objects.html\u0027"},{"line_number":59,"context_line":"      });"},{"line_number":60,"context_line":"  }"},{"line_number":61,"context_line":"})();"}],"source_content_type":"text/javascript","patch_set":42,"id":"5aef4532_8a5b3c54","line":60,"updated":"2016-03-07 16:47:10.000000000","message":"In a follow on patch we should add the registration of the resource types and labels so they are reusable...  or have this patch use them.\n\nhttps://github.com/openstack/horizon/blob/master/openstack_dashboard/static/app/core/images/images.module.js#L41\n\nThe following resource types have default registration in app core, but they should probably be registered here as well with labels for properties.\n\n    registry.getResourceType(\u0027OS::Swift::Account\u0027, {\n      names: [gettext(\u0027Object Account\u0027), gettext(\u0027Object Accounts\u0027)]\n    });\n    registry.getResourceType(\u0027OS::Swift::Container\u0027, {\n      names: [gettext(\u0027Object Container\u0027), gettext(\u0027Object Containers\u0027)]\n    });\n    registry.getResourceType(\u0027OS::Swift::Object\u0027, {\n      names: [gettext(\u0027Object\u0027), gettext(\u0027Objects\u0027)]\n    });","commit_id":"4c391369975ad4c0c1a938c0678018009026bab6"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects.html":[{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"38ddf7e3fb0b3d81ece711d05573e741650e4481","unresolved":false,"context_lines":[{"line_number":34,"context_line":"             class\u003d\"btn btn-default btn-sm\""},{"line_number":35,"context_line":"              \u003e"},{"line_number":36,"context_line":"            \u003cspan class\u003d\"fa fa-plus\"\u003e\u003c/span\u003e"},{"line_number":37,"context_line":"            Create Pseudo-folder"},{"line_number":38,"context_line":"          \u003c/a\u003e"},{"line_number":39,"context_line":"          \u003ca href\u003d\"\""},{"line_number":40,"context_line":"             ng-click\u003d\"oc.uploadObject()\""}],"source_content_type":"text/html","patch_set":11,"id":"da6ed579_533c222f","line":37,"updated":"2016-01-18 05:58:28.000000000","message":"It needs a translate. some places are same as this.","commit_id":"36d7ec025f30125127076ae4c9a710662883d844"},{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"fec4d64b5ee2d164cc3cdf6365aa1faff30914c8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  \u003ca href\u003d\"\" ng-click\u003d\"oc.selectContainerRoot()\"\u003e"},{"line_number":3,"context_line":"    {$oc.model.selected_container.name$}"},{"line_number":4,"context_line":"  \u003c/a\u003e :"},{"line_number":5,"context_line":"  \u003cspan ng-repeat\u003d\"pf in oc.model.pseudo_folder_hierarchy\"\u003e"},{"line_number":6,"context_line":"    \u003ca href\u003d\"\" ng-if\u003d\"!$last\""},{"line_number":7,"context_line":"       ng-click\u003d\"oc.selectSubfolder({path:oc.model.pseudo_folder_hierarchy.slice(0, $index + 1).join(\u0027/\u0027)})\"\u003e"},{"line_number":8,"context_line":"      {$pf$}"}],"source_content_type":"text/html","patch_set":21,"id":"7a5de9d1_13713644","line":5,"updated":"2016-02-01 10:23:08.000000000","message":"Perhapse this code is cause.\n\n\u003cspan ng-repeat\u003d\"pf in oc.model.pseudo_folder_hierarchy track by $index\"\u003e","commit_id":"0a5da84c764aa70c7721417c66a23d867fc1a3f0"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"a860e28d16f6cde463fb73ff3c8182e78e332d80","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  \u003ca href\u003d\"\" ng-click\u003d\"oc.selectContainerRoot()\"\u003e"},{"line_number":3,"context_line":"    {$oc.model.selected_container.name$}"},{"line_number":4,"context_line":"  \u003c/a\u003e :"},{"line_number":5,"context_line":"  \u003cspan ng-repeat\u003d\"pf in oc.model.pseudo_folder_hierarchy\"\u003e"},{"line_number":6,"context_line":"    \u003ca href\u003d\"\" ng-if\u003d\"!$last\""},{"line_number":7,"context_line":"       ng-click\u003d\"oc.selectSubfolder({path:oc.model.pseudo_folder_hierarchy.slice(0, $index + 1).join(\u0027/\u0027)})\"\u003e"},{"line_number":8,"context_line":"      {$pf$}"}],"source_content_type":"text/html","patch_set":21,"id":"7a5de9d1_fa651c1d","line":5,"in_reply_to":"7a5de9d1_13713644","updated":"2016-02-02 06:15:29.000000000","message":"Yep, needed that \"track by $index\", thanks!","commit_id":"0a5da84c764aa70c7721417c66a23d867fc1a3f0"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"370b9a9b9283a8ff082984edc3993170a48ae3d7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003ctable class\u003d\"table modern hz-objects table-hover\""},{"line_number":2,"context_line":"       ng-controller\u003d\"horizon.dashboard.project.containers.ObjectsController as oc\""},{"line_number":3,"context_line":"       st-table\u003d\"displayContents\" st-safe-src\u003d\"oc.model.objects\""},{"line_number":4,"context_line":"       hz-table default-sort\u003d\"name\"\u003e"}],"source_content_type":"text/html","patch_set":40,"id":"7af24918_fdd3aa5d","line":1,"range":{"start_line":1,"start_character":20,"end_line":1,"end_character":26},"updated":"2016-03-05 16:33:47.000000000","message":"\"modern\" shouldn\u0027t be used any more, I believe it was all removed. Also unsure if you want table-striped like the rest of Horizon. Not sure if that matters.","commit_id":"08d8f7cc7bdbd38f767e84f144ffcbd053bded02"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"970c2145f41818e3ed9a90c637bf8c45622870f6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003ctable class\u003d\"table modern hz-objects table-hover\""},{"line_number":2,"context_line":"       ng-controller\u003d\"horizon.dashboard.project.containers.ObjectsController as oc\""},{"line_number":3,"context_line":"       st-table\u003d\"displayContents\" st-safe-src\u003d\"oc.model.objects\""},{"line_number":4,"context_line":"       hz-table default-sort\u003d\"name\"\u003e"}],"source_content_type":"text/html","patch_set":40,"id":"7af24918_bce75dab","line":1,"in_reply_to":"7af24918_fdd3aa5d","updated":"2016-03-06 09:36:53.000000000","message":"Done","commit_id":"08d8f7cc7bdbd38f767e84f144ffcbd053bded02"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/select-container.html":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"6eca067ac49424d1f21cbe68ce38194cf0bb5c89","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003ctable class\u003d\"table table-bordered tablestriped\"\u003e"},{"line_number":2,"context_line":"  \u003ctbody\u003e"},{"line_number":3,"context_line":"    \u003ctr class\u003d\"odd empty\"\u003e"},{"line_number":4,"context_line":"      \u003ctd\u003e\u003ctranslate\u003eSelect a container to browse.\u003c/translate\u003e\u003c/td\u003e"},{"line_number":5,"context_line":"    \u003c/tr\u003e"},{"line_number":6,"context_line":"  \u003c/tbody\u003e"},{"line_number":7,"context_line":"\u003c/table\u003e"}],"source_content_type":"text/html","patch_set":42,"id":"5aef4532_39cfe4b1","line":4,"updated":"2016-03-07 16:47:10.000000000","message":"This would be better to use the translate attribute on \u003ctd\u003e rather than the translate html tag.","commit_id":"4c391369975ad4c0c1a938c0678018009026bab6"}],"openstack_dashboard/dashboards/project/static/dashboard/project/project.module.js":[{"author":{"_account_id":17013,"name":"Rajat Vig","email":"rajatv@thoughtworks.com","username":"rajatvig"},"change_message_id":"b7959747617c9929103a961e9c41a2b14ad8c836","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    .module(\u0027horizon.dashboard.project\u0027, ["},{"line_number":28,"context_line":"      \u0027horizon.dashboard.project.images\u0027,"},{"line_number":29,"context_line":"      \u0027horizon.dashboard.project.workflow\u0027,"},{"line_number":30,"context_line":"      \u0027horizon.dashboard.project.containers\u0027"},{"line_number":31,"context_line":"    ])"},{"line_number":32,"context_line":"    .config(config);"},{"line_number":33,"context_line":""}],"source_content_type":"text/javascript","patch_set":7,"id":"1a7b0d38_7e400257","line":30,"range":{"start_line":30,"start_character":43,"end_line":30,"end_character":44},"updated":"2015-12-23 19:06:07.000000000","message":"It should be alphabetical","commit_id":"fe5b5d0f3efc221436378c4dff68f9e08bc66696"}],"openstack_dashboard/enabled/_1051_project_ng_images_panel.py":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"81be70c1ba271a7354ac498b350473be452cbf67","unresolved":false,"context_lines":[{"line_number":24,"context_line":"PANEL \u003d \u0027ngimages\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# If set to True, this settings file will not be added to the settings."},{"line_number":27,"context_line":"DISABLED \u003d False"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# Python panel class of the PANEL to be added."},{"line_number":30,"context_line":"ADD_PANEL \u003d \u0027openstack_dashboard.dashboards.project.ngimages.panel.NGImages\u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"dae33548_03fdaab3","line":27,"updated":"2016-02-18 03:49:07.000000000","message":"need to change to True.","commit_id":"0dbe66621f0547268da524f738ceee1091481d17"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"77984cecf35b8bb6c9ba417bfccc7d634359f71b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"PANEL \u003d \u0027ngimages\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# If set to True, this settings file will not be added to the settings."},{"line_number":27,"context_line":"DISABLED \u003d False"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# Python panel class of the PANEL to be added."},{"line_number":30,"context_line":"ADD_PANEL \u003d \u0027openstack_dashboard.dashboards.project.ngimages.panel.NGImages\u0027"}],"source_content_type":"text/x-python","patch_set":33,"id":"bae84128_65cd9930","line":27,"updated":"2016-02-24 00:59:51.000000000","message":"Still should be True.","commit_id":"35a9ebbd869684615a33a804442494368b0174aa"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"f740ecd7ca5d117b238b3b5123892a87483c8b10","unresolved":false,"context_lines":[{"line_number":24,"context_line":"PANEL \u003d \u0027ngimages\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# If set to True, this settings file will not be added to the settings."},{"line_number":27,"context_line":"DISABLED \u003d False"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# Python panel class of the PANEL to be added."},{"line_number":30,"context_line":"ADD_PANEL \u003d \u0027openstack_dashboard.dashboards.project.ngimages.panel.NGImages\u0027"}],"source_content_type":"text/x-python","patch_set":33,"id":"bae84128_4f4af928","line":27,"in_reply_to":"bae84128_65cd9930","updated":"2016-02-24 18:50:28.000000000","message":"Done","commit_id":"35a9ebbd869684615a33a804442494368b0174aa"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"d00d94dd702ac394e32eacddd7aa3b4d87897626","unresolved":false,"context_lines":[{"line_number":24,"context_line":"PANEL \u003d \u0027ngimages\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# If set to True, this settings file will not be added to the settings."},{"line_number":27,"context_line":"DISABLED \u003d False"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# Python panel class of the PANEL to be added."},{"line_number":30,"context_line":"ADD_PANEL \u003d \u0027openstack_dashboard.dashboards.project.ngimages.panel.NGImages\u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"7af24918_d8ceae82","line":27,"updated":"2016-03-01 21:23:06.000000000","message":"I\u0027m sensing a pattern here.","commit_id":"249be2c5d3bf8832ac5f7f0c44c1010444e104ce"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"59b69b8c064773376a2c61d49f31635cb642fc97","unresolved":false,"context_lines":[{"line_number":24,"context_line":"PANEL \u003d \u0027ngimages\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# If set to True, this settings file will not be added to the settings."},{"line_number":27,"context_line":"DISABLED \u003d False"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# Python panel class of the PANEL to be added."},{"line_number":30,"context_line":"ADD_PANEL \u003d \u0027openstack_dashboard.dashboards.project.ngimages.panel.NGImages\u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"7af24918_b822c2b7","line":27,"in_reply_to":"7af24918_d8ceae82","updated":"2016-03-01 21:32:49.000000000","message":"Oh, for... ugh.","commit_id":"249be2c5d3bf8832ac5f7f0c44c1010444e104ce"}]}
