<?php

use Icinga\Application\Icinga;
use Icinga\Application\Config;
use Icinga\Application\Platform;
use Icinga\Web\Wizard;

$setupTokenPath = rtrim(Icinga::app()->getConfigDir(), '/') . '/setup.token';
$cliPath = realpath(Icinga::app()->getApplicationDir() . '/../bin/icingacli');

?>
<div class="welcome-page">
  <h2><?= mt('setup', 'Welcome to the configuration of Icinga Web 2!') ?></h2>
 <?php if (false === file_exists($setupTokenPath) && file_exists(Config::resolvePath('config.ini'))): ?>
  <p class="restart-warning"><?= mt(
    'setup',
    'You\'ve already completed the configuration of Icinga Web 2. Note that most of your configuration'
      . ' files will be overwritten in case you\'ll re-configure Icinga Web 2 using this wizard!'
  ); ?></p>
 <?php else: ?>
  <p><?= mt(
    'setup',
    ''
  ); ?></p>
 <?php endif ?>
  <form id="<?= $form->getName(); ?>" name="<?= $form->getName(); ?>" enctype="<?= $form->getEncType(); ?>" method="<?= $form->getMethod(); ?>" action="<?= $form->getAction(); ?>">
    <?= $form->getElement('token'); ?>
    <?= $form->getElement($form->getTokenElementName()); ?>
    <?= $form->getElement($form->getUidElementName()); ?>
    <div class="buttons">
      <?= $form->getElement(Wizard::BTN_NEXT); ?>
    </div>
  </form>
  <div class="note">
    <div class="title">
      <strong>Generating a New Setup Token</strong>
    </div>
    <div>
      <p><?=
        mt(
          'setup',
          'To run this wizard a user needs to authenticate using a token which is usually'
          . ' provided to him by an administrator who\'d followed the instructions below.'
      ); ?></p>
      <p><?= mt('setup', 'If you\'ve got the IcingaCLI installed you can do the following:'); ?></p>
      <div class="code">
        <span><?= $cliPath ? $cliPath : 'icingacli'; ?> setup config createDirectory <?= ($user = Platform::getPhpUser()) !== null ? $user : 'your_webserver_group'; ?>;</span>
        <span><?= $cliPath ? $cliPath : 'icingacli'; ?> setup token create;</span>
      </div>
      <p><?= mt('setup', 'In case the IcingaCLI is missing you can create the token manually:'); ?></p>
      <div class="code">
        <span>su <?= ($user = Platform::getPhpUser()) !== null ? $user : 'your_webserver_group'; ?> && mkdir -m 2770 <?= dirname($setupTokenPath); ?>;</span>
        <span>head -c 12 /dev/urandom | base64 | tee <?= $setupTokenPath; ?>;</span>
        <span>chmod 0660 <?= $setupTokenPath; ?>;</span>
      </div>
      <p><?= sprintf(
        mt('setup', 'Please see the %s for an extensive description on how to access and use this wizard.'),
        '<a href="http://docs.icinga.org/">' . mt('setup', 'Icinga Web 2 documentation') . '</a>' // TODO: Add link to iw2 docs which points to the installation topic
      ); ?></p>
    </div>
  </div>
</div>
