diff --git a/config/app.php b/config/app.php index 641348c19..32959e3f4 100644 --- a/config/app.php +++ b/config/app.php @@ -93,6 +93,28 @@ return [ 'fallback_locale' => 'en', + /* + |-------------------------------------------------------------------------- + | Base Currency Code + |-------------------------------------------------------------------------- + | + | Here you may specify the base currency code for your application. + | + */ + + 'currency' => 'USD', + + /* + |-------------------------------------------------------------------------- + | Default channel Code + |-------------------------------------------------------------------------- + | + | Here you may specify the default channel code for your application. + | + */ + + 'channel' => 'default', + /* |-------------------------------------------------------------------------- | Encryption Key diff --git a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php index 640e10ebd..982033ebc 100644 --- a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php @@ -29,10 +29,10 @@ class AttributeDataGrid 'name' => 'Attributes', 'table' => 'attributes', 'select' => 'id', - 'perpage' => 10, - 'aliased' => false, //use this with false as default and true in case of joins + 'perpage' => 5, + 'aliased' => true, - 'massoperations' =>[ + 'massoperations' => [ [ 'route' => route('admin.datagrid.delete'), 'method' => 'DELETE', @@ -55,20 +55,11 @@ class AttributeDataGrid ], ], - 'join' => [ - // [ - // 'join' => 'leftjoin', - // 'table' => 'roles as r', - // 'primaryKey' => 'u.role_id', - // 'condition' => '=', - // 'secondaryKey' => 'r.id', - // ] - ], + 'join' => [], //use aliasing on secodary columns if join is performed 'columns' => [ - [ 'name' => 'id', 'alias' => 'attributeId', @@ -95,73 +86,106 @@ class AttributeDataGrid 'alias' => 'attributeType', 'type' => 'string', 'label' => 'Type', - 'sortable' => true, + 'sortable' => false, ], [ 'name' => 'is_required', 'alias' => 'attributeIsRequired', 'type' => 'string', 'label' => 'Required', - 'sortable' => true, + 'sortable' => false, + 'wrapper' => function ($value) { + if($value == 0) + return "False"; + else + return "True"; + }, ], [ 'name' => 'is_unique', 'alias' => 'attributeIsUnique', 'type' => 'string', 'label' => 'Unique', - 'sortable' => true, + 'sortable' => false, + 'wrapper' => function ($value) { + if($value == 0) + return "False"; + else + return "True"; + }, ], [ 'name' => 'value_per_locale', 'alias' => 'attributeValuePerLocale', 'type' => 'string', 'label' => 'ValuePerLocale', - 'sortable' => true, + 'sortable' => false, + 'wrapper' => function ($value) { + if($value == 0) + return "False"; + else + return "True"; + }, ], [ 'name' => 'value_per_channel', 'alias' => 'attributeValuePerChannel', 'type' => 'string', 'label' => 'ValuePerChannel', - 'sortable' => true, + 'sortable' => false, + 'wrapper' => function ($value) { + if($value == 0) + return "False"; + else + return "True"; + }, ], - ], 'filterable' => [ - // [ - // 'column' => 'id', - // 'alias' => 'attribute_family_id', - // 'type' => 'number', - // 'label' => 'ID', - // ], - // [ - // 'column' => 'code', - // 'alias' => 'attribute_family_code', - // 'type' => 'string', - // 'label' => 'Code', - // ], - // [ - // 'column' => 'name', - // 'alias' => 'attribute_family_name', - // 'type' => 'string', - // 'label' => 'Name', - // ], + [ + 'column' => 'id', + 'alias' => 'attributeId', + 'type' => 'number', + 'label' => 'ID', + ], + [ + 'column' => 'code', + 'alias' => 'attributeCode', + 'type' => 'string', + 'label' => 'Code', + ], + [ + 'column' => 'admin_name', + 'alias' => 'attributeAdminName', + 'type' => 'string', + 'label' => 'AdminName', + ], + [ + 'column' => 'type', + 'alias' => 'attributeType', + 'type' => 'string', + 'label' => 'Type', + ], ], //don't use aliasing in case of searchables - 'searchable' => [ - // [ - // 'column' => 'name', - // 'type' => 'string', - // 'label' => 'Name', - // ], - // [ - // 'column' => 'code', - // 'type' => 'string', - // 'label' => 'Code', - // ], + [ + 'column' => 'code', + 'alias' => 'attributeCode', + 'type' => 'string', + ], + [ + 'column' => 'admin_name', + 'alias' => 'attributeAdminName', + 'type' => 'string', + ], + [ + 'column' => 'type', + 'alias' => 'attributeType', + 'type' => 'string', + ], ], //list of viable operators that will be used @@ -176,16 +200,14 @@ class AttributeDataGrid 'like' => "like", 'nlike' => "not like", ], - // 'css' => [] + // 'css' => [] ]); } public function render() { - return $this->createAttributeDataGrid()->render(); - } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php index 5f85e2f2d..08012cfb2 100644 --- a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php @@ -69,7 +69,6 @@ class CategoryDataGrid 'condition' => '=', 'secondaryKey' => 'cta.category_id', ], - ], //use aliasing on secodary columns if join is performed @@ -105,44 +104,56 @@ class CategoryDataGrid 'type' => 'string', 'label' => 'Visible in Menu', 'sortable' => true, + 'wrapper' => function ($value) { + if($value == 0) + return "False"; + else + return "True"; + }, ], ], 'filterable' => [ - // [ - // 'column' => 'id', - // 'alias' => 'attribute_family_id', - // 'type' => 'number', - // 'label' => 'ID', - // ], - // [ - // 'column' => 'code', - // 'alias' => 'attribute_family_code', - // 'type' => 'string', - // 'label' => 'Code', - // ], - // [ - // 'column' => 'name', - // 'alias' => 'attribute_family_name', - // 'type' => 'string', - // 'label' => 'Name', - // ], + [ + 'column' => 'cat.id', + 'alias' => 'catID', + 'type' => 'number', + 'label' => 'Category ID', + ], [ + 'column' => 'ct.name', + 'alias' => 'catName', + 'type' => 'string', + 'label' => 'Category Name', + ], [ + 'column' => 'cta.name', + 'alias' => 'parentName', + 'type' => 'string', + 'label' => 'Parent Name', + ], [ + 'column' => 'cat.status', + 'alias' => 'catStatus', + 'type' => 'string', + 'label' => 'Visible in Menu', + ], ], //don't use aliasing in case of searchables 'searchable' => [ - // [ - // 'column' => 'name', - // 'type' => 'string', - // 'label' => 'Name', - // ], - // [ - // 'column' => 'code', - // 'type' => 'string', - // 'label' => 'Code', - // ], + [ + 'column' => 'cat.id', + 'type' => 'number', + 'label' => 'Category ID', + ], [ + 'column' => 'ct.name', + 'type' => 'string', + 'label' => 'Category Name', + ], [ + 'column' => 'cat.status', + 'type' => 'string', + 'label' => 'Visible in Menu', + ] ], //list of viable operators that will be used @@ -158,14 +169,11 @@ class CategoryDataGrid 'nlike' => "not like", ], // 'css' => [] - ]); - } public function render() { - return $this->createCategoryDataGrid()->render(); } diff --git a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php index 592b0f5b4..070694ca2 100644 --- a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php @@ -30,14 +30,14 @@ class CustomerDataGrid 'table' => 'customers', 'select' => 'id', 'perpage' => 10, - 'aliased' => false, //use this with false as default and true in case of joins + 'aliased' => true, //use this with false as default and true in case of joins 'massoperations' =>[ [ 'route' => route('admin.datagrid.delete'), 'method' => 'DELETE', 'label' => 'Delete', - 'type' => 'button', + 'type' => 'button', //select || button only ], ], @@ -56,53 +56,45 @@ class CustomerDataGrid ], 'join' => [ - // [ - // 'join' => 'leftjoin', - // 'table' => 'roles as r', - // 'primaryKey' => 'u.role_id', - // 'condition' => '=', - // 'secondaryKey' => 'r.id', - // ] + ], //use aliasing on secodary columns if join is performed - 'columns' => [ - [ 'name' => 'id', - 'alias' => 'customerId', + 'alias' => 'ID', 'type' => 'number', - 'label' => 'ID', + 'label' => 'Customer ID', 'sortable' => true, ], [ 'name' => 'first_name', - 'alias' => 'customerFirstName', + 'alias' => 'FirstName', 'type' => 'string', - 'label' => 'Name', - 'sortable' => true, + 'label' => 'Customer First Name', + 'sortable' => false, ], [ 'name' => 'email', - 'alias' => 'customerEmail', + 'alias' => 'Email', 'type' => 'string', - 'label' => 'Email', - 'sortable' => true, + 'label' => 'Customer E-Mail', + 'sortable' => false, ], [ 'name' => 'phone', - 'alias' => 'customerPhone', + 'alias' => 'Phone', 'type' => 'number', - 'label' => 'Phone', + 'label' => 'Customer Phone', 'sortable' => true, ], [ 'name' => 'customer_group_id', - 'alias' => 'customerGroupId', + 'alias' => 'CustomerGroupId', 'type' => 'number', 'label' => 'Customer Group', - 'sortable' => true, + 'sortable' => false, ], ], @@ -111,49 +103,31 @@ class CustomerDataGrid 'filterable' => [ [ - 'name' => 'id', - 'alias' => 'customerId', + 'column' => 'id', + 'alias' => 'ID', 'type' => 'number', - 'label' => 'ID', + 'label' => 'Customer ID', ], [ - 'name' => 'first_name', - 'alias' => 'customerFirstName', + 'column' => 'first_name', + 'alias' => 'FirstName', 'type' => 'string', - 'label' => 'Name', - ], - [ - 'name' => 'email', - 'alias' => 'customerEmail', - 'type' => 'string', - 'label' => 'Email', - ], - [ - 'name' => 'phone', - 'alias' => 'customerPhone', - 'type' => 'number', - 'label' => 'Phone', - ], - [ - 'name' => 'customer_group_id', - 'alias' => 'customerGroupId', - 'type' => 'string', - 'label' => 'Customer Group', - ], + 'label' => 'Customer First Name', + ] ], //don't use aliasing in case of searchables 'searchable' => [ [ - 'column' => 'first_name', + 'column' => 'FirstName', 'type' => 'string', - 'label' => 'Title', + 'label' => 'Customer First Name', ], [ 'column' => 'email', 'type' => 'string', - 'label' => 'Rating', + 'label' => 'Customer E-Mail', ], ], diff --git a/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php index fff921c47..2360e9e89 100644 --- a/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php @@ -19,7 +19,7 @@ class CustomerReviewDataGrid * The CustomerReviewDataGrid * implementation. * - * @var ReviewsDataGrid + * @var CustomerReviewsDataGrid * for Reviews */ @@ -57,13 +57,6 @@ class CustomerReviewDataGrid ], 'join' => [ - // [ - // 'join' => 'leftjoin', - // 'table' => 'roles as r', - // 'primaryKey' => 'u.role_id', - // 'condition' => '=', - // 'secondaryKey' => 'r.id', - // ] ], //use aliasing on secodary columns if join is performed @@ -76,67 +69,51 @@ class CustomerReviewDataGrid 'type' => 'number', 'label' => 'ID', 'sortable' => true, - ], - [ + ], [ 'name' => 'title', 'alias' => 'titleName', 'type' => 'string', 'label' => 'Title', 'sortable' => true, - ], - [ - 'name' => 'rating', - 'alias' => 'productRating', - 'type' => 'number', - 'label' => 'Rating', - 'sortable' => true, - ], - [ + ], [ 'name' => 'comment', 'alias' => 'productComment', 'type' => 'string', 'label' => 'Comment', 'sortable' => true, - ], - [ + ], [ 'name' => 'status', 'alias' => 'reviewStatus', 'type' => 'number', 'label' => 'Status', 'sortable' => true, ], - ], //don't use aliasing in case of filters - 'filterable' => [ [ - 'name' => 'id', + 'column' => 'id', 'alias' => 'reviewId', 'type' => 'number', 'label' => 'ID', - ], - [ - 'name' => 'title', + ], [ + 'column' => 'title', 'alias' => 'titleName', 'type' => 'string', 'label' => 'Title', - ], - [ - 'name' => 'rating', + ], [ + 'column' => 'rating', 'alias' => 'productRating', 'type' => 'number', 'label' => 'Rating', - ], - [ - 'name' => 'comment', + ], [ + 'column' => 'comment', 'alias' => 'productComment', 'type' => 'string', 'label' => 'Comment', - ], - [ - 'name' => 'status', + ], [ + 'column' => 'status', 'alias' => 'reviewStatus', 'type' => 'string', 'label' => 'Status', @@ -144,14 +121,12 @@ class CustomerReviewDataGrid ], //don't use aliasing in case of searchables - 'searchable' => [ [ 'column' => 'title', 'type' => 'string', 'label' => 'Title', - ], - [ + ], [ 'column' => 'rating', 'type' => 'number', 'label' => 'Rating', diff --git a/packages/Webkul/Admin/src/DataGrids/ExchangeRatesDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ExchangeRatesDataGrid.php index af954a73a..9d4f085e0 100644 --- a/packages/Webkul/Admin/src/DataGrids/ExchangeRatesDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ExchangeRatesDataGrid.php @@ -76,13 +76,6 @@ class ExchangeRatesDataGrid 'label' => 'Rate ID', 'sortable' => true, ], - [ - 'name' => 'source_currency', - 'alias' => 'exchSourceCurrency', - 'type' => 'string', - 'label' => 'Source Currency', - 'sortable' => true, - ], [ 'name' => 'target_currency', 'alias' => 'exchTargetCurrency', @@ -91,10 +84,10 @@ class ExchangeRatesDataGrid 'sortable' => true, ], [ - 'name' => 'ratio', - 'alias' => 'exchRatio', + 'name' => 'rate', + 'alias' => 'exchRate', 'type' => 'string', - 'label' => 'Exchange Ratio', + 'label' => 'Exchange Rate', ], ], @@ -108,13 +101,6 @@ class ExchangeRatesDataGrid 'type' => 'number', 'label' => 'Rate ID', ], - [ - 'column' => 'source_currency', - 'alias' => 'exchSourceCurrency', - 'type' => 'string', - 'label' => 'Source Currency', - 'sortable' => true, - ], [ 'column' => 'target_currency', 'alias' => 'exchTargetCurrency', @@ -127,11 +113,6 @@ class ExchangeRatesDataGrid //don't use aliasing in case of searchables 'searchable' => [ - [ - 'column' => 'source_currency', - 'type' => 'string', - 'label' => 'Source Currency', - ], [ 'column' => 'target_currency', 'type' => 'string', diff --git a/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php b/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php index 876587c00..85d091a3b 100644 --- a/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php @@ -64,7 +64,6 @@ class InventorySourcesDataGrid ], //use aliasing on secodary columns if join is performed - 'columns' => [ [ @@ -73,34 +72,36 @@ class InventorySourcesDataGrid 'type' => 'number', 'label' => 'ID', 'sortable' => true, - ], - [ + ], [ 'name' => 'code', 'alias' => 'inventoryCode', 'type' => 'string', 'label' => 'Code', - 'sortable' => true, - ], - [ + 'sortable' => false, + ], [ 'name' => 'name', 'alias' => 'inventoryName', 'type' => 'string', 'label' => 'Name', - 'sortable' => true, - ], - [ + 'sortable' => false, + ], [ 'name' => 'priority', 'alias' => 'inventoryPriority', 'type' => 'string', 'label' => 'Priority', 'sortable' => true, - ], - [ + ], [ 'name' => 'status', 'alias' => 'inventoryStatus', 'type' => 'string', 'label' => 'Status', 'sortable' => true, + 'wrapper' => function ($value) { + if($value == 0) + return "In Active"; + else + return "Active"; + }, ], ], diff --git a/packages/Webkul/Admin/src/DataGrids/OrderDataGrid.php b/packages/Webkul/Admin/src/DataGrids/OrderDataGrid.php new file mode 100644 index 000000000..5324637a4 --- /dev/null +++ b/packages/Webkul/Admin/src/DataGrids/OrderDataGrid.php @@ -0,0 +1,179 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ + +class OrderDataGrid +{ + /** + * The Data Grid implementation. + * + * @var AttributeDataGrid + * for countries + */ + + public function createCategoryDataGrid() + { + + return DataGrid::make([ + 'name' => 'Orders', + 'table' => 'orders as ord', + 'select' => 'ord.id', + 'perpage' => 5, + 'aliased' => true, //use this with false as default and true in case of joins + + 'massoperations' =>[ + [ + 'route' => route('admin.datagrid.delete'), + 'method' => 'DELETE', + 'label' => 'Delete', + 'type' => 'button', + ], + ], + + 'actions' => [ + [ + 'type' => 'Edit', + 'route' => route('admin.datagrid.delete'), + 'confirm_text' => 'Do you really want to do this?', + 'icon' => 'icon pencil-lg-icon', + ], [ + 'type' => 'Delete', + 'route' => route('admin.datagrid.delete'), + 'confirm_text' => 'Do you really want to do this?', + 'icon' => 'icon trash-icon', + ], + ], + + 'join' => [ + [ + 'join' => 'leftjoin', + 'table' => 'category_translations as ct', + 'primaryKey' => 'cat.id', + 'condition' => '=', + 'secondaryKey' => 'ct.category_id', + ], [ + 'join' => 'leftjoin', + 'table' => 'category_translations as cta', + 'primaryKey' => 'cat.parent_id', + 'condition' => '=', + 'secondaryKey' => 'cta.category_id', + ], + ], + + //use aliasing on secodary columns if join is performed + + 'columns' => [ + [ + 'name' => 'cat.id', + 'alias' => 'catID', + 'type' => 'number', + 'label' => 'Category ID', + 'sortable' => true, + ], [ + 'name' => 'ct.name', + 'alias' => 'catName', + 'type' => 'string', + 'label' => 'Category Name', + 'sortable' => false, + ], [ + 'name' => 'cat.position', + 'alias' => 'catPosition', + 'type' => 'string', + 'label' => 'Category Position', + 'sortable' => false, + ], [ + 'name' => 'cta.name', + 'alias' => 'parentName', + 'type' => 'string', + 'label' => 'Parent Name', + 'sortable' => true, + ], [ + 'name' => 'cat.status', + 'alias' => 'catStatus', + 'type' => 'string', + 'label' => 'Visible in Menu', + 'sortable' => true, + 'wrapper' => function ($value) { + if($value == 0) + return "False"; + else + return "True"; + }, + ], + + ], + + 'filterable' => [ + [ + 'column' => 'cat.id', + 'alias' => 'catID', + 'type' => 'number', + 'label' => 'Category ID', + ], [ + 'column' => 'ct.name', + 'alias' => 'catName', + 'type' => 'string', + 'label' => 'Category Name', + ], [ + 'column' => 'cta.name', + 'alias' => 'parentName', + 'type' => 'string', + 'label' => 'Parent Name', + ], [ + 'column' => 'cat.status', + 'alias' => 'catStatus', + 'type' => 'string', + 'label' => 'Visible in Menu', + ], + ], + + //don't use aliasing in case of searchables + + 'searchable' => [ + [ + 'column' => 'cat.id', + 'type' => 'number', + 'label' => 'Category ID', + ], [ + 'column' => 'ct.name', + 'type' => 'string', + 'label' => 'Category Name', + ], [ + 'column' => 'cat.status', + 'type' => 'string', + 'label' => 'Visible in Menu', + ] + ], + + //list of viable operators that will be used + 'operators' => [ + 'eq' => "=", + 'lt' => "<", + 'gt' => ">", + 'lte' => "<=", + 'gte' => ">=", + 'neqs' => "<>", + 'neqn' => "!=", + 'like' => "like", + 'nlike' => "not like", + ], + // 'css' => [] + ]); + } + + public function render() + { + return $this->createCategoryDataGrid()->render(); + + } +} \ No newline at end of file diff --git a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php index 25cf5249d..74e236511 100644 --- a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php @@ -129,25 +129,25 @@ class ProductDataGrid 'filterable' => [ //column, type, and label [ - 'name' => 'prods.id', + 'column' => 'prods.id', 'alias' => 'productID', 'type' => 'number', 'label' => 'ID', ], [ - 'name' => 'prods.sku', + 'column' => 'prods.sku', 'alias' => 'productCode', 'type' => 'string', 'label' => 'SKU', ], [ - 'name' => 'attfam.name', + 'column' => 'attfam.name', 'alias' => 'FamilyName', 'type' => 'string', 'label' => 'Family Name', ], [ - 'name' => 'pi.qty', + 'column' => 'pi.qty', 'alias' => 'ProductQuantity', 'type' => 'number', 'label' => 'Product Quatity', diff --git a/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php b/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php index 361c6cb43..759fb0f45 100644 --- a/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php @@ -67,28 +67,25 @@ class SliderDataGrid //use aliasing on secodary columns if join is performed 'columns' => [ - [ 'name' => 's.id', 'alias' => 'sliderId', 'type' => 'number', 'label' => 'ID', 'sortable' => true, - ], - [ + ], [ 'name' => 's.title', 'alias' => 'sliderTitle', 'type' => 'string', 'label' => 'title', - ], - [ + 'sortable' => false + ], [ 'name' => 's.channel_id', 'alias' => 'channelId', 'type' => 'string', 'label' => 'Channel ID', - 'sortable' => true, - ], - [ + 'sortable' => false, + ], [ 'name' => 'c.name', 'alias' => 'channelName', 'type' => 'string', @@ -98,41 +95,31 @@ class SliderDataGrid ], //don't use aliasing in case of filters - 'filterable' => [ [ - 'column' => 'id', - 'alias' => 'locale_id', + 'column' => 's.id', + 'alias' => 'sliderId', 'type' => 'number', - 'label' => 'ID', - ], - [ - 'column' => 'code', - 'alias' => 'locale_code', + 'label' => 'ID' + ], [ + 'column' => 's.title', + 'alias' => 'SliderTitle', 'type' => 'string', - 'label' => 'Code', - ], - [ - 'column' => 'name', - 'alias' => 'locale_name', - 'type' => 'string', - 'label' => 'Name', + 'label' => 'Slider Title' ], ], //don't use aliasing in case of searchables - 'searchable' => [ - // [ - // 'column' => 'name', - // 'type' => 'string', - // 'label' => 'Name', - // ], - // [ - // 'column' => 'code', - // 'type' => 'string', - // 'label' => 'Code', - // ], + [ + 'column' => 's.id', + 'type' => 'number', + 'label' => 'ID' + ], [ + 'column' => 's.title', + 'type' => 'string', + 'label' => 'Slider Title' + ] ], //list of viable operators that will be used @@ -148,9 +135,7 @@ class SliderDataGrid 'nlike' => "not like", ], // 'css' => [] - ]); - } public function render() diff --git a/packages/Webkul/Admin/src/DataGrids/TaxRuleDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TaxCategoryDataGrid.php similarity index 94% rename from packages/Webkul/Admin/src/DataGrids/TaxRuleDataGrid.php rename to packages/Webkul/Admin/src/DataGrids/TaxCategoryDataGrid.php index 753cbc779..d4e589a54 100644 --- a/packages/Webkul/Admin/src/DataGrids/TaxRuleDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TaxCategoryDataGrid.php @@ -6,26 +6,26 @@ use Illuminate\View\View; use Webkul\Ui\DataGrid\Facades\DataGrid; /** - * Tax Rules DataGrid + * Tax Category DataGrid * * @author Prashant Singh @prashant-webkul * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ -class TaxRuleDataGrid +class TaxCategoryDataGrid { /** - * The Tax Rule Data + * The Tax Category Data * Grid implementation. * - * @var TaxRuleDataGrid + * @var TaxCategoryDataGrid */ - public function createTaxRuleDataGrid() + public function createTaxCategoryDataGrid() { return DataGrid::make([ - 'name' => 'Tax Rule', + 'name' => 'Tax Category', 'table' => 'tax_categories as tr', 'select' => 'tr.id', 'perpage' => 10, @@ -154,7 +154,7 @@ class TaxRuleDataGrid public function render() { - return $this->createTaxRuleDataGrid()->render(); + return $this->createTaxCategoryDataGrid()->render(); } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php index be5b5c12e..f93464664 100644 --- a/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php @@ -15,7 +15,7 @@ use Webkul\Ui\DataGrid\Facades\DataGrid; class TaxRateDataGrid { /** - * The Tax Rule Data + * The Tax Category Data * Grid implementation. * * @var TaxRateDataGrid @@ -24,7 +24,6 @@ class TaxRateDataGrid { return DataGrid::make([ - 'name' => 'Tax Rates', 'table' => 'tax_rates as tr', 'select' => 'tr.id', @@ -64,21 +63,13 @@ class TaxRateDataGrid 'icon' => 'icon trash-icon', ], ], - 'join' => [ - // [ - // 'join' => 'leftjoin', - // 'table' => 'roles as r', - // 'primaryKey' => 'u.role_id', - // 'condition' => '=', - // 'secondaryKey' => 'r.id', - // ] - ], + 'join' => [], //use aliasing on secodary columns if join is performed 'columns' => [ [ 'name' => 'tr.id', - 'alias' => 'ID', + 'alias' => 'id', 'type' => 'number', 'label' => 'ID', 'sortable' => true, @@ -90,7 +81,7 @@ class TaxRateDataGrid 'label' => 'Identifier', 'sortable' => true, // 'wrapper' => function ($value, $object) { - // return '' . $object->Name . ''; + // return '' . $object->identifier . ''; // }, ], [ @@ -119,32 +110,27 @@ class TaxRateDataGrid //don't use aliasing in case of filters 'filterable' => [ [ - 'name' => 'tr.id', + 'column' => 'tr.id', 'alias' => 'ID', 'type' => 'number', 'label' => 'ID', - ], - [ - 'name' => 'tr.identifier', + ], [ + 'column' => 'tr.identifier', 'alias' => 'identifier', 'type' => 'string', 'label' => 'Identifier', - ], - [ - 'name' => 'tr.state', + ], [ + 'column' => 'tr.state', 'alias' => 'state', 'type' => 'string', 'label' => 'State', - ], - [ - 'name' => 'tr.country', + ], [ + 'column' => 'tr.country', 'alias' => 'country', 'type' => 'string', 'label' => 'Country', - ], - - [ - 'name' => 'tr.tax_rate', + ], [ + 'column' => 'tr.tax_rate', 'alias' => 'tax_rate', 'type' => 'number', 'label' => 'Tax Rate', @@ -157,22 +143,6 @@ class TaxRateDataGrid 'type' => 'string', 'label' => 'Identifier', ], - [ - 'column' => 'tr.state', - 'type' => 'string', - 'label' => 'State', - ], - [ - 'column' => 'tr.country', - 'type' => 'string', - 'label' => 'Country', - ], - - [ - 'column' => 'tr.tax_rate', - 'type' => 'number', - 'label' => 'Tax Rate', - ], ], 'operators' => [ 'eq' => "=", diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 043cf93be..0823264c1 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -88,7 +88,7 @@ Route::group(['middleware' => ['web']], function () { 'view' => 'admin::sales.orders.view' ])->name('admin.sales.orders.view'); - Route::get('/orders/cancel/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\OrderController@cancel')->defaults('_config', [ + Route::get('/orders/cancel/{id}', 'Webkul\Admin\Http\Controllers\Sales\OrderController@cancel')->defaults('_config', [ 'view' => 'admin::sales.orders.cancel' ])->name('admin.sales.orders.cancel'); @@ -197,6 +197,10 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.catalog.attributes.index' ])->name('admin.catalog.attributes.update'); + Route::get('/attributes/delete/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@destroy')->defaults('_config', [ + 'view' => 'admin::catalog.attributes.delete' + ])->name('admin.catalog.attributes.delete'); + // Catalog Family Routes Route::get('/families', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@index')->defaults('_config', [ @@ -367,8 +371,6 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.channels.index' ])->name('admin.channels.update'); - - // Admin Profile route Route::get('/account', 'Webkul\User\Http\Controllers\AccountController@edit')->defaults('_config', [ 'view' => 'admin::account.edit' @@ -396,7 +398,7 @@ Route::group(['middleware' => ['web']], function () { 'view' => 'admin::tax.tax-categories.index' ])->name('admin.tax-categories.index'); - // tax rule routes + // tax category routes Route::get('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@show')->defaults('_config', [ 'view' => 'admin::tax.tax-categories.create' ])->name('admin.tax-categories.show'); @@ -413,7 +415,7 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.tax-categories.index' ])->name('admin.tax-categories.update'); - //tax rule ends + //tax category ends //tax rate diff --git a/packages/Webkul/Admin/src/Listeners/Order.php b/packages/Webkul/Admin/src/Listeners/Order.php new file mode 100644 index 000000000..03a4dc033 --- /dev/null +++ b/packages/Webkul/Admin/src/Listeners/Order.php @@ -0,0 +1,47 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class Order { + + /** + * @param mixed $order + * + * Send new order confirmation mail to the customer + */ + public function sendNewOrderMail($order) + { + Mail::send(new NewOrderNotification($order)); + } + + /** + * @param mixed $invoice + * + * Send new invoice mail to the customer + */ + public function sendNewInvoiceMail($invoice) + { + Mail::send(new NewInvoiceNotification($invoice)); + } + + /** + * @param mixed $shipment + * + * Send new shipment mail to the customer + */ + public function sendNewShipmentMail($shipment) + { + Mail::send(new NewShipmentNotification($shipment)); + } +} \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Mail/NewInvoiceNotification.php b/packages/Webkul/Admin/src/Mail/NewInvoiceNotification.php new file mode 100644 index 000000000..9f760be4e --- /dev/null +++ b/packages/Webkul/Admin/src/Mail/NewInvoiceNotification.php @@ -0,0 +1,51 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class NewInvoiceNotification extends Mailable +{ + use Queueable, SerializesModels; + + /** + * The invoice instance. + * + * @var Invoice + */ + public $invoice; + + /** + * Create a new message instance. + * + * @param mixed $invoice + * @return void + */ + public function __construct($invoice) + { + $this->invoice = $invoice; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + $order = $this->invoice->order; + + return $this->to($order->customer_email, $order->customer_full_name) + ->subject(trans('admin::app.mail.invoice.subject', ['order_id' => $order->id])) + ->view('admin::emails.sales.new-invoice'); + } +} diff --git a/packages/Webkul/Admin/src/Mail/NewOrderNotification.php b/packages/Webkul/Admin/src/Mail/NewOrderNotification.php new file mode 100644 index 000000000..51940d1a8 --- /dev/null +++ b/packages/Webkul/Admin/src/Mail/NewOrderNotification.php @@ -0,0 +1,48 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class NewOrderNotification extends Mailable +{ + use Queueable, SerializesModels; + + /** + * The order instance. + * + * @var Order + */ + public $order; + + /** + * Create a new message instance. + * + * @return void + */ + public function __construct($order) + { + $this->order = $order; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this->to($this->order->customer_email, $this->order->customer_full_name) + ->subject(trans('admin::app.mail.order.subject')) + ->view('admin::emails.sales.new-order'); + } +} diff --git a/packages/Webkul/Admin/src/Mail/NewShipmentNotification.php b/packages/Webkul/Admin/src/Mail/NewShipmentNotification.php new file mode 100644 index 000000000..5c8717581 --- /dev/null +++ b/packages/Webkul/Admin/src/Mail/NewShipmentNotification.php @@ -0,0 +1,51 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class NewShipmentNotification extends Mailable +{ + use Queueable, SerializesModels; + + /** + * The shipment instance. + * + * @var Shipment + */ + public $shipment; + + /** + * Create a new message instance. + * + * @param mixed $shipment + * @return void + */ + public function __construct($shipment) + { + $this->shipment = $shipment; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + $order = $this->shipment->order; + + return $this->to($order->customer_email, $order->customer_full_name) + ->subject(trans('admin::app.mail.shipment.subject', ['order_id' => $order->id])) + ->view('admin::emails.sales.new-shipment'); + } +} diff --git a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php index 6e857bbbe..0ed37ee12 100644 --- a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php @@ -10,6 +10,160 @@ use Webkul\Admin\ProductFormAccordian; class EventServiceProvider extends ServiceProvider { + protected $menuItems = [ + [ + 'key' => 'dashboard', + 'name' => 'Dashboard', + 'route' => 'admin.dashboard.index', + 'sort' => 1, + 'icon-class' => 'dashboard-icon', + ], [ + 'key' => 'sales', + 'name' => 'Sales', + 'route' => 'admin.sales.orders.index', + 'sort' => 2, + 'icon-class' => 'sales-icon', + ], [ + 'key' => 'catalog', + 'name' => 'Catalog', + 'route' => 'admin.catalog.products.index', + 'sort' => 3, + 'icon-class' => 'catalog-icon', + ], [ + 'key' => 'catalog.products', + 'name' => 'Products', + 'route' => 'admin.catalog.products.index', + 'sort' => 1, + 'icon-class' => '', + ], [ + 'key' => 'catalog.categories', + 'name' => 'Categories', + 'route' => 'admin.catalog.categories.index', + 'sort' => 2, + 'icon-class' => '', + ], [ + 'key' => 'catalog.attributes', + 'name' => 'Attributes', + 'route' => 'admin.catalog.attributes.index', + 'sort' => 3, + 'icon-class' => '', + ], [ + 'key' => 'catalog.families', + 'name' => 'Families', + 'route' => 'admin.catalog.families.index', + 'sort' => 4, + 'icon-class' => '', + ], [ + 'key' => 'customers', + 'name' => 'Customers', + 'route' => 'admin.customer.index', + 'sort' => 4, + 'icon-class' => 'customer-icon', + ], [ + 'key' => 'customers.customers', + 'name' => 'Customers', + 'route' => 'admin.customer.index', + 'sort' => 1, + 'icon-class' => '', + ], [ + 'key' => 'customers.reviews', + 'name' => 'Reviews', + 'route' => 'admin.customer.review.index', + 'sort' => 2, + 'icon-class' => '', + ], [ + 'key' => 'configuration', + 'name' => 'Configure', + 'route' => 'admin.account.edit', + 'sort' => 5, + 'icon-class' => 'configuration-icon', + ], [ + 'key' => 'configuration.account', + 'name' => 'My Account', + 'route' => 'admin.account.edit', + 'sort' => 1, + 'icon-class' => '', + ], [ + 'key' => 'settings', + 'name' => 'Settings', + 'route' => 'admin.locales.index', + 'sort' => 6, + 'icon-class' => 'settings-icon', + ], [ + 'key' => 'settings.locales', + 'name' => 'Locales', + 'route' => 'admin.locales.index', + 'sort' => 1, + 'icon-class' => '', + ], [ + 'key' => 'settings.currencies', + 'name' => 'Currencies', + 'route' => 'admin.currencies.index', + 'sort' => 2, + 'icon-class' => '', + ], [ + 'key' => 'settings.exchange_rates', + 'name' => 'Exchange Rates', + 'route' => 'admin.exchange_rates.index', + 'sort' => 3, + 'icon-class' => '', + ], [ + 'key' => 'settings.inventory_sources', + 'name' => 'Inventory Sources', + 'route' => 'admin.inventory_sources.index', + 'sort' => 4, + 'icon-class' => '', + ], [ + 'key' => 'settings.channels', + 'name' => 'Channels', + 'route' => 'admin.channels.index', + 'sort' => 5, + 'icon-class' => '', + ], [ + 'key' => 'settings.users', + 'name' => 'Users', + 'route' => 'admin.users.index', + 'sort' => 6, + 'icon-class' => '', + ], [ + 'key' => 'settings.users.users', + 'name' => 'Users', + 'route' => 'admin.users.index', + 'sort' => 1, + 'icon-class' => '', + ], [ + 'key' => 'settings.users.roles', + 'name' => 'Roles', + 'route' => 'admin.roles.index', + 'sort' => 2, + 'icon-class' => '', + ], [ + 'key' => 'settings.sliders', + 'name' => 'Create Sliders', + 'route' => 'admin.sliders.index', + 'sort' => 7, + 'icon-class' => '', + ], [ + 'key' => 'settings.taxes', + 'name' => 'Taxes', + 'route' => 'admin.tax-categories.index', + 'sort' => 8, + 'icon-class' => '', + ], [ + 'key' => 'settings.taxes.tax-categories', + 'name' => 'Tax Categories', + 'route' => 'admin.tax-categories.index', + 'sort' => 1, + 'icon-class' => '', + ], [ + 'key' => 'settings.taxes.tax-rates', + 'name' => 'Tax Rates', + 'route' => 'admin.tax-rates.index', + 'sort' => 2, + 'icon-class' => '', + ], + ]; + /** * Bootstrap services. * @@ -24,6 +178,12 @@ class EventServiceProvider extends ServiceProvider $this->registerACL(); $this->createProductFormAccordian(); + + Event::listen('checkout.order.save.after', 'Webkul\Admin\Listeners\Order@sendNewOrderMail'); + + Event::listen('checkout.invoice.save.after', 'Webkul\Admin\Listeners\Order@sendNewInvoiceMail'); + + Event::listen('checkout.invoice.save.after', 'Webkul\Admin\Listeners\Order@sendNewShipmentMail'); } /** @@ -40,59 +200,11 @@ class EventServiceProvider extends ServiceProvider }); Event::listen('admin.menu.build', function ($menu) { - $menu->add('dashboard', 'Dashboard', 'admin.dashboard.index', 1, 'dashboard-icon'); - - $menu->add('sales', 'Sales', 'admin.sales.orders.index', 1, 'sales-icon'); - - $menu->add('catalog', 'Catalog', 'admin.catalog.products.index', 3, 'catalog-icon'); - - $menu->add('catalog.products', 'Products', 'admin.catalog.products.index', 1); - - $menu->add('catalog.categories', 'Categories', 'admin.catalog.categories.index', 2); - - $menu->add('catalog.attributes', 'Attributes', 'admin.catalog.attributes.index', 3); - - $menu->add('catalog.families', 'Families', 'admin.catalog.families.index', 4); - - $menu->add('customers', 'Customers', 'admin.customer.index', 5, 'customer-icon'); - - $menu->add('customers.customers', 'Customers', 'admin.customer.index', 1, ''); - - $menu->add('customers.reviews', 'Review', 'admin.customer.review.index', 2, ''); - - // $menu->add('customers.blocked_customer', 'Blocked Customers', 'admin.account.edit', 2, ''); - - // $menu->add('customers.allowed_customer', 'Allowed Customers', 'admin.account.edit', 4, ''); - - $menu->add('configuration', 'Configure', 'admin.account.edit', 6, 'configuration-icon'); - - $menu->add('configuration.account', 'My Account', 'admin.account.edit', 1); - - $menu->add('settings', 'Settings', 'admin.locales.index', 6, 'settings-icon'); - - $menu->add('settings.locales', 'Locales', 'admin.locales.index', 1, ''); - - $menu->add('settings.currencies', 'Currencies', 'admin.currencies.index', 2, ''); - - $menu->add('settings.exchange_rates', 'Exchange Rates', 'admin.exchange_rates.index', 3, ''); - - $menu->add('settings.inventory_sources', 'Inventory Sources', 'admin.inventory_sources.index', 4, ''); - - $menu->add('settings.channels', 'Channels', 'admin.channels.index', 5, ''); - - $menu->add('settings.users', 'Users', 'admin.users.index', 6, ''); - - $menu->add('settings.users.users', 'Users', 'admin.users.index', 1, ''); - - $menu->add('settings.users.roles', 'Roles', 'admin.roles.index', 2, ''); - - $menu->add('settings.sliders', 'Create Sliders', 'admin.sliders.index', 8, ''); - - $menu->add('settings.tax', 'Taxes', 'admin.tax-categories.index', 9, ''); - - $menu->add('settings.tax.tax-categories', 'Add Tax Category', 'admin.tax-categories.index', 1, ''); - - $menu->add('settings.tax.tax-rates', 'Add Tax Rates', 'admin.tax-rates.index', 2, ''); + foreach($this->menuItems as $item){ + if (bouncer()->hasPermission($item['key'])) { + $menu->add($item['key'], $item['name'], $item['route'], $item['sort'], $item['icon-class']); + } + } }); } diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 721bf7771..1aee893ad 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -6,8 +6,11 @@ return [ 'country' => 'Country', 'state' => 'State' ], + 'dashboard' => [ + 'title' => 'Dashboard' + ], 'account' => [ - 'header-title' => 'My Account', + 'title' => 'My Account', 'save-btn-title' => 'Save', 'general' => 'General', 'name' => 'Name', @@ -154,7 +157,7 @@ return [ ], 'catalog' => [ 'products' => [ - 'products' => 'Products', + 'title' => 'Products', 'add-product-btn-title' => 'Add Product', 'add-title' => 'Add Product', 'edit-title' => 'Edit Product', @@ -185,6 +188,7 @@ return [ 'add-image-btn-title' => 'Add Image' ], 'attributes' => [ + 'title' => 'Attributes', 'add-title' => 'Add Attribute', 'edit-title' => 'Edit Attribute', 'save-btn-title' => 'Save Attribute', @@ -225,7 +229,7 @@ return [ 'is_visible_on_front' => 'Visible on Product View Page on Front-end' ], 'families' => [ - 'families' => 'Families', + 'title' => 'Families', 'add-family-btn-title' => 'Add Family', 'add-title' => 'Add Family', 'edit-title' => 'Edit Family', @@ -243,7 +247,7 @@ return [ 'group-exist-error' => 'Group with same name already exists.' ], 'categories' => [ - 'categories' => 'Categories', + 'title' => 'Categories', 'add-title' => 'Add Category', 'edit-title' => 'Edit Category', 'save-btn-title' => 'Save Category', @@ -265,13 +269,10 @@ return [ ], 'configuration' => [ - 'tax' => [ - 'title' => 'Taxes', - 'add-title' => 'Add Tax Category' - ], - 'tax-categories' => [ - 'title' => 'Add Tax Category', + 'title' => 'Tax Categories', + 'add-title' => 'Add Tax Category', + 'edit-title' => 'Edit Tax Category', 'save-btn-title' => 'Save Tax Category', 'general' => 'Tax Category', 'select-channel' => 'Select Channel', @@ -286,7 +287,9 @@ return [ ], 'tax-rates' => [ - 'title' => 'Add Tax Rate', + 'title' => 'Tax Rates', + 'add-title' => 'Add Tax Rate', + 'edit-title' => 'Edit Tax Rate', 'save-btn-title' => 'Save Tax Rate', 'general' => 'Tax Rate', 'identifier' => 'Identifier', @@ -342,7 +345,7 @@ return [ 'general' => 'General', 'source_currency' => 'Source Currency', 'target_currency' => 'Target Currency', - 'ratio' => 'Ratio' + 'rate' => 'Rate' ], 'inventory_sources' => [ 'title' => 'Inventory Sources', @@ -409,11 +412,46 @@ return [ 'save-btn-title' => 'Save Customer' ], 'reviews' => [ - 'title' => 'Title', - 'name' => 'Reviews', + 'title' => 'Reviews', + 'edit-title' => 'Edit Review', 'rating' => 'Rating', 'status' => 'Status', 'comment' => 'Comment' ] + ], + 'mail' => [ + 'order' => [ + 'subject' => 'New Order Confirmation', + 'heading' => 'Order Confirmation!', + 'dear' => 'Dear :customer_name', + 'greeting' => 'Thanks for your Order :order_id placed on :created_at', + 'summary' => 'Summary of Order', + 'shipping-address' => 'Shipping Address', + 'billing-address' => 'Billing Address', + 'contact' => 'Contact', + 'shipping' => 'Shipping', + 'payment' => 'Payment', + 'price' => 'Price', + 'quantity' => 'Quantity', + 'subtotal' => 'Subtotal', + 'shipping-handling' => 'Shipping & Handling', + 'tax' => 'Tax', + 'grand-total' => 'Grand Total', + 'final-summary' => 'Thanks for showing your intrest in our store. we will send you track number once it shiped.', + 'help' => 'If you need any kind of help please contact us at :support_email', + 'thanks' => 'Thanks!' + ], + 'invoice' => [ + 'heading' => 'Your Invoice #:invoice_id for Order #:order_id', + 'subject' => 'Invoice for your order #:order_id', + 'summary' => 'Summary of Invoice', + ], + 'shipment' => [ + 'heading' => 'Your Shipment #:shipment_id for Order #:order_id', + 'subject' => 'Shipment for your order #:order_id', + 'summary' => 'Summary of Shipment', + 'carrier' => 'Carrier', + 'tracking-number' => 'Tracking Number' + ] ] ]; \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php index 5eed7df25..68aadd005 100644 --- a/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php @@ -1,12 +1,16 @@ @extends('admin::layouts.content') +@section('page_title') + {{ __('admin::app.account.title') }} +@stop + @section('content')