diff options
author | Alfredo Sumaran <alfredo@gitlab.com> | 2017-01-12 17:16:57 +0000 |
---|---|---|
committer | Alfredo Sumaran <alfredo@gitlab.com> | 2017-01-12 17:16:57 +0000 |
commit | 92ec284b2f87db508fee8433d9a69716bf65f9fc (patch) | |
tree | 5142f18a37b9c8bc7172d08aebc1a9d7dc3d818c | |
parent | 3c9a3918e6a93a3e3cdcbe63214809d2ba9eb959 (diff) | |
parent | c254d05953fbf31425f934a349a65e8866ccf07a (diff) | |
download | gitlab-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.js | 15 | ||||
-rw-r--r-- | changelogs/unreleased/26109-preserve-scroll-position-on-autoreload.yml | 4 |
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: |