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




class AktuellesMobilePageContainer extends DefaultMobilePageContainer{
  public function __construct($pTitle){
    parent::__construct($pTitle, TOOL_MOB_AKTUELLES);
    $aktuellesPage = new AktuellesListeMobilePage();
    $aktuellesPage->body->content = $aktuellesPage->getNewsListeHtml();

    $this->navBarLinks = $this->getMobileToolLinks($aktuellesPage);   
    $this->addPage($aktuellesPage);
    
    $aktuellesPage->addHomeButtonToHeader();
    $aktuellesPage->addLogoutButtonToHeader();
    $aktuellesPage->addNavBarToHeader();

    $subPages = $aktuellesPage->getSubPages();
    foreach ($subPages as $subPage) {
      $this->addPage($subPage, false);
    }
  }
}

class AktuellesListeMobilePage extends DefaultMobilePage {
  public $dbwaktuelleswt;
  public $subPages;

  public function __construct(){
    parent::__construct(346, TOOL_MOB_AKTUELLES, 'Aktuelles');
    
    
    
    $this->dbwaktuelleswt = new DBWorkAktuellesWT();
    $this->fetchData();
    $this->subPages = array();
  }

  public function fetchData(){
    $this->data = $this->dbwaktuelleswt->getAktuelles4User();    
    
    usort($this->data, array('NewsTotalSight','sortAktMobile'));
   
    $this->dataCount = count($this->data);
  }

  public function getSubPages(){
    return $this->subPages;
  }

  
  public function generateSubPage($pId, $pNews){
    $subPage = new AktuellesEintragMobilePage($pId, $pNews);
    $body  = '<p>' . $pNews->inhalt . '</p>';
    $bearb = ToolsAPI::getCurrentStammObject($pNews->autor_id);
    $email = is_a($bearb, 'BASysBenutzer')? $bearb->email: $bearb->email->wert;      
    
    $body .= ' <p class="newsDetailsVon">von ';
    $body .= ($email)? '<a href="mailto:'.$email.'">'.$pNews->letzter_bearbeiter.'</a>': $pNews->letzter_bearbeiter;
    $body .= ' bearbeitet am ' . $pNews->getVarValue('letzte_bearbeitung_date') . ' um ' . $pNews->getVarValue('letzte_bearbeitung_time') . '</p>';

    if ($this->toolSettings->showbengrp) {
       $body .= '<div class="aktnew_gruppe">Benutzergruppe(n): '.AktuelleSight::_convertUserGroupToName($pNews->benutzergruppe).'</div>';
    }
    
    $subPage->body->content = $body;
    return $subPage;
  }

  function getNewsListeHtml(){
    $retour =  '<ul data-role="listview" data-filter="true">'."\n";
    if($this->dataCount > 0){
      foreach ($this->data as $news) {       
        $subPageId = count($this->subPages);
        $retour .= ' <li><a href="#news_' . $subPageId . '">'."\n";
        $retour .= '   <span class="newsTimeAuth">' .  $news->getVarValue('letzte_bearbeitung_date') . ', ' . $news->getVarValue('letzte_bearbeitung_time') . '</span><br>'."\n";
        $retour .= '   <span class="newsListTitle">' . $news->titel . '</span><br>'."\n";
        $inhalt  = StringOperations::trimToLastSpace(StringOperations::html2Txt($news->inhalt), 50);
        $inhalt .= StringOperations::strlen($news->inhalt) > 50 ? '...' : '';
        $retour .= '   <span class="newsListInhalt">' . $inhalt . '</span>'."\n";
        $retour .= ' </a></li>'."\n";
        $this->subPages[] = $this->generateSubPage('news_'.$subPageId, $news);
      }
    } else {
      $retour .= ' <li>'."\n";
      $retour .= '   <span class="listeKeineDaten">keine Nachrichten vorhanden</span>'."\n";
      $retour .= ' </li>'."\n";
    }
    $retour .= '</ul>'."\n";
    return $retour;
  }

}

class AktuellesEintragMobilePage extends DefaultMobilePage {
  public function __construct($pId, $news){
    parent::__construct($pId, TOOL_MOB_AKTUELLES, $news->titel);
  }
}

?>