From: Alexander Ebert Date: Thu, 1 Aug 2013 15:51:42 +0000 (+0200) Subject: Improved UI for inline editors X-Git-Tag: 2.0.0_Beta_7~68^2~5 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=0dcde1e2e34a0fcb35dce9591f27534832963a71;p=GitHub%2FWoltLab%2FWCF.git Improved UI for inline editors --- diff --git a/wcfsetup/install/files/js/WCF.js b/wcfsetup/install/files/js/WCF.js index 57b293e989..51f2051d08 100755 --- a/wcfsetup/install/files/js/WCF.js +++ b/wcfsetup/install/files/js/WCF.js @@ -6331,7 +6331,7 @@ WCF.InlineEditor = Class.extend({ } else if (this._validate($elementID, $option.optionName) || this._validateCallbacks($elementID, $option.optionName)) { var $listItem = $('
  • ' + $option.label + '
  • ').appendTo(this._dropdowns[$elementID]); - $listItem.data('elementID', $elementID).data('optionName', $option.optionName).click($.proxy(this._click, this)); + $listItem.data('elementID', $elementID).data('optionName', $option.optionName).data('isQuickOption', ($option.isQuickOption ? true : false)).click($.proxy(this._click, this)); $hasOptions = true; $lastElementType = $option.optionName; @@ -6344,6 +6344,32 @@ WCF.InlineEditor = Class.extend({ if ($lastChild.hasClass('dropdownDivider')) { $lastChild.remove(); } + + // check if only element is a quick option + var $quickOption = null; + var $count = 0; + this._dropdowns[$elementID].children().each(function(index, child) { + var $child = $(child); + if (!$child.hasClass('dropdownDivider')) { + if ($child.data('isQuickOption')) { + $quickOption = $child; + } + else { + $count++; + } + } + }); + console.debug($quickOption); + console.debug($count); + if (!$count) { + $quickOption.trigger('click'); + + if ($trigger === null) { + WCF.Dropdown.close($trigger.parents('.dropdown').wcfIdentify()); + } + + return false; + } } if ($trigger !== null) {