/**
  * @param null|array $Environment
  *
  * @return Stage
  */
 public function frontendArchive($Environment = null)
 {
     $Stage = new Stage('Archivierung');
     $Archive = false;
     if ($Environment) {
         if ($Environment['Consumer']) {
             $tblConsumer = Consumer::useService()->getConsumerById($Environment['Consumer']);
             $Archive = Archive::useService()->getArchiveAllByConsumer($tblConsumer);
         } else {
             $Archive = Archive::useService()->getArchiveAll();
         }
     }
     if ($Archive) {
         array_walk($Archive, function (TblArchive &$Element) {
             $Entry = array(new Layout(new LayoutGroup(new LayoutRow(array(new LayoutColumn(new Muted('Eintrag:'), 3), new LayoutColumn($Element->getId(), 9))))), new Layout(new LayoutGroup(new LayoutRow(array(new LayoutColumn(new Muted('Mandant:'), 3), new LayoutColumn($Element->getConsumerAcronym() . ' ' . $Element->getConsumerName(), 9))))), new Layout(new LayoutGroup(new LayoutRow(array(new LayoutColumn(new Muted('Datenbank:'), 3), new LayoutColumn($Element->getArchiveDatabase(), 9))))), new Layout(new LayoutGroup(new LayoutRow(array(new LayoutColumn(new Muted('Zeitpunkt:'), 3), new LayoutColumn(date('d.m.Y H:i:s ', $Element->getArchiveTimestamp()), 9))))));
             /** @var TblArchive $Element */
             $Element = Archive::useService()->fixArchive($Element);
             switch ($Element->getArchiveType()) {
                 case TblArchive::ARCHIVE_TYPE_CREATE:
                     $Entry[] = new Layout(new LayoutGroup(new LayoutRow(array(new LayoutColumn(new Muted('Typ:'), 3), new LayoutColumn('Create', 9)))));
                     break;
                 case TblArchive::ARCHIVE_TYPE_UPDATE:
                     $Entry[] = new Layout(new LayoutGroup(new LayoutRow(array(new LayoutColumn(new Muted('Typ:'), 3), new LayoutColumn('Update', 9)))));
                     break;
                 default:
                     $Entry[] = new Layout(new LayoutGroup(new LayoutRow(array(new LayoutColumn(new Muted('Typ:'), 3), new LayoutColumn('-NA-', 9)))));
                     break;
             }
             $Element->Entry = new Listing($Entry);
             $Element->Payload = $this->prepareOutput(unserialize($Element->Entity));
         });
     } else {
         $Archive = array();
     }
     $Stage->setContent('<style>.list-group{ margin-bottom: 0; } .list-group .list-group-item{ padding: 2px 3px }</style>' . new Layout(array(new LayoutGroup(array(new LayoutRow(new LayoutColumn($this->formArchive()->appendFormButton(new Primary('Filtern', new Search()))))), new Title('Archiv', 'Filter')), new LayoutGroup(array(new LayoutRow(new LayoutColumn('
                         <div class="form-group">
                             <label>Volltextsuche</label>
                             <div class="input-group">
                                 <span class="input-group-addon">' . new Search() . '</span>
                                 <textarea name="GlobalSearch" class="form-control" rows="2"></textarea>
                             </div>
                         </div>
                         ' . '<script>
                             Client.Use("ModTable", function()
                             {
                                 var Search = jQuery(\'input[type="search"]\');
                                 Search.parent().hide();
                                 var GlobalSearch = jQuery(\'textarea[name="GlobalSearch"]\').on("keyup",function(){
                                     Search.val( jQuery(this).val() ).trigger("keyup");
                                 });
                             });
                         </script>')), new LayoutRow(new LayoutColumn(new TableData($Archive, null, array('Entry' => 'Eintrag', 'Payload' => 'Daten'), array("autoWidth" => true, "order" => array(array(0, 'desc')), "stateSave" => false))))), new Title('Filter', 'Ergebnis')))));
     return $Stage;
 }
Beispiel #2
0
 public static function registerApplication()
 {
     /**
      * Register Module
      */
     Protocol::registerModule();
     Database::registerModule();
     Cache::registerModule();
     Archive::registerModule();
     Test::registerModule();
     /**
      * Register Navigation
      */
     Main::getDisplay()->addApplicationNavigation(new Link(new Link\Route(__NAMESPACE__), new Link\Name('System'), new Link\Icon(new Cog())));
     Main::getDispatcher()->registerRoute(Main::getDispatcher()->createRoute(__NAMESPACE__, __CLASS__ . '::frontendDashboard'));
 }
Beispiel #3
0
 /**
  * @param string  $DatabaseName
  * @param Element $From
  * @param Element $To
  *
  * @return false|TblProtocol
  */
 public function createUpdateEntry($DatabaseName, Element $From, Element $To)
 {
     $tblAccount = Account::useService()->getAccountBySession();
     if ($tblAccount) {
         $tblConsumer = $tblAccount->getServiceTblConsumer();
     } else {
         $tblConsumer = null;
     }
     if ($Protocol = (new Data($this->Binding))->createProtocolEntry($DatabaseName, $tblAccount ? $tblAccount : null, $tblConsumer ? $tblConsumer : null, $From, $To)) {
         Archive::useService()->createArchiveEntry($DatabaseName, $tblAccount ? $tblAccount : null, $tblConsumer ? $tblConsumer : null, $To, TblArchive::ARCHIVE_TYPE_UPDATE);
     }
     return $Protocol;
 }