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 @@
<td>{{job.workflowEntityName}}</td>
<td>{{job.id}}</td>
<td>{{job.status}}</td>
- <td>{{job.maps}} ({{job.mapsProgress}}%)</td>
- <td>{{job.reduces}} ({{job.reducesProgress}}%)</td>
+ <td>{{job.maps}}</td>
+ <td>{{job.reduces}}</td>
<td>{{job.inputFormatted}}</td>
<td>{{job.outputFormatted}}</td>
<td>{{job.duration}}</td>
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 @@
<dt>IP Address:</dt><dd> {{view.content.ip}}</dd>
<dt>OS:</dt><dd> {{view.content.osType}} ({{view.content.osArch}})</dd>
<dt>CPU:</dt><dd> {{view.content.cpu}}</dd>
- <dt>Disk:</dt><dd> {{view.content.diskUsageFormatted}}</dd>
+ <dt>Disk:</dt><dd> {{view.content.diskInfoBar}}</dd>
<dt>Memory:</dt><dd> {{view.content.memoryFormatted}}</dd>
<dt>Load Avg:</dt><dd> {{view.content.loadAvg}}</dd>
<dt>Agent <br/>
Heartbeat:</dt><dd>{{view.timeSinceHeartBeat}}</dd>
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}}' +
'</ul>' +
'</li>' +
- '</li>' +
'</ul>' +
'</li>' +
'<li>' +
@@ -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();