From 06a11a4a491772e3c3837e3a40518b3960746df5 Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Wed, 27 Nov 2019 15:14:40 +0100 Subject: [PATCH] Improve time zone and date format interaction at preference page --- app/assets/javascripts/sitewide/dropdown_selector.js | 6 ++++++ .../javascripts/users/settings/account/preferences/index.js | 2 ++ 2 files changed, 8 insertions(+) diff --git a/app/assets/javascripts/sitewide/dropdown_selector.js b/app/assets/javascripts/sitewide/dropdown_selector.js index 9cd7a0eb4..9d66cea8e 100644 --- a/app/assets/javascripts/sitewide/dropdown_selector.js +++ b/app/assets/javascripts/sitewide/dropdown_selector.js @@ -39,6 +39,7 @@ noEmptyOption: boolean, // use defaut select (only for single option select). default 'false' singleSelect: boolean, // disable multiple select. default 'false' selectAppearance: string, // 'tag' or 'simple'. Default 'tag' + closeOnSelect: boolean, // Close dropdown after select } @@ -661,6 +662,11 @@ var dropdownSelector = (function() { if (selector.data('config').onUnSelect && !config.skipChange && config.unselect && !config.skipUnselect) { selector.data('config').onUnSelect(config.tagId); } + + // Close dropdown after select + if (selector.data('config').closeOnSelect && container.hasClass('open')) { + container.find('.input-field').click(); + } } // Convert local data or ajax data to same format diff --git a/app/assets/javascripts/users/settings/account/preferences/index.js b/app/assets/javascripts/users/settings/account/preferences/index.js index ba1cb215a..a9af7f131 100644 --- a/app/assets/javascripts/users/settings/account/preferences/index.js +++ b/app/assets/javascripts/users/settings/account/preferences/index.js @@ -102,6 +102,7 @@ dropdownSelector.init('#time-zone-input-field', { noEmptyOption: true, singleSelect: true, + closeOnSelect: true, selectAppearance: 'simple', onClose: function() { $.ajax({ @@ -124,6 +125,7 @@ dropdownSelector.init('#date-format-input-field', { noEmptyOption: true, singleSelect: true, + closeOnSelect: true, selectAppearance: 'simple', onClose: function() { $.ajax({