/** * 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]); }
public function LayerEsriHapus($id) { $layer = Layer::find($id); $layer->jsonfield = null; $layer->save(); return redirect('layer'); }
/** * Run the database seeds. * * @return void */ public function run() { // Copy distributable storage folder if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { shell_exec('xcopy /H /E /Y ' . public_path('storage.dist') . ' ' . public_path('storage')); } else { shell_exec('cp -R ' . public_path('storage.dist') . ' ' . public_path('storage')); } Model::unguard(); // $this->call(UserTableSeeder::class); if (!DB::table('users')->count()) { User::create(['name' => 'Admin', 'email' => '*****@*****.**', 'password' => Hash::make('admin'), 'twitter_id' => '', 'facebook_id' => '', 'gplus_id' => '', 'avatar' => '']); } if (!DB::table('roles')->count()) { Role::create(['name' => 'Admin', 'content_permission' => 'NONE']); Role::create(['name' => 'Backoffice User', 'content_permission' => 'ROLE']); Role::create(['name' => 'Registered', 'content_permission' => 'NONE']); } if (!DB::table('role_user')->count()) { DB::table('role_user')->insert([['role_id' => 1, 'user_id' => 1]]); } if (!DB::table('permissions')->count()) { Permission::create(['label' => 'Backoffice', 'http' => 'GET', 'route' => 'admin']); Permission::create(['label' => 'Pages List', 'http' => 'GET', 'route' => 'admin/pages/list']); Permission::create(['label' => 'Users List', 'http' => 'GET', 'route' => 'admin/users/list']); Permission::create(['label' => 'Roles List', 'http' => 'GET', 'route' => 'admin/roles/list']); Permission::create(['label' => 'Permissions List', 'http' => 'GET', 'route' => 'admin/permissions/list']); Permission::create(['label' => 'Site Brand', 'http' => 'GET', 'route' => 'admin/brands/list']); Permission::create(['label' => 'Delete Content', 'http' => 'GET', 'route' => 'admin/contents/delete']); Permission::create(['label' => 'Change Content Ownership', 'http' => 'GET', 'route' => 'admin/contents/ownership']); } if (!DB::table('permission_role')->count()) { DB::table('permission_role')->insert([['role_id' => 3, 'permission_id' => 1, 'access' => 'DENY'], ['role_id' => 2, 'permission_id' => 2, 'access' => 'DENY'], ['role_id' => 2, 'permission_id' => 3, 'access' => 'DENY'], ['role_id' => 2, 'permission_id' => 4, 'access' => 'DENY'], ['role_id' => 2, 'permission_id' => 5, 'access' => 'DENY'], ['role_id' => 2, 'permission_id' => 6, 'access' => 'DENY'], ['role_id' => 2, 'permission_id' => 7, 'access' => 'DENY'], ['role_id' => 2, 'permission_id' => 8, 'access' => 'DENY']]); } if (!DB::table('brands')->count()) { Brand::create(['name' => 'Brand', 'slogan' => 'Brand slogan...', 'description' => 'Brand description', 'keywords' => 'keyword', 'author' => 'author', 'logo' => 'picture.png', 'active' => 1, 'css' => '', 'config' => '']); } if (!DB::table('contents')->count()) { Content::create(['user_id' => 1, 'lang' => 'en', 'title' => 'Demo', 'seo_slug' => 'demo', 'seo_title' => 'Demo', 'seo_description' => 'Demo', 'seo_keywords' => 'demo', 'seo_author' => 'admin', 'seo_image' => 'picture.png', 'content' => '<p>Content...<br></p>', 'publish_start' => '2015-07-01', 'role_permission' => 'NONE']); } if (!DB::table('events')->count()) { Event::create(['content_id' => 1, 'start' => '2015-07-1', 'end' => '2015-07-2']); } if (!DB::table('locations')->count()) { Location::create(['content_id' => 1, 'address' => 'Lisbon, Portugal', 'lat' => '38.7222524', 'lon' => '-9.139336599999979', 'zoom' => 5]); } if (!DB::table('pages')->count()) { Page::create(['name' => 'demo_notfound', 'route' => 'page/notfound', 'active' => 1]); Page::create(['name' => 'demo_home', 'route' => 'demo/home', 'active' => 1]); Page::create(['name' => 'demo_content', 'route' => '{slug}', 'active' => 1]); Page::create(['name' => 'demo_events', 'route' => 'demo/events', 'active' => 1]); Page::create(['name' => 'demo_map', 'route' => 'demo/map', 'active' => 1]); Page::create(['name' => 'demo_webgis', 'route' => '/', 'active' => 1]); } if (!DB::table('projections')->count()) { Projection::create(['srid' => '3857', 'proj4_params' => '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs', 'extent' => '-20026376.39 -20048966.10 20026376.39 20048966.10']); } if (!DB::table('layers')->count()) { $content = new Content(); $content->user_id = 1; $content->lang = 'en'; $content->title = 'Open Street Map'; $content->seo_slug = 'open-street-map'; $content->role_permission = 'NONE'; $content->save(); Layer::create(['user_id' => 1, 'content_id' => $content->id, 'projection_id' => 3857, 'type' => 'osm']); $content = new Content(); $content->user_id = 1; $content->lang = 'en'; $content->title = 'Markers'; $content->seo_slug = 'markers'; $content->role_permission = 'NONE'; $content->save(); Layer::create(['user_id' => 1, 'content_id' => $content->id, 'projection_id' => 3857, 'type' => 'geojson', 'geojson_geomtype' => 'Point', 'geojson_attributes' => 'label', 'geojson_features' => '{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-851576.57182518,4456806.642252369]},"properties":{"label":"Tavira"}}],"crs":{"type":"name","properties":{"name":"EPSG:3857"}}}', 'feature_info_template' => '<p>{{ item.label }}</p>', 'search' => 'label', 'ol_style_static_icon' => 'ol_style_static_icon.png', 'ol_style_static_fill_color' => '', 'ol_style_static_stroke_color' => '', 'ol_style_static_stroke_width' => '']); Layer::find(2)->saveGeoJSONFile(); } if (!DB::table('maps')->count()) { $content = new Content(); $content->user_id = 1; $content->lang = 'en'; $content->title = 'Map1'; $content->seo_slug = 'map1'; $content->role_permission = 'NONE'; $content->publish_start = '2015-07-01'; $content->save(); Map::create(['user_id' => 1, 'content_id' => $content->id, 'projection_id' => 3857, 'center' => '0 0', 'zoom' => 2]); // Add OSM layer $mapitem = new Layeritem(); $mapitem->map_id = 1; $mapitem->layer_id = 1; $mapitem->parent_id = 0; $mapitem->visible = 1; $mapitem->baselayer = 1; $mapitem->displayorder = 1; $mapitem->save(); // Add markers layer $mapitem = new Layeritem(); $mapitem->map_id = 1; $mapitem->layer_id = 2; $mapitem->parent_id = 0; $mapitem->visible = 1; $mapitem->baselayer = 0; $mapitem->displayorder = 1; $mapitem->save(); } Model::reguard(); }