| @@ 123-157 (lines=35) @@ | ||
| 120 | * @param Request $request |
|
| 121 | * @return array|RedirectResponse |
|
| 122 | */ |
|
| 123 | public function createAction(Request $request) |
|
| 124 | { |
|
| 125 | $admin = $this->getAdminFromRequest($request); |
|
| 126 | $admin->handleRequest($request, $this->getUser()); |
|
| 127 | ||
| 128 | // check permissions |
|
| 129 | $this->forward404IfNotAllowed($admin); |
|
| 130 | ||
| 131 | // create form |
|
| 132 | $form = $this->createForm($admin->getConfiguration()->getParameter('form'), $admin->create()); |
|
| 133 | $form->handleRequest($request); |
|
| 134 | ||
| 135 | if ($form->isValid()) { |
|
| 136 | // save entity |
|
| 137 | $success = $admin->save(); |
|
| 138 | ||
| 139 | if ($success) { |
|
| 140 | // if save is pressed, user stay on the edit view |
|
| 141 | if ($request->request->get('submit') == 'save') { |
|
| 142 | $editRoute = $admin->generateRouteName('edit'); |
|
| 143 | ||
| 144 | return $this->redirectToRoute($editRoute, [ |
|
| 145 | 'id' => $admin->getUniqueEntity()->getId(), |
|
| 146 | ]); |
|
| 147 | } else { |
|
| 148 | // otherwise user is redirected to list view |
|
| 149 | $listRoute = $admin->generateRouteName('list'); |
|
| 150 | ||
| 151 | return $this->redirectToRoute($listRoute); |
|
| 152 | } |
|
| 153 | } |
|
| 154 | } |
|
| 155 | return [ |
|
| 156 | 'admin' => $admin, |
|
| 157 | 'form' => $form->createView(), |
|
| 158 | ]; |
|
| 159 | } |
|
| 160 | ||
| @@ 170-201 (lines=32) @@ | ||
| 167 | * |
|
| 168 | * @return array|RedirectResponse |
|
| 169 | */ |
|
| 170 | public function editAction(Request $request) |
|
| 171 | { |
|
| 172 | $admin = $this->getAdminFromRequest($request); |
|
| 173 | $admin->handleRequest($request, $this->getUser()); |
|
| 174 | // check permissions |
|
| 175 | $this->forward404IfNotAllowed($admin); |
|
| 176 | // create form |
|
| 177 | $form = $this->createForm($admin->getConfiguration()->getParameter('form'), $admin->getUniqueEntity()); |
|
| 178 | $form->handleRequest($request); |
|
| 179 | $accessor = PropertyAccess::createPropertyAccessor(); |
|
| 180 | ||
| 181 | if ($form->isValid()) { |
|
| 182 | $admin->save(); |
|
| 183 | ||
| 184 | if ($request->request->get('submit') == 'save') { |
|
| 185 | $saveRoute = $admin->generateRouteName('edit'); |
|
| 186 | ||
| 187 | return $this->redirectToRoute($saveRoute, [ |
|
| 188 | 'id' => $accessor->getValue($admin->getUniqueEntity(), 'id'), |
|
| 189 | ]); |
|
| 190 | } else { |
|
| 191 | $listRoute = $admin->generateRouteName('list'); |
|
| 192 | // redirect to list |
|
| 193 | return $this->redirectToRoute($listRoute); |
|
| 194 | } |
|
| 195 | } |
|
| 196 | ||
| 197 | return [ |
|
| 198 | 'admin' => $admin, |
|
| 199 | 'form' => $form->createView(), |
|
| 200 | ]; |
|
| 201 | } |
|
| 202 | ||
| 203 | /** |
|
| 204 | * Generic delete action. |
|