/** * 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]); }
/** * 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')); }
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()]); }
/** * 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]); }
/** * Display a listing of the resource. * * @return Response */ public function index() { return view('studios.index')->with('studios', Studio::all()); }
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); } }
/** * 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); }
/** * 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('/'); }
/** * 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(); }
/** * 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; }