summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Sumaran <alfredo@gitlab.com>2017-01-12 17:16:57 +0000
committerAlfredo Sumaran <alfredo@gitlab.com>2017-01-12 17:16:57 +0000
commit92ec284b2f87db508fee8433d9a69716bf65f9fc (patch)
tree5142f18a37b9c8bc7172d08aebc1a9d7dc3d818c
parent3c9a3918e6a93a3e3cdcbe63214809d2ba9eb959 (diff)
parentc254d05953fbf31425f934a349a65e8866ccf07a (diff)
downloadgitlab-ce-92ec284b2f87db508fee8433d9a69716bf65f9fc.tar.gz
Merge branch '26109-preserve-scroll-position-on-autoreload' into 'master'
Scroll to bottom on build completion if autoscroll was active Closes #26109 See merge request !8391
-rw-r--r--app/assets/javascripts/build.js15
-rw-r--r--changelogs/unreleased/26109-preserve-scroll-position-on-autoreload.yml4
2 files changed, 17 insertions, 2 deletions
diff --git a/app/assets/javascripts/build.js b/app/assets/javascripts/build.js
index bc13c46443a..fca47002870 100644
--- a/app/assets/javascripts/build.js
+++ b/app/assets/javascripts/build.js
@@ -5,6 +5,7 @@
(function() {
var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
var AUTO_SCROLL_OFFSET = 75;
+ var DOWN_BUILD_TRACE = '#down-build-trace';
this.Build = (function() {
Build.interval = null;
@@ -26,7 +27,7 @@
this.$autoScrollStatus = $('#autoscroll-status');
this.$autoScrollStatusText = this.$autoScrollStatus.find('.status-text');
this.$upBuildTrace = $('#up-build-trace');
- this.$downBuildTrace = $('#down-build-trace');
+ this.$downBuildTrace = $(DOWN_BUILD_TRACE);
this.$scrollTopBtn = $('#scroll-top');
this.$scrollBottomBtn = $('#scroll-bottom');
this.$buildRefreshAnimation = $('.js-build-refresh');
@@ -91,6 +92,9 @@
dataType: 'json',
success: function(buildData) {
$('.js-build-output').html(buildData.trace_html);
+ if (window.location.hash === DOWN_BUILD_TRACE) {
+ $("html,body").scrollTop(this.$buildTrace.height());
+ }
if (removeRefreshStatuses.indexOf(buildData.status) >= 0) {
this.$buildRefreshAnimation.remove();
return this.initScrollMonitor();
@@ -105,6 +109,8 @@
dataType: "json",
success: (function(_this) {
return function(log) {
+ var pageUrl;
+
if (log.state) {
_this.state = log.state;
}
@@ -116,7 +122,12 @@
}
return _this.checkAutoscroll();
} else if (log.status !== _this.buildStatus) {
- return Turbolinks.visit(_this.pageUrl);
+ pageUrl = _this.pageUrl;
+ if (_this.$autoScrollStatus.data('state') === 'enabled') {
+ pageUrl += DOWN_BUILD_TRACE;
+ }
+
+ return Turbolinks.visit(pageUrl);
}
};
})(this)
diff --git a/changelogs/unreleased/26109-preserve-scroll-position-on-autoreload.yml b/changelogs/unreleased/26109-preserve-scroll-position-on-autoreload.yml
new file mode 100644
index 00000000000..cde0d114d7c
--- /dev/null
+++ b/changelogs/unreleased/26109-preserve-scroll-position-on-autoreload.yml
@@ -0,0 +1,4 @@
+---
+title: Scroll to bottom on build completion if autoscroll was active
+merge_request: 8391
+author: