public function postContent(Request $request) { $content = new Content(); $content->user_id = \Auth::user()->id; $content->slug = $request->input('title'); $content->fill($request->all()); $content->save(); $template = Template::find($request->input('template_id')); // make directory for content $contentDir = base_path() . $this->contentDir; if (!\File::exists($contentDir)) { \File::makeDirectory($contentDir, 755); } $contentDir = $contentDir . $content->id; \File::makeDirectory($contentDir, 755); $templateDir = base_path() . $this->templateDir . $template->slug; \File::copyDirectory($templateDir, $contentDir); return response()->json($content->id, 200); }
/** * 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)]); } }
/** * Save map * * @return \Illuminate\Http\JsonResponse */ public function save() { $input = \Input::except('_token'); $rules = []; // Validate map content if (empty($input['id'])) { // Pre validate $input['seo_slug'] = empty($input['seo_slug']) ? str_slug($input['title']) : $input['seo_slug']; // Validate required params $rules = ['title' => 'required|max:255', 'seo_slug' => 'unique:contents' . (!empty($input['id']) ? ',seo_slug,' . $input['id'] : '')]; } // Validate required params switch ($input['type']) { case 'bing': $rules['bing_key'] = 'required'; break; case 'wms': $rules['wms_url'] = 'required'; $rules['wms_layers'] = 'required'; break; case 'wfs': $rules['wfs_url'] = 'required'; $rules['wfs_typename'] = 'required'; break; case 'gpx': if (empty($input['id'])) { $rules['gpx_filename_0'] = 'required'; } break; case 'kml': if (empty($input['id'])) { $rules['kml_filename_0'] = 'required'; } break; case 'postgis': $rules['postgis_host'] = 'required'; $rules['postgis_port'] = 'required'; $rules['postgis_user'] = '******'; $rules['postgis_schema'] = 'required'; $rules['postgis_table'] = 'required'; $rules['postgis_field'] = 'required'; $input['postgis_attributes'] = empty($input['postgis_attributes']) ? '*' : $input['postgis_attributes']; break; case 'geojson': $rules['geojson_attributes'] = 'required'; break; case 'shapefile': if (empty($input['id'])) { $rules['shapefile_filename_0'] = 'required'; } break; case 'group': default: } // When validation fails $validator = \Validator::make($input, $rules); if ($validator->fails()) { return response()->json(['errors' => $validator->messages()]); } // Load layer if (empty($input['id'])) { $content = new Content(); $content->user_id = \Auth::user()->id; $content->fill($input); $content->save(); $layer = new Layer(); $layer->user_id = \Auth::user()->id; $layer->content()->associate($content); } else { $layer = Layer::find($input['id']); } // Validate permission if (!$layer->isUserAllowed(\Auth::user())) { return response('', 401)->json(['success' => false]); } // Save changes $layer->fill($input); $layer->save(); // Process files $layer->saveStyleIcon(\Request::file('ol_style_static_icon_0')); $layer->saveGPXFile(\Request::file('gpx_filename_0')); $layer->saveKMLFile(\Request::file('kml_filename_0')); $layer->saveShapeFile(\Request::file('shapefile_filename_0')); if ($layer->type === 'postgis') { try { $layer->savePostgisFile(); } catch (\PDOException $e) { return response()->json(['errors' => ['postgis_error' => [$e->getMessage()]]]); } catch (\Exception $e) { return response()->json(['errors' => ['postgis_error' => [$e->getMessage()]]]); } } if ($layer->type === 'geojson') { $layer->saveGeoJSONFile(); } // Response with redirect $redirect = url('/admin/layers/list'); if (!isset($input['close'])) { $redirect = url('/admin/layers/form/' . $layer->id); if (empty($input['id'])) { $redirect .= '#features'; } } return response()->json(['success' => 'Layer saved', 'redirect' => $redirect]); }