GitLab wurde aktualisiert. Dank regelmäßiger Updates bleibt das THM GitLab sicher und Sie profitieren von den neuesten Funktionen. Vielen Dank für Ihre Geduld.

Commit eed8b179 authored by Alfredo Sumaran's avatar Alfredo Sumaran
Browse files

Handle default tab

parent c6b27550
class @UserTabs
actions: ['activity', 'groups', 'contributed', 'personal'],
defaultAction: 'activity',
tabButtonSelector: '.nav-links a[data-toggle="tab"]'
constructor: ->
constructor: (@opts = {}) ->
# Store the `location` object, allowing for easier stubbing in tests
@_location = location
@loaded = {}
@bindEvents()
@setTabState()
# Set default tab
source = $(".#{@defaultAction}-tab a").attr('href')
@setTab(source, @defaultAction)
bindEvents: ->
$(document).on 'shown.bs.tab', '.nav-links a[data-toggle="tab"]', @tabShown
$(document).on 'shown.bs.tab', @tabButtonSelector, @tabShown
setTabState: ->
for action in @actions
@loaded[action] = false
tabShown: (event) =>
$target = $(event.target)
action = $target.data('action')
source = $target.attr('href')
@loadTab(source, action)
@setTab(source, action)
@setCurrentAction(action)
setTab: (source, action) ->
return if @loaded[action] is true
if action is 'activity'
@loadActivities(source)
if action is 'groups'
@loadTab(source, action)
if action is 'contributed'
@loadTab(source, action)
if action is 'personal'
@loadTab(source, action)
loadTab: (source, action) ->
@_get
$.ajax
beforeSend: => @toggleLoading(true)
complete: => @toggleLoading(false)
dataType: 'json'
type: 'GET'
url: "#{source}.json"
success: (data) =>
tabSelector = 'div#' + action
document.querySelector(tabSelector).innerHTML = data.html
@loaded[action] = true
toggleLoading: (status) ->
$('.loading-status .loading').toggle(status)
loadActivities: (source) ->
return if @loaded['activity'] is true
_get: (options) ->
defaults = {
beforeSend: => @toggleLoading(true)
complete: => @toggleLoading(false)
dataType: 'json'
type: 'GET'
}
$calendarWrap = $('.user-calendar')
$calendarWrap.load($calendarWrap.data('url'))
options = $.extend({}, defaults, options)
new Activities()
@loaded['activity'] = true
$.ajax(options)
toggleLoading: (status) ->
$('.loading-status .loading').toggle(status)
setCurrentAction: (action) ->
# Remove possible actions from URL
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment