Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/components/bitrix/sender.letter.time/templates/.default/
Upload File :
Current File : /var/www/homesaver/www/bitrix/components/bitrix/sender.letter.time/templates/.default/template.php

<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
{
	die();
}

/** @var \CBitrixComponentTemplate $this */
/** @var CMain $APPLICATION */
/** @var array $arParams */

/** @var array $arResult */

use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Web\Json;
use Bitrix\Sender\Integration\Bitrix24;
use Bitrix\Sender\Internals\PrettyDate;
use Bitrix\Main\UI\Extension;

Extension::load("ui.buttons");
Extension::load("ui.notification");
Extension::load("sender.error_handler");
Extension::load("bitrix24.phoneverify");
Extension::load("ui.alerts");

$component = $this->getComponent();
$getMessageLocal = function ($messageCode, $replace = []) use ($component)
{
	/** @var \SenderLetterTimeComponent $component */
	return $component->getMessage($messageCode, $replace);
};

Bitrix24\Service::initLicensePopup();

$containerId = 'sender-letter-time';
$enablePhoneVerification =
	(! (bool)$arParams['IS_PHONE_CONFIRMED'])
	&& $arParams['IS_BX24_INSTALLED']
	&& $arParams['IS_MAIL_TRANSPORT']
;
?>
<div id="<?= htmlspecialcharsbx($containerId) ?>" class="sender-letter-time">
	<script>
		function BXPhoneVerifyOnSliderClose(result)
		{
			if (result)
			{
				document.querySelector('[data-role="letter-time-form"]').submit();
			}
			else
			{
				BX.Dom.removeClass(document.querySelector('[data-role="letter-time-form"] #ui-button-panel-save'), 'ui-btn-wait');
			}
		}

		BX.ready(function ()
		{
			<?php if ($enablePhoneVerification): ?>
			BX.Bitrix24.PhoneVerify.getInstance().startVerify({mandatory: false}); // open slider on page load, also triggered on save btn
			<?php endif; ?>

			BX.Sender.Letter.Time.init(<?=Json::encode(array(
				'containerId' => $containerId,
				'actionUrl' => $arResult['ACTION_URL'],
				'isFrame' => isset($arParams['IFRAME']) && $arParams['IFRAME'] == 'Y',
				'isSaved' => $arResult['IS_SAVED'],
				'isOutside' => $arParams['IS_OUTSIDE'],
				'canEdit' => $arResult['CAN_CHANGE'],
				'isSupportReiterate' => $arResult['IS_SUPPORT_REITERATE'],
				'prettyDateFormat' => PrettyDate::getDateFormat(),
				'mess' => array(
					'atTime' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_AT_TIME'),
					'time' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_TIME'),
					'defered' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_DEFERED'),
					'now' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_NOW'),
					'schedule' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_REITERATE'),
					'accept' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_ACCEPT'),
					'cancel' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_CANCEL'),
					'scheduleText' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_TEXT'),
					'scheduleTextMo' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_TEXT_MO'),
					'outsideSaveSuccess' => $getMessageLocal(
						'SENDER_LETTER_TIME_OUTSIDE_ADD_SUCCESS',
						['%path%' => $arParams['PATH_TO_LIST']]
					)
				)
			))?>);
			<?php if ($arResult['USER_ERRORS'] ?? false):
			/** @var \Bitrix\Main\Error $userError */
			$userError = $arResult['USER_ERRORS'][0];
			$url = str_replace('#id#', $arParams['ID'], $arParams['PATH_TO_EDIT']);
			$uri = new Bitrix\Main\Web\Uri($url);
			if (isset($arParams['IFRAME']) && $arParams['IFRAME'] == 'Y')
			{
				$uri->addParams(array('IFRAME' => 'Y'));
			}
			?>
			var errorHandler = new BX.Sender.ErrorHandler();
			errorHandler.onError('<?=CUtil::JSescape($userError->getCode())?>', <?=CUtil::PhpToJSObject([
					'text' => $userError->getMessage(),
					'editUrl' => $uri->getLocator()
				])?>,
				function ()
				{
					var form = document.querySelector('[data-role="letter-time-form"]');
					if (form)
					{
						form.submit();
					}
				},
				function ()
				{
				});
			document.getElementById('ui-button-panel-save').classList.add('ui-btn-wait');
			<?php
			endif; ?>
		});
	</script>
	<form method="post" data-role="letter-time-form" action="<?= htmlspecialcharsbx($arResult['SUBMIT_FORM_URL'] ?? '') ?>">
		<?= bitrix_sessid_post() ?>

		<div class="sender-letter-time-title">
			<?=
			$getMessageLocal(
				'SENDER_LETTER_TIME_TMPL_TITLE_' . (!$arResult['CAN_CHANGE'] ? 'EXISTS' : 'NEW'),
				array(
					'%name%' => '<div class="sender-letter-time-title-highlight">"'
						. htmlspecialcharsbx($arResult['TITLE'])
						. '"</div>'
				)
			) ?>
		</div>
		<div class="sender-letter-time-icon"></div>
		<div class="sender-letter-time-button-container">
			<div class="sender-letter-time-button" style="<?= ($arResult['CAN_CHANGE'] ? 'display: none;' : '') ?>">
				<span
					class="sender-letter-time-button-name"><?= $getMessageLocal('SENDER_LETTER_TIME_TMPL_DATE_SEND') ?>:</span>
				<a class="">
					<?= htmlspecialcharsbx($arResult['DATE_SEND']) ?>
				</a>
			</div>
			<div class="sender-letter-time-button sender-letter-time-act-button" style="<?= (!$arResult['CAN_CHANGE'] ? 'display: none;' : '') ?>">
				<span class="sender-letter-time-button-name"><?= $getMessageLocal('SENDER_LETTER_TIME_TMPL_ACT_SEND') ?>:</span>
				<div class="sender-letter-time-link-container">
					<a data-role="time-selector"
					   class="<?= ($arResult['CAN_CHANGE'] ? 'sender-letter-time-link' : '') ?>"
					></a>
				</div>
				<input data-role="time-input" type="hidden" name="LETTER_TIME"
					   value="<?= htmlspecialcharsbx($arResult['LETTER_TIME']) ?>">
			</div>
		</div>

		<input data-role="time-reiterate-days-of-week" type="hidden" name="DAYS_OF_WEEK" value="<?= htmlspecialcharsbx($arResult['DAYS_OF_WEEK']) ?>">
		<input data-role="time-reiterate-times-of-day" type="hidden" name="TIMES_OF_DAY" value="<?= htmlspecialcharsbx($arResult['TIMES_OF_DAY']) ?>">
		<input data-role="time-reiterate-days-of-month" type="hidden" name="DAYS_OF_MONTH" value="<?= htmlspecialcharsbx($arResult['DAYS_OF_MONTH']) ?>">
		<input data-role="time-reiterate-months-of-year" type="hidden" name="MONTHS_OF_YEAR" value="<?= htmlspecialcharsbx($arResult['MONTHS_OF_YEAR']) ?>">


		<?php if (!empty($arResult['LIMITATION'])): ?>
			<div class="sender-letter-info">
				<?= htmlspecialcharsbx($arResult['LIMITATION']['TEXT']) ?>
				<?php if ($arResult['LIMITATION']['SETUP_URI']): ?>
					<a href="<?= htmlspecialcharsbx($arResult['LIMITATION']['SETUP_URI']) ?>">
						<div class="sender-hint">
							<div class="sender-hint-icon"></div>
						</div>
					</a>
				<?php
				endif; ?>
			</div>
		<?php endif; ?>

		<div class="sender-letter-time-actions">
			<?php
			$buttons = [];
			if ($arResult['CAN_CHANGE'])
			{
				$buttons[] = [
				'TYPE' => 'save', 'ONCLICK' => $enablePhoneVerification
					? 'return BX.Bitrix24.PhoneVerify.getInstance().startVerify({callback: function (verified) { BXPhoneVerifyOnSliderClose(verified) }});'
					: 'BXPhoneVerifyOnSliderClose(true)'
			];
			}
			else
			{
				$buttons[] = ['TYPE' => 'close', 'LINK' => $arParams['PATH_TO_LIST']];
			}
			?>
			<?php if (isset($arParams['DAY_LIMIT']) && $arParams['DAY_LIMIT'] !== null): ?>
				<div class="sender-letter-time-limitation-wrap">
					<div class="ui-alert ui-alert-warning">
						<div class="sender-letter-time-limitation-text">
						<span class="sender-letter-time-limitation-max">
							<?php
							echo $getMessageLocal(
								'SENDER_LETTER_TIME_LIMITATION_MAX',
								array(
									'%max%' => htmlspecialcharsbx($arParams['DAY_LIMIT']),
								)
							);
							?>
						</span><br>
							<span class="sender-letter-time-limitation-info">
							<?php
							echo $getMessageLocal(
								'SENDER_LETTER_TIME_LIMITATION_LIMITS_INFO',
								array(
									'%link_start%' => '<a href="javascript:top.BX.Helper.show(\'redirect=detail&code=14218426\')">',
									'%link_end%' => '</a>'
								)
							);
							?>
						</span>
						</div>
					</div>
				</div>
			<?php endif;

			$APPLICATION->IncludeComponent(
				"bitrix:ui.button.panel",
				"",
				array(
					'BUTTONS' => $buttons
				),
				false
			);

			?>
		</div>
	</form>

	<div style="display: none;">
		<div data-role="time-reiterate" class="sender-letter-time-popup">
			<div class="sender-letter-time-popup-time-box">
				<div
					class="sender-letter-time-popup-time-name"><?= Loc::getMessage('SENDER_LETTER_TIME_TMPL_WEEK_DAYS_TIME') ?>
					:
				</div>
				<select data-role="reiterate-times-of-day"
						class="sender-letter-time-popup-time-input sender-letter-time-popup-time-select">
					<?php
					foreach ($arResult['TIME_LIST'] as $time):
						$time = htmlspecialcharsbx($time);
						?>
						<option value="<?= $time ?>" <?= ($time === '09:00' ? 'selected' : '') ?>><?= $time ?></option>
					<?php
					endforeach ?>
				</select>
			</div>

			<div class="sender-letter-time-popup-date-box">
				<div class="sender-letter-time-popup-date">
					<?php
					$weekDays = [
						['id' => '1', 'name' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY_MON'), 'selected' => true],
						['id' => '2', 'name' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY_TUE'), 'selected' => true],
						['id' => '3', 'name' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY_WED'), 'selected' => true],
						['id' => '4', 'name' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY_THU'), 'selected' => true],
						['id' => '5', 'name' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY_FRI'), 'selected' => true],
						['id' => '6', 'name' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY_SAT'), 'selected' => true],
						['id' => '7', 'name' => Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY_SUN'), 'selected' => true],
					];
					foreach ($weekDays as $weekDay)
					{
						$dayNum = htmlspecialcharsbx($weekDay['id']);
						$dayName = htmlspecialcharsbx($weekDay['name']);
						$daySelected = (bool)$weekDay['selected'];
						?>
						<div class="sender-letter-time-popup-date-item sender-letter-time-popup-date-item-current"
							 data-role="reiterate-days-of-week"
							 data-value="<?= $dayNum ?>"
						>
							<?= $dayName ?>
						</div>
						<?php
					}
					?>
				</div>

				<div class="sender-letter-time-schedule-addit">
					<a class="sender-letter-time-schedule-addit-btn"
					   data-role="reiterate-additional-btn"
					>
						<?= Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_SHOW_ADDITIONAL') ?>
					</a>

					<div data-role="reiterate-additional" style="display: none;">
						<div class="sender-letter-time-schedule-addit-section">
							<div
								class="sender-letter-time-schedule-addit-caption"><?= Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_DAY') ?>
								:
							</div>
							<div>
								<?php
								$rowCount = 8;
								for ($row = 0; $row < 4; $row++)
								{
									?>
									<div class="sender-letter-time-popup-date"><?php
									for ($dayNum = 1; $dayNum <= $rowCount; $dayNum++)
									{
										$num = $dayNum + $row * $rowCount;
										if ($num > 31)
										{
											$num = '';
										}
										?>
										<div class="sender-letter-time-popup-date-item"
											 data-role="reiterate-days-of-month"
											 data-value="<?= $num ?>"
										><?= $num ?></div>
										<?php
									}
									?></div><?php
								}
								?>
							</div>
						</div>

						<div class="sender-letter-time-schedule-addit-section">
							<div
								class="sender-letter-time-schedule-addit-caption"><?= Loc::getMessage('SENDER_LETTER_TIME_TMPL_SCHEDULE_MONTH') ?>
								:
							</div>
							<div>
								<?php
								$rowCount = 6;
								$date = \Bitrix\Main\Type\DateTime::createFromTimestamp(mktime(0, 0, 0, 1, 1, 2049));
								for ($row = 0; $row < 2; $row++)
								{
									?>
									<div class="sender-letter-time-popup-date"><?php
									for ($monNum = 1; $monNum <= $rowCount; $monNum++)
									{
										$num = $monNum + $row * $rowCount;
										$name = htmlspecialcharsbx(\FormatDate('M', $date));
										$date->add("+1 months");
										?>
										<div class="sender-letter-time-popup-date-item"
											 data-role="reiterate-months-of-year"
											 data-value="<?= $num ?>"
										><?= $name ?></div>
										<?php
									}
									?></div><?php
								}
								?>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>