예제 #1
0
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function boot(Router $router)
 {
     $router->model('pieces', 'App\\Piece');
     $router->bind('studios', function ($slug) {
         return Studio::where('slug', $slug)->firstOrFail();
     });
     $router->model('events', 'App\\Event');
     parent::boot($router);
 }
예제 #2
0
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function boot(Router $router)
 {
     $router->pattern('artist', '[0-9]+');
     $router->pattern('studio', '[-\\w]+');
     $router->pattern('event', '[0-9]+');
     $router->pattern('piece', '[0-9]+');
     $router->pattern('photo', '[0-9]+');
     parent::boot($router);
     $router->model('artist', 'App\\Artist');
     $router->model('piece', 'App\\Piece');
     $router->model('photo', 'App\\Photo');
     $router->bind('studio', function ($slug) {
         return Studio::where('slug', $slug)->firstOrFail();
     });
     $router->model('event', 'App\\Event');
 }
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function boot(Router $router)
 {
     //
     parent::boot($router);
     $router->model('studios', 'App\\Studio');
     $router->model('events', 'App\\Event');
     $router->model('pieces', 'App\\Piece');
     $router->model('categories', 'App\\Category');
     $router->model('orders', 'App\\Order');
     $router->model('parties', 'App\\PartyRequest');
     $router->bind('studioSlug', function ($value) {
         return \App\Studio::where('slug', $value)->first();
     });
     $router->bind('pieceSlug', function ($value) {
         return \App\Piece::where('slug', $value)->first();
     });
 }
예제 #4
0
 /**
  * Remove the specified tattoo from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function deleteTattoo(Request $request)
 {
     if (!$request->ajax()) {
         dd("NO ASYNC REQUEST");
     }
     $res = array();
     $res['success'] = false;
     $tattooId = $request->input('tattoo');
     $tattoo = Tattoo::find($tattooId);
     $user = Auth::user();
     if ($tattoo) {
         if ($tattoo->user_id == $user->id) {
             $tattoo->delete();
             $res['success'] = true;
         } elseif ($user->type == 'artist') {
             $artist = Artist::where('user_id', $user->id)->first();
             $artist->tattoos()->detach($tattooId);
             $res['success'] = true;
         } elseif ($user->type == 'studio') {
             $studio = Studio::where('user_id', $user->id)->first();
             $studio->tattoos()->detach($tattooId);
             $res['success'] = true;
         }
     }
     return $res;
 }
예제 #5
0
 /**
  * save studio about details
  *
  * @return View
  */
 public function aboutSave(Request $request)
 {
     //dd($request);
     $user = Auth::user();
     $studio = Studio::where('user_id', $user->id)->first();
     $studio->bio = $request->input('about');
     $studio->established = $request->input('established');
     $studio->headlines = $request->input('headlines');
     $studio->bio = $request->input('bio');
     $studio->working_hours_start = $request->input('working_hour_start');
     $studio->working_hours_end = $request->input('working_hour_end');
     $studio->how_maintain_hygiene = $request->input('how_maintain_hygiene');
     $studio->no_of_artists = $request->input('no_of_artists');
     $studio->other_info = $request->input('other_info');
     $studio->website = $request->input('website');
     $studio->save();
     return redirect('studio/' . $studio->user->slug . '#edit');
 }
예제 #6
0
 /**
  * Display User Profile Page
  *
  * @return View
  */
 public function profile()
 {
     $user = Auth::user();
     //if not an image url from facebook
     if (filter_var($user->avatar, FILTER_VALIDATE_URL) === FALSE) {
         $user->avatar = url('uploads/images/thumbnail/' . $user->avatar);
     }
     if (!$user->verified) {
         session()->flash('warning', 'Please verify your email address!!');
     }
     //if user is artist, load artist profile view
     if ($user->type == 'artist') {
         $artist = Artist::where('user_id', $user->id)->first();
         $artist->cover = url('uploads/images/large/' . $artist->cover);
         if (filter_var($artist->user->avatar, FILTER_VALIDATE_URL) === FALSE) {
             $artist->user->avatar = url('uploads/images/thumbnail/' . $artist->user->avatar);
         }
         $isArtistProfile = true;
         return view('pages.artist', ['user' => $user, 'artist' => $artist, 'isArtistProfile' => $isArtistProfile]);
     } elseif ($user->type == 'studio') {
         $studio = Studio::where('user_id', $user->id)->first();
         $studio->cover = url('uploads/images/large/' . $studio->cover);
         return view('pages.studio', ['user' => $user, 'studio' => $studio]);
     } elseif ($user->type == 'member') {
         $member = Member::where('user_id', $user->id)->first();
         return view('pages.member', ['user' => $user, 'member' => $member]);
     } else {
         return redirect('complete-profile')->flash('success', 'Welcome. Please complete your profile..');
     }
     return redirect('/');
 }
 /**
  * Display the complete profile form
  *
  * @return View
  */
 public function completeProfileArtistSave(Request $request)
 {
     $user = Auth::user();
     $user->contact = $request->input('contact');
     $user->city = $request->input('city');
     $user->country = $request->input('country');
     if ($request->hasFile('avatar')) {
         //upload an image to the /img/tmp directory and return the filepath.
         $file = $request->file('avatar');
         $tmpFilePath = '/uploads/images/original/';
         $tmpFileName = 'profile-' . time() . '-' . $file->getClientOriginalName();
         //save original file
         $file = $file->move(public_path() . $tmpFilePath, $tmpFileName);
         $path = $tmpFilePath . $tmpFileName;
         //edit image
         $img = \Image::make($file);
         $img->backup();
         //$img->fit(1200, 480);
         //$img->save('uploads/images/large/'.$tmpFileName);
         // reset image (return to backup state)
         $img->reset();
         $img->fit(360);
         //240*240
         $img->save('uploads/images/thumbnail/' . $tmpFileName);
         // reset image (return to backup state)
         $img->reset();
         $img->fit(120);
         //100*100
         $img->save('uploads/images/small/' . $tmpFileName);
         //save image to DB
         $user->avatar = $tmpFileName;
     }
     $user->type = 'artist';
     $user->save();
     //if artist already creates, then update
     if (Artist::where('user_id', $user->id)->count()) {
         $artist = Artist::where('user_id', $user->id)->first();
         $artist->experience = $request->input('experience');
         $artist->save();
     } else {
         //create new artist
         $artist = new Artist();
         $artist->user_id = $user->id;
         $artist->experience = $request->input('experience');
         $artist->save();
     }
     if ($request->hasFile('cover')) {
         //upload an image to the /img/tmp directory and return the filepath.
         $file = $request->file('cover');
         $tmpFilePath = '/uploads/images/original/';
         $tmpFileName = 'cover-' . time() . '-' . $file->getClientOriginalName();
         //save original file
         $file = $file->move(public_path() . $tmpFilePath, $tmpFileName);
         $path = $tmpFilePath . $tmpFileName;
         //edit image
         $img = \Image::make($file);
         $img->backup();
         $img->fit(1200, 480);
         $img->save('uploads/images/large/' . $tmpFileName);
         // reset image (return to backup state)
         $img->reset();
         $img->fit(360, 144);
         //360*144
         $img->save('uploads/images/thumbnail/' . $tmpFileName);
         //save image to DB
         $artist->cover = $tmpFileName;
         $artist->save();
     }
     //save studio
     if (!$request->input('studio')) {
         $this->validate($request, ['studioName' => 'required|max:255', 'studioContact' => 'required|max:22|min:10', 'studioCity' => 'required', 'studioCountry' => 'required', 'studioLat' => 'required', 'studioLong' => 'required']);
         $studio = new Studio();
         $studio->name = $request->input('studioName');
         $studio->contact = $request->input('studioContact');
         $studio->city = $request->input('studioCity');
         $studio->latitude = $request->input('studioLat');
         $studio->longitude = $request->input('studioLong');
         $studio->country = $request->input('studioCountry');
         $studio->save();
         $artist->studios()->attach($studio->id);
         $artist->save();
         $user->profileComplete = true;
         $user->save();
     } else {
         if (Studio::where('id', $request->input('studio'))->count()) {
             $artist->studios()->attach($request->input('studio'));
             $user->profileComplete = true;
             $user->save();
         }
     }
     if (!$user->social) {
         $user->avatar = url('uploads/images/small/' . $user->avatar);
     }
     $artist->cover = url('uploads/images/large/' . $artist->cover);
     return redirect('complete-profile-artist');
 }
예제 #8
0
 /**
  * Change Account Basic details
  *
  * @param  Request  $request
  * @return Response
  */
 public function changeProfile(Request $request)
 {
     $this->validate($request, ['current_password' => 'required|min:6']);
     $user = Auth::user();
     if ($user->type == 'studio') {
         $this->validate($request, ['name' => 'required']);
     } else {
         $this->validate($request, ['firstname' => 'required']);
     }
     if ($user->email != $request->input('email')) {
         $this->validate($request, ['email' => 'required|email|max:255|unique:users']);
     }
     if ($user->contact != $request->input('contact')) {
         $this->validate($request, ['contact' => 'required|digits:10']);
     }
     if (Hash::check($request->input('current_password'), $user->password)) {
         if ($user->type == 'artist') {
             $artist = Artist::where('user_id', $user->id)->first();
             $artist->firstname = $request->input('firstname');
             $artist->lastname = '';
             $artist->save();
             $user->name = $request->input('firstname');
         } elseif ($user->type == 'member') {
             $member = Member::where('user_id', $user->id)->first();
             $member->firstname = $request->input('firstname');
             $member->lastname = '';
             $member->save();
             $user->name = $request->input('firstname');
         } elseif ($user->type == 'studio') {
             $studio = Studio::where('user_id', $user->id)->first();
             $studio->title = '';
             $studio->name = $request->input('name');
             $studio->save();
             $user->name = $request->input('name');
         }
         $user->email = $request->input('email');
         $user->contact = $request->input('contact');
         $user->save();
         return redirect('profile#edit')->with('success', 'Profile changed successfully!');
     }
     return redirect('profile#edit')->with('warning', 'Wrong Password!');
 }
예제 #9
0
 /**
  * reate a artist studio
  *
  * @return View
  */
 public function createStudio(Request $request)
 {
     //dd($request);
     $user = Auth::user();
     $artist = Artist::where('user_id', $user->id)->first();
     if (Studio::where('user_id', $user->id)->first()) {
         return redirect('profile#studios')->with('error', 'Multiple Studios are not allowed.');
     }
     $studio = new Studio();
     $studio->user_id = $user->id;
     $studio->name = $request->input('name');
     $studio->title = '';
     if ($studio->save()) {
         $artist->studios()->attach($studio->id);
         session()->flash('success', 'Studio Created. Now Complete studio\'s profile.');
         $data['name'] = $studio->name;
         $data['type'] = 'studio';
         $data['contact'] = $user->contact;
         $data['email'] = $user->email;
         Mail::send('emails.admin_notification_signup', $data, function ($message) use($data) {
             $message->from('*****@*****.**', "Tattoo Cultr");
             $message->subject("New Studio Signup");
             $message->to(env('ADMIN_EMAIL'));
         });
     } else {
         session()->flash('error', 'Error! Please try again..');
     }
     return redirect('studio/' . $studio->user->slug);
 }
예제 #10
0
 public function adminUploadTattoosSave(Request $request)
 {
     $user = Auth::user();
     if ($request->hasFile('file')) {
         //upload an image to the /img/tmp directory and return the filepath.
         $file = $request->file('file');
         $tmpFilePath = '/uploads/images/original/';
         $tmpFileName = 'tattoo-' . time() . '-' . $file->getClientOriginalName();
         //save original file
         $file = $file->move(public_path() . $tmpFilePath, $tmpFileName);
         $path = $tmpFilePath . $tmpFileName;
         //edit image
         $img = \Image::make($file);
         $img->backup();
         // reset image (return to backup state)
         $img->reset();
         $img->fit(360);
         //240*240
         $img->save('uploads/images/thumbnail/' . $tmpFileName);
         // reset image (return to backup state)
         $img->reset();
         $img->fit(120);
         //100*100
         $img->save('uploads/images/small/' . $tmpFileName);
         //save tattoo in DB
         $tattoo = new Tattoo();
         $tattoo->title = '';
         $tattoo->url = $tmpFileName;
         $tattoo->description = '';
         $tattoo->user_id = $user->id;
         $tattoo->approved = true;
         $tattoo->save();
         if ($user->type == 'artist') {
             $profile = Artist::where('user_id', $user->id)->first();
             $profile->tattoos()->save($tattoo);
         } elseif ($user->type == 'studio') {
             $profile = Studio::where('user_id', $user->id)->first();
             $profile->tattoos()->save($tattoo);
         }
         return response()->json(array('path' => $tmpFileName), 200);
     } else {
         return response()->json(false, 200);
     }
 }