Example #1
0
 /**
  * Save map
  * 
  * @return \Illuminate\Http\JsonResponse
  */
 public function save()
 {
     $input = \Input::except('_token');
     // Validate map content
     if (empty($input['id'])) {
         // Pre validate
         $input['seo_slug'] = empty($input['seo_slug']) ? str_slug($input['title']) : $input['seo_slug'];
         // Create validator
         $validator = \Validator::make($input, ['title' => 'required|max:255', 'seo_slug' => 'unique:contents' . (!empty($input['id']) ? ',seo_slug,' . $input['id'] : '')]);
         // When validation fails
         if ($validator->fails()) {
             return response()->json(['errors' => $validator->messages()]);
         }
     }
     // Load content
     if (empty($input['id'])) {
         $content = new Content();
         $content->user_id = \Auth::user()->id;
         $content->fill($input);
         $content->save();
         $map = new Map();
         $map->user_id = \Auth::user()->id;
         $map->content()->associate($content);
     } else {
         $map = Map::find($input['id']);
     }
     // Save changes
     $input['center'] = implode(' ', $input['center']);
     $map->fill($input);
     $map->save();
     // Response
     if (isset($input['close'])) {
         return response()->json(['success' => 'Map saved', 'redirect' => url('/admin/maps/list')]);
     } else {
         return response()->json(['success' => 'Map saved', 'redirect' => url('/admin/maps/form/' . $map->id)]);
     }
 }