From 5c3abe0ca6f4edb563f5165655f6cf9d212164d3 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Tue, 18 Apr 2017 22:03:49 -0400 Subject: [PATCH] Prevent comment UI from closing when using BBCode buttons with empty textarea --- view/theme/frio/js/theme.js | 24 ++++++++++++++++++++++ view/theme/frio/templates/comment_item.tpl | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/view/theme/frio/js/theme.js b/view/theme/frio/js/theme.js index 4e32f9128c..27dd296e5f 100644 --- a/view/theme/frio/js/theme.js +++ b/view/theme/frio/js/theme.js @@ -275,6 +275,30 @@ $(document).ready(function(){ }); + /* + * This event handler hides all comment UI when the user clicks anywhere on the page + * It ensures that we aren't closing the current comment box + * + * We are making an exception for buttons because of a race condition with the + * comment opening button that results in an already closed comment UI. + */ + $(document).on('click', function(event) { + if (event.target.type === 'button') { + return true; + } + + var $dontclosethis = $(event.target).closest('.wall-item-comment-wrapper').find('.comment-edit-form'); + $('.wall-item-comment-wrapper .comment-edit-submit-wrapper:visible').each(function() { + var $parent = $(this).parent('.comment-edit-form'); + var itemId = $parent.data('itemId'); + + if ($dontclosethis[0] != $parent[0]) { + var textarea = $parent.find('textarea').get(0) + + commentCloseUI(textarea, itemId); + } + }); + }); }); diff --git a/view/theme/frio/templates/comment_item.tpl b/view/theme/frio/templates/comment_item.tpl index 8ce7805bbd..168576b3d4 100644 --- a/view/theme/frio/templates/comment_item.tpl +++ b/view/theme/frio/templates/comment_item.tpl @@ -4,7 +4,7 @@ {{else}}
{{/if}} -
+ @@ -14,7 +14,7 @@
- +
{{if $qcomment}}