diff options
author | Kushal Pandya <kushal@gitlab.com> | 2016-12-09 15:26:25 +0300 |
---|---|---|
committer | Kushal Pandya <kushal@gitlab.com> | 2016-12-21 10:46:17 +0300 |
commit | c02945ac95ee3374007249f07211cbf6002a2fa2 (patch) | |
tree | 5ca26ba22492897b76d82295fa4349d14c208fa7 /app/assets/javascripts/build.js | |
parent | a8fa87ce9d0dea1baed7c40e10a6b19da99ec6e4 (diff) |
Cache commonly referenced DOM elements, cleaning up
Diffstat (limited to 'app/assets/javascripts/build.js')
-rw-r--r-- | app/assets/javascripts/build.js | 69 |
1 files changed, 29 insertions, 40 deletions
diff --git a/app/assets/javascripts/build.js b/app/assets/javascripts/build.js index 51ac8d7970b..5983bd86e8e 100644 --- a/app/assets/javascripts/build.js +++ b/app/assets/javascripts/build.js @@ -31,6 +31,15 @@ this.buildStage = options.buildStage; this.updateDropdown = bind(this.updateDropdown, this); this.$document = $(document); + this.$body = $('body'); + this.$buildTrace = $('#build-trace'); + this.$autoScrollContainer = $('.autoscroll-container'); + this.$autoScrollStatus = $('#autoscroll-status'); + this.$upBuildTrace = $('#up-build-trace'); + this.$downBuildTrace = $('#down-build-trace'); + this.$scrollTopBtn = $('#scroll-top'); + this.$scrollBottomBtn = $('#scroll-bottom'); + clearInterval(Build.interval); // Init breakpoint checker this.bp = Breakpoints.get(); @@ -123,24 +132,15 @@ }; Build.prototype.checkAutoscroll = function() { - if ("enabled" === $("#autoscroll-status").data("state")) { + if ($("#autoscroll-status").data("state") === "enabled") { return $("html,body").scrollTop($("#build-trace").height()); } }; Build.prototype.initScrollButtonAffix = function() { - var $body = $('body'); - var $buildTrace = $('#build-trace'); - var $scrollTopBtn = $('#scroll-top'); - var $scrollBottomBtn = $('#scroll-bottom'); - var $autoScrollContainer = $('.autoscroll-container'); - - $scrollTopBtn.hide().removeClass('sticky'); - $scrollBottomBtn.show().addClass('sticky'); - - if ($autoScrollContainer.length) { - $autoScrollContainer.hide(); - } + this.$scrollTopBtn.hide().removeClass('sticky'); + this.$scrollBottomBtn.show().addClass('sticky'); + this.$autoScrollContainer.hide(); } // Page scroll listener to detect if user has scrolling page @@ -158,43 +158,32 @@ // - Show Bottom Arrow button // - Disable Autoscroll and hide indicator (when build is running) Build.prototype.initScrollMonitor = function() { - var $body = $('body'); - var $buildTrace = $('#build-trace'); - var $autoScrollContainer = $('.autoscroll-container'); - var $autoScrollStatus = $('#autoscroll-status'); - var $upBuildTrace = $('#up-build-trace'); - var $downBuildTrace = $('#down-build-trace'); - var $scrollTopBtn = $('#scroll-top'); - var $scrollBottomBtn = $('#scroll-bottom'); - - if (isInViewport($upBuildTrace)) { // User is at Top of Build Log - $scrollTopBtn.hide().removeClass('sticky'); - $scrollBottomBtn.show().addClass('sticky'); + if (isInViewport(this.$upBuildTrace)) { // User is at Top of Build Log + this.$scrollTopBtn.hide().removeClass('sticky'); + this.$scrollBottomBtn.show().addClass('sticky'); } - if (isInViewport($downBuildTrace)) { // User is at Bottom of Build Log - $scrollTopBtn.show().addClass('sticky'); - $scrollBottomBtn.hide().removeClass('sticky'); + if (isInViewport(this.$downBuildTrace)) { // User is at Bottom of Build Log + this.$scrollTopBtn.show().addClass('sticky'); + this.$scrollBottomBtn.hide().removeClass('sticky'); - if ($autoScrollContainer.length) { // Show and Reposition Autoscroll Status Message - $autoScrollContainer.show().css({ top: $body.outerHeight() - 75 }); - $autoScrollStatus.find('.status-text').addClass('animate'); - } + // Show and Reposition Autoscroll Status Indicator + this.$autoScrollContainer.css({ top: this.$body.outerHeight() - 75 }).fadeIn(100); + this.$autoScrollStatus.find('.status-text').addClass('animate'); } - if (!isInViewport($upBuildTrace) && !isInViewport($downBuildTrace)) { // User is somewhere in middle of Build Log - $scrollTopBtn.show().addClass('sticky'); - $scrollBottomBtn.show().addClass('sticky'); + if (!isInViewport(this.$upBuildTrace) && !isInViewport(this.$downBuildTrace)) { // User is somewhere in middle of Build Log + this.$scrollTopBtn.show().addClass('sticky'); + this.$scrollBottomBtn.show().addClass('sticky'); - if ($autoScrollContainer.length) { - $autoScrollContainer.hide(); - $autoScrollStatus.find('.status-text').removeClass('animate'); - } + // Hide Autoscroll Status Indicator + this.$autoScrollContainer.hide(); + this.$autoScrollStatus.find('.status-text').removeClass('animate'); } if (this.buildStatus === "running" || this.buildStatus === "pending") { // Check if Refresh Animation is in Viewport and enable Autoscroll, disable otherwise. - $autoScrollStatus.data("state", isInViewport($('.js-build-refresh')) ? 'enabled' : 'disabled'); + this.$autoScrollStatus.data("state", isInViewport($('.js-build-refresh')) ? 'enabled' : 'disabled'); } }; |