diff --git a/app/assets/javascripts/build_artifacts.js.coffee b/app/assets/javascripts/build_artifacts.js.coffee
new file mode 100644
index 0000000000000000000000000000000000000000..5ae6cba56c8ee020e69da29806799b3b25569482
--- /dev/null
+++ b/app/assets/javascripts/build_artifacts.js.coffee
@@ -0,0 +1,14 @@
+class @BuildArtifacts
+  constructor: () ->
+    @disablePropagation()
+    @setupEntryClick()
+
+  disablePropagation: ->
+    $('.top-block').on 'click', '.download',  (e) ->
+      e.stopPropagation()
+    $('.tree-holder').on 'click', 'tr[data-link] a', (e) ->
+      e.stopImmediatePropagation()
+
+  setupEntryClick: ->
+    $('.tree-holder').on 'click', 'tr[data-link]', (e) ->
+      window.location = @dataset.link
diff --git a/app/assets/javascripts/dispatcher.js.coffee b/app/assets/javascripts/dispatcher.js.coffee
index 0d88e8d254a60e1424fa0bb9ae4455c95ee3179f..2cdf01d874cda3e2632d6ff0372dcf3d45a67947 100644
--- a/app/assets/javascripts/dispatcher.js.coffee
+++ b/app/assets/javascripts/dispatcher.js.coffee
@@ -100,6 +100,8 @@ class Dispatcher
         shortcut_handler = true
       when 'projects:forks:new'
         new ProjectFork()
+      when 'projects:artifacts:browse'
+        new BuildArtifacts()
       when 'users:show'
         new User()
         new Activities()
diff --git a/app/views/projects/artifacts/browse.html.haml b/app/views/projects/artifacts/browse.html.haml
index d3c969cc035fe2f579f2dd30a3f2dd19931286cf..84034c8bf16e952e173235f1b991950014d7e97e 100644
--- a/app/views/projects/artifacts/browse.html.haml
+++ b/app/views/projects/artifacts/browse.html.haml
@@ -4,7 +4,7 @@
 .top-block.gray-content-block.clearfix
   .pull-right
     = link_to download_namespace_project_build_artifacts_path(@project.namespace, @project, @build),
-      class: 'btn btn-default' do
+      class: 'btn btn-default download' do
       = icon('download')
       Download artifacts archive
 
@@ -20,12 +20,3 @@
 
 - if @entry.empty?
   .center Empty
-
-:javascript
-  $('.tree-holder').on('click', 'tr[data-link] a', function(e) {
-    e.stopImmediatePropagation();
-  });
-
-  $('.tree-holder').on('click', 'tr[data-link]', function(e) {
-    window.location = this.dataset.link;
-  });