/**
* @file
* Theme hooks for the Drupal Bootstrap base theme.
*/
(function ($, Drupal, Bootstrap, Attributes) {
/**
* Fallback for theming an icon if the Icon API module is not installed.
*/
if (!Drupal.icon) Drupal.icon = { bundles: {} };
if (!Drupal.theme.icon || Drupal.theme.prototype.icon) {
$.extend(Drupal.theme, /** @lends Drupal.theme */ {
/**
* Renders an icon.
*
* @param {string} bundle
* The bundle which the icon belongs to.
* @param {string} icon
* The name of the icon to render.
* @param {object|Attributes} [attributes]
* An object of attributes to also apply to the icon.
*
* @returns {string}
*/
icon: function (bundle, icon, attributes) {
if (!Drupal.icon.bundles[bundle]) return '';
attributes = Attributes.create(attributes).addClass('icon').set('aria-hidden', 'true');
icon = Drupal.icon.bundles[bundle](icon, attributes);
return '';
}
});
}
/**
* Callback for modifying an icon in the "bootstrap" icon bundle.
*
* @param {string} icon
* The icon being rendered.
* @param {Attributes} attributes
* Attributes object for the icon.
*/
Drupal.icon.bundles.bootstrap = function (icon, attributes) {
attributes.addClass(['glyphicon', 'glyphicon-' + icon]);
};
/**
* Add necessary theming hooks.
*/
$.extend(Drupal.theme, /** @lends Drupal.theme */ {
/**
* Renders a Bootstrap AJAX glyphicon throbber.
*
* @returns {string}
*/
ajaxThrobber: function () {
return Drupal.theme('bootstrapIcon', 'refresh', {'class': ['ajax-throbber', 'glyphicon-spin'] });
},
/**
* Renders a button element.
*
* @param {object|Attributes} attributes
* An object of attributes to apply to the button. If it contains one of:
* - value: The label of the button.
* - context: The context type of Bootstrap button, can be one of:
* - default
* - primary
* - success
* - info
* - warning
* - danger
* - link
*
* @returns {string}
*/
button: function (attributes) {
attributes = Attributes.create(attributes).addClass('btn');
var context = attributes.get('context', 'default');
var label = attributes.get('value', '');
attributes.remove('context').remove('value');
if (!attributes.hasClass(['btn-default', 'btn-primary', 'btn-success', 'btn-info', 'btn-warning', 'btn-danger', 'btn-link'])) {
attributes.addClass('btn-' + Bootstrap.checkPlain(context));
}
// Attempt to, intelligently, provide a default button "type".
if (!attributes.exists('type')) {
attributes.set('type', attributes.hasClass('form-submit') ? 'submit' : 'button');
}
return 'Top-10-gambling-apps-help@thelasvegans.com招考无忧安热沙3322软件站155生活娱乐导航沙巴体育app中国废旧物资网买球平台澳门威尼斯威尼斯人赌场头条新闻网Crown-betting-careers@piaohuayy.net人文百科Sports-in-Sabah-service@parisairquality.net58同城邢台分类信息网The-Venetian-Casino-contact@winghingmachinery.com南昌汽车网体育平台hao123网址之家365-Sports-billing@shionable.com果实网中小学教师继续教育培训平台黑帽网丰顺路宝李维斯(Levi's)牛仔裤爱好者论坛资阳赶集网梦想加空间中国教师站上海易车网21英语保定人才网51查询网巴士神武专区中山大学网址导航手机之家手机库盘搜