diff --git a/app/assets/javascripts/user_tabs.js.coffee b/app/assets/javascripts/user_tabs.js.coffee
index 5d82f5997106a2240e3ed3d66e9651b7479e9a54..8f1e80271972302dc46ce6e3d137d44f4ff1fb58 100644
--- a/app/assets/javascripts/user_tabs.js.coffee
+++ b/app/assets/javascripts/user_tabs.js.coffee
@@ -50,11 +50,10 @@
 #   </div>
 #
 class @UserTabs
-  actions: ['activity', 'groups', 'contributed', 'projects'],
-  defaultAction: 'activity',
   constructor: (opts) ->
     {
       @action = 'activity'
+      @defaultAction = 'activity'
       @parentEl = $(document)
     } = opts
 
@@ -63,16 +62,21 @@ class @UserTabs
 
     # Store the `location` object, allowing for easier stubbing in tests
     @_location = location
+
+    # Set tab states
     @loaded = {}
+    for item in @parentEl.find('.nav-links a')
+      @loaded[$(item).attr 'data-action'] = false
 
-    @bindEvents()
-    @tabStateInit()
+    # Actions
+    @actions = Object.keys @loaded
 
-    currAction = @defaultAction if @action is 'show'
+    @bindEvents()
 
     # Set active tab
-    source = $(".#{currAction}-tab a").attr('href')
-    @activateTab(currAction)
+    @action = @defaultAction if @action is 'show'
+    source = $(".#{@action}-tab a").attr('href')
+    @activateTab(@action)
 
   bindEvents: ->
     # Turn off existing event listeners
@@ -81,10 +85,6 @@ class @UserTabs
     # Set event listeners
     @parentEl.on 'shown.bs.tab', '.nav-links a[data-toggle="tab"]', @tabShown
 
-  tabStateInit: ->
-    for action in @actions
-      @loaded[action] = false
-
   tabShown: (event) =>
     $target = $(event.target)
     action = $target.data('action')