)]}'
{"horizon/static/horizon/js/horizon.loadbalancers.js":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1aa67a0f70a08d62f4e7a8ddda23441f8549f49e","unresolved":false,"context_lines":[{"line_number":6,"context_line":"            volume_opt \u003d $this.val(),"},{"line_number":7,"context_line":"            $extra_fields \u003d $(\"#id_http_method, #id_url_path, #id_expected_codes\");"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"        $this.find(\"option\").each(function () {"},{"line_number":10,"context_line":"            if (this.value !\u003d volume_opt) {"},{"line_number":11,"context_line":"                $(\"#id_\" + this.value).closest(\".control-group\").hide();"},{"line_number":12,"context_line":"            } else {"}],"source_content_type":"text/javascript","patch_set":1,"id":"AAAAN3%2F%2F4uQ%3D","line":9,"updated":"2013-03-07 16:43:25.000000000","message":"I have not understood why this find.each is needed.\nField toggling based on the protocol type is done at L.17-21.\n\nI am not so familiar with JS, so I am afraid I missed something.","commit_id":"13c2fe32d740ebcc5018bfe5e9895108389db3a7"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"595cdbef3fdf1483d4eecbabd1edde0ce897c462","unresolved":false,"context_lines":[{"line_number":6,"context_line":"            volume_opt \u003d $this.val(),"},{"line_number":7,"context_line":"            $extra_fields \u003d $(\"#id_http_method, #id_url_path, #id_expected_codes\");"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"        $this.find(\"option\").each(function () {"},{"line_number":10,"context_line":"            if (this.value !\u003d volume_opt) {"},{"line_number":11,"context_line":"                $(\"#id_\" + this.value).closest(\".control-group\").hide();"},{"line_number":12,"context_line":"            } else {"}],"source_content_type":"text/javascript","patch_set":1,"id":"AAAAN3%2F%2F3aU%3D","line":9,"in_reply_to":"AAAAN3%2F%2F4uQ%3D","updated":"2013-03-08 09:18:51.000000000","message":"Agree. That block is not needed, will remove it","commit_id":"13c2fe32d740ebcc5018bfe5e9895108389db3a7"}],"openstack_dashboard/dashboards/project/loadbalancers/workflows.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"b409531032ec1ecf32e696feef84f998936dc7dc","unresolved":false,"context_lines":[{"line_number":420,"context_line":"            if not expected_codes or not verify_expected_codes(expected_codes):"},{"line_number":421,"context_line":"                raise forms.ValidationError(_("},{"line_number":422,"context_line":"                    \u0027Please specify one expected code (ex. \"200\"), list \u0027"},{"line_number":423,"context_line":"                    \u0027(ex. \"200, 202\"), or range (ex. \"200-204\")\u0027))"},{"line_number":424,"context_line":"        return cleaned_data"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    class Meta:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F15A%3D","line":423,"updated":"2013-03-09 17:11:28.000000000","message":"It would be nice if this information is displayed in the form. Please consider adding the following at L.375 above.\n\nopenstack_dashboard/dashboards/project/networks/workflows.py (e.g. L.39, L.78)  is a good example.\n\n(though it is not a part of this patch) I think we need to add help_text for each form field throughout LBaaS related forms.","commit_id":"73ae6ec9f53814f7531b4d5d8fc88d63d6d594f7"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"950d9bc2e4e9a7561de0aa43c79009a7b5c165fd","unresolved":false,"context_lines":[{"line_number":420,"context_line":"            if not expected_codes or not verify_expected_codes(expected_codes):"},{"line_number":421,"context_line":"                raise forms.ValidationError(_("},{"line_number":422,"context_line":"                    \u0027Please specify one expected code (ex. \"200\"), list \u0027"},{"line_number":423,"context_line":"                    \u0027(ex. \"200, 202\"), or range (ex. \"200-204\")\u0027))"},{"line_number":424,"context_line":"        return cleaned_data"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    class Meta:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F068%3D","line":423,"in_reply_to":"AAAAN3%2F%2F15A%3D","updated":"2013-03-11 09:32:02.000000000","message":"Done for Expected Codes field. For all others bug 1153513 is filed.","commit_id":"73ae6ec9f53814f7531b4d5d8fc88d63d6d594f7"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"61b0a94b664b2374b1f4a93028fad8c14635395a","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        initial\u003d\"GET\", required\u003dFalse, label\u003d_(\"HTTP Method\"))"},{"line_number":372,"context_line":"    url_path \u003d forms.CharField("},{"line_number":373,"context_line":"        initial\u003d\"/\", required\u003dFalse, max_length\u003d80, label\u003d_(\"URL\"))"},{"line_number":374,"context_line":"    expected_codes \u003d forms.CharField("},{"line_number":375,"context_line":"        initial\u003d\"200\", required\u003dFalse, max_length\u003d80,"},{"line_number":376,"context_line":"        label\u003d_(\"Expected HTTP Status Codes\"),"},{"line_number":377,"context_line":"        help_text\u003d_(\"Expected code may be a single value (e.g. 200), \""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F0kk%3D","line":374,"updated":"2013-03-11 13:39:19.000000000","message":"It would be better to use RegexField instead of CharField","commit_id":"23c7a7273a11eec8d59d1af0d5224692346bb0e2"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"bdc68740693a986ce4e810f319609e29792149ff","unresolved":false,"context_lines":[{"line_number":417,"context_line":"            expected_codes \u003d cleaned_data.get(\u0027expected_codes\u0027)"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"            if not http_method_opt:"},{"line_number":420,"context_line":"                raise forms.ValidationError(_(\u0027Please choose a HTTP method\u0027))"},{"line_number":421,"context_line":"            if not url_path:"},{"line_number":422,"context_line":"                raise forms.ValidationError(_(\u0027Please specify an URL\u0027))"},{"line_number":423,"context_line":"            if not expected_codes:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FzPc%3D","line":420,"updated":"2013-03-12 03:26:55.000000000","message":"Instead of raising an error right away, would it be better if you attach the error to each fields. \n\nThis provides two advantage:\n1. The error message is next to the field.\n2. You can validate all the three fields all at the same time, rather than stopping the validation if the first field failed the validation.\n\nYou can use something like:\nmsg \u003d_(\u0027Please choose a HTTP method\u0027)\nself._errors[\"http_method\"] \u003d self.error_class([msg])","commit_id":"48f25b3a73f38f14c65a23459de5491539a39738"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"69418a90b1a466653a4c8fa110b7c95b5177376a","unresolved":false,"context_lines":[{"line_number":417,"context_line":"            expected_codes \u003d cleaned_data.get(\u0027expected_codes\u0027)"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"            if not http_method_opt:"},{"line_number":420,"context_line":"                raise forms.ValidationError(_(\u0027Please choose a HTTP method\u0027))"},{"line_number":421,"context_line":"            if not url_path:"},{"line_number":422,"context_line":"                raise forms.ValidationError(_(\u0027Please specify an URL\u0027))"},{"line_number":423,"context_line":"            if not expected_codes:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FzFg%3D","line":420,"in_reply_to":"AAAAN3%2F%2FzPc%3D","updated":"2013-03-12 06:58:47.000000000","message":"Thx for a good sample! i\u0027ll update the patch soon","commit_id":"48f25b3a73f38f14c65a23459de5491539a39738"}]}
