first import
This commit is contained in:
23
sites/all/modules/quicktabs/js/qt_accordion.js
Normal file
23
sites/all/modules/quicktabs/js/qt_accordion.js
Normal file
@@ -0,0 +1,23 @@
|
||||
(function ($) {
|
||||
|
||||
Drupal.behaviors.qt_accordion = {
|
||||
attach: function (context, settings) {
|
||||
$('.quick-accordion', context).once(function(){
|
||||
var id = $(this).attr('id');
|
||||
var qtKey = 'qt_' + this.id.substring(this.id.indexOf('-') +1);
|
||||
var options = settings.quicktabs[qtKey].options;
|
||||
|
||||
options.active = parseInt(settings.quicktabs[qtKey].active_tab);
|
||||
if (settings.quicktabs[qtKey].history) {
|
||||
options.event = 'change';
|
||||
$(this).accordion(options);
|
||||
Drupal.quicktabsBbq($(this), 'h3 a', 'h3');
|
||||
}
|
||||
else {
|
||||
$(this).accordion(options);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
})(jQuery);
|
21
sites/all/modules/quicktabs/js/qt_ui_tabs.js
Normal file
21
sites/all/modules/quicktabs/js/qt_ui_tabs.js
Normal file
@@ -0,0 +1,21 @@
|
||||
(function ($) {
|
||||
|
||||
Drupal.behaviors.qt_ui_tabs = {
|
||||
attach: function (context, settings) {
|
||||
|
||||
$('.quicktabs-ui-wrapper').once('qt-ui-tabs-processed', function() {
|
||||
var id = $(this).attr('id');
|
||||
var qtKey = 'qt_' + id.substring(id.indexOf('-') +1);
|
||||
if (!settings.quicktabs[qtKey].history) {
|
||||
$(this).tabs();
|
||||
}
|
||||
else {
|
||||
$(this).tabs({event: 'change'});
|
||||
Drupal.quicktabsBbq($(this), 'ul.ui-tabs-nav a');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
})(jQuery);
|
119
sites/all/modules/quicktabs/js/quicktabs.js
Normal file
119
sites/all/modules/quicktabs/js/quicktabs.js
Normal file
@@ -0,0 +1,119 @@
|
||||
(function ($) {
|
||||
Drupal.settings.views = Drupal.settings.views || {'ajax_path': '/views/ajax'};
|
||||
|
||||
Drupal.quicktabs = Drupal.quicktabs || {};
|
||||
|
||||
Drupal.quicktabs.getQTName = function (el) {
|
||||
return el.id.substring(el.id.indexOf('-') +1);
|
||||
}
|
||||
|
||||
Drupal.behaviors.quicktabs = {
|
||||
attach: function (context, settings) {
|
||||
$.extend(true, Drupal.settings, settings);
|
||||
$('.quicktabs-wrapper', context).once(function(){
|
||||
Drupal.quicktabs.prepare(this);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Setting up the inital behaviours
|
||||
Drupal.quicktabs.prepare = function(el) {
|
||||
// el.id format: "quicktabs-$name"
|
||||
var qt_name = Drupal.quicktabs.getQTName(el);
|
||||
var $ul = $(el).find('ul.quicktabs-tabs:first');
|
||||
$ul.find('li a').each(function(i, element){
|
||||
element.myTabIndex = i;
|
||||
element.qt_name = qt_name;
|
||||
var tab = new Drupal.quicktabs.tab(element);
|
||||
var parent_li = $(element).parents('li').get(0);
|
||||
if ($(parent_li).hasClass('active')) {
|
||||
$(element).addClass('quicktabs-loaded');
|
||||
}
|
||||
$(element).once(function() {$(this).bind('click', {tab: tab}, Drupal.quicktabs.clickHandler);});
|
||||
});
|
||||
}
|
||||
|
||||
Drupal.quicktabs.clickHandler = function(event) {
|
||||
var tab = event.data.tab;
|
||||
var element = this;
|
||||
// Set clicked tab to active.
|
||||
$(this).parents('li').siblings().removeClass('active');
|
||||
$(this).parents('li').addClass('active');
|
||||
|
||||
// Hide all tabpages.
|
||||
tab.container.children().addClass('quicktabs-hide');
|
||||
|
||||
if (!tab.tabpage.hasClass("quicktabs-tabpage")) {
|
||||
tab = new Drupal.quicktabs.tab(element);
|
||||
}
|
||||
|
||||
tab.tabpage.removeClass('quicktabs-hide');
|
||||
return false;
|
||||
}
|
||||
|
||||
// Constructor for an individual tab
|
||||
Drupal.quicktabs.tab = function (el) {
|
||||
this.element = el;
|
||||
this.tabIndex = el.myTabIndex;
|
||||
var qtKey = 'qt_' + el.qt_name;
|
||||
var i = 0;
|
||||
for (var key in Drupal.settings.quicktabs[qtKey].tabs) {
|
||||
if (i == this.tabIndex) {
|
||||
this.tabObj = Drupal.settings.quicktabs[qtKey].tabs[key];
|
||||
this.tabKey = key;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
this.tabpage_id = 'quicktabs-tabpage-' + el.qt_name + '-' + this.tabKey;
|
||||
this.container = $('#quicktabs-container-' + el.qt_name);
|
||||
this.tabpage = this.container.find('#' + this.tabpage_id);
|
||||
}
|
||||
|
||||
if (Drupal.ajax) {
|
||||
/**
|
||||
* Handle an event that triggers an AJAX response.
|
||||
*
|
||||
* We unfortunately need to override this function, which originally comes from
|
||||
* misc/ajax.js, in order to be able to cache loaded tabs, i.e. once a tab
|
||||
* content has loaded it should not need to be loaded again.
|
||||
*
|
||||
* I have removed all comments that were in the original core function, so that
|
||||
* the only comments inside this function relate to the Quicktabs modification
|
||||
* of it.
|
||||
*/
|
||||
Drupal.ajax.prototype.eventResponse = function (element, event) {
|
||||
var ajax = this;
|
||||
|
||||
if (ajax.ajaxing) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
if (ajax.form) {
|
||||
if (ajax.setClick) {
|
||||
element.form.clk = element;
|
||||
}
|
||||
|
||||
ajax.form.ajaxSubmit(ajax.options);
|
||||
}
|
||||
else {
|
||||
// Do not perform an ajax request for already loaded Quicktabs content.
|
||||
if (!$(element).hasClass('quicktabs-loaded')) {
|
||||
ajax.beforeSerialize(ajax.element, ajax.options);
|
||||
$.ajax(ajax.options);
|
||||
if ($(element).parents('ul').hasClass('quicktabs-tabs')) {
|
||||
$(element).addClass('quicktabs-loaded');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
ajax.ajaxing = false;
|
||||
alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
})(jQuery);
|
37
sites/all/modules/quicktabs/js/quicktabs_bbq.js
Normal file
37
sites/all/modules/quicktabs/js/quicktabs_bbq.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* @file
|
||||
* Implements history using the BBQ plugin.
|
||||
* See http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
Drupal.quicktabsBbq = function($tabset, clickSelector, changeSelector) {
|
||||
|
||||
changeSelector = changeSelector || clickSelector;
|
||||
|
||||
// Define our own click handler for the tabs, overriding the default.
|
||||
$(clickSelector, $tabset).each(function(i, el){
|
||||
this.tabIndex = i;
|
||||
$(this).click(function(e){
|
||||
e.preventDefault();
|
||||
var state = {},
|
||||
id = $tabset.attr('id'), // qt container id
|
||||
idx = this.tabIndex; // tab index
|
||||
|
||||
state[id] = idx;
|
||||
$.bbq.pushState(state);
|
||||
});
|
||||
});
|
||||
|
||||
$(window).bind('hashchange', function(e) {
|
||||
$tabset.each(function() {
|
||||
var idx = $.bbq.getState(this.id, true);
|
||||
var $active_link = $(this).find(changeSelector).eq(idx);
|
||||
$active_link.triggerHandler('change');
|
||||
});
|
||||
});
|
||||
|
||||
$(window).trigger('hashchange');
|
||||
}
|
||||
|
||||
})(jQuery);
|
17
sites/all/modules/quicktabs/js/quicktabs_form.js
Normal file
17
sites/all/modules/quicktabs/js/quicktabs_form.js
Normal file
@@ -0,0 +1,17 @@
|
||||
(function ($) {
|
||||
|
||||
Drupal.quicktabsShowHide = function() {
|
||||
$(this).parents('tr').find('div.qt-tab-' + this.value + '-options-form').show().siblings('div.qt-tab-options-form').hide();
|
||||
};
|
||||
|
||||
Drupal.behaviors.quicktabsform = {
|
||||
attach: function (context, settings) {
|
||||
$('#quicktabs-form tr').once(function(){
|
||||
var currentRow = $(this);
|
||||
currentRow.find('div.form-item :input[name*="type"]').bind('click', Drupal.quicktabsShowHide);
|
||||
$(':input[name*="type"]:checked', this).trigger('click');
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
Reference in New Issue
Block a user