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

namespace Kufer\Web\KuferTools\Utils\WssField\Foto;

class WssFieldFotoPfotoInArbeit extends \Kufer\Web\KuferTools\Utils\WssField\WssField
{
  protected function getValue($datamodulWert, $isFormular = false)
  {
    $imageSrc = '';
    if (($datamodulWert->getVarValueEx('portrait_flag', $this->getDatamodulName()) & PORTRAIT_FLAG_KUFERTOOLS) == PORTRAIT_FLAG_KUFERTOOLS) {
      $imageSrc = $datamodulWert->getImageLink('pfoto_inArbeit');
    }

    if (!empty($imageSrc)) {
      $hash = md5_file($imageSrc);
      $imageSrc .= '?v=' . $hash;
      $result = \HTMLOperations::CreateImageTag($imageSrc, '');
    } else {
      $result = 'Kein Bild vorhanden!';
    }

    return $result;
  }

  protected function getFieldBearbeitbar($datamodulWert, $isFormular, string $requestPrefix = '')
  {
    $name = $this->getDatamodulAndFieldName();
    $fotoInArbeitExistiert = ($datamodulWert->getVarValueEx('portrait_flag', $this->getDatamodulName()) & PORTRAIT_FLAG_KUFERTOOLS) == PORTRAIT_FLAG_KUFERTOOLS
                              && !empty($datamodulWert->getImageLink('pfoto_inArbeit'));

    $result = '<div class="portrait_parent">';

    $result .= '<div class="portrait_vorschau">';
    $result .= '<div class="portrait_vorschau_bisher">' . $this->getValue($datamodulWert, $isFormular) . '</div>';
    $result .= '<div class="portrait_vorschau_neu"></div>';
    $result .= '</div>';

    $result .= '<br /><br />';

    $result .= '<div class="portrait_foto_upload">';
    $result .= '<label class="foto_upload_label">Bild ändern';
    $result .= '<input name="' . $name . '" type="file" id="' . $name . '" class="val_image_jpeg portrait_foto_input" accept=".jpg" />';
    $result .= '</label>';
    $result .= '<button class="btn btn-danger portrait_foto_clear" type="button" aria-label="Bild wieder entfernen"><i class="fa fa-trash" aria-hidden="true"></i></button>';
    $result .= '</div>';

    if ($fotoInArbeitExistiert) {
      $result .= '<div class="portrait_foto_in_bearbeitung_loeschen">';
      $result .= '<button type="button" class="btn btn-danger portrait_foto_in_bearbeitung_loeschen_button">Noch nicht bestätigtes Bild löschen</button>';
      $result .= '<button type="button" class="btn btn-danger portrait_foto_in_bearbeitung_doch_nicht_loeschen_button">Noch nicht bestätigtes Bild doch nicht löschen</button>';
      $result .= '<input type="hidden" class="portrait_foto_in_bearbeitung_loeschen_input" name="portrait_in_bearbeitung_loeschen" value="">';
      $result .= '</div>';
    }

    if ($datamodulWert->getImageLink('pfoto') != '') {
      $bildZurLoeschungVorgemerkt = ($datamodulWert->getVarValueEx('portrait_flag', $this->getDatamodulName()) & PORTRAIT_FLAG_BILD_LOESCHEN) == PORTRAIT_FLAG_BILD_LOESCHEN;

      $nochNichtBestaetigtesBildText = '';
      if ($fotoInArbeitExistiert) {
        $nochNichtBestaetigtesBildText = 'und noch nicht bestätigtes ';
      }

      $result .= '<div class="portrait_foto_loeschen">';
      $result .= '<button type="button" class="btn btn-danger portrait_foto_loeschen_button">Bestätigtes ' . $nochNichtBestaetigtesBildText . 'Bild löschen</button>';
      $result .= '<button type="button" class="btn btn-danger portrait_foto_doch_nicht_loeschen_button">Bild' . ($fotoInArbeitExistiert ? 'er' : '') . ' doch nicht löschen</button>';
      $result .= '<input type="hidden" class="portrait_foto_loeschen_input" name="portrait_loeschen" value="' . ($bildZurLoeschungVorgemerkt ? 'ja' : '') . '">';
      $result .= '</div>';
    }

    $result .= '</div>';

    return $result;
  }

  protected function encodeValue($value)
  {
    return $this->purifyHtml($value);
  }
}