)]}'
{"vitrage_dashboard/api/vitrage.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"ba3c883ced7f3254c3372b82ea03bee7f7c9c507","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def template_add(request):"},{"line_number":92,"context_line":"    template \u003d json.loads(request.body)"},{"line_number":93,"context_line":"    type \u003d template.get(\u0027type\u0027, \u0027standard\u0027)"},{"line_number":94,"context_line":"    with tempfile.NamedTemporaryFile(suffix\u003d\u0027.yaml\u0027) as temp:"},{"line_number":95,"context_line":"        temp.write(template.get(\u0027template\u0027))"},{"line_number":96,"context_line":"        temp.flush()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_0b1f565a","line":93,"range":{"start_line":93,"start_character":4,"end_line":93,"end_character":43},"updated":"2018-07-29 10:33:49.000000000","message":"I\u0027m not sure that we should use a default here. The type should be mentioned explicitly either inside the template (preferred), or as a parameter given by the user.","commit_id":"7ee69fe616e69451e9e2ecbe695d799a938d4516"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"eef29349fb82058146aa7023841c63028249c459","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def template_add(request):"},{"line_number":92,"context_line":"    template \u003d json.loads(request.body)"},{"line_number":93,"context_line":"    type \u003d template.get(\u0027type\u0027, \u0027standard\u0027)"},{"line_number":94,"context_line":"    with tempfile.NamedTemporaryFile(suffix\u003d\u0027.yaml\u0027) as temp:"},{"line_number":95,"context_line":"        temp.write(template.get(\u0027template\u0027))"},{"line_number":96,"context_line":"        temp.flush()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_eb677aeb","line":93,"range":{"start_line":93,"start_character":4,"end_line":93,"end_character":43},"in_reply_to":"5f7c97a3_0b1f565a","updated":"2018-07-29 10:47:02.000000000","message":"Done","commit_id":"7ee69fe616e69451e9e2ecbe695d799a938d4516"}],"vitrage_dashboard/dashboard/static/app/core/openstack-service-api/vitrage.service.js":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    function addTemplate(template, type) {"},{"line_number":87,"context_line":"    var temp \u003d { \u0027template\u0027 : template, \u0027type\u0027: type }"},{"line_number":88,"context_line":"      return apiService.post(\u0027/api/vitrage/template/default/\u0027, temp)"},{"line_number":89,"context_line":"          .catch(function () {"},{"line_number":90,"context_line":"            toastService.add(\u0027error\u0027, gettext(\u0027Unable to fetch the Vitrage Templates service.\u0027));"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_ad6e55fb","line":87,"updated":"2018-07-31 09:32:54.000000000","message":"indentation","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    function addTemplate(template, type) {"},{"line_number":87,"context_line":"    var temp \u003d { \u0027template\u0027 : template, \u0027type\u0027: type }"},{"line_number":88,"context_line":"      return apiService.post(\u0027/api/vitrage/template/default/\u0027, temp)"},{"line_number":89,"context_line":"          .catch(function () {"},{"line_number":90,"context_line":"            toastService.add(\u0027error\u0027, gettext(\u0027Unable to fetch the Vitrage Templates service.\u0027));"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_367936fa","line":87,"in_reply_to":"5f7c97a3_ad6e55fb","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/templateAdd/templateAddOptions.html":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"f4d46ba9479812f5a55b4cfebc6edba77b319a40","unresolved":false,"context_lines":[{"line_number":9,"context_line":"        \u003cdiv style\u003d\"margin: 15px\"\u003e"},{"line_number":10,"context_line":"            \u003cselect class\u003d\"form-control form-control-lg\" id\u003d\"typeSelect\"\u003e"},{"line_number":11,"context_line":"              \u003coption selected\u003d\"selected\"\u003estandard\u003c/option\u003e"},{"line_number":12,"context_line":"              \u003coption\u003edefinition\u003c/option\u003e"},{"line_number":13,"context_line":"              \u003coption\u003eequivalence\u003c/option\u003e"},{"line_number":14,"context_line":"            \u003c/select\u003e"},{"line_number":15,"context_line":"        \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":9,"id":"5f7c97a3_b797649c","line":12,"updated":"2018-08-01 12:01:35.000000000","message":"Capital D\nCapital E","commit_id":"45e1b53406f5ba47f7da54260092de39f641eae7"}],"vitrage_dashboard/dashboard/static/dashboard/project/templateList/templateList.controller.js":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    templateList.uploadFile \u003d function(file, errFile) {"},{"line_number":19,"context_line":"      if (file) {"},{"line_number":20,"context_line":"        if(!(file.name.endsWith(\u0027yml\u0027) || file.name.endsWith(\u0027yaml\u0027))) {"},{"line_number":21,"context_line":"            window.alert(\"Invalid file type. Templates should be yaml files\");"},{"line_number":22,"context_line":"            delete file.name;"},{"line_number":23,"context_line":"            return;"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_d01a4a69","line":20,"updated":"2018-07-31 09:32:54.000000000","message":"You need to check the extenstion of the file, and not the last characters,\nFor example file called: shyml\nUse: file.name.split(\u0027.\u0027).pop();","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    templateList.uploadFile \u003d function(file, errFile) {"},{"line_number":19,"context_line":"      if (file) {"},{"line_number":20,"context_line":"        if(!(file.name.endsWith(\u0027yml\u0027) || file.name.endsWith(\u0027yaml\u0027))) {"},{"line_number":21,"context_line":"            window.alert(\"Invalid file type. Templates should be yaml files\");"},{"line_number":22,"context_line":"            delete file.name;"},{"line_number":23,"context_line":"            return;"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_36c7f613","line":20,"in_reply_to":"5f7c97a3_d01a4a69","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    templateList.uploadFile \u003d function(file, errFile) {"},{"line_number":19,"context_line":"      if (file) {"},{"line_number":20,"context_line":"        if(!(file.name.endsWith(\u0027yml\u0027) || file.name.endsWith(\u0027yaml\u0027))) {"},{"line_number":21,"context_line":"            window.alert(\"Invalid file type. Templates should be yaml files\");"},{"line_number":22,"context_line":"            delete file.name;"},{"line_number":23,"context_line":"            return;"},{"line_number":24,"context_line":"        }"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_502e3a8d","line":21,"updated":"2018-07-31 09:32:54.000000000","message":"Need to check the Horizon mechanism for messages, I don\u0027t think they use window.alert","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    templateList.uploadFile \u003d function(file, errFile) {"},{"line_number":19,"context_line":"      if (file) {"},{"line_number":20,"context_line":"        if(!(file.name.endsWith(\u0027yml\u0027) || file.name.endsWith(\u0027yaml\u0027))) {"},{"line_number":21,"context_line":"            window.alert(\"Invalid file type. Templates should be yaml files\");"},{"line_number":22,"context_line":"            delete file.name;"},{"line_number":23,"context_line":"            return;"},{"line_number":24,"context_line":"        }"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_618b66c0","line":21,"in_reply_to":"5f7c97a3_502e3a8d","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            delete file.name;"},{"line_number":23,"context_line":"            return;"},{"line_number":24,"context_line":"        }"},{"line_number":25,"context_line":"        var type \u003d window.prompt(\"Please enter the template type:\", \"standard\");"},{"line_number":26,"context_line":"        if (type !\u003d\"standard\" \u0026\u0026 type !\u003d \"definition\" \u0026\u0026 type !\u003d \"equivalence\") {"},{"line_number":27,"context_line":"            window.alert(\"Invalid type entered. Type is one of: standard, definition, equivalence\");"},{"line_number":28,"context_line":"            delete file.name;"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_b038eeca","line":25,"updated":"2018-07-31 09:32:54.000000000","message":"Should be Horizon modal, not window.prompt","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            return;"},{"line_number":24,"context_line":"        }"},{"line_number":25,"context_line":"        var type \u003d window.prompt(\"Please enter the template type:\", \"standard\");"},{"line_number":26,"context_line":"        if (type !\u003d\"standard\" \u0026\u0026 type !\u003d \"definition\" \u0026\u0026 type !\u003d \"equivalence\") {"},{"line_number":27,"context_line":"            window.alert(\"Invalid type entered. Type is one of: standard, definition, equivalence\");"},{"line_number":28,"context_line":"            delete file.name;"},{"line_number":29,"context_line":"            return;"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_30761ea5","line":26,"updated":"2018-07-31 09:32:54.000000000","message":"use !\u003d\u003d insteadof !\u003d\nIt will check also they type, not only the value","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            return;"},{"line_number":24,"context_line":"        }"},{"line_number":25,"context_line":"        var type \u003d window.prompt(\"Please enter the template type:\", \"standard\");"},{"line_number":26,"context_line":"        if (type !\u003d\"standard\" \u0026\u0026 type !\u003d \"definition\" \u0026\u0026 type !\u003d \"equivalence\") {"},{"line_number":27,"context_line":"            window.alert(\"Invalid type entered. Type is one of: standard, definition, equivalence\");"},{"line_number":28,"context_line":"            delete file.name;"},{"line_number":29,"context_line":"            return;"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_21924efd","line":26,"in_reply_to":"5f7c97a3_30761ea5","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        }"},{"line_number":25,"context_line":"        var type \u003d window.prompt(\"Please enter the template type:\", \"standard\");"},{"line_number":26,"context_line":"        if (type !\u003d\"standard\" \u0026\u0026 type !\u003d \"definition\" \u0026\u0026 type !\u003d \"equivalence\") {"},{"line_number":27,"context_line":"            window.alert(\"Invalid type entered. Type is one of: standard, definition, equivalence\");"},{"line_number":28,"context_line":"            delete file.name;"},{"line_number":29,"context_line":"            return;"},{"line_number":30,"context_line":"        }"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_906612ee","line":27,"updated":"2018-07-31 09:32:54.000000000","message":"Use Horizon mechanism for alerts","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        }"},{"line_number":25,"context_line":"        var type \u003d window.prompt(\"Please enter the template type:\", \"standard\");"},{"line_number":26,"context_line":"        if (type !\u003d\"standard\" \u0026\u0026 type !\u003d \"definition\" \u0026\u0026 type !\u003d \"equivalence\") {"},{"line_number":27,"context_line":"            window.alert(\"Invalid type entered. Type is one of: standard, definition, equivalence\");"},{"line_number":28,"context_line":"            delete file.name;"},{"line_number":29,"context_line":"            return;"},{"line_number":30,"context_line":"        }"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_41950ae2","line":27,"in_reply_to":"5f7c97a3_906612ee","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            return;"},{"line_number":30,"context_line":"        }"},{"line_number":31,"context_line":"        var r \u003d new FileReader();"},{"line_number":32,"context_line":"        r.onload \u003d function(e) {"},{"line_number":33,"context_line":"            var content \u003d e.target.result;"},{"line_number":34,"context_line":"            vitrageTopologySrv.addTemplate(content, type).then(function(result){"},{"line_number":35,"context_line":"                getData();"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_7057b6f6","line":32,"updated":"2018-07-31 09:32:54.000000000","message":"What about error handler","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            return;"},{"line_number":30,"context_line":"        }"},{"line_number":31,"context_line":"        var r \u003d new FileReader();"},{"line_number":32,"context_line":"        r.onload \u003d function(e) {"},{"line_number":33,"context_line":"            var content \u003d e.target.result;"},{"line_number":34,"context_line":"            vitrageTopologySrv.addTemplate(content, type).then(function(result){"},{"line_number":35,"context_line":"                getData();"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_a9014a05","line":32,"in_reply_to":"5f7c97a3_7057b6f6","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        }"},{"line_number":31,"context_line":"        var r \u003d new FileReader();"},{"line_number":32,"context_line":"        r.onload \u003d function(e) {"},{"line_number":33,"context_line":"            var content \u003d e.target.result;"},{"line_number":34,"context_line":"            vitrageTopologySrv.addTemplate(content, type).then(function(result){"},{"line_number":35,"context_line":"                getData();"},{"line_number":36,"context_line":"            });"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_f0a0a6f4","line":33,"updated":"2018-07-31 09:32:54.000000000","message":"Also, because we are working with files (outside of the browser sandbox) use try \u0026 catch in dangerous blocks","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        var r \u003d new FileReader();"},{"line_number":32,"context_line":"        r.onload \u003d function(e) {"},{"line_number":33,"context_line":"            var content \u003d e.target.result;"},{"line_number":34,"context_line":"            vitrageTopologySrv.addTemplate(content, type).then(function(result){"},{"line_number":35,"context_line":"                getData();"},{"line_number":36,"context_line":"            });"},{"line_number":37,"context_line":"          }"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_70ac96ea","line":34,"updated":"2018-07-31 09:32:54.000000000","message":"What about error handler","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                getData();"},{"line_number":36,"context_line":"            });"},{"line_number":37,"context_line":"          }"},{"line_number":38,"context_line":"        r.readAsText(file);"},{"line_number":39,"context_line":"      }"},{"line_number":40,"context_line":"    }"},{"line_number":41,"context_line":""}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_f0798680","line":38,"updated":"2018-07-31 09:32:54.000000000","message":"try catch","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":61,"context_line":"      }"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"      templateList.onDeleteClick \u003d function(template) {"},{"line_number":64,"context_line":"        vitrageTopologySrv.deleteTemplate(template.uuid).then(function(result){"},{"line_number":65,"context_line":"         getData();"},{"line_number":66,"context_line":"        });"},{"line_number":67,"context_line":"      }"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_70857652","line":64,"updated":"2018-07-31 09:32:54.000000000","message":"error handler is missing","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"f4d46ba9479812f5a55b4cfebc6edba77b319a40","unresolved":false,"context_lines":[{"line_number":110,"context_line":"      templateList.onDeleteClick \u003d function(template) {"},{"line_number":111,"context_line":"        vitrageTopologySrv.deleteTemplate(template.uuid).then(function(result){"},{"line_number":112,"context_line":"         getData();"},{"line_number":113,"context_line":"        });"},{"line_number":114,"context_line":"      }"},{"line_number":115,"context_line":"    }"},{"line_number":116,"context_line":"  }"}],"source_content_type":"text/javascript","patch_set":9,"id":"5f7c97a3_f742bc3b","line":113,"updated":"2018-08-01 12:01:35.000000000","message":"Error handler ?","commit_id":"45e1b53406f5ba47f7da54260092de39f641eae7"}],"vitrage_dashboard/dashboard/static/dashboard/project/templateList/templateList.html":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \u003cbutton class\u003d\"btn btn-primary\""},{"line_number":4,"context_line":"                type\u003d\"file\""},{"line_number":5,"context_line":"                id\u003d\"add-template\""},{"line_number":6,"context_line":"                ngf-select\u003d\"templateList.uploadFile($file, $invalidFiles)\""},{"line_number":7,"context_line":"                ngf-max-height\u003d\"1000\""},{"line_number":8,"context_line":"                accept\u003d\"*\""},{"line_number":9,"context_line":"                ngf-max-size\u003d\"1MB\"\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"5f7c97a3_10cf62b3","line":6,"updated":"2018-07-31 09:32:54.000000000","message":"Are you using the ngf directive or the native HTML5 type file.\nIf no using the directive, you can omit it","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \u003cbutton class\u003d\"btn btn-primary\""},{"line_number":4,"context_line":"                type\u003d\"file\""},{"line_number":5,"context_line":"                id\u003d\"add-template\""},{"line_number":6,"context_line":"                ngf-select\u003d\"templateList.uploadFile($file, $invalidFiles)\""},{"line_number":7,"context_line":"                ngf-max-height\u003d\"1000\""},{"line_number":8,"context_line":"                accept\u003d\"*\""},{"line_number":9,"context_line":"                ngf-max-size\u003d\"1MB\"\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"5f7c97a3_8e6ed4fb","line":6,"in_reply_to":"5f7c97a3_10cf62b3","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":5,"context_line":"                id\u003d\"add-template\""},{"line_number":6,"context_line":"                ngf-select\u003d\"templateList.uploadFile($file, $invalidFiles)\""},{"line_number":7,"context_line":"                ngf-max-height\u003d\"1000\""},{"line_number":8,"context_line":"                accept\u003d\"*\""},{"line_number":9,"context_line":"                ngf-max-size\u003d\"1MB\"\u003e"},{"line_number":10,"context_line":"            Add Template"},{"line_number":11,"context_line":"        \u003c/button\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"5f7c97a3_f0c74696","line":8,"updated":"2018-07-31 09:32:54.000000000","message":"Add tooltip or description to the button with some text, so the user will know about YAML \u0026 max size","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":5,"context_line":"                id\u003d\"add-template\""},{"line_number":6,"context_line":"                ngf-select\u003d\"templateList.uploadFile($file, $invalidFiles)\""},{"line_number":7,"context_line":"                ngf-max-height\u003d\"1000\""},{"line_number":8,"context_line":"                accept\u003d\"*\""},{"line_number":9,"context_line":"                ngf-max-size\u003d\"1MB\"\u003e"},{"line_number":10,"context_line":"            Add Template"},{"line_number":11,"context_line":"        \u003c/button\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"5f7c97a3_6e7338e9","line":8,"in_reply_to":"5f7c97a3_f0c74696","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"f4d46ba9479812f5a55b4cfebc6edba77b319a40","unresolved":false,"context_lines":[{"line_number":5,"context_line":"                id\u003d\"add-template\""},{"line_number":6,"context_line":"                ngf-select\u003d\"templateList.uploadFile($file, $invalidFiles)\""},{"line_number":7,"context_line":"                ngf-max-height\u003d\"1000\""},{"line_number":8,"context_line":"                accept\u003d\"*\""},{"line_number":9,"context_line":"                ngf-max-size\u003d\"1MB\"\u003e"},{"line_number":10,"context_line":"            Add Template"},{"line_number":11,"context_line":"        \u003c/button\u003e"}],"source_content_type":"text/html","patch_set":9,"id":"5f7c97a3_d74c6076","line":8,"updated":"2018-08-01 12:01:35.000000000","message":"You can accept only YAML or YML if you want","commit_id":"45e1b53406f5ba47f7da54260092de39f641eae7"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"5cc810dc2a74397069113644fc4e90678ec4a472","unresolved":false,"context_lines":[{"line_number":5,"context_line":"                id\u003d\"add-template\""},{"line_number":6,"context_line":"                ngf-select\u003d\"templateList.uploadFile($file, $invalidFiles)\""},{"line_number":7,"context_line":"                ngf-max-height\u003d\"1000\""},{"line_number":8,"context_line":"                accept\u003d\"*\""},{"line_number":9,"context_line":"                ngf-max-size\u003d\"1MB\"\u003e"},{"line_number":10,"context_line":"            Add Template"},{"line_number":11,"context_line":"        \u003c/button\u003e"}],"source_content_type":"text/html","patch_set":9,"id":"5f7c97a3_97a6e8be","line":8,"in_reply_to":"5f7c97a3_d74c6076","updated":"2018-08-01 12:18:31.000000000","message":"Done","commit_id":"45e1b53406f5ba47f7da54260092de39f641eae7"}],"vitrage_dashboard/dashboard/static/dashboard/project/vitrage.module.js":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"4fdcd0367ae3ae04df10522ea5e1d0e71c457757","unresolved":false,"context_lines":[{"line_number":1,"context_line":"(function(){"},{"line_number":2,"context_line":"\u0027use strict\u0027;"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"    angular.module(\u0027horizon.dashboard.project.vitrage\u0027,[\u0027ui.bootstrap\u0027, \u0027ngFileUpload\u0027]);"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"})();"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_103442ab","line":4,"updated":"2018-07-31 09:32:54.000000000","message":"If you are not using the directive, don\u0027t forget also to remove it from here","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"aa4f1030b154cf3e88df06bbc980975e1ddec3ff","unresolved":false,"context_lines":[{"line_number":1,"context_line":"(function(){"},{"line_number":2,"context_line":"\u0027use strict\u0027;"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"    angular.module(\u0027horizon.dashboard.project.vitrage\u0027,[\u0027ui.bootstrap\u0027, \u0027ngFileUpload\u0027]);"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"})();"}],"source_content_type":"text/javascript","patch_set":4,"id":"5f7c97a3_6e21f8b4","line":4,"in_reply_to":"5f7c97a3_103442ab","updated":"2018-08-01 11:30:16.000000000","message":"Done","commit_id":"a6c7a346a5c189da25035b2b7ae69fe1b4b4800f"}]}
