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