Return-Path: X-Original-To: apmail-incubator-ambari-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-ambari-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5CB9CE0E4 for ; Fri, 11 Jan 2013 02:31:01 +0000 (UTC) Received: (qmail 21248 invoked by uid 500); 11 Jan 2013 02:31:01 -0000 Delivered-To: apmail-incubator-ambari-commits-archive@incubator.apache.org Received: (qmail 21219 invoked by uid 500); 11 Jan 2013 02:31:01 -0000 Mailing-List: contact ambari-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@incubator.apache.org Delivered-To: mailing list ambari-commits@incubator.apache.org Received: (qmail 21209 invoked by uid 99); 11 Jan 2013 02:31:01 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Jan 2013 02:31:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Jan 2013 02:30:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 1A964238896F; Fri, 11 Jan 2013 02:30:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1431824 - in /incubator/ambari/trunk/ambari-web/app: ./ controllers/main/ controllers/main/service/info/ data/ mappers/ models/ styles/ templates/main/apps/item/ templates/main/host/ utils/ views/main/ Date: Fri, 11 Jan 2013 02:30:31 -0000 To: ambari-commits@incubator.apache.org From: yusaku@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130111023032.1A964238896F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: yusaku Date: Fri Jan 11 02:30:30 2013 New Revision: 1431824 URL: http://svn.apache.org/viewvc?rev=1431824&view=rev Log: AMBARI-1145. Cluster Management refactoring. (yusaku) Modified: incubator/ambari/trunk/ambari-web/app/controllers/main/host.js incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js incubator/ambari/trunk/ambari-web/app/data/custom_configs.js incubator/ambari/trunk/ambari-web/app/mappers/jobs_mapper.js incubator/ambari/trunk/ambari-web/app/messages.js incubator/ambari/trunk/ambari-web/app/models/form.js incubator/ambari/trunk/ambari-web/app/models/host.js incubator/ambari/trunk/ambari-web/app/models/job.js incubator/ambari/trunk/ambari-web/app/styles/application.less incubator/ambari/trunk/ambari-web/app/styles/apps.less incubator/ambari/trunk/ambari-web/app/templates/main/apps/item/dag.hbs incubator/ambari/trunk/ambari-web/app/templates/main/host/summary.hbs incubator/ambari/trunk/ambari-web/app/utils/data_table.js incubator/ambari/trunk/ambari-web/app/views/main/apps_view.js incubator/ambari/trunk/ambari-web/app/views/main/host.js Modified: incubator/ambari/trunk/ambari-web/app/controllers/main/host.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/host.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/controllers/main/host.js (original) +++ incubator/ambari/trunk/ambari-web/app/controllers/main/host.js Fri Jan 11 02:30:30 2013 @@ -22,9 +22,10 @@ var validator = require('utils/validator App.MainHostController = Em.ArrayController.extend({ name:'mainHostController', content:[], + comeWithFilter: false, fullContent:App.Host.find(), clusters:App.Cluster.find(), - //componentsForFilter: App.Component.find(), + isAdmin: function(){ return App.db.getUser().admin; }.property('App.router.loginController.loginName'), @@ -50,38 +51,6 @@ App.MainHostController = Em.ArrayControl totalBinding:'fullContent.length', filters:{components:[]}, - pageSize: 25, - pageSizeRange:[10, 25, 50, 100, 'all'], - rangeStart:0, -// allChecked:false, -// selectedHostsIds:[], - selectedRack:null, - -// assignHostsToRack:function () { -// var selectedRack = this.get('selectedRack'); -// var sureMessage = this.t('hosts.assignToRack.sure'); -// var hostsIds = this.get('selectedHostsIds'); -// -// var hostString = hostsIds.length + " " + this.t(hostsIds.length > 1 ? "host.plural" : "host.singular"); -// -// if (selectedRack.constructor == 'App.Cluster' && hostsIds.length -// && confirm(sureMessage.format(hostString, selectedRack.get('clusterName')))) { -// this.get('content').forEach(function (host) { -// if (host.get('isChecked')) { -// host.set('cluster', selectedRack); -// host.set('isChecked', false); -// } -// }) -// this.set('selectedHostsIds', []); -// } -// -// }, - - sortingAsc:true, - isSort:false, - sortClass:function () { - return this.get('sortingAsc') ? 'icon-arrow-down' : 'icon-arrow-up'; - }.property('sortingAsc'), isDisabled:true, checkRemoved:function (host_id) { @@ -124,38 +93,6 @@ App.MainHostController = Em.ArrayControl return 5; }.property(), -// onAllChecked:function () { -// var hosts = this.get('content'); -// hosts.setEach('isChecked', this.get('allChecked')); -// this.set('isDisabled', !this.get('allChecked')); -// var selectedHostsIds = this.get('allChecked') ? hosts.getEach('id') : []; -// this.set('selectedHostsIds', selectedHostsIds); -// }.observes('allChecked'), -// -// onHostChecked:function (host) { -// var selected = this.get('selectedHostsIds'); -// host.set('isChecked', !host.get('isChecked')); -// if (host.get('isChecked')) { -// selected.push(host.get('id')); -// } else { -// var index = selected.indexOf(host.get('id')); -// if (index != -1) selected.splice(index, 1); -// } -// this.set('isDisabled', selected.length == 0); -// this.propertyDidChange('selectedHostsIds'); -// }, -// -// changeSelectedHosts:function () { -// var visibleHosts = this.get('content'); -// var selectedHosts = visibleHosts.filterProperty('isChecked', true); -// this.get('fullContent').forEach(function (item) { -// var index = visibleHosts.getEach('id').indexOf(item.get('id')); -// if (index == -1) item.set('isChecked', false); -// }); -// this.set('isDisabled', selectedHosts.length == 0); -// this.set('selectedHostsIds', selectedHosts.getEach('id')); -// }, - checkedComponentsIds:function () { var checked = []; this.get('componentsForFilter').forEach(function (comp) { @@ -166,20 +103,6 @@ App.MainHostController = Em.ArrayControl return checked; }, - filterByComponentsIds:function () { - var componentsIds = this.checkedComponentsIds(); - this.set('filters.components', componentsIds); - -// component.set('isChecked', component.get('id') != -1); - - this.changeContent(); - }, - - filterHostsBy:function (field, value) { - this.set('hostFilter' + field, value); - this.changeContent(); - }, - filterByComponent:function (component) { var id = component.get('id'); /*this.get('componentsForFilter').setEach('isChecked', false); @@ -189,7 +112,7 @@ App.MainHostController = Em.ArrayControl //component.set('checkedForHostFilter', true); this.set('filters.components', [component.get('id')]); console.log(this.get('filters.components').objectAt(0)); - this.changeContent(); + this.set('comeWithFilter', true); }, @@ -247,39 +170,8 @@ App.MainHostController = Em.ArrayControl items = this.applyHostFilters(items); this.set('total', items.length); - var content = items.slice(this.get('rangeStart'), this.get('rangeStop')); - this.replace(0, this.get('length'), content); -// this.changeSelectedHosts(); - }.observes('rangeStart', 'rangeStop', 'total'), - - showNextPage:function () { - this.nextPage(); - }, - showPreviousPage:function () { - this.previousPage(); - }, - assignedToRackPopup:function (event) { - var self = this; - App.ModalPopup.show({ - header:Em.I18n.t('hosts.assignedToRack.popup.header'), - body:Em.I18n.t('hosts.assignedToRack.popup.body'), - primary:'Yes', - secondary:'No', - onPrimary:function () { - self.assignedToRack(event.context); - this.hide(); - }, - onSecondary:function () { - this.hide(); - } - }); - }, - - assignedToRack:function (rack) { - var hosts = this.get('content'); - var selectedHosts = hosts.filterProperty('isChecked', true); - selectedHosts.setEach('cluster', rack); - }, + this.replace(0, this.get('length'), items); + }.observes('total'), decommissionButtonPopup:function () { var self = this; @@ -319,24 +211,7 @@ App.MainHostController = Em.ArrayControl selectedHosts.forEach(function (_hostInfo) { console.log('Removing: ' + _hostInfo.hostName); }); -// App.db.removeHosts(selectedHosts); this.get('fullContent').removeObjects(selectedHosts); - }, - sortByName:function () { - var asc = this.get('sortingAsc'); - var objects = this.get('fullContent').toArray().sort(function (a, b) { - var nA = a.get('hostName').toLowerCase(); - var nB = b.get('hostName').toLowerCase(); - if (nA < nB) - return asc ? -1 : 1; - else if (nA > nB) - return asc ? 1 : -1; - return 0; - }); - this.set('fullContent', objects); - this.set('isSort', true); - this.set('sortingAsc', !this.get('sortingAsc')); - this.changeContent(); } }); \ No newline at end of file Modified: incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js (original) +++ incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js Fri Jan 11 02:30:30 2013 @@ -276,6 +276,7 @@ App.MainServiceInfoConfigsController = E serviceConfigObj.isRequired = configProperty.isRequired ? configProperty.isRequired : true; serviceConfigObj.isReconfigurable = (configProperty.isReconfigurable !== undefined) ? configProperty.isReconfigurable : true; serviceConfigObj.isVisible = (configProperty.isVisible !== undefined) ? configProperty.isVisible : true; + serviceConfigObj.unit = (configProperty.isVisible !== undefined) ? configProperty.unit : undefined; } serviceConfigObj.displayType = this.get('configs').someProperty('name', index) ? this.get('configs').findProperty('name', index).displayType : null; @@ -877,16 +878,18 @@ App.MainServiceInfoConfigsController = E var value = _keyValue.match(/=(.*)/); if (key) { // Check dat entered config is allowed to reconfigure - if (this.get('uiConfigs').someProperty('name', key[1])) { + if (this.get('uiConfigs').filterProperty('filename', _site.name + '.xml').someProperty('name', key[1])) { var property = { - siteProperty: key[1], + siteProperty: null, displayNames: [] }; - if (this.get('configMapping').someProperty('name', key[1])) { - this.setPropertyDisplayNames(property.displayNames, this.get('configMapping').findProperty('name', key[1]).templateName); - } - siteProperties.push(property); if (_site.name !== 'core-site') { + property.siteProperty = key[1]; + + if (this.get('configMapping').someProperty('name', key[1])) { + this.setPropertyDisplayNames(property.displayNames, this.get('configMapping').findProperty('name', key[1]).templateName); + } + siteProperties.push(property); flag = false; } else { this.setSiteProperty(key[1], value[1], _site.name + '.xml'); @@ -924,8 +927,8 @@ App.MainServiceInfoConfigsController = E * Set property of the site variable */ setSiteProperty: function (key, value, filename) { - if(filename === 'core-site.xml' && this.get('uiConfigs').filterProperty('filename','core-site.xml').someProperty('name',key)) { - this.get('uiConfigs').filterProperty('filename','core-site.xml').findProperty('name',key).value = value; + if (filename === 'core-site.xml' && this.get('uiConfigs').filterProperty('filename', 'core-site.xml').someProperty('name', key)) { + this.get('uiConfigs').filterProperty('filename', 'core-site.xml').findProperty('name', key).value = value; return; } this.get('uiConfigs').pushObject({ Modified: incubator/ambari/trunk/ambari-web/app/data/custom_configs.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/custom_configs.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/data/custom_configs.js (original) +++ incubator/ambari/trunk/ambari-web/app/data/custom_configs.js Fri Jan 11 02:30:30 2013 @@ -29,6 +29,7 @@ module.exports = "displayType": "custom", "isVisible": true, "isRequired": false, + "isReconfigurable": false, "serviceName": "HDFS", "category": "Advanced" }, Modified: incubator/ambari/trunk/ambari-web/app/mappers/jobs_mapper.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/mappers/jobs_mapper.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/mappers/jobs_mapper.js (original) +++ incubator/ambari/trunk/ambari-web/app/mappers/jobs_mapper.js Fri Jan 11 02:30:30 2013 @@ -38,17 +38,11 @@ App.jobsMapper = App.QuickDataMapper.cre job_name:'jobName', workflow_entity_name:'workflowEntityName', user_name:'userName', - $queue:'default', - $acls:5, conf_path:'confPath', submit_time:'submitTime', maps:'maps', reduces:'reduces', status:'status', - $priority:null, - $failed_maps:3, - $failed_reduces:3, - $job_counters:3, input:'inputBytes', output:'outputBytes', elapsed_time:'elapsedTime' Modified: incubator/ambari/trunk/ambari-web/app/messages.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/messages.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/messages.js (original) +++ incubator/ambari/trunk/ambari-web/app/messages.js Fri Jan 11 02:30:30 2013 @@ -279,8 +279,6 @@ Em.I18n.translations = { 'hosts.host.stop.popup.header':'Confirmation', 'hosts.host.start.popup.body':'Are you sure?', 'hosts.host.stop.popup.body':'Are you sure?', - 'hosts.assignedToRack.popup.body':'Are you sure?', - 'hosts.assignedToRack.popup.header':'Confirmation', 'hosts.decommission.popup.body':'Are you sure?', 'hosts.decommission.popup.header':'Confirmation', 'hosts.delete.popup.body':'Are you sure?', @@ -323,7 +321,7 @@ Em.I18n.translations = { 'dashboard.services':'Services', 'dashboard.services.hosts':'Hosts', 'dashboard.services.uptime':'{0}', - 'dashboard.services.hdfs.summary':'{0} of {1} nodes live, {2}% capacity free', + 'dashboard.services.hdfs.summary':'{0} of {1} nodes live, {2}% capacity used', 'dashboard.services.hdfs.nanmenode':'NameNode', 'dashboard.services.hdfs.snanmenode':'Secondary NameNode', 'dashboard.services.hdfs.capacity':'HDFS Disk Capacity', Modified: incubator/ambari/trunk/ambari-web/app/models/form.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/models/form.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/models/form.js (original) +++ incubator/ambari/trunk/ambari-web/app/models/form.js Fri Jan 11 02:30:30 2013 @@ -124,12 +124,16 @@ App.Form = Em.View.extend({ }); } else { if (this.get('className')) - App.store.createRecord(this.get('className'), this.getValues()) - else + { + var rec = App.store.createRecord(this.get('className'), this.getValues()); + //rec.get('stateManager').send('becameClean'); + } + else{ console.log("Please define class name for your form " + this.constructor); + } } - App.store.commit(); + //App.store.commit(); this.set('result', 1); return true; Modified: incubator/ambari/trunk/ambari-web/app/models/host.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/models/host.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/models/host.js (original) +++ incubator/ambari/trunk/ambari-web/app/models/host.js Fri Jan 11 02:30:30 2013 @@ -68,13 +68,13 @@ App.Host = DS.Model.extend({ * Format diskUsed value to float with 2 digits (also convert to GB) */ diskUsedFormatted: function() { - return Math.round(this.get('diskUsed') / (1024*1024*1024) * Math.pow(10, 2)) / Math.pow(10, 2) + 'GB'; + return Math.round(this.get('diskUsed') * Math.pow(10, 2)) / Math.pow(10, 2) + 'GB'; }.property('diskUsed'), /** * Format diskTotal value to float with 2 digits (also convert to GB) */ diskTotalFormatted: function() { - return Math.round(this.get('diskTotal') / (1024*1024*1024) * Math.pow(10, 2)) / Math.pow(10, 2) + 'GB'; + return Math.round(this.get('diskTotal') * Math.pow(10, 2)) / Math.pow(10, 2) + 'GB'; }.property('diskTotal'), /** * Percent value of used disk space Modified: incubator/ambari/trunk/ambari-web/app/models/job.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/models/job.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/models/job.js (original) +++ incubator/ambari/trunk/ambari-web/app/models/job.js Fri Jan 11 02:30:30 2013 @@ -28,23 +28,11 @@ App.Job = DS.Model.extend({ jobName:DS.attr('string'), workflowEntityName:DS.attr('string'), userName:DS.attr('string'), - queue:DS.attr('string'), - acls:DS.attr('string'), confPath:DS.attr('string'), submitTime:DS.attr('number'), - launchTime:DS.attr('number'), - finishTime:DS.attr('number'), maps:DS.attr('number'), reduces:DS.attr('number'), status:DS.attr('string'), - priority:DS.attr('string'), - finishedMaps:DS.attr('number'), - finishedReduces:DS.attr('number'), - failedMaps:DS.attr('number'), - failedReduces:DS.attr('number'), - mapsRuntime:DS.attr('number'), - reducesRuntime:DS.attr('number'), - jobCounters:DS.attr('number'), input:DS.attr('number'), output:DS.attr('number'), elapsedTime:DS.attr('number'), @@ -66,323 +54,8 @@ App.Job = DS.Model.extend({ outputFormatted: function () { var output = this.get('output'); return misc.formatBandwidth(output); - }.property('output'), - - mapsProgress: function(){ - return Math.round((this.get('finishedMaps') / this.get('maps'))*100) || 0; - }.property('finishedMaps', 'maps'), - - reducesProgress: function(){ - return Math.round((this.get('finishedReduces') / this.get('reduces'))*100) || 0; - }.property('finishedReduces', 'reduces') + }.property('output') }); -App.Job.FIXTURES = [ - /*{ - id:1, - job_id:'job_201209201356_0001', - workflow:1, - job_name:'PiEstimator', - workflow_entity_name:'nodeA', - user_name:'jsmith', - queue:'default', - acls:null, - conf_path:'hdfs://localhost:9000/tmp/hadoop-jsmith/mapred/staging/jsmith/\.staging/job_201209201356_0001/job\.xml', - submit_time:1348174627119, - launch_time:1348174627650, - finish_time:1348174669539, - maps:20, - reduces:11, - status:'RUNNING', - priority:null, - finished_maps:12, - finished_reduces:5, - failed_maps:null, failed_reduces:null, - - maps_runtime:22299, - reduces_runtime:11470, - map_counters:null, - reduce_counters:null, - job_counters:null, - job_timeline:'[[{"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x" :65,"y":0},{"x":66,"y":0},{"x":67,"y":0},{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x" :129,"y":0},{"x":130,"y":0},{"x":131,"y":0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":2},{"x":146,"y":2},{"x":147,"y":2},{"x":148,"y":2},{"x":149,"y":2},{"x":150,"y":2},{"x":151,"y":2},{"x":152,"y":2},{"x":153,"y":2},{"x":154,"y":2},{"x":155,"y":2},{"x":156,"y":2},{"x":157,"y":2},{"x":158,"y":2},{"x":159,"y":2},{"x":160,"y":2},{"x":161,"y":2},{"x":162,"y":2},{"x":163,"y":2},{"x":164,"y":2},{"x":165,"y":2},{"x":166,"y":2},{"x":167,"y":2},{"x":168,"y":2},{"x":169,"y":2},{"x":170,"y":2},{"x":171,"y":2},{"x":172,"y":2},{"x":173,"y":2},{"x":174,"y":2},{"x":175,"y":2},{"x":176,"y":2},{"x":177,"y":2},{"x":178,"y":2},{"x":179,"y":2},{"x":180,"y":2},{"x":181,"y":2},{"x":182,"y":2},{"x":183,"y":2},{"x":184,"y":2},{"x":185,"y":2},{"x":186,"y":2},{"x":187,"y":2},{"x":188,"y":2},{"x":189,"y":2},{"x":190,"y":2},{ "x":191,"y":2},{"x":192,"y":2},{"x":193,"y":2},{"x":194,"y":2},{"x":195,"y":2},{"x":196,"y":2},{"x":197,"y":2},{"x":198,"y":2},{"x":199,"y":2},{"x":200,"y":2},{"x":201,"y":2},{"x":202,"y":2},{"x":203,"y":2},{"x":204,"y":2},{"x":205,"y":2},{"x":206,"y":2},{"x":207,"y":2},{"x":208,"y":2},{"x":209,"y":2},{"x":210,"y":2},{"x":211,"y":2},{"x":212,"y":2},{"x":213,"y":2},{"x":214,"y":2},{"x":215,"y":2},{"x":216,"y":2},{"x":217,"y":2},{"x":218,"y":2},{"x":219,"y":2},{"x":220,"y":2},{"x":221,"y":2},{"x":222,"y":2},{"x":223,"y":2},{"x":224,"y":2},{"x":225,"y":2},{"x":226,"y":2},{"x":227,"y":2},{"x":228,"y":2},{"x":229,"y":2},{"x":230,"y":2},{"x":231,"y":2},{"x":232,"y":2},{"x":233,"y":2},{"x":234,"y":2},{"x":235,"y":2},{"x":236,"y":2},{"x":237,"y":2},{"x":238,"y":2},{"x":239,"y":2},{"x":240,"y":2},{"x":241,"y":2},{"x":242,"y":2},{"x":243,"y":2},{"x":244,"y":2},{"x":245,"y":2},{"x":246,"y":2},{"x":247,"y":2},{"x":248,"y":2},{"x":249,"y":2},{"x":250,"y":2},{"x":251,"y":2},{"x":252,"y":2 },{"x":253,"y":2},{"x":254,"y":2},{"x":255,"y":2},{"x":256,"y":2},{"x":257,"y":2},{"x":258,"y":2},{"x":259,"y":2},{"x":260,"y":2},{"x":261,"y":2},{"x":262,"y":2},{"x":263,"y":2},{"x":264,"y":2},{"x":265,"y":2},{"x":266,"y":2},{"x":267,"y":2},{"x":268,"y":2},{"x":269,"y":2},{"x":270,"y":2},{"x":271,"y":2},{"x":272,"y":2},{"x":273,"y":2},{"x":274,"y":1},{"x":275,"y":1},{"x":276,"y":1},{"x":277,"y":1},{"x":278,"y":1},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":0},{"x":289,"y":0},{"x":290,"y":0},{"x":291,"y":0},{"x":292,"y":0},{"x":293,"y":0},{"x":294,"y":0},{"x":295,"y":0},{"x":296,"y":0},{"x":297,"y":0},{"x":298,"y":0},{"x":299,"y":0},{"x":300,"y":0},{"x":301,"y":0},{"x":302,"y":0},{"x":303,"y":0},{"x":304,"y":0},{"x":305,"y":0},{"x":306,"y":0},{"x":307,"y":0},{"x":308,"y":0},{"x":309,"y":0},{"x":310,"y":0},{"x":311,"y":0},{"x":312,"y":0},{"x":313,"y":0},{"x":314,"y ":0},{"x":315,"y":0},{"x":316,"y":0},{"x":317,"y":0},{"x":318,"y":0},{"x":319,"y":0},{"x":320,"y":0},{"x":321,"y":0},{"x":322,"y":0},{"x":323,"y":0},{"x":324,"y":0},{"x":325,"y":0},{"x":326,"y":0},{"x":327,"y":0},{"x":328,"y":0},{"x":329,"y":0},{"x":330,"y":0},{"x":331,"y":0},{"x":332,"y":0},{"x":333,"y":0},{"x":334,"y":0},{"x":335,"y":0},{"x":336,"y":0},{"x":337,"y":0},{"x":338,"y":0},{"x":339,"y":0},{"x":340,"y":0},{"x":341,"y":0},{"x":342,"y":0},{"x":343,"y":0},{"x":344,"y":0},{"x":345,"y":0},{"x":346,"y":0},{"x":347,"y":0},{"x":348,"y":0},{"x":349,"y":0},{"x":350,"y":0},{"x":351,"y":0},{"x":352,"y":0},{"x":353,"y":0},{"x":354,"y":0},{"x":355,"y":0},{"x":356,"y":0},{"x":357,"y":0},{"x":358,"y":0},{"x":359,"y":0},{"x":360,"y":0},{"x":361,"y":0},{"x":362,"y":0},{"x":363,"y":0},{"x":364,"y":0},{"x":365,"y":0},{"x":366,"y":0},{"x":367,"y":0},{"x":368,"y":0},{"x":369,"y":0},{"x":370,"y":0},{"x":371,"y":0},{"x":372,"y":0},{"x":373,"y":0},{"x":374,"y":0},{"x":375,"y":0},{"x":376 ,"y":0},{"x":377,"y":0},{"x":378,"y":0},{"x":379,"y":0},{"x":380,"y":0},{"x":381,"y":0},{"x":382,"y":0},{"x":383,"y":0},{"x":384,"y":0},{"x":385,"y":0},{"x":386,"y":0},{"x":387,"y":0},{"x":388,"y":0},{"x":389,"y":0},{"x":390,"y":0},{"x":391,"y":0},{"x":392,"y":0},{"x":393,"y":0},{"x":394,"y":0},{"x":395,"y":0},{"x":396,"y":0},{"x":397,"y":0},{"x":398,"y":0},{"x":399,"y":0},{"x":400,"y":0},{"x":401,"y":0},{"x":402,"y":0},{"x":403,"y":0},{"x":404,"y":0},{"x":405,"y":0},{"x":406,"y":0},{"x":407,"y":0},{"x":408,"y":0},{"x":409,"y":0},{"x":410,"y":0},{"x":411,"y":0},{"x":412,"y":0},{"x":413,"y":0},{"x":414,"y":0},{"x":415,"y":0},{"x":416,"y":0},{"x":417,"y":0},{"x":418,"y":0},{"x":419,"y":0},{"x":420,"y":0},{"x":421,"y":0},{"x":422,"y":0},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x": 438,"y":0},{"x":439,"y":0},{"x":440,"y":0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}],[ {"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x":65,"y":0},{"x":66," y":0},{"x":67,"y":0},{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x":129,"y":0},{"x":130 ,"y":0},{"x":131,"y":0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":0},{"x":146,"y":0},{"x":147,"y":0},{"x":148,"y":0},{"x":149,"y":0},{"x":150,"y":0},{"x":151,"y":0},{"x":152,"y":0},{"x":153,"y":0},{"x":154,"y":0},{"x":155,"y":0},{"x":156,"y":0},{"x":157,"y":0},{"x":158,"y":0},{"x":159,"y":0},{"x":160,"y":0},{"x":161,"y":0},{"x":162,"y":0},{"x":163,"y":0},{"x":164,"y":0},{"x":165,"y":0},{"x":166,"y":0},{"x":167,"y":0},{"x":168,"y":0},{"x":169,"y":0},{"x":170,"y":0},{"x":171,"y":0},{"x":172,"y":0},{"x":173,"y":0},{"x":174,"y":0},{"x":175,"y":0},{"x":176,"y":0},{"x":177,"y":0},{"x":178,"y":0},{"x":179,"y":0},{"x":180,"y":0},{"x":181,"y":0},{"x":182,"y":0},{"x":183,"y":0},{"x":184,"y":0},{"x":185,"y":0},{"x":186,"y":0},{"x":187,"y":0},{"x":188,"y":0},{"x":189,"y":0},{"x":190,"y":0},{"x":191,"y":0},{"x": 192,"y":0},{"x":193,"y":0},{"x":194,"y":0},{"x":195,"y":0},{"x":196,"y":0},{"x":197,"y":0},{"x":198,"y":0},{"x":199,"y":0},{"x":200,"y":0},{"x":201,"y":0},{"x":202,"y":0},{"x":203,"y":0},{"x":204,"y":0},{"x":205,"y":0},{"x":206,"y":0},{"x":207,"y":0},{"x":208,"y":0},{"x":209,"y":0},{"x":210,"y":0},{"x":211,"y":0},{"x":212,"y":0},{"x":213,"y":0},{"x":214,"y":0},{"x":215,"y":0},{"x":216,"y":0},{"x":217,"y":0},{"x":218,"y":0},{"x":219,"y":0},{"x":220,"y":0},{"x":221,"y":0},{"x":222,"y":0},{"x":223,"y":0},{"x":224,"y":0},{"x":225,"y":0},{"x":226,"y":0},{"x":227,"y":0},{"x":228,"y":0},{"x":229,"y":0},{"x":230,"y":0},{"x":231,"y":0},{"x":232,"y":0},{"x":233,"y":0},{"x":234,"y":0},{"x":235,"y":0},{"x":236,"y":0},{"x":237,"y":0},{"x":238,"y":0},{"x":239,"y":0},{"x":240,"y":0},{"x":241,"y":0},{"x":242,"y":0},{"x":243,"y":0},{"x":244,"y":0},{"x":245,"y":0},{"x":246,"y":0},{"x":247,"y":0},{"x":248,"y":0},{"x":249,"y":0},{"x":250,"y":0},{"x":251,"y":0},{"x":252,"y":0},{"x":253,"y":0},{" x":254,"y":0},{"x":255,"y":0},{"x":256,"y":0},{"x":257,"y":0},{"x":258,"y":0},{"x":259,"y":0},{"x":260,"y":0},{"x":261,"y":0},{"x":262,"y":0},{"x":263,"y":0},{"x":264,"y":0},{"x":265,"y":0},{"x":266,"y":0},{"x":267,"y":0},{"x":268,"y":0},{"x":269,"y":0},{"x":270,"y":0},{"x":271,"y":0},{"x":272,"y":0},{"x":273,"y":0},{"x":274,"y":0},{"x":275,"y":0},{"x":276,"y":0},{"x":277,"y":0},{"x":278,"y":0},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":1},{"x":289,"y":1},{"x":290,"y":1},{"x":291,"y":1},{"x":292,"y":1},{"x":293,"y":1},{"x":294,"y":1},{"x":295,"y":1},{"x":296,"y":1},{"x":297,"y":1},{"x":298,"y":1},{"x":299,"y":1},{"x":300,"y":1},{"x":301,"y":1},{"x":302,"y":1},{"x":303,"y":1},{"x":304,"y":1},{"x":305,"y":1},{"x":306,"y":1},{"x":307,"y":1},{"x":308,"y":1},{"x":309,"y":1},{"x":310,"y":1},{"x":311,"y":1},{"x":312,"y":1},{"x":313,"y":1},{"x":314,"y":1},{"x":315,"y":1} ,{"x":316,"y":1},{"x":317,"y":1},{"x":318,"y":1},{"x":319,"y":1},{"x":320,"y":1},{"x":321,"y":1},{"x":322,"y":1},{"x":323,"y":1},{"x":324,"y":1},{"x":325,"y":1},{"x":326,"y":1},{"x":327,"y":1},{"x":328,"y":1},{"x":329,"y":1},{"x":330,"y":1},{"x":331,"y":1},{"x":332,"y":1},{"x":333,"y":1},{"x":334,"y":1},{"x":335,"y":1},{"x":336,"y":1},{"x":337,"y":1},{"x":338,"y":1},{"x":339,"y":1},{"x":340,"y":1},{"x":341,"y":1},{"x":342,"y":1},{"x":343,"y":1},{"x":344,"y":1},{"x":345,"y":1},{"x":346,"y":1},{"x":347,"y":1},{"x":348,"y":1},{"x":349,"y":1},{"x":350,"y":1},{"x":351,"y":1},{"x":352,"y":1},{"x":353,"y":1},{"x":354,"y":1},{"x":355,"y":1},{"x":356,"y":1},{"x":357,"y":1},{"x":358,"y":1},{"x":359,"y":1},{"x":360,"y":1},{"x":361,"y":1},{"x":362,"y":1},{"x":363,"y":1},{"x":364,"y":1},{"x":365,"y":1},{"x":366,"y":1},{"x":367,"y":1},{"x":368,"y":1},{"x":369,"y":1},{"x":370,"y":1},{"x":371,"y":1},{"x":372,"y":1},{"x":373,"y":1},{"x":374,"y":1},{"x":375,"y":1},{"x":376,"y":1},{"x":377,"y" :1},{"x":378,"y":1},{"x":379,"y":1},{"x":380,"y":1},{"x":381,"y":1},{"x":382,"y":1},{"x":383,"y":1},{"x":384,"y":1},{"x":385,"y":1},{"x":386,"y":1},{"x":387,"y":1},{"x":388,"y":0},{"x":389,"y":0},{"x":390,"y":0},{"x":391,"y":0},{"x":392,"y":0},{"x":393,"y":0},{"x":394,"y":0},{"x":395,"y":0},{"x":396,"y":0},{"x":397,"y":0},{"x":398,"y":0},{"x":399,"y":0},{"x":400,"y":0},{"x":401,"y":0},{"x":402,"y":0},{"x":403,"y":0},{"x":404,"y":0},{"x":405,"y":0},{"x":406,"y":0},{"x":407,"y":0},{"x":408,"y":0},{"x":409,"y":0},{"x":410,"y":0},{"x":411,"y":0},{"x":412,"y":0},{"x":413,"y":0},{"x":414,"y":0},{"x":415,"y":0},{"x":416,"y":0},{"x":417,"y":0},{"x":418,"y":0},{"x":419,"y":0},{"x":420,"y":0},{"x":421,"y":0},{"x":422,"y":0},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":438,"y":0},{"x":439, "y":0},{"x":440,"y":0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}],[{"x":0,"y":0},{"x":1 ,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x":65,"y":0},{"x":66,"y":0},{"x":67,"y":0} ,{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x":129,"y":0},{"x":130,"y":0},{"x":131,"y" :0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":0},{"x":146,"y":0},{"x":147,"y":0},{"x":148,"y":0},{"x":149,"y":0},{"x":150,"y":0},{"x":151,"y":0},{"x":152,"y":0},{"x":153,"y":0},{"x":154,"y":0},{"x":155,"y":0},{"x":156,"y":0},{"x":157,"y":0},{"x":158,"y":0},{"x":159,"y":0},{"x":160,"y":0},{"x":161,"y":0},{"x":162,"y":0},{"x":163,"y":0},{"x":164,"y":0},{"x":165,"y":0},{"x":166,"y":0},{"x":167,"y":0},{"x":168,"y":0},{"x":169,"y":0},{"x":170,"y":0},{"x":171,"y":0},{"x":172,"y":0},{"x":173,"y":0},{"x":174,"y":0},{"x":175,"y":0},{"x":176,"y":0},{"x":177,"y":0},{"x":178,"y":0},{"x":179,"y":0},{"x":180,"y":0},{"x":181,"y":0},{"x":182,"y":0},{"x":183,"y":0},{"x":184,"y":0},{"x":185,"y":0},{"x":186,"y":0},{"x":187,"y":0},{"x":188,"y":0},{"x":189,"y":0},{"x":190,"y":0},{"x":191,"y":0},{"x":192,"y":0},{"x":193, "y":0},{"x":194,"y":0},{"x":195,"y":0},{"x":196,"y":0},{"x":197,"y":0},{"x":198,"y":0},{"x":199,"y":0},{"x":200,"y":0},{"x":201,"y":0},{"x":202,"y":0},{"x":203,"y":0},{"x":204,"y":0},{"x":205,"y":0},{"x":206,"y":0},{"x":207,"y":0},{"x":208,"y":0},{"x":209,"y":0},{"x":210,"y":0},{"x":211,"y":0},{"x":212,"y":0},{"x":213,"y":0},{"x":214,"y":0},{"x":215,"y":0},{"x":216,"y":0},{"x":217,"y":0},{"x":218,"y":0},{"x":219,"y":0},{"x":220,"y":0},{"x":221,"y":0},{"x":222,"y":0},{"x":223,"y":0},{"x":224,"y":0},{"x":225,"y":0},{"x":226,"y":0},{"x":227,"y":0},{"x":228,"y":0},{"x":229,"y":0},{"x":230,"y":0},{"x":231,"y":0},{"x":232,"y":0},{"x":233,"y":0},{"x":234,"y":0},{"x":235,"y":0},{"x":236,"y":0},{"x":237,"y":0},{"x":238,"y":0},{"x":239,"y":0},{"x":240,"y":0},{"x":241,"y":0},{"x":242,"y":0},{"x":243,"y":0},{"x":244,"y":0},{"x":245,"y":0},{"x":246,"y":0},{"x":247,"y":0},{"x":248,"y":0},{"x":249,"y":0},{"x":250,"y":0},{"x":251,"y":0},{"x":252,"y":0},{"x":253,"y":0},{"x":254,"y":0},{"x":2 55,"y":0},{"x":256,"y":0},{"x":257,"y":0},{"x":258,"y":0},{"x":259,"y":0},{"x":260,"y":0},{"x":261,"y":0},{"x":262,"y":0},{"x":263,"y":0},{"x":264,"y":0},{"x":265,"y":0},{"x":266,"y":0},{"x":267,"y":0},{"x":268,"y":0},{"x":269,"y":0},{"x":270,"y":0},{"x":271,"y":0},{"x":272,"y":0},{"x":273,"y":0},{"x":274,"y":0},{"x":275,"y":0},{"x":276,"y":0},{"x":277,"y":0},{"x":278,"y":0},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":0},{"x":289,"y":0},{"x":290,"y":0},{"x":291,"y":0},{"x":292,"y":0},{"x":293,"y":0},{"x":294,"y":0},{"x":295,"y":0},{"x":296,"y":0},{"x":297,"y":0},{"x":298,"y":0},{"x":299,"y":0},{"x":300,"y":0},{"x":301,"y":0},{"x":302,"y":0},{"x":303,"y":0},{"x":304,"y":0},{"x":305,"y":0},{"x":306,"y":0},{"x":307,"y":0},{"x":308,"y":0},{"x":309,"y":0},{"x":310,"y":0},{"x":311,"y":0},{"x":312,"y":0},{"x":313,"y":0},{"x":314,"y":0},{"x":315,"y":0},{"x":316,"y":0},{"x ":317,"y":0},{"x":318,"y":0},{"x":319,"y":0},{"x":320,"y":0},{"x":321,"y":0},{"x":322,"y":0},{"x":323,"y":0},{"x":324,"y":0},{"x":325,"y":0},{"x":326,"y":0},{"x":327,"y":0},{"x":328,"y":0},{"x":329,"y":0},{"x":330,"y":0},{"x":331,"y":0},{"x":332,"y":0},{"x":333,"y":0},{"x":334,"y":0},{"x":335,"y":0},{"x":336,"y":0},{"x":337,"y":0},{"x":338,"y":0},{"x":339,"y":0},{"x":340,"y":0},{"x":341,"y":0},{"x":342,"y":0},{"x":343,"y":0},{"x":344,"y":0},{"x":345,"y":0},{"x":346,"y":0},{"x":347,"y":0},{"x":348,"y":0},{"x":349,"y":0},{"x":350,"y":0},{"x":351,"y":0},{"x":352,"y":0},{"x":353,"y":0},{"x":354,"y":0},{"x":355,"y":0},{"x":356,"y":0},{"x":357,"y":0},{"x":358,"y":0},{"x":359,"y":0},{"x":360,"y":0},{"x":361,"y":0},{"x":362,"y":0},{"x":363,"y":0},{"x":364,"y":0},{"x":365,"y":0},{"x":366,"y":0},{"x":367,"y":0},{"x":368,"y":0},{"x":369,"y":0},{"x":370,"y":0},{"x":371,"y":0},{"x":372,"y":0},{"x":373,"y":0},{"x":374,"y":0},{"x":375,"y":0},{"x":376,"y":0},{"x":377,"y":0},{"x":378,"y":0}, {"x":379,"y":0},{"x":380,"y":0},{"x":381,"y":0},{"x":382,"y":0},{"x":383,"y":0},{"x":384,"y":0},{"x":385,"y":0},{"x":386,"y":0},{"x":387,"y":0},{"x":388,"y":1},{"x":389,"y":1},{"x":390,"y":1},{"x":391,"y":1},{"x":392,"y":1},{"x":393,"y":1},{"x":394,"y":1},{"x":395,"y":1},{"x":396,"y":1},{"x":397,"y":1},{"x":398,"y":1},{"x":399,"y":1},{"x":400,"y":1},{"x":401,"y":1},{"x":402,"y":1},{"x":403,"y":1},{"x":404,"y":1},{"x":405,"y":1},{"x":406,"y":1},{"x":407,"y":1},{"x":408,"y":1},{"x":409,"y":1},{"x":410,"y":1},{"x":411,"y":1},{"x":412,"y":1},{"x":413,"y":1},{"x":414,"y":1},{"x":415,"y":1},{"x":416,"y":1},{"x":417,"y":1},{"x":418,"y":1},{"x":419,"y":1},{"x":420,"y":1},{"x":421,"y":1},{"x":422,"y":1},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":438,"y":0},{"x":439,"y":0},{"x":440,"y": 0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}]]', [... 282 lines stripped ...] Modified: incubator/ambari/trunk/ambari-web/app/styles/application.less URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/styles/application.less?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/styles/application.less (original) +++ incubator/ambari/trunk/ambari-web/app/styles/application.less Fri Jan 11 02:30:30 2013 @@ -2280,6 +2280,10 @@ ul.inline li { border-color: #D2D9DD; color: #4E575B; text-shadow: none; + .spinner { + padding: 8px 35px 8px 42px; + background: url(/img/spinner.gif) no-repeat; + } } /* @@ -2303,10 +2307,6 @@ ul.inline li { } .modal-body { - .spinner { - padding: 8px 35px 8px 42px; - background: url(/img/spinner.gif) no-repeat; - } max-height: none; } Modified: incubator/ambari/trunk/ambari-web/app/styles/apps.less URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/styles/apps.less?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/styles/apps.less (original) +++ incubator/ambari/trunk/ambari-web/app/styles/apps.less Fri Jan 11 02:30:30 2013 @@ -58,9 +58,7 @@ #dataTable { table-layout: fixed; td { - &.appId { - word-wrap: break-word; - } + word-wrap: break-word; } } Modified: incubator/ambari/trunk/ambari-web/app/templates/main/apps/item/dag.hbs URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/templates/main/apps/item/dag.hbs?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/templates/main/apps/item/dag.hbs (original) +++ incubator/ambari/trunk/ambari-web/app/templates/main/apps/item/dag.hbs Fri Jan 11 02:30:30 2013 @@ -36,8 +36,8 @@ {{job.workflowEntityName}} {{job.id}} {{job.status}} - {{job.maps}} ({{job.mapsProgress}}%) - {{job.reduces}} ({{job.reducesProgress}}%) + {{job.maps}} + {{job.reduces}} {{job.inputFormatted}} {{job.outputFormatted}} {{job.duration}} Modified: incubator/ambari/trunk/ambari-web/app/templates/main/host/summary.hbs URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/templates/main/host/summary.hbs?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/templates/main/host/summary.hbs (original) +++ incubator/ambari/trunk/ambari-web/app/templates/main/host/summary.hbs Fri Jan 11 02:30:30 2013 @@ -30,7 +30,7 @@
IP Address:
 {{view.content.ip}}
OS:
 {{view.content.osType}} ({{view.content.osArch}})
CPU:
 {{view.content.cpu}}
-
Disk:
 {{view.content.diskUsageFormatted}}
+
Disk:
 {{view.content.diskInfoBar}}
Memory:
 {{view.content.memoryFormatted}}
Load Avg:
 {{view.content.loadAvg}}
Agent
Heartbeat:
{{view.timeSinceHeartBeat}}
Modified: incubator/ambari/trunk/ambari-web/app/utils/data_table.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/utils/data_table.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/utils/data_table.js (original) +++ incubator/ambari/trunk/ambari-web/app/utils/data_table.js Fri Jan 11 02:30:30 2013 @@ -160,7 +160,7 @@ jQuery.extend($.fn.dataTableExt.afnFilte {iColumn: '0', elementId: 'star_filter', type: 'star'}, {iColumn: '3', elementId: 'cpu_filter', type: 'number'}, {iColumn: '6', elementId: 'load_avg_filter', type: 'number'}, - {iColumn: '4', elementId: 'user_filter', type: 'multiple'}, + {iColumn: '5', elementId: 'user_filter', type: 'multiple'}, {iColumn: '9', elementId: 'components_filter', type: 'multiple'}, {iColumn: '6', elementId: 'jobs_filter', type: 'number' }, {iColumn: '4', elementId: 'ram_filter', type: 'ambari-bandwidth' }, Modified: incubator/ambari/trunk/ambari-web/app/views/main/apps_view.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/views/main/apps_view.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/views/main/apps_view.js (original) +++ incubator/ambari/trunk/ambari-web/app/views/main/apps_view.js Fri Jan 11 02:30:30 2013 @@ -268,9 +268,11 @@ App.MainAppsView = Em.View.extend({ */ updateStars: function() { var self = this; - $('#dataTable tbody tr').each(function(index) { - self.get('oTable').fnUpdate( $('#dataTable tbody tr:eq(' + index + ') td:eq(0)').html(), self.get('oTable').fnSettings()['aiDisplay'][index], 0); - }); + if (this.get('oTable').fnSettings().fnRecordsDisplay()) { + $('#dataTable tbody tr').each(function(index) { + self.get('oTable').fnUpdate( $('#dataTable tbody tr:eq(' + index + ') td:eq(0)').html(), self.get('oTable').fnSettings()['aiDisplay'][index], 0); + }); + } }, /** * Reset filters and "turn off" stars Modified: incubator/ambari/trunk/ambari-web/app/views/main/host.js URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/views/main/host.js?rev=1431824&r1=1431823&r2=1431824&view=diff ============================================================================== --- incubator/ambari/trunk/ambari-web/app/views/main/host.js (original) +++ incubator/ambari/trunk/ambari-web/app/views/main/host.js Fri Jan 11 02:30:30 2013 @@ -95,46 +95,8 @@ App.MainHostView = Em.View.extend({ //return "width:" + (25+Math.random()*50) + "%"; // Just for tests purposes }.property('content.diskUsage') -// HostCheckboxView:Em.Checkbox.extend({ -// content:null, -// isChecked:false, -// change:function (event) { -// this.set('isChecked', !this.get('content.isChecked')); -// App.router.get('mainHostController').onHostChecked(this.get('content')); -// } -// }) }), - RackCombobox:App.Combobox.extend({ - disabled:function () { - var selectedHostsIds = App.router.get('mainHostController.selectedHostsIds'); - - // when user apply assigning and hosts become unchecked, we need to clear textfield - if (!selectedHostsIds.length) { - this.clearTextFieldValue(); - } - - return !selectedHostsIds.length; - - }.property('App.router.mainHostController.selectedHostsIds'), - - recordArray:App.Cluster.find(), - placeholderText:Em.I18n.t('hosts.assignRack'), - selectionBinding:"App.router.mainHostController.selectedRack", - optionLabelPath:"content.clusterName", - optionValuePath:"content.id", - didInsertElement:function () { - this._super(); - App.router.get('mainHostController').propertyDidChange('selectedHostsIds'); - } - }), - - assignRackButtonDisabled:function () { - var selectedHostsIds = App.router.get('mainHostController.selectedHostsIds'); - var rack = App.router.get('mainHostController.selectedRack'); - return (selectedHostsIds.length && rack && rack.constructor == 'App.Cluster') ? false : "disabled"; - }.property('App.router.mainHostController.selectedHostsIds', 'App.router.mainHostController.selectedRack'), - nameFilterView: Em.TextField.extend({ classNames:['input-medium'], type:'text', @@ -343,7 +305,6 @@ App.MainHostView = Em.View.extend({ '{{/each}}' + '' + '' + - '' + '' + '' + '
  • ' + @@ -391,6 +352,14 @@ App.MainHostView = Em.View.extend({ }); } }, + + didInsertElement:function () { + if (this.get('controller.comeWithFilter')) { + this.applyFilter(); + this.closeFilters(); + } + }, + applyFilter:function() { var chosenComponents = new Array();