mirror of
https://github.com/farmOS/farmOS.git
synced 2024-02-23 11:37:38 +01:00
64 lines
2.5 KiB
JavaScript
64 lines
2.5 KiB
JavaScript
(function ($) {
|
|
Drupal.behaviors.farm_theme_vbo = {
|
|
attach: function (context, settings) {
|
|
|
|
// Reset the visibility of the VBO buttons if the VBO form is clicked.
|
|
$('.vbo-views-form', context).click(function(event) {
|
|
Drupal.behaviors.farm_theme_vbo.reset_buttons(event.target);
|
|
});
|
|
|
|
// Hide VBO buttons by default.
|
|
$('.vbo-views-form .form-wrapper', context).hide();
|
|
|
|
// Reset the buttons.
|
|
Drupal.behaviors.farm_theme_vbo.reset_buttons(context);
|
|
|
|
// When a VBO config form is displayed, we want to hide everything else
|
|
// on the page. This is accomplished by passing in a few variables to JS
|
|
// via hook_views_bulk_operations_form_alter() when the step is config.
|
|
if ((typeof Drupal.settings.farm_theme !== 'undefined') && (typeof Drupal.settings.farm_theme.vbo_hide !== 'undefined')) {
|
|
|
|
// Hide everything within the page content, and then show only the
|
|
// View. (use both the View's name and display when building the
|
|
// selector to ensure specificity).
|
|
var view_name = Drupal.settings.farm_theme.view_name;
|
|
var view_display = Drupal.settings.farm_theme.view_display;
|
|
var selector = '.view-id-' + view_name + '.view-display-id-' + view_display;
|
|
$('.region-content > :not(' + selector + ')', context).hide();
|
|
$(selector, context).appendTo('.region-content');
|
|
|
|
// Hide page-top map, breadcrumbs, tabs, and action links as well.
|
|
$('.region-page-top .farm-map', context).hide();
|
|
$('.breadcrumb', context).hide();
|
|
$('.tabs--primary', context).hide();
|
|
$('.action-links', context).hide();
|
|
}
|
|
},
|
|
|
|
// Reset the visibility of the VBO buttons.
|
|
reset_buttons: function (context) {
|
|
|
|
// Find all checked boxes within the given VBO.
|
|
var checked = $(context).closest('.vbo-views-form').find('input:checked');
|
|
|
|
// Get the VBO buttons fieldset.
|
|
var buttons = $(context).closest('.vbo-views-form').find('.form-wrapper');
|
|
|
|
// Check to see if the VBO buttons are visible.
|
|
var visible = buttons.is(':visible');
|
|
|
|
// If any boxes are checked, show the VBO buttons.
|
|
var show = (checked.length) ? true : false;
|
|
|
|
// If the VBO buttons are hidden and we want to show them, slide down.
|
|
if (!visible && show) {
|
|
buttons.slideDown();
|
|
}
|
|
|
|
// Or, if the buttons are visible, and we want to hide them, slide up.
|
|
else if (visible && !show) {
|
|
buttons.slideUp();
|
|
}
|
|
}
|
|
};
|
|
})(jQuery);
|