)]}'
{"monitoring/alarmdefs/tests.py":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"ebe9d5dcbcf8baaeefc1535461e7591f26dc5a64","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertContains(res, \u0027\u003cselect class\u003d\"form-control\" \u0027"},{"line_number":83,"context_line":"                                 \u0027id\u003d\"id_severity\"\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertContains(res, \u0027\u003cmon-alarm-expressions\u0027)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        self.assertContains(res, \u0027\u003cinput type\u003d\"hidden\" name\u003d\"alarm_actions\"\u0027)"},{"line_number":88,"context_line":"        self.assertContains(res, \u0027\u003cinput type\u003d\"hidden\" name\u003d\"ok_actions\"\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1aa78d24_e048f52f","line":85,"updated":"2016-07-04 15:25:09.000000000","message":"That\u0027s causing an error.u","commit_id":"f2944dcc0bb5fcb09ee56334f277e82a1cd32679"}],"monitoring/enabled/_50_admin_add_monitoring_panel.py":[{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":14,"context_line":"                \u0027monitoring/js/services.js\u0027,"},{"line_number":15,"context_line":"                \u0027monitoring/js/ng-tags-input.js\u0027]"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# todo(trebskit) use that instead of css files"},{"line_number":18,"context_line":"ADD_SCSS_FILES \u003d ["},{"line_number":19,"context_line":"    \u0027monitoring/css/alarm-create.scss\u0027]"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_5feac9db","line":17,"updated":"2016-06-27 12:08:51.000000000","message":"Looks to me this # todo is not needed any more.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"}],"monitoring/static/monitoring/js/app.js":[{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":3,"context_line":"// Declare app level module which depends on filters, and services"},{"line_number":4,"context_line":"angular"},{"line_number":5,"context_line":"    .module(\u0027monitoringApp\u0027, ["},{"line_number":6,"context_line":"      \u0027monitoring.controllers\u0027,"},{"line_number":7,"context_line":"      \u0027monitoring.directives\u0027,"},{"line_number":8,"context_line":"      \u0027monitoring.filters\u0027,"},{"line_number":9,"context_line":"      \u0027monitoring.services\u0027,"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_aaee0a1f","line":6,"updated":"2016-06-27 12:08:51.000000000","message":"We should be consistent about indentation so let\u0027s use either 2 or 4 spaces.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"}],"monitoring/static/monitoring/js/controllers.js":[{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    function possibleDimKeys(query) {"},{"line_number":165,"context_line":"        return $q(function(resolve, reject) {"},{"line_number":166,"context_line":"            var dimList \u003d []"},{"line_number":167,"context_line":"            angular.forEach(vm.matchBy, function(value) {"},{"line_number":168,"context_line":"                if (value.indexOf(query) \u003d\u003d\u003d 0) {"},{"line_number":169,"context_line":"                    dimList.push(value);"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_0ad0fec7","line":166,"updated":"2016-06-27 12:08:51.000000000","message":"Missed semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"06b51e6f4e533356d076d8b8a6499bebdaff271d","unresolved":false,"context_lines":[{"line_number":226,"context_line":"            var opt \u003d allOptions[vm.select.model];"},{"line_number":227,"context_line":"            opt.undetermined \u003d !vm.isDeterministic;"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"            console.log(opt);"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"            vm.list.push(opt);"},{"line_number":232,"context_line":""}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_eaa46eba","line":229,"range":{"start_line":229,"start_character":27,"end_line":229,"end_character":29},"updated":"2016-06-27 20:48:56.000000000","message":"That should be removed from here.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"}],"monitoring/static/monitoring/js/directives.js":[{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            functions: \u0027\u003dfunctions\u0027,"},{"line_number":38,"context_line":"            operators: \u0027\u003doperators\u0027,"},{"line_number":39,"context_line":"            comparators: \u0027\u003dcomparators\u0027,"},{"line_number":40,"context_line":"            operators: \u0027\u003doperators\u0027,"},{"line_number":41,"context_line":"            connectable: \u0027\u003dconnectable\u0027"},{"line_number":42,"context_line":"        },"},{"line_number":43,"context_line":"        templateUrl: staticPath + \u0027expression/compound_expression.tpl.html\u0027,"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_9b871e60","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":36},"updated":"2016-06-27 12:08:51.000000000","message":"Duplicated key \u0027operators\u0027.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        controller: [\u0027$q\u0027, \u0027$scope\u0027, \u0027monExpressionBuilder\u0027, CompoundExpressionController],"},{"line_number":45,"context_line":"        controllerAs: \u0027vm\u0027,"},{"line_number":46,"context_line":"        bindToController: true"},{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    function CompoundExpressionController($q, $scope, monExpressionBuilder) {"},{"line_number":50,"context_line":"        // private"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_bbebfa11","line":47,"updated":"2016-06-27 12:08:51.000000000","message":"Missed semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        function reorderExpression($event, which, where) {"},{"line_number":101,"context_line":"            $event.preventDefault();"},{"line_number":102,"context_line":"            vm.subExpressions[where][\u0027op\u0027] \u003d ["},{"line_number":103,"context_line":"                vm.subExpressions[which][\u0027op\u0027],"},{"line_number":104,"context_line":"                vm.subExpressions[which][\u0027op\u0027] \u003d vm.subExpressions[where][\u0027op\u0027]"},{"line_number":105,"context_line":"            ][0];"},{"line_number":106,"context_line":"            vm.subExpressions[where] \u003d vm.subExpressions.splice(which, 1, vm.subExpressions[where])[0];"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            applyConnectable();"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_7b6192d2","line":105,"range":{"start_line":102,"start_character":0,"end_line":105,"end_character":17},"updated":"2016-06-27 12:08:51.000000000","message":"Clever :)","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            var matchBy \u003d [],"},{"line_number":115,"context_line":"                deterministic \u003d true;"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            angular.forEach(vm.subExpressions, function updater(expr, index){"},{"line_number":118,"context_line":"                angular.forEach(expr.matchBy || [], function it(mb){"},{"line_number":119,"context_line":"                    if(matchBy.indexOf(mb) \u003c 0){"},{"line_number":120,"context_line":"                        matchBy.push(mb);"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_7bc35238","line":117,"range":{"start_line":117,"start_character":70,"end_line":117,"end_character":75},"updated":"2016-06-27 12:08:51.000000000","message":"Unused param index.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            });"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            vm.deterministic \u003d deterministic;"},{"line_number":127,"context_line":"            vm.matchBy \u003d matchBy \u003d matchBy.sort();"},{"line_number":128,"context_line":"            vm.expression \u003d monExpressionBuilder.asString(vm.subExpressions, true);"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"            $scope.$emit(\u0027mon_match_by_changed\u0027, matchBy);"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_4544b748","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":50},"updated":"2016-06-27 12:08:51.000000000","message":"Do you need vm.matchBy and global matchBy? I think it\u0027s a mistake.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"06b51e6f4e533356d076d8b8a6499bebdaff271d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            });"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            vm.deterministic \u003d deterministic;"},{"line_number":127,"context_line":"            vm.matchBy \u003d matchBy \u003d matchBy.sort();"},{"line_number":128,"context_line":"            vm.expression \u003d monExpressionBuilder.asString(vm.subExpressions, true);"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"            $scope.$emit(\u0027mon_match_by_changed\u0027, matchBy);"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_aae1c69c","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":50},"in_reply_to":"3aaa91ec_4544b748","updated":"2016-06-27 20:48:56.000000000","message":"Each expression provide comes with chosen metric. Each metric is associated with several dimensions, each having key and value. Match by is a property where you specify those keys. Now since match by is a property of entire alarm definition, I collect all dimension\u0027s keys and mimic set collection to create global match by.\n\nNow assuming expression composed of metrics\n \n metric_1{dim_a\u003d1,dim_b\u003d2}\n metric_2(dim_a\u003d1,dim_c\u003d3}\n metric_3(dim_a\u003d1,dim_d\u003d4}\n\nglobal match by would contain\n \n {dim_a,dim_b,dim_c,dim_d}\n\neffectively allowing to specify one (or all of them).\n\nAs you can see that value is emitted and picked up by match by controller.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        controller: [\u0027$q\u0027, \u0027$scope\u0027, AlarmExpressionController],"},{"line_number":191,"context_line":"        controllerAs: \u0027vm\u0027,"},{"line_number":192,"context_line":"        bindToController: true"},{"line_number":193,"context_line":"    }"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    function linkFn(scope, el, attrs, monAlarmExpressions) {"},{"line_number":196,"context_line":"        scope.$on(\u0027$destroy\u0027, (function(){"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_1bc20e85","line":193,"updated":"2016-06-27 12:08:51.000000000","message":"Missed semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        function updateExpression() {"},{"line_number":248,"context_line":"            var dim \u003d [];"},{"line_number":249,"context_line":"            var expressionArray;"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"            if (vm.tags.length \u003e 0) {"},{"line_number":252,"context_line":"                angular.forEach(vm.tags, function(value, key) {"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_6c8f1b76","line":249,"range":{"start_line":249,"start_character":16,"end_line":249,"end_character":31},"updated":"2016-06-27 12:08:51.000000000","message":"Unused variable.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        function possibleDimensions(query) {"},{"line_number":265,"context_line":"            return $q(function(resolve, reject) {"},{"line_number":266,"context_line":"                var dim \u003d {}"},{"line_number":267,"context_line":"                var dimList \u003d []"},{"line_number":268,"context_line":"                angular.forEach(vm.matchingMetrics, function(value, name) {"},{"line_number":269,"context_line":"                    for (var key in value.dimensions) {"},{"line_number":270,"context_line":"                        if (value.dimensions.hasOwnProperty(key)) {"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_7b6b5285","line":267,"range":{"start_line":266,"start_character":0,"end_line":267,"end_character":32},"updated":"2016-06-27 12:08:51.000000000","message":"Missing semicolons.\nVars can be combined into a single statement.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                angular.forEach(vm.matchingMetrics, function(value, name) {"},{"line_number":269,"context_line":"                    for (var key in value.dimensions) {"},{"line_number":270,"context_line":"                        if (value.dimensions.hasOwnProperty(key)) {"},{"line_number":271,"context_line":"                            var dimStr \u003d key + \"\u003d\" + value.dimensions[key]"},{"line_number":272,"context_line":"                            if (dimStr.indexOf(query) \u003d\u003d\u003d 0) {"},{"line_number":273,"context_line":"                                dim[dimStr] \u003d dimStr;"},{"line_number":274,"context_line":"                            }"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_db108602","line":271,"updated":"2016-06-27 12:08:51.000000000","message":"Missing semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":303,"context_line":""},{"line_number":304,"context_line":"                    }"},{"line_number":305,"context_line":"                    if (match) {"},{"line_number":306,"context_line":"                        mm.push(value)"},{"line_number":307,"context_line":"                    }"},{"line_number":308,"context_line":"                }"},{"line_number":309,"context_line":"            });"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_3b238a57","line":306,"updated":"2016-06-27 12:08:51.000000000","message":"Missing semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":318,"context_line":""},{"line_number":319,"context_line":"            uniqueDimensionKeys.sort();"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"            vm.matchingMetrics \u003d mm"},{"line_number":322,"context_line":"            vm.uniqueDimensionKeys \u003d vm.expression.matchBy \u003d uniqueDimensionKeys;"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"            updateExpression();"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_fbdbc24c","line":321,"updated":"2016-06-27 12:08:51.000000000","message":"Missing semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            uniqueDimensionKeys.sort();"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"            vm.matchingMetrics \u003d mm"},{"line_number":322,"context_line":"            vm.uniqueDimensionKeys \u003d vm.expression.matchBy \u003d uniqueDimensionKeys;"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"            updateExpression();"},{"line_number":325,"context_line":"        }"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_459957c3","line":322,"updated":"2016-06-27 12:08:51.000000000","message":"IMHO these types of assignments are confusing.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"25f93852197aaa90a16641b8970abb24da510f44","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            angular.forEach(vm.subExpressions, function updater(expr, index){"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                if (!expr.$valid) {"},{"line_number":122,"context_line":"                    console.warn(\u0027Expression at \u0027 + (index + 1) + \u0027 index is invalid\u0027);"},{"line_number":123,"context_line":"                    return !(hasInvalid \u003d true);"},{"line_number":124,"context_line":"                }"},{"line_number":125,"context_line":""}],"source_content_type":"text/javascript","patch_set":15,"id":"1aa78d24_31f7dbf6","line":122,"updated":"2016-07-05 07:02:57.000000000","message":"Every time I do something with the expressions I see a lot of warnings on the console.","commit_id":"1b65c112208ec1f5e1495b2abf805382d0dac2ca"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"c5abea8a07688f8ccde1e2da2e324a03baaa6887","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            matchBy \u003d [];"},{"line_number":118,"context_line":"            deterministic \u003d true;"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            angular.forEach(vm.subExpressions, function updater(expr, index){"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"                if (!expr.$valid) {"},{"line_number":123,"context_line":"                    return !(hasInvalid \u003d true);"}],"source_content_type":"text/javascript","patch_set":19,"id":"bacf61ea_a00ef931","line":120,"range":{"start_line":120,"start_character":70,"end_line":120,"end_character":75},"updated":"2016-07-28 12:52:45.000000000","message":"As Zawisza commented, this param is not used.","commit_id":"5ebaa102922e2df22a7e222d5c3b7ce238eae463"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"95df32b1f62847f35e08ae18bd8c369c4506e496","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            matchBy \u003d [];"},{"line_number":118,"context_line":"            deterministic \u003d true;"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            angular.forEach(vm.subExpressions, function updater(expr, index){"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"                if (!expr.$valid) {"},{"line_number":123,"context_line":"                    return !(hasInvalid \u003d true);"}],"source_content_type":"text/javascript","patch_set":19,"id":"bacf61ea_37c809a8","line":120,"range":{"start_line":120,"start_character":70,"end_line":120,"end_character":75},"in_reply_to":"bacf61ea_a00ef931","updated":"2016-08-01 10:20:04.000000000","message":"Done","commit_id":"5ebaa102922e2df22a7e222d5c3b7ce238eae463"}],"monitoring/static/monitoring/js/filters.js":[{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":11,"context_line":" * or implied. See the License for the specific language governing permissions and limitations under"},{"line_number":12,"context_line":" * the License."},{"line_number":13,"context_line":" */"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"angular"},{"line_number":16,"context_line":"    .module(\u0027monitoring.filters\u0027, ["},{"line_number":17,"context_line":"        \u0027monitoring.services\u0027"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_ec566bcd","line":14,"updated":"2016-06-27 12:08:51.000000000","message":"No strict mode?","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    return function monExpressionFilter(value, withOp) {"},{"line_number":25,"context_line":"        return monExpressionBuilder.asString([value], withOp);"},{"line_number":26,"context_line":"    }"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_ec0dcbe9","line":26,"updated":"2016-06-27 12:08:51.000000000","message":"Missed semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":30,"context_line":"function uniqueMetricFilterFactory() {"},{"line_number":31,"context_line":"    return function uniqueMetricFilter(arr) {"},{"line_number":32,"context_line":"        return uniqueNames(arr, \u0027name\u0027);"},{"line_number":33,"context_line":"    }"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    function uniqueNames(input, key) {"},{"line_number":36,"context_line":"        var unique \u003d {};"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_cc29ef39","line":33,"updated":"2016-06-27 12:08:51.000000000","message":"Missed semicolon.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        var unique \u003d {};"},{"line_number":37,"context_line":"        var uniqueList \u003d [];"},{"line_number":38,"context_line":"        for(var i \u003d 0; i \u003c input.length; i++){"},{"line_number":39,"context_line":"            if(typeof unique[input[i][key]] \u003d\u003d \"undefined\"){"},{"line_number":40,"context_line":"                unique[input[i][key]] \u003d \"\";"},{"line_number":41,"context_line":"                uniqueList.push(input[i]);"},{"line_number":42,"context_line":"            }"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_cce0cffd","line":39,"range":{"start_line":39,"start_character":44,"end_line":39,"end_character":46},"updated":"2016-06-27 12:08:51.000000000","message":"It\u0027s a good practice to use \"\u003d\u003d\u003d\" for comparison.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"}],"monitoring/static/monitoring/js/services.js":[{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":1,"context_line":"angular"},{"line_number":2,"context_line":"    .module(\u0027monitoring.services\u0027, [])"},{"line_number":3,"context_line":"    .factory(\u0027monExpressionBuilder\u0027, expressionBuilder);"},{"line_number":4,"context_line":""}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_4c9b3f73","line":1,"updated":"2016-06-27 12:08:51.000000000","message":"Missing license block.\nNo strict mode?","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"},{"author":{"_account_id":16204,"name":"Zawisza Hodzic","email":"zawisza.hodzic@ts.fujitsu.com","username":"zawisza.hodzic"},"change_message_id":"6ac3e1b73ef88b1a1f1080e98a96c80e4b706418","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    };"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    function subExpressionToString(subExpressions, withOp) {"},{"line_number":12,"context_line":"        var tmp \u003d [];"},{"line_number":13,"context_line":"        var exprAsStr;"},{"line_number":14,"context_line":"        angular.forEach(subExpressions, function(expr) {"},{"line_number":15,"context_line":"            exprAsStr \u003d ["},{"line_number":16,"context_line":"                expr.fun,"}],"source_content_type":"text/javascript","patch_set":8,"id":"3aaa91ec_4ca97f7b","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":22},"updated":"2016-06-27 12:08:51.000000000","message":"These vars can be combined.","commit_id":"28014b2a3074e1816cb86df32b0f467dc383b7d7"}]}
