/** * {@inheritdoc} */ public function renderJson($data, $status = 200, $headers = array()) { $response = parent::renderJson($data, $status, $headers); $data = json_decode($response->getContent(), true); if (!array_key_exists('message', $data)) { //getFlashBag()->get('notice' if ($message = $this->get('session')->getFlashBag()->get('sonata_flash_success')) { $data['is_new_menu_item'] = $this->isNewMenuItem; $data['status'] = 'success'; } elseif ($message = $this->get('session')->getFlashBag()->get('sonata_flash_error')) { $data['status'] = 'error'; } elseif ($data['result'] == 'ok') { $this->getRequest()->request->all(); $message = 'flash_' . str_replace('Action', '', $this->getCaller()) . '_success'; $data['is_new_menu_item'] = $this->isNewMenuItem; if ($this->isNewMenuItem) { $data['html'] = $this->placementAction(); } $data['status'] = 'success'; } else { $this->getRequest()->request->all(); $message = 'flash_' . str_replace('Action', '', $this->getCaller()) . '_error'; $data['status'] = 'error'; } if ($message) { $data['message'] = $this->admin->trans($message); } } if (!array_key_exists('html', $data)) { $data['html'] = $this->listAction($this->get('session')->get('admin/last_page_id')); } if ($response instanceof JsonResponse) { $response->setData($data); } else { $response->setContent(json_encode($data)); } return $response; }