Работа над сайтом 16
This commit is contained in:
parent
b3b5111006
commit
177de6b3ef
|
@ -28,7 +28,8 @@
|
|||
"mirzaev/yii2-arangodb": ">=2.1.x-dev",
|
||||
"mirzaev/yii2-arangodb-sessions": ">=1.1.x-dev",
|
||||
"guzzlehttp/guzzle": "^7.3",
|
||||
"phpoffice/phpspreadsheet": "^1.18"
|
||||
"phpoffice/phpspreadsheet": "^1.18",
|
||||
"hflabs/dadata": "^20.12"
|
||||
},
|
||||
"require-dev": {
|
||||
"codeception/codeception": ">=4.1",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "695a3f9969bbc0bbc0650efdc2e245af",
|
||||
"content-hash": "fcf19d2c1a3e56a85324e01a1c6c55ab",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bower-asset/bootstrap",
|
||||
|
@ -704,6 +704,57 @@
|
|||
},
|
||||
"time": "2021-04-26T09:17:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "hflabs/dadata",
|
||||
"version": "20.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/hflabs/dadata-php.git",
|
||||
"reference": "c6db345bb4a389423ba14f6c4c626d830c0d9992"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/hflabs/dadata-php/zipball/c6db345bb4a389423ba14f6c4c626d830c0d9992",
|
||||
"reference": "c6db345bb4a389423ba14f6c4c626d830c0d9992",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "~6.0|^7.0",
|
||||
"php": ">=5.6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Dadata\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "HFLabs and contributors",
|
||||
"homepage": "https://github.com/hflabs/dadata-php/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Data cleansing, enrichment and suggestions via Dadata API",
|
||||
"homepage": "https://github.com/nalgeon/dadata-php",
|
||||
"keywords": [
|
||||
"DaData",
|
||||
"api",
|
||||
"php",
|
||||
"suggestions"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/hflabs/dadata-php/issues",
|
||||
"source": "https://github.com/hflabs/dadata-php/tree/20.12.0"
|
||||
},
|
||||
"time": "2020-12-24T15:49:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "imagine/imagine",
|
||||
"version": "1.2.4",
|
||||
|
|
|
@ -37,12 +37,14 @@ class AppAsset extends AssetBundle
|
|||
'js/bootstrap/bootstrap.min.js',
|
||||
'https://cdn.jsdelivr.net/bxslider/4.1.1/jquery.bxslider.min.js',
|
||||
'https://unpkg.com/cookielib/src/cookie.min.js',
|
||||
'https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU',
|
||||
'js/menu.js',
|
||||
'js/main.js',
|
||||
'js/account.js',
|
||||
'js/search.js',
|
||||
'js/notification.js',
|
||||
'js/reinitialization.js'
|
||||
'js/reinitialization.js',
|
||||
'js/geolocation.js'
|
||||
];
|
||||
public $jsOptions = [
|
||||
// 'position' => View::POS_HEAD
|
||||
|
|
|
@ -44,10 +44,17 @@ class AuthenticationController extends Controller
|
|||
if (yii::$app->request->isPost) {
|
||||
// AJAX-POST-запрос
|
||||
|
||||
// Настройка кода ответа
|
||||
yii::$app->response->format = Response::FORMAT_JSON;
|
||||
|
||||
// Валидация формы
|
||||
if (!empty($errors = ActiveForm::validate($model))) return $errors;
|
||||
if (!empty($errors = ActiveForm::validate($model))) {
|
||||
|
||||
// Настройка кода ответа
|
||||
yii::$app->response->statusCode = 401;
|
||||
|
||||
return $errors;
|
||||
};
|
||||
|
||||
if (!yii::$app->user->isGuest || $model->authentication()) {
|
||||
// Аккаунт аутентифицирован
|
||||
|
@ -112,6 +119,7 @@ class AuthenticationController extends Controller
|
|||
} else {
|
||||
// Аккаунт не аутентифицирован
|
||||
|
||||
// Настройка кода ответа
|
||||
yii::$app->response->statusCode = 400;
|
||||
|
||||
return [
|
||||
|
|
|
@ -4,18 +4,18 @@ declare(strict_types=1);
|
|||
|
||||
namespace app\controllers;
|
||||
|
||||
use app\models\Notification;
|
||||
use yii;
|
||||
use yii\filters\AccessControl;
|
||||
use yii\web\Controller;
|
||||
use yii\web\Response;
|
||||
use yii\web\Cookie;
|
||||
|
||||
use app\models\Product;
|
||||
use app\models\Order;
|
||||
use app\models\OrderEdgeSupply;
|
||||
use app\models\Notification;
|
||||
|
||||
use Exception;
|
||||
use yii\web\Cookie;
|
||||
|
||||
class CartController extends Controller
|
||||
{
|
||||
|
|
|
@ -16,8 +16,11 @@ use app\models\SupplyGroup;
|
|||
use app\models\Search;
|
||||
use app\models\Notification;
|
||||
use app\models\Settings;
|
||||
use app\models\Dellin;
|
||||
use app\models\SettingsEdgeSettings;
|
||||
|
||||
use Dadata\DadataClient as Dadata;
|
||||
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
public function behaviors()
|
||||
|
@ -29,7 +32,14 @@ class ProfileController extends Controller
|
|||
[
|
||||
'allow' => true,
|
||||
'roles' => ['@'],
|
||||
'actions' => ['index', 'supplies', 'import', 'monitoring', 'readGroups']
|
||||
'actions' => [
|
||||
'index',
|
||||
'supplies',
|
||||
'import',
|
||||
'monitoring',
|
||||
'readGroups',
|
||||
'geolocation-init'
|
||||
]
|
||||
],
|
||||
[
|
||||
'allow' => true,
|
||||
|
@ -121,8 +131,7 @@ class ProfileController extends Controller
|
|||
$delivery_from_terminal_list = $model->genListTerminalsFrom();
|
||||
$delivery_to_terminal_list = $model->genListTerminalsTo();
|
||||
$import_oem_list = $model->genListOem(Supply::searchByAccount(select: 'supply.onec["ЗначенияСвойств"]'));
|
||||
$array_unshift_in_start = function (array &$array, string|int $key, mixed $value)
|
||||
{
|
||||
$array_unshift_in_start = function (array &$array, string|int $key, mixed $value) {
|
||||
$array = array_reverse($array, true);
|
||||
$array[$key] = $value;
|
||||
return $array = array_reverse($array, true);
|
||||
|
@ -191,7 +200,7 @@ class ProfileController extends Controller
|
|||
if (!$model_settings = Settings::readLast()) {
|
||||
$model_settings = new Settings();
|
||||
|
||||
if(!$model_settings->save()) {
|
||||
if (!$model_settings->save()) {
|
||||
$this->redirect('/');
|
||||
}
|
||||
}
|
||||
|
@ -447,4 +456,59 @@ class ProfileController extends Controller
|
|||
|
||||
return $groups;
|
||||
}
|
||||
|
||||
/**
|
||||
* Инициализация данных о геолокации
|
||||
*
|
||||
* @param string|null $account
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function actionGeolocationInit(string|null $account = null): bool
|
||||
{
|
||||
if (Yii::$app->request->isPost) {
|
||||
// POST-запрос
|
||||
// Инициализация аккаунта
|
||||
$account ?? $account = yii::$app->user->identity;
|
||||
|
||||
// Инициализация IP-адреса
|
||||
$ip = yii::$app->request->userIp === 'localhost' || yii::$app->request->userIp === '127.0.0.1' ? '46.226.227.20' : yii::$app->request->userIp;
|
||||
|
||||
// Настройка ответа
|
||||
yii::$app->response->format = Response::FORMAT_JSON;
|
||||
|
||||
// Проверка записи геолокации
|
||||
if (isset($account->geol)) {
|
||||
// Удалось найти данные геолокации
|
||||
|
||||
return true;
|
||||
} else {
|
||||
// Не удалось найти данные геолокации
|
||||
|
||||
// Инициализация данных геолокации
|
||||
$dadata = new Dadata(yii::$app->params['dadata']['key'], null);
|
||||
|
||||
// Запись в буфер
|
||||
$account->geol = $dadata->iplocate($ip);
|
||||
|
||||
// Синхронизация с базой данных ДеловыеЛинии
|
||||
if ($dellin = Dellin::searchByCityKladr(str_pad($account->geol['data']['city_kladr_id'], 25, '0000000000000000000000'))) {
|
||||
// Удалось найти город с терминалами ДеловыеЛинии
|
||||
|
||||
// Запись связанного с городом терминала в настройки пользователя
|
||||
// !!! Берётся первый попавшийся терминал
|
||||
$account->opts = [
|
||||
'delivery_to_terminal' => $dellin['data']['terminals']['terminal'][0]['id']
|
||||
] + ($account->opts ?? []);
|
||||
|
||||
// Отправка данных из буфера в базу данных
|
||||
return $account->update() >= 1;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
yii::$app->response->redirect('/');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ class Account extends Document implements IdentityInterface, PartnerInterface
|
|||
'agnt',
|
||||
'type',
|
||||
'vrfy',
|
||||
'geol',
|
||||
'acpt'
|
||||
]
|
||||
);
|
||||
|
@ -78,6 +79,7 @@ class Account extends Document implements IdentityInterface, PartnerInterface
|
|||
'agnt' => 'Агент (поставщик)',
|
||||
'type' => 'Тип аккаунта',
|
||||
'vrfy' => 'Статус подтверждения владением почты',
|
||||
'geol' => 'Геолокация',
|
||||
'acpt' => 'Согласие с офертой'
|
||||
]
|
||||
);
|
||||
|
@ -390,13 +392,13 @@ class Account extends Document implements IdentityInterface, PartnerInterface
|
|||
*
|
||||
* Актуальное (выбранное, активное) значение записывается первым
|
||||
*/
|
||||
public function genListCity(): array
|
||||
public function genListCity(): void
|
||||
{
|
||||
$browser = new Dellin();
|
||||
// $browser = new Dellin();
|
||||
|
||||
$request = $browser->get('https://api.github.com/user', [
|
||||
'auth' => ['user', 'pass']
|
||||
]);
|
||||
// $request = $browser->get('https://api.github.com/user', [
|
||||
// 'auth' => ['user', 'pass']
|
||||
// ]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -723,7 +725,7 @@ class Account extends Document implements IdentityInterface, PartnerInterface
|
|||
}
|
||||
. ' ' . match (rand(1, 15)) {
|
||||
1 => 'забыли',
|
||||
2 => 'отжали',
|
||||
2 => 'испортили',
|
||||
3 => 'забрали',
|
||||
4 => 'порвали',
|
||||
5 => 'украли',
|
||||
|
@ -736,6 +738,7 @@ class Account extends Document implements IdentityInterface, PartnerInterface
|
|||
12 => 'испортили',
|
||||
13 => 'добили',
|
||||
14 => 'разбили',
|
||||
15 => 'сорвали',
|
||||
default => 'сломали'
|
||||
}
|
||||
. ' ' . match (rand(1, 9)) {
|
||||
|
@ -749,7 +752,7 @@ class Account extends Document implements IdentityInterface, PartnerInterface
|
|||
8 => 'поменяю',
|
||||
default => 'куплю'
|
||||
}
|
||||
. ' в скиллпартсе';
|
||||
. ' в скиллпартс';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -107,7 +107,7 @@ class AccountForm extends Model
|
|||
return [
|
||||
'mail' => 'Почта',
|
||||
'pswd' => 'Пароль',
|
||||
'auto' => '<i class="fas fa-lock"></i>',
|
||||
'auto' => '<i class="fas fa-unlock"></i>',
|
||||
'pols' => 'Политика конфедециальности'
|
||||
];
|
||||
}
|
||||
|
|
|
@ -43,6 +43,16 @@ class Dellin extends Document
|
|||
return static::findOne(['data["id"]' => $id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Поиск по КЛАДР-коду города
|
||||
*
|
||||
* @param string $id Код КЛАДР города
|
||||
*/
|
||||
public static function searchByCityKladr(string $code): ?static
|
||||
{
|
||||
return static::findOne(['data["code"]' => $code]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Поиск по идентификатору терминала
|
||||
*
|
||||
|
|
|
@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||
|
||||
use yii\helpers\Html;
|
||||
use yii\bootstrap\ActiveForm;
|
||||
use yii\widgets\Pjax;
|
||||
|
||||
use app\models\AccountForm;
|
||||
|
||||
|
@ -16,6 +17,10 @@ use app\models\AccountForm;
|
|||
<div class="row">
|
||||
<div class="mx-auto">
|
||||
<?php
|
||||
Pjax::begin([
|
||||
// Опции Pjax
|
||||
]);
|
||||
|
||||
// Инициализация идентификатора формы
|
||||
$form_id = ($isPopupMenu ?? false) ? 'form_account_menu' : 'form_account';
|
||||
|
||||
|
@ -30,7 +35,10 @@ use app\models\AccountForm;
|
|||
],
|
||||
'options' => [
|
||||
'class' => 'form_account',
|
||||
'onsubmit' => 'return false;'
|
||||
'onsubmit' => 'return false;',
|
||||
'data' => [
|
||||
'pjax' => true
|
||||
]
|
||||
],
|
||||
'enableClientValidation' => false,
|
||||
'enableAjaxValidation' => true
|
||||
|
@ -59,13 +67,19 @@ use app\models\AccountForm;
|
|||
<div class="d-flex mb-2 mt-4">
|
||||
<?= Html::submitButton('Войти', ['name' => 'submitAuthentication', 'onclick' => 'authentication(this.parentElement.parentElement);', 'class' => 'flex-grow-1 mr-2 btn btn-primary button_clean']) ?>
|
||||
<?= $form->field($model, 'auto', ['checkboxTemplate' => '<div class="checkbox button_clean">{beginLabel}' .
|
||||
Html::submitButton('{labelTitle}', ['name' => 'submit', 'data-toggle' => 'button', 'class' => 'w-100 btn btn-primary button_clean', 'aria-pressed' => 'false']) .
|
||||
Html::submitButton('{labelTitle}', ['name' => 'submit', 'data-toggle' => 'button', 'class' => 'w-100 btn btn-primary button_clean', 'aria-pressed' => 'false', 'onclick' => 'return authentication_auto_button_status_switch(this);']) .
|
||||
'{endLabel}</div>'])->checkbox()->label($model->getAttributeLabel('auto'), ['class' => 'w-100 m-0']) ?>
|
||||
</div>
|
||||
|
||||
<?= Html::submitButton('Регистрация', ['name' => 'submitRegistration', 'onclick' => 'return registration_start(this.parentElement);', 'class' => 'col-12 ml-auto btn btn-success btn-sm button_clean']) ?>
|
||||
|
||||
<?php ActiveForm::end(); ?>
|
||||
<?php
|
||||
|
||||
ActiveForm::end();
|
||||
|
||||
Pjax::end();
|
||||
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -39,72 +39,85 @@ use DateTime;
|
|||
foreach ($connections as $connection) {
|
||||
// Перебор поставок
|
||||
|
||||
// Инициализация доставки
|
||||
if (isset($connection['delivery']['error'])) {
|
||||
// Не удалось рассчитать доставку
|
||||
// Инициализация переменных
|
||||
extract($connection);
|
||||
|
||||
// Инициализация индикатора
|
||||
$delivery_icon = '';
|
||||
// Инициализация цены
|
||||
$price_raw = $cost;
|
||||
$price = $price_raw . ' ' . $currency;
|
||||
|
||||
// Инициализация типа доставки
|
||||
$delivery_type = reset($order_edge_supply)['dlvr']['type'] ?? 'auto';
|
||||
|
||||
// Инициализация индикатора
|
||||
$delivery_icon = match ($delivery_type) {
|
||||
'avia' => '<i class="mr-1 fas fa-plane"></i>',
|
||||
default => '<i class="mr-1 fas fa-truck"></i>'
|
||||
};
|
||||
|
||||
// Инициализация доставки
|
||||
if (isset($delivery['error']) || $delivery === '?') {
|
||||
// Не удалось рассчитать доставку
|
||||
|
||||
// Инициализация времени
|
||||
$delivery = '?';
|
||||
|
||||
// Инициализация цены
|
||||
$cost = '?';
|
||||
} else {
|
||||
// Удалось рассчитать доставку
|
||||
|
||||
// Инициализация типа доставки
|
||||
$delivery_type = reset($connection['order_edge_supply'])['dlvr']['type'] ?? 'auto';
|
||||
|
||||
// Инициализация индикатора
|
||||
$delivery_icon = match ($delivery_type) {
|
||||
'avia' => '<i class="mr-1 fas fa-plane"></i>',
|
||||
default => '<i class="mr-1 fas fa-truck"></i>'
|
||||
};
|
||||
|
||||
// Рассчет времени
|
||||
// Инициализация даты отправки
|
||||
try {
|
||||
$delivery_converted = DateTime::createFromFormat('Y-m-d H:i:s', $connection['delivery']['orderDates']['giveoutFromOspReceiver'])->getTimestamp();
|
||||
} catch (Exception $e) {
|
||||
$delivery_converted = DateTime::createFromFormat('Y-m-d', $connection['delivery']['orderDates']['arrivalToOspReceiver'])->getTimestamp();
|
||||
}
|
||||
$delivery = ceil(($delivery_converted - time()) / 60 / 60 / 24) + 1;
|
||||
// Взять данные из "arrivalToOspSender" (Дата прибытия на терминал-отправитель)
|
||||
|
||||
// Инициализация цены
|
||||
$cost = $connection['cost'] . ' ' . $connection['currency'];
|
||||
$delivery_send_date = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['arrivalToOspSender'])->getTimestamp();
|
||||
} catch (Throwable $e) {
|
||||
// Взять данные из "pickup" (Дата передачи груза на адресе отправителя)
|
||||
|
||||
$delivery_send_date = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['pickup'])->getTimestamp();
|
||||
}
|
||||
|
||||
// Инициализация времени доставки
|
||||
try {
|
||||
// Доставка по воздуху (подразумевается), данные из "giveoutFromOspReceiver" (Дата и время, с которого груз готов к выдаче на терминале)
|
||||
|
||||
$delivery_converted = DateTime::createFromFormat('Y-m-d H:i:s', $delivery['orderDates']['giveoutFromOspReceiver'])->getTimestamp();
|
||||
} catch (Throwable $e) {
|
||||
// Автоматическая доставка (подразумевается), данные из "arrivalToOspReceiver" (Дата прибытия натерминал-получатель)
|
||||
|
||||
$delivery_converted = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['arrivalToOspReceiver'])->getTimestamp();
|
||||
}
|
||||
$delivery = ceil(($delivery_converted - ($delivery_send_date ?? 0)) / 60 / 60 / 24) + 1;
|
||||
}
|
||||
|
||||
// Инициализация комментария
|
||||
$comment = $connection['order_edge_supply'][0]['comm'] ?? 'Комментарий к заказу';
|
||||
$comment = $order_edge_supply[0]['comm'] ?? 'Комментарий к заказу';
|
||||
|
||||
echo <<<HTML
|
||||
<div class="row py-2 cart_list_target">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="pl-3 my-auto mr-1">
|
||||
<input id="cart_list_checkbox_{$connection['supply']['catn']}" type="checkbox" onchange="return cart_list_checkbox(this);"/>
|
||||
<input id="cart_list_checkbox_{$supply['catn']}" type="checkbox" onchange="return cart_list_checkbox(this);"/>
|
||||
</div>
|
||||
<div class="col-2 my-auto">
|
||||
{$connection['supply']['catn']}
|
||||
{$supply['catn']}
|
||||
</div>
|
||||
<div class="col-4 my-auto">
|
||||
{$connection['supply']['dscr']}
|
||||
{$supply['dscr']}
|
||||
</div>
|
||||
<div class="col-1 my-auto ml-auto">
|
||||
<input id="cart_list_amnt_{$connection['supply']['catn']}" class="form-control text-center" type="text" value="{$connection['amount']}" onchange="return cart_list_amount_update('{$connection['supply']['catn']}', this)" aria-invalid="false">
|
||||
<input id="cart_list_amnt_{$supply['catn']}" class="form-control text-center" type="text" value="{$connection['amount']}" onchange="return cart_list_amount_update('{$supply['catn']}', this)" aria-invalid="false">
|
||||
</div>
|
||||
<div class="col-2 my-auto text-right">
|
||||
<p title="Ориентировочно">$delivery_icon ~$delivery дн</p>
|
||||
<p title="Ориентировочно">$delivery_icon <b>~</b>$delivery дн</p>
|
||||
</div>
|
||||
<div class="col-2 my-auto mr-3 text-right">
|
||||
$cost
|
||||
$price
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div class="row mb-1">
|
||||
<div class="col-12">
|
||||
<p id="cart_list_comment_{$connection['supply']['catn']}" class="mt-0 ml-0 text-break pointer-event" role="button" onclick="return cart_list_comment_edit('{$connection['supply']['catn']}', this);">$comment</p>
|
||||
<p id="cart_list_comment_{$supply['catn']}" class="mt-0 ml-0 text-break pointer-event" role="button" onclick="return cart_list_comment_edit('{$supply['catn']}', this);">$comment</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -82,7 +82,7 @@ AppAsset::register($this);
|
|||
<div id="searchPanel" class="col">
|
||||
<form class="d-flex catalog_search" onsubmit="return false;">
|
||||
<div class="position-relative col-sm-8 col-lg-10 px-0">
|
||||
<input id="search_line" type="text" class="form-control col-12 catalog_search_line button_clean" placeholder="Введите номер запчасти, например: 45223503481" oninput="$('#search_line').dropdown('hide'); product_search(this.value);" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" autocomplete="off">
|
||||
<input id="search_line" type="text" class="form-control col-12 catalog_search_line button_clean" placeholder="Введите номер запчасти, например: 45223503481" oninput="$('#search_line').dropdown('hide'); product_search(this.value);" data-toggle="dropdown" aria-expanded="false" autocomplete="off">
|
||||
<?php
|
||||
// Сделать системные настройки и по ним работать
|
||||
$search_panel = yii::$app->controller->renderPartial('/search/panel', ['history' => true]);
|
||||
|
|
|
@ -171,32 +171,29 @@ if (
|
|||
<?php endif ?>
|
||||
|
||||
<article class="page_order_panel mt-3 py-3 px-4 rounded <?= $account_type ?? false ? '' : 'd-block'; ?>">
|
||||
<div class="row mt-2 mb-3">
|
||||
<div class="row mt-2 mb-2">
|
||||
<h4 class="col ml-4"><i class="fas fa-list mr-2"></i>Заказы</h4>
|
||||
<div class="col orders_panel_menu ml-auto text-right">
|
||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('all');">Все</abs>
|
||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('requested');">Запрошенные</a>
|
||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('accepted');">Активные</a>
|
||||
<a class="btn btn-sm button_white button_clean mb-0" type="button" onclick="return orders_read('completed');">Завершенные</a>
|
||||
<div class="col-auto orders_panel_menu ml-auto text-right">
|
||||
<a class="btn btn-sm button_white button_clean font-weight-bold mb-0 mr-2" type="button" onclick="return orders_read('all');">Все</a>
|
||||
<a class="btn btn-sm button_white button_clean font-weight-bold mb-0 mr-2" type="button" onclick="return orders_read('requested');">Запрошенные</a>
|
||||
<a class="btn btn-sm button_white button_clean font-weight-bold mb-0 mr-2" type="button" onclick="return orders_read('accepted');">Активные</a>
|
||||
<a class="btn btn-sm button_white button_clean font-weight-bold mb-0" type="button" onclick="return orders_read('completed');">Завершенные</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-4">
|
||||
<div class="ml-auto col-3">
|
||||
<div class="row mb-2">
|
||||
<p class="col-2 p-0 text-right">
|
||||
С
|
||||
</p>
|
||||
<div class="col-10">
|
||||
<input class="form-control" type="date" value="<?= date('Y-m-d', time() - 604800)?>" />
|
||||
</div>
|
||||
<small class="ml-auto d-flex">
|
||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('all');">День</a>
|
||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('all');">Неделя</a>
|
||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('requested');">Месяц</a>
|
||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('accepted');">Год</a>
|
||||
</small>
|
||||
<div class="ml-2 mr-3 d-flex">
|
||||
<div class="ml-auto">
|
||||
<input class="form-contro form-control-sm" type="date" value="<?= date('Y-m-d', time() - 604800) ?>" />
|
||||
</div>
|
||||
<div class="row">
|
||||
<p class="col-2 p-0 text-right">
|
||||
По
|
||||
</p>
|
||||
<div class="col-10">
|
||||
<input class="form-control" type="date" value="<?= date('Y-m-d', time())?>" />
|
||||
</div>
|
||||
<p class="mx-2 p-0">-</p>
|
||||
<div>
|
||||
<input class="form-contro form-control-sm" type="date" value="<?= date('Y-m-d', time()) ?>" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -69,16 +69,16 @@ main {
|
|||
.button_clean_full:hover,
|
||||
.button_clean_full:focus,
|
||||
.button_clean_full:active {
|
||||
outline : none;
|
||||
box-shadow: none;
|
||||
outline : none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.button_clean_full,
|
||||
.button_clean_full:hover,
|
||||
.button_clean_full:focus,
|
||||
.button_clean_full:active {
|
||||
border : none;
|
||||
background: none;
|
||||
border : none !important;
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.button_blue_simple {
|
||||
|
|
|
@ -9,6 +9,8 @@ function identification() {
|
|||
});
|
||||
};
|
||||
|
||||
document.addEventListener('DOMContentLoaded', identification(), true);
|
||||
|
||||
function authentication(form) {
|
||||
if (form == undefined) {
|
||||
form = {
|
||||
|
@ -209,7 +211,28 @@ function registration_end(form) {
|
|||
return false;
|
||||
};
|
||||
|
||||
document.addEventListener('DOMContentLoaded', identification(), true);
|
||||
function authentication_auto_button_status_switch(button) {
|
||||
if (button !== undefined) {
|
||||
if (button.classList.contains('active')) {
|
||||
// Кнопка в статусе "Запомнить вход"
|
||||
|
||||
// Замена иконки
|
||||
button.children[0].classList.replace('fa-lock', 'fa-unlock');
|
||||
|
||||
return true;
|
||||
} else {
|
||||
// Кнопка в статусе "Не запоминать вход"
|
||||
|
||||
|
||||
// Замена иконки
|
||||
button.children[0].classList.replace('fa-unlock', 'fa-lock');
|
||||
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
function account_response(data, status, xhr) {
|
||||
// Обработка ответов
|
||||
|
@ -251,8 +274,8 @@ function account_response_success(data, status, xhr) {
|
|||
// Перенести в отдельный файл который подгружается в зависимости от настроек
|
||||
// search_panel_show();
|
||||
|
||||
// Обновление панели поиска
|
||||
product_search();
|
||||
// // Обновление панели поиска
|
||||
// product_search();
|
||||
|
||||
account_response(data, status, xhr);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
// Инициализация геолокации
|
||||
function geolocation_init() {
|
||||
$.ajax({
|
||||
url: '/profile/geolocation/init',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: { '_csrf': yii.getCsrfToken() },
|
||||
success: geolocation_success,
|
||||
error: geolocation_error
|
||||
});
|
||||
};
|
||||
|
||||
geolocation_init();
|
||||
|
||||
function geolocation_responce(data, status, xhr) {
|
||||
// Обработка ответов
|
||||
|
||||
main_response(data, status, xhr);
|
||||
};
|
||||
|
||||
function geolocation_success(data, status, xhr) {
|
||||
// Обработка ответов от удавшихся запросов
|
||||
|
||||
geolocation_responce(data, status, xhr);
|
||||
};
|
||||
|
||||
function geolocation_error(data, status, xhr) {
|
||||
// Обработка ответов от неудавшихся запросов
|
||||
|
||||
// Инициализация
|
||||
data = data.responseJSON;
|
||||
|
||||
geolocation_responce(data, status, xhr);
|
||||
};
|
Reference in New Issue