$comment = new Comment;
$comment->entity = 'task';
$comment->entity_id = $id;
+
if ($this->request->isPost && $comment->load($this->request->post())) {
$comment->created_at = date('Y-m-d H:i:s');
$comment->created_by = Yii::$app->user->id;
$comment->files = UploadedFile::getInstances($comment, 'files');
if ($comment->validateSaveAndManageImages()) {
+ if (Yii::$app->request->isAjax) {
+ // Возвращаем JSON в случае успешного добавления комментария через AJAX
+ return $this->asJson(['success' => true]);
+ }
return $this->redirect(['view', 'id' => $id]);
}
}
+ $model = $this->findModel($id);
+
+ if (Yii::$app->request->isAjax) {
+ // Если это AJAX-запрос, рендерим только содержимое для модального окна
+ return $this->renderAjax('view', [
+ 'model' => $model,
+ 'comment' => $comment,
+ ]);
+ }
+
+ // Обычный рендеринг страницы при стандартном запросе
return $this->render('view', [
- 'model' => $this->findModel($id),
+ 'model' => $model,
'comment' => $comment,
]);
}
return false; // Предотвращаем стандартную отправку формы
});
+
+$(document).ready(function() {
+ // Открытие модального окна для просмотра задачи
+ $('.view-task-button').on('click', function() {
+ var taskId = $(this).data('id');
+ var viewTaskUrl = '/crud/task/view?id=' + taskId; // URL для запроса просмотра задачи
+
+ // Загружаем данные через AJAX
+ $.get(viewTaskUrl, function(data) {
+ $('#view-task-content').html(data); // Вставляем HTML в модальное окно
+ $('#view-task-modal').fadeIn(); // Показываем модальное окно
+
+ // Отключаем скролл body
+ $('body').addClass('no-scroll');
+ });
+ });
+
+ // Закрытие модального окна
+ $('.close').on('click', function() {
+ $('#view-task-modal').fadeOut();
+
+ // Включаем скролл body
+ $('body').removeClass('no-scroll');
+ });
+
+ // Закрытие окна при клике вне содержимого
+ $(window).on('click', function(event) {
+ if ($(event.target).is('#view-task-modal')) {
+ $('#view-task-modal').fadeOut();
+ $('body').removeClass('no-scroll');
+ }
+ });
+});
JS;
$this->registerJs($script);
?>
$taskName = Html::tag('small', $task->name, ['class'=>'small text-wrap']);
?>
<?= Html::a($taskName,
- ['/crud/task/view', 'id' => $task->id],
- ['class' => 'btn btn-outline-primary', 'target' => '_blank',
+ null,
+ ['class' => 'btn btn-outline-primary view-task-button', 'data-id' => $task->id,
'style' => 'text-overflow: ellipsis; overflow: hidden;']) ?>
</div>
<?php if (isset($task->updated_by)): ?>
</div>
</div>
</div>
+
+<!-- Модальное окно для просмотра задачи -->
+<div id="view-task-modal" class="custom-modal" style="display:none;">
+ <div class="custom-modal-content">
+ <span class="close">×</span>
+ <h2 class="view-task-title">Просмотр задачи</h2>
+ <div id="view-task-content">
+ <!-- Сюда будет загружаться контент задачи через AJAX -->
+ </div>
+ </div>
+</div>