Joywork/settings.php

5615 lines
439 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
$start = microtime(true);
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
if (!$_SESSION['id']) {
header("location:index.php");
die("Доступ запрещён!");
}
/**
* Models
*/
$user = new User;
$complexStatus = new ComplexStatus;
if ($_POST['change_pwd']) {
$post = clearInputData($_POST);
$msg = $user->change_pwd($post);
if ($msg) $_GET['success2'] = $_GET['success3'] = $_GET['success'] = "";
}
if ($_POST['ok_settings']) {
$msg2 = $user->edit($_POST);
if ($msg2) $_GET['success2'] = $_GET['success3'] = $_GET['success'] = "";
}
if ($_POST['ok_vk']) {
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
$msg2 = $user->edit_vk($_POST);
if ($msg2) $_GET['success2'] = $_GET['success3'] = $_GET['success'] = "";
}
if ($_POST['ok_zipal']) {
$msg2 = $user->edit_zipal($_POST);
if ($msg2) $_GET['success2'] = $_GET['success3'] = $_GET['success'] = "";
}
/** WebAppRaiser section ************/
require_once($_SERVER["DOCUMENT_ROOT"]."/engine/classes/WebAppRaiser/autoload.php");
function dpm($data) {
return '<pre style="width:1080px;margin:0 auto;">'.print_r($data, true).'</pre>';
}
$WebAppRaiserPage = array(
'title'=> 'Интеграция ВебОценщик',
'status'=> 'success',
'msg'=> [],
'content'=> '',
'destination' => '',
);
if(isset($_POST['form_id'])) {
$post = clearInputData($_POST);
if(!empty($post['form_id'])){
$WebAppRaiserAPI = new WebAppRaiserAPI($user);
$form = WebAppRaiserForm::getForm($post['form_id']);
$status = $form->validate();
$form->submit($status, $WebAppRaiserPage, $WebAppRaiserAPI);
}
}
/** WebAppRaiser section end ************/
if ($_POST['ok_jcat']) {
$msg2 = $user->edit_jcat($_POST);
if ($msg2) $_GET['success2'] = $_GET['success3'] = $_GET['success'] = "";
}
if ($_POST['settings_email']) {
$msg_se = $user->settings_email();
if ($msg_se) $_GET['success2'] = $_GET['success3'] = $_GET['success'] = "";
}
require($_SERVER['DOCUMENT_ROOT'] . "/templates/new-header.php");
$agenciesHaveAccessToNewComplexes = [4, 12028, 12061, 17328, 11325, 13735, 19093, 16378, 19467, 20197, 19909, 19646];
$show_settings_blocks = false;
if ($user->agency || $user->users_admin || $_SESSION['individual']) {
$show_settings_blocks = true;
}
$menuPermissions = $user->checkMenuPermissions();
$mounthArrray = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
?>
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet">
<!-- styles -->
<link href="/css/jquery.fileuploader.css?version=3" media="all" rel="stylesheet">
<link href="/css/jquery-ui.css" media="all" rel="stylesheet">
<!-- js -->
<script src="/js/jquery.fileuploader.js" type="text/javascript"></script>
<script src="/js/custom-logo.js?version=7" type="text/javascript"></script>
<script type="text/javascript" src="/js/userPresentation.js"></script>
<script src="/js/locale/translations/ru.js"></script>
<script type="text/javascript" src="/js/vuejs-datepicker.min.js"></script>
<script type="text/javascript" src="/js/vue-multiselect.min.js"></script>
<link rel="stylesheet" href="/css/vue-multiselect.min.css">
<link rel="stylesheet" href="/css/all.min.css">
<link rel="stylesheet" href="/css/lw-settings.css">
<script src="/js/locale/translations/ru.js"></script>
<script src="/js/lw-settings.js"></script>
<style>
.color-indicator {
width: 20px;
height: 20px;
border-radius: 50%;
}
.color-item {
cursor: pointer;
width: 32px;
height: 32px;
border-radius: 50%;
}
.custom-color {
-webkit-appearance: none;
border: none !important;
width: 100% !important;
height: 100% !important;
padding: 0 !important;
position: absolute !important;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
opacity: 0 !important;
cursor: pointer !important;
}
.custom-color::-webkit-color-swatch-wrapper {
padding: 0 !important;
}
.custom-color::-webkit-color-swatch {
border: none !important;
border-radius: 50%;
}
.form-label {
width: 100% !important;
padding: 10px 0 !important;
}
.reservation_extension_block {
background: #ffffff;
}
.reservation_extension-enter-active {
overflow: hidden;
animation: allow_reservation 1s;
}
.reservation_extension-leave-active {
overflow: hidden;
animation: allow_reservation 1s reverse;
}
@keyframes allow_reservation {
from {
height: 0;
}
to {
height: 576px;
}
}
</style>
<div class="content-right fr__settings">
<div class="inner">
<div class="main-title">
<h1>Настройки</h1>
</div>
<?php
if ($msg)
echo '<div class="error_msg">' . $msg . '</div>';
if ($_GET['success'])
echo '<div class="success_msg">Пароль успешно изменён</div>';
if ($msg2)
echo '<div class="error_msg">' . $msg2 . '</div>';
if ($_GET['success2'])
echo '<div class="success_msg">Настройки сохранены</div>';
if ($msg_se)
echo '<div class="error_msg">' . $msg_se . '</div>';
if ($_GET['success3'])
echo '<div class="success_msg">Тестовое письмо на почту ' . $user->email . ' успешно отправлено</div>';
$tarif = new Tarif;
if ($user->id_manager) {
$agency = new User;
$departmentClass = new Department;
$departmentUser = $departmentClass->getDepartment($_SESSION['id']);
$thisIdManager = $user->id_manager;
if ($departmentUser['role'] == 'manager_office_menager' || $departmentUser['role'] == 'agent') {
if ($departmentUser['admin'] > 0) {
$thisIdManager = $departmentUser['admin'];
}
}
$agency->get($thisIdManager);
if ($agency->id_manager) $agency->get($agency->id_manager);
$id_tarif = $agency->id_tarif;
$date_tarif = $agency->date_tarif;
} else {
$id_tarif = $user->id_tarif;
$date_tarif = $user->date_tarif;
}
$tarif->get($id_tarif);
$date_tarif = strtotime($date_tarif);
$date_end = $date_tarif + $tarif->period * 3600 * 24;
$date_end_f = date("d.m.Y H:i", $date_end);
$dney = ceil(($date_end - time()) / 24 / 3600);
if ($dney < 0)
$dney = 0;
$color = "color:red;";
if ($dney == -0)
$dney = 0;
if ($_SESSION['pay'])
$color = "color:red;";
?>
<div class="jw__settings__inner">
<div class="tarifs">
<div class="tarif <?php if (!$user->id_manager) echo "big-tarif";
else echo "big-tarif__all"; ?>">
<div class="inner">
<div class="top">
<h2>Тариф</h2>
</div>
<div class="center">
<h3><?php echo $tarif->nazv; ?></h3>
<div class="tarif_row">
<div>
<h2 class="tarif__left">Осталось</h2>
<p><b class="big"><? echo $dney . " " . padezh_day($dney); ?></b></p>
</div>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
</div>
<?php if (!$user->id_manager) { ?>
<div class="pay">
<div class="top">
<h2>Оплата</h2>
</div>
<h4>
<?php
$date_b = date("d.m.Y", time() + $tarif->period * 24 * 3600);
echo $tarif->cena . " руб. на " . $tarif->period . " дней<br> до $date_b";
?>
</h4>
<form action='https://merchant.roboxchange.com/Index.aspx' method='POST'>
<button class="top-line__button button-fl-left pay_btn" data-id="<?php echo $tarif->id; ?>">Оплатить</button>
</form>
<div style="display:inline-block; margin:10px;"></div>
</div>
<?php } ?>
<div class="clear"></div>
</div>
</div>
</div>
<div class="lw-settings-block">
<!-- header start -->
<div class="lw-settings-block__header">
<!-- header tabs start -->
<div class="lw-settings-block__tabs">
<div class="lw-section-block__tabs-item lw-active" data-tab-id="1">
<div class="lw-section-block__tabs-item-header">
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18 22.5C20.4854 22.5 22.5 20.4854 22.5 18C22.5 15.5146 20.4854 13.5 18 13.5C15.5146 13.5 13.5 15.5146 13.5 18C13.5 20.4854 15.5146 22.5 18 22.5Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M3 19.3198V16.6798C3 15.1198 4.275 13.8299 5.85 13.8299C8.565 13.8299 9.675 11.9099 8.31 9.5549C7.53 8.2049 7.995 6.4499 9.36 5.6699L11.955 4.1849C13.14 3.4799 14.67 3.8999 15.375 5.0849L15.54 5.3699C16.89 7.7249 19.11 7.7249 20.475 5.3699L20.64 5.0849C21.345 3.8999 22.875 3.4799 24.06 4.1849L26.655 5.6699C28.02 6.4499 28.485 8.2049 27.705 9.5549C26.34 11.9099 27.45 13.8299 30.165 13.8299C31.725 13.8299 33.015 15.1048 33.015 16.6798V19.3198C33.015 20.8798 31.74 22.1698 30.165 22.1698C27.45 22.1698 26.34 24.0898 27.705 26.4448C28.485 27.8098 28.02 29.5498 26.655 30.3298L24.06 31.8148C22.875 32.5198 21.345 32.0998 20.64 30.9148L20.475 30.6298C19.125 28.2748 16.905 28.2748 15.54 30.6298L15.375 30.9148C14.67 32.0998 13.14 32.5198 11.955 31.8148L9.36 30.3298C7.995 29.5498 7.53 27.7948 8.31 26.4448C9.675 24.0898 8.565 22.1698 5.85 22.1698C4.275 22.1698 3 20.8798 3 19.3198Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<span>1</span>
</div>
<span>Основные настройки</span>
<small>Настройте личные данные</small>
</div>
<div class="lw-section-block__tabs-item" data-tab-id="2">
<div class="lw-section-block__tabs-item-header">
<svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.333 33H8.33301C5.33301 33 3.83301 31.5 3.83301 28.5V16.5C3.83301 13.5 5.33301 12 8.33301 12H15.833V28.5C15.833 31.5 17.333 33 20.333 33Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M15.998 6C15.878 6.45 15.833 6.945 15.833 7.5V12H8.33301V9C8.33301 7.35 9.68301 6 11.333 6H15.998Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M21.833 12V19.5" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M27.833 12V19.5" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M26.333 25.5H23.333C22.508 25.5 21.833 26.175 21.833 27V33H27.833V27C27.833 26.175 27.158 25.5 26.333 25.5Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M9.83301 19.5V25.5" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M15.833 28.5V7.5C15.833 4.5 17.333 3 20.333 3H29.333C32.333 3 33.833 4.5 33.833 7.5V28.5C33.833 31.5 32.333 33 29.333 33H20.333C17.333 33 15.833 31.5 15.833 28.5Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<span>2</span>
</div>
<span>Настройки рекламы объектов</span>
<small>Настройте рекламу на Авито, Циан, Яндекс и других классифайдах</small>
</div>
<div class="lw-section-block__tabs-item" data-tab-id="3">
<div class="lw-section-block__tabs-item-header">
<svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.7666 3.14996H28.5666C30.2166 3.14996 31.5666 4.49996 31.5666 6.14996V9.44996C31.5666 10.65 30.8166 12.15 30.0666 12.9L23.6166 18.6C22.7166 19.35 22.1166 20.85 22.1166 22.05V28.5C22.1166 29.4 21.5166 30.6 20.7666 31.05L18.6666 32.4C16.7166 33.6 14.0166 32.25 14.0166 29.85V21.9C14.0166 20.85 13.4166 19.5 12.8166 18.75L7.1166 12.75C6.3666 12 5.7666 10.65 5.7666 9.74996V6.29996C5.7666 4.49996 7.1166 3.14996 8.7666 3.14996Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M17.062 3.14996L9.66699 15" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<span>3</span>
</div>
<span>Настройте бизнес процессы компании</span>
<small>Воронки продаж</small>
</div>
<div class="lw-section-block__tabs-item" data-tab-id="4">
<div class="lw-section-block__tabs-item-header">
<svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.25 33V22.5" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M10.25 7.5V3" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M26.75 33V28.5" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M26.75 13.5V3" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M14.75 10.5V19.5C14.75 21.15 14 22.5 11.75 22.5H8.75C6.5 22.5 5.75 21.15 5.75 19.5V10.5C5.75 8.85 6.5 7.5 8.75 7.5H11.75C14 7.5 14.75 8.85 14.75 10.5Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M31.25 16.5V25.5C31.25 27.15 30.5 28.5 28.25 28.5H25.25C23 28.5 22.25 27.15 22.25 25.5V16.5C22.25 14.85 23 13.5 25.25 13.5H28.25C30.5 13.5 31.25 14.85 31.25 16.5Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<span>4</span>
</div>
<span>Конфигурация</span>
<small>Конфигурируйте систему под себя</small>
</div>
<div class="lw-section-block__tabs-item" data-tab-id="5">
<div class="lw-section-block__tabs-item-header">
<svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.83301 15H10.833C13.833 15 15.333 13.5 15.333 10.5V7.5C15.333 4.5 13.833 3 10.833 3H7.83301C4.83301 3 3.33301 4.5 3.33301 7.5V10.5C3.33301 13.5 4.83301 15 7.83301 15Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M25.833 15H28.833C31.833 15 33.333 13.5 33.333 10.5V7.5C33.333 4.5 31.833 3 28.833 3H25.833C22.833 3 21.333 4.5 21.333 7.5V10.5C21.333 13.5 22.833 15 25.833 15Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M25.833 33H28.833C31.833 33 33.333 31.5 33.333 28.5V25.5C33.333 22.5 31.833 21 28.833 21H25.833C22.833 21 21.333 22.5 21.333 25.5V28.5C21.333 31.5 22.833 33 25.833 33Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.83301 33H10.833C13.833 33 15.333 31.5 15.333 28.5V25.5C15.333 22.5 13.833 21 10.833 21H7.83301C4.83301 21 3.33301 22.5 3.33301 25.5V28.5C3.33301 31.5 4.83301 33 7.83301 33Z" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<span>5</span>
</div>
<span>Дополнительные сервисы</span>
<small>Настройте дополнительные возможности JoyWork</small>
</div>
<div class="lw-section-block__tabs-item" data-tab-id="6">
<div class="lw-section-block__tabs-item-header">
<svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.66602 13.5V24" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
<path d="M8.04102 12.75C10.7334 12.75 12.916 10.5674 12.916 7.875C12.916 5.18261 10.7334 3 8.04102 3C5.34862 3 3.16602 5.18261 3.16602 7.875C3.16602 10.5674 5.34862 12.75 8.04102 12.75Z" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.66602 33C10.1513 33 12.166 30.9854 12.166 28.5C12.166 26.0146 10.1513 24 7.66602 24C5.18074 24 3.16602 26.0146 3.16602 28.5C3.16602 30.9854 5.18074 33 7.66602 33Z" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
<path d="M28.666 33C31.1514 33 33.166 30.9854 33.166 28.5C33.166 26.0146 31.1514 24 28.666 24C26.1807 24 24.166 26.0146 24.166 28.5C24.166 30.9854 26.1807 33 28.666 33Z" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.86133 13.5C8.53633 16.125 10.9363 18.075 13.7713 18.06L18.9163 18.045C22.8463 18.03 26.1913 20.55 27.4213 24.06" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<span>6</span>
</div>
<span>Интеграции</span>
</div>
</div>
<!-- header tabs end -->
</div>
<!-- header end -->
<!-- content start -->
<div class="lw-settings-block__content">
<!-- data-section-id="1" start -->
<div class="lw-settings-block__content-section lw-active" data-section-id="1">
<div class="lw-settings-block__content-section-side">
<ul>
<li class="lw-active" data-anchor="1">
<a href="#">Основные данные</a>
</li>
<li data-anchor="2">
<a href="#">Логотип компании/Ваше фото/Водяной знак на фото</a>
</li>
<li data-anchor="3">
<a href="#">Настройки отправлений</a>
</li>
<?php if ($user->is_pwd) { ?>
<li data-anchor="4">
<a href="#">Пароль</a>
</li>
<?php } ?>
</ul>
</div>
<div class="lw-settings-block__content-section-main">
<!-- основные настройки -->
<div class="lw-settings-block__section" data-section-content="1" data-anchor-dest="1">
<h2>Основные данные</h2>
<form method="post">
<div class="fieldset">
<label>
<span>E-Mail</span>
<input type="text" required name="email" value="<?php echo $user->email; ?>" class="text">
</label>
<?php if ($_SESSION['agency'] || $user->role_developer) : ?>
<label>
<span><?php if ($_SESSION['agency'] || $user->role_developer) echo "Название агентства";
else echo "ФИО"; ?></span>
<input type="text" name="agency_name" value="<?php echo $user->agency_name; ?>" class="text">
</label>
<?php else : ?>
<label>
<span>Фамилия</span>
<input name="last_name" type="text" class="text" required value="<?php echo $user->last_name; ?>">
</label>
<label>
<span>Имя</span>
<input name="first_name" type="text" class="text" required value="<?php echo $user->first_name; ?>">
</label>
<label>
<span>Отчество</span>
<input name="middle_name" type="text" class="text" value="<?php echo $user->middle_name; ?>">
</label>
<?php endif; ?>
<?php if ($_SESSION['agency'] || $user->role_developer) : ?>
<label>
<span>Офисный телефон</span>
<input type="text" name="phoneAgency" value="<?php echo $user->phoneAgency; ?>" class="text">
</label>
<label>
<span>Адрес</span>
<input type="text" name="adres" value="<?php echo $user->adres; ?>" class="text">
</label>
<label>
<span>Фамилия руководителя</span>
<input name="last_name" type="text" class="text" required value="<?php echo $user->last_name; ?>">
</label>
<label>
<span>Имя руководителя</span>
<input name="first_name" type="text" class="text" required value="<?php echo $user->first_name; ?>">
</label>
<label>
<span>Отчество руководителя</span>
<input name="middle_name" type="text" class="text" value="<?php echo $user->middle_name; ?>">
</label>
<?php endif; ?>
<label>
<span>Телефон</span>
<input type="text" <?php if ($_SESSION['individual'] == 1) {
echo 'readonly';
} ?> required name="phone" value="<?php echo $user->phone; ?>" class="text phoneMask">
</label>
</div>
<div class="fieldset">
<label>
<span>ID виртуальной ATC<span style="display:inline-block;font-size:10px;color:#999">Для работы виджета звонков введите номер телефона или id из АТС</span></span>
<input type="text" name="vpbx_id" value="<?php echo $user->vpbx_id; ?>" class="text">
</label>
<!-- Токены -->
<?php
$tokens = array();
$apis = array();
$sql_token = "SELECT * FROM user_api_keys WHERE user_id in ({$user->id}, {$user->agencyId})";
$q_token = mysql_query($sql_token);
while ($r_token = mysql_fetch_assoc($q_token)) {
$tokens[$r_token['user_id']] = $r_token['api_key'];
if ($r_token['cian_id'] == 0) $r_token['cian_id'] = '';
if ($r_token['avito_id'] == 0) $r_token['avito_id'] = '';
$apis[$r_token['user_id']] = $r_token;
}
?>
<label>
<span>ID ЦИАН<span style="display:inline-block;font-size:10px;color:#999">Для получения сообщений с циан введите сюда ID пользователя ЦИАН</span></span>
<input type="text" name="cian_id" value="<?= (isset($apis[$user->id])) ? $apis[$user->id]['cian_id'] : '' ?>" class="text">
</label>
<label>
<span>ID АВИТО<span style="display:inline-block;font-size:10px;color:#999">Для получения сообщений с авито введите сюда Номер профиля Авито</span></span>
<input type="text" name="avito_id" value="<?= (isset($apis[$user->id])) ? $apis[$user->id]['avito_id'] : '' ?>" class="text">
</label>
<?php if ($_SESSION['agency'] or $_SESSION['individual']) { ?>
<label>
<span>Сайт</span>
<input type="text" name="site" value="<?php echo empty($user->site) ? "http://" : $user->site; ?>" class="text">
</label>
<label>
<span>Название сайта</span>
<input type="text" name="sitename" value="<?php echo empty($user->sitename) ? "www." : $user->sitename; ?>" class="text">
</label>
<?php } ?>
<label>
<span>Текст сообщения</span>
<textarea name="txt"><?php echo $user->txt; ?></textarea>
</label>
<label>
<span>Регион</span>
<select class="text" name="region" required>
<?php $region_rf = mysql_query("select * from rf_regions where parent = 0");
while ($dealType = mysql_fetch_assoc($region_rf)) { ?>
<option value="<?= $dealType['id'] ?>"
<?php if ($dealType['id'] == $user->region_rf_id) echo "selected"; ?>>
<?= $dealType['name'] ?>
</option>
<?php } ?>
</select>
</label>
<label>
<span>Токен пользователя</span>
<input type="text" readonly name="token" value="<?= (isset($tokens[$user->id])) ? $tokens[$user->id] : '' ?>" class="text">
</label>
<label>
<span>Токен агентства</span>
<input type="text" readonly name="token" value="<?= (isset($tokens[$user->agencyId])) ? $tokens[$user->agencyId] : '' ?>" class="text">
</label>
<label>
<span>Часовой пояс</span>
<select name="utc_edit" style="width:100px;">
<?php
$sql_utc = "SELECT * FROM `utc`";
$q_utc = mysql_query($sql_utc);
while ($r_utc = mysql_fetch_assoc($q_utc)) {
$name_utc = $r_utc['name'];
if ($r_utc['utc'] > 0) {
$name_utc .= " (UTC +" . $r_utc['utc'] . ")";
} else if ($r_utc['utc'] < 0) {
$name_utc .= " (UTC -" . $r_utc['utc'] . ")";
}
?>
<option value="<?= $r_utc['utc'] ?>" title="<?= $r_utc['opis'] ?>" <?= ($r_utc['utc'] == $user->gmtmsk + 3) ? 'selected' : '' ?>><?= $name_utc ?></option>
<?php } ?>
</select>
<?php if ($_SESSION['agency'] || $_SESSION['users_admin']) { ?>
<div class="checkbox">
<input type="checkbox" name="all_update_utc" id="all_update_utc" class="text" value="1">
<label for="all_update_utc">Сменить часовой пояс всему агентству<label>
</div>
<?php } ?>
</label>
<?php
$complex_access_sql = "SELECT menu_complexes FROM `user_permissions` WHERE user_id = " . (int)$_SESSION['id'];
$complex_access_res = mysql_query($complex_access_sql);
$complex_access = mysql_fetch_assoc($complex_access_res);
$has_complex_access = (int)$complex_access['menu_complexes'];
$selected_first_page = "SELECT jp.page_url FROM users
JOIN jw_pages jp ON users.jw_page_id = jp.id
WHERE users.id = " . $_SESSION['id'];
$selected_first_res = mysql_query($selected_first_page);
$user_first_page = mysql_fetch_assoc($selected_first_res);
$user_permissions_sql = "SELECT * FROM user_permissions WHERE user_id = " . (int)$_SESSION['id'];
$user_permissions_res = mysql_query($user_permissions_sql);
$user_permissions = mysql_fetch_assoc($user_permissions_res);
$agenciesHaveAccessToNewComplexes = [4,12028,12061, 17328, 11325, 16700, 19172, 13735, 19093, 16378, 19467, 20197, 19909, 19646, 5238];
?>
<label>
<span>Начальная страница</span>
<select class="text" name="first_page" required>
<?php
$jw_pages = mysql_query("SELECT * FROM jw_pages");
$selected_page_url = isset($user_first_page['page_url']) ? $user_first_page['page_url'] : '';
if (empty($selected_page_url)) {
echo '<option value="" selected>Не выбрано</option>';
}
while ($first_page = mysql_fetch_assoc($jw_pages)) {
$perm_field = $first_page['user_permission_name'];
$is_allowed = is_null($perm_field);
if (!$_SESSION['superadmin']) {
if (!$is_allowed && isset($user_permissions[$perm_field])) {
$is_allowed = (int)$user_permissions[$perm_field] === 1;
}
if ($first_page['page_url'] == '/users.php') {
if (!($_SESSION['agency'] || $user->manager || $user->users_admin)) {
continue;
}
}
if (!$is_allowed) {
continue;
}
}
if (
$first_page['page_url'] == "/complexes"
&& !$_SESSION['superadmin']
&& !in_array((int)$_SESSION['id'], $agenciesHaveAccessToNewComplexes)
&& !$has_complex_access
) {
continue;
}
$selected = ($selected_page_url == $first_page['page_url']) ? ' selected' : '';
?>
<option value="<?= htmlspecialchars($first_page['id']) ?>"<?= $selected ?>>
<?= htmlspecialchars($first_page['page_name'] ?: '') ?>
</option>
<?php } ?>
</select>
</label>
<?php
if ($_SESSION['agency']) {
$sql_enable = "SELECT * FROM auth_enable_ip WHERE id_agency = {$_SESSION['agency_id']}";
$q_enable = mysql_query($sql_enable);
//если есть строки в таблице, значит есть ограничение по IP
if(mysql_num_rows($q_enable) > 0) {
$allowAnyIp = 0;
$sql_select_permissions = "SELECT allow_any_ip FROM user_permissions WHERE user_id=$_SESSION[id]";
$permissions_result = mysql_query($sql_select_permissions);
if (mysql_num_rows($permissions_result) > 0) {
$r_u = mysql_fetch_assoc($permissions_result);
$allowAnyIp = $r_u["allow_any_ip"];
}
?>
<label>
<div class="checkbox">
<input type="checkbox" name="on_agency_any_ip" id="on_agency_any_ip" class="text" value="1" <?php if ($allowAnyIp) { echo "checked"; } ?>>
<label for="on_agency_any_ip">Разрешить вход с любого IP-адреса<label>
</div>
</label>
<?php
}
}
?>
</div>
<div class="lw-settings-block__submit-row">
<input type="hidden" class="hidden" name="ok_settings" value="1">
<button class="top-line__button button-fl-right medium-button">Сохранить</button>
</div>
</form>
</div>
<!-- логотип компании -->
<div class="lw-settings-block__section" data-section-content="2" data-anchor-dest="2">
<?php if ($_SESSION['agency'] or $_SESSION['individual'] or $user->role_developer) { ?>
<div class="control-group control-line">
<?php
if ($_SESSION['individual'] and !$_SESSION['agency'] and !$user->role_developer) {
echo "<h2>Ваше фото</h2><p class='norm_abzac'>Загрузите свою фотографию, она будет отображаться в презентациях для ваших клиентов</p>";
} else {
echo "<h2>Логотип компании</h2>";
}
?>
<div class="control-inputs">
<?php
$appendedFiles = array();
if ($_SESSION['photo']) {
$pathInfo = pathinfo($_SESSION['photo']);
$ph_url = "https://" . $_SERVER['SERVER_NAME'] . "/photos/agency/" . $_SESSION['photo'];
$appendedFiles[] = array(
"name" => $ph_url,
"file" => $ph_url,
"type" => "image/" . $pathInfo['extension'],
"data" => array(
"url" => $ph_url,
"thumbnail" => $ph_url
)
);
}
// convert our array into json string
$appendedFiles = json_encode($appendedFiles);
?>
<form method="post" enctype="multipart/form-data" id="upload-form">
<div>
<input type="file" name="photoAg" class="company-ph" data-fileuploader-files='<?php echo $appendedFiles; ?>' data-fileuploader-limit="1" accept="image/jpg,image/jpeg">
</div>
</form>
</div>
</div>
<?php } else { ?>
<?php
$agencyForPhoto = new User;
$agencyForPhoto->get(User::getUserAgencyID());
if ($agencyForPhoto->photo) {
?>
<div class="control-group control-line">
<h2>Логотип агентства</h2>
<div class="control-inputs">
<img src="/photos/agency/<? echo $agencyForPhoto->photo; ?>" width="272px">
</div>
</div>
<?php } ?>
<? } ?>
<?php if (!$_SESSION['individual'] or $user->role_developer) { ?>
<div class="control-group control-line">
<h2>Ваше фото</h2>
<div class="control-inputs">
<?php
$appendedFiles = array();
if ($user->user_logo) {
$pathInfo = pathinfo($user->user_logo);
$ph_url = "https://" . $_SERVER['SERVER_NAME'] . "/photos/agency/" . $user->user_logo;
$appendedFiles[] = array(
"name" => $ph_url,
"file" => $ph_url,
"type" => "image/" . $pathInfo['extension'],
"data" => array(
"url" => $ph_url,
"thumbnail" => $ph_url
)
);
}
// convert our array into json string
$appendedFiles = json_encode($appendedFiles);
?>
<div>
<input type="file" name="avatar" class="avatar-ph" data-fileuploader-files='<?php echo $appendedFiles; ?>' data-fileuploader-limit="1" accept="image/jpg,image/jpeg">
</div>
</div>
</div>
<?php } ?>
<?php if ($_SESSION['agency'] or $user->role_developer) { ?>
<div class="control-group control-line">
<h2>Водяной знак для фото</h2>
<div class="control-inputs">
<?php
$appendedFiles = array();
$sqlWaterCheck = "SELECT watermark FROM agency_watermark WHERE agency_id = $_SESSION[id]";
$rezWaterCheck = mysql_query($sqlWaterCheck);
if (mysql_num_rows($rezWaterCheck) > 0) {
$watermark = mysql_fetch_assoc($rezWaterCheck)['watermark'];
$pathInfo = pathinfo($watermark);
$ph_url = "https://" . $_SERVER['SERVER_NAME'] . "/photos/agency/watermark/" . $watermark;
$appendedFiles[] = array(
"name" => $ph_url,
"file" => $ph_url,
"type" => "image/" . $pathInfo['extension'],
"data" => array(
"url" => $ph_url,
"thumbnail" => $ph_url
)
);
}
// convert our array into json string
$appendedFiles = json_encode($appendedFiles);
?>
<div>
<input type="file" name="watermark" class="watermark-ph" data-fileuploader-files='<?php echo $appendedFiles; ?>' data-fileuploader-limit="1" accept="image/jpg,image/jpeg">
</div>
</div>
</div>
<?php } ?>
<?php if ($_SESSION['agency'] or $user->role_developer) { ?>
<p class="lw-note">Для загрузки в качестве водяного знака используйте картинку без фона (формат PNG), с прозрачностью от 40 до 80 процентов, размером не более 250 по ширине и 100 по высоте. После загрузки белый водяной знак может быть не видно на предпросмотре. Это нормально. Он же белый.</p>
<?php } ?>
</div>
<!-- презентации -->
<div class="mail-settings-promo">
<div class="mail-settings-promo__inner">
<div class="icon">
<img src="/images/mail-open.png">
</div>
<div class="text">
<h2>Отправляйте презентации клиентам</h2>
<p>С помощью функции отправки презентаций вам больше не нужно рассказывать информацию об объекте по телефону и часами ждать, пока собственник или агент вышлет вам фотографии, чтобы отправить их клиенту.</p>
</div>
</div>
</div>
<!-- Настройка отправлений -->
<div class="lw-settings-block__section" data-section-content="3" data-anchor-dest="3">
<h2>Настройка отправлений</h2>
<form method="post" id="email_settings_form">
<div class="fieldset">
<label>
<span>Эл. почта отправителя</span>
<?php
list($email_login, $type) = explode("@", $user->smtp_from);
if (
$type == "mail.ru"
|| $type == "gmail.com"
|| $type == "rambler.ru"
|| $type == "ya.ru"
|| $type == "narod.ru"
|| $type == "bk.ru"
|| $type == "inbox.ru"
|| $type == "lenta.ru"
|| $type == "list.ru"
|| $type == "autorambler.ru"
|| $type == "myrambler.ru"
|| $type == "ro.ru"
|| $type == "yandex.ru"
) {
$other = false;
} else {
$other = true;
}
?>
<input type="text" name="email_login" class="text" placeholder="Например, vasya1105" required value="<?php if ($other) {
echo $user->smtp_from;
} else {
echo $email_login;
} ?>" style="width:228px;">
<input type="hidden" name="smtp_from" value="<?php echo $user->smtp_from; ?>">
<select name="type" id="type_email_settings">
<option value="2" <?php if ($type == "mail.ru") {
echo "selected";
$other = false;
} ?>>@mail.ru</option>
<option value="1" <?php if ($type == "yandex.ru") {
echo "selected";
$other = false;
} ?>>@yandex.ru</option>
<option value="4" <?php if ($type == "gmail.com") {
echo "selected";
$other = false;
} ?>>@gmail.com</option>
<option value="3" <?php if ($type == "rambler.ru") {
echo "selected";
$other = false;
} ?>>@rambler.ru</option>
<option value="1" <?php if ($type == "ya.ru") {
echo "selected";
$other = false;
} ?>>@ya.ru</option>
<option value="1" <?php if ($type == "narod.ru") {
echo "selected";
$other = false;
} ?>>@narod.ru</option>
<option value="2" <?php if ($type == "bk.ru") {
echo "selected";
$other = false;
} ?>>@bk.ru</option>
<option value="2" <?php if ($type == "inbox.ru") {
echo "selected";
$other = false;
} ?>>@inbox.ru</option>
<option value="2" <?php if ($type == "list.ru") {
echo "selected";
$other = false;
} ?>>@list.ru</option>
<option value="3" <?php if ($type == "lenta.ru") {
echo "selected";
$other = false;
} ?>>@lenta.ru</option>
<option value="3" <?php if ($type == "autorambler.ru") {
echo "selected";
$other = false;
} ?>>@autorambler.ru</option>
<option value="3" <?php if ($type == "myrambler.ru") {
echo "selected";
$other = false;
} ?>>@myrambler.ru</option>
<option value="3" <?php if ($type == "ro.ru") {
echo "selected";
$other = false;
} ?>>@ro.ru</option>
<option value="5" <?php if ($other) echo "selected"; ?>>другой</option>
</select>
</label>
<label>
<span>Пароль почтового приложения</span>
<input type="password" autocomplete="off" name="smtp_pwd" class="text" required value="<?php echo $user->smtp_pwd; ?>">
</label>
<label>
<span>Имя &laquo;от кого&raquo;</span>
<input type="text" name="smtp_fromname" class="text" placeholder="Например, Петров Василий" required value="<?php echo $user->smtp_fromname; ?>">
</label>
<label class="<?php if (!$other) echo "hidden"; ?> mail_settings">
<span>SMTP</span>
<input type="text" name="smtp" class="text" placeholder="Например, smtp.mail.ru" required value="<?php echo $user->smtp; ?>">
</label>
<label class="<?php if (!$other) echo "hidden"; ?> mail_settings">
<span>Порт</span>
<input type="text" name="smtp_port" class="text" required placeholder="465" value="<?php echo $user->smtp_port; ?>" style="float: left; width: 70px; margin-right: 10px; position: relative; z-index: 99;">
<div class="checkbox">
<input type="checkbox" name="smtp_ssl" id="smtp_ssl" class="text" value="1" <?php if ($user->smtp_ssl) echo 'checked'; ?>>
<label for="smtp_ssl">SSL</label>
</div>
</label>
<a href="javascript:void();" class="show_spoiler">Как узнать SMTP/порт для своего почтового ящика?</a>
<div class="spoiler mail_settings">
<p>Эти данные совпадают с&nbsp;параметрами настройки любой почтовой программы, например Outlook.</p>
<p>Ваш почтовый оператор обязательно указывает их&nbsp;в&nbsp;разделе «Техподдержка».</p>
<p>Ниже приведены данные для наиболее популярных почтовиков: </p>
<ul>
<li><a href="https://yandex.ru/support/mail/mail-clients.xml" target="_blank">Яндекс</a>&nbsp; SMTP: smtp.yandex.ru, SSL: да, Порт: 465;</li>
<li><a href="https://help.mail.ru/mail-help/mailer/popsmtp" target="_blank">Mail.ru</a>&nbsp; SMTP: smtp.mail.ru, SSL: да, Порт: 465;</li>
<li><a href="https://support.google.com/a/answer/176600?hl=ru" target="_blank">Gmail</a>&nbsp; SMTP: smtp.gmail.com SSL: да, Порт: 465;</li>
<li><a href="http://help.rambler.ru/mail/mail-pochtovye-klienty/1275/" target="_blank">Rambler</a>&nbsp; SMTP: smtp.rambler.ru, SSL: да, Порт: 465.</li>
</ul>
<p>При этом, если у&nbsp;вас почта на&nbsp;<strong>Gmail</strong>, нужно удостовериться, что</p>
<ul>
<li><a href="https://accounts.google.com/DisplayUnlockCaptcha" target="_blank">выключена проверка капчи</a>;</li>
<li><a href="https://support.google.com/accounts/answer/185833?hl=ru#zippy=%2C%D0%B4%D0%BB%D1%8F-%D1%87%D0%B5%D0%B3%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D1%8B-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B8-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" target="_blank">создан пароль приложения</a>.</li>
</ul>
</div>
<label class="<?php if (!$other) echo "hidden"; ?> mail_settings">
<span>Логин от почты</span>
<input type="text" name="smtp_lg" class="text" required placeholder="Для Яндекса без @, у остальных целиком" value="<?php echo $user->smtp_lg; ?>">
</label>
</div>
<div class="lw-settings-block__submit-row">
<input type="hidden" class="hidden" name="settings_email" value="1">
<button class="top-line__button button-fl-right medium-button" id="save_settings">Сохранить</button>
</div>
<blockquote class="lw-blockquote">Все сохранённые данные строго конфиденциальны и недоступны третьим лицам.</blockquote>
</form>
</div>
<!-- Справка -->
<div class="lw-settings-block__section" data-section-content="4">
<h2>Справка</h2>
<div class="instructions">
<ul>
<li>
<span class="li-number first"><b>1</b></span>
Для отправки сообщений и&nbsp;получения обратной связи от&nbsp;клиентов мы&nbsp;рекомендуем Вам создать новый почтовый ящик на&nbsp;одном из&nbsp;почтовых сервисов. Мы&nbsp;настоятельно советуем использовать <a class="blank-link" href="https://passport.yandex.ru/registration" target="_blank" title="Регистрация почты на Яндекс">Яндекс</a>, как самый простой в&nbsp;использовании и&nbsp;менее других блокирующий письма за&nbsp;спам;
</li>
<li>
<span class="li-number second"><b>2</b></span>
Также можно использовать <a class="blank-link" href="https://e.mail.ru/signup?from=mail.login" target="_blank" title="Регистрация почты на Mail.ru">mail.ru</a>, но&nbsp;здесь возможна блокировка писем за&nbsp;спам;
</li>
<li>
<span class="li-number third"><b>3</b></span>
<p>Мы&nbsp;не&nbsp;рекомендуем использовать почту от&nbsp;<a class="blank-link" href="https://accounts.google.com/SignUp?service=mail" target="_blank" title="Регистрация почты на Gmail">Gmail</a>, так как ее&nbsp;довольно сложно настроить на&nbsp;отправку писем с&nbsp;вашего ящика. Если вы&nbsp;хотите использовать существующую почту Gmail, нужно удостовериться, что:</p>
<ul>
<li><a class="blank-link" href="https://accounts.google.com/DisplayUnlockCaptcha" target="_blank">выключена проверка капчи</a>;</li>
<li><a class="blank-link" href="https://support.google.com/accounts/answer/185833?hl=ru#zippy=%2C%D0%B4%D0%BB%D1%8F-%D1%87%D0%B5%D0%B3%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D1%8B-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B8-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" target="_blank">создан пароль приложения</a>.</li>
</ul>
<p><strong>Внимание!</strong> Желательно сделать это до&nbsp;отправки тестового письма!</p>
<p>Для разрешения войдите в&nbsp;аккаунт почты Gmail на&nbsp;соседней вкладке браузера и&nbsp;последовательно перейдите сначала по&nbsp;первой ссылке, затем по&nbsp;второй и&nbsp;подтвердите действия (во&nbsp;втором случае положение переключатель должно быть «Включить»);</p>
</li>
<li>
<span class="li-number first"><b>4</b></span>
Если Вы&nbsp;хотите использовать существующую почту и&nbsp;у&nbsp;Вас включена двухфакторная аутентификация (вход по&nbsp;паролю и&nbsp;коду из&nbsp;sms, вот тут немного подробнее: <a class="blank-link" href="https://blog.kaspersky.ru/what_is_two_factor_authenticatio/4272/" target="_blank" title="Описание работы двухфакторной аутентификации">blog.kaspersky.ru</a>), то&nbsp;Вам необходимо задать отдельный пароль приложений (который не&nbsp;будет требовать ввода sms-кода&nbsp; его можно задать в&nbsp;настройках двухфакторной аутентификации в&nbsp;почте). Указать его нужно в&nbsp;поле «Пароль от&nbsp;почты» вместо обычного пароля от&nbsp;почты;
</li>
<li>
<span class="li-number phone"><b><i class="ti-headphone-alt"></i></b></span>
В&nbsp;случае проблемы с&nbsp;настройкой почты обратитесь в&nbsp;службу поддержки по&nbsp;телефону:&nbsp;<a class="phone-link">+7(812) 765-08-01</a>
</li>
</ul>
</div>
<h2>Дополнительные материалы</h2>
<div class="lw-block-video">
<div class="video-frame" id="setting_video2">
<a class="video_href_frame" href="javascript:{}" id="href_setting_video2">
<img width="306" alt="video2" src="/images/video2.png" />
</a>
</div>
<div class="video-title">
<h3>Видео-инструкция по настройке почты</h3>
</div>
</div>
</div>
<!-- пароль -->
<?php if ($user->is_pwd) { ?>
<div class="lw-settings-block__section" data-section-content="5" data-anchor-dest="4">
<h2>Пароль</h2>
<form method="post">
<div class="fieldset">
<label>
<span>Старый пароль:</span>
<input type="password" name="old_pwd" placeholder="Старый пароль:" class="text">
</label>
<label>
<span>Новый пароль:</span>
<input type="password" name="pwd" placeholder="Пароль:" class="text">
</label>
<label>
<span>Еще раз:</span>
<input type="password" name="pwd2" placeholder="Пароль:" class="text">
</label>
</div>
<div class="lw-settings-block__submit-row">
<input type="hidden" class="hidden" name="change_pwd" value="1">
<button type="submit" class="top-line__button button-fl-right medium-button">Сменить</button>
</div>
</form>
</div>
<?php } ?>
</div>
</div>
<!-- data-section-id="1" end -->
<!-- data-section-id="2" start -->
<div class="lw-settings-block__content-section" data-section-id="2">
<div class="lw-settings-block__content-section-side">
<ul>
<?php if ($show_settings_blocks && ($_SESSION['users_admin'] || $_SESSION['agency'] || $_SESSION['individual']) && $user->can('advert-stats')) { ?>
<li data-anchor="333">
<a href="#">XML-фиды для автовыгрузки</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks && $user->can('advert-stats')) { ?>
<li data-anchor="21">
<a href="#">Настройка получения отчетов</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<li data-anchor="22">
<a href="#">Настройка рекламных пакетов</a>
</li>
<li data-anchor="23">
<a href="#">Настройка статистики затрат</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks && ($_SESSION['users_admin'] || $_SESSION['agency'] || $_SESSION['individual'])) { ?>
<li data-anchor="24">
<a href="#">Настройка рекламных телефонов</a>
</li>
<li data-anchor="25">
<a href="#">Привязка номеров</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks && ($_SESSION['id'] == 93 || $_SESSION['id'] == 4 || $_SESSION['id'] == 117)) { ?>
<li data-anchor="26">
<a href="#">Размещение Zipal</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<li data-anchor="27">
<a href="#">Размещение JCat</a>
</li>
<?php } ?>
<li data-anchor="28">
<a href="#">Обучение</a>
</li>
</ul>
</div>
<div class="lw-settings-block__content-section-main">
<?php if ($show_settings_blocks && $user->can('advert-stats')) { ?>
<?php if ($_SESSION['users_admin'] || $_SESSION['agency'] || $_SESSION['individual'] || $_SESSION['role_developer']) { ?>
<div class="lw-settings-block__section" data-section-content="333" id="advertising_feeds" data-anchor-dest="333">
<a name="advertFeeds" style="display: none;">&nbsp;</a>
<h2>Ваши XML-фиды для автовыгрузки</h2>
<div style="display: flex; align-items: center; justify-items: center;">
<div style="width: 45%">
<?php
if (!$_SESSION['individual']) {
$feedCompanyId = intval($user->id_manager) > 0 ? $user->id_manager : $user->id;
$yandexFeedName = $feedCompanyId;
if ($yandexFeedName == 177) {
$yandexFeedName = "1ght764cndh";
}
$feedUrl = "https://joywork.ru/feeds/".$yandexFeedName.".xml";
$avFeedUrl = "https://joywork.ru/av_feeds/".$feedCompanyId.".xml";
$cianFeed2Url = "https://joywork.ru/cian_feed_v2/".$feedCompanyId.".xml";
$emlsFeed = "https://joywork.ru/cian_feed_jcat/".$feedCompanyId.".xml";
$bnYandexFeedUrl = "https://joywork.ru/bn_ya_feeds/".$feedCompanyId.".xml";
$domFeedUrl = "https://joywork.ru/dom_feeds/".$feedCompanyId.".xml";
$objectsUrl = "https://joywork.ru/objects-from-feed.php?id_agent=".$feedCompanyId;
$objectsAvitoUrl = "https://joywork.ru/objects-from-feed.php?avito=1&id_agent=".$feedCompanyId;
$objectsCianUrl = "https://joywork.ru/objects-from-feed.php?cian=1&id_agent=".$feedCompanyId;
$objectsEmlsUrl = "https://joywork.ru/objects-from-feed.php?emls=1&id_agent=".$feedCompanyId;
$objectsBnUrl = "https://joywork.ru/objects-from-feed.php?bn=1&id_agent=".$feedCompanyId;
$objectsDomUrl = "https://joywork.ru/objects-from-feed.php?dom=1&id_agent=".$feedCompanyId;
?>
<div style="padding: 7px 35px 15px 35px;"><b>Бесплатные (формат Яндекс)</b>: <a target="_blank" href="<?php echo $feedUrl; ?>"><?php echo $feedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Авито</b>: <a target="_blank" href="<?php echo $avFeedUrl; ?>"><?php echo $avFeedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>ЦИАН</b>: <a target="_blank" href="<?php echo $cianFeed2Url; ?>"><?php echo $cianFeed2Url; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Jcat (формат ЦИАН)</b>: <a target="_blank" href="<?php echo $emlsFeed; ?>"><?php echo $emlsFeed; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Яндекс.Недвижимость</b>: <a target="_blank" href="<?php echo $bnYandexFeedUrl; ?>"><?php echo $bnYandexFeedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>ДомКлик (формат Яндекс)</b>: <a target="_blank" href="<?php echo $domFeedUrl; ?>"><?php echo $domFeedUrl; ?></a></div>
<?php }
if ($_SESSION['role_developer']) {
$feedCompanyId = intval($user->id_manager) > 0 ? $user->id_manager : $user->id;
$avComplexFeedUrl = "https://joywork.ru/av_feeds_complex/".$feedCompanyId.".xml";
$domComplexFeedUrl = "https://joywork.ru/dom_feeds_complex/".$feedCompanyId.".xml";
$bnYandexComplexFeedUrl = "https://joywork.ru/bn_ya_feeds_complex/".$feedCompanyId.".xml";
$cianComplexFeedUrl = "https://joywork.ru/cian_feed_v2_complex/".$feedCompanyId.".xml";
$domRfComplexFeedUrl = "https://joywork.ru/dom_rf_feeds_complex/".$feedCompanyId.".xml";
$siteComplexFeedUrl = "https://joywork.ru/bn_ya_feeds_complex/".$feedCompanyId."_site.xml";
?>
<div style="padding: 7px 35px 15px 35px;"><b>Фид Яндекс</b>: <a target="_blank" href="<?php echo $bnYandexComplexFeedUrl; ?>"><?php echo $bnYandexComplexFeedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Фид Авито</b>: <a target="_blank" href="<?php echo $avComplexFeedUrl; ?>"><?php echo $avComplexFeedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Фид ЦИАН</b>: <a target="_blank" href="<?php echo $cianComplexFeedUrl; ?>"><?php echo $cianComplexFeedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Фид Домклик</b>: <a target="_blank" href="<?php echo $domComplexFeedUrl; ?>"><?php echo $domComplexFeedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Фид Дом.рф</b>: <a target="_blank" href="<?php echo $domRfComplexFeedUrl; ?>"><?php echo $domRfComplexFeedUrl; ?></a></div>
<div style="padding: 7px 35px 15px 35px;"><b>Фид Сайт</b>: <a target="_blank" href="<?php echo $siteComplexFeedUrl; ?>"><?php echo $siteComplexFeedUrl; ?></a></div>
<?php } ?>
</div>
<div class="lw-block-video" style="width: 35%">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&amp;id=456239114&amp;hash=677b02ba1301a104" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Настройка отчетов выгрузок на классифайды</h3>
</div>
</div>
</div>
</div>
<?php } ?>
<div class="lw-settings-block__section" data-section-content="6" id="advertising_stats" data-anchor-dest="21">
<a name="advertApi" style="display: none;">&nbsp;</a>
<h2>Настройка получения отчетов</h2>
<div v-if="!isEmpty(apiList)" class="lw-table-wrapper">
<a class="fr-btn steel i-btn very-small add-new-adv-api" @click="addAdvertStatsApi();" href="javascript:{};">Добавить API</a>
<table style="min-width:1200px;">
<thead>
<tr>
<th>Площадка</th>
<?php if (in_array($_SESSION['agency_id'], $agenciesHaveAccessToNewComplexes) || $user->role_developer) { ?>
<th>Для комплексов</th>
<?php } ?>
<th>ID клиента/компании</th>
<th>API-ключ/токен доступа</th>
<th>ID пользователя</th>
<th style="text-align:center;">Активно</th>
<th>Добавлено</th>
<th>Обновлено</th>
<th>Сообщения</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="(item, key, index) in apiList" :key="index" :data-order="item.service_id" :style="item.status != 1 ? 'color:#757575;' : ''">
<td>{{ getServiceName(item.service_id) }}</td>
<?php if (in_array($_SESSION['agency_id'], $agenciesHaveAccessToNewComplexes) || $user->role_developer) { ?>
<td>{{ getForComplexesStr(item.use_for_complexes) }}</td>
<?php } ?>
<td>
<pre v-if="!isEmpty(item.client_id)">{{ safetyString(item.client_id, 5, 3) }}</pre>
<span v-else style="color:lightcoral;">n/a</span>
</td>
<td>
<pre v-if="!isEmpty(item.secret_key)">{{ safetyString(item.secret_key, 5, 3) }}</pre>
<span v-else style="color:lightcoral;">n/a</span>
</td>
<td>
<pre v-if="!isEmpty(item.ext_user_id)">{{ item.ext_user_id }}</pre>
<span v-else style="color:lightcoral;">n/a</span>
</td>
<td style="text-align:center;">
<span v-if="item.status == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td>
<pre>{{ item.created_at }}</pre>
</td>
<td>
<pre>{{ item.updated_at }}</pre>
</td>
<td style="text-align:center;">
<template v-if="item.service_id == 1 || item.service_id == 2">
<a href="javascript:{};" v-if="item.is_messages==1" title="Выключить" @click="offMessage(item.id, $event)" style="color:#328436;">
<i class="ti-power-off"></i>
</a>
<a href="javascript:{};" v-else title="Включить" @click="onMessage(item.id, $event)" style="color:#e2574c;">
<i class="ti-power-off"></i>
</a>
</template>
<span v-else title="Не предоставляется">
<i class="ti-na"></i>
</span>
</td>
<td width="105">
<a href="javascript:{};" @click="testAdvertApi(item.id, $event);" title="Тест подключения"><i class="ti-arrow-circle-right"></i></a>
&nbsp;
<a href="javascript:{};" @click="showAdvertApiForm(item.id);" title="Редактировать"><i class="ti-pencil"></i></a>
&nbsp;
<a href="javascript:{};" @click="confirmDeleteAdvertApi(item.id);" title="Удалить"><i class="ti-trash"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
<div v-else class="lw-empty-block">
<h3>API не найдены</h3>
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="addAdvertStatsApi();" title="Добавить API рекламной площадки">Добавить новый API</a>
</div>
</div>
<div class="full_modal-bg" id="advertApiFormBg" style="display: none; ">
<span class="event-modal-close closer" onclick="closeAdvertApiForm()"><i class="ti-close"></i></span>
<div class="full_modal" id="advertApiForm" style="display: none;">
<form class="form-validate">
<div class="modal-inner">
<h2 v-if="api_id > 0">Редактирование API для {{ getServiceName(service_id) }}</h2>
<h2 v-else>Добавление API рекламной площадки</h2>
<div class="form-left">
<div v-if="error_msg" v-html="error_msg" class="error_msg" style="margin-left:0;margin-right:0;margin-bottom:20px;"></div>
<div v-show="api_id == 0" class="form-block">
<div class="form-search__main-label small-label">
<label for="api-service-list">Площадка:</label>
</div>
<div id="api-service-list" class="inputs"></div>
<div class="clear"></div>
</div>
<div v-if="service_id == 1 || service_id == 4" class="form-block">
<div class="form-search__main-label small-label">
<label v-if="service_id == 4" for="api-client-id">ID компании:<sup style="color: red;">*</sup></label>
<label v-else for="api-client-id">ID клиента:<sup style="color: red;">*</sup></label>
</div>
<div class="inputs">
<div id="api-client-id" class="inputs-group">
<input type="text" class="number text small-input" v-model="client_id" />
<span v-if="service_id == 4" class="area-label-right" style="font-size: 13px;padding-top: 10px;">
ID компании можно узнать из ссылки для отчета, например:<br /> <a>https://my.domclick.ru/api/v1/company/<b>XXXXXX</b>/report</a>
</span>
</div>
</div>
<div class="clear"></div>
</div>
<div v-if="service_id > 0" class="form-block">
<div class="form-search__main-label small-label">
<label v-if="service_id == 1" for="api-secret-key">API-ключ:<sup style="color: red;">*</sup></label>
<label v-if="service_id == 2 || service_id == 3 || service_id == 4" for="api-secret-key">Токен авторизации:<sup style="color: red;">*</sup></label>
</div>
<div class="inputs">
<div id="api-secret-key" class="inputs-group">
<textarea class="number text small-input" v-model="secret_key" rows="3" required></textarea>
</div>
</div>
<div class="clear"></div>
</div>
<div v-if="service_id == 1" class="form-block">
<div class="form-search__main-label small-label">
<label for="api-ext-user-id">ID пользователя:<sup style="color: red;">*</sup></label>
</div>
<div class="inputs">
<div id="api-ext-user-id" class="inputs-group">
<input type="text" class="number text small-input" v-model="ext_user_id" />
</div>
</div>
<div class="clear"></div>
</div>
<?php if (in_array($_SESSION['agency_id'], $agenciesHaveAccessToNewComplexes) || $user->role_developer) { ?>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="use_for_complexes" v-model="use_for_complexes" :checked="Boolean(use_for_complexes)" true-value="1" value="0">
<label for="use_for_complexes">Для комплексов</label>
</div>
<div class="clear"></div>
</div>
<?php } ?>
<div v-if="service_id > 0" class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="api-status" v-model="status" :checked="Boolean(status)" true-value="1" value="0">
<label for="api-status">Собирать статистику</label>
</div>
<div class="clear"></div>
</div>
</div>
<?php if (in_array((int)$_SESSION['id'], [4, 5427, 12061, 13735, 11584])) { ?>
<div style="margin: 25px;">
<span class="area-label-right" style="font-size: 13px; margin-left: 0px;">
<i class="ti-info-alt"></i> В вашем аккаунте доступно добавление нескольких токенов одной и той же площадки.
</span>
<div class="clear"></div>
</div>
<?php } ?>
<div class="clear"></div>
</div>
<div class="modal-submit">
<input type="hidden" id="api-agency-id" value="<?= $user->agencyId ?>">
<input type="hidden" id="api-api-id" :value="api_id">
<button type="button" @click="saveAdvertApi(api_id)" :disabled="service_id == 0">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<div class="lw-settings-block__section" data-section-content="7" id="advertising_packages" data-anchor-dest="22">
<h2>Настройка рекламных пакетов:</h2>
<a class="fr-btn steel i-btn very-small add-new-adv-package" onclick="createNewAdvertisingPackage();" href="javascript:{};">Добавить</a>
<div class="lw-table-wrapper">
<table style="min-width:1080px;">
<thead>
<tr>
<th></th>
<th>Наименование пакета</th>
<th>Регион</th>
<th>Кол-во дней</th>
<th>Тип сделки</th>
<th>Тип объекта</th>
<th>Наличие фото</th>
<th>Для комнат</th>
<th>Период оплаты (аренда)</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
$num = 1;
$sqlPackage = "SELECT pck.*, dt.name as deal_type_name, ot.name as object_type_name, pt.name as price_type_name,rf_regions.name as region FROM advertising_package pck
LEFT JOIN advertising_package_deal_type dt on pck.advertising_package_deal_type_id = dt.id
LEFT JOIN advertising_package_object_type ot on pck.advertising_package_object_type_id = ot.id
LEFT JOIN advertising_package_price_type pt on pck.advertising_package_price_type_id = pt.id
LEFT JOIN rf_regions on rf_regions.id = pck.region_rf_id
WHERE deleted=0 AND agency_id = $user->agencyId";
$rezPackage = mysql_query($sqlPackage);
while ($package = mysql_fetch_assoc($rezPackage)) {
echo '<tr ';
if ($num % 2 > 0) {
echo 'style="background-color: #f9f9f9;"';
}
echo '>';
if ($package['create_user_id'] == $user->id) {
echo '<td width="50"><a href="javascript:{};" onclick="editAdvertisingPackage(' . $package['id'] . ');" title="Редактировать"><i class="ti-pencil"></i></a></td>';
} else {
echo '<td width="50">&nbsp;</td>';
}
echo '<td>' . $package['name'] . '</td>';
echo '<td>' . $package['region'] . '</td>';
echo '<td>' . $package['days_count'] . '</td>';
echo '<td>' . $package['deal_type_name'] . '</td>';
echo '<td>' . $package['object_type_name'] . '</td>';
echo '<td>' . ($package['has_photo'] ? 'Да' : 'Нет') . '</td>';
echo '<td>' . ($package['is_room'] ? 'Да' : 'Нет') . '</td>';
echo '<td>' . $package['price_type_name'] . '</td>';
if ($package['create_user_id'] == $user->id) {
echo '<td width="50"><a href="javascript:{};" onclick="confirmDeleteAdvertisingPackage(' . $package['id'] . ');" title="Удалить"><i class="ti-trash"></i></a></td>';
} else {
echo '<td width="50">&nbsp;</td>';
}
echo '</tr>';
$num++;
}
?>
</tbody>
</table>
</div>
</div>
<div class="lw-settings-block__section" data-section-content="8" id="advertPricesList" data-anchor-dest="23">
<h2>Настройка статистики затрат:</h2>
<a class="fr-btn steel i-btn very-small add-edit-advert-budget" onclick="getAdvertPricesForm();" href="javascript:{};">Добавить</a>
<div class="lw-table-wrapper">
<table style="min-width:960px;">
<thead>
<tr>
<th></th>
<th>Критерии объекта</th>
<th style="text-align:center;">Avito</th>
<th style="text-align:center;">ЦИАН</th>
<th style="text-align:center;">ДомКлик</th>
<th style="text-align:center;">JCat</th>
<th style="text-align:center;">Я.Недвижимость</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="(price, index) in prices" :key="index" :style="getPriceStyle(index)">
<td v-if="price.created_by == user_id" width="50"><a href="javascript:{};" @click="getAdvertPricesForm(price.id);" title="Редактировать"><i class="ti-pencil"></i></a></td>
<td v-else width="50">&nbsp;</td>
<td v-if="!isEmpty(price.criteries)">{{ price.criteries.join(' ') }}</td>
<td v-else>&nbsp;</td>
<td style="text-align:center;">{{ price.avito }} руб.</td>
<td style="text-align:center;">{{ price.cian }} руб.</td>
<td style="text-align:center;">{{ price.domclick }} руб.</td>
<td style="text-align:center;">{{ price.jcat }} руб.</td>
<td style="text-align:center;">{{ price.yandex }} руб.</td>
<td v-if="price.created_by == user_id" width="50"><a href="javascript:{};" @click="confirmDeleteAdvertPrice(price.id);" title="Удалить"><i class="ti-trash"></i></a></td>
<td v-else width="50">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
<h2>Как настроить?</h2>
<div class="lw-block-video">
<div class="video-frame" id="setting_video1">
<a class="video_href_frame" href="javascript:{}" id="href_setting_video1">
<img width="306" alt="video1" src="/images/video1.png" />
</a>
</div>
<div class="video-title">
<h3>Видео-инструкция по настройке статистики</h3>
</div>
</div>
</div>
<script type="text/javascript">
//$(document).ready(() => getAdvertPricesList());
$(document).ready(() => {
if (typeof advert_prices_list !== 'undefined') {
advert_prices_list.getAdvertPricesList();
} else {
console.warn('advert_prices_list ещё не инициализирован');
}
});
</script>
<?php } ?>
<?php if ($show_settings_blocks && ($_SESSION['users_admin'] || $_SESSION['agency'] || $_SESSION['individual'])) { ?>
<div class="lw-settings-block__section" id="advertising_packages" data-section-content="9" data-anchor-dest="24">
<h2>Настройка рекламных телефонов:</h2>
<a class="fr-btn steel i-btn very-small add-new-adv-phone" onclick="createNewAdvPhone();" href="javascript:{};">Добавить</a>
<div class="lw-table-wrapper">
<table>
<thead>
<tr>
<th></th>
<th>Тип выгрузки</th>
<th>Наименование</th>
<th>Телефон</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
$num = 1;
$sqlPhone = "SELECT ph.*, pt.value as phone_type_name FROM feed_adv_phone ph
LEFT JOIN feed_adv_phone_type pt on ph.feed_adv_phone_type_id = pt.id
WHERE deleted=0 AND agency_id = $user->agencyId";
$rezPhone = mysql_query($sqlPhone);
while ($phone = mysql_fetch_assoc($rezPhone)) {
echo '<tr ';
if ($num % 2 > 0) {
echo 'style="background-color: #f9f9f9;"';
}
echo '>';
echo '<td width="50"><a href="javascript:{};" onclick="editAdvPhone(' . $phone['id'] . ');" title="Редактировать"><i class="ti-pencil"></i></a></td>';
echo '<td>' . $phone['phone_type_name'] . '</td>';
echo '<td>' . $phone['name'] . '</td>';
echo '<td>' . $phone['phone'] . '</td>';
echo '<td width="50"><a href="javascript:{};" onclick="confirmDeleteAdvPhone(' . $phone['id'] . ');" title="Удалить"><i class="ti-trash"></i></a></td>';
echo '</tr>';
$num++;
}
?>
</tbody>
</table>
</div>
</div>
<div class="lw-settings-block__section" data-section-content="10" data-anchor-dest="25">
<h2>Привязка номеров (все агентство):</h2>
<a class="fr-btn steel i-btn very-small add-new-adv-phone" onclick="linkAdvPhoneToAgency();" href="javascript:{};">Изменить привязку</a>
<div class="lw-table-wrapper">
<table style="width: 50%">
<thead>
<tr>
<th>Тип выгрузки</th>
<th>Телефон</th>
</tr>
</thead>
<tbody>
<?php
$num = 1;
$sqlPhoneLink = "SELECT ph.*, pt.value as phone_type_name FROM feed_adv_phone ph
LEFT JOIN feed_adv_phone_type pt on ph.feed_adv_phone_type_id = pt.id
WHERE ph.deleted = 0 AND ph.agency_id = $user->agencyId and ph.id in (SELECT feed_adv_phone_id from feed_adv_phone_user where user_id = $user->agencyId)";
$rezPhoneLink = mysql_query($sqlPhoneLink);
while ($phoneLink = mysql_fetch_assoc($rezPhoneLink)) {
echo '<tr ';
if ($num % 2 > 0) {
echo 'style="background-color: #f9f9f9;"';
}
echo '>';
echo '<td>' . $phoneLink['phone_type_name'] . '</td>';
echo '<td>' . $phoneLink['phone'] . '</td>';
echo '</tr>';
$num++;
}
?>
</tbody>
</table>
</div>
</div>
<?php } ?>
<?php if ($show_settings_blocks && ($_SESSION['id'] == 93 || $_SESSION['id'] == 4 || $_SESSION['id'] == 117)) { ?>
<div class="lw-settings-block__section" data-section-content="11" data-anchor-dest="26">
<h2>Размещение на zipal.ru</h2>
<form method="post">
<div class="fieldset">
<label>
<span>Логин</span>
<input type="text" name="zipalLogin" value="<?php echo $user->zipal_login; ?>" class="text">
</label>
<label>
<span>Пароль</span>
<input type="password" name="zipalPass" value="<?php echo $user->zipal_password; ?>" class="text">
</label>
</div>
<div class="lw-settings-block__submit-row">
<input type="hidden" class="hidden" name="ok_zipal" value="1">
<button class="top-line__button button-fl-right medium-button">Сохранить</button>
</div>
</form>
</div>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<div class="lw-settings-block__section" data-section-content="12" data-anchor-dest="27">
<h2>Размещение на jcat.ru</h2>
<form method="post">
<div class="fieldset">
<label>
<span>Ключ для API</span>
<input type="text" name="jcatApiKey" value="<?php echo $user->jcat_api_key; ?>" class="text">
</label>
</div>
<div class="lw-settings-block__submit-row">
<input type="hidden" class="hidden" name="ok_jcat" value="1">
<button class="top-line__button button-fl-right medium-button">Сохранить</button>
</div>
</form>
</div>
<?php } ?>
<div class="lw-settings-block__section" data-section-content="13" data-anchor-dest="28">
<h2>Обучение</h2>
<div class="lw-video-grid">
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239134&hash=36e52e5ca6e3f917" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Как разместить объект на все рекламные площадки через JoyWork</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239114&hash=677b02ba1301a104" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Настройка отчетов выгрузок на классифайды</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239133&hash=4fbc9a78867aea0c" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Рекламные статусы объектов</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239106&hash=90d7ce85b1e3d280" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Настройка телефонов для рекламных выгрузок</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239109&hash=8905d2d0afac2d46" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Управление типами размещений а площадках и настройка интеграции по API</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239142&hash=03a1e526539ec184" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Модерация рекламы</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239119&hash=e97fff6ccf31b0ea" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Интеграция с чатами Avito и Циан</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239117&hash=d9dfb2bc402c1578" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Импорт объектов на сайт Tilda из JoyWork</h3>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- data-section-id="2" end -->
<!-- data-section-id="3" start -->
<div class="lw-settings-block__content-section" data-section-id="3">
<div class="lw-settings-block__content-section-side">
<ul>
<?php if ($show_settings_blocks) { ?>
<li data-anchor="31">
<a href="#">Настройка воронок продаж</a>
</li>
<?php } ?>
<li data-anchor="32">
<a href="#">Обучение</a>
</li>
</ul>
</div>
<div class="lw-settings-block__content-section-main">
<?php if ($show_settings_blocks) {
if ($user->agency == 0 && $user->manager == 0 && $user->id_manager == 0) {
$user->agency = 1;
}
if ($user->agency || $user->manager || $_SESSION['users_admin']) { ?>
<div class="lw-settings-block__section" data-section-content="14" data-anchor-dest="31">
<h2>Настройка воронок продаж:</h2>
<a class="fr-btn steel i-btn very-small" href="/tuning_funnel.php">Перейти к настройкам</a>
</div>
<?php }
} ?>
<div class="lw-settings-block__section" data-section-content="15" data-anchor-dest="32">
<h2>Обучение</h2>
<div class="lw-video-grid">
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239095&hash=ddf23e4da894f52e" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Ведение клиентов и воронки продаж в CRM JoyWork</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239096&hash=9d73b0f049ffa72f" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Настройка воронок продаж в CRM JoyWork</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239123&hash=55a67e977aeb7807" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Настройка условий воронок продаж при переходе на определенный этап</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239125&hash=58f2b3c06a40ea43" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Дополнительные условия воронках продаж</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239126&hash=aa93e6a35d56293b" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Отчеты по кастомным полям</h3>
</div>
</div>
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239127&hash=b3d6eb29c7867c39" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Создание параллельных воронок продаж</h3>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- data-section-id="3" end -->
<!-- data-section-id="4" start -->
<div class="lw-settings-block__content-section" data-section-id="4">
<div class="lw-settings-block__content-section-side">
<ul>
<?php if ($show_settings_blocks) { ?>
<li data-anchor="41">
<a href="#">Настройка рекламных источников</a>
</li>
<?php if($_SESSION['id'] == 5238 || $_SESSION['id'] == 117 || ($user->agencyId == 19895 && ($user->agency || $_SESSION['users_admin']))) { ?>
<li data-anchor="411">
<a href="#">Система управления связями</a>
</li>
<?php } ?>
<li data-anchor="42">
<a href="#">Настройка тегов</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks) {
if ($user->agency || $user->id == 5817 || $_SESSION['users_admin'] || $user->role_developer) { ?>
<li data-anchor="43">
<a href="#">Настройка ролей пользователей</a>
</li>
<?php }
} ?>
<?php if (
($_SESSION['agency'] || $_SESSION['users_admin'] || (!empty($menuPermissions) && $menuPermissions['menu_complexes'] == 1))
&& (in_array($_SESSION['agency_id'], $agenciesHaveAccessToNewComplexes) || $user->role_developer)
) { ?>
<li data-anchor="44">
<a href="#">Настройка статусов</a>
</li>
<?php } ?>
<?php if (
($_SESSION['agency'] || $_SESSION['users_admin'] || (!empty($menuPermissions) && $menuPermissions['menu_complexes'] == 1))
&& (in_array($_SESSION['agency_id'], $agenciesHaveAccessToNewComplexes) || $user->role_developer)
) { ?>
<li data-anchor="45">
<a href="#">Настройка рассрочек</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<li data-anchor="46">
<a href="#">Настройка типов заявок</a>
</li>
<li data-anchor="47">
<a href="#">Список причин закрытия</a>
</li>
<li data-anchor="48">
<a href="#">Настройка типов договоров</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks && $user->can('object-fields')) { ?>
<li data-anchor="49">
<a href="#">Настройка полей объектов</a>
</li>
<li data-anchor="50">
<a href="#">Блоки размещения</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<li data-anchor="491">
<a href="#">Настройка полей клиентов и заявок</a>
</li>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<li data-anchor="492">
<a href="#">Настройка веб-хуков</a>
</li>
<?php } ?>
</ul>
</div>
<div class="lw-settings-block__content-section-main">
<!-- Настройка рекламных источников -->
<?php if ($show_settings_blocks) { ?>
<?php if ($_SESSION['users_admin']) { ?>
<input type="hidden" id="source_user_id" value="<?= $user->agencyId ?>">
<input type="hidden" id="source_manager_id" value="0">
<?php } else { ?>
<input type="hidden" id="source_user_id" value="<?= $user->id ?>">
<input type="hidden" id="source_manager_id" value="<?= $user->id_manager ?>">
<?php } ?>
<div class="lw-settings-block__section" data-section-content="21" id="advertising_sources" data-anchor-dest="41">
<h2>Настройка рекламных источников:</h2>
<div class="flat__modal">
<?php
if ($user->agency == 0 && $user->manager == 0 && $user->id_manager == 0) {
$user->agency = 1;
}
$sql_advg = "SELECT * FROM `advertising_sources_groups` WHERE `user_id` = '" . $user->id . "' or `manager_id` = '" . $user->id . "'";
if ($user->id_manager) {
$sql_advg .= " or `manager_id` = '" . $user->id_manager . "' or `user_id` = '" . $user->id_manager . "'";
}
if ($user->agencyId || $_SESSION['users_admin']) {
$sql_advg .= " or `user_id` in (select u.id from users u where u.`id_manager` = '" . $user->agencyId . "')";
}
// echo $sql_advg;
$q_advg = mysql_query($sql_advg);
?>
<ul class="docs docsdirs">
<?php while ($r_advg = mysql_fetch_assoc($q_advg)) { ?>
<li data-id="<?= $r_advg['id'] ?>" data-name="<?= $r_advg['name'] ?>" class="dir opened">
<span class="dir-link">
<span class="dir-name"><?= $r_advg['name'] ?></span>
<?php if ($user->agency || $user->manager || $_SESSION['users_admin']) { ?>
<a href="javascript:{};" data-id="<?= $r_advg['id'] ?>" data-name="<?= $r_advg['name'] ?>" class="fl-right editGroup no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-settings"></i>
</span>
<span class="tooltip-content tt-pdf clear"><b class="tooltip-text">Редактировать группу</b></span>
</a>
<a data-id="<?= $r_advg['id'] ?>" href="javascript:{};" class="fl-right delGroup no-border tooltip tooltip-effect">
<span class="simple-button tooltip-item">
<i class="ti-close"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Удалить группу</b>
</span>
</a>
<?php } ?>
</span>
<?php
$sql_adv = "SELECT * FROM `advertising_sources` WHERE group_id = " . $r_advg['id'] . " AND (`user_id` = '" . $user->id . "' or `manager_id` = '" . $user->id . "'";
if ($user->id_manager) {
$sql_adv .= " or `manager_id` = '" . $user->id_manager . "' or `user_id` = '" . $user->id_manager . "'";
}
if ($user->agencyId || $_SESSION['users_admin']) {
$sql_adv .= " or `manager_id` = '" . $user->agencyId . "' or `user_id` = '" . $user->agencyId . "'";
}
$sql_adv .= ")";
$q_adv = mysql_query($sql_adv);
$rows_adv = mysql_num_rows($q_adv);
if ($rows_adv > 0) {
?>
<ul id="group_source_<?= $r_advg['id'] ?>" class="hidden">
<?php while ($r_adv = mysql_fetch_assoc($q_adv)) {
$users_no_see = null;
if(!empty($r_adv['users_no_see'])){
$users_no_see = json_encode(json_decode($r_adv['users_no_see']));
}
?>
<li id="advertising_sources_li_<?= $r_adv['id'] ?>">
<span class="adv_source">- <?= $r_adv['source'] ?></span>
<?php if ($user->agency || $user->manager || $_SESSION['users_admin']) { ?>
<a data-id="<?= $r_adv['id'] ?>" href="javascript:{};" class="fl-right delSources no-border tooltip tooltip-effect">
<span class="simple-button tooltip-item">
<i class="ti-close"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Удалить источник</b>
</span>
</a>
<a href="javascript:{};" data-id="<?= $r_adv['id'] ?>" data-source="<?= $r_adv['source'] ?>" data-group="<?= $r_advg['id'] ?>" data-is_see="<?= $r_adv['is_no_see'] ?>" data-users_no_see='<?=$users_no_see?>' class="fl-right editSources no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-settings"></i>
</span>
<span class="tooltip-content tt-pdf clear"><b class="tooltip-text">Редактировать источник</b></span>
</a>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } else { ?>
<div style="padding: 7px 0;" id="group_source_<?= $r_advg['id'] ?>" class="hidden">
<span class="adv_source">-Рекламных источников не найдено</span>
</div>
<?php } ?>
</li>
<?php }
$sql_adv = "SELECT * FROM `advertising_sources` WHERE group_id = 0 AND (`user_id` = '" . $user->id . "' or `manager_id` = '" . $user->id . "'";
if ($user->id_manager) {
$sql_adv .= " or `manager_id` = '" . $user->id_manager . "' or `user_id` = '" . $user->id_manager . "'";
}
if ($user->agencyId || $_SESSION['users_admin']) {
$sql_adv .= " or `manager_id` = '" . $user->agencyId . "' or `user_id` = '" . $user->agencyId . "'";
}
$sql_adv .= ")";
$q_adv = mysql_query($sql_adv);
$rows_adv = mysql_num_rows($q_adv);
if ($rows_adv > 0) {
?>
<li data-id="0" class="dir opened">
<span class="dir-link">
<span class="dir-name">Без группы</span>
</span>
<ul id="group_source_0" class="hidden">
<?php while ($r_adv = mysql_fetch_assoc($q_adv)) {
$users_no_see = null;
if(!empty($r_adv['users_no_see'])){
$users_no_see = json_encode(json_decode($r_adv['users_no_see']));
}
?>
<li id="advertising_sources_li_<?= $r_adv['id'] ?>">
<span class="adv_source">- <?= $r_adv['source'] ?></span>
<?php if ($user->agency || $user->manager || $_SESSION['users_admin']) { ?>
<a href="javascript:{};" data-id="<?= $r_adv['id'] ?>" data-source="<?= $r_adv['source'] ?>" data-group="0" data-is_see="<?= $r_adv['is_no_see'] ?>" data-users_no_see='<?=$users_no_see?>' class="fl-right editSources no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-settings"></i>
</span>
<span class="tooltip-content tt-pdf clear"><b class="tooltip-text">Редактировать источник</b></span>
</a>
<a data-id="<?= $r_adv['id'] ?>" href="javascript:{};" class="fl-right delSources no-border tooltip tooltip-effect">
<span class="simple-button tooltip-item">
<i class="ti-close"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Удалить источник</b>
</span>
</a>
<?php } ?>
</li>
<?php } ?>
</ul>
</li>
<?php } ?>
</ul>
</div>
<?php if ($user->agency || $user->manager || $_SESSION['users_admin']) { ?>
<div class="lw-settings-block__submit-row">
<a class="fr-btn edit-btn steel i-btn very-small" href="javascript:{};">Добавить источник</a>
<a data-id="0" class="fr-btn group-btn steel i-btn very-small" href="javascript:{};">Добавить группу</a>
</div>
<?php } ?>
</div>
<?php } ?>
<!-- Настройка связей -->
<?php if($_SESSION['id'] == 5238 || $_SESSION['id'] == 117 || ($user->agencyId == 19895 && ($user->agency || $_SESSION['users_admin']))) { ?>
<div class="lw-settings-block__section" data-section-content="21" id="advertising_sources_connection" data-anchor-dest="411">
<div>
<h2>Система управления связями:</h2>
<p style="margin: 10px 0 20px; color: #666;">Управляйте источниками трафика, интеграциями и воронками</p>
<button class="as_main-button" @click="openModal">Открыть настройки</button>
</div>
<div class="as_modal-overlay" v-if="is_show">
<div class="as_modal">
<div class="as_modal-header">
<div class="as_tabs">
<div class="as_tab" :class="{'active': switchTab == 'settings'}" @click="switch_tab('settings')">Настройки</div>
<div class="as_tab" :class="{'active': switchTab == 'history'}" @click="switch_tab('history')">История</div>
</div>
<button class="as_close-btn" @click="closeModal">&times;</button>
</div>
<div class="as_modal-body">
<!-- Вкладка Настройки -->
<div class="as_tab-content" :class="{'active': switchTab == 'settings'}">
<div class="as_filters">
<div class="as_filter-group">
<label>Поиск</label>
<input type="text" placeholder="Домен, тег или источник..." v-model="filter.name">
</div>
<div class="as_filter-group">
<label>Тип интеграции</label>
<v-select :clearable="true" :components="{OpenIndicator}" multiple class="vue_select" style="border: none;" :options="types_integration" :reduce="name => name.code" label="name" v-model="filter.type" />
</div>
<button class="as_btn-filter" @click="search_source">Применить</button>
</div>
<div class="as_table-header">
<h3>Текущие связи</h3>
<button class="as_btn-add" @click="openForm('add')">
<span>+</span>
<span>Добавить</span>
</button>
</div>
<div v-if="isPreloader" style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>
<table v-else>
<thead>
<tr>
<th>Источник</th>
<th>Тип связи</th>
<th>Внутренние теги</th>
<th>Воронки</th>
<th>Ответственный</th>
<th>Действия</th>
</tr>
</thead>
<tbody>
<tr v-for="(source, source_index) in arraySources">
<td>{{ source.source }}</td>
<td>{{ source.type_name }}</td>
<td>
<div v-if="!isEmpty(source.tags)" class="as_tag-list">
<span v-for="tag in source.tags" class="as_tag">{{ tag.name }}</span>
</div>
</td>
<td>
<!--<span v-if="isEmpty(source.name_funnel)">Покупатели (клиенты)</span>
<span v-else>{{ source.name_funnel }} (клиенты)</span><br>-->
<span v-if="isEmpty(source.name_funnel_req)">Покупатели (заявки)</span>
<span v-else>{{ source.name_funnel_req }} (заявки)</span>
</td>
<td>{{ source.user }}</td>
<td>
<button class="as_btn-edit" @click="openForm('edit', source_index)" title="Редактировать">✏️</button>
<button class="as_btn-delete" @click="openDeleteDialog(source_index)" title="Удалить">🗑️</button>
</td>
</tr>
</tbody>
</table>
<div v-show="all_pages > 1" class="as_pagination">
<template v-if="page==1">
<button class="as_page-btn active">1</button>
</template>
<template v-else>
<button @click="pagin(prevPage)" class="as_page-btn"></button>
<button @click="pagin(1)" class="as_page-btn">1</button>
</template>
<template v-if="all_pages > 8 && page > 4">
<button class="as_page-btn">...</button>
</template>
<template v-for="pp in pagePagin">
<button class="as_page-btn" :class="{active:pp==page}" @click="pagin(pp)">{{pp}}</button>
</template>
<template v-if="all_pages > 8 && page < all_pages - 4">
<button class="as_page-btn">...</button>
</template>
<template v-if="page == all_pages">
<button @click="pagin(all_pages)" class="as_page-btn active">{{all_pages}}</button>
</template>
<template v-else>
<button @click="pagin(all_pages)" class="as_page-btn">{{all_pages}}</button>
<button @click="pagin(page+1)" class="as_page-btn"></button>
</template>
</div>
</div>
<!-- Вкладка История -->
<div class="as_tab-content" :class="{'active': switchTab == 'history'}">
<div class="as_filters">
<div class="as_filter-group">
<label>Дата от</label>
<vuejs-datepicker :placeholder="'дд.мм.гггг'" v-model="filter.date_start" :inline="false" :full-month-name="true" :language="ru" :format="format" :monday-first="mondayfirst">
<span slot="afterDateInput" class="as_filters__date-icon">
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_1_405)"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.4375 14H9.5625V15.125H8.4375V14ZM8.4375 16.25H9.5625C10.1835 16.25 10.6875 15.746 10.6875 15.125V14C10.6875 13.379 10.1835 12.875 9.5625 12.875H8.4375C7.8165 12.875 7.3125 13.379 7.3125 14V15.125C7.3125 15.746 7.8165 16.25 8.4375 16.25ZM3.9375 14H5.0625V15.125H3.9375V14ZM3.9375 16.25H5.0625C5.6835 16.25 6.1875 15.746 6.1875 15.125V14C6.1875 13.379 5.6835 12.875 5.0625 12.875H3.9375C3.3165 12.875 2.8125 13.379 2.8125 14V15.125C2.8125 15.746 3.3165 16.25 3.9375 16.25ZM8.4375 9.5H9.5625V10.625H8.4375V9.5ZM8.4375 11.75H9.5625C10.1835 11.75 10.6875 11.246 10.6875 10.625V9.5C10.6875 8.879 10.1835 8.375 9.5625 8.375H8.4375C7.8165 8.375 7.3125 8.879 7.3125 9.5V10.625C7.3125 11.246 7.8165 11.75 8.4375 11.75ZM3.9375 9.5H5.0625V10.625H3.9375V9.5ZM3.9375 11.75H5.0625C5.6835 11.75 6.1875 11.246 6.1875 10.625V9.5C6.1875 8.879 5.6835 8.375 5.0625 8.375H3.9375C3.3165 8.375 2.8125 8.879 2.8125 9.5V10.625C2.8125 11.246 3.3165 11.75 3.9375 11.75ZM16.3125 5H1.6875V3.875C1.6875 3.254 2.1915 2.75 2.8125 2.75H5.0625V3.3125C5.0625 3.62356 5.31394 3.875 5.625 3.875C5.93606 3.875 6.1875 3.62356 6.1875 3.3125V2.75H11.8125V3.3125C11.8125 3.62356 12.0639 3.875 12.375 3.875C12.6861 3.875 12.9375 3.62356 12.9375 3.3125V2.75H15.1875C15.8085 2.75 16.3125 3.254 16.3125 3.875V5ZM16.3125 16.25C16.3125 16.871 15.8085 17.375 15.1875 17.375H2.8125C2.1915 17.375 1.6875 16.871 1.6875 16.25V6.125H16.3125V16.25ZM15.1875 1.625H12.9375V1.0625C12.9375 0.752 12.6861 0.5 12.375 0.5C12.0639 0.5 11.8125 0.752 11.8125 1.0625V1.625H6.1875V1.0625C6.1875 0.752 5.93606 0.5 5.625 0.5C5.31394 0.5 5.0625 0.752 5.0625 1.0625V1.625H2.8125C1.56994 1.625 0.5625 2.63244 0.5625 3.875V16.25C0.5625 17.4926 1.56994 18.5 2.8125 18.5H15.1875C16.4301 18.5 17.4375 17.4926 17.4375 16.25V3.875C17.4375 2.63244 16.4301 1.625 15.1875 1.625ZM12.9375 9.5H14.0625V10.625H12.9375V9.5ZM12.9375 11.75H14.0625C14.6835 11.75 15.1875 11.246 15.1875 10.625V9.5C15.1875 8.879 14.6835 8.375 14.0625 8.375H12.9375C12.3165 8.375 11.8125 8.879 11.8125 9.5V10.625C11.8125 11.246 12.3165 11.75 12.9375 11.75ZM12.9375 14H14.0625V15.125H12.9375V14ZM12.9375 16.25H14.0625C14.6835 16.25 15.1875 15.746 15.1875 15.125V14C15.1875 13.379 14.6835 12.875 14.0625 12.875H12.9375C12.3165 12.875 11.8125 13.379 11.8125 14V15.125C11.8125 15.746 12.3165 16.25 12.9375 16.25Z" fill="#9E9E9E"></path></g> <defs><clipPath id="clip0_1_405"><rect width="18" height="18" fill="white" transform="translate(0 0.5)"></rect></clipPath></defs></svg>
</span>
</vuejs-datepicker>
</div>
<div class="as_filter-group">
<label>Дата до</label>
<vuejs-datepicker :placeholder="'дд.мм.гггг'" v-model="filter.date_end" :inline="false" :full-month-name="true" :language="ru" :format="format" :monday-first="mondayfirst">
<span slot="afterDateInput" class="as_filters__date-icon">
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_1_405)"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.4375 14H9.5625V15.125H8.4375V14ZM8.4375 16.25H9.5625C10.1835 16.25 10.6875 15.746 10.6875 15.125V14C10.6875 13.379 10.1835 12.875 9.5625 12.875H8.4375C7.8165 12.875 7.3125 13.379 7.3125 14V15.125C7.3125 15.746 7.8165 16.25 8.4375 16.25ZM3.9375 14H5.0625V15.125H3.9375V14ZM3.9375 16.25H5.0625C5.6835 16.25 6.1875 15.746 6.1875 15.125V14C6.1875 13.379 5.6835 12.875 5.0625 12.875H3.9375C3.3165 12.875 2.8125 13.379 2.8125 14V15.125C2.8125 15.746 3.3165 16.25 3.9375 16.25ZM8.4375 9.5H9.5625V10.625H8.4375V9.5ZM8.4375 11.75H9.5625C10.1835 11.75 10.6875 11.246 10.6875 10.625V9.5C10.6875 8.879 10.1835 8.375 9.5625 8.375H8.4375C7.8165 8.375 7.3125 8.879 7.3125 9.5V10.625C7.3125 11.246 7.8165 11.75 8.4375 11.75ZM3.9375 9.5H5.0625V10.625H3.9375V9.5ZM3.9375 11.75H5.0625C5.6835 11.75 6.1875 11.246 6.1875 10.625V9.5C6.1875 8.879 5.6835 8.375 5.0625 8.375H3.9375C3.3165 8.375 2.8125 8.879 2.8125 9.5V10.625C2.8125 11.246 3.3165 11.75 3.9375 11.75ZM16.3125 5H1.6875V3.875C1.6875 3.254 2.1915 2.75 2.8125 2.75H5.0625V3.3125C5.0625 3.62356 5.31394 3.875 5.625 3.875C5.93606 3.875 6.1875 3.62356 6.1875 3.3125V2.75H11.8125V3.3125C11.8125 3.62356 12.0639 3.875 12.375 3.875C12.6861 3.875 12.9375 3.62356 12.9375 3.3125V2.75H15.1875C15.8085 2.75 16.3125 3.254 16.3125 3.875V5ZM16.3125 16.25C16.3125 16.871 15.8085 17.375 15.1875 17.375H2.8125C2.1915 17.375 1.6875 16.871 1.6875 16.25V6.125H16.3125V16.25ZM15.1875 1.625H12.9375V1.0625C12.9375 0.752 12.6861 0.5 12.375 0.5C12.0639 0.5 11.8125 0.752 11.8125 1.0625V1.625H6.1875V1.0625C6.1875 0.752 5.93606 0.5 5.625 0.5C5.31394 0.5 5.0625 0.752 5.0625 1.0625V1.625H2.8125C1.56994 1.625 0.5625 2.63244 0.5625 3.875V16.25C0.5625 17.4926 1.56994 18.5 2.8125 18.5H15.1875C16.4301 18.5 17.4375 17.4926 17.4375 16.25V3.875C17.4375 2.63244 16.4301 1.625 15.1875 1.625ZM12.9375 9.5H14.0625V10.625H12.9375V9.5ZM12.9375 11.75H14.0625C14.6835 11.75 15.1875 11.246 15.1875 10.625V9.5C15.1875 8.879 14.6835 8.375 14.0625 8.375H12.9375C12.3165 8.375 11.8125 8.879 11.8125 9.5V10.625C11.8125 11.246 12.3165 11.75 12.9375 11.75ZM12.9375 14H14.0625V15.125H12.9375V14ZM12.9375 16.25H14.0625C14.6835 16.25 15.1875 15.746 15.1875 15.125V14C15.1875 13.379 14.6835 12.875 14.0625 12.875H12.9375C12.3165 12.875 11.8125 13.379 11.8125 14V15.125C11.8125 15.746 12.3165 16.25 12.9375 16.25Z" fill="#9E9E9E"></path></g> <defs><clipPath id="clip0_1_405"><rect width="18" height="18" fill="white" transform="translate(0 0.5)"></rect></clipPath></defs></svg>
</span>
</vuejs-datepicker>
</div>
<div class="as_filter-group">
<label>Пользователь</label>
<v-select :clearable="true" :components="{OpenIndicator}" placeholder="Все пользователи" :selectable="(users) => users.type == 'label'" multiple class="vue_select" style="border: none;" :options="users" :reduce="name => name.code" label="name" v-model="filter.users">
<template #option="{ name, type }">
<span v-if="type=='group'" style="margin: 0; color:#000; font-size: 14px; font-weight: bold;">{{ name }}</span>
<span v-else style="margin-left:10px;">{{ name }}</span>
</template>
</v-select>
</div>
<div class="as_filter-group">
<label>Тип действия</label>
<v-select :clearable="true" :components="{OpenIndicator}" placeholder="Все действия" multiple class="vue_select" style="border: none;" :options=" events_integration" :reduce="name => name.code" label="name" v-model="filter.event" />
</div>
<button class="as_btn-filter" @click="search_log">Применить</button>
</div>
<div v-if="isPreloader" style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>
<table v-else>
<thead>
<tr>
<th>Дата</th>
<th>Пользователь</th>
<th>Тип действия</th>
<th>Детали</th>
</tr>
</thead>
<tbody>
<tr v-for="(log, indexLog) in arrayLogs">
<td>{{ log.create_at }}</td>
<td>{{ log.user }}</td>
<td>{{ log.event_name }}</td>
<td>
<button class="as_btn-view" @click="showTooltip(indexLog, $event)">Просмотр</button>
</td>
</tr>
</tbody>
</table>
<div v-show="all_pages > 1" class="as_pagination">
<template v-if="page==1">
<button class="as_page-btn active">1</button>
</template>
<template v-else>
<button @click="pagin(prevPage)" class="as_page-btn"></button>
<button @click="pagin(1)" class="as_page-btn">1</button>
</template>
<template v-if="all_pages > 8 && page > 4">
<button class="as_page-btn">...</button>
</template>
<template v-for="pp in pagePagin">
<button class="as_page-btn" :class="{active:pp==page}" @click="pagin(pp)">{{pp}}</button>
</template>
<template v-if="all_pages > 8 && page < all_pages - 4">
<button class="as_page-btn">...</button>
</template>
<template v-if="page == all_pages">
<button @click="pagin(all_pages)" class="as_page-btn active">{{all_pages}}</button>
</template>
<template v-else>
<button @click="pagin(all_pages)" class="as_page-btn">{{all_pages}}</button>
<button @click="pagin(page+1)" class="as_page-btn"></button>
</template>
</div>
</div>
</div>
</div>
</div>
<!-- Модальное окно формы -->
<div class="as_modal-overlay" v-if="showForm">
<div class="as_modal" style="width: 600px; height: auto; max-height: 80%;">
<div class="as_modal-header">
<h3 v-if="mode == 'add'">Добавить связь</h3>
<h3 v-else>Редактировать связь</h3>
<button class="as_close-btn" @click="closeForm">&times;</button>
</div>
<div class="as_modal-body">
<form id="connectionForm">
<div class="as_form-group">
<label>Источник<span v-if="!isEmpty(errors.source)" class="invalid">{{ errors.source }}</span></label>
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" @input="get_data_source(item.source)" :class="{'invalid': !isEmpty(errors.source)}" style="border: none;" :options="sources" :reduce="name => name.code" label="name" v-model="item.source" />
</div>
<div class="as_form-group">
<label>Тип связи</label>
<div class="as_radio-group">
<label>
<input :disabled="mode=='edit'" type="radio" value="tag" v-model="item.type_source_conect">
Внешний тег
</label>
<label>
<input :disabled="mode=='edit'" type="radio" value="domain" v-model="item.type_source_conect">
Домен + Интеграция
</label>
</div>
</div>
<div v-if="item.type_source_conect === 'tag'" class="as_conditional-field">
<div class="as_form-group">
<label>Внешний тег<span v-if="!isEmpty(errors.name)" class="invalid">{{ errors.name }}</span></label>
<input type="text" placeholder="Введите тег, например, google" :class="{'invalid': !isEmpty(errors.name)}" v-model="item.name">
</div>
</div>
<div v-else-if="item.type_source_conect === 'domain'" class="as_conditional-field">
<div class="as_form-group">
<label>Домен<span v-if="!isEmpty(errors.name)" class="invalid">{{ errors.name }}</span></label>
<input type="text" :class="{'invalid': !isEmpty(errors.name)}" placeholder="example.com" v-model="item.name">
</div>
<div class="as_form-group">
<label>Тип интеграции<span v-if="!isEmpty(errors.type)" :class="invalid">{{ errors.type }}</span></label>
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" :class="{'invalid': !isEmpty(errors.type)}" style="border: none;" :options="type_integration" :reduce="name => name.code" label="name" v-model="item.type" />
</div>
</div>
<div class="as_form-group">
<label>Внутренние теги</label>
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" multiple style="border: none;" :options="tags" :reduce="name => name.code" label="name" v-model="item.tags" />
</div>
<div class="as_form-group">
<label>Ответственный</label>
<v-select class="vue_select" :selectable="(users) => users.type == 'label'" :components="{OpenIndicator}" :options="users" :reduce="name => name.code" placeholder="Общие" label="name" v-model="item.who_work"/>
<template #option="{ name, type }">
<span v-if="type=='group'" style="margin: 0; color:#000; font-size: 14px; font-weight: bold;">{{ name }}</span>
<span v-else style="margin-left:10px;">{{ name }}</span>
</template>
<v-select>
</div>
<!--<div class="as_form-group">
<label>Воронка для клиентов</label>
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" style="border: none;" :options="funnels" placeholder="Покупатели" :reduce="name => name.id" label="name" v-model="item.funnel_id" />
</div>-->
<div class="as_form-group">
<label>Воронка для заявок</label>
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" style="border: none;" :options="funnels" placeholder="Покупатели" :reduce="name => name.id" label="name" v-model="item.funnel_id_req" />
</div>
<div class="as_form-actions">
<button type="button" class="as_btn-cancel" @click="closeForm">Отмена</button>
<button type="button" class="as_btn-save" @click="save">Сохранить</button>
</div>
</form>
</div>
</div>
</div>
<!-- Диалог подтверждения удаления -->
<div class="as_modal-overlay" v-if="isDialogDel">
<div class="as_confirm-dialog">
<h3>Подтверждение удаления</h3>
<p>Вы уверены, что хотите удалить эту связь?</p>
<div class="as_confirm-actions">
<button class="as_btn-cancel" @click="isDialogDel=false">Отмена</button>
<button class="as_btn-delete" @click="confirmDelete()">Удалить</button>
</div>
</div>
</div>
<!-- Тултип для деталей истории -->
<div class="as_details-tooltip" v-show="isDetailsTooltip" id="as_details-tooltip">
<div class="as_detail-row" v-html="textDetails">
</div>
<div class="as_detail-row">
<span class="as_label">Источник:</span> {{ sourceDetails }}
</div>
</div>
</div>
<?php } ?>
<!-- Настройка рекламных источников -->
<?php if ($show_settings_blocks) { ?>
<div class="lw-settings-block__section" data-section-content="22" id="activities" data-anchor-dest="42">
<h2>Настройка тегов:</h2>
<?php
if ($user->agency == 0 && $user->manager == 0 && $user->id_manager == 0) {
$user->agency = 1;
}
//var_dump($user);
$sql_adv = "SELECT * FROM `activities` WHERE `user_id` = '" . $user->id . "' or `manager_id` = '" . $user->id . "'";
if ($user->id_manager) {
$sql_adv .= " or `manager_id` = '" . $user->id_manager . "' or `user_id` = '" . $user->id_manager . "'";
}
if ($user->agencyId) {
$sql_adv .= " or `manager_id` = '" . $user->agencyId . "' or `user_id` = '" . $user->agencyId . "'";
}
// echo $sql_adv;
$q_adv = mysql_query($sql_adv);
$rows_adv = mysql_num_rows($q_adv);
if ($rows_adv > 0) {
?>
<ul class="lw-settings-block__list">
<?php while ($r_adv = mysql_fetch_assoc($q_adv)) { ?>
<li id="activities_li_<?= $r_adv['id'] ?>">
<div style="margin-top: -5px; background-color: <?= (!empty($r_adv['color'])) ? $r_adv['color'] : 'rgb(222, 222, 222);'?>" class="color-indicator"></div>
<span class="adv_activities"><?= $r_adv['name'] ?></span>
<?php if ($user->agency || $user->manager || $_SESSION['users_admin']) { ?>
<a href="javascript:{};" data-id="<?= $r_adv['id'] ?>" data-activities="<?= $r_adv['name'] ?>" data-color="<?= $r_adv['color'] ?>" class="fl-right editActivities no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-settings"></i>
</span>
<span class="tooltip-content tt-pdf clear"><b class="tooltip-text">Редактировать</b></span>
</a>
<a data-id="<?= $r_adv['id'] ?>" href="javascript:{};" class="fl-right delActivities no-border tooltip tooltip-effect">
<span class="simple-button tooltip-item">
<i class="ti-close"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Удалить</b>
</span>
</a>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } else { ?>
<div class="empty-block" style="margin-top: 30px;">
<h2>Назначений деятельности не найдено</h2>
</div>
<?php }
if ($user->agency || $user->manager || $_SESSION['users_admin']) { ?>
<div class="lw-settings-block__submit-row">
<a class="fr-btn edit-btn steel i-btn very-small" href="javascript:{};">Добавить</a>
</div>
<?php } ?>
</div>
<?php } ?>
<?php if ($show_settings_blocks) {
if ($user->agency || $user->id == 5817 || $_SESSION['users_admin'] || $user->role_developer) { ?>
<div class="lw-settings-block__section" data-section-content="22" id="block_roles" data-anchor-dest="43">
<input type="hidden" id="agency_id_dep" value="<?= $user->agencyId ?>" />
<h2>Настройка ролей пользователей</h2>
<h2 style="margin:0px">Отделы:</h2>
<ul class="lw-settings-block__list">
<li v-for="(otdel, otdelId) in otdels" :key="otdelId">
<span class="adv_activities" v-html="'- '+otdel.name"></span>
<?php if ($user->agency || $_SESSION['users_admin'] || $user->role_developer) { ?>
<a @click="editOtdel(otdelId)" href="javascript:{};" class="fl-right no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-settings"></i>
</span>
<span class="tooltip-content tt-pdf clear"><b class="tooltip-text">Редактировать</b></span>
</a>
<a href="javascript:{};" @click="deleteOtdel(otdelId)" class="fl-right no-border tooltip tooltip-effect">
<span class="simple-button tooltip-item">
<i class="ti-close"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Удалить</b>
</span>
</a>
<?php } ?>
</li>
</ul>
<div style="margin-top: 10px;" class="bottom">
<span><a class="fr-btn steel i-btn very-small" id="setting_add_otdel" href="javascript:{}">Добавить отдел</a></span>
</div>
</div>
<?php }
} ?>
<?php if (
($_SESSION['agency'] || $_SESSION['users_admin'] || (!empty($menuPermissions) && $menuPermissions['menu_complexes'] == 1))
&& (in_array($_SESSION['agency_id'], $agenciesHaveAccessToNewComplexes) || $user->role_developer)
) { ?>
<div class="lw-settings-block__section" data-section-content="23" id="complex_status" data-anchor-dest="44">
<div class="fieldset">
<h2>Настройка статусов:</h2>
<a name="customFields" style="visibility:hidden;height:0;display:none;">&nbsp;</a>
<div v-if="!isEmpty(complexStatusList)" class="jw__NB">
<div class="jw__NB__flat-list">
<table>
<thead>
<tr>
<div style="text-align:center; vertical-align: middle; border-bottom: 1px solid #dedede; color: #757575; font-size: 15px; padding: 15px 10px 15px 0;">Статус</div>
</tr>
</thead>
<tbody style="display: block; max-height: 510px; overflow: auto;">
<tr v-if="!isEmpty(complexStatusList)" v-for="(item, index) in complexStatusList" :key="item.id" :id="'complex_status_li_' + item.id" style="cursor: unset; display: flex; justify-content: space-between;">
<td style="display: flex; align-items: center; gap: 5px; border-bottom: unset;">
<div class="color-indicator" :style="{'background-color': item.color}"></div>
<span>{{ item.name }}</span>
</td>
<td style="border-bottom: unset;" v-if="item.agency_id" width="50">
<a href="javascript:{};" @click="edit(index)" title="Редактировать">
<i class="ti-pencil"></i>
</a>
&nbsp;
<a href="javascript:{};" @click="archive(index, $event)" title="В архив">
<i class="ti-arrow-right"></i>
</a>
</td>
</tr>
</tbody>
</table>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить новое поле">
Добавить статус
</a>
</p>
</div>
</div>
<div v-else class="empty-block">
<h3>Статус не найдены</h3>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить новое поле">
Добавить статус
</a>
</p>
</div>
</div>
<div class="fieldset">
<h2>Архив статусов:</h2>
<a name="customFields" style="visibility:hidden;height:0;display:none;">&nbsp;</a>
<div v-if="!isEmpty(complexStatusListArchive)" class="jw__NB">
<div class="jw__NB__flat-list">
<table>
<thead>
<tr>
<div style="text-align:center; vertical-align: middle; border-bottom: 1px solid #dedede; color: #757575; font-size: 15px; padding: 15px 10px 15px 0;">
Статус
</div>
</tr>
</thead>
<tbody style="display: block; max-height: 510px; overflow: auto;">
<tr v-if="!isEmpty(complexStatusListArchive)" v-for="(item, index) in complexStatusListArchive" :key="item.id" :id="'complex_status_li_' + item.id" style="cursor: unset; display: flex; justify-content: space-between;">
<td style="display: flex; align-items: center; gap: 5px; border-bottom: unset;">
<div class="color-indicator" :style="{'background-color': item.color}"></div>
<span>{{ item.name }}</span>
</td>
<td style="border-bottom: unset;" width="50">
<a href="javascript:{};" @click="recover(index)" title="Восстановить">
<i class="ti-back-right"></i>
</a>
&nbsp;
<a href="javascript:{};" @click="deleted(index)" title="Удалить">
<i class="ti-trash"></i>
</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div v-else class="empty-block">
<h3>Статусы не найдены</h3>
</div>
</div>
<div class="full_modal-bg hidden" v-show="isEditForm">
<span class="event-modal-close closer" @click="isEditForm=false">
<i class="ti-close"></i>
</span>
<div class="full_modal hidden" v-show="isEditForm">
<form class="form-validate">
<div class="modal-inner">
<div v-if="errorMes" style="margin: 0 0 15px 0;" class="error_msg" v-html="errorText"></div>
<h2 v-if="complex_status_id > 0">Редактирование статуса</h2>
<h2 v-else>Новый статус</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Название:</label>
</div>
<div class="inputs">
<div v-if="status" class="inputs-group">
<input type="text" class="number text small-input" :class="{'invalid': error_name}" v-model.trim="status.name" />
</div>
</div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Наследует поведение:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" :class="{'invalid': error_status}" style="border: none;" :options="defaultComplexStatusList" :reduce="item => item.status" :key="status.status" label="name" v-model="status.status" />
</div>
<div v-if="status.status == 'reservation'">
<div class="form-block" style="margin-bottom: 0;">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Выберите тип бронирования</label>
</div>
<div class="inputs-group">
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" :class="{'invalid': error_booking_type}" style="border: none;" :options="bookingTypes" :key="status.booking_type" :reduce="item => item.type" label="name" v-model="status.booking_type" />
</div>
</div>
<div v-if="status.booking_type && status.booking_type == 'temporary'" class="form-block" style="margin-bottom: 0;">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Срок временной брони</label>
</div>
<div class="inputs" style="display: flex; width: 100%; gap: 10px;">
<div style="display: flex;">
<input placeholder="Час" :class="{'invalid': error_booking_hour}" type="number" v-model="status.booking_hour">
<div>
<svg @click="() => status.booking_hour++" style="cursor: pointer;" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
<svg @click="() => status.booking_hour--" style="cursor: pointer;transform: rotate(180deg);" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
</div>
</div>
<div v-if="booking_time_type == 'day'" style="display: flex;">
<input placeholder="День" :class="{'invalid': error_booking_day}" type="number" v-model="status.booking_day">
<div>
<svg @click="() => status.booking_day++" style="cursor: pointer;" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
<svg @click="() => status.booking_day--" style="cursor: pointer;transform: rotate(180deg);" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
</div>
</div>
<div class="inputs-group">
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" style="border: none;" :class="{'invalid': error_status}" :options="bookingTimes" :reduce="item => item.type" label="name" v-model="booking_time_type" />
</div>
</div>
</div>
<div v-if="status.booking_type && status.booking_type == 'temporary'" class="form-block">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Срок уведомления об истечении брони</label>
</div>
<div class="inputs" style="display: flex; width: 100%; gap: 10px;">
<div style="display: flex;">
<input placeholder="Час" :class="{'invalid': error_reminder_hour}" type="number" v-model="status.reminder_hour">
<div>
<svg @click="() => status.reminder_hour++" style="cursor: pointer;" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
<svg @click="() => status.reminder_hour--" style="cursor: pointer;transform: rotate(180deg);" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
</div>
</div>
<div v-if="reminder_time_type == 'day'" style="display: flex;">
<input placeholder="День" :class="{'invalid': error_reminder_day}" type="number" v-model="status.reminder_day">
<div>
<svg @click="() => status.reminder_day++" style="cursor: pointer;" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
<svg @click="() => status.reminder_day--" style="cursor: pointer;transform: rotate(180deg);" xmlns="http://www.w3.org/2000/svg" width="20px" height="15px" viewBox="0 0 24 24" fill="none" stroke="#828282">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<path d="M18.2929 15.2893C18.6834 14.8988 18.6834 14.2656 18.2929 13.8751L13.4007 8.98766C12.6195 8.20726 11.3537 8.20757 10.5729 8.98835L5.68257 13.8787C5.29205 14.2692 5.29205 14.9024 5.68257 15.2929C6.0731 15.6835 6.70626 15.6835 7.09679 15.2929L11.2824 11.1073C11.673 10.7168 12.3061 10.7168 12.6966 11.1073L16.8787 15.2893C17.2692 15.6798 17.9024 15.6798 18.2929 15.2893Z" fill="#828282" />
</g>
</svg>
</div>
</div>
<div class="inputs-group">
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" style="border: none;" :class="{'invalid': error_status}" :options="bookingTimes" :reduce="item => item.type" label="name" v-model="reminder_time_type" />
</div>
</div>
</div>
<div v-if="status.booking_type && status.booking_type == 'temporary'" class="form-block" style="margin-bottom: 0px;">
<div class="form-label form-search__main-label">
<div class="inputs-group" style="display: flex; gap: 15px; flex-wrap: wrap;">
<div class="checkbox" style="width: 100%;">
<input v-model="status.reservation_extension" type="checkbox" name="reservation_extension" id="reservation_extension" class="text">
<label for="reservation_extension">Разрешить продление брони</label>
</div>
</div>
</div>
</div>
<Transition name="reservation_extension">
<div v-if="status.booking_type && status.booking_type == 'temporary' && status.reservation_extension" class="reservation_extension_block">
<div class="form-block inner-block" style="margin-bottom: 0px;">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Может менять очередь бронирования</label>
</div>
<div class="inputs-group">
<v-select v-model="status.can_change_booking_queue" multiple :components="{OpenIndicator}" :class="{'invalid': error_can_change_booking_queue}" :options="users" :reduce="item => Number(item.id)" class="vue_select" style="border: none;" label="fio" />
</div>
</div>
<div class="form-block inner-block" style="margin-bottom: 0px;">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Может разрешить продление брони</label>
</div>
<div class="inputs-group">
<v-select v-model="status.managers_of_confirm_reservation_extension" multiple :components="{OpenIndicator}" :class="{'invalid': error_managers_of_confirm_reservation_extension}" :options="users" :reduce="item => Number(item.id)" class="vue_select" style="border: none;" label="fio" />
</div>
</div>
<div class="form-block">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Не требуется подтверждение</label>
</div>
<div class="inputs-group">
<v-select v-model="status.employees_not_required_confirmation" multiple :components="{OpenIndicator}" :class="{'invalid': error_employees_not_required_confirmation}" :options="users" :reduce="item => Number(item.id)" class="vue_select" style="border: none;" label="fio" />
</div>
</div>
<div class="form-block" style="margin-bottom: 0px;">
<div class="form-label form-search__main-label">
<div class="inputs-group" style="display: flex; gap: 15px; flex-wrap: wrap;">
<div class="checkbox" style="width: 100%;">
<input v-model="status.specify_comment_confirm" type="checkbox" name="specify_comment_confirm" id="specify_comment_confirm" class="text">
<label for="specify_comment_confirm">Указывать комментарий по продлению бронирования</label>
</div>
</div>
</div>
</div>
<div class="form-block inner-block" style="margin-bottom: 0px;">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Может разрешить отмену брони</label>
</div>
<div class="inputs-group">
<v-select v-model="status.managers_of_unconfirm_reservation_extension" multiple :components="{OpenIndicator}" :class="{'invalid': error_managers_of_unconfirm_reservation_extension}" :options="users" :reduce="item => Number(item.id)" class="vue_select" style="border: none;" label="fio" />
</div>
</div>
<div class="form-block">
<div class="form-label form-search__main-label">
<label for="object-fields-title">Не требуется подтверждать отмену брони</label>
</div>
<div class="inputs-group">
<v-select v-model="status.employees_not_required_unconfirmation" multiple :components="{OpenIndicator}" :class="{'invalid': error_employees_not_required_unconfirmation}" :options="users" :reduce="item => Number(item.id)" class="vue_select" style="border: none;" label="fio" />
</div>
</div>
<div class="form-block" style="margin-bottom: 0px;">
<div class="form-label form-search__main-label">
<div class="inputs-group" style="display: flex; gap: 15px; flex-wrap: wrap;">
<div class="checkbox" style="width: 100%;">
<input v-model="status.specify_comment_unconfirm" type="checkbox" name="specify_comment_unconfirm" id="specify_comment_unconfirm" class="text">
<label for="specify_comment_unconfirm">Указывать комментарий по отмене брони</label>
</div>
</div>
</div>
</div>
</div>
</Transition>
</div>
</div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Цвет:</label>
</div>
<div class="inputs">
<div class="inputs-group" style="display: flex; gap: 15px; flex-wrap: wrap;">
<div v-for="color in status_colors" @click="() => changeStatusColor(color)" :key="color" class="color-item" style="display: flex; align-items: center; justify-content: center;" :style="{'background-color': color}">
<svg v-if="status.color == color" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#ffffff" height="16px" width="16px" version="1.1" id="Layer_1" viewBox="-44.75 -44.75 496.33 496.33" xml:space="preserve" stroke="#ffffff" stroke-width="34.58089">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<polygon points="385.621,62.507 146.225,301.901 21.213,176.891 0,198.104 146.225,344.327 406.834,83.72 " />
</g>
</svg>
</div>
<div v-if="lastStatusColor && status.id" @click="() => changeStatusColor(lastStatusColor)" class="color-item" style="display: flex; align-items: center; justify-content: center;" :style="{'background-color': lastStatusColor}">
<svg xmlns="http://www.w3.org/2000/svg" v-if="!pickerChanged && lastStatusColor == status.color" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#ffffff" height="16px" width="16px" version="1.1" id="Layer_1" viewBox="-44.75 -44.75 496.33 496.33" xml:space="preserve" stroke="#ffffff" stroke-width="34.58089">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<polygon points="385.621,62.507 146.225,301.901 21.213,176.891 0,198.104 146.225,344.327 406.834,83.72 " />
</g>
</svg>
</div>
<div class="color-item" style="display: flex; align-items: center; justify-content: center; position: relative;" :style="{'background': pickerChanged ? status.color : 'linear-gradient(135deg, #f95835, #e079ca, #8e60e4, #10b2f3, #50b7aa)'}">
<input v-model="status.color" @input="(e) => pickerChanged = e.target.value" ref="colorPicker" class="custom-color" type="color">
<svg style="position: absolute;" @click="handleSvgClick" v-if="pickerChanged" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#ffffff" height="16px" width="16px" version="1.1" id="Layer_1" viewBox="-44.75 -44.75 496.33 496.33" xml:space="preserve" stroke="#ffffff" stroke-width="34.58089">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<polygon points="385.621,62.507 146.225,301.901 21.213,176.891 0,198.104 146.225,344.327 406.834,83.72 " />
</g>
</svg>
</div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="saveType">
Сохранить&nbsp;
<i class="ti-angle-right"></i>
</button>
</div>
</form>
</div>
</div>
<div class="full_modal-bg hidden" v-show="roomToArchiveInfo.status_id">
<span class="event-modal-close closer" @click="roomToArchiveInfo={}">
<i class="ti-close"></i>
</span>
<div class="full_modal hidden" style="top: 25%;" v-show="roomToArchiveInfo.status_id">
<form class="form-validate">
<div class="modal-inner" style="text-align: center;">
<h2>Предупреждение</h2>
<h4 style="margin-bottom: 20px;">Найдено {{ roomToArchiveInfo.rooms_count }} помещений с данным статусом.</h4>
<h4 style="margin-bottom: 20px;">Выберите статус который будет заменен на архивированный статус.</h4>
<div class="form-block">
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" style="border: none;" :options="complexStatusList.filter((status) => status.id != roomToArchiveInfo.status_id)" :reduce="item => item.id" :key="status.id" label="name" v-model="roomToArchiveInfo.new_status_id" />
</div>
</div>
<div class="modal-submit">
<button type="button" @click="updateRoomStatus">
Сохранить&nbsp;
<i class="ti-angle-right"></i>
</button>
</div>
</form>
</div>
</div>
</div>
<?php } ?>
<?php if (
($_SESSION['agency'] || $_SESSION['users_admin'] || (!empty($menuPermissions) && $menuPermissions['menu_complexes'] == 1))
&& (in_array($_SESSION['agency_id'], $agenciesHaveAccessToNewComplexes) || $user->role_developer)
) { ?>
<div class="lw-settings-block__section" data-section-content="24" id="installments" data-anchor-dest="45">
<div class="fieldset">
<h2>Настройка рассрочек:</h2>
<a name="customFields" style="visibility:hidden;height:0;display:none;">&nbsp;</a>
<div v-if="!isEmpty(installmentsList)" class="jw__NB">
<div class="jw__NB__flat-list">
<table>
<thead>
<tr>
<th style="text-align:center; vertical-align: middle; border-bottom: 1px solid #dedede; color: #757575; font-size: 15px; padding: 15px 10px;">
Список рассрочек
</th>
</tr>
</thead>
<tbody style="display: block; max-height: 510px; overflow: auto;">
<tr v-for="(item, index) in installmentsList" :key="item.id" :id="'installment_li_' + item.id"
style="cursor: unset; display: flex; justify-content: space-between;">
<td style="display: flex; align-items: center; gap: 5px; border-bottom: unset;">
<div class="color-indicator" :style="{'background-color': item.color}"></div>
<span>{{ item.name }}</span>
</td>
<td style="border-bottom: unset;" v-if="item.agency_id" width="50">
<a href="javascript:{};" @click="edit(index)" title="Редактировать">
<i class="ti-pencil"></i>
</a>
&nbsp;
<a href="javascript:{};" @click="archive(index)" title="Переместить в архив">
<i class="ti-arrow-right"></i>
</a>
</td>
</tr>
</tbody>
</table>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить рассрочку">
Добавить рассрочку
</a>
</p>
</div>
</div>
<div v-else class="empty-block">
<h3>Рассрочки не найдены</h3>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить рассрочку">
Добавить рассрочку
</a>
</p>
</div>
</div>
<div class="fieldset">
<h2>Архив рассрочек:</h2>
<a name="customFields" style="visibility:hidden;height:0;display:none;">&nbsp;</a>
<div v-if="!isEmpty(installmentsListArchive)" class="jw__NB">
<div class="jw__NB__flat-list">
<table>
<thead>
<tr>
<div style="text-align:center; vertical-align: middle; border-bottom: 1px solid #dedede; color: #757575; font-size: 15px; padding: 15px 10px 15px 0;">
Рассрочки
</div>
</tr>
</thead>
<tbody style="display: block; max-height: 510px; overflow: auto;">
<tr v-if="!isEmpty(installmentsListArchive)" v-for="(item, index) in installmentsListArchive" :key="item.id" :id="'installment_' + item.id" style="cursor: unset; display: flex; justify-content: space-between;">
<td style="display: flex; align-items: center; gap: 5px; border-bottom: unset;">
<div class="color-indicator" :style="{'background-color': item.color}"></div>
<span>{{ item.name }}</span>
</td>
<td style="border-bottom: unset;" width="50">
<a href="javascript:{};" @click="recover(index)" title="Восстановить">
<i class="ti-back-right"></i>
</a>
&nbsp;
<a href="javascript:{};" @click="deleteInstallment(index)" title="Удалить">
<i class="ti-trash"></i>
</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div v-else class="empty-block">
<h3>Рассрочки не найдены</h3>
</div>
</div>
<div v-if="isEditForm" class="full_modal-bg">
<!-- Кнопка закрытия -->
<span class="event-modal-close closer" @click="isEditForm = false">
<i class="ti-close"></i>
</span>
<div class="full_modal">
<form class="form-validate">
<div class="modal-inner">
<!-- Ошибки -->
<div v-if="errorMes" style="margin: 0;" class="error_msg" v-html="errorText"></div>
<!-- Заголовок -->
<h2>{{ installment.id ? 'Редактирование рассрочки' : 'Новая рассрочка' }}</h2>
<!-- Название -->
<div class="form-block">
<label class="form-search__main-label small-label" style="width: 30%;">Название:</label>
<div class="inputs" style="width: 70%">
<input type="text" class="number text small-input"
:class="{ 'invalid': error_name }" style="max-width: 100%"
v-model.trim="installment.name" placeholder="Введите название рассрочки" />
</div>
</div>
<!-- Описание -->
<div class="form-block">
<label class="form-search__main-label small-label" style="width: 30%;">Описание:</label>
<div class="inputs" style="width: 70%">
<textarea style="width: 100%" class="number text small-input"
:class="{ 'invalid': error_description }"
v-model.trim="installment.description" placeholder="Введите описание"></textarea>
</div>
</div>
<!-- Тип рассрочки -->
<div class="form-block">
<label class="form-search__main-label small-label" style="width: 30%;">Тип рассрочки:</label>
<div class="inputs" style="width: 70%">
<v-select
:clearable="false"
:components="{ OpenIndicator }"
class="vue_select"
:class="{'invalid': error_type}"
style="border: none; max-width: 100%"
:options="installment_type_list"
:key="installment.type"
:reduce="item => item.type"
label="name"
v-model="installment.type"
/>
</div>
</div>
<!-- Первоначальный взнос -->
<div class="form-block">
<label class="form-search__main-label small-label" style="width: 30%;">Первоначальный взнос (%):</label>
<div class="inputs" style="width: 70%">
<input type="number" class="number text small-input"
min="0" max="100" step="0.1" style="max-width: 100%"
:class="{ 'invalid': error_initial_payment }"
v-model.number="installment.initial_payment" placeholder="Введите первоначальный взнос" />
</div>
</div>
<!-- Периодичность платежей -->
<div class="form-block">
<label class="form-search__main-label small-label" style="width: 30%;">Периодичность платежей:</label>
<div class="inputs" style="width: 70%">
<v-select
multiple
:clearable="false"
:components="{ OpenIndicator }"
class="vue_select"
:class="{'invalid': error_payment_period}"
style="border: none; max-width: 100%"
:options="payment_period_list"
:reduce="item => item.payment_period"
:key="installment.payment_period"
label="name"
v-model="installment.payment_period"
/>
</div>
</div>
<!-- Процентная ставка -->
<div v-if="installment.type === 'with-interest'" class="form-block">
<label class="form-search__main-label small-label" style="width: 30%;">Процентная ставка (%):</label>
<div class="inputs" style="width: 70%">
<input type="number" class="number text small-input"
min="0" max="100" step="0.1" style="max-width: 100%;"
:class="{ 'invalid': error_interest_rate }"
v-model.number="installment.interest_rate" placeholder="Введите процентную ставку" />
</div>
</div>
<!-- Комментарий -->
<div class="form-block">
<label class="form-search__main-label small-label" style="width: 30%;">Комментарий:</label>
<div class="inputs" style="width: 70%;">
<textarea style="width: 100%;" class="number text small-input"
v-model.trim="installment.comment" placeholder="Добавьте комментарий (необязательно)"></textarea>
</div>
</div>
<!-- Разрешение изменения при закрытии -->
<div class="form-block checkboxes">
<label class="form-search__main-label small-label" style="width: 30%;">Можно изменять при закрытии заявки: </label>
<div class="inputs">
<div class="checkbox">
<input name="allow_change_on_close" id="allow_change_on_close" type="checkbox" v-model="installment.allow_change_on_close" :checked="Boolean(installment.allow_change_on_close)">
<label for="allow_change_on_close"></label>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<!-- Кнопка сохранения -->
<div class="modal-submit">
<button type="button" @click="saveType">
Сохранить&nbsp;
<i class="ti-angle-right"></i>
</button>
</div>
</form>
</div>
</div>
</div>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<div class="lw-settings-block__section" data-section-content="25" id="requisitions_types" data-anchor-dest="46">
<div class="fieldset">
<a name="customFields" style="visibility:hidden;height:0;display:none;display:none;">&nbsp;</a>
<h2>Настройка типов заявок:</h2>
<div v-if="!isEmpty(typeList)" class="jw__NB">
<div class="jw__NB__flat-list lw-table-wrapper">
<table>
<thead>
<tr>
<th></th>
<th style="text-align:center;">Тип</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in typeList" :key="item.code" :data-order="item.order">
<td width="50">
<a href="javascript:{};" @click="setFieldOrder(item.code, item.order, 'up');" data-title="Переместить вверх"><i class="ti-arrow-up"></i></a>&nbsp
&nbsp;
<a href="javascript:{};" @click="setFieldOrder(item.code, item.order, 'down');" data-title="Переместить вниз"><i class="ti-arrow-down"></i></a>
</td>
<td>
<b v-if="item.type=='group'">{{ item.name }}</b>
<span v-else>{{ item.name }}</span>
</td>
<td width="50">
<a href="javascript:{};" @click="edit(index)" title="Редактировать"><i class="ti-pencil"></i></a>
&nbsp;
<a href="javascript:{};" @click="archive(index)" title="В архив"><i class="ti-trash"></i></a>
</td>
</tr>
</tbody>
</table>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить новое поле">Добавить тип</a>
</p>
</div>
</div>
<div v-else class="empty-block">
<h3>Поля не найдены</h3>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить новое поле">Добавить тип</a>
</p>
</div>
</div>
<div class="fieldset">
<a name="customFields" style="visibility:hidden;height:0;display:none;">&nbsp;</a>
<h2>Архив типов заявок:</h2>
<div v-if="!isEmpty(typeList)" class="jw__NB">
<div class="jw__NB__flat-list lw-table-wrapper">
<table>
<thead>
<tr>
<th></th>
<th style="text-align:center;">Тип</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in typeListArchive" :key="item.code" :data-order="item.order">
<td width="50">
<a href="javascript:{};" @click="setFieldOrder(item.code, item.order, 'up');" data-title="Переместить вверх"><i class="ti-arrow-up"></i></a>&nbsp
&nbsp;
<a href="javascript:{};" @click="setFieldOrder(item.code, item.order, 'down');" data-title="Переместить вниз"><i class="ti-arrow-down"></i></a>
</td>
<td>
<b v-if="item.type=='group'">{{ item.name }}</b>
<span v-else>{{ item.name }}</span>
</td>
<td width="50">
<a href="javascript:{};" @click="recover(index)" title="Восстановить"><i class="ti-back-right"></i></a>
&nbsp;
<a href="javascript:{};" @click="deleted(index)" title="Удалить"><i class="ti-trash"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div v-else class="empty-block">
<h3>Типы не найдены</h3>
</div>
</div>
<div class="full_modal-bg" v-show="isEditForm">
<span class="event-modal-close closer" @click="isEditForm=false"><i class="ti-close"></i></span>
<div class="full_modal" v-show="isEditForm">
<form class="form-validate">
<div class="modal-inner">
<div v-if="errorMes" class="error_msg" v-html="errorText"></div>
<h2 v-if="type_id > 0">Редактирование типа заявки</h2>
<h2 v-else>Новый тип заявки</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Название:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<input type="text" class="number text small-input" :class="{'invalid': error_name}" v-model.trim="type_title" />
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Наследует поведение:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<v-select :components="{OpenIndicator}" transition="" class="vue_select" style="width: 400px; border: none;" :class="{'invalid': error_heir}" :options="heir_types_req" :reduce="name => name.code" label="name" v-model="heir_type" />
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Тип:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<v-select :components="{OpenIndicator}" transition="" class="vue_select" style="width: 400px; border: none;" :class="{'invalid': error_heir}" :options="[{'code':'label', 'name':'Вариант выбора'}, {'code':'group', 'name':'Заголовок'}]" :reduce="name => name.code" label="name" v-model="type_type" />
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Причины закрытия:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<div class="denial_types_req" v-for="(denial, index) in denial_list" :key="index">
<label :class="{'checked': denial.check > 0}">{{ denial.name }}</label>
<a href="javascript:{}" title="Выбрать" @click="check_denial(denial.id)" class="faplus" :class="{'checked': denial.check > 0}"><i class="fas fa-check"></i></a>
</div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="saveType">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
</div>
<div class="lw-settings-block__section" data-section-content="26" id="denial_list" data-anchor-dest="47">
<div class="fieldset">
<h2>Список причин закрытия:</h2>
<div v-if="!isEmpty(denialList)" class="jw__NB">
<div class="jw__NB__flat-list lw-table-wrapper">
<table>
<thead>
<tr>
<th style="text-align:center;">Причина</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in denialList" :key="index">
<td>
<b v-if="item.type=='group'">{{ item.name }}</b>
<span v-else>{{ item.name }}</span>
</td>
<td width="50">
<a href="javascript:{};" @click="edit(index)" title="Редактировать"><i class="ti-pencil"></i></a>
&nbsp;
<a href="javascript:{};" @click="deleted(index)" title="Удалить"><i class="ti-trash"></i></a>
</td>
</tr>
</tbody>
</table>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить новое поле">Добавить причину</a>
</p>
</div>
</div>
<div v-else class="empty-block">
<h3>Новых причин не найдены</h3>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="edit(-1)" title="Добавить новое поле">Добавить причину</a>
</p>
</div>
</div>
<div class="full_modal-bg hidden" v-show="isEditForm">
<span class="event-modal-close closer" @click="isEditForm=false"><i class="ti-close"></i></span>
<div class="full_modal hidden" v-show="isEditForm">
<form class="form-validate">
<div class="modal-inner">
<div v-if="errorMes" class="error_msg" v-html="errorText"></div>
<h2 v-if="denial_id > 0">Редактирование причины</h2>
<h2 v-else>Новая причина</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Название:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<input type="text" class="number text small-input" :class="{'invalid': error_name}" v-model.trim="denial_title" />
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="save">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
</div>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<div class="lw-settings-block__section" data-section-content="27" id="contract_types" data-anchor-dest="48">
<h2>Настройка типов договоров:</h2>
<div class="fieldset">
<ul class="lw-settings-block__list">
<li v-for="(type, index) in typeList" :key="type.type">
<span class="adv_activities" v-html="type.type"></span>
<a href="javascript:{};" @click="edit(index)" class="fl-right no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-settings"></i>
</span>
<span class="tooltip-content tt-pdf clear"><b class="tooltip-text">Редактировать</b></span>
</a>
<a @click="deleted(index)" data-id="" href="javascript:{};" class="fl-right delActivities no-border tooltip tooltip-effect">
<span class="simple-button tooltip-item">
<i class="ti-close"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Удалить</b>
</span>
</a>
</li>
</ul>
<div class="lw-section-block__submit-row">
<a class="fr-btn steel i-btn very-small" @click="edit(-1)" href="javascript:{};">Добавить</a>
</div>
</div>
<div class="full_modal-bg hidden" v-show="isEditForm">
<span class="event-modal-close closer" @click="isEditForm=false"><i class="ti-close"></i></span>
<div class="full_modal hidden" v-show="isEditForm">
<form class="form-validate">
<div class="modal-inner">
<div v-if="errorMes" class="error_msg" v-html="errorText"></div>
<h2 v-if="type_id > 0">Редактирование типа договора</h2>
<h2 v-else>Новый тип договора</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Название:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<input type="text" class="number text small-input" :class="{'invalid': error_name}" v-model.trim="type_title" />
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="saveType">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
</div>
<?php } ?>
<?php if ($show_settings_blocks && $user->can('object-fields')) { ?>
<div class="lw-settings-block__section" data-section-content="30" id="object_fields" data-anchor-dest="49">
<a name="customFields" style="visibility:hidden;height:0;display:none;">&nbsp;</a>
<h2>Настройка полей объектов</h2>
<div v-if="!isEmpty(fieldsList)" class="jw__NB">
<div class="jw__NB__flat-list lw-table-wrapper">
<table ref="fieldsListTable" style="min-width:960px;">
<thead>
<tr>
<th></th>
<th>Название / XML-тег</th>
<th>Блок размещения</th>
<th style="text-align:center;">Тип поля</th>
<th style="text-align:center;">Активен</th>
<th style="text-align:center;">XML-фид</th>
<th style="text-align:center;">Фильтры</th>
<th style="text-align:center;">Презентация</th>
<th style="text-align:center;">Обязательное</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="(item, key, index) in fieldsList" :key="item.id" :data-order="item.order">
<td width="50">
<a href="javascript:{};" @click="setFieldOrder(item.id, item.order, 'up');" data-title="Переместить вверх"><i class="ti-arrow-up"></i></a>&nbsp
&nbsp;
<a href="javascript:{};" @click="setFieldOrder(item.id, item.order, 'down');" data-title="Переместить вниз"><i class="ti-arrow-down"></i></a>
</td>
<td>
<b>{{ item.title }}</b><br /><em style="color:#e2574c;">{{ item.name }}</em>
</td>
<td>
{{ item.block_title }}
</td>
<td style="text-align:center;">
<span v-if="item.type == 0">Строка</span>
<span v-else-if="item.type == 1">Число</span>
<span v-else-if="item.type == 2">Селект-бокс</span>
<span v-else-if="item.type == 3">Мульти-селект</span>
<span v-else-if="item.type == 4">Свитчер</span>
<span v-else-if="item.type == 5">Текст</span>
<code v-else>не выбрано</code>
</td>
<td style="text-align:center;">
<span v-if="item.is_active == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_available == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_filtrable == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_presentation == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_required == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td width="50">
<a href="javascript:{};" @click="showEditObjectFieldForm(item.id);" title="Редактировать"><i class="ti-pencil"></i></a>
&nbsp;
<a href="javascript:{};" @click="confirmDeleteObjectField(item.id);" title="Удалить"><i class="ti-trash"></i></a>
</td>
</tr>
</tbody>
</table>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="showEditObjectFieldForm(0);" title="Добавить новое поле">Добавить поле</a>
</p>
</div>
</div>
<div v-else class="lw-empty-block">
<h3>Поля не найдены</h3>
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="showEditObjectFieldForm(0);" title="Добавить новое поле">Добавить поле</a>
</div>
</div>
<div class="lw-settings-block__section" data-section-content="31" id="objectFieldsBlocks" data-anchor-dest="50">
<h2>Блоки размещения</h2>
<div class="fieldset">
<div class="flat__modal">
<ul v-if="!isEmpty(blocksList)" class="docs docsdirs">
<li v-for="(block, index) in blocksList" :key="index" :data-order="block.order" class="dir opened">
<span :class="block.id > 0 ? 'dir-link' : ''">
<span class="dir-name">{{ block.title }}</span>
<a v-if="block.id > 0" href="javascript:{};" @click="setBlockOrder(block.id, block.order, 'up');" class="fl-right no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-arrow-up"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Переместить вверх</b>
</span>
</a>
<a v-if="block.id > 0" href="javascript:{};" @click="setBlockOrder(block.id, block.order, 'down');" class="fl-right no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-arrow-down"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Переместить вниз</b>
</span>
</a>
<a v-if="block.id > 0" href="javascript:{};" @click="showEditFieldBlocksForm(block.id);" class="fl-right no-border tooltip tooltip-effect">
<span class="simple-button settings tooltip-item">
<i class="ti-settings"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Редактировать блок</b>
</span>
</a>
<a v-if="block.id > 0" href="javascript:{};" @click="confirmDeleteFieldBlock(block.id);" class="fl-right no-border tooltip tooltip-effect">
<span class="simple-button tooltip-item">
<i class="ti-close"></i>
</span>
<span class="tooltip-content tt-pdf clear">
<b class="tooltip-text">Удалить блок</b>
</span>
</a>
</span>
</li>
</ul>
<p v-else>Блоки не найдены</p>
</div>
<div class="lw-section-block__submit-row">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="showEditFieldBlocksForm(0);" title="Добавить новый блок размещения">Добавить блок</a>
</div>
<blockquote class="lw-blockquote">
Адрес XML-фида для Вашего агентства: <a href="https://joywork.ru/feeds/<?= $user->agencyId; ?>_custom.xml" target="_blank">https://joywork.ru/feeds/<?= $user->agencyId; ?>_custom.xml</a>
</blockquote>
</div>
</div>
<div class="full_modal-bg" id="objectFieldsFormBg" style="display: none; ">
<span class="event-modal-close closer" onclick="closeEditObjectFieldForm()"><i class="ti-close"></i></span>
<div class="full_modal" id="objectFieldsForm" style="display: none;">
<form class="form-validate">
<div class="modal-inner">
<h2 v-if="field_id > 0">Редактирование поля объекта</h2>
<h2 v-else>Новое поле объекта</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Название:</label>
</div>
<div class="inputs">
<div id="object-fields-title" class="inputs-group">
<input type="text" @input="getFieldTranslit()" @keyup="getFieldTranslit()" @blur="getFieldTranslit()" class="number text small-input" v-model="title" />
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-name">XML-тег:</label>
</div>
<div class="inputs">
<div id="object-fields-name" class="inputs-group">
<input type="text" class="number text small-input" v-model="name" />
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-type">Тип поля:</label>
</div>
<div id="object-fields-type" class="inputs"></div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-block">Блок размещения:</label>
</div>
<div id="object-fields-block" class="inputs" style="width:420px;"></div>
<a href="javascript:{};" @click="showEditFieldBlocksForm(0);" class="tab tab__new-object" style="display:inline-block;position:relative;padding-top:9px;padding-bottom:9px;border-bottom:none;" title="Добавить новый блок размещения">
<i class="ti-plus"></i><span>Новый блок</span>
</a>
<div class="clear"></div>
</div>
<div v-if="type == 2 || type == 3" class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-type">Список пунктов:</label>
</div>
<div class="inputs">
<ul v-if="!isEmpty(params)" ref="fieldPropsList">
<li v-for="(item, key, index) in params.items" :key="index"от style="padding: 6px 0;">
<template v-if="item.mode == 'edit'">
<div :data-key="item.value" style="display:inline-block;position:relative;width:100%;line-height:36px;">
<input type="text" class="input" name="item_name" style="display:block;width:245px;float:left;" :value="item.name">
<a href="javascript:{};" @click="storeFieldProps('save', item, $event);" title="Сохранить" style="margin-left:10px;">
<i class="ti-save"></i>
</a>
<a href="javascript:{};" @click="storeFieldProps('close', item, $event);" title="Отменить" style="margin-left:5px;">
<i class="ti-close"></i>
</a>
</div>
<div class="clear"></div>
</template>
<template v-else>
<div :data-key="item.value" style="display:inline-block;position:relative;width:100%;line-height:22px;">
{{ item.name }}
<a href="javascript:{};" @click="storeFieldProps('edit', item);" title="Редактировать" style="margin-left:10px;">
<i class="ti-pencil"></i>
</a>
<a href="javascript:{};" @click="storeFieldProps('delete', item);" title="Удалить" style="margin-left:5px;">
<i class="ti-trash"></i>
</a>
</div>
</template>
</li>
</ul>
<div v-else class="clear" style="margin:15px 0px;">Пусто</div>
<div id="fieldPropForm" class="props-form" style="margin-top:0px;">
<div class="form-block" style="margin-bottom:15px;">
<a href="javascript:{}" @click="storeFieldProps('add', null)" class="tab tab__new-variable">
<i class="ti-plus"></i> <span>Добавить пункт</span>
</a>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="object-fields-is_required" v-model="is_required" :checked="Boolean(is_required)" true-value="1" value="1">
<label for="object-fields-is_required">Обязательно к заполнению</label>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="object-fields-is_active" v-model="is_active" :checked="Boolean(is_active)" true-value="1" value="1">
<label for="object-fields-is_active">Отображать в карточке объекта</label>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="object-fields-is_available" v-model="is_available" :checked="Boolean(is_available)" true-value="1" value="1">
<label for="object-fields-is_available">Выгружать в XML-фид</label>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="object-fields-is_presentation" v-model="is_presentation" :checked="Boolean(is_presentation)" true-value="1" value="1">
<label for="object-fields-is_presentation">Отображать в презентации</label>
</div>
<div class="clear"></div>
</div>
<div v-if="type == 1 || type == 2 || type == 3 || type == 4" class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="object-fields-is_filtrable" v-model="is_filtrable" :checked="Boolean(is_filtrable)" true-value="1" value="1">
<label for="object-fields-is_filtrable">Фильтрация по полю</label>
</div>
<div class="clear"></div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="saveObjectField(field_id)">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
<div class="full_modal-bg" id="objectFieldsBlocksFormBg" style="display: none; ">
<span class="event-modal-close closer" onclick="closeEditFieldBlockForm()"><i class="ti-close"></i></span>
<div class="full_modal" id="objectFieldsBlocksForm" style="display: none;">
<form class="form-validate">
<div class="modal-inner">
<h2 v-if="block_id > 0">Редактирование блока размещения</h2>
<h2 v-else>Новый блок размещения</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Название:</label>
</div>
<div class="inputs">
<div id="object-fields-title" class="inputs-group">
<input type="text" class="number text small-input" v-model="block_title" />
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="saveFieldBlock(block_id)">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<div class="lw-settings-block__section" data-section-content="32" id="client_req_fields" data-anchor-dest="491">
<a name="customFields" style="visibility:hidden;height:0;display:none;">&nbsp;</a>
<h2>Настройка полей клиентов или заявок</h2>
<div v-show="!isEmpty(fieldsList)" class="jw__NB">
<div class="jw__NB__flat-list lw-table-wrapper">
<table ref="fieldsListTable" style="min-width:900px;">
<thead>
<tr>
<th>Группа</th>
<th style="text-align:center;">Подгруппы</th>
<th style="text-align:center;">Тип поля</th>
<th style="text-align:center;">Фильтры</th>
<th style="text-align:center;">Для клиентов</th>
<th style="text-align:center;">Для заявок</th>
<th style="text-align:center;">Обязательное</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="(item, key, index) in fieldsList" :key="index" :data-order="item.order">
<td>
<b v-html="item.title"></b>
</td>
<td style="text-align:center;">
<span v-if="item.is_podgroup == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_podgroup == 1">С подгруппами</span>
<span v-else-if="item.type == 0">Строка</span>
<span v-else-if="item.type == 1">Число</span>
<span v-else-if="item.type == 2">Селект-бокс</span>
<span v-else-if="item.type == 3">Мульти-селект</span>
<span v-else-if="item.type == 4">Свитчер</span>
<span v-else-if="item.type == 5">Текст</span>
<code v-else>не выбрано</code>
</td>
<td style="text-align:center;">
<span v-if="item.is_filtrable == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_client == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_req == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td style="text-align:center;">
<span v-if="item.is_required == 1" style="color:#328436;"><i class="ti-check"></i></span>
<span v-else>&nbsp;</span>
</td>
<td width="50">
<a href="javascript:{};" @click="showEditClientReqFieldForm(item.id);" title="Редактировать"><i class="ti-pencil"></i></a>
&nbsp;
<a href="javascript:{};" @click="confirmDeleteClientReqField(item.id);" title="Удалить"><i class="ti-trash"></i></a>
</td>
</tr>
</tbody>
</table>
<p style="padding-top: 25px">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="showEditClientReqFieldForm(0);" title="Добавить новую группу">Добавить группу</a>
</p>
</div>
</div>
<div v-show="isEmpty(fieldsList)" class="lw-empty-block">
<h3>Группы не найдены</h3>
<div class="lw-section-block__submit-row">
<a class="fr-btn steel i-btn very-small" href="javascript:{};" @click="showEditClientReqFieldForm(0);" title="Добавить новую группу">Добавить группу</a>
</div>
</div>
</div>
<div id="clientReqFieldsModal">
<div class="full_modal-bg" style="display: none;" v-show="isShowClientReqFieldsForm">
<span class="event-modal-close closer" @click="hideEditClientReqFieldForm"><i class="ti-close"></i></span>
<div class="full_modal" style="display: none; margin-bottom: 450px;" v-show="isShowClientReqFieldsForm">
<div class="form-validate">
<div class="modal-inner" style="padding-bottom:0px;">
<h2 v-if="field_id > 0">Редактирование группы</h2>
<h2 v-else>Новая группа</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="clientReq-fields-title">Название:</label>
</div>
<div class="inputs">
<div id="clientReq-fields-title" class="inputs-group">
<input type="text" class="number text small-input" v-model="title" />
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="clientReq-fields-is_client" v-model="is_client" :checked="Boolean(is_client)" true-value="1">
<label for="clientReq-fields-is_client">Для клиентов</label>
<input type="checkbox" id="clientReq-fields-is_req" v-model="is_req" :checked="Boolean(is_req)" true-value="1">
<label style="margin-left: 160px;" style="marning-" for="clientReq-fields-is_req">Для заявок</label>
</div>
<div class="clear"></div>
</div>
<div class="form-block" v-show="is_req==1">
<div class="form-search__main-label small-label">
<label for="clientReq-fields-title">Тип заявки:</label>
</div>
<div class="inputs">
<div class="inputs-group">
<v-select :components="{OpenIndicator}" transition="" class="vue_select" style="width: 400px; border: none;" :options="types_req" :reduce="name => name.code" @input="selectType" label="name" multiple v-model="selectedType" />
</div>
</div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" @change="change_podgroup" id="clientReq-fields-is_podgroup" v-model="is_podgroup" :checked="Boolean(is_podgroup)" true-value="1">
<label for="clientReq-fields-is_podgroup">С подгруппами</label>
<input type="checkbox" id="clientReq-fields-is_podgroup_multiselect" v-model="is_podgroup_multiselect" false-value=0 true-value="1">
<label style="margin-left:170px" for="clientReq-fields-is_podgroup_multiselect">Множественный выбор</label>
</div>
<div class="clear"></div>
</div>
<div v-show="is_podgroup == 0">
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="clientReq-fields-type-input">Тип поля:</label>
</div>
<div id="clientReq-fields-type-input" class="inputs"></div>
<div class="clear"></div>
</div>
<div v-show="type == 2 || type == 3" class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-type">Список пунктов:</label>
</div>
<div class="inputs">
<ul v-if="!isEmpty(params)" ref="fieldPropsList">
<li v-for="(item, key, index) in params.items" style="padding: 6px 0;">
<template v-if="item.mode == 'edit'">
<div :data-key="item.value" style="display:inline-block;position:relative;width:100%;line-height:36px;">
<input type="text" class="input" name="item_name" style="display:block;width:245px;float:left;" :value="item.name">
<a href="javascript:{};" @click="storeFieldProps('save', item, $event);" title="Сохранить" style="margin-left:10px;">
<i class="ti-save"></i>
</a>
<a href="javascript:{};" @click="storeFieldProps('close', item, $event);" title="Отменить" style="margin-left:5px;">
<i class="ti-close"></i>
</a>
</div>
<div class="clear"></div>
</template>
<template v-else>
<div :data-key="item.value" style="display:inline-block;position:relative;width:100%;line-height:22px;">
{{ item.name }}
<a href="javascript:{};" @click="storeFieldProps('edit', item);" title="Редактировать" style="margin-left:10px;">
<i class="ti-pencil"></i>
</a>
<a href="javascript:{};" @click="storeFieldProps('delete', item);" title="Удалить" style="margin-left:5px;">
<i class="ti-trash"></i>
</a>
</div>
</template>
</li>
</ul>
<div v-else class="clear" style="margin:15px 0px;">Пусто</div>
<div id="fieldPropForm" class="props-form" style="margin-top:0px;">
<div class="form-block" style="margin-bottom:15px;">
<a href="javascript:{}" @click="storeFieldProps('add', null)" class="tab tab__new-variable">
<i class="ti-plus"></i> <span>Добавить пункт</span>
</a>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="form-block" v-show="is_podgroup == 1">
<div class="form-search__main-label small-label">
<label for="object-fields-type">Список подгрупп:</label>
</div>
<div class="inputs">
<ul v-if="!isEmpty(listPodgroups)" ref="fieldPropsList">
<li v-for="(item, index) in listPodgroups" :key="index" style="padding: 6px 0;">
<div :data-key="item.value" style="display:inline-block;position:relative;width:100%;line-height:22px;">
<span v-html="item.title"></span>
<a href="javascript:{};" @click="addEditPodgroup(index);" title="Редактировать" style="margin-left:10px;">
<i class="ti-pencil"></i>
</a>
<a href="javascript:{};" @click="deletePodgroup(index);" title="Удалить" style="margin-left:5px;">
<i class="ti-trash"></i>
</a>
</div>
</li>
</ul>
<div v-else class="clear" style="margin:15px 0px;">Пусто</div>
<div id="fieldPropForm" class="props-form" style="margin-top:0px;">
<div class="form-block" style="margin-bottom:15px;">
<a href="javascript:{}" @click="addEditPodgroup('add')" class="tab tab__new-variable">
<i class="ti-plus"></i> <span>Добавить подгруппу</span>
</a>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div v-show="is_podgroup==1 || (type==0 || type==1 || type==2 || type==3 || type == 4)" class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="clientReq-fields-is_filtrable" v-model="is_filtrable" :checked="Boolean(is_filtrable)" true-value="1" value="1">
<label for="clientReq-fields-is_filtrable">Добавить в фильтры</label>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="clientReq-fields-is_required" v-model="is_required" :checked="Boolean(is_required)" true-value="1" value="1">
<label for="clientReq-fields-is_required">Обязательно к заполнению</label>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="field-is_no_see" v-model="is_no_see" false-value="0" true-value="1">
<label for="field-is_no_see">Не показывать всем</label>
</div>
</div>
<div class="form-block" v-show="is_no_see == 1">
<div class="label">...кроме сотрудников</div>
<div class="inputs">
<v-select class="vue_select" :components="{OpenIndicator}" style="width: 400px; border: none;" multiple :options="users_see" :reduce="name => name.code" label="name" v-model="selected_users_see_no"/>
<template #option="{ name, type }">
<span v-if="type=='otdel'" style="margin: 0; color:#000; font-size: 17px">{{ name }}</span>
<span v-else style="margin-left:10px;">{{ name }}</span>
</template>
<v-select>
</div>
<div class="clear"></div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="saveClientReqField(field_id)">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div id="clientReqPodgroupsModal">
<div class="full_modal-bg" style="display: none;" v-show="isShowClientReqPodgroupsForm">
<span class="event-modal-close closer-flat" @click="hideEditClientReqPodgroupsForm"><i class="ti-close"></i></span>
<div class="full_modal" style="display: none;" v-show="isShowClientReqPodgroupsForm">
<div class="form-validate">
<div class="modal-inner" style="padding-bottom:0px;">
<h2 v-if="podgroup_id > 0 || podgroup_id < 0">Редактирование подгруппы</h2>
<h2 v-else>Новая подгруппа</h2>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="clientReq-podgroups-title">Название:</label>
</div>
<div class="inputs">
<div id="clientReq-podgroups-title" class="inputs-group">
<input type="text" class="number text small-input" v-model="title" />
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="clientReq-podgroups-type-input">Тип поля:</label>
</div>
<div id="clientReq-podgroups-type-input" class="inputs"></div>
<div class="clear"></div>
</div>
<div v-show="type == 2 || type == 3" class="form-block">
<div class="form-search__main-label small-label">
<label for="object-podgroups-type">Список пунктов:</label>
</div>
<div class="inputs">
<ul v-if="!isEmpty(params)">
<li v-for="(item, key, index) in params.items" style="padding: 6px 0;">
<template v-if="item.mode == 'edit'">
<div :data-key="item.value" style="display:inline-block;position:relative;width:100%;line-height:36px;">
<input type="text" class="input" name="item_name" style="display:block;width:245px;float:left;" :value="item.name">
<a href="javascript:{};" @click="storeFieldProps('save', item, $event);" title="Сохранить" style="margin-left:10px;">
<i class="ti-save"></i>
</a>
<a href="javascript:{};" @click="storeFieldProps('close', item, $event);" title="Отменить" style="margin-left:5px;">
<i class="ti-close"></i>
</a>
</div>
<div class="clear"></div>
</template>
<template v-else>
<div :data-key="item.value" style="display:inline-block;position:relative;width:100%;line-height:22px;">
{{ item.name }}
<a href="javascript:{};" @click="storeFieldProps('edit', item);" title="Редактировать" style="margin-left:10px;">
<i class="ti-pencil"></i>
</a>
<a href="javascript:{};" @click="storeFieldProps('delete', item);" title="Удалить" style="margin-left:5px;">
<i class="ti-trash"></i>
</a>
</div>
</template>
</li>
</ul>
<div v-else class="clear" style="margin:15px 0px;">Пусто</div>
<div id="fieldPropForm" class="props-form" style="margin-top:0px;">
<div class="form-block" style="margin-bottom:0px;">
<a href="javascript:{}" @click="storeFieldProps('add', null)" class="tab tab__new-variable">
<i class="ti-plus"></i> <span>Добавить пункт</span>
</a>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="clientReq-podgroups-is_required" v-model="is_required" :checked="Boolean(is_required)" true-value="1" value="1">
<label for="clientReq-podgroups-is_required">Обязательно к заполнению</label>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="modal-submit">
<button type="button" @click="saveClientReqPodgroup(podgroup_id)">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<?php } ?>
<?php if ($show_settings_blocks) { ?>
<div class="lw-settings-block__section" data-section-content="33" id="web_hooks_setting" data-anchor-dest="492">
<div>
<h2>Настройка веб-хуков:</h2>
<p style="margin: 10px 0 20px; color: #666;">Подключите сервисы к JoyWork для получения веб-хуков.</p>
<p style="margin: 10px 0 20px; color: #666;">Получайте уведомления о событиях в CRM автоматически.</p>
<button class="as_main-button" @click="openModal">Настройка</button>
</div>
<div class="as_modal-overlay" v-if="is_show">
<div class="as_modal">
<div class="as_modal-header">
<div class="as_tabs">
<h2>Настройка веб-хуков</h2>
</div>
<button class="as_close-btn" @click="closeModal">&times;</button>
</div>
<div class="as_modal-body">
<!-- Вкладка Настройки -->
<div class="as_tab-content active">
<div class="as_filters">
<div class="checkbox small" style="margin-bottom:0px;">
<input id="web_hooks_setting_is_active" @change="enable_webhooks" type="checkbox" v-model="is_active" false-value="0" true-value="1">
<label for="web_hooks_setting_is_active">Веб-хуки активны</label>
</div>
</div>
<!--<div class="as_filters">
<div class="as_filter-group">
<label>Поиск</label>
<input type="text" placeholder="Домен, тег или источник..." v-model="filter.name">
</div>
<div class="as_filter-group">
<label>Тип интеграции</label>
<v-select :clearable="true" :components="{OpenIndicator}" multiple class="vue_select" style="border: none;" :options="types_integration" :reduce="name => name.code" label="name" v-model="filter.type" />
</div>
<button class="as_btn-filter" @click="search_source">Применить</button>
</div>-->
<div v-if="is_active==1" class="as_table-header">
<h3>Текущие натройки веб-хуков</h3>
<button class="as_btn-add" @click="openForm('add')">
<span>+</span>
<span>Добавить</span>
</button>
</div>
<div v-if="is_active==1">
<div v-if="isPreloader" style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>
<table v-else>
<thead>
<tr>
<th>Наименование</th>
<th>URL</th>
<th>Действие</th>
<th>Раздел</th>
<th>Статус</th>
<th>Действия</th>
</tr>
</thead>
<tbody>
<tr v-for="(webhook, webhook_index) in arrayWebhooks">
<td>{{ webhook.name }}</td>
<td>{{ webhook.url }}</td>
<td>{{ webhook.action_name }}</td>
<td>{{ webhook.section_name }}</td>
<td>
<span v-if="webhook.is_active>0">Активен</span>
<span v-else>Не активен</span>
</td>
<td>
<button class="as_btn-edit" @click="openForm('edit', webhook_index)" style="color:#555;" title="Редактировать"><i class="ti-pencil"></i></button>
<button class="as_btn-delete" @click="openDeleteDialog(webhook_index)" style="color:#555;" title="Удалить"><i class="ti-trash"></i></button>
</td>
</tr>
</tbody>
</table>
<div v-show="all_pages > 1" class="as_pagination">
<template v-if="page==1">
<button class="as_page-btn active">1</button>
</template>
<template v-else>
<button @click="pagin(prevPage)" class="as_page-btn"></button>
<button @click="pagin(1)" class="as_page-btn">1</button>
</template>
<template v-if="all_pages > 8 && page > 4">
<button class="as_page-btn">...</button>
</template>
<template v-for="pp in pagePagin">
<button class="as_page-btn" :class="{active:pp==page}" @click="pagin(pp)">{{pp}}</button>
</template>
<template v-if="all_pages > 8 && page < all_pages - 4">
<button class="as_page-btn">...</button>
</template>
<template v-if="page == all_pages">
<button @click="pagin(all_pages)" class="as_page-btn active">{{all_pages}}</button>
</template>
<template v-else>
<button @click="pagin(all_pages)" class="as_page-btn">{{all_pages}}</button>
<button @click="pagin(page+1)" class="as_page-btn"></button>
</template>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Модальное окно формы -->
<div class="as_modal-overlay" v-if="showForm">
<div class="as_modal" style="width: 600px; height: auto; max-height: 80%;">
<div class="as_modal-header">
<h3 v-if="mode == 'add'">Добавить событие</h3>
<h3 v-else>Редактировать событие</h3>
<button class="as_close-btn" @click="closeForm">&times;</button>
</div>
<div class="as_modal-body">
<form id="webHooksForm">
<div class="as_conditional-field">
<div class="as_form-group">
<label>Название веб-хука<span v-if="!isEmpty(errors.name)" class="invalid">{{ errors.name }}</span></label>
<input type="text" placeholder="Введите название" :class="{'invalid': !isEmpty(errors.name)}" v-model="item.name">
</div>
</div>
<div class="as_conditional-field">
<div class="as_form-group">
<label>URL<span v-if="!isEmpty(errors.url)" class="invalid">{{ errors.url }}</span></label>
<input type="text" placeholder="Введите url куда отправлять веб хук" :class="{'invalid': !isEmpty(errors.url)}" v-model="item.url">
</div>
</div>
<div class="as_form-group">
<label>Раздел<span v-if="!isEmpty(errors.section)" class="invalid">{{ errors.section }}</span></label>
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" :class="{'invalid': !isEmpty(errors.section)}" style="border: none;" :options="sections" @input="change_section(0)" :reduce="name => name.code" label="name" v-model="item.section" />
</div>
<div class="as_form-group" v-if="!isEmpty(item.section)">
<label>Действие<span v-if="!isEmpty(errors.action)" class="invalid">{{ errors.action }}</span></label>
<v-select :clearable="false" :components="{OpenIndicator}" class="vue_select" :class="{'invalid': !isEmpty(errors.action)}" style="border: none;" @input="change_action" :options="actions" :reduce="name => name.code" label="name" v-model="item.action" />
</div>
<div v-if="item.action == 'close_step' || item.action == 'transition_step'" class="as_form-group">
<label>Воронка<span v-if="!isEmpty(errors.funnel)" class="invalid">{{ errors.funnel }}</span></label>
<v-select :clearable="false" :components="{OpenIndicator}" :class="{'invalid': !isEmpty(errors.funnel)}" class="vue_select" @input="change_funnel" style="border: none;" :options="funnels" :reduce="name => name.id" label="name" v-model="item.funnel_id" />
</div>
<div v-if="(item.action == 'close_step' || item.action == 'transition_step') && item.funnel_id > 0" class="as_form-group">
<label>Этапы<span v-if="!isEmpty(errors.steps)" class="invalid">{{ errors.steps }}</span></label>
<v-select :clearable="true" :components="{OpenIndicator}" :class="{'invalid': !isEmpty(errors.steps)}" class="vue_select" multiple style="border: none;" :options="steps" :reduce="name => name.id" label="name" v-model="item.steps" />
</div>
<div class="checkbox small" style="margin-bottom:0px;">
<input id="web_hook_is_active" type="checkbox" v-model="item.is_active" false-value="0" true-value="1">
<label for="web_hook_is_active">Активен</label>
</div>
<div class="as_form-actions">
<button type="button" class="as_btn-cancel" @click="closeForm">Отмена</button>
<button type="button" class="as_btn-save" @click="save">Сохранить</button>
</div>
</form>
</div>
</div>
</div>
<!-- Диалог подтверждения удаления -->
<div class="as_modal-overlay" v-if="isDialogDel">
<div class="as_confirm-dialog">
<h3>Подтверждение удаления</h3>
<p>Вы уверены, что хотите удалить это событие?</p>
<div class="as_confirm-actions">
<button class="as_btn-cancel" @click="isDialogDel=false">Отмена</button>
<button class="as_btn-delete" @click="confirmDelete()">Удалить</button>
</div>
</div>
</div>
</div>
<?php } ?>
<!-- -->
</div>
</div>
<!-- data-section-id="4" end -->
<!-- data-section-id="5" start -->
<div class="lw-settings-block__content-section" data-section-id="5">
<?php
$agency_id = $_SESSION['agency_id'];
$complexes_frame_sql = "SELECT * FROM complexes_frame cf WHERE cf.agency_id = $agency_id AND cf.end_date >= CURDATE() AND cf.token IS NOT NULL";
$complexes_frame_query = mysql_query($complexes_frame_sql);
$complexes_frame_result = mysql_fetch_assoc($complexes_frame_query);
?>
<div class="lw-settings-block__content-section-side">
<ul>
<li data-anchor="51">
<a href="#">Настройка каталога новостроек</a>
</li>
<?php
if ($_SESSION['id_manager'] == 0 || $_SESSION['users_admin'] == 1) {
?>
<li data-anchor="52">
<a href="#">Сайт компании</a>
</li>
<?php } ?>
<?php if (true) { // $show_settings_blocks ?>
<li data-anchor="53">
<a href="#">Интеграция ВебОценщик</a>
</li>
<?php } ?>
<?php
if (isset($complexes_frame_result['end_date'])) {
?>
<li data-anchor="54">
<a href="#">Настройка каталога комплексов</a>
</li>
<?php } ?>
</ul>
</div>
<div class="lw-settings-block__content-section-main">
<?php
$agency_id = $_SESSION['agency_id'];
$presentation_frame_sql = "SELECT * FROM presentation_frame pf WHERE pf.agency_id = $agency_id AND pf.end_date >= CURDATE() AND pf.token IS NOT NULL";
$presentation_frame_query = mysql_query($presentation_frame_sql);
if ($presentation_res = mysql_fetch_assoc($presentation_frame_query)) {
$presentation_color = $presentation_res['color'];
?>
<?php if($_SESSION['agency'] || $_SESSION['users_admin']) { ?>
<div class="lw-settings-block__section" data-section-content="16" data-anchor-dest="51">
<h2>Настройка каталога новостроек для вашего сайта</h2>
<div class="fieldset">
<label>
<span>Акцентный цвет</span>
<input class="presentation_color_input" type="color" value="<?php echo $presentation_color ?>" id="presentation_color" style="margin: 0; padding: 0;width: 50px; height: 30px; border: none;">
</label>
</div>
<div class="lw-settings-block__submit-row">
<button id="presentation_settings_btn" data-id="<?php echo $agency_id; ?>" class="top-line__button button-fl-right medium-button">Сохранить</button>
</div>
</div>
<?php }?>
<?php }?>
<?php
$complexes_frame_sql = "SELECT * FROM complexes_frame cf WHERE cf.agency_id = $agency_id AND cf.end_date >= CURDATE() AND cf.token IS NOT NULL";
$complexes_frame_query = mysql_query($complexes_frame_sql);
if ($complexes_frame_result = mysql_fetch_assoc($complexes_frame_query)) {
$complexes_main_color = $complexes_frame_result['frame_color'];
$complexes_reserved_color = $complexes_frame_result['color_reserved'];
$complexes_free_color = $complexes_frame_result['color_free'];
}
$complex_frame_funnels_sql = "SELECT * FROM funnel WHERE agency_id = $agency_id";
$complex_frame_funnels_query = mysql_query($complex_frame_funnels_sql) or die(mysql_error());
$complex_frame_req_funnels = [];
$complex_frame_client_funnels = [];
$arrayFunnel = [];
$hasActiveFunnels = false;
while ($row = mysql_fetch_assoc($complex_frame_funnels_query)) {
if ($row['deleted'] == 0) {
$hasActiveFunnels = true; // Нашли хотя бы одну активную
}
switch (true) {
case ($row['is_req'] == 1 && $row['is_client'] == 1 && $row['deleted'] == 0):
$complex_frame_req_funnels[] = $row;
$complex_frame_client_funnels[] = $row;
break;
case ($row['is_req'] == 1 && $row['is_client'] == 0 && $row['deleted'] == 0):
$complex_frame_req_funnels[] = $row;
break;
case ($row['is_req'] == 0 && $row['is_client'] == 1 && $row['deleted'] == 0):
$complex_frame_client_funnels[] = $row;
break;
}
if ($row['deleted'] == 0) {
$arrayFunnel[] = $row;
}
}
// Добавление дефолтной воронки
if (!$hasActiveFunnels) {
$nameDefault = "Обычные";
$sqlCastom = "SELECT * FROM funnel_default WHERE agency_id = {$agency_id}";
$qCastom = mysql_query($sqlCastom);
if (mysql_num_rows($qCastom) > 0) {
$rCastom = mysql_fetch_assoc($qCastom);
if (!empty($rCastom['name'])) {
$nameDefault = $rCastom['name'];
}
$defaultFunnel = [
'id' => 0,
'name' => isset($rCastom['name']) ? $rCastom['name'] : $nameDefault,
'is_client' => isset($rCastom['is_client']) ? $rCastom['is_client'] : 1,
'is_req' => isset($rCastom['is_req']) ? $rCastom['is_req'] : 1,
'is_stage' => isset($rCastom['is_stage']) ? $rCastom['is_stage'] : 1,
'is_show_funnels' => isset($rCastom['is_show_funnels']) ? $rCastom['is_show_funnels'] : 1,
'order_number' => 0,
'deleted' => 0
];
$arrayFunnel[] = $defaultFunnel;
$complex_frame_req_funnels[] = $defaultFunnel;
$complex_frame_client_funnels[] = $defaultFunnel;
} else {
$defaultFunnel = [
'id' => 0,
'name' => $nameDefault,
'is_client' => 1,
'is_req' => 1,
'is_stage' => 1,
'is_show_funnels' => 1,
'order_number' => 0,
'deleted' => 0
];
$arrayFunnel[] = $defaultFunnel;
$complex_frame_req_funnels[] = $defaultFunnel;
$complex_frame_client_funnels[] = $defaultFunnel;
}
}
// var_dump($complex_frame_req_funnels);
?>
<?php
$sql = "SELECT * FROM object_iframe WHERE agency_id = ".$_SESSION['agency_id'];
$result = mysql_query($sql);
$data = mysql_fetch_assoc($result);
if ($data) {
$iframe_token = $data['iframe_token'];
$primary_color = $data['primary_color'] ? $data['primary_color'] : $primary_color;
if ($data['iframe_enabled'] == 1) {
$checked = "checked";
}
}
if ($_SESSION['id_manager'] == 0 || $_SESSION['users_admin'] == 1) {
?>
<div id="Iframe_generation" style='padding-bottom: 100px;' class="lw-settings-block__section" data-section-content="16" data-anchor-dest="52">
<div class="complexes-pres-title-wrapper" id="complexes-pres-title-wrapper" style="gap: 35px; align-items: center;display: flex;">
<h2>Настройка каталога обьектов для вашего сайта</h2>
</div>
<span class="fieldset">
<div class="iframe-toggle-wrapper">
<span>Включить сайт компании</span>
<label class="iframe-toggle">
<input type="checkbox" class="iframe-connected" data-agency-id="<?php echo $_SESSION['agency_id']; ?>" <?php echo $checked; ?> />
<span class="iframe-toggle-slider"></span>
</label>
</div>
<div class="iframe-fields" style="<?php echo $checked ? 'display:flex;' : 'display:none;'; ?> flex-direction:column; gap:20px;">
<label>
<span>Акцентный цвет</span>
<input type="color" class="objects_presentation_main_color_input" value="<?php echo $primary_color; ?>" style="margin:0;padding:0;width:50px;height:30px;border:none;">
</label>
<label>
<span>Ссылка</span>
<div id="iframe_input" class="iframe-link">
<div class ="iframe-link-value">
<?php
if ($iframe_token) {
echo '<code>' . htmlspecialchars('<iframe title="Objects Presentation" width="1920" height="1080" src="https://joywork.ru/objects_presentation/#/'.$iframe_token.'"></iframe>') . '</code>';
}
?>
</div>
<div class="iframe_copy_holder" >
<svg width="15" height="15" viewBox="0 0 120 120">
<g>
<path class="st0" d="M89.62,13.96v7.73h12.19h0.01v0.02c3.85,0.01,7.34,1.57,9.86,4.1c2.5,2.51,4.06,5.98,4.07,9.82h0.02v0.02
v73.27v0.01h-0.02c-0.01,3.84-1.57,7.33-4.1,9.86c-2.51,2.5-5.98,4.06-9.82,4.07v0.02h-0.02h-61.7H40.1v-0.02
c-3.84-0.01-7.34-1.57-9.86-4.1c-2.5-2.51-4.06-5.98-4.07-9.82h-0.02v-0.02V92.51H13.96h-0.01v-0.02c-3.84-0.01-7.34-1.57-9.86-4.1
c-2.5-2.51-4.06-5.98-4.07-9.82H0v-0.02V13.96v-0.01h0.02c0.01-3.85,1.58-7.34,4.1-9.86c2.51-2.5,5.98-4.06,9.82-4.07V0h0.02h61.7
h0.01v0.02c3.85,0.01,7.34,1.57,9.86,4.1c2.5,2.51,4.06,5.98,4.07,9.82h0.02V13.96L89.62,13.96z
M79.04,21.69v-7.73v-0.02h0.02 c0-0.91-0.39-1.75-1.01-2.37c-0.61-0.61-1.46-1-2.37-1v0.02h-0.01h-61.7h-0.02v-0.02c-0.91,0-1.75,0.39-2.37,1.01
c-0.61,0.61-1,1.46-1,2.37h0.02v0.01v64.59v0.02h-0.02c0,0.91,0.39,1.75,1.01,2.37c0.61,0.61,1.46,1,2.37,1v-0.02h0.01h12.19V35.65
v-0.01h0.02c0.01-3.85,1.58-7.34,4.1-9.86c2.51-2.5,5.98-4.06,9.82-4.07v-0.02h0.02H79.04L79.04,21.69z
M105.18,108.92V35.65v-0.02 h0.02c0-0.91-0.39-1.75-1.01-2.37c-0.61-0.61-1.46-1-2.37-1v0.02h-0.01h-61.7h-0.02v-0.02c-0.91,0-1.75,0.39-2.37,1.01
c-0.61,0.61-1,1.46-1,2.37h0.02v0.01v73.27v0.02h-0.02c0,0.91,0.39,1.75,1.01,2.37c0.61,0.61,1.46,1,2.37,1v-0.02h0.01h61.7h0.02
v0.02c0.91,0,1.75-0.39,2.37-1.01c0.61-0.61,1-1.46,1-2.37h-0.02V108.92L105.18,108.92z" fill="#C2C2C2">
</path>
</g>
</svg>
</div>
</div>
</label>
<div style='display:flex;'>
<button id="iframe_save" class="top-line__button button-fl-right medium-button">Сохранить</button>
</div>
</div>
</span>
</div>
<?php
}
?>
<!-- webApi start -->
<?php if (true) { //$show_settings_blocks ?>
<div class="control-groups lw-settings-block__section" id="war_api" data-anchor-dest="53">
<?php
// Верстка приходит динамически, нужно переверстать по аналогии !!!
// Где-то выше объект $user переопределяетяся и теряет свойства API
$WebAppRaiserAPI = new WebAppRaiserAPI($user);
$war_username = (!empty($_GET['war_username']))?$_GET['war_username']:$user->api['war_username'];
$war_client_id = (!empty($_GET['war_client_id']))?$_GET['war_client_id']:$user->api['war_client_id'];
$war_client_secret = (!empty($_GET['war_client_secret']))?$_GET['war_client_secret']:$user->api['war_client_secret'];
$war_pincode = (!empty($_GET['war_pincode']))?$_GET['war_pincode']:$user->api['war_pincode'];
$form = WebAppRaiserForm::getForm('api_settings_form');
$fields = array(
'war_username' => $war_username,
'war_client_id' => $war_client_id,
'war_client_secret' => $war_client_secret,
'war_pincode' => $war_pincode,
'war_id' => $user->api['war_id'],
'war_user_id' => $_SESSION['id'],
'war_access_token' => $user->api['war_access_token'],
'war_refresh_token' => $user->api['war_refresh_token'],
'war_attached_users' => ApiSettingsForm::getApiUsersInForm($user->api['war_id']),
'destination' => 'settings.php',
'fragment' => 'war_api',
);
$WebAppRaiserPage['content'] .= $form->render($fields);
if(!empty($WebAppRaiserPage['msg'])){
print '<div class="new-object" style="border:none;">';
if($WebAppRaiserPage['status'] == 'error')
echo '<div class="error_msg" style="margin-bottom: 0;">'.implode('<br/>', $WebAppRaiserPage['msg']).'</div>';
else
echo '<div class="success_msg" style="margin-bottom: 0;">'.implode('<br/>', $WebAppRaiserPage['msg']).'</div>';
print '</div>';
}
if(!empty($_GET['status'])){
if($_GET['status'] == 'error')
echo '<div class="error_msg">Параметры не сохранены! '.$_GET['msg'].'</div>';
else
echo '<div class="success_msg">Параметры сохранены! '.$_GET['msg'].'</div>';
}
?>
<div class="control-group control-line" style="padding:20px; margin:0;">
<h2><?php print $WebAppRaiserPage['title'] ?></h2>
<?php
print $WebAppRaiserPage['content'];
?>
</div>
</div>
<div class="control-groups-inner">
<div class="control-group control-line" style="padding:20px; margin:0;">
<!-- Справка -->
<h2>Справка</h2>
<div class="instructions">
<ul>
<li>
<span class="li-number first"><b>1</b></span>
Пройдите регистрацию по ссылке <br /><a class="blank-link" href="https://webappraiser.ru/register-agent" target="_blank" title="Регистрация ВебОценщик">https://webappraiser.ru/register-agent</a>;
</li>
<li>
<span class="li-number second"><b>2</b></span>
Обязательно укажите промокод <code>JOYWORK26</code><br /> (он вернет вам кешбек на отдельные услуги сервиса ВЕБОЦЕНЩИК и вы получите скидку на услуги компании);
</li>
<li>
<span class="li-number third"><b>3</b></span>
После регистрации напишите на <a href="mailto:support@webappraiser.ru">support@webappraiser.ru</a> письмо с просьбой предоставить API ключ для интеграции с CRM JoyWork, указав свою почту с которой вы проходили регистрацию;
</li>
<li>
<span class="li-number first"><b>4</b></span>
После получения логина и секретного кода API<br/> введите их в настройки данной интеграции в JoyWork;
</li>
</ul>
</div>
</div>
<div class="lw-block-video" style="width: 35%; margin: 0 0 20px 20px">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&amp;id=456239166&amp;hash=677b02ba1301a104" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Как заказать отчет об оценке для ипотеки в JoyWork</h3>
</div>
</div>
</div>
</div>
<?php } ?>
<?php
if (isset($complexes_frame_result['end_date'])) {
?>
<?php }?>
<?php if ($menuPermissions['menu_complexes'] == 1) { ?>
<div class="lw-settings-block__section" data-section-content="16" data-anchor-dest="54">
<div class="complexes-pres-title-wrapper" id="complexes-pres-title-wrapper" style="gap: 35px; align-items: center;display: flex;">
<h2>Настройка каталога комплексов для вашего сайта</h2>
<h3 style="color: #D32F2F;"></h3>
</div>
<span class="fieldset">
<label>
<span>Акцентный цвет</span>
<input type="color" id="complexes_presentation_color" value="<?php echo $complexes_main_color ?>" class="complexes_presentation_main_color_input" style="margin: 0; padding: 0;width: 50px; height: 30px; border: none;">
</label>
<label>
<span>Цвет шахматки "Забронировано"</span>
<input type="color" id="complexes_presentation_reserved_color" value="<?php echo $complexes_reserved_color ?>" class="complexes_presentation_reserved_color_input" style="margin: 0; padding: 0;width: 50px; height: 30px; border: none;">
</label>
<label>
<span>Цвет шахматки "Свободно"</span>
<input type="color" id="complexes_presentation_free_color" value="<?php echo $complexes_free_color ?>" class="complexes_presentation_free_color_input" style="margin: 0; padding: 0;width: 50px; height: 30px; border: none;">
</label>
<label>
<span>Воронка клиента</span>
<select name="client_funnel" id="complexes_presentation_client_funnel" style="min-width: 250px; max-width: 250px; white-space: nowrap;">
<option value="" <?= empty($complexes_frame_result['client_funnel_id']) ? 'selected' : '' ?>>Не выбрано</option>
<?php foreach ($complex_frame_client_funnels as $funnel): ?>
<option value="<?= $funnel['id'] ?>" <?= ($funnel['id'] == $complexes_frame_result['client_funnel_id']) ? 'selected' : '' ?>>
<?= htmlspecialchars($funnel['name']) ?>
</option>
<?php endforeach; ?>
</select>
</label>
<label>
<span>Воронка заявки</span>
<select name="req_funnel" id="complexes_presentation_req_funnel" style="min-width: 250px; max-width: 250px; white-space: nowrap">
<option value="" <?= empty($complexes_frame_result['req_funnel_id']) ? 'selected' : '' ?>>Не выбрано</option>
<?php foreach ($complex_frame_req_funnels as $funnel): ?>
<option value="<?= $funnel['id'] ?>" <?= ($funnel['id'] == $complexes_frame_result['req_funnel_id']) ? 'selected' : '' ?>>
<?= htmlspecialchars($funnel['name']) ?>
</option>
<?php endforeach; ?>
</select>
</label>
<label>
<span class="label">Ссылка</span>
<div class="iframe-url-wrapper" style="display: flex; position: relative;">
<div id="complexes_iframe_url"
style="color: #949494; text-overflow: ellipsis; overflow: hidden; width: auto; max-width: 500px; height: auto;">
</div>
<svg class="complexes_iframe_clipboard_svg"
style="position:absolute; right: 100px; background-color: #FFFFFF; enable-background:new 0 0 115.77 122.88"
height="18px" width="18px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1" id="Layer_1" x="0px" y="0px" viewbox="0 0 115.77 122.88" xml:space="preserve">
<g>
<path class="st0"
d="M89.62,13.96v7.73h12.19h0.01v0.02c3.85,0.01,7.34,1.57,9.86,4.1c2.5,2.51,4.06,5.98,4.07,9.82h0.02v0.02
v73.27v0.01h-0.02c-0.01,3.84-1.57,7.33-4.1,9.86c-2.51,2.5-5.98,4.06-9.82,4.07v0.02h-0.02h-61.7H40.1v-0.02
c-3.84-0.01-7.34-1.57-9.86-4.1c-2.5-2.51-4.06-5.98-4.07-9.82h-0.02v-0.02V92.51H13.96h-0.01v-0.02c-3.84-0.01-7.34-1.57-9.86-4.1
c-2.5-2.51-4.06-5.98-4.07-9.82H0v-0.02V13.96v-0.01h0.02c0.01-3.85,1.58-7.34,4.1-9.86c2.51-2.5,5.98-4.06,9.82-4.07V0h0.02h61.7
h0.01v0.02c3.85,0.01,7.34,1.57,9.86,4.1c2.5,2.51,4.06,5.98,4.07,9.82h0.02V13.96L89.62,13.96z
M79.04,21.69v-7.73v-0.02h0.02 c0-0.91-0.39-1.75-1.01-2.37c-0.61-0.61-1.46-1-2.37-1v0.02h-0.01h-61.7h-0.02v-0.02c-0.91,0-1.75,0.39-2.37,1.01
c-0.61,0.61-1,1.46-1,2.37h0.02v0.01v64.59v0.02h-0.02c0,0.91,0.39,1.75,1.01,2.37c0.61,0.61,1.46,1,2.37,1v-0.02h0.01h12.19V35.65
v-0.01h0.02c0.01-3.85,1.58-7.34,4.1-9.86c2.51-2.5,5.98-4.06,9.82-4.07v-0.02h0.02H79.04L79.04,21.69z
M105.18,108.92V35.65v-0.02 h0.02c0-0.91-0.39-1.75-1.01-2.37c-0.61-0.61-1.46-1-2.37-1v0.02h-0.01h-61.7h-0.02v-0.02c-0.91,0-1.75,0.39-2.37,1.01
c-0.61,0.61-1,1.46-1,2.37h0.02v0.01v73.27v0.02h-0.02c0,0.91,0.39,1.75,1.01,2.37c0.61,0.61,1.46,1,2.37,1v-0.02h0.01h61.7h0.02
v0.02c0.91,0,1.75-0.39,2.37-1.01c0.61-0.61,1-1.46,1-2.37h-0.02V108.92L105.18,108.92z"
fill="#e0e0e0"></path>
</g>
</svg>
<span class="iframe_tooltip">Скопировано</span>
</div>
</label>
<div class="lw-settings-block__submit-row">
<button id="complexes_presentation_settings_btn" data-id-c="<?php echo $agency_id; ?>" class="top-line__button button-fl-right medium-button">Сохранить</button>
</div>
</span>
</div>
<?php } ?>
<!-- webApi end -->
</div>
</div>
<!-- data-section-id="5" end -->
<!-- data-section-id="6" start -->
<div class="lw-settings-block__content-section" data-section-id="6">
<div class="lw-settings-block__content-section-side">
<ul>
<li data-anchor="61">
<a href="#">Unicender</a>
</li>
<li data-anchor="63">
<a href="#">Синхронизация с Telegram</a>
</li>
<li data-anchor="631">
<a href="#">Синхронизация с MAX</a>
</li>
<li data-anchor="64">
<a href="#">Постинг VK</a>
</li>
<?php if (($_SESSION['agency'] || $_SESSION['individual'] || $user->role_developer) && $user->enable_wazzap) {?>
<li data-anchor="66">
<a href="#">API для Wazzup</a>
</li>
<?php } ?>
</ul>
</div>
<div class="lw-settings-block__content-section-main">
<!-- unisender start -->
<div class="lw-settings-block__section" data-section-content="17" id="unisenderApiKey" data-anchor-dest="61">
<img width="178" height="35" src="https://www.unisender.com/wp-content/uploads/2021/04/unisender.svg" alt="Unisender">
<h2>API для email-рассылок</h2>
<div class="fieldset">
<label for="">
<span>Ключ для API</span>
<input type="text" v-model="apiKey" class="text">
</label>
</div>
<blockquote class="lw-blockquote">
<a href="https://www.unisender.com/ru/support/api/common/api-key/" target="_blank">Где взять API-ключ Unisender?</a>
</blockquote>
<div class="lw-settings-block__submit-row">
<input type="hidden" class="hidden" name="" value="">
<button class="top-line__button button-fl-right medium-button" @click="saveKey">Сохранить</button>
</div>
</div>
<!-- unisender end -->
<!-- telegram start -->
<div class="lw-settings-block__section" data-section-content="18" data-anchor-dest="63">
<h2>Синхронизация с Telegram</h2>
<div class="lw-note">
<p>Для получения уведомлений в Telegram воспользуйтесь нашим ботом
<a href="http://t.me/joywork_ru_bot">@joywork_ru_bot</a>.
</p>
<p>После запуска следуйте инструкциям бота для авторизации в системе.</p>
<p>Бот напомнит о событиях и задачах, которые Вы оставили при работе с клиентами и объектами.</p>
<p>Позже мы расширим возможности бота другими функциями.</p>
</div>
<span class="area-label-right" style="font-size: 23px; margin-left: 0px;">
<i style="color: cornflowerblue; font-size: 28px;" class="fa-brands fa-telegram"></i>
<a href="https://t.me/joyworkcrm" target="_blank">Подпишитесь на наш новостной канал в Telegram, чтобы следить за обновлениями системы</a>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="24px" height="24px" class="">
<g>
<g transform="matrix(1.25 0 0 -1.25 0 45)">
<path style="fill:#F4511E" d="M398.448-179.952c0,23.5-4.18,46.008-11.847,66.843c-5.24-61.375-37.967-92.917-72.162-78.234 c-32.043,13.761-10.445,67.401-8.851,92.996C308.277-54.958,305.451-5.293,226.637,36c32.749-62.651,3.793-101.563-26.586-103.943 c-33.683-2.62-64.542,28.956-53.151,80.216c-36.884-27.179-37.967-72.925-26.586-102.52c11.869-30.847-0.467-56.477-29.423-59.325 c-32.339-3.189-50.314,34.641-33.74,94.922c-28.683-33.775-45.997-77.516-45.997-125.302C11.152-286.902,97.85-373.6,204.8-373.6 S398.448-286.902,398.448-179.952z" data-original="#F4900C" class="active-path" data-old_color="#FF7043"></path>
<path style="fill:#FFB74D" d="M277.418-279.146c-23.978,9.603-17.554,26.097-23.728,60.27 c-6.174,34.173-29.902,57.912-65.031,68.346c25.63-72.14-14.204-98.726-35.084-103.476c-21.324-4.853-42.751,0.012-45.2,45.644 c-24.867-24.764-40.267-59.028-40.267-96.893c0-4.186,0.199-8.325,0.567-12.415C103.652-352.245,151.729-373.6,204.8-373.6 s101.148,21.355,136.126,55.932c0.369,4.09,0.567,8.229,0.567,12.415c0,24.901-6.652,48.253-18.283,68.358 C324.885-272.026,294.026-285.798,277.418-279.146z" data-original="#FFCC4D" class="" data-old_color="#FFCC4D"></path>
</g>
</g>
</svg>
</span>
<div class="fieldset">
<label>
<span>Код для авторизации</span>
<input type="text" id="key_telegramm" class="text" value="<?=$user->telegramm_kod?>">
</label>
</div>
<div class="lw-settings-block__submit-row">
<button class="top-line__button button-fl-right medium-button" onclick="save_key_telegramm()">Сохранить</button>
</div>
<div class="lw-video-grid">
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239149&hash=28c4dfbee5d843e3" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Более подробно в видео-инструкции</h3>
</div>
</div>
</div>
</div>
<!-- telegram end -->
<!-- max start -->
<div class="lw-settings-block__section" data-section-content="181" data-anchor-dest="631">
<h2>Синхронизация с Max</h2>
<div class="lw-note">
<p>Для получения уведомлений в max воспользуйтесь нашим ботом
<a href="https://max.ru/id434595094031_bot">max_bot</a>.
</p>
<p>После запуска следуйте инструкциям бота для авторизации в системе.</p>
<p>Бот напомнит о событиях и задачах, которые Вы оставили при работе с клиентами и объектами.</p>
<p>Позже мы расширим возможности бота другими функциями.</p>
</div>
<span class="area-label-right" style="font-size: 23px; margin-left: 0px;">
<img width="28px" style="margin-bottom:-5px" src="/images/max_icon.svg"/>
<a href="https://max.ru/join/qktA02er6CpqGeuwQQptiTmxb2fmXSuN5elrPAhExsA" target="_blank">Подпишитесь на наш новостной канал в MAX, чтобы следить за обновлениями системы</a>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="24px" height="24px" class="">
<g>
<g transform="matrix(1.25 0 0 -1.25 0 45)">
<path style="fill:#F4511E" d="M398.448-179.952c0,23.5-4.18,46.008-11.847,66.843c-5.24-61.375-37.967-92.917-72.162-78.234 c-32.043,13.761-10.445,67.401-8.851,92.996C308.277-54.958,305.451-5.293,226.637,36c32.749-62.651,3.793-101.563-26.586-103.943 c-33.683-2.62-64.542,28.956-53.151,80.216c-36.884-27.179-37.967-72.925-26.586-102.52c11.869-30.847-0.467-56.477-29.423-59.325 c-32.339-3.189-50.314,34.641-33.74,94.922c-28.683-33.775-45.997-77.516-45.997-125.302C11.152-286.902,97.85-373.6,204.8-373.6 S398.448-286.902,398.448-179.952z" data-original="#F4900C" class="active-path" data-old_color="#FF7043"></path>
<path style="fill:#FFB74D" d="M277.418-279.146c-23.978,9.603-17.554,26.097-23.728,60.27 c-6.174,34.173-29.902,57.912-65.031,68.346c25.63-72.14-14.204-98.726-35.084-103.476c-21.324-4.853-42.751,0.012-45.2,45.644 c-24.867-24.764-40.267-59.028-40.267-96.893c0-4.186,0.199-8.325,0.567-12.415C103.652-352.245,151.729-373.6,204.8-373.6 s101.148,21.355,136.126,55.932c0.369,4.09,0.567,8.229,0.567,12.415c0,24.901-6.652,48.253-18.283,68.358 C324.885-272.026,294.026-285.798,277.418-279.146z" data-original="#FFCC4D" class="" data-old_color="#FFCC4D"></path>
</g>
</g>
</svg>
</span>
<div class="fieldset">
<label>
<span>Код для авторизации</span>
<input type="text" id="key_max" class="text" value="<?=$user->max_kod?>">
</label>
</div>
<div class="lw-settings-block__submit-row">
<button class="top-line__button button-fl-right medium-button" onclick="save_key_max()">Сохранить</button>
</div>
<!--<div class="lw-video-grid">
<div class="lw-block-video">
<iframe loading="lazy" src="https://vkvideo.ru/video_ext.php?oid=-140502045&id=456239149&hash=28c4dfbee5d843e3" width="640" height="360" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture"></iframe>
<div class="video-title">
<h3>Более подробно в видео-инструкции</h3>
</div>
</div>
</div>-->
</div>
<!-- max end -->
<!-- vkontakte start -->
<div class="lw-settings-block__section settings-block vk" data-section-content="19" data-anchor-dest="64">
<h2>Постинг в VK</h2>
<form method="post">
<div class="settings-block__form">
<div class="form-block">
<div class="label">&nbsp;</div>
<div class="inputs">
<p>Чтобы иметь возможность выкладывать посты в группу в Вконтакте, нужно получить токен и указать идентификатор группы (только цифры).</p>
<p>Помните, что максимальное число постов в группу за сутки &ndash; 50, делать посты лучше не чаще, чем раз в 5 минут, иначе можно получить блокировку за спам.</p>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">ID пользователя</div>
<div class="inputs">
<input type="text" disabled name="vkUser" value="<?php echo empty($user->vk_user_id) ? '' : $user->vk_user_id; ?>" class="text">
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Токен авторизации</div>
<div class="inputs">
<input type="text" disabled name="vkToken" value="<?php echo empty($user->vk_token) ? '' : '************************'; ?>" class="text">
<?php
if (empty($user->vk_token)) {
echo '&nbsp;<a href="javascript:void(0);" onclick="getVkToken();" class="medium-button get-token">Получить токен</a>';
} else {
echo '&nbsp;<a href="javascript:void(0);" onclick="showWindowRemoveVkToken();" class="medium-button get-token">Удалить токен</a>';
}
?>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">ID группы</div>
<div class="inputs">
<input type="text" name="vkGroup" value="<?php echo empty($user->vk_group_id) ? '' : $user->vk_group_id; ?>" class="text">
<div class="description">В этом поле нужно указать именно цифровой ID группы из Вконтакте, без букв.<br />Если групп несколько, укажите их через запятую.</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block checkboxes">
<div class="label">&nbsp;</div>
<div class="inputs">
<div class="checkbox">
<input name="vkFromGroup" id="vkFromGroup" type="checkbox" value="1" <?php echo (empty($user->vk_post_as_group) || $user->vk_post_as_group != 1) ? '' : 'checked'; ?>>
<label for="vkFromGroup">От имени группы</label>
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-block last">
<div class="label">&nbsp;</div>
<div class="inputs">
<input type="hidden" class="hidden" name="ok_vk" value="1">
<button type="submit" class="medium-button">Сохранить</button>
</div>
<div class="clear"></div>
</div>
</div>
</form>
</div>
<!-- vkontakte end -->
<!-- wazzapApiKey start -->
<?php if (($_SESSION['agency'] || $_SESSION['individual'] || $user->role_developer) && $user->enable_wazzap) {?>
<div class="lw-settings-block__section" data-section-content="20" id="wazzapApiKey" data-anchor-dest="66">
<h2>API для Wazzup</h2>
<div class="fieldset">
<label>
<span>Ключ для API</span>
<input type="text" v-model="apiKeyWazzap" class="text">
</label>
</div>
<div class="lw-note">
<p style="font-weight: bold; <?php if (!$user->added_to_wazzap) { echo 'display:none;';} ?>" id="directorAddedToWazzapLabel">Руководитель добавлен в Wazzup.</p>
</div>
<div class="lw-settings-block__submit-row">
<input type="hidden" class="hidden" name="" value="">
<button class="button-fl-right small-button" id="directorAddToWazzapButton" style="<?php if ($user->added_to_wazzap) { echo 'display:none;';}?>" @click="addDirectorToWazzap">Добавить руководителя в Wazzup</button>
<button class="top-line__button button-fl-right medium-button" @click="saveWazzapKey">Сохранить</button>
</div>
</div>
<?php } ?>
<!-- wazzapApiKey end -->
</div>
</div>
<!-- data-section-id="6" end -->
</div>
<!-- content end -->
<!-- модалки -->
<div class="full_modal-bg" id="group_advertising_sources" style="display: none; ">
<span class="event-modal-close closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" style="display: none;">
<form class="form-validate" >
<div class="modal-inner">
<h2>Группа рекламных источников</h2>
<div class="jw-tabs">
<div>
<div class="tabs__content" style="display: block;">
<div class="form-block">
<div class="label l-space">Название группы</div>
<div class="inputs">
<input name="agency_id" type="hidden" value="<?=$user->agencyId?>">
<input name="user_id" type="hidden" value="<?=$user->id?>">
<input name="idgroup" id="group_advertising_sources_idgroup" type="hidden" value="0">
<input name="name" id="group_advertising_sources_name" type="text" class="text" required style="width:400px;" value="">
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button type="button" value="1">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
<div id="advertising_sources_add_edit_modal">
<div class="full_modal-bg" id="edit_advertising_sources" style="display: none; ">
<span class="event-modal-close closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" style="display: none;">
<form class="form-validate" >
<div class="modal-inner">
<h2>Рекламный источник</h2>
<div class="jw-tabs">
<div>
<div class="tabs__content" style="display: block;">
<div class="form-block">
<div class="label l-space">Источник</div>
<div class="inputs">
<input name="ideditsources" type="hidden" value="">
<input name="editsources" type="text" class="text" required style="width:400px;" value="">
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label l-space">Группа</div>
<div class="inputs">
<select id="changeGroupSourse"style="width:400px;" name="group">
<option value="0">Без группы</option>
<?php
$sql_advg = "SELECT * FROM `advertising_sources_groups` WHERE `user_id` = '".$user->id."' or `manager_id` = '".$user->id."'";
if($user->id_manager){
$sql_advg .= " or `manager_id` = '".$user->id_manager."' or `user_id` = '".$user->id_manager."'";
}
if($user -> agencyId || $_SESSION['users_admin']){
$sql_advg .= " or `user_id` in (select u.id from users u where u.`id_manager` = '".$user -> agencyId."')";
}
// echo $sql_adv;
$q_advg = mysql_query($sql_advg);
while($r_advg = mysql_fetch_array($q_advg)){ ?>
<option value="<?=$r_advg['id']?>"><?=$r_advg['name']?></option>
<?php
}
?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="advertising_sources-is_no_see" v-model="is_no_see" false-value="0" true-value="1">
<label for="advertising_sources-is_no_see">Не показывать всем</label>
</div>
</div>
<div class="form-block" v-show="is_no_see == 1">
<div class="label">...кроме сотрудников</div>
<div class="inputs">
<v-select class="vue_select" :components="{OpenIndicator}" style="width: 400px; border: none;" multiple :options="users_see" :reduce="name => name.code" label="name" v-model="selected_users_see_no"/>
<template #option="{ name, type }">
<span v-if="type=='otdel'" style="margin: 0; color:#000; font-size: 17px">{{ name }}</span>
<span v-else style="margin-left:10px;">{{ name }}</span>
</template>
<v-select>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button type="button" value="1">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
<div class="full_modal-bg" id="add_advertising_sources" style="display: none; ">
<span class="event-modal-close closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" style="display: none;">
<form class="form-validate" method="post">
<div class="modal-inner">
<h2>Новый рекламный источник</h2>
<div class="jw-tabs">
<div>
<div class="tabs__content" style="display: block;">
<div class="form-block">
<div class="label l-space">Источник</div>
<div class="inputs">
<?php if ($_SESSION['users_admin']) {?>
<input name="user_id" type="hidden" value="<?=$user->agencyId?>">
<input name="manager_id" type="hidden" value="0">
<?php } else { ?>
<input name="user_id" type="hidden" value="<?=$user->id?>">
<input name="manager_id" type="hidden" value="<?=$user->id_manager?>">
<?php } ?>
<input name="addsources" type="text" class="text" required style="width:400px;" value="">
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label l-space">Группа</div>
<div class="inputs">
<select id="changeGroupSourseAdd"style="width:400px;" name="group">
<option value="0">Без группы</option>
<?php
$sql_advg = "SELECT * FROM `advertising_sources_groups` WHERE `user_id` = '".$user->id."' or `manager_id` = '".$user->id."'";
if($user->id_manager){
$sql_advg .= " or `manager_id` = '".$user->id_manager."' or `user_id` = '".$user->id_manager."'";
}
if($user -> agencyId || $_SESSION['users_admin']){
$sql_advg .= " or `user_id` in (select u.id from users u where u.`id_manager` = '".$user -> agencyId."')";
}
// echo $sql_adv;
$q_advg = mysql_query($sql_advg);
while($r_advg = mysql_fetch_array($q_advg)){ ?>
<option value="<?=$r_advg['id']?>"><?=$r_advg['name']?></option>
<?php
}
?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="checkbox small" style="margin-bottom:0px;">
<input type="checkbox" id="advertising_sources-is_no_see" v-model="is_no_see" false-value="0" true-value="1">
<label for="advertising_sources-is_no_see">Не показывать всем</label>
</div>
</div>
<div class="form-block" v-show="is_no_see == 1">
<div class="label">...кроме сотрудников</div>
<div class="inputs">
<v-select class="vue_select" :components="{OpenIndicator}" style="width: 400px; border: none;" multiple :options="users_see" :reduce="name => name.code" label="name" v-model="selected_users_see_no"/>
<template #option="{ name, type }">
<span v-if="type=='otdel'" style="margin: 0; color:#000; font-size: 17px">{{ name }}</span>
<span v-else style="margin-left:10px;">{{ name }}</span>
</template>
<v-select>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button type="button" value="1">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
</div>
<div class="full_modal-bg" id="add_activities" style="display: none; ">
<span class="event-modal-close closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" style="display: none;">
<form class="form-validate" method="post">
<div class="modal-inner">
<h2>Новый тег</h2>
<div class="jw-tabs">
<div>
<div class="tabs__content" style="display: block;">
<div class="form-block">
<div class="label l-space">Наименование</div>
<div class="inputs">
<input name="user_id" type="hidden" value="<?=$user->id?>">
<input name="manager_id" type="hidden" value="<?=$user->id_manager?>">
<input name="addactivities" type="text" class="text" required style="width:400px;" value="">
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Цвет:</label>
</div>
<div class="inputs">
<input id="colorAddActivites" name="addactivitiescolor" type="hidden" value=""/>
<div class="inputs-group" style="display: flex; gap: 15px; flex-wrap: wrap;">
<?php
$tag_colors = [
"#5C9C5F",
"#b84e01",
"#ffa906",
"#f95835",
"#e079ca",
"#8e60e4",
"#10b2f3",
"#57b4a8",
"#94bd01",
"#ebc615",
"#a6a6a6"
];
foreach($tag_colors as $key => $color){ ?>
<div data-color="<?= $color ?>" class="color-item" style="display: flex; align-items: center; justify-content: center; background-color: <?= $color ?>">
<svg style="display: none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#ffffff" height="16px" width="16px" version="1.1" viewBox="-44.75 -44.75 496.33 496.33" xml:space="preserve" stroke="#ffffff" stroke-width="34.58089">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<polygon points="385.621,62.507 146.225,301.901 21.213,176.891 0,198.104 146.225,344.327 406.834,83.72 " />
</g>
</svg>
</div>
<?php } ?>
<div id="addActivitesColorPicker" data-color="" class="color-item" style="display: flex; align-items: center; justify-content: center; position: relative; background: linear-gradient(135deg, #f95835, #e079ca, #8e60e4, #10b2f3, #50b7aa)">
<input oninput="changeColorPicker('add')" ref="colorPicker" class="custom-color" type="color" style="z-index: 2;">
<svg style="display: none; z-index: 1;" style="position: absolute;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#ffffff" height="16px" width="16px" version="1.1" viewBox="-44.75 -44.75 496.33 496.33" xml:space="preserve" stroke="#ffffff" stroke-width="34.58089">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<polygon points="385.621,62.507 146.225,301.901 21.213,176.891 0,198.104 146.225,344.327 406.834,83.72 " />
</g>
</svg>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button type="button" value="1">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
<div class="full_modal-bg" id="edit_activities" style="display: none; ">
<span class="event-modal-close closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" style="display: none;">
<form class="form-validate" >
<div class="modal-inner">
<h2>Тег</h2>
<div class="jw-tabs">
<div>
<div class="tabs__content" style="display: block;">
<div class="form-block">
<div class="label l-space">Наименование</div>
<div class="inputs">
<input name="ideditactivities" type="hidden" value="">
<input name="editactivities" type="text" class="text" required style="width:400px;" value="">
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="form-search__main-label small-label">
<label for="object-fields-title">Цвет:</label>
</div>
<div class="inputs">
<input id="colorEditActivites" name="editactivitiescolor" type="hidden" value="#5C9C5F"/>
<div class="inputs-group" style="display: flex; gap: 15px; flex-wrap: wrap;">
<?php
$tag_colors = [
"#5C9C5F",
"#b84e01",
"#ffa906",
"#f95835",
"#e079ca",
"#8e60e4",
"#10b2f3",
"#57b4a8",
"#94bd01",
"#ebc615",
"#a6a6a6"
];
foreach($tag_colors as $key => $color){ ?>
<div data-color="<?= $color ?>" class="color-item" style="display: flex; align-items: center; justify-content: center; background-color: <?= $color ?>">
<svg style="display: <?= $key == 0 ? 'block' : 'none'?>" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#ffffff" height="16px" width="16px" version="1.1" viewBox="-44.75 -44.75 496.33 496.33" xml:space="preserve" stroke="#ffffff" stroke-width="34.58089">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<polygon points="385.621,62.507 146.225,301.901 21.213,176.891 0,198.104 146.225,344.327 406.834,83.72 " />
</g>
</svg>
</div>
<?php } ?>
<div id="editActivitesColorPicker" data-color="<?= $color ?>" class="color-item" style="display: flex; align-items: center; justify-content: center; position: relative; background: linear-gradient(135deg, #f95835, #e079ca, #8e60e4, #10b2f3, #50b7aa)">
<input oninput="changeColorPicker()" ref="colorPicker" class="custom-color" type="color" style="z-index: 2;">
<svg style="display: none; z-index: 1;" style="position: absolute;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#ffffff" height="16px" width="16px" version="1.1" viewBox="-44.75 -44.75 496.33 496.33" xml:space="preserve" stroke="#ffffff" stroke-width="34.58089">
<g id="SVGRepo_bgCarrier" stroke-width="0" />
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" />
<g id="SVGRepo_iconCarrier">
<polygon points="385.621,62.507 146.225,301.901 21.213,176.891 0,198.104 146.225,344.327 406.834,83.72 " />
</g>
</svg>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button type="button" value="1">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
<link rel="stylesheet" href="/css/funnel.css?v=<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/css/funnel.css')?>">
<!-- vue настройки ролей -->
<div id="setting_roles" class="hidden">
<div v-if="setOtdel" class="full_modal-bg">
<span class="event-modal-close closer" @click="setOtdel=false"><i class="ti-close"></i></span>
<div class="full_modal edit-modal">
<form class="form-validate" >
<div class="modal-inner">
<div v-if="mes_error_otdel" v-html="errorOtdel" class="error_msg"></div>
<h2>Отдел</h2>
<div class="jw-tabs">
<div class="tabs__content" style="display: block;">
<div class="form-block">
<div class="label l-space">Наименование</div>
<div class="inputs">
<input v-model="name" class="text" type="text" style="width:400px;">
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Роли</div>
<div class="inputs dop_settings">
<ul class="pole_select_value pole_end_etap">
<template v-if="rolesEmp.length > 0" v-for="(emp, empId) in rolesEmp">
<li v-if="rolesEmp[empId].isDiv" :key="empId">
<div style="margin: 4px 4px 0px 0px">{{ emp.name }} ({{ empRoles[emp.type] }})</div>
<a title="Изменить значение" @click="editEmp(empId)" class="faplus" href="javascript:{}"><i class="fas fa-pencil-alt"></i></a>
<a @click="deleteEmp(empId)" class="fatrash"><i title="Удалить значение" class="fas fa-trash"></i></a>
</li>
<li v-if="rolesEmp[empId].isEdit">
<div>
<label>Название</label>
<input v-model="emp.name" @input="mes_error_otdel = false" style="width:250px;" type="text" value=""/>
</div>
<div style="margin-left: 5px;">
<label>Доступ</label>
<!--<multiselect v-model="typeRole" tag-placeholder="Добавьте значение" track-by="name" label="name" placeholder="" select-label="Добавить" deselect-label="Удалить" selected-label="Выбрано" :options="roles" :searchable="false" :show-labels="false">
<template slot="singleLabel" slot-scope="{ option }"><strong>{{ option.name }}</strong></template>
</multiselect>-->
<div style="margin-right: 5px;">
<v-select :components="{OpenIndicator}" transition="" class="vue_select" style="width: 270px; border: none;" :options="roles" :reduce="name => name" label="name" v-model="typeRole"/>
</div>
</div>
<div>
<a @click="editEmpSave(empId)" class="faplus" href="javascript:{}" title="Сохранить"><i class="far fa-save"></i></a>
</div>
<div class="clear"></div>
</li>
</template>
<li class="pole_li" v-if="isInput">
<div>
<label>Название</label>
<input v-model="nameRole" @input="mes_error_otdel = false" style="width:250px;" type="text" value=""/>
</div>
<div style="margin-left: 5px;">
<label>Доступ</label>
<!--<multiselect v-model="typeRole" tag-placeholder="Добавьте значение" track-by="name" label="name" placeholder="" select-label="Добавить" deselect-label="Удалить" selected-label="Выбрано" :options="roles" :searchable="false" :show-labels="false">
<template slot="singleLabel" slot-scope="{ option }"><strong>{{ option.name }}</strong></template>
</multiselect>-->
<div style="margin-right: 5px;">
<v-select :components="{OpenIndicator}" transition="" class="vue_select" style="width: 270px; border: none;" :options="roles" :reduce="name => name" label="name" v-model="typeRole"/>
</div>
</div>
<div>
<a @click="addRole" class="faplus" href="javascript:{}" title="Сохранить"><i class="far fa-save"></i></a>
</div>
<div class="clear"></div>
</li>
<li class="liPlus"><a class="faplus" href="javascript:{}" title="Добавить значение" @click="isInput = true"><i class="fas fa-plus"></i></a></li>
</ul>
</div>
</div>
<div class="form-block" v-if="otdels.length > 0">
<div class="label">Список отделов</div>
<div class="inputs">
</div>
</div>
</div>
</div>
</div>
<div class="modal-submit">
<button @click='saveOtdet' type="button" value="1">Сохранить&nbsp;<i class="ti-angle-right"></i></button>
</div>
</form>
<div class="clear"></div>
</div>
</div>
</div>
<div class="full_modal-bg" id="adv_phone_modal_bg" style="display: none">
<span class="pseudo-link closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" id="adv_phone_modal" style="display: none;">
<div class="modal-inner">
<h2 id="advPhoneModalTitle">Создание рекламного телефона</h2>
<div id="advPhoneModalErrors" style="color: red;padding-bottom: 15px;">
</div>
<div id="advPhoneModalContent">
<input type="hidden" name="adv_phone_id" id="adv_phone_id" value=""/>
<div class="form-block">
<div class="label">Наименование</div>
<div class="inputs">
<input class="text" type="text" required="required" name="advPhoneName" id="advPhoneName" maxlength="200"/>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Тип выгрузки</div>
<div class="inputs">
<select required="required" id="advPhoneType" name="advPhoneType">
<option value="-1">&nbsp;</option>
<?php
$phoneTypeData = mysql_query("select * from feed_adv_phone_type order by id");
while($phoneType = mysql_fetch_assoc($phoneTypeData)) {
?>
<option value="<?=$phoneType['id']?>"><?=$phoneType['value']?></option>
<?php
}
?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Телефон</div>
<div class="inputs">
<input class="text phoneMask" required="required" type="text" name="advPhonePhone" id="advPhonePhone"/>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="modal-submit" style="margin-top: 15px;" id="advPhoneModalSubmit">
<button onclick="saveAdvPhone();" type="button">Сохранить <i class="ti-angle-right"></i></button>
</div>
</div>
</div>
<div class="full_modal-bg" id="adv_phone_link_modal_bg" style="display: none">
<span class="pseudo-link closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" id="adv_phone_link_modal" style="display: none;">
<div class="modal-inner">
<h2>Привязка рекламного телефона к агентству</h2>
<div id="advPhoneLinkModalErrors" style="color: red;padding-bottom: 15px;">
</div>
<div id="advPhoneLinkModalContent">
</div>
</div>
<div class="modal-submit" style="margin-top: 15px;" id="advPhoneLinkModalSubmit">
<button onclick="saveAdvPhoneLink();" type="button">Сохранить <i class="ti-angle-right"></i></button>
</div>
</div>
</div>
<div class="full_modal-bg" id="advertising_package_modal_bg" style="display: none">
<span class="pseudo-link closer"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" id="advertising_package_modal" style="display: none;">
<div class="modal-inner">
<h2 id="advertisingPackageModalTitle">Создание рекламного пакета</h2>
<div id="advertisingPackageModalHint" style="padding-bottom: 15px;">
Укажите параметры пакета и выберите площадки для размещения
</div>
<div id="advertisingPackageModalErrors" style="color: red;padding-bottom: 15px;">
</div>
<div id="advertisingPackageModalContent">
<input type="hidden" name="adv_pack_id" id="adv_pack_id" value=""/>
<div class="form-block">
<div class="label">Имя пакета</div>
<div class="inputs">
<input class="text" type="text" name="advertisingPackageName" id="advertisingPackageName"/>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Регион</div>
<div class="inputs">
<select name="advertisingRegion" id="advertisingRegion">
<?php
$region_rf = mysql_query("select * from rf_regions where parent = 0");
while($dealType = mysql_fetch_assoc($region_rf)) {
?>
<option
value="<?=$dealType['id']?>"
<?php if($dealType['id'] == $user->region_rf_id) echo "selected";?>
>
<?=$dealType['name']?>
</option>
<?php
}
?>
</select>
</div>
<div class="clear"></div>
</div>
</div>
<div class="form-block">
<div class="label">Дней размещения</div>
<div class="inputs">
<input class="text" type="number" min="1" max="30" style="width: 100px;" name="advertisingPackageDaysCount" id="advertisingPackageDaysCount" value="3"/>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Тип сделки</div>
<div class="inputs">
<select id="advertisingPackageDealType" name="advertisingPackageDealType">
<option value="-1">&nbsp;</option>
<?php
$dealTypeData = mysql_query("select * from advertising_package_deal_type order by name");
while($dealType = mysql_fetch_assoc($dealTypeData)) {
?>
<option value="<?=$dealType['id']?>"><?=$dealType['name']?></option>
<?php
}
?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Тип объекта</div>
<div class="inputs">
<select id="advertisingPackageObjectType" name="advertisingPackageObjectType">
<option value="-1">&nbsp;</option>
<?php
$objectTypeData = mysql_query("select * from advertising_package_object_type order by name");
while($objectType = mysql_fetch_assoc($objectTypeData)) {
?>
<option value="<?=$objectType['id']?>"><?=$objectType['name']?></option>
<?php
}
?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block" id="advertisingPackagePriceTypeBlock">
<div class="label">Тип цены (для аренды)</div>
<div class="inputs">
<select id="advertisingPackagePriceType" name="advertisingPackagePriceType">
<option value="-1">&nbsp;</option>
<?php
$priceTypeData = mysql_query("select * from advertising_package_price_type order by name");
while($priceType = mysql_fetch_assoc($priceTypeData)) {
?>
<option value="<?=$priceType['id']?>"><?=$priceType['name']?></option>
<?php
}
?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">&nbsp;</div>
<div class="inputs">
<div class="checkbox">
<input name="advertisingPackagePhotoFlag" id="advertisingPackagePhotoFlag" type="checkbox" value="1">
<label for="advertisingPackagePhotoFlag">С фотографиями</label>
<span class="tooltip tooltip-effect" style="position: absolute; margin-left: 196px; margin-top: 11px; border-bottom: 1px dotted #bdbdbd;">
<label class="label-view" for="advertisingPackagePhotoFlag" style="cursor: pointer;">объектов</label>
<span class="tooltip-content tt-pdf clear" style="width: 130px;"><b class="tooltip-text">
Для площадок, где размещение фотографий обязательно
</b></span>
</span>
</div>
</div>
<div class="clear"></div>
</div>
<div id="adv_zipal_errors" style="color: red;padding-bottom: 15px;">
</div>
<div id="adv_zipal_content">
</div>
</div>
<div class="modal-submit" style="margin-top: 15px;" id="advertisingPackageModalSubmit">
<button onclick="saveZipalPackage();" type="button">Сохранить <i class="ti-angle-right"></i></button>
</div>
</div>
</div>
<div class="f__modal-bg" id="delete_adv_pack_confirm_bg" style="display: none;">
<span class="pseudo-link closer"><i class="ti-close"></i></span>
<div class="f__modal sign" id="delete_adv_pack_confirm" style="display: none;padding-bottom: 0;">
<div class="f-col">
<div class="f-col-3">&nbsp;</div>
<div class="f-col-6">
<input type="hidden" name="delete_adv_pack_id" id="delete_adv_pack_id" value=""/>
<div class="bg-danger" style="font-size:1.2em; border-radius:5px; text-align:center;">
Удалить указанный рекламный пакет? После удаления он будет недоступен для размещения.
</div>
<div style="width:240px; margin:20px auto;text-align: center;"><a href="javascript:{};" onclick="deleteAdvertisingPackage();" class="fr-btn medium-button">Удалить</a></div>
</div>
<div class="f-col-3">&nbsp;</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="f__modal-bg" id="delete_adv_phone_confirm_bg" style="display: none;">
<span class="pseudo-link closer"><i class="ti-close"></i></span>
<div class="f__modal sign" id="delete_adv_phone_confirm" style="display: none;padding-bottom: 0;">
<div class="f-col">
<div class="f-col-3">&nbsp;</div>
<div class="f-col-6">
<input type="hidden" name="delete_adv_phone_id" id="delete_adv_phone_id" value=""/>
<div class="bg-danger" style="font-size:1.2em; border-radius:5px; text-align:center;">
Удалить указанный рекламный телефон? После удаления он будет недоступен для использования.
</div>
<div style="width:240px; margin:20px auto;text-align: center;"><a href="javascript:{};" onclick="deleteAdvPhone();" class="fr-btn medium-button">Удалить</a></div>
</div>
<div class="f-col-3">&nbsp;</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="full_modal-bg" id="advertPricesFormBg" style="display: none">
<span class="pseudo-link closer" onclick="hideAdvertPricesForm()"><i class="ti-close"></i></span>
<div class="full_modal edit-modal" id="advertPricesForm" style="display: none;">
<form class="form-validate">
<div class="modal-inner">
<h2>Настройка статистики затрат</h2>
<div v-if="error_message" class="error_msg" v-html="error_message" style="margin: 0 0 25px;"></div>
<div>
<div class="form-block">
<div class="label">Регион:</div>
<div class="inputs">
<select name="advert_budget_region" id="advertBudgetRegion" v-model="region_id">
<option value="0">Не выбрано</option>
<?php
$region_rf = mysql_query("SELECT * FROM rf_regions WHERE parent = 0");
while ($row = mysql_fetch_assoc($region_rf)) { ?>
<option value="<?= $row['id'] ?>" <?php if($row['id'] == $user->region_rf_id) echo "selected";?>>
<?= $row['name']; ?>
</option>
<?php } ?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Город/область:</div>
<div class="inputs" id="advert_budget_region_child_block">
<select name="advert_budget_region_child" id="advertBudgetRegionChild" v-model="region_id_child">
<option value="0">Не выбрано</option>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Тип сделки:</div>
<div class="inputs">
<select name="advert_budget_deal_type" id="advertBudgetDealType" v-model="operation_type_id">
<option value="0">Не выбрано</option>
<option value="1">Продажа</option>
<option value="2">Аренда</option>
</select>
</div>
<div class="clear"></div>
</div>
<div v-show="operation_type_id == 2" class="form-block">
<div class="label">Срок аренды:</div>
<div class="inputs">
<select name="advert_budget_rent_type" id="advertBudgetRentType" v-model="rent_type_id">
<option value="0">Не выбрано</option>
<?php
foreach ($SROK_ARENDY_ASSOC as $rent_type_id => $rent_type_name) { ?>
<option value="<?= $rent_type_id ?>">
<?= $rent_type_name; ?>
</option>
<?php } ?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Тип объекта:</div>
<div class="inputs">
<select name="advert_budget_object_type" id="advertBudgetObjectType" v-model="type_id">
<option value="0">Не выбрано</option>
<?php
$object_types_list = $OBJECT_TYPES;
unset($object_types_list[6]);
foreach ($object_types_list as $object_type_id => $object_type_name) { ?>
<option value="<?= $object_type_id ?>">
<?= $object_type_name; ?>
</option>
<?php } ?>
</select>
</div>
<div class="clear"></div>
</div>
<div v-show="type_id == 4" class="form-block">
<div class="label">Тип коммерции:</div>
<div class="inputs">
<select name="advert_budget_commerce_type" id="advertBudgetCommerceType" v-model="commerce_type_id">
<option value="0">Не выбрано</option>
<?php
$region_rf = mysql_query("SELECT * FROM commercial_object ORDER BY name");
while ($row = mysql_fetch_assoc($region_rf)) { ?>
<option value="<?= $row['id'] ?>">
<?= $row['name']; ?>
</option>
<?php } ?>
</select>
</div>
<div class="clear"></div>
</div>
<div class="block" style="margin-top: 25px;">
<h3 style="font-size: 1.5em;color: #757575;margin: 0 0 16px 0;font-weight: normal;">Рекламные площадки</h3>
<div class="form-block" style="margin-bottom: 15px; margin-left: 25px;">
<div class="label">Avito:</div>
<div class="inputs">
<input class="text" type="number" min="1" max="30" style="width: 100px;"
name="advert_budget_avito"
id="advertBudgetAvito"
v-model="avito" />
<span class="area-label-right">руб./размещение (30 дней)</span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" style="margin-bottom: 15px; margin-left: 25px;">
<div class="label">ЦИАН:</div>
<div class="inputs">
<input class="text" type="number" min="1" max="30" style="width: 100px;"
name="advert_budget_cian"
id="advertBudgetCian"
v-model="cian" />
<span class="area-label-right">руб./размещение (30 дней)</span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" style="margin-bottom: 15px; margin-left: 25px;">
<div class="label">ДомКлик:</div>
<div class="inputs">
<input class="text" type="number" min="1" max="30" style="width: 100px;"
name="advert_budget_domclick"
id="advertBudgetDomclick"
v-model="domclick" />
<span class="area-label-right">руб./размещение (30 дней)</span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" style="margin-bottom: 15px; margin-left: 25px;">
<div class="label">JCat:</div>
<div class="inputs">
<input class="text" type="number" min="1" max="30" style="width: 100px;"
name="advert_budget_jcat"
id="advertBudgetJcat"
v-model="jcat" />
<span class="area-label-right">руб./размещение (30 дней)</span>
</div>
<div class="clear"></div>
</div>
<div class="form-block" style="margin-bottom: 15px; margin-left: 25px;">
<div class="label">Я.Недвижимость:</div>
<div class="inputs">
<input class="text" type="number" min="1" max="30" style="width: 100px;"
name="advert_budget_yandex"
id="advertBudgetYandex"
v-model="yandex" />
<span class="area-label-right">руб./размещение (30 дней)</span>
</div>
<div class="clear"></div>
</div>
<?php if ($_SESSION['use_advert_budget']) : ?>
<div class="area-label-right" style="font-size: 13px; margin-left: 0px; padding-bottom: 15px;">
<i class="ti-info-alt"></i>
При нулевом значении стоимости - размещение будет осуществляться без списания рекламного бюджета.
</div>
<?php endif; ?>
</div>
</div>
</div>
<div class="modal-submit" style="margin-top: 15px;" id="advertBudgetModalSubmit">
<button onclick="saveAdvertPricesForm();" type="button">Сохранить <i class="ti-angle-right"></i></button>
</div>
</form>
</div>
</div>
<!-- модалки -->
<!-- подключение вью -->
<script type="text/javascript" src="/js/settings_vue.js?v=<?= filemtime($_SERVER['DOCUMENT_ROOT'].'/js/settings_vue.js') ?>"></script>
<!-- подключение вью -->
</div>
</div>
</div>
</div>
<style>
</style>
<script>
// Закрытие дропдаунов по клику вне их
document.addEventListener('click', function(e) {
if ($(e.target).hasClass('as_btn-view') || $(e.target).hasClass('as_details-tooltip')) {
/** */
} else {
if(typeof advertising_sources_connection == 'object')
advertising_sources_connection.isDetailsTooltip = false;
}
});
</script>
<?php
require($_SERVER['DOCUMENT_ROOT']."/templates/footer.php");
?>