mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 17:23:02 +00:00
49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
import * as d3 from 'd3';
|
|
|
|
import _filter from 'lodash-es/filter';
|
|
|
|
import { utilRebind } from '../util/rebind';
|
|
|
|
export function IssueManager(context) {
|
|
var dispatch = d3.dispatch('reload'),
|
|
self = {},
|
|
issues = [];
|
|
|
|
self.featureApplicabilityOptions = ['edited', 'all'];
|
|
|
|
var featureApplicability = context.storage('issue-features') || 'edited';
|
|
|
|
self.getFeatureApplicability = function() {
|
|
return featureApplicability;
|
|
};
|
|
|
|
self.setFeatureApplicability = function(applicability) {
|
|
featureApplicability = applicability;
|
|
context.storage('issue-features', applicability);
|
|
};
|
|
|
|
self.getIssues = function() {
|
|
return issues;
|
|
};
|
|
|
|
self.getIssuesForEntityWithID = function(entityID) {
|
|
var issues = self.getIssues();
|
|
return _filter(issues, function(issue) {
|
|
for (var i = 0; i < issue.entities.length; i++) {
|
|
if (issue.entities[i].id === entityID) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
};
|
|
|
|
self.validate = function() {
|
|
var changes = context.history().changes();
|
|
issues = context.history().validate(changes);
|
|
dispatch.call('reload', self, issues);
|
|
};
|
|
|
|
return utilRebind(self, dispatch, 'on');
|
|
}
|