Закрыть модальное окно после отправки комментария

Подскажите, как закрыть модальное окно после отправки формы комментария Tickets?

Вызываю форму размещения комментария в модальном окне и модальное окно нужно закрыть после отправки комментария, но я не понимаю на какое событие повесить скрипт.

Чанк вызова формы:

<!-- Modal Reviews
	============================================= -->
	<a href="#" data-toggle="modal" data-target="#reviewFormModal" class="button button-3d nomargin fright">Добавить отзыв</a>
	<div class="modal fade" id="reviewFormModal" tabindex="-1" role="dialog" aria-labelledby="reviewFormModalLabel" aria-hidden="true">
		<div class="modal-dialog">
			<div class="modal-content">
				<div class="modal-header">
					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
					<h4 class="modal-title" id="reviewFormModalLabel">Оставить отзыв</h4>
				</div>
				<div class="modal-body">
				    
				    <h4 id="comment-new-link">
                        	<!--<a href="#" class="btn btn-default">[[%ticket_comment_create]]</a>-->
                        </h4>
                        
                        <div id="comment-form-placeholder">
                            <form id="comment-form" name="template-reviewform"  action="" method="post" class="nobottommargin">
                        		<div id="comment-preview-placeholder"></div>
                        		<input type="hidden" name="thread" value="[[+thread]]" />
                        		<input type="hidden" name="parent" value="0" />
                        		<input type="hidden" name="id" value="0" />
                                <div class="col_half">
									<label for="template-reviewform-name">[[%ticket_comment_name]] <small>*</small></label>
									<div class="input-group">
										<span class="input-group-addon"><i class="icon-user"></i></span>
										<input type="text" id="comment-name" name="name" value="[[+name]]" class="form-control" />
									</div>
								</div>
                                <div class="col_half col_last">
									<label for="template-reviewform-email">[[%ticket_comment_email]] <small>*</small></label>
									<div class="input-group">
										<span class="input-group-addon">@</span>
										<input type="email" id="comment-email" name="email" value="[[+email]]" class="email form-control" />
									</div>
								</div>
                                <div class="clear"></div>
                        		<div class="form-group">
                        			<label for="comment-editor">Отзыв <small>*</small></label>
                        			<textarea name="text" id="comment-editor" cols="30" rows="10" class="form-control"></textarea>
                        		</div>
                        		[[+captcha]]
                        		<div class="form-actions">
                        			<!--input type="button" class="button button-3d nomargin" value="[[%ticket_comment_preview]]" title="Ctrl + Enter" /-->
                        			<input type="submit" class="button button-3d nomargin" value="[[%ticket_comment_save]]" title="Ctrl + Shift + Enter"  />
                        			<span class="time"></span>
                        		</div>
                        	</form>
                        </div>
                        <!--tickets_captcha
                        <div class="form-group">
                        	<label for="comment-captcha" id="comment-captcha">[[+captcha]]</label>
                        	<input type="text" name="captcha" value="" id="comment-captcha" class="form-control" />
                        	<span class="error"></span>
                        </div>
                        -->
					</form>
				</div>
				<div class="modal-footer">
					<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
				</div>
			</div><!-- /.modal-content -->
		</div><!-- /.modal-dialog -->
	</div><!-- /.modal -->
	<!-- Modal Reviews End -->

Нашел пример для AjaxForm:

$(document).on('af_complete', function(event,res) {
	if(res.success) $('.close-reveal-modal').click();
});

Но не понимаю как изменить относительно Ticket?
Денис Богдановский
28 января 2016, 13:35
modx.pro
1
3 241
0

Комментарии: 6

Klike
28 января 2016, 19:39
0
$(document).on('af_complete', function(event,res) {
	if(res.success) $('.close-reveal-modal').click();
});
Этот скрипт инициирует нажатие на кнопку закрытия окна.
В твоем случае –
.close-reveal-modal
нужно заменить на
.close
Класс кнопки в модальном окне
<div class="modal-header">
	<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
	<h4 class="modal-title" id="reviewFormModalLabel">Оставить отзыв</h4>
</div>
    Денис Богдановский
    29 января 2016, 22:54
    0
    Модальное окно нужно закрыть после успешной отправки формы Tickets а не Ajax Form, а af_complete (событие из Ajax Form) не нужно заменить на что то подобное от Tickets?
      Klike
      30 января 2016, 07:52
      0
      да, верно. Посмотри на содержимое этого файла, найди событие, которое необходимо и замени своё.
      github.com/bezumkin/Tickets/blob/master/assets/components/tickets/js/web/default.js
        Денис Богдановский
        30 января 2016, 13:06
        0
        А вот тут самое интересно, в JavaScript не фига не разбираюсь :) По этой причине за помощью и обратился.
        Нашел Tickets.comment.save, исправил скрипт, но не все равно не срабатывает (.
        <script>
        	$(document).on('Tickets.comment.save', function(event,res) {
        	   if(res.success) $('.close').click();
        	});
         </script>
          Максим Кузнецов
          30 января 2016, 13:46
          0
          Как вариант, могу предложить следующее:

          1) копируете содержимое и создаете кастомный файл скриптов Tickets
          (чтобы не затерлось при обновлении)
          2) в системных настройках Tickets указываете путь до свежесозданного файла
          3) после 194 строки прописываете закрытие модального окна.
            Денис Богдановский
            30 января 2016, 18:59
            0
            Максим, спасибо!

            Все сделал по вашему совету, только вот изменения внес после 324 строки.

            Добавил вот это:

            $('.modal').hide();
            $('body').removeClass('modal-open');
            $('div.modal').removeClass('in');
            $('.modal-backdrop').remove();
            Все получается, но осталась маленькая проблема, если сразу (без обновления страницы) попытаться второй раз вызвать модальное окно, нужно два раза кликнуть по ссылке, после обновление страницы — один.

            Как то я некорректно закрываю модальное окно.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6