Skip to content
Merged

Dump #668

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
4 changes: 2 additions & 2 deletions .devcontainer/production.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ def cache_factory(namespace, expires_in)
config.optimize_max_split_size = 500
config.optimize_dicho_minimum_service_size = nil
config.optimize_cluster_size = 0
config.optimize_stop_soft_upper_bound = 0.3
config.optimize_vehicle_soft_upper_bound = 0.3
config.optimize_stop_soft_upper_bound = 0.0
config.optimize_vehicle_soft_upper_bound = 0.0
config.optimize_overload_multiplier = 0
config.optimize_cost_waiting_time = 1
config.optimize_force_start = false
Expand Down
75 changes: 73 additions & 2 deletions app/assets/javascripts/plannings.js
Original file line number Diff line number Diff line change
Expand Up @@ -1896,6 +1896,73 @@ export const plannings_edit = function(params) {
return false;
};

var vehicleUsageByUsageId = function(vehicleUsageId) {
var found = null;
$.each(vehicles_usages_map, function(_i, v) {
if (v.vehicle_usage_id == vehicleUsageId) {
found = v;
}
});
return found;
};

var buildRouteDisplayName = function(ref, vehicleUsageId) {
var vehicleUsage = vehicleUsageByUsageId(vehicleUsageId);
if (!vehicleUsage) {
return ref || '';
}
return (ref ? (ref + ' ') : '') + vehicleUsage.name;
};

var captureRouteSelectorSummary = function() {
var summaryRoutes = [];
$('#planning_route_ids option').each(function() {
var $opt = $(this);
var routeId = $opt.val();
if (['clear', 'reverse', 'all'].indexOf(routeId) !== -1) {
return;
}
var routeFromModel = routes.find(function(r) { return String(r.route_id) === String(routeId); });
var data = {};
$.each($opt[0].attributes, function(_i, attr) {
if (attr.name.indexOf('data-') === 0) {
var key = attr.name.slice(5).replace(/-([a-z])/g, function(_m, c) { return c.toUpperCase(); });
data[key] = attr.value;
}
});
summaryRoutes.push({
route_id: routeId,
name: routeFromModel ? routeFromModel.name : $opt.text(),
hidden: data.hidden === true || data.hidden === 'true',
locked: data.locked === true || data.locked === 'true',
data: data
});
});
return { routes: summaryRoutes };
};

var syncRouteRefAfterUpdate = function(routeId, ref, vehicleUsageId) {
var displayName = buildRouteDisplayName(ref, vehicleUsageId);

routes.forEach(function(route) {
if (String(route.route_id) === String(routeId)) {
route.ref = ref;
route.name = displayName;
}
});

var summary = (planningPopoverSnapshot && planningPopoverSnapshot.routes) ?
planningPopoverSnapshot :
captureRouteSelectorSummary();
summary.routes.forEach(function(r) {
if (String(r.route_id) === String(routeId)) {
r.name = displayName;
}
});
planningPopoverSnapshot = summary;
refreshRouteSelectorFromSummary(summary);
};

var refreshRouteSelectorFromSummary = function(summary) {
var $select = $('#planning_route_ids');
if (!$select.length || !summary || !summary.routes) {
Expand Down Expand Up @@ -2062,12 +2129,15 @@ export const plannings_edit = function(params) {

var setTooltipRef = function setTooltipRef(vehicleUsageId, ref) {
var tooltip;
var vehicleUsage = vehicleUsageByUsageId(vehicleUsageId);
if (!vehicleUsage) {
return;
}
if (vehicleMarkers.length
&& vehicleMarkers[vehicleUsageId]
&& (tooltip = vehicleMarkers[vehicleUsageId].getTooltip())) {
var content = $(tooltip._content);
var name = vehicles_usages_map[vehicleUsageId].name;
content.find('#vehicle-name').html(ref + ' ' + name);
content.find('#vehicle-name').html((ref ? (ref + ' ') : '') + vehicleUsage.name);
vehicleMarkers[vehicleUsageId].setTooltipContent('<div>' + content.html() + '</div>');
}
};
Expand Down Expand Up @@ -2272,6 +2342,7 @@ export const plannings_edit = function(params) {
contentType: 'application/json',
url: '/api/0.1/plannings/' + planning_id + '/routes/' + id + '.json',
success: function (response) {
syncRouteRefAfterUpdate(id, ref, response.vehicle_usage_id);
setTooltipRef(response.vehicle_usage_id, ref);
},
error: ajaxError
Expand Down
Loading