mirror of
https://github.com/janickiy/yii2-nomer
synced 2025-03-09 15:39:59 +00:00
add files to project
This commit is contained in:
commit
5cac498444
3729 changed files with 836998 additions and 0 deletions
126
views/feedback/index.php
Normal file
126
views/feedback/index.php
Normal file
|
@ -0,0 +1,126 @@
|
|||
<?php
|
||||
/* @var $this \yii\web\View */
|
||||
/* @var $model \app\models\Ticket */
|
||||
/* @var $ticketsDataProvider \yii\data\ActiveDataProvider */
|
||||
|
||||
/* @var $ticketsClosedDataProvider \yii\data\ActiveDataProvider */
|
||||
|
||||
use yii\grid\ActionColumn;
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Url;
|
||||
use \app\models\Ticket;
|
||||
|
||||
$this->title = \Yii::$app->name . ' - обратная связь';
|
||||
?>
|
||||
<div class="breadcrumbs">
|
||||
<ul class="breadcrumb">
|
||||
<?php if (\Yii::$app->devicedetect->isMobile() || \Yii::$app->devicedetect->isTablet()): ?>
|
||||
<li><?= Html::a('Главная', Url::home()) ?></li>
|
||||
<li>Обратная связь</li>
|
||||
<?php else: ?>
|
||||
<li><?= Html::a('Главная', Url::home()) ?></li>
|
||||
<li>Обратная связь</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="cont clfix">
|
||||
<h1>Обратная связь</h1>
|
||||
|
||||
<?php if (\Yii::$app->getUser()->isGuest): ?>
|
||||
<h2>Что бы с нами связаться, вам нужно авторизоваться!</h2>
|
||||
<p align="center"><a href="#signup" class="button" style="width: 300px">Войти</a></p>
|
||||
<?php else: ?>
|
||||
<p style="text-align: center"><?= Html::a("Создать запрос", ["feedback/new"], ["class" => "newticket"]); ?></p>
|
||||
<br>
|
||||
|
||||
<?php if (!$ticketsDataProvider->getTotalCount() && !$ticketsClosedDataProvider->getTotalCount()): ?>
|
||||
<p class="qiwi-descr"><span>У вас ещё нет ниодного тикета.</span></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($ticketsDataProvider->getTotalCount()): ?>
|
||||
<?= \yii\grid\GridView::widget([
|
||||
"dataProvider" => $ticketsDataProvider,
|
||||
"tableOptions" => [
|
||||
"class" => "tickets"
|
||||
],
|
||||
"rowOptions" => function ($model, $key, $index, $grid) {
|
||||
return ["onclick" => "location.href='" . Url::toRoute(["feedback/view", "id" => $model->id]) . "'", "class" => "ticketRow"];
|
||||
},
|
||||
"layout" => "{items}\n{summary}\n{pager}",
|
||||
"caption" => "Открытые запросы",
|
||||
"columns" => [
|
||||
"id",
|
||||
"tm_create",
|
||||
[
|
||||
'attribute' => 'subject_id',
|
||||
'content' => function (Ticket $model) {
|
||||
return Ticket::SUBJECTS[$model->subject_id];
|
||||
}
|
||||
],
|
||||
[
|
||||
'attribute' => 'subject',
|
||||
'content' => function (Ticket $model) {
|
||||
return $model->subject;
|
||||
}
|
||||
],
|
||||
[
|
||||
'attribute' => 'status',
|
||||
'content' => function (Ticket $model) {
|
||||
if(in_array($model->status, [6,7])) {
|
||||
$model->status = 1;
|
||||
}
|
||||
return ArrayHelper::getValue(Ticket::STATUSES, $model->status);
|
||||
}
|
||||
]
|
||||
]
|
||||
]); ?>
|
||||
<br/>
|
||||
<?php endif; ?>
|
||||
<?php if ($ticketsClosedDataProvider->getTotalCount()): ?>
|
||||
<?= \yii\grid\GridView::widget([
|
||||
"dataProvider" => $ticketsClosedDataProvider,
|
||||
"tableOptions" => [
|
||||
"class" => "tickets"
|
||||
],
|
||||
"layout" => "{items}\n{summary}\n{pager}",
|
||||
"caption" => "Закрытые запросы",
|
||||
"rowOptions" => function ($model, $key, $index, $grid) {
|
||||
return ["onclick" => "location.href='" . Url::toRoute(["feedback/view", "id" => $model->id]) . "'", "class" => "ticketRow"];
|
||||
},
|
||||
"columns" => [
|
||||
"id",
|
||||
"tm_create",
|
||||
[
|
||||
'attribute' => 'subject_id',
|
||||
'content' => function (Ticket $model) {
|
||||
return Ticket::SUBJECTS[$model->subject_id];
|
||||
}
|
||||
],
|
||||
[
|
||||
'attribute' => 'subject',
|
||||
'content' => function (Ticket $model) {
|
||||
return $model->subject;
|
||||
}
|
||||
],
|
||||
[
|
||||
'attribute' => 'status',
|
||||
'content' => function (Ticket $model) {
|
||||
return ArrayHelper::getValue(Ticket::STATUSES, $model->status);
|
||||
}
|
||||
]
|
||||
]
|
||||
]); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($success = \Yii::$app->session->getFlash("success", false)): ?>
|
||||
<p><?= $success; ?></p>
|
||||
<?php else: ?>
|
||||
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
76
views/feedback/new.php
Normal file
76
views/feedback/new.php
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
/* @var $this \yii\web\View */
|
||||
/* @var $ticket \app\models\Ticket */
|
||||
/* @var $ticketsDataProvider \yii\data\ActiveDataProvider */
|
||||
|
||||
use yii\grid\ActionColumn;
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Url;
|
||||
use yii\widgets\ActiveForm;
|
||||
|
||||
$this->title = \Yii::$app->name.' - обратная связь';
|
||||
|
||||
$onChange = <<<JS
|
||||
var subject = document.querySelector('[name="subject"]');
|
||||
var textarea = document.getElementById('contactform-message');
|
||||
|
||||
if (subject.selectedIndex === 1) {
|
||||
textarea.value = (textarea.value + '\\n\\nСопсоб пополнения:\\nДата платежа:\\nВремя платежа:').trim();
|
||||
}
|
||||
JS;
|
||||
?>
|
||||
<div class="breadcrumbs">
|
||||
<ul class="breadcrumb">
|
||||
<?php if(\Yii::$app->devicedetect->isMobile() || \Yii::$app->devicedetect->isTablet()): ?>
|
||||
<li><?= Html::a('Главная', Url::home()) ?></li>
|
||||
<li><?= Html::a('Обратная связь', Url::toRoute(["feedback/index"])) ?></li>
|
||||
<li>Новый запрос</li>
|
||||
<?php else: ?>
|
||||
<li><?= Html::a('Главная', Url::home()) ?></li>
|
||||
<li><?= Html::a('Обратная связь', Url::toRoute(["feedback/index"])) ?></li>
|
||||
<li>Новый запрос</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="cont clfix">
|
||||
<h1>Обратная связь / Новый запрос</h1>
|
||||
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
<?=$form->field($ticket, "subject_id")->dropDownList(\app\models\Ticket::SUBJECTS); ?>
|
||||
<?=$form->field($ticket, "subject")->textInput(); ?>
|
||||
<?=$form->field($ticket, "text")->textarea(["rows" => 8]); ?>
|
||||
<?=$form->field($ticket, 'reCaptcha', ['template' => '{input}{error}'])->widget(\himiklab\yii2\recaptcha\ReCaptcha::className()) ?>
|
||||
<input class="ticket" value="Создать запрос" type="submit">
|
||||
<?php ActiveForm::end(); ?>
|
||||
|
||||
<?php if($success = \Yii::$app->session->getFlash("success", false)): ?>
|
||||
<p><?=$success;?></p>
|
||||
<?php else: ?>
|
||||
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if(false):?><script><?php endif; ?>
|
||||
<?php ob_start(); ?>
|
||||
var messageInput = $('#<?=Html::getInputId($ticket, "text");?>');
|
||||
$('#<?=Html::getInputId($ticket, "subject_id");?>').on('change', function() {
|
||||
if (this.selectedIndex === 1) {
|
||||
if(messageInput.val() === '') {
|
||||
messageInput.val("Сопсоб пополнения:\nДата платежа:\nВремя платежа:");
|
||||
}
|
||||
}
|
||||
if (this.selectedIndex === 3) {
|
||||
if(messageInput.val() === '') {
|
||||
$.alert({
|
||||
theme: 'material',
|
||||
title: 'Внимание!',
|
||||
content: 'Сожалеем, но чтобы удалить номер из нашей базы, вам нужно подтвердить владение им. Также предупреждаем вас, что Удаление номера у нас не даст вам анонимности, т.к. мы всю информацию берем из открытых источников и она останется там!',
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
<?php $js = ob_get_contents(); ob_end_clean(); $this->registerJs($js); ?>
|
104
views/feedback/view.php
Normal file
104
views/feedback/view.php
Normal file
|
@ -0,0 +1,104 @@
|
|||
<?php
|
||||
/* @var $this \yii\web\View */
|
||||
/* @var $ticket \app\models\Ticket */
|
||||
/* @var $ticketsDataProvider \yii\data\ActiveDataProvider */
|
||||
/* @var $comments \yii\data\ActiveDataProvider */
|
||||
|
||||
use app\models\Ticket;
|
||||
use yii\grid\ActionColumn;
|
||||
use yii\grid\GridView;
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Url;
|
||||
use yii\widgets\ActiveForm;
|
||||
|
||||
if(in_array($ticket->status, [6, 8])) {
|
||||
$ticket->status = 1;
|
||||
}
|
||||
|
||||
$this->title = \Yii::$app->name.' - обратная связь';
|
||||
?>
|
||||
<div class="breadcrumbs">
|
||||
<ul class="breadcrumb">
|
||||
<?php if(\Yii::$app->devicedetect->isMobile() || \Yii::$app->devicedetect->isTablet()): ?>
|
||||
<li><?= Html::a('Главная', Url::home()) ?></li>
|
||||
<li><?=Html::a("Обратная связь", ["feedback/index"]);?></li>
|
||||
<li>Запрос #<?=$ticket->id;?></li>
|
||||
<?php else: ?>
|
||||
<li><?= Html::a('Главная', Url::home()) ?></li>
|
||||
<li><?=Html::a("Обратная связь", ["feedback/index"]);?></li>
|
||||
<li>Запрос #<?=$ticket->id;?></li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="cont clfix">
|
||||
<h1>Обратная связь / Запрос #<?=$ticket->id;?></h1>
|
||||
|
||||
<table class="tickets">
|
||||
<tr>
|
||||
<th>Раздел</th>
|
||||
<th>Дата</th>
|
||||
<th>Тема</th>
|
||||
<th>Статус</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?=ArrayHelper::getValue(Ticket::SUBJECTS, $ticket->subject_id);?></td>
|
||||
<td><?=$ticket->tm_create;?></td>
|
||||
<td><?=$ticket->subject;?></td>
|
||||
<td><?=ArrayHelper::getValue(Ticket::STATUSES, $ticket->status);?></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
|
||||
<div class="clientticketreplyheader">
|
||||
<table>
|
||||
<tr><td style="padding: 5px; font-size: 13px;"><strong style="font-weight: bold"><?=$ticket->user->email;?></strong><br>Клиент</td><td></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="clientticketreply">
|
||||
<?=nl2br($ticket->text);?>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<?php foreach ($comments as $c): ?>
|
||||
<?php if(ArrayHelper::getValue($c, "user.is_admin", false)): ?>
|
||||
<div class="adminticketreplyheader">
|
||||
<table style="width: 100%">
|
||||
<tr><td style="padding: 5px; font-size: 13px;"><strong style="font-weight: bold">Администратор</strong></td><td style="padding: 5px; font-size: 13px; text-align: right;"><?=$c->tm_create;?></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="adminticketreply">
|
||||
<?=nl2br($c->text);?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="clientticketreplyheader">
|
||||
<table style="width: 100%">
|
||||
<tr><td style="padding: 5px; font-size: 13px;"><strong style="font-weight: bold"><?=$ticket->user->email;?></strong><br>Клиент</td><td style="padding: 5px; font-size: 13px; text-align: right;"><?=$c->tm_create;?></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="clientticketreply">
|
||||
<?=nl2br($c->text);?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<br />
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php if($ticket->status != 4): ?>
|
||||
<?=Html::a("Если проблема решена, нажмите для закрытия тикета", ["feedback/close", "id" => $ticket->id], ["class" => "closeticket"]);?>
|
||||
<br /><br />
|
||||
<?php $form = ActiveForm::begin([
|
||||
"action" => ["feedback/comment", "id" => $ticket->id]
|
||||
]); ?>
|
||||
<?= $form->field($comment, "text")->textarea(["rows" => 10]); ?>
|
||||
<input value="Добавить" type="submit" class="ticket">
|
||||
<?php ActiveForm::end(); ?>
|
||||
<?php else: ?>
|
||||
<?=Html::a("Переоткрыть тикет", ["feedback/reopen", "id" => $ticket->id], ["class" => "closeticket"]);?>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
Loading…
Add table
Add a link
Reference in a new issue