Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Droth 3476 refactor common values to enum class #2332

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions UI/src/enumerations.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
(function (root) {
root.Enumerations = function () {

this.linkTypes = {
Motorway: {value: 1, text: 'Moottoritie'},
Freeway: {value: 4, text: 'Moottoriliikennetie'},
SingleCarriageway: {value: 3, text: 'Yksiajoratainen tie'},
MultipleCarriageway: {value: 2, text: 'Moniajoratainen tie'},
Roundabout: {value: 5, text: 'Kiertoliittymä'},
SlipRoad: {value: 6, text: 'Ramppi'},
RestArea: {value: 7, text: 'Levähdysalue', specialLegendRendering: true},
PedestrianZone: {value: 9, text: 'Jalankulkualue'},
CycleOrPedestrianPath: {value: 8, text: 'Pyörätie tai yhdistetty pyörätie ja jalkakäytävä'},
ServiceOrEmergencyRoad: {value: 10, text: 'Huolto- tai pelastustie', specialLegendRendering: true},
EnclosedTrafficArea: {value: 11, text: 'Liitännäisliikennealue', specialLegendRendering: true},
TractorRoad: {value: 12, text: 'Ajopolku'},
ServiceAccess: {value: 13, text: 'Huoltoaukko'},
SpecialTransportWithoutGate: {value: 14, text: 'Erikoiskuljetusyhteys ilman puomia'},
SpecialTransportWithGate: {value: 15, text: 'Erikoiskuljetusyhteys puomilla'},
CableFerry: {value: 21, text: 'Lautta/lossi'},
BidirectionalLaneCarriageWay: {value: 22, text: 'Kaksisuuntainen yksikaistainen tie'}
};

this.constructionTypes = {
Planned: {value: 1, text: 'Suunnitteilla', visibleInLegend: true, legendText: 'Suunnitteilla' },
UnderConstruction: {value: 2, text: 'Rakenteilla', visibleInLegend: true, legendText: 'Rakenteilla'},
InUse: {value: 3, text: 'Käytössä', visibleInLegend: false, legendText: 'Käytössä'},
TemporarilyOutOfUse: {value: 4, text: 'Väliaikaisesti poissa käytöstä',
visibleInLegend: true, legendText: 'Väliaikaisesti poissa käytöstä (haalennettu linkki)'}
};

this.administrativeClasses = {
State: {value: 1, stringValue: 'State', text: 'Valtion omistama', visibleInForm: true},
Municipality: {value: 2, stringValue: 'Municipality', text: 'Kunnan omistama', visibleInForm: true},
Private: {value: 3, stringValue: 'Private', text: 'Yksityisen omistama', visibleInForm: true},
Unknown: {value: 99, stringValue: 'Unknown', text: 'Ei tiedossa', visibleInForm: false}
};

this.trafficDirections = {
BothDirections: {value: 2, stringValue: 'BothDirections', text: 'Molempiin suuntiin'},
AgainstDigitizing: {value: 3, stringValue: 'AgainstDigitizing', text: 'Digitointisuuntaa vastaan'},
TowardsDigitizing: {value: 4, stringValue: 'TowardsDigitizing', text: 'Digitointisuuntaan'}
};
};
})(this);
8 changes: 4 additions & 4 deletions UI/src/less/site/action-panel.less
Original file line number Diff line number Diff line change
Expand Up @@ -203,15 +203,15 @@

.road-link-legend {
.legend-entry {
.road {
.administrative-class-1 {
.linear-asset-color(@linear-asset-4);
}

.street {
.administrative-class-2 {
.linear-asset-color(@linear-asset-3);
}

.private-road {
.administrative-class-3 {
.linear-asset-color(@linear-asset-5);
}
}
Expand Down Expand Up @@ -562,7 +562,7 @@
font-size: @font-size-xs;
line-height: @line-height-base;
}
.linear-asset-2, .linear-asset-4, .linear-asset-5, .linear-asset-8, .linear-asset-12, .linear-asset-13 , .linear-asset-15 {
.linear-asset-2, .linear-asset-4, .linear-asset-6, .linear-asset-8, .linear-asset-12, .linear-asset-15 , .linear-asset-21 {
&:extend(.dotted-linear-asset);
}
.linear-asset-1 { .linear-asset-legend-entry(@linear-asset-4, @linear-asset-node-4); }
Expand Down
34 changes: 6 additions & 28 deletions UI/src/view/laneWorkList.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,7 @@
(function (root) {
root.LaneWorkList = function () {

var linkTypes = {
1: 'Moottoritie',
2: 'Moniajoratainen tie',
3: 'Yksiajoratainen tie',
4: 'Moottoriliikennetie',
5: 'Kiertoliittymä',
6: 'Ramppi',
7: 'Levähdysalue',
8: 'Kävelyn ja pyöräilyn väylä',
9: 'Jalankulkualue',
10: 'Huolto- tai pelastustie',
11: 'Liitännäisliikennealue',
12: 'Ajopolku',
13: 'Huoltoaukko',
14: 'Erikoiskuljetusyhteys ilman puomia',
15: 'Erikoiskuljetusyhteys puomilla',
21: 'Lautta/lossi',
22: 'Kaksisuuntainen yksikaistainen tie',
99: 'Tuntematon'
};

var trafficDirections = {
2: 'Molempiin suuntiin',
3: 'Digitointisuuntaa vastaan',
4: 'Digitointisuuntaan'
};
var enumerations = new Enumerations();

WorkListView.call(this);
var me = this;
Expand Down Expand Up @@ -62,8 +37,11 @@
};

var changeToLinkInfo = function (item) {
var newValueLegend = (item.propertyName === "link_type") ? linkTypes[item.newValue] : trafficDirections[item.newValue];
var oldValueLegend = (item.propertyName === "link_type") ? linkTypes[item.oldValue] : trafficDirections[item.oldValue];
var collectionToSearch = item.propertyName === "link_type" ? enumerations.linkTypes : enumerations.trafficDirections;
var newValueObject = _.find(collectionToSearch, {value: item.newValue});
var newValueLegend = _.isObject(newValueObject) ? newValueObject.text : 'Tuntematon';
var oldValueObject = _.find(collectionToSearch, {value: item.oldValue});
var oldValueLegend = _.isObject(oldValueObject) ? oldValueObject.text : 'Tuntematon';
return $('<dd class="laneWorkListTextSize"/>')
.html("Vanha arvo: " + oldValueLegend + " (" + item.oldValue + ")" +
"<br> Uusi arvo: " + newValueLegend + " (" + item.newValue + ")" +
Expand Down
89 changes: 29 additions & 60 deletions UI/src/view/link_property/linkPropertyForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,9 @@
var layer;
var functionalClasses = [1, 2, 3, 4, 5, 6, 7, 8];
var authorizationPolicy = new LinkPropertyAuthorizationPolicy();
var enumerations = new Enumerations();
new FeedbackDataTool(feedbackCollection, 'linkProperty', authorizationPolicy);

var localizedAdministrativeClasses = {
Private: 'Yksityisen omistama',
Municipality: 'Kunnan omistama',
State: 'Valtion omistama'
};

var administrativeClasses = [
['State', 'Valtion omistama'],
['Municipality', 'Kunnan omistama'],
['Private', 'Yksityisen omistama']
];

var localizedTrafficDirections = {
BothDirections: 'Molempiin suuntiin',
AgainstDigitizing: 'Digitointisuuntaa vastaan',
TowardsDigitizing: 'Digitointisuuntaan'
};

var additionalInfoIds = [
[1, 'Tieto toimitettu, rajoituksia'],
[2, 'Tieto toimitettu, ei rajoituksia'],
Expand All @@ -35,26 +18,6 @@
NotDelivered: 'Ei toimitettu'
};

var linkTypes = [
[1, 'Moottoritie'],
[2, 'Moniajoratainen tie'],
[3, 'Yksiajoratainen tie'],
[4, 'Moottoriliikennetie'],
[5, 'Kiertoliittymä'],
[6, 'Ramppi'],
[7, 'Levähdysalue'],
[8, 'Kävelyn ja pyöräilyn väylä'],
[9, 'Jalankulkualue'],
[10, 'Huolto- tai pelastustie'],
[11, 'Liitännäisliikennealue'],
[12, 'Ajopolku'],
[13, 'Huoltoaukko'],
[14, 'Erikoiskuljetusyhteys ilman puomia'],
[15, 'Erikoiskuljetusyhteys puomilla'],
[21, 'Lautta/lossi'],
[22, 'Kaksisuuntainen yksikaistainen tie']
];

var verticalLevelTypes= [
[-11, 'Tunneli'],
[-3, 'Alikulku, taso 3'],
Expand All @@ -67,13 +30,6 @@
[4, 'Silta, Taso 4']
];

var constructionTypes= [
[1, 'Suunnitteilla'], //Planned
[2, 'Rakenteilla'], //Under Construction
[3, 'Käytössä'], //In Use
[4, 'Väliaikaisesti poissa käytöstä'] //Temporarily out of use
];

var linkSources= [
[1, 'MML'],
[2, 'Täydentävä geometria']
Expand All @@ -95,9 +51,19 @@
};
};

var getLocalizedAdministrativeClass = function(administrativeClass) {
var localizedAdministrativeClass = _.find(enumerations.administrativeClasses, function(x) { return x.stringValue === administrativeClass; });
return localizedAdministrativeClass && localizedAdministrativeClass.text;
};

var getLocalizedLinkType = function(linkType) {
var localizedLinkType = _.find(linkTypes, function(x) { return x[0] === linkType; });
return localizedLinkType && localizedLinkType[1];
var localizedLinkType = _.find(enumerations.linkTypes, function(x) { return x.value === linkType; });
return localizedLinkType && localizedLinkType.text;
};

var getLocalizedTrafficDirection = function(trafficDirection) {
var localizedTrafficDirection = _.find(enumerations.trafficDirections, function(x) { return x.stringValue === trafficDirection; });
return localizedTrafficDirection && localizedTrafficDirection.text;
};

var getVerticalLevelType = function(verticalLevel) {
Expand All @@ -113,8 +79,9 @@
};

var getConstructionType = function(constructionTypeId){
var constructionType = _.find(constructionTypes, function(value) { return value[0] === constructionTypeId; });
return constructionType && constructionType[1];
var constructionType = _.find(enumerations.constructionTypes, function(constructionType) {
return constructionType.value === constructionTypeId; });
return constructionType && constructionType.text;
};

var getLinkSource = function(linkSourceId){
Expand Down Expand Up @@ -307,9 +274,9 @@
roadNumber : linkProperty.roadNumber || '',
roadPartNumber : linkProperty.roadPartNumber || '',
localizedFunctionalClass : _.find(functionalClasses, function(x) { return x === linkProperty.functionalClass; }) || 'Tuntematon',
localizedAdministrativeClass : localizedAdministrativeClasses[linkProperty.administrativeClass] || 'Tuntematon',
localizedAdministrativeClass : getLocalizedAdministrativeClass(linkProperty.administrativeClass)|| 'Tuntematon',
localizedAdditionalInfoIds: getAdditionalInfo(parseInt(linkProperty.additionalInfo)) || '',
localizedTrafficDirection : localizedTrafficDirections[linkProperty.trafficDirection] || 'Tuntematon',
localizedTrafficDirection : getLocalizedTrafficDirection(linkProperty.trafficDirection) || 'Tuntematon',
localizedLinkTypes : getLocalizedLinkType(linkProperty.linkType) || 'Tuntematon',
addressNumbersRight : addressNumberString(linkProperty.minAddressNumberRight, linkProperty.maxAddressNumberRight),
addressNumbersLeft : addressNumberString(linkProperty.minAddressNumberLeft, linkProperty.maxAddressNumberLeft),
Expand Down Expand Up @@ -341,24 +308,26 @@
eventbus.on('linkProperties:selected linkProperties:cancelled', function(properties) {
var linkProperty = constructLinkProperty(properties);

var trafficDirectionOptionTags = _.map(localizedTrafficDirections, function(value, key) {
var selected = key === linkProperty.trafficDirection ? " selected" : "";
return '<option value="' + key + '"' + selected + '>' + value + '</option>';
var trafficDirectionOptionTags = _.map(enumerations.trafficDirections, function(trafficDirection) {
var selected = trafficDirection.stringValue === linkProperty.trafficDirection ? " selected" : "";
return '<option value="' + trafficDirection.stringValue + '"' + selected + '>' + trafficDirection.text + '</option>';
}).join('');

var functionalClassOptionTags = _.map(functionalClasses, function(value) {
var selected = value === linkProperty.functionalClass ? " selected" : "";
return '<option value="' + value + '"' + selected + '>' + value + '</option>';
}).join('');

var linkTypesOptionTags = _.map(linkTypes, function(value) {
var selected = value[0] === linkProperty.linkType ? " selected" : "";
return '<option value="' + value[0] + '"' + selected + '>' + value[1] + '</option>';
var linkTypesOptionTags = _.map(enumerations.linkTypes, function(linkType) {
var selected = linkType.value === linkProperty.linkType ? " selected" : "";
return '<option value="' + linkType.value + '"' + selected + '>' + linkType.text + '</option>';
}).join('');

var administrativeClassOptionTags = _.map(administrativeClasses, function(value) {
var selected = value[0] === linkProperty.administrativeClass ? " selected" : "";
return '<option value="' + value[0] + '"' + selected + '>' + value[1] + '</option>' ;
var administrativeClassOptionTags = _.map(enumerations.administrativeClasses, function(administrativeClass) {
var selected = administrativeClass.stringValue === linkProperty.administrativeClass ? " selected" : "";
return administrativeClass.visibleInForm ?
'<option value="' + administrativeClass.stringValue + '"' + selected + '>' + administrativeClass.text + '</option>' :
'';
}).join('');

var additionalInfoOptionTags = _.map( additionalInfoIds, function(value) {
Expand Down
20 changes: 7 additions & 13 deletions UI/src/view/navigationpanel/cyclingAndWalkingBox.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
root.CyclingAndWalkingBox = function (assetConfig) {
LinearAssetBox.call(this, assetConfig);
var me = this;
var enumerations = new Enumerations();

this.legendName = function () {
return 'linear-asset-legend cycling-and-walking';
Expand Down Expand Up @@ -30,15 +31,6 @@
{index: 20, text: 'Lossi tai lautta'}
];

var constructionTypeLegend = '<div class="panel-section panel-legend linear-asset-legend construction-type-legend">';
var constructionTypes = [
{index: 1, text: 'Suunnitteilla' }, //Planned
{index: 2, text: 'Rakenteilla' }, //Under construction
{index: 4, text: 'Väliaikaisesti poissa käytöstä (haalennettu linkki)' } // Temporarily out of use
];



this.labeling = function () {
var legend = _.map(auxLegend, function(legend) {
return '<div class="legend-entry">' +
Expand All @@ -47,10 +39,12 @@
'</div>';
}).join('')+' </div>';

var constructionTypeLegendEntries = _.map(constructionTypes, function(constructionType) {
return '<div class="legend-entry">' +
'<div class="label">' + constructionType.text + '</div>' +
'<div class="symbol linear construction-type-' + constructionType.index + '" />' +
var constructionTypeLegend = '<div class="panel-section panel-legend linear-asset-legend construction-type-legend">';
var constructionTypeLegendEntries = _.map(enumerations.constructionTypes, function(constructionType) {
return !constructionType.visibleInLegend ? '' :
'<div class="legend-entry">' +
'<div class="label">' + constructionType.legendText + '</div>' +
'<div class="symbol linear construction-type-' + constructionType.value + '" />' +
'</div>';
}).join('')+ '</div>';

Expand Down
59 changes: 22 additions & 37 deletions UI/src/view/navigationpanel/massTransitStopBox.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
ActionPanelBox.call(this);
var me = this;
var authorizationPolicy = new MassTransitStopAuthorizationPolicy();
var enumerations = new Enumerations();

this.header = function () {
return 'Joukkoliikenteen pysäkki';
Expand Down Expand Up @@ -73,51 +74,35 @@
this.layerName = 'massTransitStop';

this.labeling = function () {
var roadTypePanel = [
' <div class="panel-section panel-legend road-link-legend">',
' <div class="legend-entry">',
' <div class="label">Valtion omistama</div>',
' <div class="symbol linear road"/>',
' </div>',
' <div class="legend-entry">',
' <div class="label">Kunnan omistama</div>',
' <div class="symbol linear street"/>',
' </div>',
' <div class="legend-entry">',
' <div class="label">Yksityisen omistama</div>',
' <div class="symbol linear private-road"/>',
' </div>',
' <div class="legend-entry">',
' <div class="label">Ei tiedossa tai kävelyn ja pyöräilyn väylä</div>',
' <div class="symbol linear unknown"/>',
' </div>',
' </div>'
].join('');
var administrativeClassLegend = [
' <div class="panel-section panel-legend road-link-legend">'];
var administrativeClassLegendEntries = _.map(enumerations.administrativeClasses, function(administrativeClass) {
return '<div class="legend-entry">' +
'<div class="label">'+ administrativeClass.text +'</div>' +
'<div class="symbol linear administrative-class-' + administrativeClass.value + '" />' +
'</div>';
});

var constructionTypePanel = [
' <div class="panel-section panel-legend linear-asset-legend construction-type-legend">',
' <div class="legend-entry">',
' <div class="label">Suunnitteilla</div>',
' <div class="symbol linear construction-type-1"/>',
' </div>',
' <div class="legend-entry">',
' <div class="label">Rakenteilla</div>',
' <div class="symbol linear construction-type-2"/>',
' </div>',
' <div class="legend-entry">',
' <div class="label">Väliaikaisesti poissa käytöstä (haalennettu linkki)</div>',
' <div class="symbol linear construction-type-4"/>',
' </div>',
' </div>'
].join('');
var admistrativeClassPanel = administrativeClassLegend.concat(administrativeClassLegendEntries).join('') + '</div>';

var constructionTypeLegend = '<div class="panel-section panel-legend linear-asset-legend construction-type-legend">';
var constructionTypeLegendEntries = _.map(enumerations.constructionTypes, function(constructionType) {
return !constructionType.visibleInLegend ? '' :
'<div class="legend-entry">' +
'<div class="label">' + constructionType.legendText + '</div>' +
'<div class="symbol linear construction-type-' + constructionType.value + '" />' +
'</div>';
}).join('')+ '</div>';

var constructionTypePanel = constructionTypeLegend.concat(constructionTypeLegendEntries);

var massTransitStopPanel = '<div class="panel-section panel-legend limit-legend point-asset">';
var pointAssetTypePanel = '<div class="panel-section panel-legend limit-legend point-asset service-points point-asset-legend">';

massTransitStopPanel = massTransitStopPanel.concat(massTransitStopLegend.map(putLabel).join('')).concat('</div>');
pointAssetTypePanel = pointAssetTypePanel.concat(pointAssetLegend.map(putLabel).join('')).concat('</div>');

return roadTypePanel.concat(constructionTypePanel).concat(massTransitStopPanel).concat(pointAssetTypePanel);
return admistrativeClassPanel.concat(constructionTypePanel).concat(massTransitStopPanel).concat(pointAssetTypePanel);
};

this.checkboxPanel = function () {
Expand Down
Loading