Index: misc/collapse.js =================================================================== RCS file: /cvs/drupal/drupal/misc/collapse.js,v retrieving revision 1.23 diff -u -p -r1.23 collapse.js --- misc/collapse.js 27 Apr 2009 20:19:35 -0000 1.23 +++ misc/collapse.js 29 Aug 2009 22:56:03 -0000 @@ -10,6 +10,7 @@ Drupal.toggleFieldset = function (fields // that alters the default submit button behavior. var content = $('> div:not(.action)', fieldset); $(fieldset).removeClass('collapsed'); + $('> legend > a > img', fieldset).replaceWith(Drupal.collapseLinkImage(false)); content.hide(); content.slideDown({ duration: 'fast', @@ -29,6 +30,7 @@ Drupal.toggleFieldset = function (fields $('div.action', fieldset).hide(); var content = $('> div:not(.action)', fieldset).slideUp('fast', function () { $(this.parentNode).addClass('collapsed'); + $('> legend > a > img', this.parentNode).replaceWith(Drupal.collapseLinkImage(true)); this.parentNode.animating = false; }); } @@ -71,7 +73,7 @@ Drupal.behaviors.collapse = { // Turn the legend into a clickable link and wrap the contents of the fieldset // in a div for easier animation var text = this.innerHTML; - $(this).empty().append($('' + text + '').click(function () { + $(this).empty().append($('' + Drupal.collapseLinkImage(true) + ' ' + text + '' + '').click(function () { var fieldset = $(this).parents('fieldset:first')[0]; // Don't animate multiple times if (!fieldset.animating) { @@ -88,4 +90,31 @@ Drupal.behaviors.collapse = { } }; +/** + * Construct the image for the collapse/expand link. + * + * Parameters: + * collapsed: true if collapsed, false if expanded + * + * Returns the HTML for the img element. + */ +Drupal.collapseLinkImage = function (collapsed) { + if (typeof(Drupal.settings.collapse) === 'undefined') { + Drupal.settings.collapse = new Array(); + } + if (collapsed) { + if (typeof(Drupal.settings.collapse.img_src_collapsed) === 'undefined') { + Drupal.settings.collapse.img_src_collapsed = 'misc/menu-collapsed.png'; + } + var img_src_collapsed = Drupal.settings.basePath + Drupal.settings.collapse.img_src_collapsed; + return '' + Drupal.t('Show') + ''; + } else { + if (typeof(Drupal.settings.collapse.img_src_expanded) === 'undefined') { + Drupal.settings.collapse.img_src_expanded = 'misc/menu-expanded.png'; + } + var img_src_expanded = Drupal.settings.basePath + Drupal.settings.collapse.img_src_expanded; + return '' + Drupal.t('Hide') + ''; + } +}; + })(jQuery); Index: modules/system/system.css =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.css,v retrieving revision 1.61 diff -u -p -r1.61 system.css --- modules/system/system.css 24 Aug 2009 03:11:34 -0000 1.61 +++ modules/system/system.css 29 Aug 2009 22:56:03 -0000 @@ -323,10 +323,18 @@ html.js fieldset.collapsed legend { display: block; overflow: hidden; } -html.js fieldset.collapsible legend a { +/* Only display specific elements of collapsed fieldsets. */ +html.js fieldset.collapsible legend a, +html.js fieldset.collapsible legend a img, +html.js fieldset.collapsible legend a span { display: inline; - padding-left: 15px; /* LTR */ - background: url(../../misc/menu-expanded.png) 5px 75% no-repeat; /* LTR */ +} +html.js fieldset.collapsible legend a { + padding-left: 5px; /* LTR */ + text-decoration: none; +} +html.js fieldset.collapsible legend a span.collapser { + text-decoration: underline; } html.js fieldset.collapsible legend span.summary { display: inline; @@ -334,10 +342,6 @@ html.js fieldset.collapsible legend span color: #999; margin-left: 0.5em; } -html.js fieldset.collapsed legend a { - background-image: url(../../misc/menu-collapsed.png); /* LTR */ - background-position: 5px 50%; /* LTR */ -} /* Note: IE-only fix due to '* html' (breaks Konqueror otherwise). */ * html.js fieldset.collapsed legend, * html.js fieldset.collapsed legend *, Index: themes/garland/style.css =================================================================== RCS file: /cvs/drupal/drupal/themes/garland/style.css,v retrieving revision 1.63 diff -u -p -r1.63 style.css --- themes/garland/style.css 17 Aug 2009 19:05:26 -0000 1.63 +++ themes/garland/style.css 29 Aug 2009 22:56:03 -0000 @@ -859,16 +859,15 @@ html.js fieldset.collapsed { } html.js fieldset.collapsible legend a { - padding-left: 2em; /* LTR */ - background: url(images/menu-expanded.gif) no-repeat 0% 50%; /* LTR */ + padding-left: 0; } -html.js fieldset.collapsible legend span.summary { - color: #898989; +html.js fieldset.collapsible legend a span.collapser { + padding-left: 1em; } -html.js fieldset.collapsed legend a { - background: url(images/menu-collapsed.gif) no-repeat 0% 50%; /* LTR */ +html.js fieldset.collapsible legend span.summary { + color: #898989; } /** Index: themes/seven/style.css =================================================================== RCS file: /cvs/drupal/drupal/themes/seven/style.css,v retrieving revision 1.15 diff -u -p -r1.15 style.css --- themes/seven/style.css 27 Aug 2009 20:33:05 -0000 1.15 +++ themes/seven/style.css 29 Aug 2009 22:56:03 -0000 @@ -457,10 +457,20 @@ html.js fieldset.collapsed legend, html.js fieldset.collapsed legend * { display: block; } + +html.js fieldset.collapsible legend a span.collapser { + text-decoration: none; + display: inline; +} + +html.js fieldset.collapsible legend a:hover span.collapser { + text-decoration: underline; +} + html.js fieldset.collapsed { border-width: 1px; margin-bottom: 10px; - padding: 13px; + padding: 13px 13px 13px 0px; } fieldset fieldset {