Sha256: 08f06cfe048601607aa8c774de9cca7b3bc563b783aed6beb76fb97bc23f91c3
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
# Tabs hash management adapted from SO answer : # http://stackoverflow.com/a/21443271/685925 # class Para.Tabs extends Vertebra.View events: 'shown.bs.tab a[data-toggle="tab"]': 'onTabShown' 'change .tab-pane': 'onFormInputUpdate' initialize: (options = {}) -> @$anchorInput = options.$anchorInput @showActiveTab() @refreshTabsErrors() showActiveTab: -> if (hash = (location.hash or @$anchorInput?.val())) @findTab(hash).tab('show') onTabShown: (e) => tabHash = $(e.target).attr('href') history.pushState(null, null, tabHash) @updateAnchorInput() updateAnchorInput: -> @$anchorInput.val(location.hash) if @$anchorInput.length refreshTabsErrors: -> @$('[data-toggle="tab"]').each (i, tab) => @refreshTabErrors($(tab)) refreshTabErrors: ($tab) -> $panel = @$($tab.attr('href')) $tab.addClass('has-error') if $panel.find('.has-error').length onFormInputUpdate: (e) -> $tab = @findTab($(e.currentTarget).attr('id')) @refreshTabErrors($tab) findTab: (id) -> id = id.replace(/^\#/, '') @$('a[href="' + id + '"]') $(document).on 'page:change turbolinks:load', -> $('[data-form-tabs]').each (i, el) -> new Para.Tabs(el: el, $anchorInput: $('[data-current-anchor]'))
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
para-0.7.0 | app/assets/javascripts/para/admin/tabs.coffee |