Skip to content

Commit

Permalink
Merge pull request #2345 from finnishtransportagency/NextRelease
Browse files Browse the repository at this point in the history
Next release
  • Loading branch information
sasuolanderSito authored Dec 5, 2022
2 parents 2f69088 + 4eed991 commit 1107ca3
Show file tree
Hide file tree
Showing 64 changed files with 886 additions and 454 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
6 changes: 3 additions & 3 deletions UI/src/less/site/modals.less
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@

&.feedback-actions {
display: inline-block;
padding-top: 35px;
padding-top: 85px;
position: absolute;
right: 1px;
}
Expand All @@ -104,7 +104,7 @@
#feedback {
.modal-dialog {
width: 575px;
height: 550px;
height: 590px;
left: 45%;
}

Expand Down Expand Up @@ -143,7 +143,7 @@
width: 284px;
}

#kidentifier, #linkId, #assetId{
#feedback-message-count, #kidentifier, #linkId, #assetId{
width: 50px;
margin-right: 195px;
font-size: 11px;
Expand Down
9 changes: 9 additions & 0 deletions UI/src/model/selectedLaneModelling.js
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,7 @@
_.forEach(lanesAfterPromotion, function (lane) {
setPropertyByPublicId(lane, 'lane_type', null);
});
removePropertyByPublicId(newMainLane, "end_date");
self.selection = lanesAfterPromotion;
reorganizeLanes(laneNumber);
self.dirty = true;
Expand Down Expand Up @@ -443,6 +444,14 @@
});
}

function removePropertyByPublicId(lane, propertyPublicId) {
_.map(lane.properties, function (prop) {
if (prop.publicId === propertyPublicId) {
prop.values = undefined;
}
});
}

this.getOrderingNumbers = function(lanesOnLink) {
var leftAndRightLanesPartitioned = _.partition(lanesOnLink, function(lane) {
var laneCode = getLaneCodeValue(lane);
Expand Down
2 changes: 1 addition & 1 deletion UI/src/model/selectedMassTransitStop.js
Original file line number Diff line number Diff line change
Expand Up @@ -627,7 +627,7 @@
cancel: cancel,
exists: exists,
change: change,
changeByExternalId: changeByNationalId,
changeByNationalId: changeByNationalId,
changeById:changeById,
get: get,
getId: getId,
Expand Down
2 changes: 1 addition & 1 deletion UI/src/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@
applicationModel.selectLayer('massTransitStop');
var assetFound = function (massTransitStop) {
eventbus.once('massTransitStops:available', function () {
models.selectedMassTransitStopModel.changeByExternalId(id);
models.selectedMassTransitStopModel.changeByNationalId(id);
});
// center and zoom only if request succeed
// when calling MassServiceStopByNationalId
Expand Down
2 changes: 1 addition & 1 deletion UI/src/utils/backend-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -973,7 +973,7 @@
};

this.withAssetData = function(assetData) {
self.getMassTransitStopByNationalId = function (externalId, callback) {
self.getMassTransitStopByNationalId = function (nationalId, callback) {
callback(assetData);
};
self.updateAsset = function (id, data, successCallback) {
Expand Down
46 changes: 38 additions & 8 deletions UI/src/utils/date-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
weekdaysShort: ['Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La']
};

var fromDateString = function (s) {
return s ? moment(s, dateutil.FINNISH_DATE_FORMAT) : null;
};

dateutil.iso8601toFinnish = function (iso8601DateString) {
return _.isString(iso8601DateString) ? moment(iso8601DateString, ISO_8601_DATE_FORMAT).format(FINNISH_DATE_FORMAT) : "";
};
Expand Down Expand Up @@ -43,9 +47,6 @@
};

dateutil.addDependentDatePickers = function (fromElement, toElement, invElement) {
var fromDateString = function (s) {
return s ? moment(s, dateutil.FINNISH_DATE_FORMAT) : null;
};
var from = fromDateString(fromElement.val());
var to = fromDateString(toElement.val());
var datePickers;
Expand Down Expand Up @@ -74,9 +75,30 @@
};

dateutil.addTwoDependentDatePickers = function (fromElement, toElement) {
var fromDateString = function (s) {
return s ? moment(s, dateutil.FINNISH_DATE_FORMAT) : null;
var startDate = fromDateString(fromElement.val());
var endDate = fromDateString(toElement.val());
var datePickers;
var fromCallback = function () {
datePickers.endDate.setMinDate(datePickers.startDate.getDate());
fromElement.trigger('datechange');
};
var toCallback = function () {
datePickers.startDate.setMaxDate(datePickers.endDate.getDate());
toElement.trigger('datechange');
};
datePickers = {
startDate: dateutil.addNullableFinnishDatePicker(fromElement, fromCallback),
endDate: dateutil.addNullableFinnishDatePicker(toElement, toCallback)
};
if (startDate) {
datePickers.startDate.setMaxDate(endDate);
}
if (endDate) {
datePickers.endDate.setMinDate(startDate);
}
};

dateutil.addTwoDependentDatePickersForLanes = function (fromElement, toElement) {
var startDate = fromDateString(fromElement.val());
var endDate = fromDateString(toElement.val());
var datePickers;
Expand All @@ -85,6 +107,17 @@
fromElement.trigger('datechange');
};
var toCallback = function () {
var selectedEndDate = datePickers.endDate.getDate();
var dateNow = new Date().setHours(0,0,0,0);
if(selectedEndDate < dateNow) {
var endDateAlertPopUpOptions = {
type: "alert",
yesButtonLbl: 'Ok',
};
var endDateAlertMessage = "Valittu kaistan loppupäivänmäärä on menneisyydessä. Kaista päätetään tallentaessa.";

GenericConfirmPopup(endDateAlertMessage, endDateAlertPopUpOptions);
}
datePickers.startDate.setMaxDate(datePickers.endDate.getDate());
toElement.trigger('datechange');
};
Expand All @@ -101,9 +134,6 @@
};

dateutil.addDependentDatePicker = function (dateElement) {
var fromDateString = function (s) {
return s ? moment(s, dateutil.FINNISH_DATE_FORMAT) : null;
};

var date = fromDateString(dateElement.val());

Expand Down
37 changes: 32 additions & 5 deletions UI/src/view/feedbackApplicationTool.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
(function (root) {
root.FeedbackApplicationTool = function (authorizationPolicy, collection) {


var MAX_CHARACTER_LENGTH = 3500;

var initialize = function(){
eventbus.trigger('closeFeedBackData');
purge();
renderConfirmDialog();
$('#kidentifier').text(authorizationPolicy.username);
$(".feedback-message-count").text(0+"/"+MAX_CHARACTER_LENGTH);
bindEvents();
};

var reopen = function(){
renderConfirmDialog();
$('#kidentifier').text(authorizationPolicy.username);
bindEvents();
Expand All @@ -13,10 +23,15 @@
message: 'Palaute',
saveButton: 'Lähetä',
cancelButton: 'Peruuta',
saveCallback: function(){
saveCallback: function () {
addSpinner();
collection.sendFeedbackApplication( $(".form-horizontal").serializeArray());
},
var message = $(".feedback-message").serializeArray();
if (message[0].value.length <= MAX_CHARACTER_LENGTH) {
collection.sendFeedbackApplication(message);
} else {
eventbus.trigger("feedback:tooBig");
}
},
closeCallback: function() { purge(); }
};

Expand Down Expand Up @@ -67,6 +82,16 @@
removeSpinner();
new GenericConfirmPopup("Palautteen lähetyksessä esiintyi virhe. Yritys toistuu automaattisesti hetken päästä.", {type: 'alert'});
});

$(".feedback-message").on("change keyup paste",function() {
var message = $(".feedback-message").serializeArray();
$(".feedback-message-count").text(message[0].value.length+"/"+MAX_CHARACTER_LENGTH);
});

eventbus.on("feedback:tooBig",function() {
removeSpinner();
new GenericConfirmPopup("Palaute oli liian pitkä. Maksimi merkki määrä on "+MAX_CHARACTER_LENGTH, {type: 'alert',okCallback:reopen});
});
};

var suggestionText = 'Jättääksesi palautetta aineistosta, valitse haluamasi linkki ja <br /> valitse "Anna palautetta kohteesta" lomakkeen oikeasta yläkulmasta';
Expand All @@ -91,8 +116,10 @@
'<input type="text" name="headline" class="form-control">' +

'<label class="control-label">Palaute</label>' +
'<textarea name="freeText" id="freetext" class="form-control"></textarea>'+

'<textarea maxlength='+ MAX_CHARACTER_LENGTH + ' name="freeText" id="freetext" class="form-control feedback-message"></textarea>'+
'<label class="control-label">Merkkien määrä:</label>' +
'<label id="feedback-message-count" class="feedback-message-count"></label>' +

'<label class="control-label">K-tunnus</label>' +
'<label id="kidentifier"></label>'+

Expand Down
30 changes: 25 additions & 5 deletions UI/src/view/feedbackDataTool.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
me.layerName = layerName;
me.authorizationPolicy = authorizationPolicy;
me.eventCategory = eventCategory;

var MAX_CHARACTER_LENGTH = 3000;
function events() {
return _.map(arguments, function(argument) { return me.eventCategory + ':' + argument; }).join(' ');
}
Expand Down Expand Up @@ -79,6 +79,11 @@
eventbus.on(me.layerName + ':unselected', me.closeFeedback);

eventbus.on(me.layerName + ':selected ' + me.layerName + ':cancelled' ,me.initFeedback);

eventbus.on("feedback:tooBigDataTool",function() {
removeSpinner();
new GenericConfirmPopup("Palaute oli liian pitkä. Maksimi merkki määrä on "+MAX_CHARACTER_LENGTH, {type: 'alert'});
});
};

$(document).ready(function () {
Expand All @@ -92,19 +97,29 @@
applicationModel.setApplicationkState('normal');
var formElements = $(this).closest('.modal-dialog').find('.form-horizontal');
var values = formElements.serializeArray();
var text = $(".feedback-message-asset").serializeArray();
values.push(
{name: 'linkId', value: selectedData.linkId},
{name: 'assetId', value : selectedData.assetId },
{name: 'assetName', value : selectedData.title},
{name: 'typeId', value : selectedData.typeId},
{name: 'freeText', value: $('#freeTextData').html()});

{name: 'freeText', value : text[0].value});
if (formElements.valid()) {
addSpinner();
me.collection.sendFeedbackData(values);
if (text[0].value.length<=MAX_CHARACTER_LENGTH){
me.collection.sendFeedbackData(values);
}else{
eventbus.trigger("feedback:tooBigDataTool");
}
}
});

$(".feedback-message-asset").on("change keyup paste",function() {
var message = $(".feedback-message-asset").serializeArray();
$(".feedback-message-count").text(message[0].value.length+"/"+MAX_CHARACTER_LENGTH);
});

$('#phoneNumber').keyup(function() {
$(this).valid();
});
Expand All @@ -130,6 +145,7 @@
var renderDialog = function(selectedAsset, layer) {
var dialog = createFeedbackForm(selectedAsset, layer);
$('#feedbackData').html(dialog);
$(".feedback-message-count").text(0+"/"+MAX_CHARACTER_LENGTH);
};

var getData = function(){
Expand Down Expand Up @@ -187,8 +203,12 @@
'</div>' +
'<div class="form-element">' +
'<label class="control-label">Palaute</label>' +
'<div contenteditable="true" id="freeTextData" class="form-control"></div>'+
'<textarea maxlength='+ MAX_CHARACTER_LENGTH + ' name="freeText" id="freeTextData" class="form-control feedback-message-asset"></textarea>'+
'</div>' +
'<div class="form-element">' +
'<label class="control-label">Merkkien määrä:</label>' +
'<span id="feedback-message-count" class="feedback-message-count"></span>' +
'</div>' +
'<div class="form-element">' +
'<label class="control-label">K-tunnus</label>' +
'<span id="kidentifier">'+me.authorizationPolicy.username+'</span>'+
Expand Down
Loading

0 comments on commit 1107ca3

Please sign in to comment.