Закрыть модальное окно после отправки комментария
Подскажите, как закрыть модальное окно после отправки формы комментария Tickets?
Вызываю форму размещения комментария в модальном окне и модальное окно нужно закрыть после отправки комментария, но я не понимаю на какое событие повесить скрипт.
Чанк вызова формы:
Нашел пример для AjaxForm:
Но не понимаю как изменить относительно Ticket?
Вызываю форму размещения комментария в модальном окне и модальное окно нужно закрыть после отправки комментария, но я не понимаю на какое событие повесить скрипт.
Чанк вызова формы:
<!-- 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?
Комментарии: 6
$(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>
Модальное окно нужно закрыть после успешной отправки формы Tickets а не Ajax Form, а af_complete (событие из Ajax Form) не нужно заменить на что то подобное от Tickets?
да, верно. Посмотри на содержимое этого файла, найди событие, которое необходимо и замени своё.
github.com/bezumkin/Tickets/blob/master/assets/components/tickets/js/web/default.js
github.com/bezumkin/Tickets/blob/master/assets/components/tickets/js/web/default.js
А вот тут самое интересно, в JavaScript не фига не разбираюсь :) По этой причине за помощью и обратился.
Нашел Tickets.comment.save, исправил скрипт, но не все равно не срабатывает (.
Нашел Tickets.comment.save, исправил скрипт, но не все равно не срабатывает (.
<script>
$(document).on('Tickets.comment.save', function(event,res) {
if(res.success) $('.close').click();
});
</script>
Как вариант, могу предложить следующее:
1) копируете содержимое и создаете кастомный файл скриптов Tickets
(чтобы не затерлось при обновлении)
2) в системных настройках Tickets указываете путь до свежесозданного файла
3) после 194 строки прописываете закрытие модального окна.
1) копируете содержимое и создаете кастомный файл скриптов Tickets
(чтобы не затерлось при обновлении)
2) в системных настройках Tickets указываете путь до свежесозданного файла
3) после 194 строки прописываете закрытие модального окна.
Максим, спасибо!
Все сделал по вашему совету, только вот изменения внес после 324 строки.
Добавил вот это:
Как то я некорректно закрываю модальное окно.
Все сделал по вашему совету, только вот изменения внес после 324 строки.
Добавил вот это:
$('.modal').hide();
$('body').removeClass('modal-open');
$('div.modal').removeClass('in');
$('.modal-backdrop').remove();
Все получается, но осталась маленькая проблема, если сразу (без обновления страницы) попытаться второй раз вызвать модальное окно, нужно два раза кликнуть по ссылке, после обновление страницы — один. Как то я некорректно закрываю модальное окно.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.