<?php defined('BLUDIT') or die('Bludit CMS.'); ?>

<?php echo Bootstrap::formOpen(array('id' => 'jsform', 'class' => 'tab-content')); ?>

<div class="align-middle">
	<div class="float-right mt-1">
		<button type="submit" class="btn btn-primary btn-sm" name="save"><?php $L->p('Save') ?></button>
		<a class="btn btn-secondary btn-sm" href="<?php echo HTML_PATH_ADMIN_ROOT . 'dashboard' ?>" role="button"><?php $L->p('Cancel') ?></a>
	</div>
	<?php echo Bootstrap::pageTitle(array('title' => $L->g('Settings'), 'icon' => 'cog')); ?>
</div>

<!-- TABS -->
<nav class="mb-3">
	<div class="nav nav-tabs" id="nav-tab" role="tablist">
		<a class="nav-item nav-link active" id="nav-general-tab" data-toggle="tab" href="#general" role="tab" aria-controls="nav-general" aria-selected="false"><?php $L->p('General') ?></a>
		<a class="nav-item nav-link" id="nav-advanced-tab" data-toggle="tab" href="#advanced" role="tab" aria-controls="nav-advanced" aria-selected="false"><?php $L->p('Advanced') ?></a>
		<a class="nav-item nav-link" id="nav-seo-tab" data-toggle="tab" href="#seo" role="tab" aria-controls="nav-seo" aria-selected="false"><?php $L->p('SEO') ?></a>
		<a class="nav-item nav-link" id="nav-social-tab" data-toggle="tab" href="#social" role="tab" aria-controls="nav-social" aria-selected="false"><?php $L->p('Social Networks') ?></a>
		<a class="nav-item nav-link" id="nav-images-tab" data-toggle="tab" href="#images" role="tab" aria-controls="nav-images" aria-selected="false"><?php $L->p('Images') ?></a>
		<a class="nav-item nav-link" id="nav-language-tab" data-toggle="tab" href="#language" role="tab" aria-controls="nav-language" aria-selected="false"><?php $L->p('Language') ?></a>
		<a class="nav-item nav-link" id="nav-custom-fields-tab" data-toggle="tab" href="#custom-fields" role="tab" aria-controls="nav-custom-fields" aria-selected="false"><?php $L->p('Custom fields') ?></a>
		<a class="nav-item nav-link" id="nav-logo-tab" data-toggle="tab" href="#logo" role="tab" aria-controls="nav-logo" aria-selected="false"><?php $L->p('Logo') ?></a>
	</div>
</nav>

<?php
// Token CSRF
echo Bootstrap::formInputHidden(array(
	'name' => 'tokenCSRF',
	'value' => $security->getTokenCSRF()
));
?>

<!-- General tab -->
<div class="tab-pane fade show active" id="general" role="tabpanel" aria-labelledby="general-tab">

	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Site')));

	echo Bootstrap::formInputText(array(
		'name' => 'title',
		'label' => $L->g('Site title'),
		'value' => $site->title(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('use-this-field-to-name-your-site')
	));

	echo Bootstrap::formInputText(array(
		'name' => 'slogan',
		'label' => $L->g('Site slogan'),
		'value' => $site->slogan(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('use-this-field-to-add-a-catchy-phrase')
	));

	echo Bootstrap::formInputText(array(
		'name' => 'description',
		'label' => $L->g('Site description'),
		'value' => $site->description(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('you-can-add-a-site-description-to-provide')
	));

	echo Bootstrap::formInputText(array(
		'name' => 'footer',
		'label' => $L->g('Footer text'),
		'value' => $site->footer(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('you-can-add-a-small-text-on-the-bottom')
	));
	?>
</div>

<!-- Advanced tab -->
<div class="tab-pane fade" id="advanced" role="tabpanel" aria-labelledby="advanced-tab">
	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Content')));

	echo Bootstrap::formInputText(array(
		'name' => 'itemsPerPage',
		'label' => $L->g('Items per page'),
		'value' => $site->itemsPerPage(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Number of items to show per page')
	));

	echo Bootstrap::formSelect(array(
		'name' => 'orderBy',
		'label' => $L->g('Order content by'),
		'options' => array('date' => $L->g('Date'), 'position' => $L->g('Position')),
		'selected' => $site->orderBy(),
		'class' => '',
		'tip' => $L->g('order-the-content-by-date-to-build-a-blog')
	));

	echo Bootstrap::formTitle(array('title' => $L->g('Predefined pages')));

	// Homepage
	try {
		$options = array();
		$homeKey = $site->homepage();
		if (!empty($homeKey)) {
			$home = new Page($homeKey);
			$options = array($homeKey => $home->title());
		}
	} catch (Exception $e) {
		// continue
	}
	echo Bootstrap::formSelect(array(
		'name' => 'homepage',
		'label' => $L->g('Homepage'),
		'options' => $options,
		'selected' => false,
		'class' => '',
		'tip' => $L->g('Returning page for the main page')
	));
	?>
	<script>
		$(document).ready(function() {
			var homepage = $("#jshomepage").select2({
				placeholder: "<?php $L->p('Start typing to see a list of suggestions.') ?>",
				allowClear: true,
				theme: "bootstrap4",
				minimumInputLength: 2,
				ajax: {
					url: HTML_PATH_ADMIN_ROOT + "ajax/get-published",
					data: function(params) {
						var query = {
							query: params.term
						}
						return query;
					},
					processResults: function(data) {
						return data;
					}
				},
				escapeMarkup: function(markup) {
					return markup;
				}
			});
		});
	</script>

	<?php
	// Page not found 404
	try {
		$options = array();
		$pageNotFoundKey = $site->pageNotFound();
		if (!empty($pageNotFoundKey)) {
			$pageNotFound = new Page($pageNotFoundKey);
			$options = array($pageNotFoundKey => $pageNotFound->title());
		}
	} catch (Exception $e) {
		// continue
	}
	echo Bootstrap::formSelect(array(
		'name' => 'pageNotFound',
		'label' => $L->g('Page not found'),
		'options' => $options,
		'selected' => false,
		'class' => '',
		'tip' => $L->g('Returning page when the page doesnt exist')
	));
	?>

	<script>
		$(document).ready(function() {
			var homepage = $("#jspageNotFound").select2({
				placeholder: "<?php $L->p('Start typing to see a list of suggestions.') ?>",
				allowClear: true,
				theme: "bootstrap4",
				minimumInputLength: 2,
				ajax: {
					url: HTML_PATH_ADMIN_ROOT + "ajax/get-published",
					data: function(params) {
						var query = {
							query: params.term
						}
						return query;
					},
					processResults: function(data) {
						return data;
					}
				},
				escapeMarkup: function(markup) {
					return markup;
				}
			});
		});
	</script>

	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Email account settings')));

	echo Bootstrap::formInputText(array(
		'name' => 'emailFrom',
		'label' => $L->g('Sender email'),
		'value' => $site->emailFrom(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Emails will be sent from this address')
	));

	echo Bootstrap::formTitle(array('title' => $L->g('Autosave')));

	echo Bootstrap::formInputText(array(
		'name' => 'autosaveInterval',
		'label' => $L->g('Interval'),
		'value' => $site->autosaveInterval(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Number in minutes for every execution of autosave')
	));

	echo Bootstrap::formTitle(array('title' => $L->g('Site URL')));

	echo Bootstrap::formInputText(array(
		'name' => 'url',
		'label' => 'URL',
		'value' => $site->url(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('full-url-of-your-site'),
		'placeholder' => 'https://'
	));

	echo Bootstrap::formTitle(array('title' => $L->g('Page content')));

	echo Bootstrap::formSelect(array(
		'name' => 'markdownParser',
		'label' => $L->g('Markdown parser'),
		'options' => array('true' => $L->g('Enabled'), 'false' => $L->g('Disabled')),
		'selected' => ($site->markdownParser() ? 'true' : 'false'),
		'class' => '',
		'tip' => $L->g('Enable the markdown parser for the content of the page.')
	));

	echo Bootstrap::formTitle(array('title' => $L->g('URL Filters')));

	echo Bootstrap::formInputText(array(
		'name' => 'uriPage',
		'label' => $L->g('Pages'),
		'value' => $site->uriFilters('page'),
		'class' => '',
		'placeholder' => '',
		'tip' => DOMAIN_PAGES
	));

	echo Bootstrap::formInputText(array(
		'name' => 'uriTag',
		'label' => $L->g('Tags'),
		'value' => $site->uriFilters('tag'),
		'class' => '',
		'placeholder' => '',
		'tip' => DOMAIN_TAGS
	));

	echo Bootstrap::formInputText(array(
		'name' => 'uriCategory',
		'label' => $L->g('Category'),
		'value' => $site->uriFilters('category'),
		'class' => '',
		'placeholder' => '',
		'tip' => DOMAIN_CATEGORIES
	));

	echo Bootstrap::formInputText(array(
		'name' => 'uriBlog',
		'label' => $L->g('Blog'),
		'value' => $site->uriFilters('blog'),
		'class' => '',
		'placeholder' => '',
		'tip' => DOMAIN . $site->uriFilters('blog'),
		'disabled' => Text::isEmpty($site->uriFilters('blog'))
	));
	?>
</div>

<!-- SEO tab -->
<div class="tab-pane fade" id="seo" role="tabpanel" aria-labelledby="seo-tab">
	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Extreme friendly URL')));

	echo Bootstrap::formSelect(array(
		'name' => 'extremeFriendly',
		'label' => $L->g('Allow Unicode'),
		'options' => array('true' => $L->g('Enabled'), 'false' => $L->g('Disabled')),
		'selected' => ($site->extremeFriendly() ? 'true' : 'false'),
		'class' => '',
		'tip' => $L->g('Allow unicode characters in the URL and some part of the system.')
	));

	echo Bootstrap::formTitle(array('title' => $L->g('Title formats')));

	echo Bootstrap::formInputText(array(
		'name' => 'titleFormatHomepage',
		'label' => $L->g('Homepage'),
		'value' => $site->titleFormatHomepage(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Variables allowed') . ' <code>{{site-title}}</code> <code>{{site-slogan}}</code> <code>{{site-description}}</code>',
		'placeholder' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'titleFormatPages',
		'label' => $L->g('Pages'),
		'value' => $site->titleFormatPages(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Variables allowed') . ' <code>{{page-title}}</code> <code>{{page-description}}</code> <code>{{site-title}}</code> <code>{{site-slogan}}</code> <code>{{site-description}}</code>',
		'placeholder' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'titleFormatCategory',
		'label' => $L->g('Category'),
		'value' => $site->titleFormatCategory(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Variables allowed') . ' <code>{{category-name}}</code> <code>{{site-title}}</code> <code>{{site-slogan}}</code> <code>{{site-description}}</code>',
		'placeholder' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'titleFormatTag',
		'label' => $L->g('Tag'),
		'value' => $site->titleFormatTag(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Variables allowed') . ' <code>{{tag-name}}</code> <code>{{site-title}}</code> <code>{{site-slogan}}</code> <code>{{site-description}}</code>',
		'placeholder' => ''
	));
	?>
</div>

<!-- Social Network tab -->
<div class="tab-pane fade" id="social" role="tabpanel" aria-labelledby="social-tab">
	<?php
	echo Bootstrap::formInputText(array(
		'name' => 'twitter',
		'label' => 'Twitter',
		'value' => $site->twitter(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'facebook',
		'label' => 'Facebook',
		'value' => $site->facebook(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'codepen',
		'label' => 'CodePen',
		'value' => $site->codepen(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'instagram',
		'label' => 'Instagram',
		'value' => $site->instagram(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'gitlab',
		'label' => 'GitLab',
		'value' => $site->gitlab(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'github',
		'label' => 'GitHub',
		'value' => $site->github(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'linkedin',
		'label' => 'LinkedIn',
		'value' => $site->linkedin(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'xing',
		'label' => 'Xing',
		'value' => $site->xing(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'mastodon',
		'label' => 'Mastodon',
		'value' => $site->mastodon(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'dribbble',
		'label' => 'Dribbble',
		'value' => $site->dribbble(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));

	echo Bootstrap::formInputText(array(
		'name' => 'vk',
		'label' => 'VK',
		'value' => $site->vk(),
		'class' => '',
		'placeholder' => '',
		'tip' => ''
	));
	?>
</div>

<!-- Images tab -->
<div class="tab-pane fade" id="images" role="tabpanel" aria-labelledby="images-tab">
	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Thumbnails')));

	echo Bootstrap::formInputText(array(
		'name' => 'thumbnailWidth',
		'label' => $L->g('Width'),
		'value' => $site->thumbnailWidth(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Thumbnail width in pixels')
	));

	echo Bootstrap::formInputText(array(
		'name' => 'thumbnailHeight',
		'label' => $L->g('Height'),
		'value' => $site->thumbnailHeight(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Thumbnail height in pixels')
	));

	echo Bootstrap::formInputText(array(
		'name' => 'thumbnailQuality',
		'label' => $L->g('Quality'),
		'value' => $site->thumbnailQuality(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Thumbnail quality in percentage')
	));
	?>
</div>

<!-- Timezone and language tab -->
<div class="tab-pane fade" id="language" role="tabpanel" aria-labelledby="language-tab">
	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Language and timezone')));

	echo Bootstrap::formSelect(array(
		'name' => 'language',
		'label' => $L->g('Language'),
		'options' => $L->getLanguageList(),
		'selected' => $site->language(),
		'class' => '',
		'tip' => $L->g('select-your-sites-language')
	));

	echo Bootstrap::formSelect(array(
		'name' => 'timezone',
		'label' => $L->g('Timezone'),
		'options' => Date::timezoneList(),
		'selected' => $site->timezone(),
		'class' => '',
		'tip' => $L->g('select-a-timezone-for-a-correct')
	));

	echo Bootstrap::formInputText(array(
		'name' => 'locale',
		'label' => $L->g('Locale'),
		'value' => $site->locale(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('with-the-locales-you-can-set-the-regional-user-interface')
	));

	echo Bootstrap::formTitle(array('title' => $L->g('Date and time formats')));

	echo Bootstrap::formInputText(array(
		'name' => 'dateFormat',
		'label' => $L->g('Date format'),
		'value' => $site->dateFormat(),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('Current format') . ': ' . Date::current($site->dateFormat())
	));
	?>
</div>

<!-- Custom fields -->
<div class="tab-pane fade" id="custom-fields" role="tabpanel" aria-labelledby="custom-fields-tab">
	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Custom fields')));

	echo Bootstrap::formTextarea(array(
		'name' => 'customFields',
		'label' => 'JSON Format',
		'value' => json_encode($site->customFields(), JSON_PRETTY_PRINT),
		'class' => '',
		'placeholder' => '',
		'tip' => $L->g('define-custom-fields-for-the-content'),
		'rows' => 15
	));
	?>
</div>

<!-- Site logo tab -->
<div class="tab-pane fade" id="logo" role="tabpanel" aria-labelledby="logo-tab">
	<?php
	echo Bootstrap::formTitle(array('title' => $L->g('Site logo')));
	?>

	<div class="container">
		<div class="row">
			<div class="col-lg-4 col-sm-12 p-0 pr-2">
				<div class="custom-file">
					<input id="jssiteLogoInputFile" class="custom-file-input" type="file" name="inputFile">
					<label for="jssiteLogoInputFile" class="custom-file-label"><?php $L->p('Upload image'); ?></label>
				</div>
				<button id="jsbuttonRemoveLogo" type="button" class="btn btn-primary w-100 mt-4 mb-4"><i class="fa fa-trash"></i><?php $L->p('Remove logo') ?></button>
			</div>
			<div class="col-lg-8 col-sm-12 p-0 text-center">
				<img id="jssiteLogoPreview" class="img-fluid img-thumbnail" alt="Site logo preview" src="<?php echo ($site->logo() ? DOMAIN_UPLOADS . $site->logo(false) . '?version=' . time() : HTML_PATH_CORE_IMG . 'default.svg') ?>" />
			</div>
		</div>
	</div>
	<script>
		$("#jsbuttonRemoveLogo").on("click", function() {
			bluditAjax.removeLogo();
			$("#jssiteLogoPreview").attr("src", "<?php echo HTML_PATH_CORE_IMG . 'default.svg' ?>");
		});

		$("#jssiteLogoInputFile").on("change", function() {
			var formData = new FormData();
			formData.append('tokenCSRF', tokenCSRF);
			formData.append('inputFile', $(this)[0].files[0]);
			$.ajax({
				url: HTML_PATH_ADMIN_ROOT + "ajax/logo-upload",
				type: "POST",
				data: formData,
				cache: false,
				contentType: false,
				processData: false
			}).done(function(data) {
				if (data.status == 0) {
					$("#jssiteLogoPreview").attr('src', data.absoluteURL + "?time=" + Math.random());
				} else {
					showAlert(data.message);
				}
			});
		});
	</script>
</div>

<?php echo Bootstrap::formClose(); ?>

<script>
	// Open current tab after refresh page
	$(function() {
		$('a[data-toggle="tab"]').on('click', function(e) {
			window.localStorage.setItem('activeTab', $(e.target).attr('href'));
		});
		var activeTab = window.localStorage.getItem('activeTab');
		if (activeTab) {
			$('#nav-tab a[href="' + activeTab + '"]').tab('show');
			//window.localStorage.removeItem("activeTab");
		}
	});
</script>