<?php

namespace Nette\Application\Diagnostics;

use Nette,
	Nette\Application\UI\Presenter,
	Nette\Diagnostics\Helpers,
	Nette\Diagnostics\Dumper;

?>
<style class="nette-debug">#nette-debug .nette-RoutingPanel table{font:9pt/1.5 Consolas,monospace}#nette-debug .nette-RoutingPanel .yes td{color:green}#nette-debug .nette-RoutingPanel .may td{color:#67F}#nette-debug .nette-RoutingPanel pre,#nette-debug .nette-RoutingPanel code{display:inline}#nette-debug .nette-RoutingPanel code .nette-collapsed{display:none}</style>

<div class="nette-RoutingPanel">
<h1>
<?php if (empty($this->request)): ?>
	no route
<?php else: ?>
	<?php echo htmlSpecialChars($this->request->getPresenterName() . ':' . (isset($this->request->parameters[Presenter::ACTION_KEY]) ? $this->request->parameters[Presenter::ACTION_KEY] : Presenter::DEFAULT_ACTION) . (isset($this->request->parameters[Presenter::SIGNAL_KEY]) ? " {$this->request->parameters[Presenter::SIGNAL_KEY]}!" : '')) ?>
<?php endif ?>
</h1>

<div class="nette-inner">
	<p><code><?php echo htmlSpecialChars($this->httpRequest->getUrl()) ?></code></p>

<?php if (empty($this->routers)): ?>
	<p>No routers defined.</p>

<?php else: ?>
	<table>
	<thead>
	<tr>
		<th>Matched?</th>
		<th>Class</th>
		<th>Mask</th>
		<th>Defaults</th>
		<th>Module</th>
		<th>Request</th>
	</tr>
	</thead>

	<tbody>
	<?php foreach ($this->routers as $router): ?>
	<tr class="<?php echo $router['matched'] ?>">
		<td><?php echo $router['matched'] ?></td>

		<td><code title="<?php echo htmlSpecialChars($router['class']) ?>"><?php echo preg_replace('#.+\\\\#', '', htmlSpecialChars($router['class'])) ?></code></td>

		<td><code><strong><?php echo htmlSpecialChars($router['mask']) ?></strong></code></td>

		<td><code>
		<?php foreach ($router['defaults'] as $key => $value): ?>
			<?php echo htmlSpecialChars($key), "&nbsp;=&nbsp;", is_string($value) ? htmlSpecialChars($value) : str_replace("\n</pre", '</pre', Dumper::toHtml($value, array(Dumper::COLLAPSE => TRUE))) ?><br />
		<?php endforeach ?>
		</code></td>

		<td><code><?php echo htmlSpecialChars($router['module']) ?></code></td>

		<td><?php if ($router['request']): ?><code>
		<?php $params = $router['request']->getParameters(); ?>
		<strong><?php echo htmlSpecialChars($router['request']->getPresenterName() . ':' . (isset($params[Presenter::ACTION_KEY]) ? $params[Presenter::ACTION_KEY] : Presenter::DEFAULT_ACTION)) ?></strong><br />
		<?php unset($params[Presenter::ACTION_KEY]) ?>
		<?php foreach ($params as $key => $value): ?>
			<?php echo htmlSpecialChars($key), "&nbsp;=&nbsp;", is_string($value) ? htmlSpecialChars($value) : str_replace("\n</pre", '</pre', Dumper::toHtml($value, array(Dumper::COLLAPSE => TRUE))) ?><br />
		<?php endforeach ?>
		</code><?php endif ?></td>
	</tr>
	<?php endforeach ?>
	</tbody>
	</table>
<?php endif ?>

	<?php if ($this->source): ?><p><?php echo $this->source ?> in <?php echo Helpers::editorLink($this->source->getFileName(), $this->source->getStartLine()) ?></p><?php endif ?>
</div>
</div>
