Skip to content

Commit

Permalink
Merge pull request #2332 from finnishtransportagency/DROTH-3476_refac…
Browse files Browse the repository at this point in the history
…tor_common_values_to_enum_class

Droth 3476 refactor common values to enum class
  • Loading branch information
SWJPTulijoki authored Nov 25, 2022
2 parents 5bb3ce3 + 0d5624d commit 2d3d9e2
Show file tree
Hide file tree
Showing 10 changed files with 152 additions and 213 deletions.
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.constructionTypeLabeling = function () {};
Expand Down
Loading

0 comments on commit 2d3d9e2

Please sign in to comment.