Updated trade areas analysis with new parameters, isolines and dissolved

pull/7295/head
xavijam 9 years ago
parent e336899b86
commit 132831afd0

@ -57,8 +57,10 @@ module.exports = function (inputGeometryType, analysisDefinitionNodeModel) {
id: newNodeId,
type: type,
source: sourceId,
kind: 'drive',
time: 300
kind: 'car',
isolines: 10,
dissolved: true,
time: 100
}
})
);

@ -77,25 +77,27 @@ var ANALYSES_MAP = {
},
'trade-area': {
getAttrs: function () {
return ['kind', 'time'];
return ['kind', 'time', 'isolines', 'dissolved'];
},
getAnalysisAttrs: function () {
return {
kind: this.get('kind'),
time: this.get('time')
time: parseFloat(this.get('time')),
isolines: parseFloat(this.get('isolines')),
dissolved: this.get('dissolved') === 'true'
};
},
getSchema: function () {
return {
source: {
type: 'Select',
label: _t('editor.layers.analysis-form.source'),
title: _t('editor.layers.analysis-form.source'),
options: [ this.get('source') ],
editorAttrs: { disabled: true }
},
type: {
type: 'Radio',
text: _t('editor.layers.analysis-form.type'),
title: _t('editor.layers.analysis-form.type'),
options: [
{
val: 'buffer',
@ -114,29 +116,50 @@ var ANALYSES_MAP = {
val: 'walk',
label: _t('editor.layers.analysis-form.by-walk')
}, {
val: 'drive',
val: 'car',
label: _t('editor.layers.analysis-form.by-car')
}, {
val: 'bike',
label: _t('editor.layers.analysis-form.by-bike')
}
]
},
isolines: {
type: 'Number',
title: _t('editor.layers.analysis-form.tracts'),
validators: ['required', {
type: 'interval',
min: 1,
max: 30
}]
},
time: {
type: 'Number',
label: _t('editor.layers.analysis-form.time'),
title: _t('editor.layers.analysis-form.time'),
validators: ['required', {
type: 'interval',
min: 0,
max: 100
}]
}
},
dissolved: {
type: 'Radio',
title: _t('editor.layers.analysis-form.boundaries'),
options: [
{
val: 'false',
label: _t('editor.layers.analysis-form.intact')
}, {
val: 'true',
label: _t('editor.layers.analysis-form.dissolved')
}
]
},
};
},
getDefaults: function () {
return {
type: 'trade-area',
kind: 'walk',
isolines: 10,
dissolved: true,
time: 100
};
}

@ -14,7 +14,7 @@
</div>
<div class="Editor-HeaderInfo">
<div class="Editor-HeaderNumeration CDB-Text is-semibold u-rSpace--m">3</div>
<div class="Editor-HeaderInfo-inner CDB-Text" data-fields="type,kind,time">
<div class="Editor-HeaderInfo-inner CDB-Text" data-fields="type,kind,time,isolines,dissolved">
<div class="Editor-HeaderInfo-title u-bSpace--m">
<h2 class="CDB-Text CDB-HeaderInfo-titleText CDB-Size-large"><%- _t('editor.layers.analysis-form.parameters') %></h2>
</div>

@ -423,7 +423,11 @@
"by": "By",
"by-walk": "walk",
"by-bike": "bike",
"by-car": "drive",
"by-car": "car",
"tracts": "Tracts",
"boundaries": "Boundaries",
"intact": "Intact",
"dissolved": "Dissolved",
"distance": "Distance",
"input": "Input",
"kilometers": "km",

@ -181,7 +181,9 @@ describe('data/analysis-definition-node-model', function () {
}
},
kind: 'walk',
time: 300
time: 300,
dissolved: true,
isolines: 3
}
}, {
parse: true,
@ -209,7 +211,9 @@ describe('data/analysis-definition-node-model', function () {
type: 'trade-area',
source: 'g0',
kind: 'walk',
time: 300
time: 300,
dissolved: true,
isolines: 3
});
});
@ -233,7 +237,9 @@ describe('data/analysis-definition-node-model', function () {
}
},
kind: 'walk',
time: 300
time: 300,
dissolved: true,
isolines: 3
}
});
});

@ -13,7 +13,7 @@ describe('data/camshaft-reference', function () {
it('should return the param names for a given analyses type', function () {
expect(camshaftReference.getParamNamesForAnalysisType('source')).toEqual(['query']);
expect(camshaftReference.getParamNamesForAnalysisType('point-in-polygon')).toEqual(['points_source', 'polygons_source']);
expect(camshaftReference.getParamNamesForAnalysisType('trade-area')).toEqual(['source', 'kind', 'time']);
expect(camshaftReference.getParamNamesForAnalysisType('trade-area')).toEqual(['source', 'kind', 'time', 'isolines', 'dissolved']);
});
});
});

@ -75,10 +75,10 @@ describe('editor/layers/layer-content-view/analyses-form-type-view', function ()
expect(this.model.get('time')).toBe(100);
var $input = this.view.$('.js-input');
$input.val('80');
$input.val('20');
$input.trigger('keyup');
expect(this.model.get('time')).toBe('80');
expect(this.model.get('time')).toBe(20);
expect(this.model.get('kind')).toBe('walk');
});

463
npm-shrinkwrap.json generated

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
{
"name": "cartodb-ui",
"version": "3.23.70",
"version": "3.23.71",
"description": "CartoDB UI frontend",
"repository": {
"type": "git",
@ -18,7 +18,7 @@
"backbone-forms": "^0.14.0",
"backbone-model-file-upload": "^1.0.0",
"browserify-shim": "3.8.10",
"camshaft-reference": "^0.3.0",
"camshaft-reference": "0.4.0",
"cartoassets": "cartodb/CartoAssets#master",
"cartodb-deep-insights.js": "cartodb/deep-insights.js#master",
"cartodb-pecan": "0.2.x",

Loading…
Cancel
Save