Add Disable All and Enable All buttons for the Map Features list (close #5234)

This commit is contained in:
Quincy Morgan
2019-05-22 11:56:04 -04:00
parent 462b2258ab
commit 35b3102006
3 changed files with 59 additions and 5 deletions

View File

@@ -3384,7 +3384,8 @@ button.autofix.action.active {
}
.layer-list.issue-rules-list,
.layer-list.issues-list {
.layer-list.issues-list,
.layer-list.layer-feature-list {
margin-bottom: 0;
}
.section-footer {

View File

@@ -274,6 +274,17 @@ export function rendererFeatures(context) {
}
};
features.enableAll = function() {
var didEnable = false;
for (var k in _rules) {
if (!_rules[k].enabled) {
didEnable = true;
_rules[k].enable();
}
}
if (didEnable) update();
};
features.disable = function(k) {
if (_rules[k] && _rules[k].enabled) {
@@ -282,6 +293,17 @@ export function rendererFeatures(context) {
}
};
features.disableAll = function() {
var didDisable = false;
for (var k in _rules) {
if (_rules[k].enabled) {
didDisable = true;
_rules[k].disable();
}
}
if (didDisable) update();
};
features.toggle = function(k) {
if (_rules[k]) {

View File

@@ -662,13 +662,44 @@ export function uiMapData(context) {
function renderFeatureList(selection) {
var container = selection.selectAll('.layer-feature-list')
var container = selection.selectAll('.layer-feature-list-container')
.data([0]);
_featureList = container.enter()
var containerEnter = container.enter()
.append('div')
.attr('class', 'layer-feature-list-container');
containerEnter
.append('ul')
.attr('class', 'layer-list layer-feature-list')
.merge(container);
.attr('class', 'layer-list layer-feature-list');
var footer = containerEnter
.append('div')
.attr('class', 'feature-list-links section-footer');
footer
.append('a')
.attr('class', 'feature-list-link')
.attr('href', '#')
.text(t('issues.enable_all'))
.on('click', function() {
context.features().enableAll();
});
footer
.append('a')
.attr('class', 'feature-list-link')
.attr('href', '#')
.text(t('issues.disable_all'))
.on('click', function() {
context.features().disableAll();
});
// Update
container = container
.merge(containerEnter);
_featureList = container.selectAll('.layer-feature-list');
updateFeatureList();
}