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')