/** * @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; }
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')); }
/** * @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; }