Skip to content

Commit c617296

Browse files
committed
Merge branch 'develop' into release
2 parents cec54d3 + 0a6c86d commit c617296

File tree

96 files changed

+6883
-3081
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+6883
-3081
lines changed

docker/templates/osm-config.yml.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ grails:
1919
initialOsmRootUser:
2020
username: '{{ default .Env.OSM_ROOT_USER "root" }}'
2121
password: '{{ default .Env.OSM_ROOT_PASSWORD "muchMoreSecret!123" }}'
22-
initialDetailAnalysisApiKey: '{{ default .Env.API_KEY_DETAIL_ANALYSIS "apiKeyForDetailAnalysisService" }}'
2322

2423
environments:
2524
production:
2625
grails:
2726
serverURL: '{{ default .Env.OSM_URL "http://localhost:8080"}}'
2827
de.iteratec.osm.detailAnalysis:
2928
enablePersistenceOfDetailAnalysisData: {{ default .Env.ENABLE_DETAIL_ANALYSIS false }}
30-
detailAnalysisMicroserviceUrl: '{{ default .Env.DETAIL_ANALYSIS_URL "http://your.detail.analysis.service.com" }}'
29+
microserviceUrl: '{{ default .Env.DETAIL_ANALYSIS_URL "http://your.detail.analysis.service.com" }}'
30+
apiKey: '{{ default .Env.API_KEY_DETAIL_ANALYSIS "apiKeyForDetailAnalysisService" }}'
3131
dataSource:
3232
url: 'jdbc:mysql://{{ default .Env.MYSQL_HOST "osm-mysql" }}/{{ default .Env.MYSQL_DATABASE "osm" }}'
3333
username: '{{ default .Env.MYSQL_USER "osm" }}'

grails-app/assets/javascripts/_resultSelection/resultSelection.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ OpenSpeedMonitor.resultSelection = (function () {
7878
setQueryArgsFromLocationSelection(null, OpenSpeedMonitor.selectPageLocationConnectivityCard.getLocationSelection());
7979
setQueryArgsFromConnectivitySelection(null, OpenSpeedMonitor.selectPageLocationConnectivityCard.getConnectivitySelection());
8080
}
81+
8182
enableUpdates(!selectJobGroupCard.data("noAutoUpdate") || !selectPageLocationConnectivityCard.data("noAutoUpdate"));
8283
updateCards();
8384
};
@@ -166,10 +167,17 @@ OpenSpeedMonitor.resultSelection = (function () {
166167
updateCard(resultSelectionUrls["connectivity"], OpenSpeedMonitor.selectPageLocationConnectivityCard.updateConnectivityProfiles, spinner);
167168
updateStarted = true;
168169
}
170+
171+
}
172+
if(OpenSpeedMonitor.selectUserTimings){
173+
updateCard(resultSelectionUrls["userTimings"], OpenSpeedMonitor.selectUserTimings.updateUserTimings, spinner);
174+
updateStarted = true;
169175
}
176+
170177
if (updateStarted && currentQueryArgs.caller === "EventResult") {
171178
updateCard(resultSelectionUrls["resultCount"], updateResultCount, spinner);
172179
}
180+
173181
};
174182

175183
var validateForm = function () {
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
"use strict";
2+
3+
var OpenSpeedMonitor = OpenSpeedMonitor || {};
4+
5+
OpenSpeedMonitor.selectUserTimings = (function () {
6+
var resetButtonElement = $(".reset-result-selection");
7+
8+
var updateUserTimings = function (userTimings) {
9+
loopOverOptGroups(executeUpdate, userTimings);
10+
};
11+
12+
function init() {
13+
loopOverOptGroups(executeInit);
14+
}
15+
16+
function loopOverOptGroups(executeOperation, userTimings) {
17+
$('.measurand-select').each(function (index, optGroupElement) {
18+
var optGroupUserTimings = $(optGroupElement).find('.measurand-opt-group-USER_TIMINGS');
19+
if (optGroupUserTimings) {
20+
executeOperation(optGroupUserTimings, userTimings);
21+
if (userTimings && userTimings.length > 0) {
22+
optGroupUserTimings.show();
23+
} else {
24+
optGroupUserTimings.hide();
25+
}
26+
}
27+
});
28+
}
29+
30+
function executeInit(optGroupUserTimings) {
31+
resetButtonElement.on("click", function () {
32+
OpenSpeedMonitor.domUtils.deselectAllOptions(optGroupUserTimings, true);
33+
});
34+
}
35+
36+
function executeUpdate(optGroupUserTimings, userTimings) {
37+
OpenSpeedMonitor.domUtils.updateSelectOptions(optGroupUserTimings, userTimings, null);
38+
}
39+
40+
init();
41+
return {
42+
updateUserTimings: updateUserTimings
43+
}
44+
})();

grails-app/assets/javascripts/application.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,6 @@ OpenSpeedMonitor.domUtils = (function () {
287287
});
288288
return options;
289289
};
290-
291290
/**
292291
* Gets all values of all option elements in a select element
293292
* @param selectElement The select element with options as children
@@ -339,7 +338,7 @@ OpenSpeedMonitor.domUtils = (function () {
339338
getAllOptionValues: getAllOptionValues,
340339
hasAllOptionsSelected: hasAllOptionsSelected,
341340
updateSelectOptions: updateSelectOptions,
342-
deselectAllOptions: deselectAllOptions
341+
deselectAllOptions: deselectAllOptions,
343342
};
344343
})();
345344

grails-app/assets/javascripts/chartComponents/chartBars.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ OpenSpeedMonitor.ChartComponents.ChartBars = (function () {
1818
var transitionDuration = OpenSpeedMonitor.ChartComponents.common.transitionDuration;
1919
var isRestrained = false;
2020
var forceSignInLabel = false;
21+
var highlightId;
2122
var eventHandlers = {};
2223

2324
var setData = function (componentData) {
@@ -29,16 +30,16 @@ OpenSpeedMonitor.ChartComponents.ChartBars = (function () {
2930
barColor = componentData.color || barColor;
3031
forceSignInLabel = (componentData.forceSignInLabel !== undefined) ? componentData.forceSignInLabel : forceSignInLabel;
3132
isRestrained = (componentData.isRestrained !== undefined) ? componentData.isRestrained : isRestrained;
33+
highlightId = highlightId!==componentData.highLightId ? componentData.highLightId || highlightId : undefined;
3234
};
3335

34-
var render = function (selector) {
36+
var render = function (selection) {
3537
var xScale = d3.scale.linear().range([0, width]);
3638
var yScale = d3.scale.ordinal().rangeBands([0, height]);
3739

3840
xScale.domain([minValue, maxValue]);
3941
yScale.domain(data.map(function(d) { return d.id; }));
40-
41-
var bars = d3.select(selector).selectAll(".bar").data(data, function (d) {
42+
var bars = selection.selectAll(".bar").data(data, function (d) {
4243
return d.id;
4344
});
4445
renderExit(bars.exit());
@@ -81,6 +82,9 @@ OpenSpeedMonitor.ChartComponents.ChartBars = (function () {
8182

8283
transition.select(".bar-rect")
8384
.style("fill", barColor)
85+
.style("opacity", function (d) {
86+
return !(d.id===highlightId || !highlightId) ? 0.2 : 1;
87+
})
8488
.attr("y", function (d) {
8589
return yScale(d.id)
8690
})

grails-app/assets/javascripts/job/list.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ function doOnDomReady(getRunningAndRecentlyFinishedJobsLink,
241241
url: OpenSpeedMonitor.urls.jobTags.getTagsForJobs,
242242
data: {jobIds: JSON.stringify(getSelectedJobIds())}
243243
}).done(function (result) {
244-
fillDropdown(jQuery.parseJSON(result).tags);
244+
fillDropdown(result.tags);
245245
});
246246
});
247247
$("#add-tag-confirm-button").click(function () {
Lines changed: 4 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -1,148 +1,4 @@
1-
//= require /urlHandling/urlHelper.js
2-
3-
"use strict";
4-
5-
var OpenSpeedMonitor = OpenSpeedMonitor || {};
6-
OpenSpeedMonitor.ChartModules = OpenSpeedMonitor.ChartModules || {};
7-
OpenSpeedMonitor.ChartModules.UrlHandling = OpenSpeedMonitor.ChartModules.UrlHandling || {};
8-
9-
OpenSpeedMonitor.ChartModules.UrlHandling.JobGroupAggregation = (function () {
10-
11-
var getTimeFrame = function (map) {
12-
map["from"] = $("#fromDatepicker").val();
13-
map["to"] = $("#toDatepicker").val();
14-
};
15-
16-
var getJobGroup = function (map) {
17-
map["selectedFolder"] = $("#folderSelectHtmlId").val();
18-
};
19-
20-
var getMeasurands = function (map) {
21-
var measurands = [];
22-
var measurandObjects = $('.measurandSeries');
23-
$.each(measurandObjects, function (_, currentSeries) {
24-
var currentMeasurands = [$(currentSeries).find(".firstMeasurandSelect").val()];
25-
$(currentSeries).find(".additionalMeasurand").each(function (_, additionalMeasurand) {
26-
currentMeasurands.push($(additionalMeasurand).val());
27-
});
28-
var json = JSON.stringify({
29-
"stacked": $(currentSeries).find(".stackedSelect").val(),
30-
"values": currentMeasurands
31-
});
32-
measurands.push(json);
33-
});
34-
map['measurand'] = measurands
35-
};
36-
var addHandler = function () {
37-
$('#graphButtonHtmlId').on('click', updateUrl);
38-
};
39-
40-
var updateUrl = function () {
41-
var map = {};
42-
getTimeFrame(map);
43-
getJobGroup(map);
44-
getMeasurands(map);
45-
var path = "show?" + $.param(map, true);
46-
window.history.pushState("object or string", "Title", path);
47-
};
48-
49-
var setSelections = function () {
50-
var params = OpenSpeedMonitor.ChartModules.UrlHandling.UrlHelper.getUrlParameter();
51-
// setTrim(params);
52-
if (params && Object.keys(params).length > 0) {
53-
setJobGroups(params);
54-
setMeasurands(params);
55-
if(params.selectedFolder != null){
56-
clickShowButton();
57-
}
58-
}
59-
60-
};
61-
var setMultiSelect = function (id, values) {
62-
$("#" + id).val(values);
63-
$("#" + id).trigger("change")
64-
};
65-
var setJobGroups = function (params) {
66-
var selectedFolderParam = params['selectedFolder'];
67-
if (selectedFolderParam !== undefined && selectedFolderParam != null) {
68-
setMultiSelect("folderSelectHtmlId", selectedFolderParam);
69-
}
70-
};
71-
72-
var clickShowButton = function () {
73-
$("#graphButtonHtmlId").click()
74-
};
75-
76-
var setMeasurands = function (params) {
77-
var measurandGroups = params['measurand'];
78-
if (measurandGroups == undefined || measurandGroups == null) {
79-
return;
80-
}
81-
var currentGroup;
82-
if (measurandGroups.constructor === Array) {
83-
currentGroup = JSON.parse(decodeURIComponent(measurandGroups.shift()));
84-
addMeasurands(currentGroup, 0);
85-
var addButton = $("#addMeasurandSeriesButton");
86-
var length = measurandGroups.length;
87-
for (var i = 0; i < length; i++) {
88-
addButton.click();
89-
addMeasurands(JSON.parse(decodeURIComponent(measurandGroups.shift())), i + 1);
90-
}
91-
} else {
92-
currentGroup = JSON.parse(decodeURIComponent(measurandGroups));
93-
addMeasurands(currentGroup, 0);
94-
}
95-
};
96-
97-
var addMeasurands = function (measurands, index) {
98-
var firstSelect = $(".firstMeasurandSelect").eq(index);
99-
firstSelect.val(measurands['values'].shift());
100-
var length = measurands['values'].length;
101-
var currentPanel = firstSelect.closest(".panel");
102-
var currentAddButton = currentPanel.find(".addMeasurandButton");
103-
for (var i = 0; i < length; i++) {
104-
currentAddButton.click();
105-
currentPanel.find(".additionalMeasurand").eq(i).val(measurands['values'].shift());
106-
currentAddButton = currentPanel.find(".addMeasurandButton").eq(i + 1);
107-
}
108-
currentPanel.find(".stackedSelect").val(measurands['stacked'])
109-
110-
};
111-
112-
var timecardResolved = false;
113-
var barChartResolved = false;
114-
var markTimeCardAsResolved = function () {
115-
timecardResolved = true;
116-
if (allLoaded()) {
117-
init()
118-
}
119-
};
120-
var markBarChartAsResolved = function () {
121-
barChartResolved = true;
122-
if (allLoaded()) {
123-
init()
124-
}
125-
};
126-
var allLoaded = function () {
127-
return timecardResolved && barChartResolved;
128-
};
129-
130-
var init = function () {
131-
setSelections();
132-
addHandler();
133-
};
134-
135-
var initWaitForPostload = function () {
136-
$(window).on("selectIntervalTimeframeCardLoaded", function () {
137-
markTimeCardAsResolved();
138-
});
139-
$(window).on("barchartHorizontalLoaded", function () {
140-
markBarChartAsResolved();
141-
});
142-
};
143-
144-
return {
145-
setSelections: setSelections,
146-
init: initWaitForPostload
147-
};
148-
});
1+
//= require jobGroupAggregationChart.js
2+
//= require jobGroupAggregationGuiHandling.js
3+
//= require jobGroupAggregationHistoryStateHandling.js
4+
//= require_self

0 commit comments

Comments
 (0)