)]}'
{"specs/newton/approved/schema_driven_ui.rst":[{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"ae0bfd86c201fc5a1570180c0736c8b1c918e5a4","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  goes into. Form sections can have multiple levels of nesting"},{"line_number":73,"context_line":"  (although in reality one will rarely use more than 2).  In terms of"},{"line_number":74,"context_line":"  UI a top-level form section is actually a form tab. All existing"},{"line_number":75,"context_line":"  sections must be described under #/formSections key of the schema,"},{"line_number":76,"context_line":"  if a section key which is not present there is used for a field,"},{"line_number":77,"context_line":"  this field is treated as no having \u0027formSection\u0027 hint at all and"},{"line_number":78,"context_line":"  goes to the \u0027default\u0027 section. The default section is rendered as"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_bce527dd","line":75,"range":{"start_line":75,"start_character":67,"end_line":75,"end_character":68},"updated":"2016-07-20 13:20:00.000000000","message":"I suggest end the sentence here","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  goes into. Form sections can have multiple levels of nesting"},{"line_number":73,"context_line":"  (although in reality one will rarely use more than 2).  In terms of"},{"line_number":74,"context_line":"  UI a top-level form section is actually a form tab. All existing"},{"line_number":75,"context_line":"  sections must be described under #/formSections key of the schema,"},{"line_number":76,"context_line":"  if a section key which is not present there is used for a field,"},{"line_number":77,"context_line":"  this field is treated as no having \u0027formSection\u0027 hint at all and"},{"line_number":78,"context_line":"  goes to the \u0027default\u0027 section. The default section is rendered as"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_20b36a0b","line":75,"in_reply_to":"dada55a8_bce527dd","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"ae0bfd86c201fc5a1570180c0736c8b1c918e5a4","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  UI a top-level form section is actually a form tab. All existing"},{"line_number":75,"context_line":"  sections must be described under #/formSections key of the schema,"},{"line_number":76,"context_line":"  if a section key which is not present there is used for a field,"},{"line_number":77,"context_line":"  this field is treated as no having \u0027formSection\u0027 hint at all and"},{"line_number":78,"context_line":"  goes to the \u0027default\u0027 section. The default section is rendered as"},{"line_number":79,"context_line":"  the last tab of the form. Section #/formSections/sectionX is"},{"line_number":80,"context_line":"  considered to be a top-level if it has an empty string as a value"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_7c91ef46","line":77,"range":{"start_line":77,"start_character":27,"end_line":77,"end_character":29},"updated":"2016-07-20 13:20:00.000000000","message":"not","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  UI a top-level form section is actually a form tab. All existing"},{"line_number":75,"context_line":"  sections must be described under #/formSections key of the schema,"},{"line_number":76,"context_line":"  if a section key which is not present there is used for a field,"},{"line_number":77,"context_line":"  this field is treated as no having \u0027formSection\u0027 hint at all and"},{"line_number":78,"context_line":"  goes to the \u0027default\u0027 section. The default section is rendered as"},{"line_number":79,"context_line":"  the last tab of the form. Section #/formSections/sectionX is"},{"line_number":80,"context_line":"  considered to be a top-level if it has an empty string as a value"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_00b626f8","line":77,"in_reply_to":"dada55a8_7c91ef46","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"ae0bfd86c201fc5a1570180c0736c8b1c918e5a4","unresolved":false,"context_lines":[{"line_number":111,"context_line":"  if it is needed to `override standard messages`_,"},{"line_number":112,"context_line":"  \u0027validationMessages\u0027 object needs to be provided, where each key is"},{"line_number":113,"context_line":"  the error code and the overridden message is the value."},{"line_number":114,"context_line":"* \u0027condition\u0027 technically it could be derived from the json schema"},{"line_number":115,"context_line":"  standard keyword \u0027dependency\u0027, though if one wants to provide a"},{"line_number":116,"context_line":"  conditional expresion more complex than \u0027if that checkbox is not"},{"line_number":117,"context_line":"  set, do not show that field\u0027, it needs to be specified as a UI"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_dc0bbb28","line":114,"range":{"start_line":114,"start_character":26,"end_line":114,"end_character":28},"updated":"2016-07-20 13:20:00.000000000","message":"looks like it is redundant","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":111,"context_line":"  if it is needed to `override standard messages`_,"},{"line_number":112,"context_line":"  \u0027validationMessages\u0027 object needs to be provided, where each key is"},{"line_number":113,"context_line":"  the error code and the overridden message is the value."},{"line_number":114,"context_line":"* \u0027condition\u0027 technically it could be derived from the json schema"},{"line_number":115,"context_line":"  standard keyword \u0027dependency\u0027, though if one wants to provide a"},{"line_number":116,"context_line":"  conditional expresion more complex than \u0027if that checkbox is not"},{"line_number":117,"context_line":"  set, do not show that field\u0027, it needs to be specified as a UI"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_c0a6cebf","line":114,"in_reply_to":"dada55a8_dc0bbb28","updated":"2016-07-22 00:51:18.000000000","message":"let\u0027s leave it here for the time being...","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"ae0bfd86c201fc5a1570180c0736c8b1c918e5a4","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  the error code and the overridden message is the value."},{"line_number":114,"context_line":"* \u0027condition\u0027 technically it could be derived from the json schema"},{"line_number":115,"context_line":"  standard keyword \u0027dependency\u0027, though if one wants to provide a"},{"line_number":116,"context_line":"  conditional expresion more complex than \u0027if that checkbox is not"},{"line_number":117,"context_line":"  set, do not show that field\u0027, it needs to be specified as a UI"},{"line_number":118,"context_line":"  hint. (TBD: investigate to what extent json-schema facilites can be"},{"line_number":119,"context_line":"  reused for reasoning about fields visibility)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_dc5d7b48","line":116,"range":{"start_line":116,"start_character":14,"end_line":116,"end_character":23},"updated":"2016-07-20 13:20:00.000000000","message":"expression","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  the error code and the overridden message is the value."},{"line_number":114,"context_line":"* \u0027condition\u0027 technically it could be derived from the json schema"},{"line_number":115,"context_line":"  standard keyword \u0027dependency\u0027, though if one wants to provide a"},{"line_number":116,"context_line":"  conditional expresion more complex than \u0027if that checkbox is not"},{"line_number":117,"context_line":"  set, do not show that field\u0027, it needs to be specified as a UI"},{"line_number":118,"context_line":"  hint. (TBD: investigate to what extent json-schema facilites can be"},{"line_number":119,"context_line":"  reused for reasoning about fields visibility)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_80c21651","line":116,"in_reply_to":"dada55a8_dc5d7b48","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"1f37554b1faef55b5f501f8ddce5f4f7cd52cf9b","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* minimum, exclusiveMinimum, maximum and exclusiveMaximum for numeric"},{"line_number":129,"context_line":"  types"},{"line_number":130,"context_line":"* multiplier for numeric types  "},{"line_number":131,"context_line":"* minLength and maxLength for string types"},{"line_number":132,"context_line":"* pattern for string types (a regular expression)"},{"line_number":133,"context_line":"* server-side validation callbacks (?)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_5054d4c8","line":130,"range":{"start_line":130,"start_character":30,"end_line":130,"end_character":32},"updated":"2016-07-20 11:55:49.000000000","message":"trailing whitespace","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* minimum, exclusiveMinimum, maximum and exclusiveMaximum for numeric"},{"line_number":129,"context_line":"  types"},{"line_number":130,"context_line":"* multiplier for numeric types  "},{"line_number":131,"context_line":"* minLength and maxLength for string types"},{"line_number":132,"context_line":"* pattern for string types (a regular expression)"},{"line_number":133,"context_line":"* server-side validation callbacks (?)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_00ad869a","line":130,"in_reply_to":"dada55a8_5054d4c8","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"290602a819b24f4239c1ae5f4aaa6759724f9b8d","unresolved":false,"context_lines":[{"line_number":156,"context_line":"* any text-based input - such as \u003cinput type\u003d\"text\"\u003e or"},{"line_number":157,"context_line":"  \u003ctextarea\u003e. Thus the text-based inputs need to be rendered"},{"line_number":158,"context_line":"  differently based on the schema."},{"line_number":159,"context_line":"  * If the schema doesn\u0027t allow for `null` value, then an empty field"},{"line_number":160,"context_line":"    produces an empty string value."},{"line_number":161,"context_line":"  * If the schema allows for `null` value, but disallows an empty"},{"line_number":162,"context_line":"    string value (by using \u0027minLength\u0027 or \u0027pattern\u0027 keyword), then an"},{"line_number":163,"context_line":"    empty field produces `null` value."},{"line_number":164,"context_line":"  * If the schema allows both `null` and empty string value, then an"},{"line_number":165,"context_line":"    additional button (which is within the same input group with text"},{"line_number":166,"context_line":"    widget) is rendered, when it is clicked, the field itself is"},{"line_number":167,"context_line":"    disabled and produces the `null` value, regardless of what"},{"line_number":168,"context_line":"    previous content the field had. If field is enabled and is empty,"},{"line_number":169,"context_line":"    then it produces an empty string value."},{"line_number":170,"context_line":"* boolean checkbox. If `null` value is allowed for the boolean type,"},{"line_number":171,"context_line":"  its checkbox is rendered as a tri-state checkbox, where the third"},{"line_number":172,"context_line":"  state corresponds to `null` (or \"unknown\") value."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_304a00ad","line":169,"range":{"start_line":159,"start_character":1,"end_line":169,"end_character":43},"updated":"2016-07-20 11:59:30.000000000","message":"sphinx failed on this part of the doc. probably you can use \"-\" or \"+\" instead of \"*\" here.","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    widget) is rendered, when it is clicked, the field itself is"},{"line_number":167,"context_line":"    disabled and produces the `null` value, regardless of what"},{"line_number":168,"context_line":"    previous content the field had. If field is enabled and is empty,"},{"line_number":169,"context_line":"    then it produces an empty string value."},{"line_number":170,"context_line":"* boolean checkbox. If `null` value is allowed for the boolean type,"},{"line_number":171,"context_line":"  its checkbox is rendered as a tri-state checkbox, where the third"},{"line_number":172,"context_line":"  state corresponds to `null` (or \"unknown\") value."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_00846608","line":169,"in_reply_to":"dada55a8_304a00ad","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"290602a819b24f4239c1ae5f4aaa6759724f9b8d","unresolved":false,"context_lines":[{"line_number":210,"context_line":"  output to N items (N is taken from the User Settings)"},{"line_number":211,"context_line":"* The minimum set of attributes UI is expecting to see inside each"},{"line_number":212,"context_line":"  item being returned in an output list is"},{"line_number":213,"context_line":"  * application FQN"},{"line_number":214,"context_line":"  * containing package id (optional)"},{"line_number":215,"context_line":"  * title"},{"line_number":216,"context_line":"  * logo"},{"line_number":217,"context_line":"  * description"},{"line_number":218,"context_line":"  * tags"},{"line_number":219,"context_line":"  * categories"},{"line_number":220,"context_line":"* These items are rendered using tile layout inside a large modal form"},{"line_number":221,"context_line":"  with a multi-faceted search widget (facets \u003d [title, description,"},{"line_number":222,"context_line":"  tag, category])."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_b0eb9077","line":219,"range":{"start_line":213,"start_character":0,"end_line":219,"end_character":14},"updated":"2016-07-20 11:59:30.000000000","message":"see the comment above","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":216,"context_line":"  * logo"},{"line_number":217,"context_line":"  * description"},{"line_number":218,"context_line":"  * tags"},{"line_number":219,"context_line":"  * categories"},{"line_number":220,"context_line":"* These items are rendered using tile layout inside a large modal form"},{"line_number":221,"context_line":"  with a multi-faceted search widget (facets \u003d [title, description,"},{"line_number":222,"context_line":"  tag, category])."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_607f2215","line":219,"in_reply_to":"dada55a8_b0eb9077","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"290602a819b24f4239c1ae5f4aaa6759724f9b8d","unresolved":false,"context_lines":[{"line_number":220,"context_line":"* These items are rendered using tile layout inside a large modal form"},{"line_number":221,"context_line":"  with a multi-faceted search widget (facets \u003d [title, description,"},{"line_number":222,"context_line":"  tag, category])."},{"line_number":223,"context_line":"  * Once the set of given facets and their values is changed, another"},{"line_number":224,"context_line":"    request is being sent to Glare, and tiles are redrawn."},{"line_number":225,"context_line":"  * To save space only title and logo are shown, when clicking on the"},{"line_number":226,"context_line":"    specific tile / App, its tile enlarges and description, tags and"},{"line_number":227,"context_line":"    categories become visible (need to prototype this), and button"},{"line_number":228,"context_line":"    \u0027Add\u0027 in the modal footer becomes enabled. If the tile is clicked"},{"line_number":229,"context_line":"    again, tile is being deselected and button is disabled. Once user"},{"line_number":230,"context_line":"    clicks \u0027Add\u0027 button..."},{"line_number":231,"context_line":"* UI sends a request \u0027GET /schemas/{className}\u0027 to Murano API"},{"line_number":232,"context_line":"  providing `package_id` as a query parameter (if it was returned for"},{"line_number":233,"context_line":"  a specific class)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_50fb3447","line":230,"range":{"start_line":223,"start_character":0,"end_line":230,"end_character":26},"updated":"2016-07-20 11:59:30.000000000","message":"ditto","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    categories become visible (need to prototype this), and button"},{"line_number":228,"context_line":"    \u0027Add\u0027 in the modal footer becomes enabled. If the tile is clicked"},{"line_number":229,"context_line":"    again, tile is being deselected and button is disabled. Once user"},{"line_number":230,"context_line":"    clicks \u0027Add\u0027 button..."},{"line_number":231,"context_line":"* UI sends a request \u0027GET /schemas/{className}\u0027 to Murano API"},{"line_number":232,"context_line":"  providing `package_id` as a query parameter (if it was returned for"},{"line_number":233,"context_line":"  a specific class)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_407ade24","line":230,"in_reply_to":"dada55a8_50fb3447","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"290602a819b24f4239c1ae5f4aaa6759724f9b8d","unresolved":false,"context_lines":[{"line_number":256,"context_line":"  (N is taken from the User Settings)"},{"line_number":257,"context_line":"* The minimum set of attributes UI is expecting to see inside each"},{"line_number":258,"context_line":"  item being returned in an output list is"},{"line_number":259,"context_line":"  * class FQN"},{"line_number":260,"context_line":"  * containing package id (optional)"},{"line_number":261,"context_line":"  * title"},{"line_number":262,"context_line":"  * logo (optional) - default logo for component to be used in case of"},{"line_number":263,"context_line":"    absence"},{"line_number":264,"context_line":"  * description"},{"line_number":265,"context_line":"  * tags (optional) - not needed for the component"},{"line_number":266,"context_line":"  * categories (optional) - not needed for the component"},{"line_number":267,"context_line":"* again, these items are rendered using tile layout, but now there is"},{"line_number":268,"context_line":"  an additional filter facet \u0027type\u0027 (to filter applications from"},{"line_number":269,"context_line":"  components)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_308fa0cd","line":266,"range":{"start_line":259,"start_character":0,"end_line":266,"end_character":56},"updated":"2016-07-20 11:59:30.000000000","message":"ditto","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    absence"},{"line_number":264,"context_line":"  * description"},{"line_number":265,"context_line":"  * tags (optional) - not needed for the component"},{"line_number":266,"context_line":"  * categories (optional) - not needed for the component"},{"line_number":267,"context_line":"* again, these items are rendered using tile layout, but now there is"},{"line_number":268,"context_line":"  an additional filter facet \u0027type\u0027 (to filter applications from"},{"line_number":269,"context_line":"  components)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_a0759a32","line":266,"in_reply_to":"dada55a8_308fa0cd","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"ae0bfd86c201fc5a1570180c0736c8b1c918e5a4","unresolved":false,"context_lines":[{"line_number":267,"context_line":"* again, these items are rendered using tile layout, but now there is"},{"line_number":268,"context_line":"  an additional filter facet \u0027type\u0027 (to filter applications from"},{"line_number":269,"context_line":"  components)."},{"line_number":270,"context_line":"* The rest steps are similar."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_d09c3f5f","line":270,"range":{"start_line":270,"start_character":6,"end_line":270,"end_character":11},"updated":"2016-07-20 13:20:00.000000000","message":"\"rest of the steps\" or \"remaining steps\"","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"6993dd679baff7737fe5756d7a5b58231f1ca7ce","unresolved":false,"context_lines":[{"line_number":267,"context_line":"* again, these items are rendered using tile layout, but now there is"},{"line_number":268,"context_line":"  an additional filter facet \u0027type\u0027 (to filter applications from"},{"line_number":269,"context_line":"  components)."},{"line_number":270,"context_line":"* The rest steps are similar."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_e0915248","line":270,"in_reply_to":"dada55a8_d09c3f5f","updated":"2016-07-22 00:51:18.000000000","message":"Done","commit_id":"eda429f0f461a46f8a9b912e8edee637d0ab1471"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"032a1157985f64e5ebe61700a1380a34b3648228","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"* UI stores all schemas for a given FQN in a localStorage cache"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  .. todo:: How to distinguish schemas for 2 versions of the same"},{"line_number":209,"context_line":"            app?"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"* If at least one modelBuilder method is defined, another modal pops"},{"line_number":212,"context_line":"  up and offers a choice between modelBuilders methods (described as"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3ac371cc_4a01a969","line":209,"range":{"start_line":208,"start_character":0,"end_line":209,"end_character":16},"updated":"2016-08-17 16:38:31.000000000","message":"when do you plan to update this section?","commit_id":"5b2c1659f9efbb6f811358c6052ed95c21764501"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"032a1157985f64e5ebe61700a1380a34b3648228","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  modal which for every component displays its ``displayName`` and"},{"line_number":253,"context_line":"  ``description``."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"  .. todo:: Prototype with mockups which modal should be rendered in"},{"line_number":256,"context_line":"            this case."},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"* UI sends a request \u0027GET /schemas/{fqn}\u0027 to Murano API providing"},{"line_number":259,"context_line":"  ``package`` as a query parameter, the remaining steps are similar to"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3ac371cc_2a7b8df6","line":256,"range":{"start_line":255,"start_character":1,"end_line":256,"end_character":22},"updated":"2016-08-17 16:38:31.000000000","message":"ditto","commit_id":"5b2c1659f9efbb6f811358c6052ed95c21764501"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"032a1157985f64e5ebe61700a1380a34b3648228","unresolved":false,"context_lines":[{"line_number":271,"context_line":"Mapping JSON types to field widgets"},{"line_number":272,"context_line":"-----------------------------------"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d "},{"line_number":275,"context_line":"JSON type JSON format     Field widget"},{"line_number":276,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":277,"context_line":"\u0027string\u0027                  text widget (see `Text/number fields rendering"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3ac371cc_6a58e58a","line":274,"range":{"start_line":274,"start_character":73,"end_line":274,"end_character":74},"updated":"2016-08-17 16:38:31.000000000","message":"trailing whitespace","commit_id":"5b2c1659f9efbb6f811358c6052ed95c21764501"}],"specs/ocata/approved/schema_driven_ui.rst":[{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7dbf2d341d9965f7a6b6b5f25781ac44ced60883","unresolved":false,"context_lines":[{"line_number":92,"context_line":"          applications."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* In turn, muranoclient queries Glare using glareclient, the request"},{"line_number":95,"context_line":"  to Glare takes the form of \u0027GET /artifacts?inherits\u003dapplication\u0027, a"},{"line_number":96,"context_line":"  specific chunk of packages is retrieved by passing additional query"},{"line_number":97,"context_line":"  paramaters ``marker`` and ``limit``."},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a8bc5a2_7803bc0d","line":95,"updated":"2016-09-23 17:45:25.000000000","message":"should be \u0027/artifacts/murano_packages?inherits\u003dapplication\u0027","commit_id":"f453c12b433a1472196196c4b9a19516fbac445d"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"ca85c53370d82ffcd6287e1d717c8054689fce02","unresolved":false,"context_lines":[{"line_number":92,"context_line":"          applications."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* In turn, muranoclient queries Glare using glareclient, the request"},{"line_number":95,"context_line":"  to Glare takes the form of \u0027GET /artifacts?inherits\u003dapplication\u0027, a"},{"line_number":96,"context_line":"  specific chunk of packages is retrieved by passing additional query"},{"line_number":97,"context_line":"  paramaters ``marker`` and ``limit``."},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a8bc5a2_1f960cf0","line":95,"in_reply_to":"5a8bc5a2_7803bc0d","updated":"2016-09-24 11:05:07.000000000","message":"Done","commit_id":"f453c12b433a1472196196c4b9a19516fbac445d"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":191,"context_line":"       ``M`` items, then step 2 repeats."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"  .. note:: Keep in mind that until SearchLight is used, UI will be"},{"line_number":194,"context_line":"            limited to pagination with the only \u0027Next\u0027 button. Once"},{"line_number":195,"context_line":"            SearchLight is supported it will be possible to have a"},{"line_number":196,"context_line":"            list of available pages and navigate to them directly."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_fae7f20f","line":194,"range":{"start_line":194,"start_character":48,"end_line":194,"end_character":54},"updated":"2016-10-05 15:58:24.000000000","message":"what about \u0027Back\u0027 button?","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":191,"context_line":"       ``M`` items, then step 2 repeats."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"  .. note:: Keep in mind that until SearchLight is used, UI will be"},{"line_number":194,"context_line":"            limited to pagination with the only \u0027Next\u0027 button. Once"},{"line_number":195,"context_line":"            SearchLight is supported it will be possible to have a"},{"line_number":196,"context_line":"            list of available pages and navigate to them directly."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_1fbe3ed4","line":194,"in_reply_to":"1a95cdbc_fae7f20f","updated":"2016-10-05 18:29:03.000000000","message":"Not supported by the API.","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":233,"context_line":"* UI stores all schemas for a given ``packageId`` and ``fqn`` in a"},{"line_number":234,"context_line":"  localStorage cache. Since ``packageId`` changes with every package"},{"line_number":235,"context_line":"  version change (or even versionless change), we know for sure that"},{"line_number":236,"context_line":"  our schemas cache will not become stale. In case the application has"},{"line_number":237,"context_line":"  been added to an Environment, then its package was upgraded in the"},{"line_number":238,"context_line":"  catalog and then the same app\u0027s edit is initiated on client-side,"},{"line_number":239,"context_line":"  the application is going to be validated using the previous version"},{"line_number":240,"context_line":"  of schema (still in cache), and this operation should"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_bda56405","line":237,"range":{"start_line":236,"start_character":67,"end_line":237,"end_character":6},"updated":"2016-10-05 15:58:24.000000000","message":"is","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  localStorage cache. Since ``packageId`` changes with every package"},{"line_number":235,"context_line":"  version change (or even versionless change), we know for sure that"},{"line_number":236,"context_line":"  our schemas cache will not become stale. In case the application has"},{"line_number":237,"context_line":"  been added to an Environment, then its package was upgraded in the"},{"line_number":238,"context_line":"  catalog and then the same app\u0027s edit is initiated on client-side,"},{"line_number":239,"context_line":"  the application is going to be validated using the previous version"},{"line_number":240,"context_line":"  of schema (still in cache), and this operation should"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_fd960c93","line":237,"range":{"start_line":237,"start_character":49,"end_line":237,"end_character":52},"updated":"2016-10-05 15:58:24.000000000","message":"is","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  localStorage cache. Since ``packageId`` changes with every package"},{"line_number":235,"context_line":"  version change (or even versionless change), we know for sure that"},{"line_number":236,"context_line":"  our schemas cache will not become stale. In case the application has"},{"line_number":237,"context_line":"  been added to an Environment, then its package was upgraded in the"},{"line_number":238,"context_line":"  catalog and then the same app\u0027s edit is initiated on client-side,"},{"line_number":239,"context_line":"  the application is going to be validated using the previous version"},{"line_number":240,"context_line":"  of schema (still in cache), and this operation should"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_5fafe693","line":237,"in_reply_to":"1a95cdbc_bda56405","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  localStorage cache. Since ``packageId`` changes with every package"},{"line_number":235,"context_line":"  version change (or even versionless change), we know for sure that"},{"line_number":236,"context_line":"  our schemas cache will not become stale. In case the application has"},{"line_number":237,"context_line":"  been added to an Environment, then its package was upgraded in the"},{"line_number":238,"context_line":"  catalog and then the same app\u0027s edit is initiated on client-side,"},{"line_number":239,"context_line":"  the application is going to be validated using the previous version"},{"line_number":240,"context_line":"  of schema (still in cache), and this operation should"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_9f916e55","line":237,"in_reply_to":"1a95cdbc_fd960c93","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  catalog and then the same app\u0027s edit is initiated on client-side,"},{"line_number":239,"context_line":"  the application is going to be validated using the previous version"},{"line_number":240,"context_line":"  of schema (still in cache), and this operation should"},{"line_number":241,"context_line":"  succeed. Contrary to that, if a new version of that application will"},{"line_number":242,"context_line":"  added to the Environment, the newest package version will be used."},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"* If at least one modelBuilder method is defined, another modal pops"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_fddd2c71","line":241,"range":{"start_line":241,"start_character":66,"end_line":241,"end_character":70},"updated":"2016-10-05 15:58:24.000000000","message":"is","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  catalog and then the same app\u0027s edit is initiated on client-side,"},{"line_number":239,"context_line":"  the application is going to be validated using the previous version"},{"line_number":240,"context_line":"  of schema (still in cache), and this operation should"},{"line_number":241,"context_line":"  succeed. Contrary to that, if a new version of that application will"},{"line_number":242,"context_line":"  added to the Environment, the newest package version will be used."},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"* If at least one modelBuilder method is defined, another modal pops"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_1f939e50","line":241,"in_reply_to":"1a95cdbc_fddd2c71","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":304,"context_line":"Mapping JSON types to field widgets"},{"line_number":305,"context_line":"-----------------------------------"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d "},{"line_number":308,"context_line":"JSON type JSON format     Field widget"},{"line_number":309,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":310,"context_line":"\u0027string\u0027                  text widget (see `Text/number fields rendering"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_5091a7ef","line":307,"range":{"start_line":307,"start_character":73,"end_line":307,"end_character":74},"updated":"2016-10-05 15:58:24.000000000","message":"extra space","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":304,"context_line":"Mapping JSON types to field widgets"},{"line_number":305,"context_line":"-----------------------------------"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d "},{"line_number":308,"context_line":"JSON type JSON format     Field widget"},{"line_number":309,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":310,"context_line":"\u0027string\u0027                  text widget (see `Text/number fields rendering"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_bff2aad0","line":307,"range":{"start_line":307,"start_character":73,"end_line":307,"end_character":74},"in_reply_to":"1a95cdbc_5091a7ef","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d "},{"line_number":308,"context_line":"JSON type JSON format     Field widget"},{"line_number":309,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":310,"context_line":"\u0027string\u0027                  text widget (see `Text/number fields rendering"},{"line_number":311,"context_line":"                          and parsing`_ for more details)"},{"line_number":312,"context_line":"\u0027integer\u0027                 number widget, additional validation on integer"},{"line_number":313,"context_line":"\u0027number\u0027                  number widget"},{"line_number":314,"context_line":"\u0027boolean\u0027                 checkbox (see `Other fields rendering and"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_932b3982","line":311,"range":{"start_line":310,"start_character":43,"end_line":311,"end_character":39},"updated":"2016-10-05 15:58:24.000000000","message":"is this supposed to be link?","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d "},{"line_number":308,"context_line":"JSON type JSON format     Field widget"},{"line_number":309,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":310,"context_line":"\u0027string\u0027                  text widget (see `Text/number fields rendering"},{"line_number":311,"context_line":"                          and parsing`_ for more details)"},{"line_number":312,"context_line":"\u0027integer\u0027                 number widget, additional validation on integer"},{"line_number":313,"context_line":"\u0027number\u0027                  number widget"},{"line_number":314,"context_line":"\u0027boolean\u0027                 checkbox (see `Other fields rendering and"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_9f1c0e15","line":311,"range":{"start_line":310,"start_character":43,"end_line":311,"end_character":39},"in_reply_to":"1a95cdbc_932b3982","updated":"2016-10-05 18:29:03.000000000","message":"Yes, and it is a link.","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"b877f7ab679f1afe6f0e3f686a304faca42a2641","unresolved":false,"context_lines":[{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d "},{"line_number":308,"context_line":"JSON type JSON format     Field widget"},{"line_number":309,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":310,"context_line":"\u0027string\u0027                  text widget (see `Text/number fields rendering"},{"line_number":311,"context_line":"                          and parsing`_ for more details)"},{"line_number":312,"context_line":"\u0027integer\u0027                 number widget, additional validation on integer"},{"line_number":313,"context_line":"\u0027number\u0027                  number widget"},{"line_number":314,"context_line":"\u0027boolean\u0027                 checkbox (see `Other fields rendering and"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_d5b59731","line":311,"range":{"start_line":310,"start_character":43,"end_line":311,"end_character":39},"in_reply_to":"1a95cdbc_9f1c0e15","updated":"2016-10-05 19:01:33.000000000","message":"Right, my bad","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":399,"context_line":"          thread, server should provide entry points for making these"},{"line_number":400,"context_line":"          requests asynchronously from client-side, so that enums get"},{"line_number":401,"context_line":"          their values not when the json schema is generated, but"},{"line_number":402,"context_line":"          after the form has been rendered from that json schema."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":".. _tv4: https://github.com/geraintluff/tv4"},{"line_number":405,"context_line":".. _override standard messages: https://github.com/json-schema-form/angular-schema-form/blob/master/docs/index.md#validation-messages"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_b312f560","line":402,"range":{"start_line":402,"start_character":25,"end_line":402,"end_character":33},"updated":"2016-10-05 15:58:24.000000000","message":"is","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":399,"context_line":"          thread, server should provide entry points for making these"},{"line_number":400,"context_line":"          requests asynchronously from client-side, so that enums get"},{"line_number":401,"context_line":"          their values not when the json schema is generated, but"},{"line_number":402,"context_line":"          after the form has been rendered from that json schema."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":".. _tv4: https://github.com/geraintluff/tv4"},{"line_number":405,"context_line":".. _override standard messages: https://github.com/json-schema-form/angular-schema-form/blob/master/docs/index.md#validation-messages"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_5feb66b0","line":402,"in_reply_to":"1a95cdbc_b312f560","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":401,"context_line":"          their values not when the json schema is generated, but"},{"line_number":402,"context_line":"          after the form has been rendered from that json schema."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":".. _tv4: https://github.com/geraintluff/tv4"},{"line_number":405,"context_line":".. _override standard messages: https://github.com/json-schema-form/angular-schema-form/blob/master/docs/index.md#validation-messages"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"Primitive fields validation constraints"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_ee3ad4cc","line":405,"range":{"start_line":404,"start_character":3,"end_line":405,"end_character":133},"updated":"2016-10-05 15:58:24.000000000","message":"I think it should be moved to References","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"b877f7ab679f1afe6f0e3f686a304faca42a2641","unresolved":false,"context_lines":[{"line_number":402,"context_line":"          after the form has been rendered from that json schema."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":".. _tv4: https://github.com/geraintluff/tv4"},{"line_number":405,"context_line":".. _override standard messages: https://github.com/json-schema-form/angular-schema-form/blob/master/docs/index.md#validation-messages"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"Primitive fields validation constraints"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_754cc342","line":405,"in_reply_to":"1a95cdbc_dfd776eb","updated":"2016-10-05 19:01:33.000000000","message":"you can see it here: https://github.com/openstack/murano-specs/blob/master/specs/template.rst#references","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":402,"context_line":"          after the form has been rendered from that json schema."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":".. _tv4: https://github.com/geraintluff/tv4"},{"line_number":405,"context_line":".. _override standard messages: https://github.com/json-schema-form/angular-schema-form/blob/master/docs/index.md#validation-messages"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"Primitive fields validation constraints"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_dfd776eb","line":405,"in_reply_to":"1a95cdbc_ee3ad4cc","updated":"2016-10-05 18:29:03.000000000","message":"What is the REST syntax for the references section?","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":584,"context_line":""},{"line_number":585,"context_line":"The environment object model is a top-level JSON object existing on"},{"line_number":586,"context_line":"client-side. Whichever Murano Component is created within this"},{"line_number":587,"context_line":"environment, it always is being put into this JSON object, from now"},{"line_number":588,"context_line":"referred as the *client-side environment object model*. In turn, every"},{"line_number":589,"context_line":"Murano component\u0027s object model is a JSON object, where the system"},{"line_number":590,"context_line":"data is stored under ``\"?\"`` key. Three entries are important to UI:"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_29c91679","line":587,"range":{"start_line":587,"start_character":16,"end_line":587,"end_character":35},"updated":"2016-10-05 15:58:24.000000000","message":"is always put","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":584,"context_line":""},{"line_number":585,"context_line":"The environment object model is a top-level JSON object existing on"},{"line_number":586,"context_line":"client-side. Whichever Murano Component is created within this"},{"line_number":587,"context_line":"environment, it always is being put into this JSON object, from now"},{"line_number":588,"context_line":"referred as the *client-side environment object model*. In turn, every"},{"line_number":589,"context_line":"Murano component\u0027s object model is a JSON object, where the system"},{"line_number":590,"context_line":"data is stored under ``\"?\"`` key. Three entries are important to UI:"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_bf4aaac3","line":587,"in_reply_to":"1a95cdbc_29c91679","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":585,"context_line":"The environment object model is a top-level JSON object existing on"},{"line_number":586,"context_line":"client-side. Whichever Murano Component is created within this"},{"line_number":587,"context_line":"environment, it always is being put into this JSON object, from now"},{"line_number":588,"context_line":"referred as the *client-side environment object model*. In turn, every"},{"line_number":589,"context_line":"Murano component\u0027s object model is a JSON object, where the system"},{"line_number":590,"context_line":"data is stored under ``\"?\"`` key. Three entries are important to UI:"},{"line_number":591,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_09937a5c","line":588,"range":{"start_line":588,"start_character":0,"end_line":588,"end_character":8},"updated":"2016-10-05 15:58:24.000000000","message":"referred to","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":585,"context_line":"The environment object model is a top-level JSON object existing on"},{"line_number":586,"context_line":"client-side. Whichever Murano Component is created within this"},{"line_number":587,"context_line":"environment, it always is being put into this JSON object, from now"},{"line_number":588,"context_line":"referred as the *client-side environment object model*. In turn, every"},{"line_number":589,"context_line":"Murano component\u0027s object model is a JSON object, where the system"},{"line_number":590,"context_line":"data is stored under ``\"?\"`` key. Three entries are important to UI:"},{"line_number":591,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_1f163ea7","line":588,"in_reply_to":"1a95cdbc_09937a5c","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":658,"context_line":"2. which container has ``format`` equal to ``\"murano.object\"`` in"},{"line_number":659,"context_line":"   schema"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"it requests a schema from from API (if it is not already present in"},{"line_number":662,"context_line":"cache). If for some ``[\u0027?\u0027][\u0027type\u0027]`` no raw schema exists (404"},{"line_number":663,"context_line":"response), such objects are treated like simple dictionaries and"},{"line_number":664,"context_line":"rendered accordingly (no separate form, obeys the rules of renderering"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_bfe2b401","line":661,"range":{"start_line":661,"start_character":26,"end_line":661,"end_character":30},"updated":"2016-10-05 15:58:24.000000000","message":"duplicate","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":658,"context_line":"2. which container has ``format`` equal to ``\"murano.object\"`` in"},{"line_number":659,"context_line":"   schema"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"it requests a schema from from API (if it is not already present in"},{"line_number":662,"context_line":"cache). If for some ``[\u0027?\u0027][\u0027type\u0027]`` no raw schema exists (404"},{"line_number":663,"context_line":"response), such objects are treated like simple dictionaries and"},{"line_number":664,"context_line":"rendered accordingly (no separate form, obeys the rules of renderering"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_bf21cafd","line":661,"in_reply_to":"1a95cdbc_bfe2b401","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":721,"context_line":"    compatible with the ``\"muranoType\"`` value in its schema"},{"line_number":722,"context_line":"  * if it is of a ``\"string\"`` type, its UUID value has to be already"},{"line_number":723,"context_line":"    existing in **the cache of component models** and the"},{"line_number":724,"context_line":"    corresponding component has to to have its ``[\"?\"][\"type\"]``"},{"line_number":725,"context_line":"    compatible with the ``\"muranoType\"`` value in its schema"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"* Strong validation, which means that the whole environment is valid -"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_bf5f1471","line":724,"range":{"start_line":724,"start_character":35,"end_line":724,"end_character":37},"updated":"2016-10-05 15:58:24.000000000","message":"duplicate","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":721,"context_line":"    compatible with the ``\"muranoType\"`` value in its schema"},{"line_number":722,"context_line":"  * if it is of a ``\"string\"`` type, its UUID value has to be already"},{"line_number":723,"context_line":"    existing in **the cache of component models** and the"},{"line_number":724,"context_line":"    corresponding component has to to have its ``[\"?\"][\"type\"]``"},{"line_number":725,"context_line":"    compatible with the ``\"muranoType\"`` value in its schema"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"* Strong validation, which means that the whole environment is valid -"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_9f696e28","line":724,"in_reply_to":"1a95cdbc_bf5f1471","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":792,"context_line":"   dotted line)."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"3. The topmost component is the leftmost, and components that go"},{"line_number":795,"context_line":"   deeper are placed to the right. Since User is always editing within"},{"line_number":796,"context_line":"   a single branch there are no trees possible. However, if cycles are"},{"line_number":797,"context_line":"   made possible by means of schema constraints, the UI does nothing"},{"line_number":798,"context_line":"   to prevent them. It is up to the User to see that some names began"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_d3377cae","line":795,"range":{"start_line":795,"start_character":46,"end_line":795,"end_character":63},"updated":"2016-10-05 15:58:24.000000000","message":"always edits","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":792,"context_line":"   dotted line)."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"3. The topmost component is the leftmost, and components that go"},{"line_number":795,"context_line":"   deeper are placed to the right. Since User is always editing within"},{"line_number":796,"context_line":"   a single branch there are no trees possible. However, if cycles are"},{"line_number":797,"context_line":"   made possible by means of schema constraints, the UI does nothing"},{"line_number":798,"context_line":"   to prevent them. It is up to the User to see that some names began"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_7f55824e","line":795,"in_reply_to":"1a95cdbc_d3377cae","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":799,"context_line":"   to repeat and stop descending by the infinite ladder."},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"4. If the chain of components becomes longer than the form width,"},{"line_number":802,"context_line":"   there are 2 options: use horizontal scroll bar (ugly!) or truncate"},{"line_number":803,"context_line":"   the leftmost entries that don\u0027t fit into the form."},{"line_number":804,"context_line":""},{"line_number":805,"context_line":".. todo:: breadcrumbs need some UX prototyping"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_5321ac4c","line":802,"range":{"start_line":802,"start_character":13,"end_line":802,"end_character":14},"updated":"2016-10-05 15:58:24.000000000","message":"two","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":799,"context_line":"   to repeat and stop descending by the infinite ladder."},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"4. If the chain of components becomes longer than the form width,"},{"line_number":802,"context_line":"   there are 2 options: use horizontal scroll bar (ugly!) or truncate"},{"line_number":803,"context_line":"   the leftmost entries that don\u0027t fit into the form."},{"line_number":804,"context_line":""},{"line_number":805,"context_line":".. todo:: breadcrumbs need some UX prototyping"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_bf4f0abc","line":802,"in_reply_to":"1a95cdbc_5321ac4c","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":808,"context_line":"Browsing object model and integration with Horizon grids"},{"line_number":809,"context_line":"--------------------------------------------------------"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"Angular version of Horizon grids offers 2 modes of viewing table"},{"line_number":812,"context_line":"contents: expanding a single row drawer (should not occupy to much"},{"line_number":813,"context_line":"space) and navigating to a separate page containing all the info about"},{"line_number":814,"context_line":"a specific table row (similar to what existing Django tables"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_f315589b","line":811,"range":{"start_line":811,"start_character":40,"end_line":811,"end_character":41},"updated":"2016-10-05 15:58:24.000000000","message":"two","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":808,"context_line":"Browsing object model and integration with Horizon grids"},{"line_number":809,"context_line":"--------------------------------------------------------"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"Angular version of Horizon grids offers 2 modes of viewing table"},{"line_number":812,"context_line":"contents: expanding a single row drawer (should not occupy to much"},{"line_number":813,"context_line":"space) and navigating to a separate page containing all the info about"},{"line_number":814,"context_line":"a specific table row (similar to what existing Django tables"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_1fcb9e1f","line":811,"in_reply_to":"1a95cdbc_f315589b","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":809,"context_line":"--------------------------------------------------------"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"Angular version of Horizon grids offers 2 modes of viewing table"},{"line_number":812,"context_line":"contents: expanding a single row drawer (should not occupy to much"},{"line_number":813,"context_line":"space) and navigating to a separate page containing all the info about"},{"line_number":814,"context_line":"a specific table row (similar to what existing Django tables"},{"line_number":815,"context_line":"have). The idea is to use a drawer to show some basic application\u0027s"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_930414c1","line":812,"range":{"start_line":812,"start_character":59,"end_line":812,"end_character":61},"updated":"2016-10-05 15:58:24.000000000","message":"too","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":809,"context_line":"--------------------------------------------------------"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"Angular version of Horizon grids offers 2 modes of viewing table"},{"line_number":812,"context_line":"contents: expanding a single row drawer (should not occupy to much"},{"line_number":813,"context_line":"space) and navigating to a separate page containing all the info about"},{"line_number":814,"context_line":"a specific table row (similar to what existing Django tables"},{"line_number":815,"context_line":"have). The idea is to use a drawer to show some basic application\u0027s"}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_3fd21ad3","line":812,"in_reply_to":"1a95cdbc_930414c1","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"2f8b22a6fd8e15c310b86c9926a5b90cd0182a0f","unresolved":false,"context_lines":[{"line_number":855,"context_line":""},{"line_number":856,"context_line":"Every component in the browsing mode can be edited in the modal form"},{"line_number":857,"context_line":"which is same to the form used during create. The form is shown when"},{"line_number":858,"context_line":"user clicks button \u0027Edit\u0027 which is is present for every component. By"},{"line_number":859,"context_line":"doing this edit operation can be easily disabled for some roles by"},{"line_number":860,"context_line":"means of policies."}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_53260ccf","line":858,"range":{"start_line":858,"start_character":35,"end_line":858,"end_character":37},"updated":"2016-10-05 15:58:24.000000000","message":"duplicate","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cd1b254fe58d3f25f438e84df862edb56571b179","unresolved":false,"context_lines":[{"line_number":855,"context_line":""},{"line_number":856,"context_line":"Every component in the browsing mode can be edited in the modal form"},{"line_number":857,"context_line":"which is same to the form used during create. The form is shown when"},{"line_number":858,"context_line":"user clicks button \u0027Edit\u0027 which is is present for every component. By"},{"line_number":859,"context_line":"doing this edit operation can be easily disabled for some roles by"},{"line_number":860,"context_line":"means of policies."}],"source_content_type":"text/x-rst","patch_set":23,"id":"1a95cdbc_9fd7aebe","line":858,"in_reply_to":"1a95cdbc_53260ccf","updated":"2016-10-05 18:29:03.000000000","message":"Done","commit_id":"efb0ac56e407b19f47b238cc6ecda31aada9502b"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9a2863d13ef4b0b295630e6d85befa2b6e87006d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"compound one) from a json schema, but to render less trivial fields,"},{"line_number":54,"context_line":"like a datepicker or a grid, or conditionally show/hide specific"},{"line_number":55,"context_line":"fields, one has to provide a form definition. Since MuranoPL outputs a"},{"line_number":56,"context_line":"json schema only, the job of generating the form definition is upon"},{"line_number":57,"context_line":"the client-side code."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Besides a json schema and a form definition, a third important element"}],"source_content_type":"text/x-rst","patch_set":27,"id":"7a77a97e_80c4f740","line":56,"range":{"start_line":56,"start_character":60,"end_line":56,"end_character":62},"updated":"2016-11-14 22:55:06.000000000","message":"falls","commit_id":"f4b6eac28888ecfa66abff50993029be16513631"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9a2863d13ef4b0b295630e6d85befa2b6e87006d","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    * Categories"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* Not every class stored in Glare should be shown on the UI, the"},{"line_number":150,"context_line":"  classes that are should not be shown are marked with ``hidden:"},{"line_number":151,"context_line":"  true`` value. The reason for this is that both new and legacy"},{"line_number":152,"context_line":"  packages can be returned by Glare. *Legacy* packages are the"},{"line_number":153,"context_line":"  packages with an embedded UI markup, which is always one per"}],"source_content_type":"text/x-rst","patch_set":27,"id":"7a77a97e_a0aad36e","line":150,"range":{"start_line":150,"start_character":15,"end_line":150,"end_character":38},"updated":"2016-11-14 22:55:06.000000000","message":"are not shown","commit_id":"f4b6eac28888ecfa66abff50993029be16513631"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9a2863d13ef4b0b295630e6d85befa2b6e87006d","unresolved":false,"context_lines":[{"line_number":432,"context_line":"* ``required: true`` property can not be missing in the model, if it"},{"line_number":433,"context_line":"  is then the form is invalid. UI expects every property"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"  * which ``Default`` in MuranoPL is either not defined,"},{"line_number":436,"context_line":"  * or defined and known in advance"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"  to be required. Conversely, the properties with ``Default`` which"},{"line_number":439,"context_line":"  exists, but cannot be passed as an initial value to UI are not"}],"source_content_type":"text/x-rst","patch_set":27,"id":"7a77a97e_e0992b21","line":436,"range":{"start_line":435,"start_character":0,"end_line":436,"end_character":35},"updated":"2016-11-14 22:55:06.000000000","message":"Should this be here? Looks like a run-on to me.","commit_id":"f4b6eac28888ecfa66abff50993029be16513631"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9a2863d13ef4b0b295630e6d85befa2b6e87006d","unresolved":false,"context_lines":[{"line_number":576,"context_line":"* ``\u0027type\u0027`` value which is copied from schema ``muranoType`` (defines"},{"line_number":577,"context_line":"  Murano component\u0027s type)."},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"* ``\u0027name\u0027`` which is used in contexts which require human readable"},{"line_number":580,"context_line":"  name of the particular component (e.g., when displaying reference to"},{"line_number":581,"context_line":"  is as a hyperlink, see `Browsing object model and integration with"},{"line_number":582,"context_line":"  Horizon grids`_). Defaults to an auto-generated value, but can be"}],"source_content_type":"text/x-rst","patch_set":27,"id":"7a77a97e_c017cf52","line":579,"range":{"start_line":579,"start_character":53,"end_line":579,"end_character":67},"updated":"2016-11-14 22:55:06.000000000","message":"human-readable","commit_id":"f4b6eac28888ecfa66abff50993029be16513631"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9a2863d13ef4b0b295630e6d85befa2b6e87006d","unresolved":false,"context_lines":[{"line_number":750,"context_line":"form is slightly visible) would create unnecessary visual clutter and"},{"line_number":751,"context_line":"better be avoided. Instead, a form that is currently on top of the"},{"line_number":752,"context_line":"modal stack completely hides the forms below. Yet some means of"},{"line_number":753,"context_line":"navigation accross the form stack are desirable so the User won\u0027t get"},{"line_number":754,"context_line":"lost. The proposed solution is to use breadcrumbs navigation shown"},{"line_number":755,"context_line":"inside the form header. However these breadcrumbs are going to be"},{"line_number":756,"context_line":"slightly different from the standard breadcrumbs widget which is just"}],"source_content_type":"text/x-rst","patch_set":27,"id":"7a77a97e_53371be3","line":753,"range":{"start_line":753,"start_character":34,"end_line":753,"end_character":37},"updated":"2016-11-14 22:55:06.000000000","message":"is","commit_id":"f4b6eac28888ecfa66abff50993029be16513631"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9a2863d13ef4b0b295630e6d85befa2b6e87006d","unresolved":false,"context_lines":[{"line_number":807,"context_line":"            models?"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"While browsing application\u0027s object model every application\u0027s"},{"line_number":810,"context_line":"component has its own page. The page is splitted into tabs mirroring"},{"line_number":811,"context_line":"the tab partition of the corresponding Create form for that"},{"line_number":812,"context_line":"application. Transitions between those pages are done using hyperlinks"},{"line_number":813,"context_line":"which represent both owned and referenced components. In other words,"}],"source_content_type":"text/x-rst","patch_set":27,"id":"7a77a97e_734b375a","line":810,"range":{"start_line":810,"start_character":40,"end_line":810,"end_character":48},"updated":"2016-11-14 22:55:06.000000000","message":"split","commit_id":"f4b6eac28888ecfa66abff50993029be16513631"}]}
