Your IP : 3.144.82.70


Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/aspro.allcorp3/admin/
Upload File :
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/aspro.allcorp3/admin/crm_acloud.php

<?
use Bitrix\Main\Config\Option,
	Bitrix\Main\Localization\Loc,
	Aspro\Allcorp3\CRM\Acloud\Connection,
	Aspro\Allcorp3\CRM\Acloud\Lead,
	Aspro\Allcorp3\CRM;

require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php');
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php');

global $APPLICATION;
IncludeModuleLangFile(__FILE__);

$moduleClass = 'CAllcorp3';

\Bitrix\Main\Loader::includeModule($moduleClass::moduleID);

$RIGHT = $APPLICATION->GetGroupRight($moduleClass::moduleID);
if($RIGHT >= 'R'){
	$GLOBALS['APPLICATION']->SetAdditionalCss('/bitrix/css/aspro.allcorp3/style.css');
	$GLOBALS['APPLICATION']->SetTitle(Loc::getMessage('ASPRO_ALLCORP3_PAGE_TITLE'));

	$arSites = array();
	$db_res = CSite::GetList($by = 'id', $sort = 'asc', array('ACTIVE' => 'Y'));
	while($res = $db_res->Fetch()){
		$arSites[] = $res;
	}

	$arTabsForView = COption::GetOptionString($moduleClass::moduleID, 'TABS_FOR_VIEW_ASPRO_ALLCORP3', '');
	if($arTabsForView) {
		$arTabsForView = explode(',' , $arTabsForView);
	}

	$arTabs = array();
	$bShowGenerate = false;
	foreach($arSites as $key => $arSite){
		if(
			!$arTabsForView ||
			in_array($arSite['ID'], $arTabsForView)
		){
			$optionsSiteID = $arSite['ID'];
			$connection = Connection::getInstance($optionsSiteID);

			// get web forms
			$arForms = CRM\Helper::getForms($optionsSiteID);

			// get person types
			//$arPersonTypes = CRM\Helper::getOrdersPersonTypes($optionsSiteID);

			$arTabs[] = array(
				'DIV' => 'edit'.($key+1),
				'TAB' => Loc::getMessage('MAIN_OPTIONS_SITE_ASPRO_TITLE', array('#SITE_NAME#' => $arSite['NAME'], '#SITE_ID#' => $arSite['ID'])),
				'ICON' => 'settings',
				'PAGE_TYPE' => 'site_settings',
				'SITE_ID' => $optionsSiteID,
				'CONNECTION' => $connection,
				'ITEMS' => array(
					'CONFIG' => array(
						'TITLE' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_CONFIG_ACLOUD'),
						'ITEMS' => array(
							'DOMAIN_ACLOUD' => array(
								'TYPE' => 'text',
								'VALUE' => $connection->domain,
								'SKIP_CHECK' => true,
							),
							'TOKEN_ACLOUD' => array(
								'TYPE' => 'text',
								'VALUE' => $connection->api_key,
								'HINT' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_TOKEN_HINT'),
								'SKIP_CHECK' => true,
							),
							'ACTIVE_LINK_ACLOUD' => array(
								'TYPE' => 'hidden',
								'VALUE' => $connection->tested,
								'SKIP_CHECK' => true,
							),
							'ACTIVE_ACLOUD' => array(
								'TYPE' => 'checkbox',
								'VALUE' => $connection->active,
							),
							'USE_LOG_ACLOUD' => array(
								'TYPE' => 'checkbox',
								'VALUE' => $connection->logging,
								'HINT' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_USE_LOG_ACLOUD_HINT', [
									'#LOG_BASEDIR#' => str_replace($_SERVER['DOCUMENT_ROOT'], '', $connection->getLogBasePath()),
									'#LOG_FILENAME#' => $connection->getLogFilename(),
								])
							),
						)
					),
					'FORMS' => array(
						'TITLE' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_FORMS_ACLOUD'),
						'ITEMS' => array(							
							'AUTOMATE_SEND_ACLOUD' => array(
								'TYPE' => 'checkbox',
								'VALUE' => $connection->forms_autosend,
								'HINT' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_AUTOMATE_SEND_ACLOUD_HINT')
							),
							'LEAD_NAME_ACLOUD_TITLE' => array(
								'TYPE' => 'text',
								'VALUE' => $connection->forms_lead_title,
								'HINT' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_LEAD_NAME_ACLOUD_TITLE_HINT')
							),
							'WEB_FORM_ACLOUD' => array(
								'TYPE' => 'select',
								'VALUE' => Option::get($moduleClass::moduleID, 'WEB_FORM_ACLOUD', '', $optionsSiteID),
								'VALUES' => $arForms,
								'DINAMIC_FORMS' => 'Y',
							),
						)
					),
					// 'ORDERS' => array(
					// 	'TITLE' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_ORDERS_ACLOUD'),
					// 	'ITEMS' => array(							
					// 		'AUTOMATE_SEND_ORDER_ACLOUD' => array(
					// 			'TYPE' => 'checkbox',
					// 			'VALUE' => $connection->orders_autosend,
					// 			'HINT' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_AUTOMATE_SEND_ORDER_ACLOUD_HINT'),
					// 		),
					// 		'LEAD_NAME_ORDER_ACLOUD_TITLE' => array(
					// 			'TYPE' => 'text',
					// 			'VALUE' => $connection->orders_lead_title,
					// 			'HINT' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_LEAD_NAME_ORDER_ACLOUD_TITLE_HINT')
					// 		),
					// 		// 'ORDER_PERSON_TYPE_ACLOUD' => array(
					// 		// 	'TYPE' => 'select',
					// 		// 	'VALUE' => Option::get($moduleClass::moduleID, 'ORDER_PERSON_TYPE_ACLOUD', '', $optionsSiteID),
					// 		// 	'VALUES' => $arPersonTypes,
					// 		// 	'DINAMIC_ORDERS' => 'Y',
					// 		// ),
					// 	)
					// )
				),
				'ONSELECT' => "onMainTabSelected('site_settings');",
			);
		}
	}

	// add landing page
	$arLandingTab = array(
		'DIV' => 'landing_edit',
		'TAB' => GetMessage('ASPRO_ALLCORP3_LANDING_ACLOUD'),
		'LANDING_PAGE' => true,
		'ONSELECT' => "onMainTabSelected('landing');",
	);
	array_unshift($arTabs, $arLandingTab);

	$tabControl = new CAdminTabControl('tabControl', $arTabs);

	if (
		$REQUEST_METHOD == 'POST' &&
		strlen($Apply.$RestoreDefaults.$Auth.$SendCrm) &&
		$RIGHT >= 'W' &&
		check_bitrix_sessid()
	) {
		global $APPLICATION, $CACHE_MANAGER;
		$APPLICATION->RestartBuffer();

		if (
			$Auth ||
			$SendCrm
		) {
			$arResult = [];

			try {
				if (!strlen($SITE_ID)) {
					throw new \Exception('Empty fields');
				}

				if ($Auth) {
					if (
						!strlen($DOMAIN) ||
						!strlen($TOKEN)
					){
						throw new \Exception('Empty fields');
					}
					else {		
						$config = [
							'domain' => $DOMAIN,
							'api_key' => $TOKEN,
						];

						$arResult['response'] = Connection::getInstance($SITE_ID)->test($config);
					}
				}
				else {
					if (strlen($ORDER_ID)) {
						$leadId = CRM\Helper::sendOrder($ORDER_ID, Connection::getInstance($SITE_ID));
						$arResult['response'] = [
							'id' => $leadId,
						];

						$url = CRM\Acloud\Lead::getUrl($leadId);
						if (strlen($url)) {
							$arResult['response']['url'] = $connection->domain.$url;
						}
					} else {
						if (
							!strlen($FORM_ID) ||
							!strlen($RESULT_ID)
						) {
							throw new \Exception('Empty fields');
						}
						else {
							$leadId = CRM\Helper::sendFormResult($FORM_ID, $RESULT_ID, Connection::getInstance($SITE_ID));
							$arResult['response'] = [
								'id' => $leadId,
							];

							$url = CRM\Acloud\Lead::getUrl($leadId);
							if (strlen($url)) {
								$arResult['response']['url'] = $connection->domain.$url;
							}
						}
					}
				}
			}
			catch (\Exception $e) {
				$arResult['error'] = $e->getMessage();
			}

			echo json_encode($arResult);

			die();
		} else {
			foreach($arTabs as $key => $arTab){
				if(isset($arTab['LANDING_PAGE'])){
					continue;
				}

				$optionsSiteID = $arTab['SITE_ID'];
				$connection = $arTab['CONNECTION'];

				foreach($arTab['ITEMS'] as $groupCode => $arOptions){
					foreach($arOptions['ITEMS'] as $optionCode => $arOption){
						if(strlen($RestoreDefaults)){
							Option::delete($moduleClass::moduleID, array('name' => $optionCode));
						}
						else{
							if($optionCode == 'DOMAIN_ACLOUD'){
								$_POST[$optionCode.'_'.$optionsSiteID] = Connection::fixDomain($_POST[$optionCode.'_'.$optionsSiteID]);
							}

							if($arOption['TYPE'] == 'checkbox'){
								if(!isset($_POST[$optionCode.'_'.$optionsSiteID])){
									$_POST[$optionCode.'_'.$optionsSiteID] = 'N';
								}
							}

							if(isset($_POST[$optionCode.'_'.$optionsSiteID])){
								Option::set($moduleClass::moduleID, $optionCode, $_POST[$optionCode.'_'.$optionsSiteID], $optionsSiteID);
							}
						}
					}
				}

				$tested = false;
				try {
					// reload config after updating
					$connection->loadConfig();
					
					// try to connect
					$tested = $connection->try();
				}
				catch (\Exception $e) {
				}

				// set integration with crm
				$connection->tested = $tested;
				
				// set forms field matching
				if($_POST['CRM_FORM_FIELD_'.$optionsSiteID] && $_POST['CRM_FORM_FORM_FIELD_'.$optionsSiteID]){
					$arPostFields = [];
					foreach($_POST['CRM_FORM_FIELD_'.$optionsSiteID] as $formID => $arFields){
						$arPostFields[$formID] = [];
						foreach($arFields as $keyProp => $value){
							if (
								$value != 'no' &&
								$_POST['CRM_FORM_FORM_FIELD_'.$optionsSiteID][$formID][$keyProp]
							) {
								if (!array_key_exists($value, $arPostFields[$formID])) {
									$arPostFields[$formID][$value] = $_POST['CRM_FORM_FORM_FIELD_'.$optionsSiteID][$formID][$keyProp];
								} else {
									$arPostFields[$formID][$value] = array_merge((array)$arPostFields[$formID][$value], (array)$_POST['CRM_FORM_FORM_FIELD_'.$optionsSiteID][$formID][$keyProp]);
								}
							}
						}
					}

					$connection->forms_matches = $arPostFields;
				}

				// set orders field matching
				if ($_POST['CRM_ORDER_FIELD_'.$optionsSiteID] && $_POST['CRM_ORDER_FORM_FIELD_'.$optionsSiteID]) {
					$arPostFields = [];
					foreach ($_POST['CRM_ORDER_FIELD_'.$optionsSiteID] as $personTypeId => $arFields) {
						$arPostFields[$personTypeId] = [];
						foreach($arFields as $keyProp => $value){
							if (
								$value != 'no' &&
								$_POST['CRM_ORDER_FORM_FIELD_'.$optionsSiteID][$personTypeId][$keyProp]
							) {
								if (!array_key_exists($value, $arPostFields[$personTypeId])) {
									$arPostFields[$personTypeId][$value] = $_POST['CRM_ORDER_FORM_FIELD_'.$optionsSiteID][$personTypeId][$keyProp];
								} else {
									$arPostFields[$personTypeId][$value] = array_merge((array)$arPostFields[$personTypeId][$value], (array)$_POST['CRM_ORDER_FORM_FIELD_'.$optionsSiteID][$personTypeId][$keyProp]);
								}
							}
						}
					}

					$connection->orders_matches = $arPostFields;
				}
			}

			LocalRedirect($APPLICATION->GetCurPage().'?mid='.urlencode($mid).'&lang='.urlencode(LANGUAGE_ID).'&back_url_settings='.urlencode($_REQUEST['back_url_settings']).'&'.$tabControl->ActiveTabParam());
			die();
		}
	}

	CJSCore::Init(array('jquery'));
	?>
	<?if(!count($arTabs)):?>
		<div class="adm-info-message-wrap adm-info-message-red">
			<div class="adm-info-message">
				<div class="adm-info-message-title"><?=Loc::getMessage('ASPRO_ALLCORP3_NO_SITE_INSTALLED', array('#SESSION_ID#'=>bitrix_sessid_get()))?></div>
				<div class="adm-info-message-icon"></div>
			</div>
			<a href="<?=$moduleClass::moduleID?>_options_tabs.php" id="tabs_settings" target="_blank">
				<span>
					<?=GetMessage('TABS_SETTINGS')?>
				</span>
			</a>
		</div>
	<?else:?>
		<form method="post" class="allcorp3_options" enctype="multipart/form-data" action="<?=$APPLICATION->GetCurPage()?>?mid=<?=urlencode($mid)?>&amp;lang=<?=LANGUAGE_ID?>">
			<?=bitrix_sessid_post();?>
			<?$tabControl->Begin();?>
			<a href="<?=$moduleClass::moduleID?>_options_tabs.php" id="tabs_settings" target="_blank">
				<span>
					<?=GetMessage('TABS_SETTINGS')?>
				</span>
			</a>
			<?
			foreach($arTabs as $key => $arTab){	
				$bLanding = isset($arTab['LANDING_PAGE']) && $arTab['LANDING_PAGE'];			
				$arTabViewOptions = array(
					'showTitle' => false,
					'className' => $bLanding ? 'adm-detail-content-without-bg' : '',
				);
				
				$tabControl->BeginNextTab($arTabViewOptions);
				
				if($bLanding){
					?><iframe frameborder="0" class="landing-acloud-frame" src="https://aspro.ru/mc/acloud/"></iframe><?
				}

				if($arTab['SITE_ID']){
					$optionsSiteID = $arTab['SITE_ID'];
					$connection = $arTab['CONNECTION'];
					if ($connection->tested) {
						$domain = $connection->domain;

						$leadFieldsMap = Lead::getFieldsMap($connection);
						$leadCustomFieldsMap = [];
						try {
							$leadCustomFieldsMap = Lead::getCustomFieldsMap($connection);
						}
						catch (\Exception $e) {
						}
						
						$formsFieldsMap = CRM\Helper::getFormsFieldsMap();
						//$ordersFieldsMap = CRM\Helper::getOrdersFieldsMap();
					}
					?>
					<tr>
						<td colspan="2">
							<?
							$arSubTabs = array(
								array('DIV' => 'subedit1_'.$optionsSiteID,
									'TAB' => GetMessage('ASPRO_ALLCORP3_MAIN_SETTINGS'),
									'TITLE'=>Loc::getMessage('ASPRO_ALLCORP3_MODULE_CONFIG_ACLOUD'),
								),								
							);

							if($connection->tested){
								$arSubTabs[] = array(
									'DIV' => 'subedit2_'.$optionsSiteID,
									'TAB' => GetMessage('ASPRO_ALLCORP3_FORM_SETTINGS'),
									'TITLE'=>Loc::getMessage('ASPRO_ALLCORP3_MODULE_FORMS_ACLOUD'),
								);								
							}
							$subTabControl = new CAdminViewTabControl('subTabControl'.$optionsSiteID, $arSubTabs);
							$subTabControl->Begin();
							?>

							<?foreach($arTab['ITEMS'] as $groupCode => $arOptions):?>
								<?$subTabControl->BeginNextTab();?>	
								
								<?if($groupCode === 'FORMS' && !$arTab['ITEMS']['FORMS']['ITEMS']['WEB_FORM_ACLOUD']['VALUES']):?>
									<table cellpadding="0" cellspacing="0" border="0" width="100%">
										<tr>
											<td colspan="2" style="width:100%;text-align:center;">
												<div class="adm-info-message"><?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_NO_FORMS')?></div>
											</td>
										</tr>
									</table>
									<?continue;?>
								<?endif;?>

								<table cellpadding="0" cellspacing="0" border="0" width="100%" class="edit-sub-table">	
									<?foreach($arOptions['ITEMS'] as $optionCode => $arOption):?>
										<?$value = ($arOption['TYPE'] == 'checkbox' ? 'Y' : $arOption['VALUE']);?>
										<?if(!isset($arOption['SKIP_CHECK']) && !$arTab["ITEMS"]["CONFIG"]["ITEMS"]["ACTIVE_LINK_ACLOUD"]["VALUE"]):?>
											<?continue;?>
										<?endif;?>

										<?if($arOption['TYPE'] == 'hidden'):?>
											<input type="<?=$arOption['TYPE']?>" size="50" allcorp3length="255" value="" name="<?=htmlspecialcharsbx($optionCode).'_'.$optionsSiteID?>">
										<?else:?>
											<?if($arOption['TYPE'] !== 'DINAMIC_ORDERS'):?>
												<tr>
													<td class="adm-detail-content-cell-l" style="width:50%;<?=($arOption['HINT'] ? 'vertical-align: top;padding-top: 7px;' : '')?>">
														<?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_'.$optionCode)?>
													</td>
													<td style="width:50%;">
														<?if($arOption['TYPE'] == 'select'):?>
															<select name="<?=htmlspecialcharsbx($optionCode).'_'.$optionsSiteID?>">
																<?if($arOption['VALUES']):?>
																	<?foreach($arOption['VALUES'] as $key => $arForm):?>
																		<option <?=($key == $value ? 'selected' : '')?> value="<?=$key?>">[<?=$arForm['ID']?>] <?=$arForm['NAME']?></option>
																	<?endforeach;?>
																<?endif;?>
															</select>
														<?else:?>
															<input type="<?=$arOption['TYPE']?>" <?=($arOption['TYPE'] == 'checkbox' ? ($arOption['VALUE'] == 'Y' ? 'checked' : '') : '')?> size="60" allcorp3length="255" value="<?=htmlspecialcharsbx($value)?>" name="<?=htmlspecialcharsbx($optionCode).'_'.$optionsSiteID?>" <?=($optionCode == 'password' ? 'autocomplete="off"' : '')?>>
														<?endif;?>
														<?if($arOption['HINT']):?>
															<br/><small style="color: #777;"><?=$arOption['HINT']?></small>
														<?endif;?>
													</td>
												</tr>
											<?endif;?>

											<?if($optionCode === 'TOKEN_ACLOUD'):?>
												<tr>
													<td colspan="2" style="width:100%;text-align:center;">
														<input type="submit" class="check_auth" value="<?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_CHECK_AUTH')?>" data-site_id="<?=$optionsSiteID?>" />
														<div><span class="response"></span></div>
													</td>
												</tr>
											<?endif;?>

											<?if(
												isset($arOption['DINAMIC_FORMS']) && 
												$arOption['DINAMIC_FORMS']
											):?>
												<?if($arOption['VALUES']):?>
													<tr>
														<td colspan="2">
															<?
															$aFormsTabs = array(
																array(
																	'DIV' => 'edit_forms_field_'.$optionsSiteID,
																	'TAB' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_FIELDS_ACLOUD'),
																	'TITLE' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_ALL_FIELDS_ACLOUD'),
																	'ICON' => 'settings',
																	'PAGE_TYPE' => 'site_settings',
																),
																array(
																	'DIV' => 'edit_forms_result_'.$optionsSiteID,
																	'TAB' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_RESULTS_ACLOUD'),
																	'TITLE' => Loc::getMessage('ASPRO_ALLCORP3_MODULE_ALL_RESULTS_ACLOUD'),
																	'ICON' => 'settings',
																	'PAGE_TYPE' => 'site_settings',
																),
															);
															
															$formsTabControl = new CAdminViewTabControl('formsTabControl'.$optionsSiteID, $aFormsTabs);
															$formsTabControl->Begin();
															$formsTabControl->BeginNextTab();
															?>
															<table cellpadding="0" cellspacing="0" border="0" width="100%" class="edit-table">
																<?foreach($arOption['VALUES'] as $formId => $arForm):?>
																	<?
																	$formsQuestionsMap = CRM\Helper::getFormsQuestionsMap($formId);
																	$arFormMatches = $connection->forms_matches[$formId];
																	?>
																	<tr class="form_<?=$formId?>" <?=($formId != $value ? 'style="display: none;"' : '')?>>
																		<td colspan="2">
																			<table class="internal" style="width:100%;">
																				<thead>
																					<tr class="heading">
																						<td width="50%"><?=Loc::getMessage('CRM_FORM_FIELD_TABLE')?></td>
																						<td width="50%"><?=Loc::getMessage('FORM_FIELD_TABLE')?></td>
																						<td width="17"></td>
																					</tr>
																				</thead>
																				<tbody>
																					<?if($arFormMatches):?>
																						<?foreach($arFormMatches as $crm_FORM_field_id => $form_field_ids):?>
																							<?foreach((array)$form_field_ids as $form_field_id):?>
																								<tr>
																									<td class="adm-detail-content-cell-l" style="width:50%;">
																										<select name="CRM_FORM_FIELD_<?=$optionsSiteID?>[<?=$formId?>][]" class="field_crm" style="width:300px;">
																											<option value="no"><?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_LEAD_NO')?></option>
																											<?if($leadFieldsMap):?>
																												<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_LEAD')?>">
																													<?foreach($leadFieldsMap as $key2 => $text):?>
																														<option <?=($key2 == $crm_FORM_field_id ? 'selected' : '')?> value="<?=$key2?>"><?=$text?></option>
																													<?endforeach;?>
																												</optgroup>
																											<?endif;?>
																											<?if($leadCustomFieldsMap):?>
																												<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_CUSTOMFIELDS_LEAD')?>">
																													<?foreach($leadCustomFieldsMap as $key2 => $text):?>
																														<option <?=($key2 == $crm_FORM_field_id ? 'selected' : '')?> value="<?=$key2?>"><?=$text?></option>
																													<?endforeach;?>
																												</optgroup>
																											<?endif;?>
																										</select>
																									</td>
																									<td style="width:50%;">
																										<select name="CRM_FORM_FORM_FIELD_<?=$optionsSiteID?>[<?=$formId?>][]" class="field_form" style="width:300px;">
																											<option value=""><?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_FORM_NAME_NO')?></option>
																											<?if($formsFieldsMap):?>
																												<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_FORM_FIELDS_TITLE')?>">
																													<?foreach($formsFieldsMap as $key2 => $text):?>
																														<option <?=($key2 == $form_field_id ? 'selected' : '')?> value="<?=$key2?>"><?=$text?></option>
																													<?endforeach;?>
																												</optgroup>
																											<?endif;?>
																											<?if($formsQuestionsMap):?>
																												<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_FORM_QUESTIONS_TITLE')?>">
																													<?foreach($formsQuestionsMap as $key2 => $text):?>
																														<option <?=($key2 == $form_field_id ? 'selected' : '')?> value="<?=$key2?>"><?=$text?></option>
																													<?endforeach;?>
																												</optgroup>
																											<?endif;?>
																										</select>
																									</td>
																									<td><a href="javascript:void(0)" title="<?=Loc::getMessage('DELETE_NODE')?>" class="form-action-button action-delete"></a></td>
																								</tr>
																							<?endforeach;?>
																						<?endforeach;?>
																					<?endif;?>
																					<tr>
																						<td class="adm-detail-content-cell-l" style="width:50%;">
																							<select name="CRM_FORM_FIELD_<?=$optionsSiteID?>[<?=$formId?>][]" class="field_crm" style="width:300px;">
																								<option value="no"><?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_LEAD_NO')?></option>
																								<?if($leadFieldsMap):?>
																									<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_LEAD')?>">
																										<?foreach($leadFieldsMap as $key2 => $text):?>
																											<option value="<?=$key2?>"><?=$text?></option>
																										<?endforeach;?>
																									</optgroup>
																								<?endif;?>
																								<?if($leadCustomFieldsMap):?>
																									<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_CUSTOMFIELDS_LEAD')?>">
																										<?foreach($leadCustomFieldsMap as $key2 => $text):?>
																											<option value="<?=$key2?>"><?=$text?></option>
																										<?endforeach;?>
																									</optgroup>
																								<?endif;?>
																							</select>
																						</td>
																						<td style="width:50%;">
																							<select name="CRM_FORM_FORM_FIELD_<?=$optionsSiteID?>[<?=$formId?>][]" class="field_form" style="width:300px;">
																								<option value=""><?=GetMessage('FORM_FIELD_CRM_FIELDS_FORM_NAME_NO')?></option>
																								<?if($formsFieldsMap):?>
																									<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_FORM_FIELDS_TITLE')?>">
																										<?foreach($formsFieldsMap as $key2 => $text):?>
																											<option value="<?=$key2?>"><?=$text?></option>
																										<?endforeach;?>
																									</optgroup>
																								<?endif;?>
																								<?if($formsQuestionsMap):?>
																									<optgroup label="<?=Loc::getMessage('FORM_FIELD_CRM_FIELDS_FORM_QUESTIONS_TITLE')?>">
																										<?foreach($formsQuestionsMap as $key2 => $text):?>
																											<option value="<?=$key2?>"><?=$text?></option>
																										<?endforeach;?>
																									</optgroup>
																								<?endif;?>
																							</select>
																						</td>
																						<td></td>
																					</tr>
																				</tbody>
																				<tfoot>
																					<tr>
																						<td colspan="3"><input type="button" class="addbtn" value="<?=htmlspecialcharsbx(Loc::getMessage('FORM_CRM_ADD'))?>"></td>
																					</tr>
																				</tfoot>
																			</table>
																		</td>
																	</tr>
																<?endforeach;?>
															</table>

															<?$formsTabControl->BeginNextTab();?>

															<table cellpadding="0" cellspacing="0" border="0" width="100%" class="edit-table">
																<?foreach($arOption['VALUES'] as $formId => $arForm):?>
																	<?
																	$sTableID = 'tbl_admbp_forms_list_'.$optionsSiteID.'_'.$formId;
																	$oSort = new \CAdminSorting(
																		$sTableID,
																		's_id',
																		'desc',
																		$by_name = 'fby_'.$optionsSiteID.'_'.$formId,
																		$order_name = 'forder_'.$optionsSiteID.'_'.$formId
																	);

																	$formResults = CRM\Helper::getFormResults(
																		[$oSort->getField() => $oSort->getOrder()],
																		$formId
																	);

																	$arFormMatches = $connection->forms_matches[$formId];
																	?>
																	<tr class="form_<?=$formId?>" <?=($formId != $value ? 'style="display: none;"' : '')?>>
																		<td colspan="2">
																			<?if(!$arFormMatches || !$connection->active):?>
																				<div class="adm-info-message"><?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_NO_FORM_FIELD_MATCHING')?></div>
																			<?elseif(
																				$formResults &&
																				$formResults->SelectedRowsCount()
																			):?>
																				<?
																				$lAdmin = new \CAdminList($sTableID, $oSort);
																				$lAdmin->AddHeaders(
																					[
																						['id' => 'ID', 'content' => Loc::getMessage('CRM_RESULT_LIST_FORM_FIELD_ID'), 'sort' => 'ID', 'default' => true],
																						['id' => 'DATE_CREATE', 'content' => Loc::getMessage('CRM_RESULT_LIST_FORM_FIELD_DATE_CREATE'), 'sort' => 'DATE_CREATE', 'default' => true],
																						['id' => 'USER', 'content' => Loc::getMessage('CRM_RESULT_LIST_FORM_FIELD_USER'), 'sort' => false, 'default' => true],
																						['id' => 'LEAD', 'content' => Loc::getMessage('CRM_RESULT_LIST_FORM_FIELD_LEAD'), 'sort' => false, 'default' => true],
																					]
																				);

																				$rsData = new \CAdminResult($formResults, $sTableID);
																				$rsData->navStart();
																				$lAdmin->navText($rsData->getNavPrint(Loc::getMessage('FORM_RESULT_FIELD_TABLE')));
																				while ($arFormResult = $rsData->fetch()) {
																					$row =& $lAdmin->AddRow($arFormResult['ID'], $arFormResult);
																					$row->AddField('ID', '<a target="_blank" href="/bitrix/admin/form_result_edit.php?lang='.LANG_CHARSET.'&WEB_FORM_ID='.$formId.'&RESULT_ID='.$arFormResult['ID'].'&WEB_FORM_NAME='.$arForm['SID'].'">'.$arFormResult['ID'].'</a>');

																					if ($arFormResult['USER_ID']) {
																						$arUser = \CUser::getById($arFormResult['USER_ID'])->Fetch();
																						if ($arUser) {
																							$arUser = [
																								'[<a target="_blank" href="/bitrix/admin/user_edit.php?lang=ru&ID='.$arFormResult['USER_ID'].'">'.$arFormResult['USER_ID'].'</a>]',
																								'('.$arUser['LOGIN'].')',
																								$arUser['LAST_NAME'],
																								$arUser['NAME'],
																							];
																							$row->AddField('USER', trim(implode(' ', $arUser)));
																						} else {
																							$row->AddField('USER', '[<a target="_blank" href="/bitrix/admin/user_edit.php?lang=ru&ID='.$arFormResult['USER_ID'].'">'.$arFormResult['USER_ID'].'</a>]');
																						}																						
																					} else {
																						$row->AddField('USER', Loc::getMessage('CRM_RESULT_LIST_FORM_FIELD_USER_NONE'));
																					}

																					$arSendingResult = CRM\Helper::getSendingFormResult($arFormResult['ID'], $optionsSiteID);
																					$leadId = intval(isset($arSendingResult['ACLOUD']) ? (is_array($arSendingResult['ACLOUD']) ? $arSendingResult['ACLOUD'][$domain] : $arSendingResult['ACLOUD']) : 0);
																					$bSended = $leadId > 0;
																					if ($bSended) {
																						$url = Lead::getUrl($leadId);
																						$url = $url ? '<a href="'.$domain.$url.'" target="_blank">'.$leadId.'</a>' : $leadId;
																						$row->AddField('LEAD', $url);
																					} else {
																						$row->AddField('LEAD', '<a href="javascript:void(0)" title="'.Loc::getMessage('SEND_CRM').'" data-form_id="'.$formId.'" data-result_id="'.$arFormResult['ID'].'" data-site_id="'.$optionsSiteID.'" class="adm-btn action-button action-send">'.Loc::getMessage('SEND_CRM').'</a>');
																					}
																				}

																				if (
																					isset($_REQUEST['mode']) &&
																					$_REQUEST['mode'] === 'list' &&
																					isset($_REQUEST['table_id']) &&
																					$_REQUEST['table_id'] == $sTableID
																				) {
																					$GLOBALS['APPLICATION']->RestartBuffer();
																					$lAdmin->CheckListMode();
																				}

																				$lAdmin->DisplayList();
																				?>
																			<?else:?>
																				<div class="adm-info-message"><?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_NO_FORM_RESULTS')?></div>
																			<?endif;?>
																		</td>
																	</tr>
																<?endforeach;?>
															</table>

															<?$formsTabControl->End();?>
														</td>
													</tr>
												<?endif;?>
											<?endif;?>
										<?endif;?>
									<?endforeach;?>

									<?if(
										$groupCode == 'CONFIG' &&
										!$arOptions['ITEMS']['ACTIVE_LINK_ACLOUD']['VALUE']
									):?>
										<tr>
											<td colspan="2" style="width:100%;text-align:center;">
												<div class="adm-info-message"><?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_INTEGRATION_ACLOUD')?></div>
											</td>
										</tr>
									<?endif;?>
								</table>											
							<?endforeach;?>

							<?$subTabControl->End();?>
						</td>
					</tr>
				<?
				}
			}
			?>
			<?$tabControl->Buttons()?>
			<?$hideButton = $tabControl->GetSelectedTab() === 'landing_edit';?> 
			<input 
				<?if($RIGHT < 'W') echo 'disabled'?> 
				type="submit" 
				name="Apply" 
				<?if($hideButton):?>style="visibility: hidden"<?endif;?>
				class="action-button submit-btn adm-btn-save"
				value="<?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_SAVE_OPTION')?>" 
				title="<?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_SAVE_OPTION')?>"
			>
			<input 
				type="submit" 
				name="RestoreDefaults"
				<?if($hideButton):?>style="visibility: hidden"<?endif;?>
				class="action-button"
				title="<?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_DELETE_OPTION')?>"
				onclick="confirm('<?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_DELETE_OPTION_TITLE')?>')"
				value="<?=Loc::getMessage('ASPRO_ALLCORP3_MODULE_DELETE_OPTION_TEXT')?>"
			>

			<script type="text/javascript">
			function onMainTabSelected(tabId){
				var saveButtons = document.querySelectorAll('.action-button');
				if(saveButtons){
					for(var j=0; j<saveButtons.length; j++){
						if (tabId === 'landing'){
							saveButtons[j].style.visibility = 'hidden';
						} else {
							saveButtons[j].style.cssText = '';
						}
					}
				}
			}

			BX.message({
				'CRM_SEND': '<?=Loc::getMessage('FORM_RESULT_SEND')?>',
			});

			$(document).on('click', '.tmpl', function(e) {
				e.preventDefault();

				var tmpl = $(this).text();
				var $input = $(this).closest('td').find('input[type=text]');
				if ($input.length) {
					$input.val($input.val() + tmpl);
				}
			});

			$(document).on('click', 'input.addbtn', function(){
				var _table = $(this).closest('.internal');
				$(_table.find('tbody tr:last').clone()).insertAfter(_table.find('tbody tr:last'));
			});

			$(document).on('change', 'select.field_crm,select.field_form,select.field_order', function(){
				var $this = $(this),
					value = $this.val();
				if (
					value.length &&
					value !== 'no'
				) {
					var $tr = $this.closest('tr');
					var index = $tr.index();
					if ($tr.closest('tbody').find('tr').length == index + 1) {
						var $friend = $this.closest('td').siblings().find('select');
						if (
							$friend.length &&
							$friend.val().length &&
							$friend.val() !== 'no'
						) {
							var $table = $this.closest('.internal');
							$($table.find('tbody tr:last').clone()).insertAfter($table.find('tbody tr:last'));
						}
					}
				}
			});

			$(document).on('click', '.action-delete', function(){
				var _tr = $(this).closest('tr');
				_tr.remove();
			});

			$(document).on('click', '.action-send', function(){
				var _this = $(this),
					tr = _this.closest('tr');

				if(_this.data('disabled') != 'disabled'){
					_this.attr('data-disabled', 'disabled');

					var data = {
						sessid: $('input[name=sessid]').val(),
						SendCrm: true, 
						SITE_ID: _this.data('site_id'),
						FORM_ID: _this.data('form_id'), 
						RESULT_ID: _this.data('result_id'),
					};

					if (_this.data('order_id')) {
						data.ORDER_ID = _this.data('order_id');
					} else {
						data.FORM_ID = _this.data('form_id');
						data.RESULT_ID = _this.data('result_id');
					}

					_this.parent().find('.status_send').remove();

					$.ajax({
						type: 'POST',
						dataType: 'json',
						data: data,
						success: function(data){
							if (
								typeof data === 'object' &&
								data &&
								(
									'error' in data ||
									'response' in data
								)
							){
								if('error' in data){
									_this.parent().append('<div class="status_send error"><br />' + data.error + '</div>');
								}
								else if('response' in data){
									if (
										typeof data.response === 'object' &&
										data.response &&
										'id' in data.response &&
										'url' in data.response
									) {
										if ('url' in data.response) {
											_this.parent().html('<a href="' + data.response.url + '" target="_blank">' + data.response.id + '</a>');
										} else {
											_this.parent().html(data.response.id);
										}
									}
								}
								
								return true;
							}
						},
						error: function(data){
							window.console&&console.log(data);
							_this.parent().append('<div class="status_send error"><br />' + data.responseText + '</div>');
						},
						complete: function() {
							_this.removeAttr('data-disabled');
						}
					});
				}
			});

			$(document).on('click', 'input.check_auth', function(){
				var _this = $(this),
					form = _this.closest('form'), 
					tab = _this.closest('.adm-detail-content');

				_this.attr('disabled', 'disabled');

				$.ajax({
					type: 'POST',
					dataType: 'json',
					data: {
						sessid: $('input[name=sessid]').val(),
						Auth: 1,
						DOMAIN: tab.find('input[name^=DOMAIN_ACLOUD]').val(),
						TOKEN: tab.find('input[name^=TOKEN_ACLOUD]').val(),
						SITE_ID: _this.data('site_id'),
					},
					success: function(data){
						if (
							typeof data === 'object' &&
							data &&
							(
								'error' in data ||
								'response' in data
							)
						){
							if('error' in data){
								$('.response').removeClass('success').addClass('error').text(data.error);
							}
							else if('response' in data){
								$('.response').removeClass('error').addClass('success').text('ok');
							}
							
							return true;
						}

						// other response error
						$('.response').removeClass('success').addClass('error').text('error');
					},
					error: function(data){
						console.error(data);
						$('.response').removeClass('success').addClass('error').text('error');
					},
					complete: function() {
						_this.removeAttr('disabled');
					}
				});
			});

			$(document).on('change', 'select[name^="WEB_FORM"]', function(){
				$('tr[class^="form_"]').hide();
				$('tr.form_'+$(this).val()).css('display', '');
			});

			$(document).on('change', 'select[name^="ORDER_PERSON_TYPE"]', function(){
				$('tr[class^="order_"]').hide();
				$('tr.order_'+$(this).val()).css('display', '');
			});

			$(document).ready(function(){
				$('select[name^="WEB_FORM"]').change();
				$('select[name^="ORDER_PERSON_TYPE"]').change();
			});
			</script>
			<?$tabControl->End();?>
		</form>
	<?endif;?>
	<?
}
else {
	echo CAdminMessage::ShowMessage(Loc::getMessage('NO_RIGHTS_FOR_VIEWING'));
}

require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin.php');