summaryrefslogtreecommitdiff
path: root/vendor/assets/javascripts/peek.js
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/assets/javascripts/peek.js')
-rw-r--r--vendor/assets/javascripts/peek.js70
1 files changed, 43 insertions, 27 deletions
diff --git a/vendor/assets/javascripts/peek.js b/vendor/assets/javascripts/peek.js
index 695eeb27c17..7c6d226fa6a 100644
--- a/vendor/assets/javascripts/peek.js
+++ b/vendor/assets/javascripts/peek.js
@@ -1,14 +1,14 @@
/*
- * This is a modified version of https://github.com/peek/peek/blob/master/app/assets/javascripts/peek.js
+ * this is a modified version of https://github.com/peek/peek/blob/master/app/assets/javascripts/peek.js
*
* - Removed the dependency on jquery.tipsy
* - Removed the initializeTipsy and toggleBar functions
- * - Customized updatePerformanceBar to handle SQL queries report specificities
+ * - Customized updatePerformanceBar to handle SQL query and Gitaly call lists
* - Changed /peek/results to /-/peek/results
* - Removed the keypress, pjax:end, page:change, and turbolinks:load handlers
*/
(function($) {
- var fetchRequestResults, getRequestId, peekEnabled, updatePerformanceBar;
+ var fetchRequestResults, getRequestId, peekEnabled, updatePerformanceBar, createTable, createTableRow;
getRequestId = function() {
return $('#peek').data('requestId');
};
@@ -16,39 +16,55 @@
return $('#peek').length;
};
updatePerformanceBar = function(results) {
- var key, label, data, table, html, tr, duration_td, sql_td, strong;
-
Object.keys(results.data).forEach(function(key) {
Object.keys(results.data[key]).forEach(function(label) {
- data = results.data[key][label];
+ var data = results.data[key][label];
+ var table = createTable(key, label, data);
+ var target = $('[data-defer-to="' + key + '-' + label + '"]');
+
+ if (table) {
+ target.html(table);
+ } else {
+ target.text(data);
+ }
+ });
+ });
+ return $(document).trigger('peek:render', [getRequestId(), results]);
+ };
+ createTable = function(key, label, data) {
+ if (label !== 'queries' && label !== 'details') {
+ return;
+ }
- if (label == 'queries') {
- table = document.createElement('table');
+ var table = document.createElement('table');
- for (var i = 0; i < data.length; i += 1) {
- tr = document.createElement('tr');
- duration_td = document.createElement('td');
- sql_td = document.createElement('td');
- strong = document.createElement('strong');
+ for (var i = 0; i < data.length; i += 1) {
+ table.appendChild(createTableRow(data[i]));
+ }
- strong.append(data[i]['duration'] + 'ms');
- duration_td.appendChild(strong);
- tr.appendChild(duration_td);
+ table.className = 'table';
- sql_td.appendChild(document.createTextNode(data[i]['sql']));
- tr.appendChild(sql_td);
+ return table;
+ };
+ createTableRow = function(row) {
+ var tr = document.createElement('tr');
+ var durationTd = document.createElement('td');
+ var strong = document.createElement('strong');
- table.appendChild(tr);
- }
+ strong.append(row['duration'] + 'ms');
+ durationTd.appendChild(strong);
+ tr.appendChild(durationTd);
- table.className = 'table';
- $("[data-defer-to=" + key + "-" + label + "]").html(table);
- } else {
- $("[data-defer-to=" + key + "-" + label + "]").text(results.data[key][label]);
- }
- });
+ ['sql', 'feature', 'enabled', 'request'].forEach(function(key) {
+ if (!row[key]) { return; }
+
+ var td = document.createElement('td');
+
+ td.appendChild(document.createTextNode(row[key]));
+ tr.appendChild(td);
});
- return $(document).trigger('peek:render', [getRequestId(), results]);
+
+ return tr;
};
fetchRequestResults = function() {
return $.ajax('/-/peek/results', {