/home/techb158/immovalet.com/platform/plugins/ecommerce/src/Tables
NameSizeModeActions
Reports/-0755rm
BrandTable.php53540644editdlrm
CustomerTable.php46940644editdlrm
DiscountTable.php42770644editdlrm
FlashSaleTable.php43380644editdlrm
OrderIncompleteTable.php32180644editdlrm
OrderTable.php66480644editdlrm
ProductAttributeSetsTable.php53410644editdlrm
ProductCategoryTable.php56840644editdlrm
ProductCollectionTable.php56820644editdlrm
ProductLabelTable.php44180644editdlrm
ProductTable.php82690644editdlrm
ProductTagTable.php43360644editdlrm
ReviewTable.php53900644editdlrm
TaxTable.php46640644editdlrm
Edit: /home/techb158/immovalet.com/platform/plugins/ecommerce/src/Tables/ProductTable.php (8269B)
repository = $productRepository; if (!Auth::user()->hasAnyPermission(['products.edit', 'products.destroy'])) { $this->hasOperations = false; $this->hasActions = false; } } /** * {@inheritDoc} */ public function ajax() { $data = $this->table ->eloquent($this->query()) ->editColumn('name', function ($item) { if (!Auth::user()->hasPermission('products.edit')) { return $item->name; } return Html::link(route('products.edit', $item->id), $item->name); }) ->editColumn('image', function ($item) { if ($this->request()->input('action') == 'csv') { return RvMedia::getImageUrl($item->image, null, false, RvMedia::getDefaultImage()); } if ($this->request()->input('action') == 'excel') { return RvMedia::getImageUrl($item->image, 'thumb', false, RvMedia::getDefaultImage()); } return $this->displayThumbnail($item->image); }) ->editColumn('checkbox', function ($item) { return $this->getCheckbox($item->id); }) ->editColumn('price', function ($item) { $price = format_price($item->front_sale_price); if ($item->front_sale_price != $item->price) { $price .= ' ' . format_price($item->price) . ''; } return $price; }) ->editColumn('quantity', function ($item) { return $item->with_storehouse_management ? $item->quantity : '∞'; }) ->editColumn('sku', function ($item) { return $item->sku ?: '—'; }) ->editColumn('order', function ($item) { return view('plugins/ecommerce::products.partials.sort-order', compact('item'))->render(); }) ->editColumn('created_at', function ($item) { return BaseHelper::formatDate($item->created_at); }) ->editColumn('status', function ($item) { return $item->status->toHtml(); }) ->editColumn('stock_status', function ($item) { return $item->stock_status_html; }) ->addColumn('operations', function ($item) { return $this->getOperations('products.edit', 'products.destroy', $item); }); return $this->toJson($data); } /** * {@inheritDoc} */ public function query() { $query = $this->repository->getModel() ->select([ 'id', 'name', 'order', 'created_at', 'status', 'sku', 'images', 'price', 'sale_price', 'sale_type', 'start_date', 'end_date', 'quantity', 'with_storehouse_management', 'stock_status', ]) ->where('is_variation', 0); return $this->applyScopes($query); } /** * {@inheritDoc} */ public function htmlDrawCallbackFunction(): ?string { return parent::htmlDrawCallbackFunction() . '$(".editable").editable();'; } /** * {@inheritDoc} */ public function columns() { return [ 'id' => [ 'title' => trans('core/base::tables.id'), 'width' => '20px', ], 'image' => [ 'name' => 'images', 'title' => trans('plugins/ecommerce::products.image'), 'width' => '100px', 'class' => 'text-center', ], 'name' => [ 'title' => trans('core/base::tables.name'), 'class' => 'text-left', ], 'price' => [ 'title' => trans('plugins/ecommerce::products.price'), 'class' => 'text-left', ], 'stock_status' => [ 'title' => trans('plugins/ecommerce::products.stock_status'), 'class' => 'text-left', ], 'quantity' => [ 'title' => trans('plugins/ecommerce::products.quantity'), 'class' => 'text-left', ], 'sku' => [ 'title' => trans('plugins/ecommerce::products.sku'), 'class' => 'text-left', ], 'order' => [ 'title' => trans('core/base::tables.order'), 'width' => '50px', 'class' => 'text-center', ], 'created_at' => [ 'title' => trans('core/base::tables.created_at'), 'width' => '100px', 'class' => 'text-center', ], 'status' => [ 'title' => trans('core/base::tables.status'), 'width' => '100px', 'class' => 'text-center', ], ]; } /** * {@inheritDoc} */ public function buttons() { return $this->addCreateButton(route('products.create'), 'products.create'); } /** * {@inheritDoc} */ public function bulkActions(): array { return $this->addDeleteAction(route('products.deletes'), 'products.destroy', parent::bulkActions()); } /** * {@inheritDoc} */ public function getBulkChanges(): array { return [ 'name' => [ 'title' => trans('core/base::tables.name'), 'type' => 'text', 'validate' => 'required|max:120', ], 'order' => [ 'title' => trans('core/base::tables.order'), 'type' => 'number', 'validate' => 'required|min:0', ], 'status' => [ 'title' => trans('core/base::tables.status'), 'type' => 'select', 'choices' => BaseStatusEnum::labels(), 'validate' => 'required|in:' . implode(',', BaseStatusEnum::values()), ], 'created_at' => [ 'title' => trans('core/base::tables.created_at'), 'type' => 'date', ], ]; } /** * {@inheritDoc} */ public function renderTable($data = [], $mergeData = []) { if ($this->query()->count() === 0 && !$this->request()->wantsJson() && $this->request()->input('filter_table_id') !== $this->getOption('id') ) { return view('plugins/ecommerce::products.intro'); } return parent::renderTable($data, $mergeData); } /** * {@inheritDoc} */ public function getDefaultButtons(): array { return [ 'export', 'reload', ]; } }