123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /**
- * @file shows / hides form elements
- */
- (function ($) {
- Drupal.behaviors.TaxonomyManagerHideForm = {
- attach: function(context, settings) {
- $('#edit-toolbar', context).once('hideForm', function() {
- for (var key in settings.hideForm) {
- Drupal.attachHideForm(settings.hideForm[key].div, settings.hideForm[key].show_button, settings.hideForm[key].hide_button);
- }
- });
- }
- }
- /**
- * adds click events to show / hide button
- */
- Drupal.attachHideForm = function(div, show_button, hide_button) {
- var hide = true;
- var div = $("#"+ div);
- var show_button = $("#"+ show_button);
- var hide_button = $("#"+ hide_button);
- // don't hide if there is an error in the form
- $(div).find("input").each(function() {
- if ($(this).hasClass("error")) {
- hide = false;
- }
- });
- if (!hide) {
- $(div).show();
- }
- $(show_button).click(function() {
- Drupal.hideOtherForms(div);
- $(div).toggle();
- return false;
- });
- $(hide_button).click(function() {
- $(div).hide();
- return false;
- });
- }
- /**
- * Helper function that hides all forms, except the current one.
- */
- Drupal.hideOtherForms = function(currentFormDiv) {
- var currentFormDivId = $(currentFormDiv).attr('id');
- var settings = Drupal.settings.hideForm || [];
- for (var key in settings) {
- var div = settings[key].div;
- if (div != currentFormDivId) {
- $('#' + div).hide();
- }
- }
- }
- })(jQuery);
|