)]}'
{"horizon/static/framework/widgets/action-list/split-button.html":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"a3dc6b7f347cef7817f786f6ff9a0e6e8221661f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  ng-class\u003d\"actionClasses\""},{"line_number":5,"context_line":"  ng-click\u003d\"disabled || callback(item); $event.stopPropagation()\"\u003e"},{"line_number":6,"context_line":"  \u003cng-transclude\u003e\u003c/ng-transclude\u003e"},{"line_number":7,"context_line":"\u003c/button\u003e\u003c!-- don\u0027t put a new line here. --\u003e\u003cbutton class\u003d\"split-caret dropdown-toggle\" dropdown-toggle"},{"line_number":8,"context_line":"  ng-class\u003d\"actionClasses\""},{"line_number":9,"context_line":"  aria-expanded\u003d\"false\" ng-click\u003d\"$event.stopPropagation()\"\u003e"},{"line_number":10,"context_line":"  \u003cspan class\u003d\"fa fa-caret-down\"\u003e\u003c/span\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_094d2a3e","line":7,"updated":"2016-03-14 19:05:14.000000000","message":"What will happen then?","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  ng-class\u003d\"actionClasses\""},{"line_number":5,"context_line":"  ng-click\u003d\"disabled || callback(item); $event.stopPropagation()\"\u003e"},{"line_number":6,"context_line":"  \u003cng-transclude\u003e\u003c/ng-transclude\u003e"},{"line_number":7,"context_line":"\u003c/button\u003e\u003c!-- don\u0027t put a new line here. --\u003e\u003cbutton class\u003d\"split-caret dropdown-toggle\" dropdown-toggle"},{"line_number":8,"context_line":"  ng-class\u003d\"actionClasses\""},{"line_number":9,"context_line":"  aria-expanded\u003d\"false\" ng-click\u003d\"$event.stopPropagation()\"\u003e"},{"line_number":10,"context_line":"  \u003cspan class\u003d\"fa fa-caret-down\"\u003e\u003c/span\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_d31c8815","line":7,"in_reply_to":"3afc51ec_094d2a3e","updated":"2016-03-14 20:57:11.000000000","message":"https://review.openstack.org/#/c/292020/ - Justin has a patch up for this too. It\u0027ll create a small space between the two buttons.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"horizon/static/framework/widgets/action-list/split-link.html":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"b2d6dbe44f698c35ab9c798a652c82e5a95169a8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"\u003c/a\u003e"},{"line_number":8,"context_line":"\u003c!-- Dropdown caret button --\u003e"},{"line_number":9,"context_line":"\u003cbutton class\u003d\"split-caret dropdown-toggle\" dropdown-toggle"},{"line_number":10,"context_line":"  ng-class\u003d\"actionClasses + \u0027 pull-right\u0027\""},{"line_number":11,"context_line":"  aria-expanded\u003d\"false\"\u003e"},{"line_number":12,"context_line":"  \u003cspan class\u003d\"fa fa-caret-down\"\u003e\u003c/span\u003e"},{"line_number":13,"context_line":"  \u003cspan class\u003d\"sr-only\" translate\u003eToggle Dropdown\u003c/span\u003e"}],"source_content_type":"text/html","patch_set":23,"id":"bae84128_5d946c43","line":10,"range":{"start_line":10,"start_character":30,"end_line":10,"end_character":41},"updated":"2016-02-24 20:18:15.000000000","message":"This \u003d\u003d bad","commit_id":"396ed987c342f9a96b4e271741f5a03e06f4f1d4"}],"openstack_dashboard/api/rest/swift.py":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"a3dc6b7f347cef7817f786f6ff9a0e6e8221661f","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            request,"},{"line_number":201,"context_line":"            container,"},{"line_number":202,"context_line":"            object_name,"},{"line_number":203,"context_line":"            resp_chunk_size\u003dapi.swift.CHUNK_SIZE"},{"line_number":204,"context_line":"        )"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # Add the original file extension back on if it wasn\u0027t preserved in the"}],"source_content_type":"text/x-python","patch_set":43,"id":"3afc51ec_c9b182e3","line":203,"updated":"2016-03-14 19:05:14.000000000","message":"We don\u0027t have to specify this value here, because the default value is the same and we don\u0027t pass it through caller function.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            request,"},{"line_number":201,"context_line":"            container,"},{"line_number":202,"context_line":"            object_name,"},{"line_number":203,"context_line":"            resp_chunk_size\u003dapi.swift.CHUNK_SIZE"},{"line_number":204,"context_line":"        )"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # Add the original file extension back on if it wasn\u0027t preserved in the"}],"source_content_type":"text/x-python","patch_set":43,"id":"3afc51ec_0af4ee83","line":203,"in_reply_to":"3afc51ec_c9b182e3","updated":"2016-03-15 02:16:17.000000000","message":"Good point.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/create-folder-modal.html":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"0b2972ffdcbadd9bda46bd2e25153710ae2217e9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      \u003cdiv class\u003d\"form-group required\"\u003e"},{"line_number":15,"context_line":"        \u003clabel class\u003d\"control-label required\" for\u003d\"id_name\" translate\u003eFolder Name\u003c/label\u003e"},{"line_number":16,"context_line":"        \u003cspan class\u003d\"help-icon\" data-toggle\u003d\"tooltip\" data-placement\u003d\"top\""},{"line_number":17,"context_line":"              title\u003d\"Slashes are allowed to create deep folders.\"\u003e"},{"line_number":18,"context_line":"          \u003cspan class\u003d\"fa fa-question-circle\"\u003e\u003c/span\u003e"},{"line_number":19,"context_line":"        \u003c/span\u003e"},{"line_number":20,"context_line":"        \u003cdiv\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_3226cace","line":17,"updated":"2016-03-12 18:08:58.000000000","message":"nicety: provide an example with the correct direction slash.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      \u003cdiv class\u003d\"form-group required\"\u003e"},{"line_number":15,"context_line":"        \u003clabel class\u003d\"control-label required\" for\u003d\"id_name\" translate\u003eFolder Name\u003c/label\u003e"},{"line_number":16,"context_line":"        \u003cspan class\u003d\"help-icon\" data-toggle\u003d\"tooltip\" data-placement\u003d\"top\""},{"line_number":17,"context_line":"              title\u003d\"Slashes are allowed to create deep folders.\"\u003e"},{"line_number":18,"context_line":"          \u003cspan class\u003d\"fa fa-question-circle\"\u003e\u003c/span\u003e"},{"line_number":19,"context_line":"        \u003c/span\u003e"},{"line_number":20,"context_line":"        \u003cdiv\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_d103dd40","line":17,"in_reply_to":"3afc51ec_3226cace","updated":"2016-03-15 02:16:17.000000000","message":"I\u0027ve moved this off to a side help not as it was getting quite complex with the delimiter formatting and it\u0027s also now translated.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/object-details-modal.html":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"186a38e6630f07029bd4d954f3157fed46709606","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    \u003c/a\u003e"},{"line_number":6,"context_line":"    \u003cdiv class\u003d\"h3 modal-title\"\u003eObject Details\u003c/div\u003e"},{"line_number":7,"context_line":"  \u003c/div\u003e"},{"line_number":8,"context_line":"  \u003cdiv class\u003d\"modal-body clearfix\"\u003e"},{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"},{"line_number":10,"context_line":"      \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":11,"context_line":"        \u003cdt\u003eName\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_d621939f","line":8,"range":{"start_line":8,"start_character":25,"end_line":8,"end_character":33},"updated":"2016-03-11 00:07:58.000000000","message":"needs moar clearfix\n\n(remove before diana sees because otherwise she will go beast mode)","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":11778,"name":"Diana Whitten","email":"hurgleburgler@gmail.com","username":"hurgleburgler"},"change_message_id":"bb03186e3ad0a24a0f4f04914c53bf6c2f366395","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    \u003c/a\u003e"},{"line_number":6,"context_line":"    \u003cdiv class\u003d\"h3 modal-title\"\u003eObject Details\u003c/div\u003e"},{"line_number":7,"context_line":"  \u003c/div\u003e"},{"line_number":8,"context_line":"  \u003cdiv class\u003d\"modal-body clearfix\"\u003e"},{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"},{"line_number":10,"context_line":"      \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":11,"context_line":"        \u003cdt\u003eName\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_f955a0f9","line":8,"range":{"start_line":8,"start_character":25,"end_line":8,"end_character":33},"in_reply_to":"5aef4532_d621939f","updated":"2016-03-11 00:34:34.000000000","message":"ヽ( `д´*)ノ","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"67324169d63234e49bbd8f0b8b51bfca8aefc83d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    \u003c/a\u003e"},{"line_number":6,"context_line":"    \u003cdiv class\u003d\"h3 modal-title\"\u003eObject Details\u003c/div\u003e"},{"line_number":7,"context_line":"  \u003c/div\u003e"},{"line_number":8,"context_line":"  \u003cdiv class\u003d\"modal-body clearfix\"\u003e"},{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"},{"line_number":10,"context_line":"      \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":11,"context_line":"        \u003cdt\u003eName\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_bd2f7fa6","line":8,"in_reply_to":"5aef4532_f955a0f9","updated":"2016-03-11 05:46:22.000000000","message":"Done","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"186a38e6630f07029bd4d954f3157fed46709606","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"},{"line_number":10,"context_line":"      \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":11,"context_line":"        \u003cdt\u003eName\u003c/dt\u003e"},{"line_number":12,"context_line":"        \u003cdd\u003e{$ctrl.context.name$}\u003c/dd\u003e"},{"line_number":13,"context_line":"        \u003cdt\u003eHash\u003c/dt\u003e"},{"line_number":14,"context_line":"        \u003cdd\u003e{$ctrl.context.hash$}\u003c/dd\u003e"},{"line_number":15,"context_line":"        \u003cdt\u003eContent Type\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_430f8336","line":12,"range":{"start_line":12,"start_character":12,"end_line":12,"end_character":33},"updated":"2016-03-11 00:07:58.000000000","message":"This appears to be the entire filepath name. Is that intended? Could get very ugly, very fast.","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"65ae32ea31ecf30dfc34953df597b5deeb2c64e7","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"},{"line_number":10,"context_line":"      \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":11,"context_line":"        \u003cdt\u003eName\u003c/dt\u003e"},{"line_number":12,"context_line":"        \u003cdd\u003e{$ctrl.context.name$}\u003c/dd\u003e"},{"line_number":13,"context_line":"        \u003cdt\u003eHash\u003c/dt\u003e"},{"line_number":14,"context_line":"        \u003cdd\u003e{$ctrl.context.hash$}\u003c/dd\u003e"},{"line_number":15,"context_line":"        \u003cdt\u003eContent Type\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"3afc51ec_b8dbf4ec","line":12,"in_reply_to":"5aef4532_00f28806","updated":"2016-03-11 18:56:42.000000000","message":"I think I was keyboard mashing and misinterpreting my own extra characters as a filepath. Derp.","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"67324169d63234e49bbd8f0b8b51bfca8aefc83d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"},{"line_number":10,"context_line":"      \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":11,"context_line":"        \u003cdt\u003eName\u003c/dt\u003e"},{"line_number":12,"context_line":"        \u003cdd\u003e{$ctrl.context.name$}\u003c/dd\u003e"},{"line_number":13,"context_line":"        \u003cdt\u003eHash\u003c/dt\u003e"},{"line_number":14,"context_line":"        \u003cdd\u003e{$ctrl.context.hash$}\u003c/dd\u003e"},{"line_number":15,"context_line":"        \u003cdt\u003eContent Type\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_00f28806","line":12,"in_reply_to":"5aef4532_430f8336","updated":"2016-03-11 05:46:22.000000000","message":"Nah, it\u0027s just the name, not the full path. That\u0027s in .path","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"186a38e6630f07029bd4d954f3157fed46709606","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        \u003cdt\u003eLast Modified\u003c/dt\u003e"},{"line_number":20,"context_line":"        \u003cdd\u003e{$ctrl.context.last_modified$}\u003c/dd\u003e"},{"line_number":21,"context_line":"        \u003cdt\u003eSize\u003c/dt\u003e"},{"line_number":22,"context_line":"        \u003cdd\u003e{$ctrl.context.bytes$}\u003c/dd\u003e"},{"line_number":23,"context_line":"      \u003c/dl\u003e"},{"line_number":24,"context_line":"    \u003c/div\u003e"},{"line_number":25,"context_line":"  \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_f6076f15","line":22,"range":{"start_line":22,"start_character":12,"end_line":22,"end_character":34},"updated":"2016-03-11 00:07:58.000000000","message":"You\u0027ll need to pass this through the bytes filter, or at least represent the units in some way.","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"67324169d63234e49bbd8f0b8b51bfca8aefc83d","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        \u003cdt\u003eLast Modified\u003c/dt\u003e"},{"line_number":20,"context_line":"        \u003cdd\u003e{$ctrl.context.last_modified$}\u003c/dd\u003e"},{"line_number":21,"context_line":"        \u003cdt\u003eSize\u003c/dt\u003e"},{"line_number":22,"context_line":"        \u003cdd\u003e{$ctrl.context.bytes$}\u003c/dd\u003e"},{"line_number":23,"context_line":"      \u003c/dl\u003e"},{"line_number":24,"context_line":"    \u003c/div\u003e"},{"line_number":25,"context_line":"  \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_e0f67cf8","line":22,"in_reply_to":"5aef4532_f6076f15","updated":"2016-03-11 05:46:22.000000000","message":"Done","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    \u003ca href\u003d\"\" class\u003d\"close\" ng-click\u003d\"$dismiss()\"\u003e"},{"line_number":4,"context_line":"      \u003cspan class\u003d\"fa fa-times\"\u003e\u003c/span\u003e"},{"line_number":5,"context_line":"    \u003c/a\u003e"},{"line_number":6,"context_line":"    \u003cdiv class\u003d\"h3 modal-title\"\u003eObject Details\u003c/div\u003e"},{"line_number":7,"context_line":"  \u003c/div\u003e"},{"line_number":8,"context_line":"  \u003cdiv class\u003d\"modal-body\"\u003e"},{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_7e2a9b2d","line":6,"updated":"2016-03-14 20:57:11.000000000","message":"missing translate attribute in this html","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    \u003ca href\u003d\"\" class\u003d\"close\" ng-click\u003d\"$dismiss()\"\u003e"},{"line_number":4,"context_line":"      \u003cspan class\u003d\"fa fa-times\"\u003e\u003c/span\u003e"},{"line_number":5,"context_line":"    \u003c/a\u003e"},{"line_number":6,"context_line":"    \u003cdiv class\u003d\"h3 modal-title\"\u003eObject Details\u003c/div\u003e"},{"line_number":7,"context_line":"  \u003c/div\u003e"},{"line_number":8,"context_line":"  \u003cdiv class\u003d\"modal-body\"\u003e"},{"line_number":9,"context_line":"    \u003cdiv class\u003d\"info detail\"\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_5196adf0","line":6,"in_reply_to":"3afc51ec_7e2a9b2d","updated":"2016-03-15 02:16:17.000000000","message":"Done","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"0b2972ffdcbadd9bda46bd2e25153710ae2217e9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"        \u003cdt\u003eContent Type\u003c/dt\u003e"},{"line_number":16,"context_line":"        \u003cdd\u003e{$ctrl.context.content_type$}\u003c/dd\u003e"},{"line_number":17,"context_line":"        \u003cdt\u003eTimestamp\u003c/dt\u003e"},{"line_number":18,"context_line":"        \u003cdd\u003e{$ctrl.context.timestamp$}\u003c/dd\u003e"},{"line_number":19,"context_line":"        \u003cdt\u003eLast Modified\u003c/dt\u003e"},{"line_number":20,"context_line":"        \u003cdd\u003e{$ctrl.context.last_modified$}\u003c/dd\u003e"},{"line_number":21,"context_line":"        \u003cdt\u003eSize\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_125c6e4a","line":18,"updated":"2016-03-12 18:08:58.000000000","message":"Shouldn\u0027t this base through the date filter? perhaps medium format?\n\n | date\n | date:\u0027medium\u0027","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"        \u003cdt\u003eContent Type\u003c/dt\u003e"},{"line_number":16,"context_line":"        \u003cdd\u003e{$ctrl.context.content_type$}\u003c/dd\u003e"},{"line_number":17,"context_line":"        \u003cdt\u003eTimestamp\u003c/dt\u003e"},{"line_number":18,"context_line":"        \u003cdd\u003e{$ctrl.context.timestamp$}\u003c/dd\u003e"},{"line_number":19,"context_line":"        \u003cdt\u003eLast Modified\u003c/dt\u003e"},{"line_number":20,"context_line":"        \u003cdd\u003e{$ctrl.context.last_modified$}\u003c/dd\u003e"},{"line_number":21,"context_line":"        \u003cdt\u003eSize\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_27cbe31f","line":18,"in_reply_to":"3afc51ec_125c6e4a","updated":"2016-03-15 02:16:17.000000000","message":"Done","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"0b2972ffdcbadd9bda46bd2e25153710ae2217e9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        \u003cdt\u003eTimestamp\u003c/dt\u003e"},{"line_number":18,"context_line":"        \u003cdd\u003e{$ctrl.context.timestamp$}\u003c/dd\u003e"},{"line_number":19,"context_line":"        \u003cdt\u003eLast Modified\u003c/dt\u003e"},{"line_number":20,"context_line":"        \u003cdd\u003e{$ctrl.context.last_modified$}\u003c/dd\u003e"},{"line_number":21,"context_line":"        \u003cdt\u003eSize\u003c/dt\u003e"},{"line_number":22,"context_line":"        \u003cdd\u003e{$ctrl.context.bytes | bytes$}\u003c/dd\u003e"},{"line_number":23,"context_line":"      \u003c/dl\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_7259725a","line":20,"updated":"2016-03-12 18:08:58.000000000","message":"date filter here too.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        \u003cdt\u003eTimestamp\u003c/dt\u003e"},{"line_number":18,"context_line":"        \u003cdd\u003e{$ctrl.context.timestamp$}\u003c/dd\u003e"},{"line_number":19,"context_line":"        \u003cdt\u003eLast Modified\u003c/dt\u003e"},{"line_number":20,"context_line":"        \u003cdd\u003e{$ctrl.context.last_modified$}\u003c/dd\u003e"},{"line_number":21,"context_line":"        \u003cdt\u003eSize\u003c/dt\u003e"},{"line_number":22,"context_line":"        \u003cdd\u003e{$ctrl.context.bytes | bytes$}\u003c/dd\u003e"},{"line_number":23,"context_line":"      \u003c/dl\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_87d2b7d0","line":20,"in_reply_to":"3afc51ec_7259725a","updated":"2016-03-15 02:16:17.000000000","message":"Actually, this item was bogus, I\u0027ve removed it.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  \u003c/div\u003e"},{"line_number":26,"context_line":"  \u003cdiv class\u003d\"modal-footer\"\u003e"},{"line_number":27,"context_line":"    \u003ca href\u003d\"\" ng-click\u003d\"$dismiss()\""},{"line_number":28,"context_line":"       class\u003d\"btn btn-default secondary cancel close\"\u003eClose\u003c/a\u003e"},{"line_number":29,"context_line":"  \u003c/div\u003e"},{"line_number":30,"context_line":"\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_33afac82","line":28,"updated":"2016-03-14 20:57:11.000000000","message":"translate attr","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  \u003c/div\u003e"},{"line_number":26,"context_line":"  \u003cdiv class\u003d\"modal-footer\"\u003e"},{"line_number":27,"context_line":"    \u003ca href\u003d\"\" ng-click\u003d\"$dismiss()\""},{"line_number":28,"context_line":"       class\u003d\"btn btn-default secondary cancel close\"\u003eClose\u003c/a\u003e"},{"line_number":29,"context_line":"  \u003c/div\u003e"},{"line_number":30,"context_line":"\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_67d5ebb7","line":28,"in_reply_to":"3afc51ec_33afac82","updated":"2016-03-15 02:16:17.000000000","message":"Done","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects-row-actions.service.js":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"0b2972ffdcbadd9bda46bd2e25153710ae2217e9","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  function deleteService(model, $qExtensions, simpleModalService, toastService) {"},{"line_number":126,"context_line":"    var service \u003d {"},{"line_number":127,"context_line":"      allowed: function allowed() {"},{"line_number":128,"context_line":"        return $qExtensions.booleanAsPromise(true);"},{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"      perform: function perform(file) {"},{"line_number":131,"context_line":"        var options \u003d {"}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_52043616","line":128,"updated":"2016-03-12 18:08:58.000000000","message":"did you consider putting a check here to see if the \"folder\" is empty? The toast pop up after clicking does give more info, but it is typical for the rest of horizon (for better or worse) to not show delete if not allowed.\n\nThere is one other concept that is interesting (not sure how to get into actions).  On LI, we disable the select button for flavors if you can\u0027t select the flavor and then a popover gives more info.\n\nhttp://pasteboard.co/2dq5SI2A.png","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  function deleteService(model, $qExtensions, simpleModalService, toastService) {"},{"line_number":126,"context_line":"    var service \u003d {"},{"line_number":127,"context_line":"      allowed: function allowed() {"},{"line_number":128,"context_line":"        return $qExtensions.booleanAsPromise(true);"},{"line_number":129,"context_line":"      },"},{"line_number":130,"context_line":"      perform: function perform(file) {"},{"line_number":131,"context_line":"        var options \u003d {"}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_a7d7f3bd","line":128,"in_reply_to":"3afc51ec_52043616","updated":"2016-03-15 02:16:17.000000000","message":"In theory, yes, but we have to fetch the folder contents to find out if there are any, which is a separate API call for each folder listed. My intention is to implement recursive delete so the delete just works as users intend, but that\u0027s follow-on work.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"          title: gettext(\u0027Confirm Delete\u0027),"},{"line_number":133,"context_line":"          body: interpolate("},{"line_number":134,"context_line":"            gettext(\u0027Are you sure you want to delete %(name)s?\u0027), {name: file.name}, true"},{"line_number":135,"context_line":"          ),"},{"line_number":136,"context_line":"          submit: gettext(\u0027Yes\u0027),"},{"line_number":137,"context_line":"          cancel: gettext(\u0027No\u0027)"},{"line_number":138,"context_line":"        };"}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_defacfbc","line":135,"updated":"2016-03-14 20:57:11.000000000","message":"batch delete Confirm Dialog showed \"Are you sure you want to delete undefined files?\" when I tried to delete 2 files","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"          title: gettext(\u0027Confirm Delete\u0027),"},{"line_number":133,"context_line":"          body: interpolate("},{"line_number":134,"context_line":"            gettext(\u0027Are you sure you want to delete %(name)s?\u0027), {name: file.name}, true"},{"line_number":135,"context_line":"          ),"},{"line_number":136,"context_line":"          submit: gettext(\u0027Yes\u0027),"},{"line_number":137,"context_line":"          cancel: gettext(\u0027No\u0027)"},{"line_number":138,"context_line":"        };"}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_c7031f41","line":135,"in_reply_to":"3afc51ec_defacfbc","updated":"2016-03-15 02:16:17.000000000","message":"This has been addressed in a fix in the previous patch, thanks.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects.controller.js":[{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        ctrl.model.containerName,"},{"line_number":201,"context_line":"        ctrl.model.fullPath(name))"},{"line_number":202,"context_line":"      .then("},{"line_number":203,"context_line":"        function () {"},{"line_number":204,"context_line":"          toastService.add("},{"line_number":205,"context_line":"            \u0027success\u0027,"},{"line_number":206,"context_line":"            interpolate("}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_d322c800","line":203,"updated":"2016-03-14 20:57:11.000000000","message":"named","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        ctrl.model.containerName,"},{"line_number":201,"context_line":"        ctrl.model.fullPath(name))"},{"line_number":202,"context_line":"      .then("},{"line_number":203,"context_line":"        function () {"},{"line_number":204,"context_line":"          toastService.add("},{"line_number":205,"context_line":"            \u0027success\u0027,"},{"line_number":206,"context_line":"            interpolate("}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_87a0f744","line":203,"in_reply_to":"3afc51ec_d322c800","updated":"2016-03-15 02:16:17.000000000","message":"Done","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"a3dc6b7f347cef7817f786f6ff9a0e6e8221661f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            gettext(\u0027File %(name)s uploaded.\u0027),"},{"line_number":237,"context_line":"            {name: info.name}, true"},{"line_number":238,"context_line":"          ));"},{"line_number":239,"context_line":"        ctrl.model.updateContainer();"},{"line_number":240,"context_line":"        // TODO optimize me"},{"line_number":241,"context_line":"        ctrl.model.selectContainer("},{"line_number":242,"context_line":"          ctrl.model.containerName,"}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_e4cd835e","line":239,"updated":"2016-03-14 19:05:14.000000000","message":"It seems that objects count and size is still not updated on new uploads after the first upload, see http://imgur.com/a/Pbqsj from bottom to top:\n\n * container empty\n * first upload\n * second upload","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            gettext(\u0027File %(name)s uploaded.\u0027),"},{"line_number":237,"context_line":"            {name: info.name}, true"},{"line_number":238,"context_line":"          ));"},{"line_number":239,"context_line":"        ctrl.model.updateContainer();"},{"line_number":240,"context_line":"        // TODO optimize me"},{"line_number":241,"context_line":"        ctrl.model.selectContainer("},{"line_number":242,"context_line":"          ctrl.model.containerName,"}],"source_content_type":"text/javascript","patch_set":43,"id":"3afc51ec_27c003e0","line":239,"in_reply_to":"3afc51ec_e4cd835e","updated":"2016-03-15 02:16:17.000000000","message":"Fixed, thanks.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects.html":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"186a38e6630f07029bd4d954f3157fed46709606","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            \u003cspan class\u003d\"fa fa-plus\"\u003e\u003c/span\u003e"},{"line_number":44,"context_line":"            \u003ctranslate\u003eFolder\u003c/translate\u003e"},{"line_number":45,"context_line":"          \u003c/a\u003e"},{"line_number":46,"context_line":"          \u003ca href\u003d\"\" ng-click\u003d\"oc.uploadObject()\" title\u003d\"Upload File\" class\u003d\"btn btn-default\"\u003e"},{"line_number":47,"context_line":"            \u003cspan class\u003d\"fa fa-upload\"\u003e\u003c/span\u003e"},{"line_number":48,"context_line":"          \u003c/a\u003e"},{"line_number":49,"context_line":"          \u003cbutton ng-disabled\u003d\"oc.numSelected \u003d\u003d\u003d 0\" class\u003d\"btn btn-default btn-danger\""},{"line_number":50,"context_line":"              ng-click\u003d\"oc.deleteSelected(selected)\" type\u003d\"button\"\u003e"},{"line_number":51,"context_line":"            \u003cspan class\u003d\"fa fa-trash\"\u003e\u003c/span\u003e"},{"line_number":52,"context_line":"          \u003c/button\u003e"},{"line_number":53,"context_line":"        \u003c/div\u003e"},{"line_number":54,"context_line":"      \u003c/th\u003e"},{"line_number":55,"context_line":"    \u003c/tr\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_e3a04f44","line":52,"range":{"start_line":46,"start_character":10,"end_line":52,"end_character":19},"updated":"2016-03-11 00:07:58.000000000","message":"I have to say, I\u0027m very against the use of icons except when necessary as a space saving tool. There\u0027s just no need for us to have a single upload icon without the word \"Upload\".","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"67324169d63234e49bbd8f0b8b51bfca8aefc83d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"          \u003cbutton ng-disabled\u003d\"oc.numSelected \u003d\u003d\u003d 0\" class\u003d\"btn btn-default btn-danger\""},{"line_number":50,"context_line":"              ng-click\u003d\"oc.deleteSelected(selected)\" type\u003d\"button\"\u003e"},{"line_number":51,"context_line":"            \u003cspan class\u003d\"fa fa-trash\"\u003e\u003c/span\u003e"},{"line_number":52,"context_line":"          \u003c/button\u003e"},{"line_number":53,"context_line":"        \u003c/div\u003e"},{"line_number":54,"context_line":"      \u003c/th\u003e"},{"line_number":55,"context_line":"    \u003c/tr\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_00c9e8ac","line":52,"in_reply_to":"5aef4532_e3a04f44","updated":"2016-03-11 05:46:22.000000000","message":"This is the direction that UX are heading in and agree with them - with all of the buttons having words the space does become very tight, and the buttons wrap on narrower screens.","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"186a38e6630f07029bd4d954f3157fed46709606","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      \u003c/td\u003e"},{"line_number":66,"context_line":"      \u003ctd class\u003d\"text-right\"\u003e"},{"line_number":67,"context_line":"        \u003cspan ng-if\u003d\"file.is_object\"\u003e{$file.bytes | bytes$}\u003c/span\u003e"},{"line_number":68,"context_line":"        \u003cspan ng-if\u003d\"file.is_subdir\"\u003e\u003ctranslate\u003efolder\u003c/translate\u003e\u003c/span\u003e"},{"line_number":69,"context_line":"      \u003c/td\u003e"},{"line_number":70,"context_line":"      \u003ctd class\u003d\"actions_column\"\u003e"},{"line_number":71,"context_line":"        \u003cactions allowed\u003d\"oc.rowActions.actions\" type\u003d\"row\" item\u003d\"file\"\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_c37b93f3","line":68,"range":{"start_line":68,"start_character":48,"end_line":68,"end_character":54},"updated":"2016-03-11 00:07:58.000000000","message":"Nit: Shouldn\u0027t this be capitalised?","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"67324169d63234e49bbd8f0b8b51bfca8aefc83d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      \u003c/td\u003e"},{"line_number":66,"context_line":"      \u003ctd class\u003d\"text-right\"\u003e"},{"line_number":67,"context_line":"        \u003cspan ng-if\u003d\"file.is_object\"\u003e{$file.bytes | bytes$}\u003c/span\u003e"},{"line_number":68,"context_line":"        \u003cspan ng-if\u003d\"file.is_subdir\"\u003e\u003ctranslate\u003efolder\u003c/translate\u003e\u003c/span\u003e"},{"line_number":69,"context_line":"      \u003c/td\u003e"},{"line_number":70,"context_line":"      \u003ctd class\u003d\"actions_column\"\u003e"},{"line_number":71,"context_line":"        \u003cactions allowed\u003d\"oc.rowActions.actions\" type\u003d\"row\" item\u003d\"file\"\u003e"}],"source_content_type":"text/html","patch_set":41,"id":"5aef4532_a03ab496","line":68,"in_reply_to":"5aef4532_c37b93f3","updated":"2016-03-11 05:46:22.000000000","message":"Yeah, probably. I\u0027ve done it anyway (and moved the translate onto the span)","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"             ng-disabled\u003d\"oc.numSelected \u003d\u003d 0\"\u003e"},{"line_number":39,"context_line":"            \u003ctranslate\u003eClear Selection\u003c/translate\u003e"},{"line_number":40,"context_line":"            \u003cspan ng-if\u003d\"oc.numSelected \u003e 0\" class\u003d\"badge\"\u003e{$ oc.numSelected $}\u003c/span\u003e"},{"line_number":41,"context_line":"          \u003c/a\u003e"},{"line_number":42,"context_line":"          \u003ca href\u003d\"\" ng-click\u003d\"oc.createFolder()\" title\u003d\"Create Folder\" class\u003d\"btn btn-default\"\u003e"},{"line_number":43,"context_line":"            \u003cspan class\u003d\"fa fa-plus\"\u003e\u003c/span\u003e"},{"line_number":44,"context_line":"            \u003ctranslate\u003eFolder\u003c/translate\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_f38a64be","line":41,"updated":"2016-03-14 20:57:11.000000000","message":"future enhancement: instead of having two buttons Select All/ Clear Selection, why not just toggle one button Select All/ Unselect All?","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"             ng-disabled\u003d\"oc.numSelected \u003d\u003d 0\"\u003e"},{"line_number":39,"context_line":"            \u003ctranslate\u003eClear Selection\u003c/translate\u003e"},{"line_number":40,"context_line":"            \u003cspan ng-if\u003d\"oc.numSelected \u003e 0\" class\u003d\"badge\"\u003e{$ oc.numSelected $}\u003c/span\u003e"},{"line_number":41,"context_line":"          \u003c/a\u003e"},{"line_number":42,"context_line":"          \u003ca href\u003d\"\" ng-click\u003d\"oc.createFolder()\" title\u003d\"Create Folder\" class\u003d\"btn btn-default\"\u003e"},{"line_number":43,"context_line":"            \u003cspan class\u003d\"fa fa-plus\"\u003e\u003c/span\u003e"},{"line_number":44,"context_line":"            \u003ctranslate\u003eFolder\u003c/translate\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_27676326","line":41,"in_reply_to":"3afc51ec_f38a64be","updated":"2016-03-15 02:16:17.000000000","message":"Mostly because we\u0027d have to figure which one to use for partial selection, and users would be grumpy 50% of the time :-)\n\nOn the other hand, maybe that\u0027s not that big a deal...","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            \u003cspan class\u003d\"fa fa-plus\"\u003e\u003c/span\u003e"},{"line_number":44,"context_line":"            \u003ctranslate\u003eFolder\u003c/translate\u003e"},{"line_number":45,"context_line":"          \u003c/a\u003e"},{"line_number":46,"context_line":"          \u003ca href\u003d\"\" ng-click\u003d\"oc.uploadObject()\" title\u003d\"Upload File\" class\u003d\"btn btn-default\"\u003e"},{"line_number":47,"context_line":"            \u003cspan class\u003d\"fa fa-upload\"\u003e\u003c/span\u003e"},{"line_number":48,"context_line":"          \u003c/a\u003e"},{"line_number":49,"context_line":"          \u003cbutton ng-disabled\u003d\"oc.numSelected \u003d\u003d\u003d 0\" class\u003d\"btn btn-default btn-danger\""}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_f3b1c490","line":46,"updated":"2016-03-14 20:57:11.000000000","message":"titles should be translatable","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            \u003cspan class\u003d\"fa fa-plus\"\u003e\u003c/span\u003e"},{"line_number":44,"context_line":"            \u003ctranslate\u003eFolder\u003c/translate\u003e"},{"line_number":45,"context_line":"          \u003c/a\u003e"},{"line_number":46,"context_line":"          \u003ca href\u003d\"\" ng-click\u003d\"oc.uploadObject()\" title\u003d\"Upload File\" class\u003d\"btn btn-default\"\u003e"},{"line_number":47,"context_line":"            \u003cspan class\u003d\"fa fa-upload\"\u003e\u003c/span\u003e"},{"line_number":48,"context_line":"          \u003c/a\u003e"},{"line_number":49,"context_line":"          \u003cbutton ng-disabled\u003d\"oc.numSelected \u003d\u003d\u003d 0\" class\u003d\"btn btn-default btn-danger\""}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_2735a3f6","line":46,"in_reply_to":"3afc51ec_f3b1c490","updated":"2016-03-15 02:16:17.000000000","message":"Done","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"0b2972ffdcbadd9bda46bd2e25153710ae2217e9","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        ng-click\u003d\"oc.toggleSelect(file)\"\u003e"},{"line_number":62,"context_line":"      \u003ctd\u003e"},{"line_number":63,"context_line":"        \u003ca ng-if\u003d\"file.is_subdir\" ng-href\u003d\"{$ oc.objectURL(file) $}\"\u003e{$ file.name $}\u003c/a\u003e"},{"line_number":64,"context_line":"        \u003cspan ng-if\u003d\"file.is_object\"\u003e{$ file.name $}\u003c/span\u003e"},{"line_number":65,"context_line":"      \u003c/td\u003e"},{"line_number":66,"context_line":"      \u003ctd class\u003d\"text-right\"\u003e"},{"line_number":67,"context_line":"        \u003cspan ng-if\u003d\"file.is_object\"\u003e{$file.bytes | bytes$}\u003c/span\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_d217a64f","line":64,"updated":"2016-03-12 18:08:58.000000000","message":"did you consider making the file name clickable to get object details?  I can see why not since links right now are for folders and there\u0027s no other way to indicate folder or not.  anyway, just a question.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        ng-click\u003d\"oc.toggleSelect(file)\"\u003e"},{"line_number":62,"context_line":"      \u003ctd\u003e"},{"line_number":63,"context_line":"        \u003ca ng-if\u003d\"file.is_subdir\" ng-href\u003d\"{$ oc.objectURL(file) $}\"\u003e{$ file.name $}\u003c/a\u003e"},{"line_number":64,"context_line":"        \u003cspan ng-if\u003d\"file.is_object\"\u003e{$ file.name $}\u003c/span\u003e"},{"line_number":65,"context_line":"      \u003c/td\u003e"},{"line_number":66,"context_line":"      \u003ctd class\u003d\"text-right\"\u003e"},{"line_number":67,"context_line":"        \u003cspan ng-if\u003d\"file.is_object\"\u003e{$file.bytes | bytes$}\u003c/span\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_c70ddf3f","line":64,"in_reply_to":"3afc51ec_d217a64f","updated":"2016-03-15 02:16:17.000000000","message":"Yeah, I thought it was confusing when I did it. A hyperlink should be for file download, I think. But I didn\u0027t want people accidentally downloading potentially massive files when selecting rows, so... bye-bye file link.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"openstack_dashboard/dashboards/project/static/dashboard/project/containers/upload-object-modal.html":[{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"133ba343581a53e421f7508e8690d47379ab5e6f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"      \u003cdiv class\u003d\"form-group required\"\u003e"},{"line_number":22,"context_line":"        \u003clabel class\u003d\"control-label required\" for\u003d\"id_name\" translate\u003eFile Name\u003c/label\u003e"},{"line_number":23,"context_line":"        \u003cspan class\u003d\"help-icon\" data-toggle\u003d\"tooltip\" data-placement\u003d\"top\""},{"line_number":24,"context_line":"              title\u003d\"Slashes are allowed, and are treated as pseudo-folders by the Object Store.\"\u003e"},{"line_number":25,"context_line":"          \u003cspan class\u003d\"fa fa-question-circle\"\u003e\u003c/span\u003e"},{"line_number":26,"context_line":"        \u003c/span\u003e"},{"line_number":27,"context_line":"        \u003cdiv\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_534eb896","line":24,"updated":"2016-03-14 20:57:11.000000000","message":"translate","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"d26d0e2a21b1241f7fcf5b8091955855894ba58b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"      \u003cdiv class\u003d\"form-group required\"\u003e"},{"line_number":22,"context_line":"        \u003clabel class\u003d\"control-label required\" for\u003d\"id_name\" translate\u003eFile Name\u003c/label\u003e"},{"line_number":23,"context_line":"        \u003cspan class\u003d\"help-icon\" data-toggle\u003d\"tooltip\" data-placement\u003d\"top\""},{"line_number":24,"context_line":"              title\u003d\"Slashes are allowed, and are treated as pseudo-folders by the Object Store.\"\u003e"},{"line_number":25,"context_line":"          \u003cspan class\u003d\"fa fa-question-circle\"\u003e\u003c/span\u003e"},{"line_number":26,"context_line":"        \u003c/span\u003e"},{"line_number":27,"context_line":"        \u003cdiv\u003e"}],"source_content_type":"text/html","patch_set":43,"id":"3afc51ec_8ae8feb5","line":24,"in_reply_to":"3afc51ec_534eb896","updated":"2016-03-15 02:16:17.000000000","message":"I actually moved this off to the side to allow more information to be given, including embedding the actual DELIMETER which may not be slash in some universes.","commit_id":"9eefa1a682dd6b7edcaaca7c85404d0288e6f19a"}],"releasenotes/notes/bg-angularize-swift-9a1b44aa3646bc8c.yaml":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"186a38e6630f07029bd4d954f3157fed46709606","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Move OpenStack Dashboard Swift panel rendering logic to client-side"},{"line_number":4,"context_line":"    using AngularJS. Set ``DISABLED\u003dFalse`` in"},{"line_number":5,"context_line":"    ``enabled/_1921_project_ng_containers_panel.py`` to enable."}],"source_content_type":"text/x-yaml","patch_set":41,"id":"5aef4532_83806b8c","line":5,"updated":"2016-03-11 00:07:58.000000000","message":"This rewrite is significant enough that you could add some boasting in the prelude section, IMO.","commit_id":"f4378cfd4367778fc559d8208d76a8672ee099a2"}]}
