{"{$postTask}PostTask"}($args); } $userAcl = User::getAcl(); $listObjects = $userAcl->getTablesAcl(); $listUrls = $userAcl->getUrls(); // DBG::log($listUrls, 'array', "\$listUrls"); $bookmarks = UserBookmarks::getInstance()->getBookmarks(); return [ 'type' => 'success', 'msg' => "OK", 'body' => [ 'objects' => array_map(function ($acl, $idZasob) { if (!$acl) return [ 'id' => $idZasob, 'TODO' => 'TODO' ]; return [ 'id' => $acl->getID(), 'namespace' => $acl->getNamespace(), 'name' => $acl->getName(), 'label' => $acl->getLongLabel(), 'raw_label' => strtolower($acl->getLongRawLabel()), ]; }, array_values($listObjects), array_keys($listObjects)), 'urls' => array_map(function ($label, $idZasob) { return [ 'id' => $idZasob, 'label' => (mb_strlen($label, 'utf-8') > 100) ? mb_substr($label, 0, 100, 'utf-8') . '...' : $label, 'raw_label' => $label, ]; }, array_values($listUrls), array_keys($listUrls)), 'bookmarks' => // array_filter( array_map(function ($cls, $idZasob) use ($listObjects, $listUrls) { if (array_key_exists($idZasob, $listObjects)) { $acl = $listObjects[$idZasob]; return [ 'id' => $idZasob, 'namespace' => $acl->getNamespace(), 'name' => $acl->getName(), 'label' => $acl->getRawLabel(), 'opis' => $acl->getOpis(), 'type' => 'menu', 'class' => $cls ]; } else if (array_key_exists($idZasob, $listUrls)) { return [ 'id' => $idZasob, 'name' => $listUrls[$idZasob], 'type' => 'url', 'class' => $cls ]; } return null; }, array_values($bookmarks), array_keys($bookmarks)), // , function ($bookmark) { return null !== $bookmark; }), 'idsBookmarks' => array_keys($bookmarks), ] ]; } public function addBookmarkPostTask($args) { $zasobID = V::get('_zasobID', 0, $args, 'int'); if ($zasobID <= 0) throw new Exception('Missing _zasobID'); UserBookmarks::getInstance()->addBookmark($zasobID); User::saveProfile(); } public function removeBookmarkPostTask($args) { $zasobID = V::get('_zasobID', 0, $args, 'int'); if ($zasobID <= 0) throw new Exception('Missing _zasobID'); UserBookmarks::getInstance()->removeBookmark($zasobID); User::saveProfile(); $this->getMenuData(); } public function changeBookmarkPostTask($args) { $zasobID = V::get('_zasobID', 0, $args, 'int'); if ($zasobID <= 0) throw new Exception('Missing _zasobID'); $btnCls = V::get('btnCls', '', $args); if (empty($btnCls)) { die('Error: no button class'); } UserBookmarks::getInstance()->changeBookmark($zasobID, $btnCls); User::saveProfile(); } public function sortBookmarksPostTask($args) { $idsOrdered = V::get('ids', array(), $args, 'array', array('V', 'filterPositiveInteger')); if (empty($idsOrdered)) throw new Exception('Missing ids'); UserBookmarks::getInstance()->sortBookmarks($idsOrdered); User::saveProfile(); } }