Работа над сайтом 14

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-07-12 04:21:32 +10:00
parent 2ca929e122
commit bf821a9819
27 changed files with 810 additions and 962 deletions

View File

@ -38,6 +38,7 @@ class AppAsset extends AssetBundle
'https://cdn.jsdelivr.net/bxslider/4.1.1/jquery.bxslider.min.js', 'https://cdn.jsdelivr.net/bxslider/4.1.1/jquery.bxslider.min.js',
'https://unpkg.com/cookielib/src/cookie.min.js', 'https://unpkg.com/cookielib/src/cookie.min.js',
'js/menu.js', 'js/menu.js',
'js/main.js',
'js/account.js', 'js/account.js',
'js/search.js', 'js/search.js',
'js/notification.js', 'js/notification.js',
@ -47,7 +48,7 @@ class AppAsset extends AssetBundle
// 'position' => View::POS_HEAD // 'position' => View::POS_HEAD
]; ];
public $depends = [ public $depends = [
'yii\web\YiiAsset', 'yii\web\YiiAsset'
// 'yii\bootstrap\BootstrapAsset' // 'yii\bootstrap\BootstrapAsset'
]; ];
} }

View File

@ -77,7 +77,7 @@ class CartController extends Controller
* *
* @see $this->behaviors Доступ только аутентифицированным * @see $this->behaviors Доступ только аутентифицированным
*/ */
public function actionIndex(): string|array|null public function actionIndex(): string|array|null|Response
{ {
// Инициализация // Инициализация
$page = yii::$app->request->get('page') ?? yii::$app->request->post('page') ?? 1; $page = yii::$app->request->get('page') ?? yii::$app->request->post('page') ?? 1;

View File

@ -198,22 +198,22 @@ class SearchController extends Controller
$to = 36; $to = 36;
} }
if ($buffer_connection = $connection['product']['bffr']["$from-$to"] ?? false) { if (
($buffer_connection = $connection['product']['bffr']["$from-$to"] ?? false)
&& time() < $buffer_connection['expires']
) {
// Найдены данные доставки в буфере // Найдены данные доставки в буфере
// и срок хранения не превышен, информация актуальна
if (time() < $buffer_connection['expires']) {
// Срок хранения не превышен, информация актуальна
// Запись в буфер вывода // Запись в буфер вывода
$connection['delivery'] = $buffer_connection['data']; $connection['delivery'] = $buffer_connection['data'];
$connection['delivery']['type'] = 'auto'; $connection['delivery']['type'] = 'auto';
}
} else { } else {
// Инициализация инстанции продукта в базе данных // Инициализация инстанции продукта в базе данных
$product = Product::searchByCatn($connection['product']['catn']); $product = Product::searchByCatn($connection['product']['catn']);
// Инициализация доставки Dellin (автоматическая) // Инициализация доставки Dellin (автоматическая)
$product->bffr = ($product->bffr ?? []) + [ $product->bffr = [
"$from-$to" => [ "$from-$to" => [
'data' => $connection['delivery'] = Dellin::calcDeliveryAdvanced( 'data' => $connection['delivery'] = Dellin::calcDeliveryAdvanced(
$from, $from,
@ -225,7 +225,7 @@ class SearchController extends Controller
), ),
'expires' => time() + 86400 'expires' => time() + 86400
] ]
]; ] + ($product->bffr ?? []);
$connection['delivery']['type'] = 'auto'; $connection['delivery']['type'] = 'auto';
// Отправка в базу данных // Отправка в базу данных
@ -261,22 +261,22 @@ class SearchController extends Controller
$to = 36; $to = 36;
} }
if ($buffer_connection = $connection['product']['bffr']["$from-$to-avia"] ?? false) { if (
($buffer_connection = $connection['product']['bffr']["$from-$to-avia"] ?? false)
&& time() < $buffer_connection['expires']
) {
// Найдены данные доставки в буфере // Найдены данные доставки в буфере
// и срок хранения не превышен, информация актуальна
if (time() < $buffer_connection['expires']) {
// Срок хранения не превышен, информация актуальна
// Запись в буфер вывода // Запись в буфер вывода
$connection['delivery'] = $buffer_connection['data']; $connection['delivery'] = $buffer_connection['data'];
$connection['delivery']['type'] = 'avia'; $connection['delivery']['type'] = 'avia';
}
} else { } else {
// Инициализация инстанции продукта в базе данных // Инициализация инстанции продукта в базе данных
$product = Product::searchByCatn($connection['product']['catn']); $product = Product::searchByCatn($connection['product']['catn']);
// Инициализация доставки Dellin (автоматическая) // Инициализация доставки Dellin (автоматическая)
$product->bffr = ($product->bffr ?? []) + [ $product->bffr = [
"$from-$to-avia" => [ "$from-$to-avia" => [
'data' => $connection['delivery'] = Dellin::calcDeliveryAdvanced( 'data' => $connection['delivery'] = Dellin::calcDeliveryAdvanced(
$from, $from,
@ -289,7 +289,7 @@ class SearchController extends Controller
), ),
'expires' => time() + 86400 'expires' => time() + 86400
] ]
]; ] + ($product->bffr ?? []);
$connection['delivery']['type'] = 'avia'; $connection['delivery']['type'] = 'avia';
// Отправка в базу данных // Отправка в базу данных

View File

@ -446,7 +446,10 @@ class Order extends Document implements DocumentInterface
// Если стоимость не найдена или равна нулю (явная ошибка) // Если стоимость не найдена или равна нулю (явная ошибка)
// Удаление из базы данных // Удаление из базы данных
$this->deleteSupply($connection['supply']->readId()); $this->deleteSupply($connection['supply']['_id']);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Добавить уведомление об ошибочном товаре
// Удаление из списка // Удаление из списка
unset($connections[$key]); unset($connections[$key]);

View File

@ -0,0 +1,59 @@
<?php
declare(strict_types=1);
namespace app\models\helpers;
use yii;
use yii\base\Model;
use yii\web\View;
class JsManager extends Model
{
/**
* Сгенерировать <script> элементы из данных AssetManager
*
* Создавалось под виджет ActiveForm и только на нём тестировалось
*
* @param View $view Представление
* @param array $targets Названия виджетов (например: "yii\widgets\ActiveFormAsset")
*
* @return string HTML-код
*/
public static function include(View $view, array $targets): string
{
// Инициализация
$buffer = '';
foreach ($targets as $target) {
// Перебор целей для генерации
// Инициализация
$depends = $view->assetBundles[$target]->depends;
if (count($depends) > 0) {
// Найдены зависимости
// Рекурсивный вызов
self::include($view, $depends);
}
// Инициализация
$files = $view->assetBundles[$target]->js;
foreach ($files as $file) {
// Перебор файлов цели для генерации
// Инициализация публичного пути к файлу
$path = $view->assetBundles[$target]->baseUrl . '/' . $file;
// Генерация
$buffer .= <<<HTML
<script src="$path" defer></script>
HTML;
}
}
return $buffer;
}
}

View File

@ -3,6 +3,7 @@
declare(strict_types=1); declare(strict_types=1);
use yii; use yii;
use app\models\helpers\JsManager;
?> ?>
@ -16,3 +17,5 @@ use yii;
<!-- <a class="dropdown-item-text text-center px-0 py-2" href="#"><small>Восстановление пароля</small></a> --> <!-- <a class="dropdown-item-text text-center px-0 py-2" href="#"><small>Восстановление пароля</small></a> -->
</div> </div>
</div> </div>
<?= JsManager::include($this, ['yii\widgets\ActiveFormAsset']);?>

View File

@ -49,10 +49,10 @@ $this->title = 'SkillParts';
</div> </div>
<div class="p-3 px-md-4 category_block"> <div class="p-3 px-md-4 category_block">
<dl class="mb-0"> <dl class="mb-0">
<dd><a onclick="return writeinDevelopment(this);" type="button">Масла моторные</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Масла моторные</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Масла трансмиссионные</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Масла трансмиссионные</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Масла гидравлические</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Масла гидравлические</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Смазки</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Смазки</a></dd>
</dl> </dl>
</div> </div>
</div> </div>
@ -62,7 +62,7 @@ $this->title = 'SkillParts';
</div> </div>
<div class="p-3 px-md-4 category_block"> <div class="p-3 px-md-4 category_block">
<dl class="mb-0"> <dl class="mb-0">
<dd><a onclick="return writeinDevelopment(this);" type="button">Фары и свет</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Фары и свет</a></dd>
</dl> </dl>
</div> </div>
</div> </div>
@ -72,9 +72,9 @@ $this->title = 'SkillParts';
</div> </div>
<div class="p-3 px-md-4 category_block"> <div class="p-3 px-md-4 category_block">
<dl class="mb-0"> <dl class="mb-0">
<dd><a onclick="return writeinDevelopment(this);" type="button">Шприцы для смазки</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Шприцы для смазки</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Ключи, съёмники</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Ключи, съёмники</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Наборы инструментов</a></dd> <dd><a onclick="return writeInDevelopment(this);" type="button">Наборы инструментов</a></dd>
</dl> </dl>
</div> </div>
</div> </div>
@ -83,4 +83,4 @@ $this->title = 'SkillParts';
</div> </div>
<script src="/js/ticker.js" defer></script> <script src="/js/ticker.js" defer></script>
<script src="/js/main.js" defer></script> <script src="/js/text.js" defer></script>

View File

@ -161,7 +161,7 @@
<div class="col-5 mr-4"></div> <div class="col-5 mr-4"></div>
<small class="col-1 ml-2 my-auto pl-2 pr-0">$index</small> <small class="col-1 ml-2 my-auto pl-2 pr-0">$index</small>
<small class="col-1 my-auto pl-2 pr-0 text-center">$amount</small> <small class="col-1 my-auto pl-2 pr-0 text-center">$amount</small>
<small class="col-auto mr-2 my-auto pl-2 pr-0 text-left" title="Ориентировочно">$delivery_icon ~$delivery дн</small> <small class="col-auto mr-2 my-auto pl-2 pr-0 text-left" title="Ориентировочно">$delivery_icon $delivery дн</small>
<b class="col-2 ml-auto my-auto">$price</b> <b class="col-2 ml-auto my-auto">$price</b>
<a class="col-1 ml-0 py-2 text-dark d-flex button_white rounded" title="Добавить $catn в корзину" role="button" onclick="return cart_write('{$supply['_id']}', '$delivery_type');"> <a class="col-1 ml-0 py-2 text-dark d-flex button_white rounded" title="Добавить $catn в корзину" role="button" onclick="return cart_write('{$supply['_id']}', '$delivery_type');">
<i class="fas fa-cart-arrow-down pr-1 m-auto"></i> <i class="fas fa-cart-arrow-down pr-1 m-auto"></i>

View File

@ -4,20 +4,8 @@ function identification() {
type: 'post', type: 'post',
dataType: 'json', dataType: 'json',
data: { '_csrf': yii.getCsrfToken() }, data: { '_csrf': yii.getCsrfToken() },
success: function (data) { success: account_response_success,
if (data.menu !== undefined) { error: account_response_error
// Обновление документа
document.getElementsByTagName('menu')[0].innerHTML = data.menu;
}
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
}
}); });
}; };
@ -40,55 +28,8 @@ function authentication(form) {
type: 'post', type: 'post',
dataType: 'json', dataType: 'json',
data: form, data: form,
success: function (data, status) { success: account_response_success,
if (data.menu !== undefined) { error: account_response_error
// Обновление документа
document.getElementsByTagName('menu')[0].innerHTML = data.menu;
}
if (data.main !== undefined && document.getElementById('page_index') === null) {
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
// Реинициализация панели поиска
// Перенести в отдельный файл который подгружается в зависимости от настроек
// search_panel_show();
// Обновление панели поиска
product_search();
},
error: function (data, status) {
if (data.responseJSON.main !== undefined) {
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.responseJSON.main;
// Реинициализация
reinitialization(main);
}
if (data.responseJSON.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.responseJSON.redirect);
}
if (data.responseJSON._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data.responseJSON._csrf);
}
}
}); });
}; };
@ -98,36 +39,8 @@ function deauthentication() {
type: 'post', type: 'post',
dataType: 'json', dataType: 'json',
data: { '_csrf': yii.getCsrfToken() }, data: { '_csrf': yii.getCsrfToken() },
success: function (data) { success: account_response_success,
if (data.menu !== undefined) { error: account_response_error
// Обновление документа
document.getElementsByTagName('menu')[0].innerHTML = data.menu;
}
if (data.main !== undefined) {
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
// Реинициализация панели поиска
// Перенести в отдельный файл который подгружается в зависимости от настроек
// search_panel_hide();
// Обновление панели поиска
product_search();
}
}); });
}; };
@ -266,6 +179,9 @@ function registration_start(form, type) {
function registration_end(form) { function registration_end(form) {
// Инициализация // Инициализация
$(form).yiiActiveForm('init');
// Проверка
$(form).yiiActiveForm('validate', true); $(form).yiiActiveForm('validate', true);
if (form == undefined) { if (form == undefined) {
@ -286,52 +202,66 @@ function registration_end(form) {
type: 'post', type: 'post',
dataType: 'json', dataType: 'json',
data: form, data: form,
success: function (data) { success: account_response_success,
if (data.menu !== undefined) { error: account_response_error
// Обновление документа
document.getElementsByTagName('menu')[0].innerHTML = data.menu;
}
// Разобраться нужна ли ещё првоерка на page_index, избавиться от неё
if (data.main !== undefined && document.getElementById('page_index') === null) {
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
},
error: function (data) {
if (data.responseJSON.main !== undefined) {
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.responseJSON.main;
// Реинициализация
reinitialization(main);
}
if (data.responseJSON.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.responseJSON.redirect);
}
if (data.responseJSON._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data.responseJSON._csrf);
}
}
}); });
return false; return false;
}; };
document.addEventListener('DOMContentLoaded', identification(), true); document.addEventListener('DOMContentLoaded', identification(), true);
function account_response(data, status, xhr) {
// Обработка ответов
// // Разобраться нужна ли ещё првоерка на page_index, избавиться от неё
// if (data.main !== undefined && document.getElementById('page_index') === null) {
// main = document.getElementsByTagName('main')[0];
// // Обновление документа
// main.innerHTML = data.main;
// // Реинициализация
// reinitialization(main);
// }
if (data !== undefined) {
// Получены данные с сервера
// Меню
if (data.menu !== undefined) {
// Инициализация
let menu = document.getElementsByTagName('menu')[0];
// Обновление документа
menu.innerHTML = data.menu;
// Реинициализация
reinitialization(menu);
}
}
main_response(data, status, xhr);
}
function account_response_success(data, status, xhr) {
// Обработка ответов от удавшихся запросов
// Реинициализация панели поиска
// Перенести в отдельный файл который подгружается в зависимости от настроек
// search_panel_show();
// Обновление панели поиска
product_search();
account_response(data, status, xhr);
}
function account_response_error(data, status, xhr) {
// Обработка ответов от неудавшихся запросов
// Инициализвация
data = data.responseJSON;
account_response(data, status, xhr);
}

View File

@ -7,7 +7,7 @@ function cart_write(supply_id, delivery_type, amount = 1) {
data['supply_id'] = supply_id; data['supply_id'] = supply_id;
data['amount'] = amount; data['amount'] = amount;
data['delivery_type'] = delivery_type; data['delivery_type'] = delivery_type;
data['_csrf'] = yii.getCsrfToken() data['_csrf'] = yii.getCsrfToken();
$.ajax({ $.ajax({
url: '/order/write', url: '/order/write',
@ -19,7 +19,7 @@ function cart_write(supply_id, delivery_type, amount = 1) {
}); });
return false; return false;
} };
/** /**
* Удалить корзину * Удалить корзину
@ -37,7 +37,7 @@ function cart_delete() {
}); });
return false; return false;
} };
/** /**
* Сформировать заказ * Сформировать заказ
@ -55,7 +55,7 @@ function cart_request() {
}); });
return false; return false;
} };
/** /**
* Управление чекбоксами * Управление чекбоксами
@ -72,7 +72,7 @@ function cart_list_checkbox(target) {
// Перебор всех выбранных элементов // Перебор всех выбранных элементов
elements[$i].getElementsByTagName('input')[0].checked = true; elements[$i].getElementsByTagName('input')[0].checked = true;
} };
target.checked = true; target.checked = true;
} else { } else {
@ -80,14 +80,14 @@ function cart_list_checkbox(target) {
// Перебор всех выбранных элементов // Перебор всех выбранных элементов
elements[$i].getElementsByTagName('input')[0].checked = false; elements[$i].getElementsByTagName('input')[0].checked = false;
} };
target.checked = false; target.checked = false;
} };
return false; return false;
} };
} };
/** /**
* Удалить из корзины * Удалить из корзины
@ -115,9 +115,9 @@ function cart_list_delete(target, amount = 0) {
if (checkbox.checked === true) { if (checkbox.checked === true) {
targets[reg.exec(checkbox.id)[1]] = 0; targets[reg.exec(checkbox.id)[1]] = 0;
} };
} };
} };
$.ajax({ $.ajax({
url: '/order/delete', url: '/order/delete',
@ -138,7 +138,7 @@ function cart_list_delete(target, amount = 0) {
cart_cost_calculate(); cart_cost_calculate();
return false; return false;
} };
/** /**
* Изменить количество товара в корзине * Изменить количество товара в корзине
@ -162,13 +162,13 @@ function cart_list_amount_update(target, input) {
success: cart_response_success, success: cart_response_success,
error: cart_response_error error: cart_response_error
}); });
} };
// Пересчитывание стоимости // Пересчитывание стоимости
cart_cost_calculate(); cart_cost_calculate();
return false; return false;
} };
/** /**
* Подсчёт стоимости * Подсчёт стоимости
@ -183,10 +183,10 @@ function cart_cost_calculate() {
let amount = elements[$i].getElementsByTagName('div')[5].children[0].value; let amount = elements[$i].getElementsByTagName('div')[5].children[0].value;
costs += +reg.exec(cost)[1] * amount; costs += +reg.exec(cost)[1] * amount;
} };
document.getElementById('cart_cost').innerHTML = costs; document.getElementById('cart_cost').innerHTML = costs;
} };
/** /**
* Изменить количество товара в корзине * Изменить количество товара в корзине
@ -246,10 +246,10 @@ function cart_list_comment_edit(catn, element) {
}); });
return false; return false;
} };
return true; return true;
} };
function cart_list_comment_save(catn, element) { function cart_list_comment_save(catn, element) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -261,7 +261,7 @@ function cart_list_comment_save(catn, element) {
element.innerHTML = 'Комментарий к заказу'; element.innerHTML = 'Комментарий к заказу';
} else { } else {
element.innerHTML = text; element.innerHTML = text;
} };
// Деинициализация счетчика // Деинициализация счетчика
document.getElementById(element.id + '-textarea-counter').remove(); document.getElementById(element.id + '-textarea-counter').remove();
@ -277,7 +277,7 @@ function cart_list_comment_save(catn, element) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'text': text 'text': text
}, },
success: function (data, status) { success: function (data, status, xhr) {
// Заголовок // Заголовок
if (data.comm !== undefined) { if (data.comm !== undefined) {
// Обновление заголовка // Обновление заголовка
@ -287,55 +287,34 @@ function cart_list_comment_save(catn, element) {
element.setAttribute('onclick', 'return cart_list_comment_edit(\'' + catn + '\', this);'); element.setAttribute('onclick', 'return cart_list_comment_edit(\'' + catn + '\', this);');
}; };
cart_response_success(data, status); cart_response_success(data, status, xhr);
}, },
error: cart_response_error error: cart_response_error
}); });
return false; return false;
} };
return true; return true;
} };
function cart_response(data, status) { function cart_response(data, status, xhr) {
// Обработка ответов // Обработка ответов
// Основной блок main_response(data, status, xhr);
if (data.main !== undefined) { };
main = document.getElementsByTagName('main')[0];
// Обновление документа function cart_response_success(data, status, xhr) {
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
}
function cart_response_success(data, status) {
// Обработка ответов от удавшихся запросов // Обработка ответов от удавшихся запросов
cart_response(data, status); cart_response(data, status, xhr);
} };
function cart_response_error(data, status) { function cart_response_error(data, status, xhr) {
// Обработка ответов от неудавшихся запросов // Обработка ответов от неудавшихся запросов
// Инициализвация // Инициализвация
data = data.responseJSON; data = data.responseJSON;
cart_response(data, status); cart_response(data, status, xhr);
} };

View File

@ -1,20 +1,37 @@
function writeinDevelopment(target) { function main_response(data, status, xhr) {
// Инициализация буфера // Обработка ответов
let buffer = target.innerText;
// Запись текста if (data !== undefined) {
target.innerText = target.innerText + ' (в разработке)'; // Получены данные с сервера
// Блокировка от повторного вызова // Основной блок
target.setAttribute('onclick', 'return false;'); if (data.main !== undefined) {
// Инициализация
main = document.getElementsByTagName('main')[0];
setTimeout(function () { // Обновление документа
// Возврат изначального текста из буфера main.innerHTML = data.main;
target.innerText = buffer;
// Разблокировка // Реинициализация
target.setAttribute('onclick', 'return writeinDevelopment(this);'); reinitialization(main);
}, 3000); };
return false; // Заголовок
if (data.title !== undefined) {
// Запись
document.title = data.title;
};
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
};
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
};
};
}; };

View File

@ -10,10 +10,10 @@ function page_main() {
success: menu_success, success: menu_success,
error: menu_error error: menu_error
}); });
} };
return false; return false;
} };
function page_profile() { function page_profile() {
if (document.getElementById('page_profile') === null) { if (document.getElementById('page_profile') === null) {
@ -27,10 +27,10 @@ function page_profile() {
success: menu_success, success: menu_success,
error: menu_error error: menu_error
}); });
} };
return false; return false;
} };
function page_cart() { function page_cart() {
if (document.getElementById('page_cart') === null) { if (document.getElementById('page_cart') === null) {
@ -44,7 +44,7 @@ function page_cart() {
success: menu_success, success: menu_success,
error: menu_error error: menu_error
}); });
} };
return false; return false;
}; };
@ -61,7 +61,7 @@ function page_orders() {
success: menu_success, success: menu_success,
error: menu_error error: menu_error
}); });
} };
return false; return false;
}; };
@ -69,76 +69,25 @@ function page_orders() {
function notifications() { function notifications() {
return false; return false;
} };
function menu_responce(data, status, xhr) {
// Обработка ответов
function menu_success(data, status) { main_response(data, status, xhr);
};
function menu_success(data, status, xhr) {
// Обработка ответов от удавшихся запросов // Обработка ответов от удавшихся запросов
// Основной блок menu_responce(data, status, xhr);
if (data.main !== undefined) { };
// Инициализация
main = document.getElementsByTagName('main')[0];
// Обновление документа function menu_error(data, status, xhr) {
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
// Заголовок
if (data.title !== undefined) {
// Запись
document.title = data.title;
}
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
}
function menu_error(data, status) {
// Обработка ответов от неудавшихся запросов // Обработка ответов от неудавшихся запросов
// Инициализация // Инициализация
data = data.responseJSON; data = data.responseJSON;
// Основной блок menu_responce(data, status, xhr);
if (data.main !== undefined) { };
// Инициализация
main = document.getElementsByTagName('main')[0];
// Обновление окна результатов поиска
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
// Заголовок
if (data.title !== undefined) {
// Запись
document.title = data.title;
}
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
}

View File

@ -73,7 +73,18 @@ function notification_stream(preload = 0) {
// Предзагрузка уведомлений // Предзагрузка уведомлений
notification_stream(1); notification_stream(1);
function notification_response_success(data, status) { function notification_response(data, status, xhr) {
// Обработка ответов
main_response(data, status, xhr);
};
function notification_response_success(data, status, xhr) {
// Обработка ответов от удавшихся запросов
if (data !== undefined) {
// Получены данные с сервера
// Кнопка уведомлений // Кнопка уведомлений
if (data.button !== undefined) { if (data.button !== undefined) {
// Инициализация // Инициализация
@ -87,7 +98,7 @@ function notification_response_success(data, status) {
// Реинициализация // Реинициализация
$('#notification_button').dropdown().init(); $('#notification_button').dropdown().init();
} };
// Панель уведомлений // Панель уведомлений
if (data.panel !== undefined) { if (data.panel !== undefined) {
@ -99,7 +110,7 @@ function notification_response_success(data, status) {
// Реинициализация // Реинициализация
reinitialization(panel); reinitialization(panel);
} };
// Всплывающее окно // Всплывающее окно
if (data.popup !== undefined && data.popup['html'] !== undefined && data.popup['id'] !== undefined) { if (data.popup !== undefined && data.popup['html'] !== undefined && data.popup['id'] !== undefined) {
@ -108,41 +119,17 @@ function notification_response_success(data, status) {
// Генерация // Генерация
notification_popup_create(data.popup['html'], data.popup['id']); notification_popup_create(data.popup['html'], data.popup['id']);
} };
};
notification_response(data, status); notification_response(data, status, xhr);
} };
function notification_response_error(data, status, xhr) {
// Обработка ответов от неудавшихся запросов
function notification_response_error(data, status) {
// Инициализация // Инициализация
data = data.responseJSON; data = data.responseJSON;
notification_response(data, status); notification_response(data, status, xhr);
}
function notification_response(data, status) {
// Основной блок
if (data.main !== undefined) {
// Инициализация
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}; };
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
};
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
};
}

View File

@ -1,42 +1,20 @@
function orders_response(data, status, xhr) {
function orders_response(data, status) {
// Обработка ответов // Обработка ответов
// Основной блок main_response(data, status, xhr);
if (data.main !== undefined) { };
main = document.getElementsByTagName('main')[0];
// Обновление документа function orders_response_success(data, status, xhr) {
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
}
function orders_response_success(data, status) {
// Обработка ответов от удавшихся запросов // Обработка ответов от удавшихся запросов
orders_response(data, status); orders_response(data, status, xhr);
} };
function orders_response_error(data, status) { function orders_response_error(data, status, xhr) {
// Обработка ответов от неудавшихся запросов // Обработка ответов от неудавшихся запросов
// Инициализвация // Инициализвация
data = data.responseJSON; data = data.responseJSON;
orders_response(data, status); orders_response(data, status, xhr);
} };

View File

@ -14,16 +14,16 @@ function order_init(order_key) {
if ((target === undefined || target.children[1] === undefined || target.children[1].children[0] === undefined) && !target.classList.contains('dropdown-divider')) { if ((target === undefined || target.children[1] === undefined || target.children[1].children[0] === undefined) && !target.classList.contains('dropdown-divider')) {
supplies_are_confirmed = false; supplies_are_confirmed = false;
} };
} };
if (supplies_are_confirmed) { if (supplies_are_confirmed) {
button.classList.remove('disabled'); button.classList.remove('disabled');
} };
return false; return false;
} };
function order_accept(order_key) { function order_accept(order_key) {
$.ajax({ $.ajax({
@ -38,7 +38,7 @@ function order_accept(order_key) {
}); });
return false; return false;
} };
function orders_supply_edit(supply_key, order_key) { function orders_supply_edit(supply_key, order_key) {
// Инициализация // Инициализация
@ -56,8 +56,8 @@ function orders_supply_edit(supply_key, order_key) {
// Если это кнопка конкретно с этого заказа // Если это кнопка конкретно с этого заказа
rows[i].classList.remove('row_supply_active'); rows[i].classList.remove('row_supply_active');
} };
} };
// Активация выбранной кнопки // Активация выбранной кнопки
supply.classList.add('row_supply_active'); supply.classList.add('row_supply_active');
@ -72,10 +72,12 @@ function orders_supply_edit(supply_key, order_key) {
data: { data: {
'_csrf': yii.getCsrfToken() '_csrf': yii.getCsrfToken()
}, },
success: function (data, status) { success: function (data, statu, xhrs) {
// Удаление индикатора загрузки // Удаление индикатора загрузки
panel.innerHTML = ''; panel.innerHTML = '';
if (data !== undefined) {
// Получены данные с сервера
// Идентификатор // Идентификатор
if (document.getElementById(supply.getAttribute('id') + '_id') === null) { if (document.getElementById(supply.getAttribute('id') + '_id') === null) {
// Инициализация контейнера // Инициализация контейнера
@ -97,7 +99,7 @@ function orders_supply_edit(supply_key, order_key) {
text.innerText = '#' + data.id; text.innerText = '#' + data.id;
} else { } else {
text.innerText = 'Неизвестно'; text.innerText = 'Неизвестно';
} };
// Запись в документ // Запись в документ
panel.appendChild(container); panel.appendChild(container);
@ -139,7 +141,7 @@ function orders_supply_edit(supply_key, order_key) {
input.setAttribute('value', data.cost); input.setAttribute('value', data.cost);
} else { } else {
input.setAttribute('value', 0); input.setAttribute('value', 0);
} };
input.setAttribute('aria-invalid', 'false'); input.setAttribute('aria-invalid', 'false');
// Инициализация дополнительных данных // Инициализация дополнительных данных
@ -177,7 +179,7 @@ function orders_supply_edit(supply_key, order_key) {
input.setAttribute('value', data.time); input.setAttribute('value', data.time);
} else { } else {
input.setAttribute('value', 0); input.setAttribute('value', 0);
} };
input.setAttribute('aria-invalid', 'false'); input.setAttribute('aria-invalid', 'false');
// Инициализация дополнительных данных // Инициализация дополнительных данных
@ -210,7 +212,7 @@ function orders_supply_edit(supply_key, order_key) {
textarea.value = 'Комментарий к заказу'; textarea.value = 'Комментарий к заказу';
} else { } else {
textarea.value = data.comm; textarea.value = data.comm;
} };
// Запись в документ // Запись в документ
panel.appendChild(container); panel.appendChild(container);
@ -250,8 +252,8 @@ function orders_supply_edit(supply_key, order_key) {
// Запись индикатора // Запись индикатора
title.appendChild(span); title.appendChild(span);
} };
} };
// Запись в документ // Запись в документ
panel.appendChild(container); panel.appendChild(container);
@ -260,14 +262,15 @@ function orders_supply_edit(supply_key, order_key) {
// Реинициализация // Реинициализация
order_init(order_key); order_init(order_key);
}; };
};
orders_response_success(data, status); orders_response_success(data, status, xhr);
}, },
error: orders_response_error error: orders_response_error
}); });
return false; return false;
} };
function orders_supply_comm_write(button, supply_key, order_key) { function orders_supply_comm_write(button, supply_key, order_key) {
// Инициализация // Инициализация
@ -281,7 +284,7 @@ function orders_supply_comm_write(button, supply_key, order_key) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'stts': 'accepted' 'stts': 'accepted'
}, },
success: function (data, status) { success: function (data, status, xhr) {
// Инициализация индикатора // Инициализация индикатора
let span = document.createElement('span'); let span = document.createElement('span');
span.setAttribute('id', supply.getAttribute('id') + '_stts_indicator_icon'); span.setAttribute('id', supply.getAttribute('id') + '_stts_indicator_icon');
@ -302,18 +305,19 @@ function orders_supply_comm_write(button, supply_key, order_key) {
// Запись индикатора // Запись индикатора
title.appendChild(span); title.appendChild(span);
} };
// Реинициализация // Реинициализация
order_init(order_key); order_init(order_key);
} };
orders_response_success(data, status); orders_response_success(data, status, xhr);
}, },
error: orders_response_error error: orders_response_error
}); });
return false; return false;
} };
/** /**
* Изменить цену товара в заказе * Изменить цену товара в заказе
@ -330,22 +334,22 @@ function orders_supply_comm_write(button, supply_key, order_key) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'cost': input.value 'cost': input.value
}, },
success: function (data, status) { success: function (data, status, xhr) {
if (data.cost !== undefined) { if (data.cost !== undefined) {
input.value = data.cost; input.value = data.cost;
} };
orders_response_success(data, status); orders_response_success(data, status, xhr);
}, },
error: orders_response_error error: orders_response_error
}); });
} };
// Пересчитывание стоимости // Пересчитывание стоимости
cart_cost_calculate(); cart_cost_calculate();
return false; return false;
} };
/** /**
* Изменить время доставки товара в заказе * Изменить время доставки товара в заказе
@ -362,22 +366,26 @@ function orders_supply_comm_write(button, supply_key, order_key) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'time': input.value 'time': input.value
}, },
success: function (data, status) { success: function (data, status, xhr) {
if (data !== undefined) {
// Получены данные с сервера
if (data.time !== undefined) { if (data.time !== undefined) {
input.value = data.time; input.value = data.time;
} };
};
orders_response_success(data, status); orders_response_success(data, status, xhr);
}, },
error: orders_response_error error: orders_response_error
}); });
} };
// Пересчитывание стоимости // Пересчитывание стоимости
cart_cost_calculate(); cart_cost_calculate();
return false; return false;
} };
/** /**
* Изменить комментарий товара в заказе * Изменить комментарий товара в заказе
@ -395,18 +403,22 @@ function orders_supply_comm_write(button, supply_key, order_key) {
'comm': input.value 'comm': input.value
}, },
success: function (data, status) { success: function (data, status) {
if (data !== undefined) {
// Получены данные с сервера
if (data.comm !== undefined) { if (data.comm !== undefined) {
input.value = data.comm; input.value = data.comm;
} };
};
orders_response_success(data, status); orders_response_success(data, status);
}, },
error: orders_response_error error: orders_response_error
}); });
} };
// Пересчитывание стоимости // Пересчитывание стоимости
cart_cost_calculate(); cart_cost_calculate();
return false; return false;
} };

View File

@ -16,44 +16,28 @@ function product_image_choose(key, wrap) {
} else { } else {
label.classList.remove('active'); label.classList.remove('active');
label.checked = 'false'; label.checked = 'false';
} };
} };
} };
} };
function product_response(data, status, xhr) {
// Обработка ответов
main_response(data, status, xhr);
};
function product_response_success(data, status, xhr) {
// Обработка ответов от удавшихся запросов
function product_response_success(data, status) {
product_response(data, status); product_response(data, status);
} };
function product_response_error(data, status, xhr) {
// Обработка ответов от неудавшихся запросов
function product_response_error(data, status) {
// Инициализация // Инициализация
data = data.responseJSON; data = data.responseJSON;
product_response(data, status); product_response(data, status, xhr);
}
function product_response(data, status) {
// Основной блок
if (data.main !== undefined) {
// Инициализация
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}; };
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
};
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
};
}

View File

@ -5,10 +5,10 @@ function product_panel_title_edit(catn, element) {
element.removeAttribute('onclick'); element.removeAttribute('onclick');
return false; return false;
} };
return true; return true;
} };
function product_panel_title_save(catn, element) { function product_panel_title_save(catn, element) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -29,7 +29,11 @@ function product_panel_title_save(catn, element) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'text': text 'text': text
}, },
success: function (data, status) { success: function (data, status, xhr) {
if (data !== undefined) {
// Получены данные с сервера
// Заголовок // Заголовок
if (data.name !== undefined && element !== null && element !== undefined) { if (data.name !== undefined && element !== null && element !== undefined) {
// Обновление заголовка // Обновление заголовка
@ -38,17 +42,18 @@ function product_panel_title_save(catn, element) {
// Запись аттрибута // Запись аттрибута
element.setAttribute('onclick', 'return product_panel_title_edit(\'' + catn + '\', this);'); element.setAttribute('onclick', 'return product_panel_title_edit(\'' + catn + '\', this);');
}; };
};
product_response_success(data, status); product_response_success(data, status, xhr);
}, },
error: product_response_error error: product_response_error
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_catn_edit(catn, element, redirect = false) { function product_panel_catn_edit(catn, element, redirect = false) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -57,10 +62,10 @@ function product_panel_catn_edit(catn, element, redirect = false) {
element.removeAttribute('onclick'); element.removeAttribute('onclick');
return false; return false;
} };
return true; return true;
} };
function product_panel_catn_save(catn, element, redirect = false) { function product_panel_catn_save(catn, element, redirect = false) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -81,25 +86,29 @@ function product_panel_catn_save(catn, element, redirect = false) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'text': text 'text': text
}, },
success: function (data, status) { success: function (data, status, xhr) {
if (data !== undefined) {
// Получены данные с сервера
// Заголовок // Заголовок
if (data.catn !== undefined && element !== null && element !== undefined) { if (data.catn !== undefined && element !== null && element !== undefined) {
if (redirect) { if (redirect) {
// Перенаправление // Перенаправление
history.pushState({}, '/product/' + catn, '/product/' + data.catn); history.pushState({}, '/product/' + catn, '/product/' + data.catn);
} };
};
}; };
product_response_success(data, status); product_response_success(data, status, xhr);
}, },
error: product_response_error error: product_response_error
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_dimensions_edit(catn, element, dimension) { function product_panel_dimensions_edit(catn, element, dimension) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -117,10 +126,10 @@ function product_panel_dimensions_edit(catn, element, dimension) {
product_panel_handler_save(product_panel_dimensions_save, catn, input, dimension); product_panel_handler_save(product_panel_dimensions_save, catn, input, dimension);
return false; return false;
} };
return true; return true;
} };
function product_panel_dimensions_save(catn, element, dimension) { function product_panel_dimensions_save(catn, element, dimension) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -135,7 +144,7 @@ function product_panel_dimensions_save(catn, element, dimension) {
if (text.length === 0) { if (text.length === 0) {
text = '0'; text = '0';
} };
span.innerText = text; span.innerText = text;
@ -150,7 +159,10 @@ function product_panel_dimensions_save(catn, element, dimension) {
'text': text, 'text': text,
'dimension': dimension 'dimension': dimension
}, },
success: function (data, status) { success: function (data, status, xhr) {
if (data !== undefined) {
// Получены данные с сервера
// Заголовок // Заголовок
if (data.dimension !== undefined && span !== null && span !== undefined) { if (data.dimension !== undefined && span !== null && span !== undefined) {
// Обновление заголовка // Обновление заголовка
@ -159,17 +171,18 @@ function product_panel_dimensions_save(catn, element, dimension) {
// Запись аттрибута // Запись аттрибута
span.setAttribute('onclick', 'return product_panel_dimensions_edit(\'' + catn + '\', this, \'' + dimension + '\');'); span.setAttribute('onclick', 'return product_panel_dimensions_edit(\'' + catn + '\', this, \'' + dimension + '\');');
}; };
};
product_response_success(data, status); product_response_success(data, status, xhr);
}, },
error: product_response_error error: product_response_error
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_weight_edit(catn, element) { function product_panel_weight_edit(catn, element) {
@ -188,10 +201,10 @@ function product_panel_weight_edit(catn, element) {
product_panel_handler_save(product_panel_weight_save, catn, input); product_panel_handler_save(product_panel_weight_save, catn, input);
return false; return false;
} };
return true; return true;
} };
function product_panel_weight_save(catn, element) { function product_panel_weight_save(catn, element) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -206,7 +219,7 @@ function product_panel_weight_save(catn, element) {
if (text.length === 0) { if (text.length === 0) {
text = '0'; text = '0';
} };
span.innerText = text; span.innerText = text;
@ -220,7 +233,10 @@ function product_panel_weight_save(catn, element) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'text': text 'text': text
}, },
success: function (data, status) { success: function (data, status, xhr) {
if (data !== undefined) {
// Получены данные с сервера
// Заголовок // Заголовок
if (data.weight !== undefined && span !== null && span !== undefined) { if (data.weight !== undefined && span !== null && span !== undefined) {
// Обновление заголовка // Обновление заголовка
@ -229,17 +245,18 @@ function product_panel_weight_save(catn, element) {
// Запись аттрибута // Запись аттрибута
span.setAttribute('onclick', 'return product_panel_weight_edit(\'' + catn + '\', this);'); span.setAttribute('onclick', 'return product_panel_weight_edit(\'' + catn + '\', this);');
}; };
};
product_response_success(data, status); product_response_success(data, status, xhr);
}, },
error: product_response_error error: product_response_error
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_description_edit(catn, element) { function product_panel_description_edit(catn, element) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -248,10 +265,10 @@ function product_panel_description_edit(catn, element) {
element.removeAttribute('onclick'); element.removeAttribute('onclick');
return false; return false;
} };
return true; return true;
} };
function product_panel_description_save(catn, element) { function product_panel_description_save(catn, element) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -272,7 +289,10 @@ function product_panel_description_save(catn, element) {
'_csrf': yii.getCsrfToken(), '_csrf': yii.getCsrfToken(),
'text': text 'text': text
}, },
success: function (data, status) { success: function (data, status, xhr) {
if (data !== undefined) {
// Получены данные с сервера
// Заголовок // Заголовок
if (data.description !== undefined && element !== null && element !== undefined) { if (data.description !== undefined && element !== null && element !== undefined) {
// Обновление заголовка // Обновление заголовка
@ -281,17 +301,18 @@ function product_panel_description_save(catn, element) {
// Запись аттрибута // Запись аттрибута
element.setAttribute('onclick', 'return product_panel_description_edit(\'' + catn + '\', this);'); element.setAttribute('onclick', 'return product_panel_description_edit(\'' + catn + '\', this);');
}; };
};
product_response_success(data, status); product_response_success(data, status, xhr);
}, },
error: product_response_error error: product_response_error
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_images_write(catn, element) { function product_panel_images_write(catn, element) {
if (catn !== null && catn !== undefined && element !== null && element !== undefined) { if (catn !== null && catn !== undefined && element !== null && element !== undefined) {
@ -301,7 +322,7 @@ function product_panel_images_write(catn, element) {
data.append('_csrf', yii.getCsrfToken()); data.append('_csrf', yii.getCsrfToken());
for (i = 0; i < element.files.length; i++) { for (i = 0; i < element.files.length; i++) {
data.append('images[' + i + ']', element.files[i]); data.append('images[' + i + ']', element.files[i]);
} };
$.ajax({ $.ajax({
url: '/product/' + catn + '/write/image', url: '/product/' + catn + '/write/image',
@ -315,10 +336,10 @@ function product_panel_images_write(catn, element) {
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_images_delete(catn, index) { function product_panel_images_delete(catn, index) {
if (catn !== null && catn !== undefined && index !== null && index !== undefined) { if (catn !== null && catn !== undefined && index !== null && index !== undefined) {
@ -335,10 +356,10 @@ function product_panel_images_delete(catn, index) {
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_images_cover_write(catn, index) { function product_panel_images_cover_write(catn, index) {
if (catn !== null && catn !== undefined && index !== null && index !== undefined) { if (catn !== null && catn !== undefined && index !== null && index !== undefined) {
@ -355,10 +376,10 @@ function product_panel_images_cover_write(catn, index) {
}); });
return false; return false;
} };
return true; return true;
} };
function product_panel_handler_save(save, catn, element, ...vars) { function product_panel_handler_save(save, catn, element, ...vars) {
if (save !== undefined && save !== null) { if (save !== undefined && save !== null) {
@ -366,9 +387,9 @@ function product_panel_handler_save(save, catn, element, ...vars) {
if (event.target.id !== element.id) { if (event.target.id !== element.id) {
save(catn, element, ...vars); save(catn, element, ...vars);
document.body.removeEventListener('click', product_panel_handler_save_function, true); document.body.removeEventListener('click', product_panel_handler_save_function, true);
} };
} };
document.body.addEventListener('click', product_panel_handler_save_function, true); document.body.addEventListener('click', product_panel_handler_save_function, true);
} };
} };

View File

@ -6,14 +6,14 @@ function page_profile_supplies(form, panel) {
if (panel !== undefined) { if (panel !== undefined) {
form.panel = panel; form.panel = panel;
} };
} else { } else {
form = new FormData(form); form = new FormData(form);
if (panel !== undefined) { if (panel !== undefined) {
form.append('panel', panel); form.append('panel', panel);
} };
} };
$.ajax({ $.ajax({
url: '/profile/supplies', url: '/profile/supplies',
@ -25,7 +25,7 @@ function page_profile_supplies(form, panel) {
}); });
return false; return false;
} };
function page_profile_supplies_import_excel(form, panel) { function page_profile_supplies_import_excel(form, panel) {
if (form === undefined) { if (form === undefined) {
@ -35,14 +35,14 @@ function page_profile_supplies_import_excel(form, panel) {
if (panel !== undefined) { if (panel !== undefined) {
form.panel = panel; form.panel = panel;
} };
} else { } else {
form = new FormData(form); form = new FormData(form);
if (panel !== undefined) { if (panel !== undefined) {
form.append('panel', panel); form.append('panel', panel);
} };
} };
$.ajax({ $.ajax({
url: '/profile/import', url: '/profile/import',
@ -66,7 +66,7 @@ function page_profile_settings(form, panel) {
if (panel !== undefined) { if (panel !== undefined) {
form.panel = panel; form.panel = panel;
} };
} else { } else {
form = $(form).serializeArray(); form = $(form).serializeArray();
@ -74,7 +74,7 @@ function page_profile_settings(form, panel) {
name: "panel", name: "panel",
value: panel value: panel
}); });
} };
$.ajax({ $.ajax({
url: '/profile', url: '/profile',
@ -89,7 +89,7 @@ function page_profile_settings(form, panel) {
initDropdownOem(); initDropdownOem();
return false; return false;
} };
function page_profile_monitoring(change = 1, panel) { function page_profile_monitoring(change = 1, panel) {
// Инициализация // Инициализация
@ -100,7 +100,7 @@ function page_profile_monitoring(change = 1, panel) {
search = 1; search = 1;
} else { } else {
search = +search + change; search = +search + change;
} };
// Предобработка // Предобработка
url.searchParams.set('search', search); url.searchParams.set('search', search);
@ -132,45 +132,34 @@ function page_profile_monitoring(change = 1, panel) {
return false; return false;
}; };
function page_profile_response_success(data, status) {
function page_profile_response(data, status, xhr) {
// Обработка ответов
main_response(data, status, xhr);
};
function page_profile_response_success(data, status, xhr) {
// Обработка ответов от удавшихся запросов
if (data !== undefined) {
// Получены данные с сервера
// Активная панель // Активная панель
if (data.panel_selected !== undefined) { if (data.panel_selected !== undefined) {
// Активация // Активация
document.getElementById(data.panel_selected).click() document.getElementById(data.panel_selected).click();
} };
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
page_profile_response(data, status);
}; };
function page_profile_response_error(data, status) { page_profile_response(data, status, xhr);
};
function page_profile_response_error(data, status, xhr) {
// Обработка ответов от неудавшихся запросов
// Инициализация // Инициализация
data = data.responseJSON; data = data.responseJSON;
page_profile_response(data, status); page_profile_response(data, status, xhr);
}; };
function page_profile_response(data, status) {
// Основной блок
if (data.main !== undefined) {
// Инициализация
main = document.getElementsByTagName('main')[0];
// Обновление окна результатов поиска
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
}

View File

@ -4,8 +4,8 @@ function initDropdown(id) {
if (dropdown !== null && dropdown.length > 1) { if (dropdown !== null && dropdown.length > 1) {
dropdown.children[0].hidden = true; dropdown.children[0].hidden = true;
} };
} };
initDropdown('account-opts-import_sections_oem'); initDropdown('account-opts-import_sections_oem');
initDropdown('account-opts-delivery_from_terminal'); initDropdown('account-opts-delivery_from_terminal');

View File

@ -11,10 +11,10 @@ function page_profile_panel_notification_create(form, html = 0) {
name: 'Notification[html]', name: 'Notification[html]',
value: html value: html
}); });
} };
return page_profile_panel_write(form); return page_profile_panel_write(form);
} };
function page_profile_panel_settings(form, panel) { function page_profile_panel_settings(form, panel) {
if (form == undefined) { if (form == undefined) {
@ -24,7 +24,7 @@ function page_profile_panel_settings(form, panel) {
if (panel !== undefined) { if (panel !== undefined) {
form.panel = panel; form.panel = panel;
} };
} else { } else {
form = $(form).serializeArray(); form = $(form).serializeArray();
@ -32,10 +32,10 @@ function page_profile_panel_settings(form, panel) {
name: "panel", name: "panel",
value: panel value: panel
}); });
} };
return page_profile_panel_write(form); return page_profile_panel_write(form);
} };
function page_profile_panel_write (form) { function page_profile_panel_write (form) {
$.ajax({ $.ajax({
@ -48,4 +48,4 @@ function page_profile_panel_write (form) {
}); });
return false; return false;
} };

View File

@ -2,6 +2,8 @@ function reinitialization(target) {
// Уничтожает все внешние файлы загруженные внутри блока с переданным ID и загружает их в <head> и <body> // Уничтожает все внешние файлы загруженные внутри блока с переданным ID и загружает их в <head> и <body>
if (target !== undefined) { if (target !== undefined) {
// Цель обозначена
let links = target.getElementsByTagName('link'); let links = target.getElementsByTagName('link');
let scripts = target.getElementsByTagName('script'); let scripts = target.getElementsByTagName('script');
@ -12,7 +14,7 @@ function reinitialization(target) {
new_link.rel = "stylesheet"; new_link.rel = "stylesheet";
document.getElementsByTagName("head")[0].appendChild(new_link); document.getElementsByTagName("head")[0].appendChild(new_link);
link.remove(); link.remove();
} };
// Запись JS // Запись JS
for (script of scripts) { for (script of scripts) {
@ -22,13 +24,13 @@ function reinitialization(target) {
document.getElementsByTagName("body")[0].appendChild(new_script); document.getElementsByTagName("body")[0].appendChild(new_script);
} else { } else {
eval(script.innerText); eval(script.innerText);
} };
// script.remove(); По каким-то причинам не работает, надо бы доделать // script.remove(); По каким-то причинам не работает, надо бы доделать
} };
return true; return true;
} };
return false; return false;
}; };

View File

@ -12,19 +12,19 @@ function product_search(text = '', advanced = 0) {
'advanced': advanced, 'advanced': advanced,
'request': text 'request': text
}, },
success: function (data, status) { success: function (data, statu, xhrs) {
search_panel_success(text, advanced, data, status); search_panel_success(text, advanced, data, status, xhr);
}, },
error: function (data, status) { error: function (data, status) {
search_panel_error(text, advanced, data, status); search_panel_error(text, advanced, data, status, xhr);
}, },
statusCode: search_panel_statusCode() statusCode: search_panel_statusCode
}); });
} else { } else {
// Показ истории поиска // Показ истории поиска
product_search_history(); product_search_history();
} };
}; };
function product_search_history(text = '', advanced = 0) { function product_search_history(text = '', advanced = 0) {
@ -38,14 +38,14 @@ function product_search_history(text = '', advanced = 0) {
'history': true 'history': true
}, },
success: function (data, status) { success: function (data, status) {
search_panel_success(text, advanced, data, status); search_panel_success(text, advanced, data, status, xhr);
}, },
error: function (data, status) { error: function (data, status) {
search_panel_error(text, advanced, data, status); search_panel_error(text, advanced, data, status, xhr);
}, },
statusCode: search_panel_statusCode() statusCode: search_panel_statusCode
}); });
} };
function search_panel_show(line = 'search_line', panel = 'search_line_window') { function search_panel_show(line = 'search_line', panel = 'search_line_window') {
// Показ панели поиска // Показ панели поиска
@ -55,7 +55,7 @@ function search_panel_show(line = 'search_line', panel = 'search_line_window') {
// Открытие // Открытие
$('#' + line).dropdown('show'); $('#' + line).dropdown('show');
} };
function search_panel_hide(line = 'search_line', panel = 'search_line_window') { function search_panel_hide(line = 'search_line', panel = 'search_line_window') {
// Сокрытие панели поиска // Сокрытие панели поиска
@ -65,21 +65,12 @@ function search_panel_hide(line = 'search_line', panel = 'search_line_window') {
// Деактивация // Деактивация
document.getElementById(panel).style.display = 'none'; document.getElementById(panel).style.display = 'none';
} };
function search_panel_success(text, advanced, data, status) { function search_panel_response(text, advanced, data, status, xhr) {
// Обработка ответов от удавшихся запросов
// Основной блок if (data !== undefined) {
if (data.main !== undefined) { // Получены данные с сервера
main = document.getElementsByTagName('main')[0];
// Обновление документа
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
// Окно поиска // Окно поиска
if (data.panel !== undefined) { if (data.panel !== undefined) {
@ -93,7 +84,7 @@ function search_panel_success(text, advanced, data, status) {
// Реинициализация // Реинициализация
reinitialization(panel); reinitialization(panel);
} };
// Таймер для повтора запроса // Таймер для повтора запроса
if (data.timer !== undefined) { if (data.timer !== undefined) {
@ -107,106 +98,48 @@ function search_panel_success(text, advanced, data, status) {
// Запрос // Запрос
setTimeout(product_search, data.timer + '000', text, advanced); setTimeout(product_search, data.timer + '000', text, advanced);
} };
} };
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
if (data.responseJSON.hide === 1) {
}
// Сокрытие окна поиска // Сокрытие окна поиска
if (data.search_line_window_hide === 1) { if (data.search_line_window_hide === 1) {
search_panel_hide(); search_panel_hide();
};
};
main_response(data, status, xhr);
} }
// CSRF-токен function search_panel_success(text, advanced, data, status, xhr) {
if (data._csrf !== undefined) { // Обработка ответов от удавшихся запросов
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf); search_panel_response(text, advanced, data, status, xhr);
} };
}
function search_panel_error(text, advanced, data, status) { function search_panel_error(text, advanced, data, status) {
// Обработка ответов от неудавшихся запросов // Обработка ответов от неудавшихся запросов
// Основной блок // Инициализация
if (data.responseJSON.main !== undefined) { data = data.responseJSON;
main = document.getElementsByTagName('main')[0];
// Обновление окна результатов поиска search_panel_response(text, advanced, data, status, xhr);
main.innerHTML = data.main; };
// Реинициализация
reinitialization(main);
}
// Окно поиска
if (data.responseJSON.panel !== undefined) {
panel = document.getElementById('search_line_window');
// Обновление окна результатов поиска
panel.innerHTML = data.responseJSON.panel;
// Отображение окна (потом надо переделать)
$('#search_line').dropdown('show');
// Реинициализация
reinitialization(panel);
}
// Перенаправление
if (data.responseJSON.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.responseJSON.redirect);
}
// Таймер для повтора запроса
if (data.responseJSON.timer !== undefined) {
// Ожидание перед повторным запросом
if (getCookie('search') !== 'processing') {
// На данный момент нет других запросов поиска
// Запись о существовании запроса
search_panel_statusCode_progress();
// Запрос
setTimeout(product_search, data.responseJSON.timer + '000', text, advanced);
}
}
// Сокрытие окна поиска
if (data.responseJSON.hide === 1) {
search_panel_hide();
}
// CSRF-токен
if (data.responseJSON._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data.responseJSON._csrf);
}
}
function search_panel_statusCode() { function search_panel_statusCode() {
return { return {
200: search_panel_statusCode_waiting, 200: search_panel_statusCode_waiting,
404: search_panel_statusCode_waiting, 404: search_panel_statusCode_waiting,
}; };
} };
function search_panel_statusCode_waiting() { function search_panel_statusCode_waiting() {
// Ожидание нового запроса // Ожидание нового запроса
document.cookie = "search=waiting; path=/"; document.cookie = "search=waiting; path=/";
document.body.style.cursor = "unset"; document.body.style.cursor = "unset";
} };
function search_panel_statusCode_progress() { function search_panel_statusCode_progress() {
// Выполнение запроса // Выполнение запроса
document.cookie = "search=processing; path=/"; document.cookie = "search=processing; path=/";
document.body.style.cursor = "progress"; document.body.style.cursor = "progress";
} };

View File

@ -0,0 +1,20 @@
function writeInDevelopment(target) {
// Инициализация буфера
let buffer = target.innerText;
// Запись текста
target.innerText = target.innerText + ' (в разработке)';
// Блокировка от повторного вызова
target.setAttribute('onclick', 'return false;');
setTimeout(function () {
// Возврат изначального текста из буфера
target.innerText = buffer;
// Разблокировка
target.setAttribute('onclick', 'return writeinDevelopment(this);');
}, 3000);
return false;
};

View File

@ -9,19 +9,19 @@ function initTextarea(textarea_id, counter_current_id, counter_maximum_id, disab
if (characterCount < 70) { if (characterCount < 70) {
current.css('color', '#343a40'); current.css('color', '#343a40');
} };
if (characterCount > 160 && characterCount < 179) { if (characterCount > 160 && characterCount < 179) {
current.css('color', '#600000'); current.css('color', '#600000');
} };
if (characterCount > 180 && characterCount < 209) { if (characterCount > 180 && characterCount < 209) {
current.css('color', '#700000'); current.css('color', '#700000');
} };
if (characterCount > 210 && characterCount < 249) { if (characterCount > 210 && characterCount < 249) {
current.css('color', '#c00'); current.css('color', '#c00');
} };
if (characterCount > 250 && characterCount < 299) { if (characterCount > 250 && characterCount < 299) {
current.css('color', '#d00'); current.css('color', '#d00');
} };
if (characterCount > 300) { if (characterCount > 300) {
disable_callable(); disable_callable();
@ -31,10 +31,10 @@ function initTextarea(textarea_id, counter_current_id, counter_maximum_id, disab
current.css('color', '#e00'); current.css('color', '#e00');
} else { } else {
maximum.css('color', 'rgb(210, 0, 0)'); maximum.css('color', 'rgb(210, 0, 0)');
} };
} else { } else {
maximum.css('color', '#343a40'); maximum.css('color', '#343a40');
enable_callable(); enable_callable();
} };
}); });
} };

View File

@ -1,7 +1,7 @@
function tickerInit(target) { function tickerInit(target) {
if (target === undefined) { if (target === undefined) {
target = $('.ticker'); target = $('.ticker');
} };
target.bxSlider({ target.bxSlider({
ticker: true, ticker: true,

View File

@ -1,23 +1,25 @@
function url_var_insert(key, value) function url_var_insert(key, value) {
{ let key = encodeURI(key); value = encodeURI(value);
key = encodeURI(key); value = encodeURI(value);
var kvp = document.location.search.substr(1).split('&'); kvp = document.location.search.substr(1).split('&');
var i=kvp.length; var x; while(i--) let i = kvp.length;
{ let x;
while (i--) {
x = kvp[i].split('='); x = kvp[i].split('=');
if (x[0]==key) if (x[0] == key) {
{
x[1] = value; x[1] = value;
kvp[i] = x.join('='); kvp[i] = x.join('=');
break; break;
} };
} };
if(i<0) {kvp[kvp.length] = [key,value].join('=');} if (i < 0) {
kvp[kvp.length] = [key, value].join('=');
};
// this will reload the page, it's likely better to store this until finished // this will reload the page, it's likely better to store this until finished
document.location.search = kvp.join('&'); document.location.search = kvp.join('&');
} };

View File

@ -13,47 +13,26 @@
}); });
return false; return false;
} };
function verify_response(data, status) { function verify_response(data, status, xhr) {
// Обработка ответов // Обработка ответов
// Основной блок main_response(data, status, xhr);
if (data.main !== undefined) { };
main = document.getElementsByTagName('main')[0];
// Обновление документа function verify_response_success(data, status, xhr) {
main.innerHTML = data.main;
// Реинициализация
reinitialization(main);
}
// Перенаправление
if (data.redirect !== undefined) {
// Перенаправление
history.pushState({}, document.title, data.redirect);
}
// CSRF-токен
if (data._csrf !== undefined) {
// Обновление документа
$('meta[name=csrf-token]').prop("content", data._csrf);
}
}
function verify_response_success(data, status) {
// Обработка ответов от удавшихся запросов // Обработка ответов от удавшихся запросов
verify_response(data, status); verify_response(data, status, xhr);
} };
function verify_response_error(data, status) { function verify_response_error(data, status, xhr) {
// Обработка ответов от неудавшихся запросов // Обработка ответов от неудавшихся запросов
// Инициализвация // Инициализвация
data = data.responseJSON; data = data.responseJSON;
verify_response(data, status); verify_response(data, status, xhr);
} };