/**
  * @Request({"order": "array"}, csrf=true)
  * @Response("json")
  */
 public function priorityAction($order)
 {
     foreach ($order as $id => $priority) {
         $role = $this->roles->find($id);
         if ($role) {
             $this->roles->save($role, compact('priority'));
         }
     }
     return $order;
 }
 /**
  * @Request({"id": "int"}, csrf=true)
  */
 public function deleteAction($id)
 {
     try {
         if (!($menu = $this->menus->find($id))) {
             throw new Exception(__('Invalid menu id'));
         }
         $this->menus->delete($menu);
         $this['db']->delete('@system_menu_item', ['menu_id' => $id]);
     } catch (Exception $e) {
         $this['message']->error($e->getMessage());
     }
     return $this->redirect('@system/menu');
 }
 /**
  * @Request({"ids": "int[]"}, csrf=true)
  */
 public function disableAction($ids = [])
 {
     foreach ($ids as $id) {
         if ($widget = $this->widgets->find($id) and $widget->getStatus()) {
             $this->widgets->save($widget, ['status' => Widget::STATUS_DISABLED]);
         }
     }
     return $this->redirect('@system/widgets');
 }
 /**
  * @Request({"ids": "int[]"}, csrf=true)
  */
 public function deleteAction($ids = [])
 {
     foreach ($ids as $id) {
         if ($alias = $this->aliases->find($id)) {
             $this->aliases->delete($alias);
         }
     }
     $this['message']->success(_c('{0} No alias deleted.|{1} Alias deleted.|]1,Inf[ Aliases deleted.', count($ids)));
     return $this->redirect('@system/alias');
 }
 /**
  * @Request({"status": "int", "ids": "int[]"}, csrf=true)
  * @Response("json")
  */
 public function statusAction($status, $ids = [])
 {
     foreach ($ids as $id) {
         if ($comment = $this->comments->find($id) and $comment->getStatus() != $status) {
             $previous = $comment->getStatus();
             $comment->setStatus($status);
             $this->comments->save($comment);
             $this['events']->dispatch('system.comment.spam_mark', new MarkSpamEvent($comment, $previous));
         }
     }
     return ['message' => _c('{0} No comment status updated.|{1} Comment status updated.|]1,Inf[ Comment statuses updated.', count($ids))];
 }
 /**
  * @Request({"status": "int", "ids": "int[]"}, csrf=true)
  * @Response("json")
  */
 public function statusAction($status, $ids = [])
 {
     foreach ($ids as $id) {
         if ($page = $this->pages->find($id) and $page->getStatus() != $status) {
             $page->setStatus($status);
             $this->pages->save($page);
         }
     }
     if ($status == Page::STATUS_PUBLISHED) {
         $message = _c('{0} No page published.|{1} Page published.|]1,Inf[ Pages published.', count($ids));
     } else {
         $message = _c('{0} No page unpublished.|{1} Page unpublished.|]1,Inf[ Pages unpublished.', count($ids));
     }
     return compact('message');
 }
 /**
  * @Request({"status": "int", "menu": "int", "id": "int[]"}, csrf=true)
  */
 public function statusAction($status, $menuId, $ids = [])
 {
     try {
         if (!($menu = $this->menus->find($menuId))) {
             throw new Exception(__('Invalid menu.'));
         }
         foreach ($ids as $id) {
             if ($item = $this->items->find($id) and $item->getStatus() != $status) {
                 $this->items->save($item, compact('status'));
             }
         }
         if ($status == Item::STATUS_ENABLED) {
             $message = _c('{0} No menu item enabled.|{1} Menu item enabled.|]1,Inf[ Menu items enabled.', count($ids));
         } else {
             $message = _c('{0} No menu item disabled.|{1} Menu item disabled.|]1,Inf[ Menu items disabled.', count($ids));
         }
         $this['message']->success($message);
     } catch (Exception $e) {
         $this['message']->error($e->getMessage());
     }
     return $this->redirect('@system/menu', ['id' => $menuId]);
 }