)]}'
{"horizon/static/horizon/js/horizon.d3piechart.js":[{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"8e58b28f4e7e527bf67bd26fd00aafaaf6a2c5ee","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    To use a div is required with the class .d3_pie_chart"},{"line_number":5,"context_line":"    and a data-used attribute in the div"},{"line_number":6,"context_line":"    that stores the percentage to fill the chart"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    Example:"},{"line_number":9,"context_line":"        \u003cdiv class\u003d\"d3_pie_chart\""},{"line_number":10,"context_line":"            data-used\u003d\"{% widthratio current_val max_val 100 %}\"\u003e"}],"source_content_type":"text/javascript","patch_set":4,"id":"AAAAOn%2F%2Fd9k%3D","line":7,"updated":"2013-05-08 20:11:16.000000000","message":"nit, but \"To use a\" should be \"To use, a\"\nI read that several times trying to process it.","commit_id":"a955485769c7668724757a765deaf01b08f31729"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"8e58b28f4e7e527bf67bd26fd00aafaaf6a2c5ee","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        .transition()"},{"line_number":77,"context_line":"          .duration(500)"},{"line_number":78,"context_line":"          .attrTween(\"d\", function(a) {"},{"line_number":79,"context_line":"            var i \u003d d3.interpolate(self.current, a);"},{"line_number":80,"context_line":"            self.current \u003d i(0);"},{"line_number":81,"context_line":"            return function(t) { return arc(i(t)); }"},{"line_number":82,"context_line":"          })"}],"source_content_type":"text/javascript","patch_set":4,"id":"AAAAOn%2F%2Fd6g%3D","line":79,"updated":"2013-05-08 20:11:16.000000000","message":"\"i\" is also the parameter to pieChart\n\nwhile I realize the scope is different it would be clearer to pick a different name here","commit_id":"a955485769c7668724757a765deaf01b08f31729"}],"horizon/static/horizon/js/horizon.quota.js":[{"author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"change_message_id":"5023f6c3b5e131df4a473627b87058ce4fad2168","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    var frgrnd\u003d \"grey\";"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    // Horizontal Bars"},{"line_number":184,"context_line":"    var bar \u003d d3.select(\"#\"+element).append(\"svg:svg\")"},{"line_number":185,"context_line":"        .attr(\"class\", \"chart\")"},{"line_number":186,"context_line":"        .attr(\"width\", w)"},{"line_number":187,"context_line":"        .attr(\"height\", h)"}],"source_content_type":"text/javascript","patch_set":3,"id":"AAAAOn%2F%2FfFI%3D","line":184,"updated":"2013-05-08 07:33:52.000000000","message":"This code duplicates some code from horizon.d3bars.js. Also - it seems the code in d3bars.js is not used anywhere, there is no element with class \"d3_horizontal_bar\". I guess \u0027d3_bars.horizontalBar\u0027 should be reused here somwhow?","commit_id":"8b138e3cd9b5c625a0c9f30527ba139e2bc7c887"},{"author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"change_message_id":"5023f6c3b5e131df4a473627b87058ce4fad2168","unresolved":false,"context_lines":[{"line_number":223,"context_line":"      .transition()"},{"line_number":224,"context_line":"        .duration(500)"},{"line_number":225,"context_line":"        .attr(\"width\", used + \"%\")"},{"line_number":226,"context_line":" "},{"line_number":227,"context_line":"  },"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"  // Update the progress Bar"}],"source_content_type":"text/javascript","patch_set":3,"id":"AAAAOn%2F%2FfGk%3D","line":226,"updated":"2013-05-08 07:33:52.000000000","message":"One minor red dot here..","commit_id":"8b138e3cd9b5c625a0c9f30527ba139e2bc7c887"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"8e58b28f4e7e527bf67bd26fd00aafaaf6a2c5ee","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"      var quota_limit \u003d parseInt(progress_element.attr(\u0027data-quota-limit\u0027), 10);"},{"line_number":309,"context_line":"      var quota_used \u003d parseInt(progress_element.attr(\u0027data-quota-used\u0027), 10);"},{"line_number":310,"context_line":"      var percentage_used \u003d ((quota_used / quota_limit) * 100);"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"      scope.drawUsed($(element).attr(\u0027id\u0027), percentage_used);"},{"line_number":313,"context_line":"    });"}],"source_content_type":"text/javascript","patch_set":4,"id":"AAAAOn%2F%2Fd40%3D","line":310,"updated":"2013-05-08 20:11:16.000000000","message":"potential for NaN to be passed to drawUsed here. If either parseInt returns NaN.  Check that isNaN(quota_limit) and isNaN(quota_used) are both false","commit_id":"a955485769c7668724757a765deaf01b08f31729"}],"horizon/templates/horizon/common/_quota_summary.html":[{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"8e58b28f4e7e527bf67bd26fd00aafaaf6a2c5ee","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    \u003cdiv class\u003d\"d3_quota_bar\"\u003e"},{"line_number":11,"context_line":"      \u003cdiv class\u003d\"d3_pie_chart\" data-used\u003d\"{% widthratio usage.quotas.cores.used usage.quotas.cores.quota 100 %}\"\u003e\u003c/div\u003e"},{"line_number":12,"context_line":"      \u003cstrong\u003e{% trans \"Available vCPUs\" %} \u003cbr /\u003e {% trans \"Used\" %} \u003cspan\u003e {{ usage.quotas.cores.used|intcomma }} \u003c/span\u003e{% trans \"of\" %}\u003cspan\u003e {{ usage.quotas.cores.quota|intcomma }} \u003c/span\u003e\u003c/strong\u003e"},{"line_number":13,"context_line":"    \u003c/div\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    \u003cdiv class\u003d\"d3_quota_bar\"\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"AAAAOn%2F%2Fd0o%3D","line":12,"updated":"2013-05-08 20:11:16.000000000","message":"Table header on the project/overview page uses \"VCPUs\" in the header.  \"vCPUs\" here.  Fix inconsistency.","commit_id":"a955485769c7668724757a765deaf01b08f31729"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"8e58b28f4e7e527bf67bd26fd00aafaaf6a2c5ee","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    {% if usage.quotas.volumes %}"},{"line_number":21,"context_line":"      \u003cdiv class\u003d\"d3_quota_bar\"\u003e"},{"line_number":22,"context_line":"        \u003cdiv class\u003d\"d3_pie_chart\" data-used\u003d\"{% widthratio usage.quotas.volumes.used usage.quotas.volumes.quota 100 %}\"\u003e\u003c/div\u003e"},{"line_number":23,"context_line":"        \u003cstrong\u003e{% trans \"Available volumes\" %} \u003cbr /\u003e {% trans \"Used\" %} \u003cspan\u003e {{ usage.quotas.volumes.used|intcomma }} \u003c/span\u003e{% trans \"of\" %}\u003cspan\u003e {{ usage.quotas.volumes.quota|intcomma }} \u003c/span\u003e\u003c/strong\u003e"},{"line_number":24,"context_line":"      \u003c/div\u003e"},{"line_number":25,"context_line":"      \u003cdiv class\u003d\"d3_quota_bar\"\u003e"},{"line_number":26,"context_line":"        \u003cdiv class\u003d\"d3_pie_chart\" data-used\u003d\"{% widthratio usage.quotas.gigabytes.used usage.quotas.gigabytes.quota 100 %}\"\u003e\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"AAAAOn%2F%2Fd1A%3D","line":23,"updated":"2013-05-08 20:11:16.000000000","message":"\u0027Available volumes\u0027 should be \u0027Available Volumes\u0027 to be consistent","commit_id":"a955485769c7668724757a765deaf01b08f31729"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"8e58b28f4e7e527bf67bd26fd00aafaaf6a2c5ee","unresolved":false,"context_lines":[{"line_number":24,"context_line":"      \u003c/div\u003e"},{"line_number":25,"context_line":"      \u003cdiv class\u003d\"d3_quota_bar\"\u003e"},{"line_number":26,"context_line":"        \u003cdiv class\u003d\"d3_pie_chart\" data-used\u003d\"{% widthratio usage.quotas.gigabytes.used usage.quotas.gigabytes.quota 100 %}\"\u003e\u003c/div\u003e"},{"line_number":27,"context_line":"        \u003cstrong\u003e{% trans \"Available volume storage\" %} \u003cbr /\u003e {% trans \"Used\" %} \u003cspan\u003e {{ usage.quotas.gigabytes.used|intcomma }} GB \u003c/span\u003e{% trans \"of\" %}\u003cspan\u003e {{ usage.quotas.gigabytes.quota|intcomma }} GB \u003c/span\u003e\u003c/strong\u003e"},{"line_number":28,"context_line":"      \u003c/div\u003e"},{"line_number":29,"context_line":"    {% endif %}"},{"line_number":30,"context_line":"\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"AAAAOn%2F%2Fd08%3D","line":27,"updated":"2013-05-08 20:11:16.000000000","message":"\"Available volume storage\" should be \"Available Volume Storage\" to be consistent.","commit_id":"a955485769c7668724757a765deaf01b08f31729"}],"openstack_dashboard/dashboards/project/access_and_security/templates/access_and_security/floating_ips/_allocate.html":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"9a43cd5996ca8fac83fc3bb4b3debae9bf6edbd3","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003c/div\u003e"},{"line_number":17,"context_line":"\u003cdiv class\u003d\"right quota-dynamic\"\u003e"},{"line_number":18,"context_line":"    \u003ch3\u003e{% trans \"Description:\" %}\u003c/h3\u003e"},{"line_number":19,"context_line":"    \u003cp\u003e{% trans \"Allocate a floating IP from a given floating ip pool.\" %}\u003c/p\u003e"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    \u003ch3\u003e{% trans \"Project Quotas\" %}\u003c/h3\u003e"},{"line_number":22,"context_line":"    \u003cdiv class\u003d\"quota_title\"\u003e"}],"source_content_type":"text/html","patch_set":6,"id":"AAAAOn%2F%2Fc0k%3D","line":19,"updated":"2013-05-09 07:14:14.000000000","message":"Not part of your change, but can you also update \"floating ip pool\" to \"floating IP pool\" while at it? :)","commit_id":"534f20cce0d0cacbc2f8dd597709522d268434e9"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"9af208121624cd70e01573be36d9a2af437074f2","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003c/div\u003e"},{"line_number":17,"context_line":"\u003cdiv class\u003d\"right quota-dynamic\"\u003e"},{"line_number":18,"context_line":"    \u003ch3\u003e{% trans \"Description:\" %}\u003c/h3\u003e"},{"line_number":19,"context_line":"    \u003cp\u003e{% trans \"Allocate a floating IP from a given floating ip pool.\" %}\u003c/p\u003e"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    \u003ch3\u003e{% trans \"Project Quotas\" %}\u003c/h3\u003e"},{"line_number":22,"context_line":"    \u003cdiv class\u003d\"quota_title\"\u003e"}],"source_content_type":"text/html","patch_set":6,"id":"AAAAOn%2F%2FclY%3D","line":19,"in_reply_to":"AAAAOn%2F%2Fc0k%3D","updated":"2013-05-09 11:51:17.000000000","message":"I noticed this too while looking at this and submitted a separate patch.  If you want to address it here, I can abandon that patch.","commit_id":"534f20cce0d0cacbc2f8dd597709522d268434e9"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"d4cb9dea10aa740e4824e8597d9a1ae7b121a2e6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003c/div\u003e"},{"line_number":17,"context_line":"\u003cdiv class\u003d\"right quota-dynamic\"\u003e"},{"line_number":18,"context_line":"    \u003ch3\u003e{% trans \"Description:\" %}\u003c/h3\u003e"},{"line_number":19,"context_line":"    \u003cp\u003e{% trans \"Allocate a floating IP from a given floating ip pool.\" %}\u003c/p\u003e"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    \u003ch3\u003e{% trans \"Project Quotas\" %}\u003c/h3\u003e"},{"line_number":22,"context_line":"    \u003cdiv class\u003d\"quota_title\"\u003e"}],"source_content_type":"text/html","patch_set":6,"id":"AAAAOn%2F%2FcH8%3D","line":19,"in_reply_to":"AAAAOn%2F%2FclY%3D","updated":"2013-05-09 16:37:01.000000000","message":"Ah yes, forgot about that. That patch just got merged. \n\nThe comment can be ignored.","commit_id":"534f20cce0d0cacbc2f8dd597709522d268434e9"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"9a43cd5996ca8fac83fc3bb4b3debae9bf6edbd3","unresolved":false,"context_lines":[{"line_number":24,"context_line":"      \u003cp\u003e{{ usages.floating_ips.available|quota }}\u003c/p\u003e"},{"line_number":25,"context_line":"    \u003c/div\u003e"},{"line_number":26,"context_line":"    \u003cdiv class\u003d\"clearfix\"\u003e\u003c/div\u003e"},{"line_number":27,"context_line":"    \u003cdiv id\u003d\"floating_ip_progress\" class\u003d\"quota_bar\" data-quota-used\u003d{{ usages.floating_ips.used }} data-quota-limit\u003d{{ usages.floating_ips.quota }} data-progress-indicator-step-by\u003d\"1\"\u003e\u003c/div\u003e"},{"line_number":28,"context_line":"\u003c/div\u003e"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  \u003cscript type\u003d\"text/javascript\" charset\u003d\"utf-8\"\u003e"}],"source_content_type":"text/html","patch_set":6,"id":"AAAAOn%2F%2Fc1A%3D","line":27,"updated":"2013-05-09 07:14:14.000000000","message":"The values of data-quota-used and data-quota-limit are not enclosed in quotes.","commit_id":"534f20cce0d0cacbc2f8dd597709522d268434e9"},{"author":{"_account_id":6638,"name":"Bradley Jones","email":"jones.bradley@me.com","username":"bradjones"},"change_message_id":"98d1cbfc9e4f5be7ce57690df4425c7f4d914e88","unresolved":false,"context_lines":[{"line_number":24,"context_line":"      \u003cp\u003e{{ usages.floating_ips.available|quota }}\u003c/p\u003e"},{"line_number":25,"context_line":"    \u003c/div\u003e"},{"line_number":26,"context_line":"    \u003cdiv class\u003d\"clearfix\"\u003e\u003c/div\u003e"},{"line_number":27,"context_line":"    \u003cdiv id\u003d\"floating_ip_progress\" class\u003d\"quota_bar\" data-quota-used\u003d{{ usages.floating_ips.used }} data-quota-limit\u003d{{ usages.floating_ips.quota }} data-progress-indicator-step-by\u003d\"1\"\u003e\u003c/div\u003e"},{"line_number":28,"context_line":"\u003c/div\u003e"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  \u003cscript type\u003d\"text/javascript\" charset\u003d\"utf-8\"\u003e"}],"source_content_type":"text/html","patch_set":6,"id":"AAAAOn%2F%2Fb%2Fw%3D","line":27,"in_reply_to":"AAAAOn%2F%2Fc1A%3D","updated":"2013-05-09 17:43:11.000000000","message":"Done","commit_id":"534f20cce0d0cacbc2f8dd597709522d268434e9"}],"openstack_dashboard/static/dashboard/less/horizon.less":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"9a43cd5996ca8fac83fc3bb4b3debae9bf6edbd3","unresolved":false,"context_lines":[{"line_number":1200,"context_line":"  width: 20%;"},{"line_number":1201,"context_line":"  margin-bottom: 8px;"},{"line_number":1202,"context_line":"  margin-top: 10px;"},{"line_number":1203,"context_line":"  float:left;"},{"line_number":1204,"context_line":"  text-align: center;"},{"line_number":1205,"context_line":"}"},{"line_number":1206,"context_line":""}],"source_content_type":"text/x-less","patch_set":6,"id":"AAAAOn%2F%2Fc04%3D","line":1203,"updated":"2013-05-09 07:14:14.000000000","message":"just a knit, please add a space after the colon.","commit_id":"534f20cce0d0cacbc2f8dd597709522d268434e9"},{"author":{"_account_id":6638,"name":"Bradley Jones","email":"jones.bradley@me.com","username":"bradjones"},"change_message_id":"98d1cbfc9e4f5be7ce57690df4425c7f4d914e88","unresolved":false,"context_lines":[{"line_number":1200,"context_line":"  width: 20%;"},{"line_number":1201,"context_line":"  margin-bottom: 8px;"},{"line_number":1202,"context_line":"  margin-top: 10px;"},{"line_number":1203,"context_line":"  float:left;"},{"line_number":1204,"context_line":"  text-align: center;"},{"line_number":1205,"context_line":"}"},{"line_number":1206,"context_line":""}],"source_content_type":"text/x-less","patch_set":6,"id":"AAAAOn%2F%2Fb%2Fg%3D","line":1203,"in_reply_to":"AAAAOn%2F%2Fc04%3D","updated":"2013-05-09 17:43:11.000000000","message":"Done","commit_id":"534f20cce0d0cacbc2f8dd597709522d268434e9"}]}
