From a9fdebb7ccb3e1acb23dfdd5c76db467f924d9c2 Mon Sep 17 00:00:00 2001 From: Guillaume AGNIERAY Date: Sat, 20 Jan 2024 15:38:38 +0100 Subject: [PATCH] Fix social networks search dropdown fixes #1760 Clear dropdown and text values after clone Add new social network directly on input --- .../default/elements/edit_socials.html.twig | 56 +++---------------- .../default/elements/js/choose_social.js.twig | 40 +++++++++++++ .../default/pages/member_form.html.twig | 1 + .../default/pages/preferences.html.twig | 2 + .../galette/modules/dropdown.overrides | 7 ++- 5 files changed, 56 insertions(+), 50 deletions(-) create mode 100644 galette/templates/default/elements/js/choose_social.js.twig diff --git a/galette/templates/default/elements/edit_socials.html.twig b/galette/templates/default/elements/edit_socials.html.twig index 84c7f14ca..7b795dffb 100644 --- a/galette/templates/default/elements/edit_socials.html.twig +++ b/galette/templates/default/elements/edit_socials.html.twig @@ -18,15 +18,19 @@
- + +
{{ _T("Choose or enter your own...") }}
+ +
- +
@@ -34,48 +38,6 @@ {{ _T("Add") }} - {% endblock %} {% else %} diff --git a/galette/templates/default/elements/js/choose_social.js.twig b/galette/templates/default/elements/js/choose_social.js.twig new file mode 100644 index 000000000..1f3d69a39 --- /dev/null +++ b/galette/templates/default/elements/js/choose_social.js.twig @@ -0,0 +1,40 @@ +var _dropdownSocials = function() { + $('.socials-dropdown').dropdown({ + allowAdditions: true, + onNoResults: function(searchValue) { + $(this).dropdown('set value', searchValue); + } + }); +} + +var _rmSocial = function(elt) { + if ( typeof elt == 'undefined') { + elt = $('#social .stored'); + } + elt.find('.delsocial').click(function(e){ + e.preventDefault(); + var _this = $(this); + _this.parents('.field.stored').remove(); + }); +} + +$(function(){ + _rmSocial(); + _dropdownSocials(); + + $('a.addsocial').click(function(e) { + e.preventDefault(); + + var _newindex = $(this).parents('.addsocial').find('.combo-social:last .socials-dropdown').attr('id').replace('social_new_type_', ''); + ++_newindex; + $(this).parents('.addsocial').find ('.combo-social:last') + .clone() // copy + .insertAfter('#social .combo-social:last') // where + .find('.socials-dropdown').attr('id', 'social_new_type_' + _newindex).dropdown('clear') + .find('input:not(.search)').attr('id', 'social_new_type_input_' + _newindex).attr('name', 'social_new_type_' + _newindex) + .parent().parent().parent().find('input.value').attr('id', 'social_new_value_' + _newindex).attr('name', 'social_new_value_' + _newindex).val('') + ; + + _dropdownSocials(); + }); +}); diff --git a/galette/templates/default/pages/member_form.html.twig b/galette/templates/default/pages/member_form.html.twig index b126da53e..e3cd2b3ac 100644 --- a/galette/templates/default/pages/member_form.html.twig +++ b/galette/templates/default/pages/member_form.html.twig @@ -198,6 +198,7 @@ {% block javascripts %}