diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-12-01 13:27:27 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-12-01 13:27:27 +0000 |
commit | c908edebeb0fb24c943071f5ac9f1d0631b08c98 (patch) | |
tree | 4a9bf6cd6edd39ea21b838bb0088972260ba085a /misc | |
parent | 5fbaa631cb7bb40eb03be5aebe4b2de89b2fddc0 (diff) | |
download | brdo-c908edebeb0fb24c943071f5ac9f1d0631b08c98.tar.gz brdo-c908edebeb0fb24c943071f5ac9f1d0631b08c98.tar.bz2 |
- Patch #601150 by eojthebrave, bganicky, sun, seutje, JacobSingh, ivansf: improved UI for contextual links.
Diffstat (limited to 'misc')
-rw-r--r-- | misc/cog-select.png | bin | 0 -> 1218 bytes | |||
-rw-r--r-- | misc/contextual_links.css | 61 | ||||
-rw-r--r-- | misc/contextual_links.js | 21 |
3 files changed, 64 insertions, 18 deletions
diff --git a/misc/cog-select.png b/misc/cog-select.png Binary files differnew file mode 100644 index 000000000..e30217cd9 --- /dev/null +++ b/misc/cog-select.png diff --git a/misc/contextual_links.css b/misc/contextual_links.css index 3158c8c81..4d2ac51e8 100644 --- a/misc/contextual_links.css +++ b/misc/contextual_links.css @@ -8,31 +8,68 @@ position: relative; } .contextual-links-region-active { - outline: #000 dashed 1px; + outline: #999 dashed 1px; } /** * Contextual links. */ -ul.contextual-links { - float: right; +div.contextual-links-wrapper { + display: none; font-size: 90%; + position: absolute; + right: 5px; + top: 0px; + z-index: 999; +} +html.js div.contextual-links-wrapper { + display: block; +} +a.contextual-links-trigger { + background: transparent url(cog-select.png) no-repeat center center; + display: none; + height: 20px; + margin-top: 2px; + outline: none; + text-indent: 34px; + width: 30px; + overflow: hidden; +} +a.contextual-links-trigger:hover, +div.contextual-links-active a.contextual-links-trigger { + background-color: #fff; +} +div.contextual-links-wrapper ul.contextual-links { + display: none; margin: 0; - padding: 0; + padding: 5px 10px; + position: absolute; + right: 0; + top: 20px; + white-space: nowrap; +} +.contextual-links-region:hover a.contextual-links-trigger, +div.contextual-links-active a.contextual-links-trigger, +div.contextual-links-active ul.contextual-links { + display: block; } ul.contextual-links li { - border-left: 1px solid #ccc; - display: inline; line-height: 100%; list-style: none; - margin: 0 0 0 0.3em; - padding: 0 0 0 0.6em; -} -ul.contextual-links li.first { - border-left: 0; + list-style-image: none; margin: 0; padding: 0; } -ul.contextual-links li a { +div.contextual-links-wrapper a { text-decoration: none; } +ul.contextual-links li a { + background: #fff; + color: #666; + display: block; + margin: 0.5em 0; + padding: 0.3em; +} +ul.contextual-links li a:hover { + text-decoration: underline; +} diff --git a/misc/contextual_links.js b/misc/contextual_links.js index d7fafbd25..0dfc9ddfa 100644 --- a/misc/contextual_links.js +++ b/misc/contextual_links.js @@ -8,8 +8,17 @@ Drupal.contextualLinks = Drupal.contextualLinks || {}; */ Drupal.behaviors.contextualLinks = { attach: function (context) { - $('ul.contextual-links', context).once('contextual-links', function () { - $(this).hover(Drupal.contextualLinks.hover, Drupal.contextualLinks.hoverOut); + $('div.contextual-links-wrapper', context).once('contextual-links', function () { + var $wrapper = $(this); + var $trigger = $('<a class="contextual-links-trigger" href="#" />').text(Drupal.t('Configure')).click( + function () { + $wrapper.find('ul.contextual-links').slideToggle(100); + $wrapper.toggleClass('contextual-links-active'); + return false; + } + ); + $wrapper.prepend($trigger) + .closest('.contextual-links-region').hover(Drupal.contextualLinks.hover, Drupal.contextualLinks.hoverOut); }); } }; @@ -18,16 +27,16 @@ Drupal.behaviors.contextualLinks = { * Enables outline for the region contextual links are associated with. */ Drupal.contextualLinks.hover = function () { - $(this).addClass('contextual-links-link-active') - .closest('.contextual-links-region').addClass('contextual-links-region-active'); + $(this).closest('.contextual-links-region').addClass('contextual-links-region-active'); }; /** * Disables outline for the region contextual links are associated with. */ Drupal.contextualLinks.hoverOut = function () { - $(this).removeClass('contextual-links-link-active') - .closest('.contextual-links-region').removeClass('contextual-links-region-active'); + $(this).closest('.contextual-links-region').removeClass('contextual-links-region-active') + .find('.contextual-links-active').removeClass('contextual-links-active') + .find('ul.contextual-links').hide(); }; })(jQuery); |