<?php
/**
 * @copyright (c) Kufer Software GmbH, Oderstraße 7, D-84453 Mühldorf
 */

$sortId = 2;
$toolId = \ToolsAPI::TOOL_ANWESENHEIT_DOZ;
$objsettings = \ToolSettingsAPI::getToolSettings($toolId);

$settingsArray = array();

$subGroup = 'Kurstage Übersicht';

$setting = new Setting();
$setting->name = 'ktstatus_ktuebersicht';
$setting->description = 'Einschränkung der Kurstage auf deren Status';
$setting->help = 'Wenn kein Status angegeben ist, werden alle Kurstage ohne Berücksichtigung ihrer Status angezeigt. Filtern nach Status A (= Ausfall) ist '
        . 'nicht möglich, weil Kurstage mit Status A nicht angezeigt werden sollen. ';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->separator = '';


$displayAry = ArrayOperations::filterPreserveKeys(
  ConstantOperations::getKurstagStatus4EinschraenkungAufKTStatus(),
  function($var) {return $var != 'A';},
  ARRAY_FILTER_USE_KEY
);



if (!function_exists('statusPrefix')) {
  function statusPrefix(&$value, $key)
  {
    $value = "Status <b>$value</b>";
  }
}
array_walk($displayAry, 'statusPrefix');

$setting->config->loadConfiguration(SC_MULTISELECT);
$setting->config->items = $displayAry;
array_push($settingsArray, $setting);

$settingsArray[] = \Kufer\Admin\Classes\Settings\Helper\Tools\KursStatusHelper::createKursStatusSetting(
  $toolId,
  $objsettings,
  $subGroup
);

$settingsArray[] = \Kufer\Web\Admin\Classes\Settings\Helper\Tools\KursDozententypHelper::createKursDozententypSetting($toolId, $subGroup);

$setting = new Setting();
$setting->name = 'aktKurstageBackScroll';
$setting->description = 'Tage, die Dozenten in "Aktuelle Kurstage" zurückblättern können';
$setting->help = 'Anzahl der Tage, die Dozenten in der Kurstag-Übersicht zurückblättern können.';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNUMERIC);
$setting->config->size = 4;
$setting->config->maxLength = 4;
$setting->config->allowNegative = false;
$setting->config->HasIncrDecr = true;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'showKurstage';
$setting->description = 'Folgende Kurstage anzeigen';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$setting->config->items = array('eigene' => 'nur eigene Kurstage', 'leiter' => 'eigene Kurstage und solche zu Kursen, von denen der aktuelle Dozent auch Lehrgangsleiter ist',
                           'alle4kurs' => 'alle Kurstage, an deren Kursen man beteiligt ist');
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'aktKurstageBackScroll4Leiter';
$setting->description = 'Tage, die Lehrgangsleiter in "Aktuelle Kurstage" zurückblättern können';
$setting->help = 'Anzahl der Tage, die Lehrgangsleiter in der Kurstag-Übersicht zurückblättern können.<br /><br />Diese Anzahl der zurückblätterbaren Tage ist von den selektierten Anzeigemöglichkeiten '
               . "der Option 'Folgende Kurstage anzeigen' abhängig.<br /><br /><b>Achtung:</b> Ist mindestens so groß wie die Anzahl der Tage, "
               . "die normale Dozenten zurückblättern können.','Hinweis: Tage, die Lehrgangsleiter in 'Aktuelle Kurstage' zurückblättern können";
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNUMERIC);
$setting->config->size = 4;
$setting->config->maxLength = 4;
$setting->config->allowNegative = false;
$setting->config->HasIncrDecr = true;
$objsettings = ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_ANWESENHEIT_DOZ);
$setting->disabled = $objsettings->showKurstage !== 'leiter';
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kurstageUebersichtAlsTabelle';
$setting->description = 'Stelle Kurstage als Tabelle statt Panels dar';
$setting->help = '';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$subGroup = 'Einschränken der angezeigten Kurstage auf Fächer';

$setting = new Setting();
$setting->name = 'restrictKurstageForFachbereiche';
$setting->description = 'Betroffene Kurse per Fach auswählen';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTISELECT);
$setting->config->separator = ':';
$setting->config->items = array();
$dbwHlFach = \DBWorkDozFachbereich::getDefaultInstance();
foreach ($dbwHlFach->getFachbereichAll() as $fachber) {
  $setting->config->items[$fachber->kennz] = '<b>' . \CleanOperations::cleanStringForHtml($fachber->kennz) . '</b> ' . \CleanOperations::cleanStringForHtml($fachber->text);
}
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'restrictKurstageForFachbereicheZeitraum';
$setting->description = 'Kurstage der betroffenen Kurse auf Zeitbereich einschränken auf';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$setting->config->items = array();
$setting->config->items[0] = 'Aktuelle Woche';
$setting->config->items[3] = 'Vor x Tagen (Siehe Einstellung unten, einschließlich heute)';
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'restrictKurstageForFachbereicheZeitraumDays';
$setting->description = 'Zeitbereich in Tagen um den die Kurstage angezeigt werden sollen';
$setting->help = 'Diese Einstellung wird nur verwendet, wenn oben eine Einschränkung auf Tagen gemacht wurde.';
$setting->subGroup = $subGroup;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNUMERIC);
$setting->config->allowNegative = false;
$setting->config->HasIncrDecr = true;
array_push($settingsArray, $setting);