<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

namespace Kufer\KuferTools\Basis\Anmeldung\AnmeldungEinstieg;

abstract class AnmeldungEinstiegPresenter extends \Kufer\KuferTools\Basis\Presenter\MitRahmenPresenter
{
  protected function getContent()
  {
    $view = $this->getView();
    $entryAry = $this->useCaseResponse->allEntries;
    if (!$this->isDatamodulAryEmpty($entryAry)) {
      return $view->show();
    }

    return $view->getNoData();
  }

  protected function getViewModel()
  {
    $viewModel = new AnmeldungEinstiegViewModel();
    $viewModel->ueberschrift = $this->getUeberschrift();
    $viewModel->categoryList = $this->useCaseResponse->categoryList;
    $viewModel->aussenstellen = $this->getAussenstellenOptions();

    $viewModel->searchMulipleAussenStellen = $this->useCaseResponse->searchMulipleAussenStellen;
    $viewModel->searchShowAllKriterienByDefault = $this->useCaseResponse->searchShowAllKriterienByDefault;
    $viewModel->kursZusammengesetzt = $this->useCaseResponse->sprachSettings->KursZusammengesetzt['Singular']['Nominativ'];
    $viewModel->kursArtikelPluralNom = $this->useCaseResponse->sprachSettings->Kurs['Plural']['Nominativ'];

    $viewModel->isBLAK = $this->useCaseResponse->isBLAK;
    $viewModel->aussenstelleBezeichnung = ($this->useCaseResponse->isBLAK) ? 'Stadt' : 'Außenstelle';
    $viewModel->aussenstelleBezeichnungMehrzahl = ($this->useCaseResponse->isBLAK) ? 'Städte' : 'Außenstellen';

    $viewModel->zeigeKategorienBeimEinstieg = $this->useCaseResponse->zeigeKategorienBeimEinstieg;
    $viewModel->zeigeSonderkategorienBeimEinstieg = $this->useCaseResponse->zeigeSonderkategorienBeimEinstieg;
    $viewModel->anzahlkurse = count($this->useCaseResponse->allEntries);

    return $viewModel;
  }

  private function getAussenstellenOptions()
  {
    $options = '';
    foreach ($this->useCaseResponse->aussenstellen as $aussenstelle) {
      $options .= "<option value='" . $aussenstelle->id . "'>" . \CleanOperations::cleanStringForHtml($aussenstelle->bezeichner) . '</option>';
    }

    return $options;
  }

  private function getUeberschrift()
  {
    if ($this->useCaseResponse->isBLAK) {
      return 'Suchen und anmelden:';
    } else {
      return 'neue Anmeldung zu ' . $this->useCaseResponse->sprachSettings->Kurs['Plural_mit_Artikel']['Dativ'] . ':';
    }
  }

  protected function getJsFilesSrcAryWeitere()
  {
    $js = parent::getJsFilesSrcAryWeitere();
    $js[] = $this->getJsFileFromJQuery('plugins/jquery.treeview.js', \CodingOperations::getEncoding4ExternalKuferToolsJsFiles());
    $js[] = $this->getJsFileFromOldTools('anmelden.js');

    return $js;
  }

  protected function getCssFilesSrcAry()
  {
    $cssFileAry = parent::getCssFilesSrcAry();
    $cssFileAry[] = '../jquery/css/treeview/jquery.treeview.css';

    return $cssFileAry;
  }
}