diff --git a/app/views/shared/_links.html.erb b/app/views/shared/_links.html.erb index 67c3b98..1f3300c 100644 --- a/app/views/shared/_links.html.erb +++ b/app/views/shared/_links.html.erb @@ -44,7 +44,7 @@
\ No newline at end of file diff --git a/lib/assets/javascripts/utils/links.js b/lib/assets/javascripts/utils/links.js index e616479..69058dc 100644 --- a/lib/assets/javascripts/utils/links.js +++ b/lib/assets/javascripts/utils/links.js @@ -58,7 +58,8 @@ e.preventDefault(); const target = $(e.target); const max = maxNumberLinks(target); - if (linksLength(target) < max) { + const nbrLinks = linksLength(target); + if (nbrLinks < max) { const lastLink = target.closest('.links').find('.link').last(); const clonedLink = lastLink.clone(); changeIds(clonedLink); @@ -68,13 +69,23 @@ lastLink.after(clonedLink); // enableValidations for the newly added inputs enableValidations(clonedLink); + // Hide the add link if we have now reached the limit + if (nbrLinks + 1 >= max) { + $(target).closest('.links').find('a.new').addClass('hide'); + } } }); $('.links').on('click', '.delete', (e) => { e.preventDefault(); const target = $(e.target); - if (linksLength(target) > 1) { + const max = maxNumberLinks(target); + const nbrLinks = linksLength(target); + if (nbrLinks > 1) { + // If this brought us below the max nbr of links then show the add new link + if ((nbrLinks - 1) < max) { + target.closest('.links').find('a.new').removeClass('hide'); + } target.closest('.link').remove(); } else { const link = target.closest('.link'); @@ -82,7 +93,6 @@ disableValidations(link); } }); - $('.links').find('.max-number-links').each((i, el) => { const target = $(el); const max = target.closest('.links').attr('data-max-number-links');