Example #1
0
 /**
  * Returns a JSON feed of all events
  *
  * @return Response
  */
 public function feed(Studio $studio)
 {
     return $studio->events()->get()->transform(function ($event) use($studio) {
         $event->url = route('admin.studio.events.show', [$studio->slug, $event->id]);
         return $event;
     });
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, Studio $studio)
 {
     $data = $request->except('hours');
     $data['hours'] = $this->prepHours($request);
     $studio->update($data);
     return redirect()->action('Admin\\StudiosController@show', [$studio->id]);
 }
Example #3
0
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index(Studio $studio)
 {
     $monthlyEvents = $studio->events()->future()->ordered()->get()->groupBy(function ($event) {
         return $event->starts->format('F Y');
     });
     $title = "Events at {$studio->name}";
     return view('events.index', compact('monthlyEvents', 'studio', 'title'));
 }
 /**
  * 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);
 }
 /**
  * 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();
     });
 }
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index(Studio $studio)
 {
     $events = $studio->events()->future()->get();
     return view('admin.studios.events.index', compact('studio', 'events'));
 }
Example #8
0
 public function getIndex()
 {
     $studios = Studio::all();
     return view('home.index', compact('studios'));
 }
 public function getShow(Studio $studio)
 {
     $events = $studio->events()->future()->take(4)->get();
     return view('studios.show', compact('studio', 'events'));
 }
 /**
  * Display the artist's followers
  *
  * @return View
  */
 public function edit()
 {
     $user = Auth::user();
     if (!$user->social) {
         $user->avatar = url('uploads/images/small/' . $user->avatar);
     }
     //if user is artist, load artist profile view
     if ($user->type == 'artist') {
         $artist = Artist::where('user_id', $user->id)->first();
         $studios = Studio::all();
         $artist->cover = url('uploads/images/small/' . $artist->cover);
         return view('pages.profile.artist.edit', ['user' => $user, 'artist' => $artist, 'studios' => $studios]);
     }
     //member can't have followers. so redirect to profile
     return view('pages.profile.member.edit', ['user' => $user]);
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Studio::create(['name' => 'Dunedin, FL', 'slug' => 'dunedin', 'phone' => '828-280-2183', 'email' => '*****@*****.**', 'address' => '2033 Yale Ave, Dunedin, FL 34698']);
     Studio::create(['name' => 'Katy, TX', 'slug' => 'katy', 'phone' => '123-123-1234', 'email' => '*****@*****.**', 'address' => '829 S Mason Rd, Suite 260, Katy, TX 77450']);
 }
 /**
  * The index of the Admin section
  *
  * @return View
  */
 public function index()
 {
     return view('admin.index', ['studios' => Studio::all()]);
 }
Example #13
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;
 }
 /**
  * Display Studio profile
  *
  * @return View
  */
 public function studio($id)
 {
     $studio = Studio::find($id);
     $tattoos = Tattoo::whereIn('artist_id', $studio->artists->lists('user_id'))->get();
     $studio->cover = url('uploads/images/large/' . $studio->cover);
     return view('pages.studio', ['studio' => $studio, 'tattoos' => $tattoos]);
 }
Example #15
0
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index()
 {
     return view('studios.index')->with('studios', Studio::all());
 }
Example #16
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);
     }
 }
Example #17
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);
 }
Example #18
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');
 }
 /**
  * Create a new user instance after a valid registration.
  *
  * @param  array  $data
  * @return User
  */
 protected function create(array $data)
 {
     if (!isset($data['type'])) {
         $data['type'] = 'none';
     } elseif ($data['type'] == 'member') {
         Validator::make($data, ['firstname' => 'required', 'lastname' => 'required']);
         //create user
         $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type']]);
         $member = new Member();
         $member->user_id = $user->id;
         $member->firstname = $data['firstname'];
         $member->lastname = $data['lastname'];
         if ($member->save()) {
             session()->flash('success', 'Member Profile Created Successfully!');
         } else {
             $user->delete();
             session()->flash('error', 'Error! Please try again..');
         }
     } elseif ($data['type'] == 'artist') {
         Validator::make($data, ['firstname' => 'required', 'lastname' => 'required']);
         //create user
         $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type']]);
         $artist = new Artist();
         $artist->user_id = $user->id;
         $artist->firstname = $data['firstname'];
         $artist->lastname = $data['lastname'];
         if ($artist->save()) {
             session()->flash('success', 'Artist Profile Created Successfully!');
         } else {
             $user->delete();
             session()->flash('error', 'Error! Please try again..');
         }
     } elseif ($data['type'] == 'studio') {
         Validator::make($data, ['name' => 'required', 'title' => 'required']);
         //create user
         $user = User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type']]);
         $studio = new Studio();
         $studio->user_id = $user->id;
         $studio->name = $user->name;
         $studio->title = $data['title'];
         if ($studio->save()) {
             session()->flash('success', 'Studio Created Successfully!');
         } else {
             $user->delete();
             session()->flash('error', 'Error! Please try again..');
         }
     }
     //dd($data);
     //do your role stuffs here
     //send verification mail to user
     //--------------------------------------------------------------------------------------------------------------
     //$data['verification_code']  = $user->verification_code;
     Mail::send('emails.welcome', $data, function ($message) use($data) {
         $message->from('*****@*****.**', "Tattoo Cultr");
         $message->subject("Welcome to Tattoo Cultr");
         $message->to($data['email']);
     });
     return $user;
 }
 /**
  * Upload Tattoo
  *
  * @return View
  */
 public function uploadTattoo(Request $request)
 {
     $user = Auth::user();
     if ($request->hasFile('tattoo')) {
         //upload an image to the /img/tmp directory and return the filepath.
         // dd($request);
         $file = $request->file('tattoo');
         $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 = $request->input('title');
         $tattoo->url = $tmpFileName;
         $tattoo->description = $request->input('description');
         $tattoo->user_id = $user->id;
         $tattoo->approved = false;
         if ($request->input('type') == 'member') {
             if ($request->input('id') == $user->id) {
                 $tattoo->approved = false;
                 //member - self tattoos ll never be approved for public place, only visible to member page(always, no approval needed)
                 $tattoo->save();
             }
             return redirect('member/' . $request->input('id'))->with('success', "Successfully uploaded!");
         } elseif ($request->input('type') == 'artist') {
             $artist = Artist::find($request->input('id'))->first();
             //if uploaded by self
             if ($artist->user->id == $user->id) {
                 $tattoo->approved = true;
             }
             $artist->tattoos()->save($tattoo);
             return redirect('artist/' . $request->input('id'))->with('success', "Successfully uploaded!");
         } elseif ($request->input('type') == 'studio') {
             $studio = Studio::find($request->input('id'))->first();
             //if uploaded by self
             if ($studio->user->id == $user->id) {
                 $tattoo->approved = true;
             }
             $studio->tattoos()->save($tattoo);
             return redirect('studio/' . $request->input('id'))->with('success', "Successfully uploaded!");
         } else {
             session()->flash('error', "Error in uploading tattoo!! Please try again..");
         }
     } else {
         session()->flash('error', "Please select a file!!");
     }
     return redirect('/');
 }
Example #21
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!');
 }
 public function getJson(Studio $studio)
 {
     return $studio->events()->with('categories')->get();
 }
Example #23
0
 /**
  * Create a new user instance after a valid registration.
  *
  * @param  array  $data
  * @return User
  */
 protected function create(array $data)
 {
     $data['email_verification_code'] = str_random(55);
     $data['lastname'] = '';
     if (!isset($data['type'])) {
         $data['type'] = 'none';
     } elseif ($data['type'] == 'member') {
         Validator::make($data, ['firstname' => 'required', 'gender' => 'required']);
         if ($data['gender'] == "female") {
             $data['avatar'] = 'avatar-female.jpg';
         } else {
             $data['avatar'] = 'avatar.jpg';
         }
         //create user
         $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type'], 'avatar' => $data['avatar'], 'email_verification_code' => $data['email_verification_code']]);
         $member = new Member();
         $member->user_id = $user->id;
         $member->firstname = $data['firstname'];
         $member->lastname = '';
         $member->gender = $data['gender'];
         $data['name'] = $data['firstname'] . ' ' . $data['lastname'];
         if ($member->save()) {
             session()->flash('success', 'Welcome ' . $data['firstname'] . '! Please continue connecting with artists and collecting tattoos');
         } else {
             $user->delete();
             session()->flash('error', 'Error! Please try again..');
         }
     } elseif ($data['type'] == 'artist') {
         Validator::make($data, ['firstname' => 'required']);
         $data['gender'] = 'male';
         //male by default
         if ($data['gender'] == "female") {
             $data['avatar'] = 'avatar-female.jpg';
         } else {
             $data['avatar'] = 'avatar.jpg';
         }
         //create user
         $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type'], 'avatar' => $data['avatar'], 'email_verification_code' => $data['email_verification_code']]);
         $artist = new Artist();
         $artist->user_id = $user->id;
         $artist->firstname = $data['firstname'];
         $artist->lastname = $data['lastname'];
         $artist->gender = $data['gender'];
         $data['name'] = $data['firstname'] . ' ' . $data['lastname'];
         if ($artist->save()) {
             session()->flash('success', 'Welcome ' . $data['firstname'] . '! Lets start with building your profile.');
         } else {
             $user->delete();
             session()->flash('error', 'Error! Please try again..');
         }
     } elseif ($data['type'] == 'studio') {
         Validator::make($data, ['name' => 'required']);
         //create user
         $user = User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type'], 'email_verification_code' => $data['email_verification_code']]);
         $studio = new Studio();
         $studio->user_id = $user->id;
         $studio->name = $user->name;
         $studio->title = '';
         if ($studio->save()) {
             session()->flash('success', 'Welcome ' . $data['name'] . '! Lets start with building your profile.');
         } else {
             $user->delete();
             session()->flash('error', 'Error! Please try again..');
         }
     }
     if ($slugExit = User::where('slug', str_slug($data['name'], "."))->first()) {
         $data['slug'] = str_slug($data['name'] . $user->id, ".");
         $user->slug = $data['slug'];
     } else {
         $data['slug'] = str_slug($data['name'], ".");
         $user->slug = $data['slug'];
     }
     $user->save();
     //send verification mail to user
     Mail::send('emails.welcome', $data, function ($message) use($data) {
         $message->from('*****@*****.**', "Tattoo Cultr");
         $message->subject("Welcome to Tattoo Cultr");
         $message->to($data['email']);
     });
     Mail::send('emails.admin_notification_signup', $data, function ($message) use($data) {
         $message->from('*****@*****.**', "Tattoo Cultr");
         $message->subject("New User Signup");
         $message->to(env('ADMIN_EMAIL'));
     });
     return $user;
 }