<?php
	/** @var FreshRSS_View $this */
	$actual_view = Minz_Request::actionName();
	$class = '';
	if (FreshRSS_Context::$user_conf->hide_read_feeds &&
			FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_NOT_READ) &&
			!FreshRSS_Context::isStateEnabled(FreshRSS_Entry::STATE_READ)) {
		$class = ' state_unread';
	}

	$state_filter_manual = Minz_Request::paramString('state');
	if ($state_filter_manual !== '') {
		$state_filter_manual = '&state=' . $state_filter_manual;
	}
?>
<nav class="nav aside aside_feed<?= $class ?>" id="aside_feed">
	<a class="toggle_aside" href="#close"><?= _i('close') ?></a>

	<?php if (FreshRSS_Auth::hasAccess()) { ?>
	<div class="stick configure-feeds">
		<a id="btn-subscription" class="btn btn-important" href="<?= _url('subscription', 'index') ?>"><?= _t('index.menu.subscription') ?></a>
		<a id="btn-add" class="btn btn-important" href="<?= _url('subscription', 'add') ?>"><?= _i('add') ?></a>
	</div>
	<?php } elseif (FreshRSS_Auth::accessNeedsLogin()) { ?>
	<a href="<?= _url('index', 'about') ?>" class="about"><?= _t('index.menu.about') ?></a>
	<?php } ?>

	<form id="mark-read-aside" method="post">
	<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
	<ul id="sidebar" class="tree scrollbar-thin">
		<li class="tree-folder category all<?= FreshRSS_Context::isCurrentGet('a') ? ' active' : '' ?>">
			<div class="tree-folder-title">
				<?= _i('all') ?><a class="title" data-unread="<?= format_number(FreshRSS_Context::$total_unread) ?>" href="<?=
					_url('index', $actual_view) . $state_filter_manual ?>"><?= _t('index.menu.main_stream') ?></a>
			</div>
		</li>

		<li class="tree-folder category favorites<?= FreshRSS_Context::isCurrentGet('s') ? ' active' : '' ?>">
			<div class="tree-folder-title">
				<?= _i('starred') ?><a class="title" data-unread="<?= format_number(FreshRSS_Context::$total_starred['unread']) ?>" href="<?= _url('index', $actual_view, 'get', 's') . $state_filter_manual ?>">
					<?= _t('index.menu.favorites', format_number(FreshRSS_Context::$total_starred['all'])) ?>
				</a>
			</div>
		</li>

		<?php
			$t_active = FreshRSS_Context::isCurrentGet('T');
			$t_show = ($t_active && in_array(FreshRSS_Context::$user_conf->display_categories, ['active', 'remember'], true)) || FreshRSS_Context::$user_conf->display_categories === 'all';
		?>
		<li id="tags" class="tree-folder category tags<?= $t_active ? ' active' : '' ?>" data-unread="<?= format_number($this->nbUnreadTags) ?>">
			<div class="tree-folder-title">
				<a class="dropdown-toggle" href="#"><?= _i($t_show ? 'up' : 'down') ?></a><a class="title" data-unread="<?= format_number($this->nbUnreadTags) ?>" href="<?= _url('index', $actual_view, 'get', 'T') . $state_filter_manual ?>"><?= _t('index.menu.tags') ?></a>
			</div>
			<ul class="tree-folder-items<?= $t_show ? ' active' : '' ?>">
				<?php
					foreach ($this->tags as $tag):
				?>
				<li id="t_<?= $tag->id() ?>" class="item feed<?= FreshRSS_Context::isCurrentGet('t_' . $tag->id()) ? ' active' : '' ?>" data-unread="<?= $tag->nbUnread() ?>">
					<div class="dropdown no-mobile">
						<div class="dropdown-target"></div>
						<a class="dropdown-toggle"><?= _i('configure') ?></a>
						<?php /* tag_config_template */ ?>
					</div>
					<a class="item-title" data-unread="<?= format_number($tag->nbUnread()) ?>" href="<?=
						_url('index', $actual_view, 'get', 't_' . $tag->id()) . $state_filter_manual ?>"><?= _i('label') ?> <?= $tag->name() ?></a>
				</li>
				<?php endforeach; ?>
			</ul>
		</li>

		<?php
			$nbFeedsTotal = 0;
			foreach ($this->categories as $cat) {
				$nbFeedsTotal += $cat->nbFeeds();
			}

			foreach ($this->categories as $cat):
				$feeds = $cat->feeds();
				$position = $cat->attributes('position');
				if (!empty($feeds)) {
					$c_active = FreshRSS_Context::isCurrentGet('c_' . $cat->id());
					$c_show = ($c_active && in_array(FreshRSS_Context::$user_conf->display_categories, ['active', 'remember'], true))
						|| FreshRSS_Context::$user_conf->display_categories === 'all';
		?>
		<li id="c_<?= $cat->id() ?>" class="tree-folder category<?= $c_active ? ' active' : '' ?>"<?=
			null === $position ? '' : " data-position='$position'" ?> data-unread="<?= $cat->nbNotRead() ?>">
			<div class="tree-folder-title">
				<a class="dropdown-toggle" href="#"><?= _i($c_show ? 'up' : 'down') ?></a><a class="title<?= $cat->hasFeedsWithError() ? ' error' : '' ?>" data-unread="<?=
					format_number($cat->nbNotRead()) ?>" href="<?= _url('index', $actual_view, 'get', 'c_' . $cat->id()) . $state_filter_manual ?>"><?=
						$cat->name()
					?><?php if ($cat->kind() == FreshRSS_Category::KIND_DYNAMIC_OPML) { echo _i('opml-dyn'); } ?></a>
			</div>

			<ul class="tree-folder-items<?= $c_show ? ' active' : '' ?>">
<?php
	// NB: Reduce whitespace in that loop
	foreach ($feeds as $feed):
		$f_active = FreshRSS_Context::isCurrentGet('f_' . $feed->id());
		$f_active_class = $f_active ? ' active' : '';

		$error_class = '';
		$error_title = '';
		if ($feed->inError()) {
			$error_class = ' error';
			$error_title = _t('sub.feed.error');
		}

		$empty_class = '';
		$empty_title = '';
		if ($feed->nbEntries() <= 0) {
			$empty_class = ' empty';
			$empty_title = _t('sub.feed.empty');
		}
		$mute_class = $feed->mute() ? ' mute' : '';
?>
<li id="f_<?= $feed->id() ?>" class="item feed<?= $f_active_class, $mute_class, $error_class, $empty_class ?>" title="<?= $error_title, $empty_title ?>"
		data-unread="<?= $feed->nbNotRead() ?>" data-priority="<?= $feed->priority() ?>"><?php
		if ($f_active || $nbFeedsTotal < FreshRSS_Context::$user_conf->simplify_over_n_feeds):
	?><div class="dropdown no-mobile">
		<div class="dropdown-target"></div><a class="dropdown-toggle" data-fweb="<?= $feed->website() ?>"><?= _i('configure') ?></a><?php /* feed_config_template */ ?>
	</div><?php
			if (FreshRSS_Context::$user_conf->show_favicons) { ?><img class="favicon test" src="<?= $feed->favicon() ?>" alt="✇" loading="lazy" /><?php }
		endif;
	?><a class="item-title" data-unread="<?= format_number($feed->nbNotRead()) ?>" href="<?=
		_url('index', $actual_view, 'get', 'f_' . $feed->id()) . $state_filter_manual ?>"><?= $feed->name() ?></a></li>
<?php
	endforeach;
?>
			</ul>
		</li>
		<?php
				}
			endforeach;
		?>
		<li class="tree-bottom"></li>
	</ul>
	</form>
</nav>
<a class="close-aside" href="#close">❌</a>

<div id="first_load" class="loading"></div>
<?php flush(); ?>

<script id="tag_config_template" type="text/html">
	<ul class="dropdown-menu">
		<li class="item">
			<button class="as-link confirm" disabled="disabled"
				form="mark-read-aside" formaction="<?= _url('tag', 'delete', 'id_tag', '------') ?>"
				type="submit"><?= _t('gen.action.remove') ?></button>
		</li>
	</ul>
	<a class="dropdown-close" href="#close">❌</a>
</script>

<script id="feed_config_template" type="text/html">
	<ul class="dropdown-menu">
		<li class="item"><a href="<?= _url('index', $actual_view, 'get', 'f_------') ?>"><?= _t('gen.action.filter') ?></a></li>
		<?php if (FreshRSS_Auth::hasAccess()) { ?>
		<li class="item"><a href="<?= _url('stats', 'repartition', 'id', '------') ?>"><?= _t('index.menu.stats') ?></a></li>
		<?php } ?>
		<li class="item link website"><a target="_blank" rel="noreferrer" href="http://example.net/"><?= _t('gen.action.see_website') ?></a></li>
		<?php if (FreshRSS_Auth::hasAccess()) {
		$get = Minz_Request::paramString('get');
		if ($get === '') {
			$url = _url('subscription', 'feed', 'id', '------', 'from', $actual_view);
		} else {
			$url = _url('subscription', 'feed', 'id', '------', 'get', $get, 'from', $actual_view);
		}
		?>
		<li class="item"><a class="configure open-slider" href="<?= $url ?>"><?= _t('gen.action.manage') ?></a></li>
		<li class="item"><a href="<?= _url('feed', 'actualize', 'id', '------') ?>"><?= _t('gen.action.actualize') ?></a></li>
		<li class="item">
			<?php $confirm = FreshRSS_Context::$user_conf->reading_confirm ? 'confirm" disabled="disabled' : ''; ?>
			<button class="read_all as-link <?= $confirm ?>"
				form="mark-read-aside"
				formaction="<?= _url('entry', 'read', 'get', 'f_------') ?>"
				type="submit"><?= _t('gen.action.mark_read') ?></button>
		</li>
		<?php } ?>
	</ul>
	<a class="dropdown-close" href="#close">❌</a>
</script>
