Add new version in repository

This commit is contained in:
Ludovic CANDELLIER
2021-07-25 23:19:27 +02:00
parent f75632b054
commit b879f11c99
608 changed files with 12235 additions and 7513 deletions

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers\Admin\Botanic;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Admin\Botanic;
use Illuminate\Http\Request;
use App\Repositories\Botanic\Families;
use App\Datatables\Botanic\FamiliesDataTable;
class FamilyController extends Controller
{
public function index(FamiliesDataTable $dataTable)
{
return $dataTable->render('Admin.Botanic.Families.list');
}
public function getDatatable(Request $request)
{
return Families::getTables($request->all());
}
public function create()
{
return view('Admin.Botanic.Families.create', $data ?? []);
}
public function store(Request $request)
{
$data = $request->all();
$ret = Families::store($data);
return redirect()->route('Admin.Botanic.Families.index');
}
public function show($id)
{
$data = Families::get($id);
return view('Admin.Botanic.Families.view', $data);
}
public function edit($id)
{
$data['family'] = Families::get($id)->toArray();
return view('Admin.Botanic.Families.edit', $data);
}
public function destroy($id)
{
return Families::destroy($id);
}
public function exportExcel()
{
return Families::exportExcel();
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace App\Http\Controllers\Admin\Botanic;
use Illuminate\Http\Request;
use App\Repositories\Botanic\Genres;
use App\Repositories\Botanic\Families;
use App\Datatables\Botanic\GenresDataTable;
class GenreController extends Controller
{
public function index(GenresDataTable $dataTable)
{
return $dataTable->render('Admin.Botanic.Genres.list');
}
public function getDatatable(Request $request)
{
return Genres::getDataTable($request->all());
}
public function create()
{
$data['families'] = Families::getOptions();
return view('Admin.Botanic.Genres.create', $data);
}
public function store(Request $request)
{
$ret = Genres::store($request);
return redirect()->route('Admin.Botanic.Genres.index');
}
public function show($id)
{
$data['genre'] = Genres::get($id);
return view('Admin.Botanic.Genres.view', $data);
}
public function edit($id)
{
$data['genre'] = Genres::get($id);
$data['families'] = Families::getOptions();
return view('Admin.Botanic.Genres.edit', $data);
}
public function destroy($id)
{
return Genres::destroy($id);
}
public function exportExcel()
{
return Genres::exportExcel();
}
}

View File

@@ -0,0 +1,63 @@
<?php
namespace App\Http\Controllers\Admin\Botanic;
use Illuminate\Http\Request;
use App\Repositories\Botanic\Species;
use App\Repositories\Botanic\Genres;
use App\Datatables\Botanic\SpeciesDataTable;
class SpecieController extends Controller
{
public function index(SpeciesDataTable $dataTable)
{
return $dataTable->render('Admin.Botanic.Species.list');
}
public function getDatatable(Request $request)
{
return Species::getDatatable($request->all());
}
public function getOptions()
{
return response()->json(Species::getOptions());
}
public function create()
{
$data['genres'] = Genres::getOptions();
return view('Admin.Botanic.Species.create', $data);
}
public function store(Request $request)
{
$data = $request->all();
$ret = Species::store($data);
return redirect()->route('Admin.Botanic.Species.index');
}
public function show($id)
{
$data = Species::get($id);
return view('Admin.Botanic.Species.view', $data);
}
public function edit($id)
{
$data['specie'] = Species::get($id);
$data['genres'] = Genres::getOptions();
return view('Admin.Botanic.Species.edit', $data);
}
public function destroy($id)
{
return Species::destroy($id);
}
public function exportExcel()
{
return Species::exportExcel();
}
}

View File

@@ -0,0 +1,77 @@
<?php
namespace App\Http\Controllers\Admin\Botanic;
use Illuminate\Http\Request;
use App\Repositories\Botanic\Varieties;
use App\Repositories\Botanic\Species;
use App\Repositories\Shop\TagGroups;
use App\Datatables\Botanic\VarietiesDataTable;
use App\Models\Shop\Variety;
class VarietyController extends Controller
{
public function index(VarietiesDataTable $dataTable)
{
return $dataTable->render('Admin.Botanic.Varieties.list');
}
public function getOptionsWithSpecie()
{
return response()->json(Varieties::getOptionsWithSpecie());
}
public function create()
{
$data['species'] = Species::getOptions();
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Botanic.Varieties.create', $data);
}
public function store(Request $request)
{
$data = $request->all();
Varieties::storeFull($data);
return redirect()->route('Admin.Botanic.Varieties.index');
}
public function show($id)
{
return view('Admin.Botanic.Varieties.view', Varieties::get($id));
}
public function edit($id)
{
$data = Varieties::getFull($id);
$data['species'] = Species::getOptions();
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Botanic.Varieties.edit', $data);
}
public function destroy($id)
{
return Varieties::destroy($id);
}
public function getImages(Request $request, $id = false, $can_edit = true)
{
$id = $id ? $id : $request->input('id');
$data['images'] = Varieties::getImages($id);
$data['can_edit'] = $can_edit;
return view('components.uploader.mini-gallery-items', $data);
}
public function deleteImage(Request $request)
{
$id = $request->input('id');
$index = $request->input('index');
return Varieties::deleteImage($id, $index);
}
public function exportExcel()
{
return Varieties::exportExcel();
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller as ParentController;
class Controller extends ParentController
{
}

View File

@@ -0,0 +1,53 @@
<?php
namespace App\Http\Controllers\Admin\Core\App;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Yajra\DataTables\DataTables;
use App\Repositories\Core\App\Applications;
use App\Datatables\Admin\Core\App\ApplicationsDataTable;
class ApplicationController extends Controller
{
public function index(ApplicationsDataTable $dataTable)
{
$data = \App\Repositories\Config::init();
return $dataTable->render('admin.Core.App.Application.index', $data);
}
public function getDatatable()
{
return Applications::getDatatable();
}
public function edit(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
$data = \App\Repositories\Config::init();
$data = Applications::select_by_id($id);
return view('admin.Core.App.Application.edit', $data);
}
public function store(Request $request)
{
Applications::store($request->all());
return response()->json(['error' => 0]);
}
public function destroy(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
Applications::destroy($id);
return response()->json(['error' => 0]);
}
public function toggleActive(Request $request)
{
$data = Applications::toggle_active($request->input('id'), ($request->input('active') == 'true') ? 1 : 0);
return response()->json(['error' => 0]);
}
}

View File

@@ -0,0 +1,61 @@
<?php
namespace App\Http\Controllers\Admin\Core\App;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use App\Repositories\Core\App\Applications;
use App\Repositories\Core\App\ApplicationModules;
use App\Datatables\Admin\Core\App\ApplicationModulesDataTable;
class ApplicationModuleController extends Controller
{
public function index(ApplicationModulesDataTable $dataTable)
{
$data = \App\Repositories\Config::init();
return $dataTable->render('admin.Core.App.ApplicationModule.index', $data);
}
public function getDatatable()
{
return ApplicationModules::getDatatable();
}
public function create()
{
$data = \App\Repositories\Config::init();
$data['applications'] = Applications::getOptions();
return view('admin.Core.App.ApplicationModule.create', $data);
}
public function edit(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
$data = \App\Repositories\Config::init();
$data = ApplicationModules::get($id)->toArray();
$data['applications'] = Applications::getOptions();
return view('admin.Core.App.ApplicationModule.edit', $data);
}
public function store(Request $request)
{
ApplicationModules::store($request->all());
return redirect()->route('admin.Core.App.ApplicationModule.index')
->with('growl', [__('admin.successadd'), 'success']);
}
public function destroy(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
ApplicationModules::destroy($id);
return response()->json(['error' => 0]);
}
public function toggleActive(Request $request)
{
$data = ApplicationModules::toggle_active($request->input('id'), ($request->input('active') == 'true') ? 1 : 0);
return response()->json(['error' => 0]);
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace App\Http\Controllers\Admin\Core\App;
use App\Http\Controllers\Controller as ParentController;
class Controller extends ParentController
{
}

View File

@@ -0,0 +1,9 @@
<?php
namespace App\Http\Controllers\Admin\Core\Auth;
use App\Http\Controllers\Controller as ParentController;
class Controller extends ParentController
{
}

View File

@@ -0,0 +1,71 @@
<?php
namespace App\Http\Controllers\Admin\Core\Auth;
use Illuminate\Http\Request;
use App\Repositories\Core\App\Applications;
use App\Repositories\Core\App\ApplicationModules;
use App\Repositories\Core\Auth\Permissions;
use App\Repositories\Core\Auth\Users;
use App\Datatables\Admin\Core\Auth\PermissionsDataTable;
class PermissionController extends Controller
{
public function __construct()
{
$this->middleware('ability:admin,permissions_crud');
}
public function index(PermissionsDataTable $dataTable)
{
$data = \App\Repositories\Config::init();
return $dataTable->render('admin.Core.Auth.Permission.index', $data);
}
public function create()
{
$data = \App\Repositories\Config::init();
$data['roles'] = Users::getRolesToEdit();
$data['applications'] = Applications::getOptions();
$data['application_modules'] = ApplicationModules::getOptions();
return view('admin.Core.Auth.Permission.create', $data);
}
public function edit(Request $request, $id = false)
{
$id = (int) $id ? $id : $request->input('id');
$data = \App\Repositories\Config::init();
$data['permission'] = Permissions::get($id);
$data['roles'] = Users::getRolesToEdit();
$data['applications'] = Applications::getOptions();
$data['application_modules'] = ApplicationModules::getOptions();
return view('admin.Core.Auth.Permission.edit', $data);
}
public function store(Request $request)
{
$data = $request->all();
unset($data['roles']);
unset($data['_token']);
/*
$this->validate($request, [
'name' => 'required|unique:permissions,name',
'display_name' => 'required',
'description' => 'required',
]);
$data['name'] = Str::slug($data['display_name']);
*/
Permissions::store($data);
return redirect()->route('Admin.Core.Auth.Permission.index')->with('growl', [__('permissions.successadd'), 'success']);
}
public function destroy($id)
{
Permissions::destroy($id);
return response()->json(['error' => 0]);
}
}

View File

@@ -0,0 +1,96 @@
<?php
namespace App\Http\Controllers\Admin\Core\Auth;
use Illuminate\Http\Request;
use Yajra\DataTables\DataTables;
use App\Models\Core\Auth\Role;
use App\Models\Core\Auth\Permission;
use App\Models\Core\App\ApplicationModule;
use App\Repositories\Core\Auth\Permissions;
use App\Repositories\Core\Auth\Roles;
use App\Datatables\Admin\Core\Auth\RolesDataTable;
class RoleController extends Controller
{
public function index(RolesDataTable $dataTable)
{
$data = \App\Repositories\Config::init();
$data['modules'] = ApplicationModule::with('permissions')->get()->toArray();
return $dataTable->render('admin.Core.Auth.Role.index', $data);
}
public function getTable(Request $request)
{
$model = Role::orderBy('name')->get();
return Datatables::of($model)->make(true);
}
public function create()
{
$data = \App\Repositories\Config::init();
return view('admin.Core.Auth.Role.create', $data);
}
public function edit(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
$data = \App\Repositories\Config::init();
$data['role'] = Roles::getWithPermissions($id);
$data['modules'] = ApplicationModule::with('permissions')->get()->toArray();
return view('admin.Core.Auth.Role.edit', $data);
}
public function store(Request $request)
{
Roles::store($request->all());
return response()->json(['error' => 0]);
}
public function destroy(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
Roles::destroy($id);
return response()->json(['error' => 0]);
}
public function manage(Request $request, $id = false)
{
$data = [];
$id = (int) $id ? $id : $request->input('id');
$data['role'] = Role::with('permissions')->find($id)->toArray();
$permissions = Permission::orderBy('app')->orderBy('module')->orderBy('action')->get();
foreach ($permissions as $permission) {
$data[$permission->app][$permission->module][] = [
'action' => $permission->action,
'description' => $permission->description,
'id' => $permission->id,
];
}
// Debug::fdump($data);
// Debug::fdump($permissions);
// exit;
$data['permissions'] = $data;
return view('admin.Core.Auth.Role.manage', $data);
}
public function manage_store(Request $request)
{
$data = $request->all();
$role = Role::find($data['role_id']);
foreach ($data['permissions'] as $key) {
$permission = Permission::find($key);
$role->attachPermission($permission);
}
return response()->json(['error' => 0]);
}
public function toggleActive(Request $request)
{
$data = Roles::toggle_active($request->input('id'), ($request->input('active') == 'true') ? 1 : 0);
return response()->json(['error' => 0]);
}
}

View File

@@ -0,0 +1,75 @@
<?php
namespace App\Http\Controllers\Admin\Core\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use App\Models\Core\Auth\Team;
use App\Models\Core\Auth\Role;
class TeamController extends Controller
{
public function __construct()
{
$this->middleware('ability:admin,teams_crud');
}
public function index()
{
return view('admin.Core.Auth.Team.list', ['teams' => Team::all()]);
}
public function create()
{
return view('admin.Core.Auth.Team.create');
}
public function store(Request $request)
{
$input = $request->all();
$input['name'] = Str::slug($input['display_name']);
$request->replace($input);
$this->validate(
$request, [
'name' => 'required|unique:teams,name',
'display_name' => 'required',
'description' => 'required',
]
);
$team = Team::create($input);
$team->teams()->sync(array_keys($request->input('team', [])));
return redirect()->route('admin.Teams.edit', $team)
->with('growl', [__('teams.successadd'), 'success']);
}
public function edit($id)
{
$team = Team::find($id);
return view('admin.Core.Auth.Team.edit', compact('team', 'teams'));
}
public function update(Request $request, $id)
{
$this->validate(
$request, [
'display_name' => 'required',
'description' => 'required',
]
);
$team = Team::find($id);
return redirect()->route('admin.Teams.edit', $team)
->with('growl', [__('teams.successmod'), 'success']);
}
public function destroy($id)
{
Team::destroy($id);
}
}

View File

@@ -0,0 +1,183 @@
<?php
namespace App\Http\Controllers\Admin\Core\Auth;
use Auth;
use Image;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use App\Models\Core\Auth\Role;
use App\Models\Core\Auth\User;
use App\Repositories\Core\Auth\Users;
use App\Datatables\Admin\Core\Auth\UsersDataTable;
class UserController extends Controller
{
public function index(UsersDataTable $dataTable)
{
$data = \App\Repositories\Config::init();
return $dataTable->render('admin.Core.Auth.User.index', $data);
}
public function modalCreate()
{
$data['roles'] = Users::getRolesToEdit();
return view('admin.Core.Auth.User.modal', $data);
}
public function modalEdit($id = false)
{
$user = $id ? Users::get($id) : false;
$data['roles'] = Users::getRolesToEdit();
$data['user'] = $user ? $user->toArray() : [];
$data['user']['roles'] = $user->roles->pluck('id')->toArray();
return view('admin.Core.Auth.User.modal', $data);
}
public function storeAjax(Request $request)
{
$data = $request->all();
$ret = Users::store($data);
return response()->json(['code' => '200']);
}
public function create()
{
$data = \App\Repositories\Config::init();
$data['roles'] = Users::getRolesToEdit();
return view('admin.Core.Auth.User.create', $data);
}
public function store(Request $request)
{
/*
$this->validate($request, [
'last_name' => 'required',
'first_name' => 'required',
'email' => 'required|email|unique:users,email,NULL,id,deleted_at,NULL',
]);
*/
$input = $request->all();
if (empty($input['password'])) {
unset($input['password']);
}
$user = Users::store($input);
return redirect()->route('admin.Core.Auth.User.index')
->with('growl', [__('boilerplate::users.successadd'), 'success']);
}
public function edit($id)
{
$data = \App\Repositories\Config::init();
$data['roles'] = Users::getRolesToEdit();
$data['user'] = Users::get($id);
return view('admin.Core.Auth.User.edit', $data);
}
public function destroy($id)
{
Users::delete($id);
}
public function firstLogin($token, Request $request)
{
$user = User::where(['remember_token' => $token])->firstOrFail();
return view('boilerplate::auth.firstlogin', compact('user', 'token'));
}
public function firstLoginPost(Request $request)
{
$this->validate(
$request, [
'token' => 'required',
'password' => 'required|min:8',
'password_confirmation' => 'required|same:password',
]
);
$user = User::where(['remember_token' => $request->input('token')])->first();
$user->password = bcrypt($request->input('password'));
$user->remember_token = Str::random(32);
$user->last_login = Carbon::now()->toDateTimeString();
$user->save();
Auth::attempt(['email' => $user->email, 'password' => $request->input('password'), 'active' => 1]);
return redirect()->route('boilerplate.dashboard')
->with('growl', [__('boilerplate::users.newpassword'), 'success']);
}
public function profile()
{
$user = Users::get();
$data['user'] = $user ? $user->toArray() : [];
$data['user']['name'] = $user->name;
$data['user']['avatar'] = Users::getAvatar($user->id);
return view('admin.Core.Auth.User.modalProfile', $data);
}
public function profilePost(Request $request)
{
$this->validate(
$request, [
'avatar' => 'mimes:jpeg,png|max:10000',
'last_name' => 'required',
'first_name' => 'required',
'password_confirmation' => 'same:password',
]
);
$avatar = $request->file('avatar');
$user = Auth::user();
if ($avatar && $file = $avatar->isValid()) {
$destinationPath = dirname($user->avatar_path);
if (!is_dir($destinationPath)) {
mkdir($destinationPath, 0766, true);
}
$extension = $avatar->getClientOriginalExtension();
$fileName = md5($user->id.$user->email).'_tmp.'.$extension;
$avatar->move($destinationPath, $fileName);
Image::make($destinationPath.DIRECTORY_SEPARATOR.$fileName)
->fit(100, 100)
->save($user->avatar_path);
unlink($destinationPath.DIRECTORY_SEPARATOR.$fileName);
}
$input = $request->all();
if ($input['password'] !== null) {
$input['password'] = bcrypt($input['password']);
$input['remember_token'] = Str::random(32);
} else {
unset($input['password']);
}
$user->update($input);
return redirect()->route('boilerplate.user.profile')
->with('growl', [__('boilerplate::users.profile.successupdate'), 'success']);
}
public function avatarDelete()
{
$user = Auth::user();
if (is_file($user->avatar_path)) {
unlink($user->avatar_path);
}
}
public function toggleActive(Request $request)
{
$data = Users::toggle_active($request->input('id'), ($request->input('active') == 'true') ? 1 : 0);
return response()->json(['error' => 0]);
}
}

View File

@@ -0,0 +1,8 @@
<?php
namespace App\Http\Controllers\Admin\Core;
use App\Http\Controllers\Controller as ParentController;
class Controller extends ParentController
{
}

View File

@@ -7,13 +7,13 @@ use App\Http\Controllers\Controller;
class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('home');
}
public function index()
{
return view('admin.Shop.Dashboard.index');
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Articles;
use App\Repositories\Shop\ArticleNatures;
use App\Datatables\Shop\ArticlesDataTable;
class ArticleController extends Controller
{
public function autocomplete(Request $request, $str = false)
{
$str = $str ? $str : $request->input('q');
return response()->json(Articles::autocomplete($str));
}
public function index(ArticlesDataTable $dataTable)
{
$data['families'] = ArticleNatures::getOptions();
return $dataTable->render('Admin.Shop.Articles.list', $data);
}
public function create()
{
$data = Articles::getMeta();
return view('Admin.Shop.Articles.create', $data);
}
public function store(Request $request)
{
$data = $request->all();
Articles::storeFull($data);
return redirect()->route('Admin.Shop.Articles.index');
}
public function show($id)
{
$data = Articles::get($id);
return view('Admin.Shop.Articles.view', $data);
}
public function edit($id)
{
$data = Articles::getFull($id);
return view('Admin.Shop.Articles.edit', $data);
}
public function destroy($id)
{
return Articles::destroy($id);
}
public function getImages(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
$data['images'] = Articles::getImages($id);
return view('components.uploader.mini-gallery-items', $data);
}
public function deleteImage(Request $request)
{
$id = $request->input('id');
$index = $request->input('index');
return Articles::deleteImage($id, $index);
}
}

View File

@@ -0,0 +1,49 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\ArticleNatures;
use App\Datatables\Shop\ArticleNaturesDataTable;
class ArticleNatureController extends Controller
{
public function index(ArticleNaturesDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.ArticleNatures.list');
}
public function getDatatable(Request $request)
{
return ArticleNatures::getTables($request->all());
}
public function create()
{
return view('Admin.Shop.ArticleNatures.create');
}
public function store(Request $request)
{
$ret = ArticleNatures::store($request->all());
return redirect()->route('Admin.Shop.ArticleNatures.index');
}
public function show($id)
{
$data['article_nature'] = ArticleNatures::get($id);
return view('Admin.Shop.ArticleNatures.view', $data);
}
public function edit($id)
{
$data['article_nature'] = ArticleNatures::get($id);
return view('Admin.Shop.ArticleNatures.edit', $data);
}
public function destroy($id)
{
return ArticleNatures::destroy($id);
}
}

View File

@@ -0,0 +1,80 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Categories;
use App\Datatables\Shop\CategoriesDataTable;
class CategoryController extends Controller
{
public function index(CategoriesDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Categories.list');
}
public function getDatatable(Request $request)
{
return Categories::getTables($request->all());
}
public function create()
{
$data = [];
$data['category_id'] = 0;
$data['categories'] = Categories::getOptions();
return view('Admin.Shop.Categories.create', $data);
}
public function store(Request $request)
{
$ret = Categories::store($request->all());
return redirect()->route('Admin.Shop.Categories.index');
}
public function show($id)
{
$data = Categories::get($id);
return view('Admin.Shop.Categories.view', $data);
}
public function edit($id)
{
$data = Categories::get($id)->toArray();
$data['categories'] = Categories::getOptions();
return view('Admin.Shop.Categories.edit', $data);
}
public function update(Request $request)
{
//
}
public function destroy($id)
{
return Categories::destroy($id);
}
public function getImages(Request $request, $id = false)
{
$id = $id ? $id : $request->input('id');
$data['images'] = Categories::getImages($id);
return view('components.uploader.mini-gallery-items', $data);
}
public function deleteImage(Request $request)
{
$id = $request->input('id');
$index = $request->input('index');
return Categories::deleteImage($id, $index);
}
public function moveTree(Request $request)
{
$node_id = $request->input('node_id');
$target_id = $request->input('target_id');
$type = $request->input('type');
return Categories::moveTree($node_id, $target_id, $type);
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Customers;
use App\Datatables\Shop\CustomersDataTable;
class CustomerController extends Controller
{
public function index(CustomersDataTable $dataTable)
{
$data = [];
return $dataTable->render('Admin.Shop.Customers.list', $data);
}
public function create()
{
return view('Admin.Shop.Customers.create');
}
public function store(Request $request)
{
$ret = Customers::store($request->all());
return redirect()->route('Admin.Shop.Customers.index');
}
public function show($id)
{
$data['customer'] = Customers::get($id);
return view('Admin.Shop.Customers.view', $data);
}
public function edit($id)
{
$data['customer'] = Customers::get($id)->toArray();
return view('Admin.Shop.Customers.edit', $data);
}
public function destroy($id)
{
return Customers::destroy($id);
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Core\Auth\Users;
class DashboardController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return
*/
public function index()
{
$data = [];
if (Users::hasRole('admin')) {
$dashboard = 'dashboard';
$data = [];
}
return view('Admin.Shop.Dashboard.index', $data);
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Controllers\Shop\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return redirect('dashboard');
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Invoices;
use App\Datatables\Shop\InvoicesDataTable;
class InvoiceController extends Controller
{
public function index(InvoicesDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Invoices.list', $data);
}
public function create()
{
return view('Admin.Shop.Invoices.create');
}
public function store(Request $request)
{
$ret = Invoices::store($request->all());
return redirect()->route('Admin.Shop.Invoices.index');
}
public function show($id)
{
$data = Invoices::get($id);
return view('Admin.Shop.Invoices.view', $data);
}
public function edit($id)
{
$data['customer'] = Invoices::get($id)->toArray();
return view('Admin.Shop.Invoices.edit', $data);
}
public function destroy($id)
{
return Invoices::destroy($id);
}
}

View File

@@ -0,0 +1,86 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use App\InvoiceItem;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class InvoiceItemController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\InvoiceItem $invoiceItem
* @return \Illuminate\Http\Response
*/
public function show(InvoiceItem $invoiceItem)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\InvoiceItem $invoiceItem
* @return \Illuminate\Http\Response
*/
public function edit(InvoiceItem $invoiceItem)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\InvoiceItem $invoiceItem
* @return \Illuminate\Http\Response
*/
public function update(Request $request, InvoiceItem $invoiceItem)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\InvoiceItem $invoiceItem
* @return \Illuminate\Http\Response
*/
public function destroy(InvoiceItem $invoiceItem)
{
//
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Offers;
use App\Datatables\Shop\OffersDataTable;
class OfferController extends Controller
{
public function index(OffersDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Offers.list', $data ?? []);
}
public function create()
{
return view('Admin.Shop.Offers.create');
}
public function store(Request $request)
{
$ret = Offers::store($request->all());
return redirect()->route('Admin.Shop.Offers.index');
}
public function show($id)
{
$data = Offers::get($id);
return view('Admin.Shop.Offers.view', $data);
}
public function edit($id)
{
$data['customer'] = Offers::get($id)->toArray();
return view('Admin.Shop.Offers.edit', $data);
}
public function destroy($id)
{
return Offers::destroy($id);
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Orders;
use App\Datatables\Shop\OrdersDataTable;
class OrderController extends Controller
{
public function index(OrdersDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Orders.list', $data);
}
public function create()
{
return view('Admin.Shop.Orders.create');
}
public function store(Request $request)
{
$ret = Orders::store($request->all());
return redirect()->route('Admin.Shop.Orders.index');
}
public function show($id)
{
$data = Orders::get($id);
return view('Admin.Shop.Orders.view', $data);
}
public function edit($id)
{
$data['customer'] = Orders::get($id)->toArray();
return view('Admin.Shop.Orders.edit', $data);
}
public function destroy($id)
{
return Orders::destroy($id);
}
}

View File

@@ -0,0 +1,86 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use App\OrderPayment;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class OrderPaymentController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\OrderPayment $orderPayment
* @return \Illuminate\Http\Response
*/
public function show(OrderPayment $orderPayment)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\OrderPayment $orderPayment
* @return \Illuminate\Http\Response
*/
public function edit(OrderPayment $orderPayment)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\OrderPayment $orderPayment
* @return \Illuminate\Http\Response
*/
public function update(Request $request, OrderPayment $orderPayment)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\OrderPayment $orderPayment
* @return \Illuminate\Http\Response
*/
public function destroy(OrderPayment $orderPayment)
{
//
}
}

View File

@@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\ArticleNatures;
use App\Repositories\Shop\Packages;
use App\Datatables\Shop\PackagesDataTable;
class PackageController extends Controller
{
public function index(PackagesDataTable $dataTable)
{
$data['families'] = ArticleNatures::getOptions();
return $dataTable->render('Admin.Shop.Packages.list', $data);
}
public function getDatatable(Request $request)
{
return Packages::getTables($request->all());
}
public function getOptionsByFamily(Request $request)
{
$id = $request->input('family_id');
return response()->json(Packages::getSelectByFamily($id));
}
public function create()
{
$data['families'] = ArticleNatures::getOptions();
return view('Admin.Shop.Packages.create', $data);
}
public function store(Request $request)
{
$ret = Packages::store($request->all());
return redirect()->route('Admin.Shop.Packages.index');
}
public function show($id)
{
$data = Packages::get($id);
return view('Admin.Shop.Packages.view', $data);
}
public function edit($id)
{
$data['package'] = Packages::get($id);
$data['families'] = ArticleNatures::getOptions();
return view('Admin.Shop.Packages.edit', $data);
}
public function update(Request $request)
{
//
}
public function destroy($id)
{
return Packages::destroy($id);
}
}

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\ArticleNatures;
use App\Repositories\Shop\PriceGenericCategories;
use App\Datatables\Shop\PriceGenericCategoriesDataTable;
class PriceGenericCategoryController extends Controller
{
public function index(PriceGenericCategoriesDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.PriceGenericCategories.list');
}
public function create()
{
$data['families'] = ArticleNatures::getOptions();
return view('Admin.Shop.PriceGenericCategories.create', $data);
}
public function edit($id)
{
$data['families'] = ArticleNatures::getOptions();
$data['generic_category'] = PriceGenericCategories::get($id)->toArray();
return view('Admin.Shop.PriceGenericCategories.edit', $data);
}
public function store(Request $request)
{
$ret = PriceGenericCategories::store($request->all());
return redirect()->route('Admin.Shop.PriceGenericCategories.index');
}
public function show($id)
{
$data = PriceGenericCategories::get($id);
return view('Admin.Shop.PriceGenericCategories.view', $data);
}
public function destroy($id)
{
return PriceGenericCategories::destroy($id);
}
}

View File

@@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Shop\PriceList;
use App\Repositories\Shop\PriceLists;
use App\Repositories\Shop\Taxes;
use App\Repositories\Shop\Tariffs;
use App\Repositories\Shop\SaleChannels;
use App\Repositories\Shop\Unities;
use App\Datatables\Shop\PriceListsDataTable;
class PriceListController extends Controller
{
public function index(PriceListsDataTable $dataTable)
{
$data = [];
return $dataTable->render('Admin.Shop.PriceLists.list', $data);
}
public function create()
{
$data = [];
$data['sale_channels'] = SaleChannels::getOptions();
return view('Admin.Shop.PriceLists.create', $data);
}
public function edit($id)
{
$data['price_list'] = PriceLists::get($id);
$data['sale_channels'] = SaleChannels::getOptions();
return view('Admin.Shop.PriceLists.edit', $data);
}
public function modalCreate($tariff_id)
{
$data = [];
$data['price_list']['tariff_id'] = $tariff_id;
$data['price_list']['price_list_values'] = array_fill(0, 3, '');
$data['sale_channels'] = SaleChannels::getOptions();
$data['statuses'] = Tariffs::getStatuses();
return view('Admin.Shop.PriceLists.modal', $data);
}
public function modalEdit($id)
{
$data['price_list'] = PriceLists::getFull($id);
$data['sale_channels'] = SaleChannels::getOptions();
$data['statuses'] = Tariffs::getStatuses();
return view('Admin.Shop.PriceLists.modal', $data);
}
public function store(Request $request)
{
$ret = PriceLists::store($request->all());
return redirect()->route('Admin.Shop.PriceLists.index');
}
public function storeAjax(Request $request)
{
$data = $request->all();
$ret = PriceLists::store($data);
return response()->json(['code' => '200']);
}
public function show($id)
{
$data = PriceLists::get($id);
return view('Admin.Shop.PriceLists.view', $data);
}
public function destroy($id)
{
return PriceLists::destroy($id);
}
public function getPrice($id)
{
$data['generic'] = PriceLists::getFull($id);
return view('Admin.Shop.PriceLists.partials.table-prices', $data);
}
}

View File

@@ -0,0 +1,69 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Shop\PriceListValue;
use App\Repositories\Shop\PriceListValues;
use App\Repositories\Shop\PriceListValueCategories;
use App\Repositories\Shop\Taxes;
use App\Repositories\Shop\Packages;
use App\Repositories\Shop\Unities;
use App\Datatables\Shop\PriceListValuesDataTable;
class PriceListValueController extends Controller
{
public function index(PriceListValuesDataTable $dataTable)
{
$data['categories'] = PriceListValueCategories::getOptions();
return $dataTable->render('Admin.Shop.PriceListValues.list', $data);
}
public function getDatatable(Request $request)
{
return PriceListValues::getTables($request->all());
}
public function create()
{
$data['unities'] = Unities::getOptions();
$data['taxes_options'] = Taxes::getOptions();
$data['categories'] = PriceListValueCategories::getOptions();
return view('Admin.Shop.PriceListValues.create', $data);
}
public function edit($id)
{
$data['generic'] = PriceListValues::getFull($id)->toArray();
$data['packages'] = Packages::getSelectByFamily($data['generic']['category']['article_family_id']);
$data['unities'] = ($data['packages']['id'] ?? false) ? Unities::getSelectByPackage($data['packages']['id']) : [];
$data['taxes_options'] = Taxes::getOptions();
$data['categories'] = PriceListValueCategories::getOptions();
return view('Admin.Shop.PriceListValues.edit', $data);
}
public function store(Request $request)
{
$ret = PriceListValues::store($request->all());
return redirect()->route('Admin.Shop.PriceListValues.index');
}
public function show($id)
{
$data = PriceListValues::get($id);
return view('Admin.Shop.PriceListValues.view', $data);
}
public function destroy($id)
{
return PriceListValues::destroy($id);
}
public function getPrice($id)
{
$data['generic'] = PriceListValues::getFull($id);
return view('Admin.Shop.PriceListValues.partials.table-prices', $data);
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\ArticleNatures;
use App\Repositories\Shop\SaleChannels;
use App\Datatables\Shop\SaleChannelsDataTable;
class SaleChannelController extends Controller
{
public function index(SaleChannelsDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.SaleChannels.list', $data ?? []);
}
public function create()
{
return view('Admin.Shop.SaleChannels.create', $data ?? []);
}
public function store(Request $request)
{
$ret = SaleChannels::store($request->all());
return redirect()->route('Admin.Shop.SaleChannels.index');
}
public function show($id)
{
$data['sale_channel'] = SaleChannels::get($id);
return view('Admin.Shop.SaleChannels.view', $data);
}
public function edit($id)
{
$data['sale_channel'] = SaleChannels::get($id);
return view('Admin.Shop.SaleChannels.edit', $data);
}
public function destroy($id)
{
return SaleChannels::destroy($id);
}
}

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Tags;
use App\Repositories\Shop\TagGroups;
use App\Datatables\Shop\TagsDataTable;
class TagController extends Controller
{
public function index(TagsDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Tags.list');
}
public function getDatatable(Request $request)
{
return Tags::getTables($request->all());
}
public function create()
{
$data = [];
$data['tag_groups'] = TagGroups::getOptions();
return view('Admin.Shop.Tags.create', $data);
}
public function store(Request $request)
{
$ret = Tags::store($request->all());
return redirect()->route('Admin.Shop.Tags.index');
}
public function show($id)
{
$data = Tags::get($id);
return view('Admin.Shop.Tags.view', $data);
}
public function edit($id)
{
$data = Tags::get($id);
$data['tag_groups'] = TagGroups::getOptions();
return view('Admin.Shop.Tags.edit', $data);
}
public function update(Request $request)
{
//
}
public function destroy($id)
{
return Tags::destroy($id);
}
}

View File

@@ -0,0 +1,58 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\TagGroups;
use App\Repositories\Shop\ArticleNatures;
use App\Datatables\Shop\TagGroupsDataTable;
class TagGroupController extends Controller
{
public function index(TagGroupsDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.TagGroups.list');
}
public function getDatatable(Request $request)
{
return TagGroups::getTables($request->all());
}
public function create()
{
$data['article_families'] = ArticleNatures::getOptions();
return view('Admin.Shop.TagGroups.create', $data);
}
public function store(Request $request)
{
$ret = TagGroups::store($request->all());
return redirect()->route('Admin.Shop.TagGroups.index');
}
public function show($id)
{
$data = TagGroups::get($id);
return view('Admin.Shop.TagGroups.view', $data);
}
public function edit($id)
{
$data = TagGroups::get($id);
$data['article_families'] = ArticleNatures::getOptions();
return view('Admin.Shop.TagGroups.edit', $data);
}
public function update(Request $request)
{
//
}
public function destroy($id)
{
return TagGroups::destroy($id);
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\SaleChannels;
use App\Repositories\Shop\Tariffs;
use App\Repositories\Shop\TariffUnities;
use App\Datatables\Shop\TariffsDataTable;
use App\Datatables\Shop\PriceListsDataTable;
class TariffController extends Controller
{
public function autocomplete(Request $request, $str = false)
{
$str = $str ? $str : $request->input('q');
return response()->json(Tariffs::autocomplete($str));
}
public function index(TariffsDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Tariffs.list');
}
public function create()
{
$data['sale_channels'] = SaleChannels::getOptions();
$data['statuses'] = Tariffs::getStatuses();
$data['tariff_unities'] = TariffUnities::getOptions();
$model = new PriceListsDataTable();
$data['datatables']['price_lists'] = $model->html();
return view('Admin.Shop.Tariffs.create', $data);
}
public function show($id)
{
$data['tariff'] = Tariffs::getFull($id);
return view('Admin.Shop.Tariffs.view', $data);
}
public function edit($id)
{
$data['tariff'] = Tariffs::get($id);
$data['sale_channels'] = SaleChannels::getOptions();
$data['statuses'] = Tariffs::getStatuses();
$data['tariff_unities'] = TariffUnities::getOptions();
$model = new PriceListsDataTable();
$data['datatables']['price_lists'] = $model->html();
return view('Admin.Shop.Tariffs.edit', $data);
}
public function store(Request $request)
{
$ret = Tariffs::store($request->all());
return redirect()->route('Admin.Shop.Tariffs.index');
}
public function destroy($id)
{
return Tariffs::destroy($id);
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Taxes;
class TaxController extends Controller
{
public function index(TaxesDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Taxes.list');
}
public function getDatatable(Request $request)
{
return Taxes::getTables($request->all());
}
public function create()
{
$data = [];
$data['groups'] = TagGroups::getOptions();
return view('Admin.Shop.Taxes.create', $data);
}
public function store(Request $request)
{
$ret = Taxes::store($request->all());
return redirect()->route('Admin.Shop.Taxes.index');
}
public function show($id)
{
$data = Taxes::get($id);
return view('Admin.Shop.Taxes.view', $data);
}
public function edit($id)
{
$data = Taxes::get($id);
$data['groups'] = TagGroups::getOptions();
return view('Admin.Shop.Taxes.edit', $data);
}
public function update(Request $request)
{
//
}
public function destroy($id)
{
return Taxes::destroy($id);
}
}

View File

@@ -0,0 +1,66 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\ArticleNatures;
use App\Repositories\Shop\Packages;
use App\Repositories\Shop\Unities;
use App\Datatables\Shop\UnitiesDataTable;
class UnityController extends Controller
{
public function index(UnitiesDataTable $dataTable)
{
$data['families'] = ArticleNatures::getOptions();
$data['packages'] = Packages::getOptions();
return $dataTable->render('Admin.Shop.Unities.list', $data);
}
public function getDatatable(Request $request)
{
return Unities::getTables($request->all());
}
public function getOptionsByPackage(Request $request)
{
$id = $request->input('package_id');
return response()->json(Unities::getOptionsByPackage($id));
}
public function create()
{
$data['packages'] = Packages::getOptions();
return view('Admin.Shop.Unities.create');
}
public function store(Request $request)
{
$ret = Unities::store($request->all());
return redirect()->route('Admin.Shop.Unities.index');
}
public function show($id)
{
$data = Unities::get($id);
return view('Admin.Shop.Unities.view', $data);
}
public function edit($id)
{
$data['packages'] = Packages::getOptions();
$data['unity'] = Unities::get($id)->toArray();
return view('Admin.Shop.Unities.edit', $data);
}
public function destroy($id)
{
return Unities::destroy($id);
}
public function update($id)
{
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Packages;
use App\Repositories\Shop\Unities;
use App\Repositories\Shop\Variations;
use App\Datatables\Shop\VariationsDataTable;
class VariationController extends Controller
{
public function autocomplete(Request $request, $str = false)
{
$str = $str ? $str : $request->input('q');
return response()->json(Variations::autocomplete($str));
}
public function index(VariationsDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Variations.list');
}
public function create()
{
$data['packages'] = Packages::getOptions();
$data['unities'] = Unities::getOptions();
return view('Admin.Shop.Variations.create', $data);
}
public function edit($id)
{
$data['variation'] = Variations::get($id);
$data['packages'] = Packages::getOptions();
$data['unities'] = Unities::getOptions();
return view('Admin.Shop.Variations.edit', $data);
}
public function store(Request $request)
{
$ret = Variations::store($request->all());
return redirect()->route('Admin.Shop.Variations.index');
}
public function show($id)
{
$data = Variations::get($id);
return view('Admin.Shop.Variations.view', $data);
}
public function destroy($id)
{
return Variations::destroy($id);
}
}