From f5f7ad83db5a4f423220860be7e3d3afc0c51f00 Mon Sep 17 00:00:00 2001 From: Josemprog Date: Sun, 6 Dec 2020 22:44:24 -0500 Subject: [PATCH] feat:the views were created to create and edit the products using the rest API. --- app/Exports/ProductsExport.php | 2 +- .../Controllers/Admin/PanelController.php | 2 +- .../Controllers/Admin/ProductController.php | 6 +- app/Http/Controllers/Admin/UserController.php | 2 +- app/Http/Controllers/Auth/LoginController.php | 2 +- app/Http/Controllers/HomeController.php | 2 +- app/Http/Controllers/VueController.php | 26 -- app/Http/Resources/Product.php | 2 +- app/Imports/ProductsImport.php | 2 +- database/seeds/ProductSeeder.php | 2 +- database/seeds/UserSeeder.php | 20 +- public/js/app.js | 237 +++--------------- resources/js/app.js | 5 - resources/js/components/ButtonsComponent.vue | 28 +-- resources/js/components/ProductPanel.vue | 54 ++-- resources/js/components/VueComponent.vue | 27 -- resources/views/admin/api/create.blade.php | 48 ++++ resources/views/admin/api/edit.blade.php | 60 +++-- resources/views/admin/api/panel.blade.php | 1 + .../views/admin/products/index.blade.php | 3 + resources/views/orders/index.blade.php | 8 +- resources/views/orders/show.blade.php | 2 +- resources/views/vue.blade.php | 75 ------ routes/api.php | 16 -- routes/web.php | 4 - 25 files changed, 196 insertions(+), 440 deletions(-) delete mode 100644 app/Http/Controllers/VueController.php delete mode 100644 resources/js/components/VueComponent.vue create mode 100644 resources/views/admin/api/create.blade.php delete mode 100644 resources/views/vue.blade.php diff --git a/app/Exports/ProductsExport.php b/app/Exports/ProductsExport.php index 68293d2..a61b652 100644 --- a/app/Exports/ProductsExport.php +++ b/app/Exports/ProductsExport.php @@ -11,7 +11,7 @@ class ProductsExport implements FromQuery, ShouldQueue, WithHeadings { use Exportable; - + public function query() { return Product::query(); diff --git a/app/Http/Controllers/Admin/PanelController.php b/app/Http/Controllers/Admin/PanelController.php index ab08208..c3282af 100644 --- a/app/Http/Controllers/Admin/PanelController.php +++ b/app/Http/Controllers/Admin/PanelController.php @@ -20,7 +20,7 @@ public function __construct() /** * Show the application dashboard. * - * @return \Illuminate\Contracts\Support\Renderable + * @return \Illuminate\View\View */ public function index(): \Illuminate\View\View { diff --git a/app/Http/Controllers/Admin/ProductController.php b/app/Http/Controllers/Admin/ProductController.php index f75c52c..b72027e 100644 --- a/app/Http/Controllers/Admin/ProductController.php +++ b/app/Http/Controllers/Admin/ProductController.php @@ -28,7 +28,7 @@ public function index(Request $request): \Illuminate\View\View ->brand($products->brand) ->name($products->name) ->price($products->price) - ->paginate(25); + ->paginate(10); return view('admin.products.index')->with('products', $products); } @@ -49,7 +49,7 @@ public function create(): \Illuminate\View\View * @param ProductsRequest $request * @return \Illuminate\Http\RedirectResponse */ - public function store(ProductsRequest $request) + public function store(ProductsRequest $request): \Illuminate\Http\RedirectResponse { $product = new Product($request->validated()); $product->image = $request->file('image')->store('images', 'public'); @@ -77,7 +77,7 @@ public function show(Product $product): \Illuminate\View\View * @param Product $product * @return \Illuminate\View\View */ - public function edit(Product $product) + public function edit(Product $product): \Illuminate\View\View { return view('admin.products.edit')->with('product', $product); } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 3419e98..661ce75 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -24,7 +24,7 @@ public function index(Request $request): \Illuminate\View\View ->name($users->name) ->email($users->email) ->enabled($users->enabled) - ->paginate(6); + ->paginate(10); return view('admin.users.index')->with('users', $users); } diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 3cb44cc..fab42a5 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -62,7 +62,7 @@ protected function credentials(Request $request) * @param mixed $user * @return mixed */ - protected function authenticated(Request $request, $user) + protected function authenticated($user) { if ($user->hasRole('admin')) { $user->api_token = Str::random(60); diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index c724507..f698cbd 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -31,7 +31,7 @@ public function index(Request $request): \Illuminate\View\View ->brand($products->brand) ->name($products->name) ->price($products->price) - ->paginate(20); + ->paginate(28); return view('home')->with('products', $products); } diff --git a/app/Http/Controllers/VueController.php b/app/Http/Controllers/VueController.php deleted file mode 100644 index d3272c1..0000000 --- a/app/Http/Controllers/VueController.php +++ /dev/null @@ -1,26 +0,0 @@ -middleware('auth'); - } - - /** - * Show the application dashboard. - * - * @return \Illuminate\Contracts\Support\Renderable - */ - public function index(): \Illuminate\View\View - { - return view('vue'); - } -} diff --git a/app/Http/Resources/Product.php b/app/Http/Resources/Product.php index 4ed2404..f596726 100644 --- a/app/Http/Resources/Product.php +++ b/app/Http/Resources/Product.php @@ -12,7 +12,7 @@ class Product extends JsonResource * @param \Illuminate\Http\Request $request * @return array */ - public function toArray($request) + public function toArray($request): array { return [ 'id' => $this->id, diff --git a/app/Imports/ProductsImport.php b/app/Imports/ProductsImport.php index f222174..5ed079b 100644 --- a/app/Imports/ProductsImport.php +++ b/app/Imports/ProductsImport.php @@ -35,7 +35,7 @@ public function createProduct($row) 'enabled' => $row['enabled'], ]); } - + public function updateProduct(Product $product, $row) { $product->update($row); diff --git a/database/seeds/ProductSeeder.php b/database/seeds/ProductSeeder.php index 2981ade..c30c1b3 100644 --- a/database/seeds/ProductSeeder.php +++ b/database/seeds/ProductSeeder.php @@ -11,6 +11,6 @@ class ProductSeeder extends Seeder */ public function run() { - factory(App\Product::class, 5)->create(); + factory(App\Product::class, 100)->create(); } } diff --git a/database/seeds/UserSeeder.php b/database/seeds/UserSeeder.php index 9246e7a..4d7856a 100644 --- a/database/seeds/UserSeeder.php +++ b/database/seeds/UserSeeder.php @@ -19,8 +19,15 @@ public function run() { Role::truncate(); + // Roles $adminRole = Role::create(['name' => 'admin']); + // Permisos + $permisoShowArticles = Permission::create(['name' => 'show articles']); + $permisoStoreArticles = Permission::create(['name' => 'store articles']); + $permisoEditArticles = Permission::create(['name' => 'edit articles']); + $permisoDestroyArticles = Permission::create(['name' => 'destroy articles']); + $admin = new User(); $admin->name = 'JoseM'; $admin->email = 'Josemprog@gmail.com'; @@ -31,12 +38,15 @@ public function run() $admin->remember_token = Str::random(10); $admin->save(); + // Asignando roles $admin->assignRole($adminRole); + + // Asignando Permisos + $adminRole->givePermissionTo($permisoShowArticles); + $adminRole->givePermissionTo($permisoStoreArticles); + $adminRole->givePermissionTo($permisoEditArticles); + $adminRole->givePermissionTo($permisoDestroyArticles); - $permiso = Permission::create(['name' => 'edit articles']); - - $adminRole->givePermissionTo($permiso); - - factory(App\User::class, 5)->create(); + factory(App\User::class, 100)->create(); } } diff --git a/public/js/app.js b/public/js/app.js index 9f5034d..a95f6eb 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1918,33 +1918,8 @@ __webpack_require__.r(__webpack_exports__); // // // -var user = document.head.querySelector('meta[name="user-auth"]'); -console.log(JSON.parse(user.content).api_token); - -/* harmony default export */ __webpack_exports__["default"] = ({ - data: function data() { - return { - products: null - }; - }, - mounted: function mounted() { - this.getProducts(); - }, - methods: { - getProducts: function getProducts() { - var _this = this; - axios__WEBPACK_IMPORTED_MODULE_0___default.a.get('/api/products' + '?api_token=' + JSON.parse(user.content).api_token).then(function (response) { - _this.products = response.data.data; - }); - }, - createProducts: function createProducts() { - axios__WEBPACK_IMPORTED_MODULE_0___default.a.get('/api/products').then(function (response) { - console.log(response.data.data); - }); - } - } -}); +/* harmony default export */ __webpack_exports__["default"] = ({}); /***/ }), @@ -1996,14 +1971,13 @@ __webpack_require__.r(__webpack_exports__); // // // -// var user = document.head.querySelector('meta[name="user-auth"]'); -console.log(JSON.parse(user.content).api_token); /* harmony default export */ __webpack_exports__["default"] = ({ data: function data() { return { - products: null + products: null, + newProduct: null }; }, mounted: function mounted() { @@ -2017,7 +1991,7 @@ console.log(JSON.parse(user.content).api_token); _this.products = response.data.data; }); }, - deleteProducts: function deleteProducts(product) { + deleteProduct: function deleteProduct(product) { var _this2 = this; axios__WEBPACK_IMPORTED_MODULE_0___default.a["delete"]('/api/products/' + product.id + '/?api_token=' + JSON.parse(user.content).api_token).then(function (response) { @@ -2026,9 +2000,24 @@ console.log(JSON.parse(user.content).api_token); alert('The product has been removed successfully'); }); }, - edit: function edit() { - axios__WEBPACK_IMPORTED_MODULE_0___default.a.get('/api/products').then(function (response) { - console.log(response.data.data); + createProduct: function createProduct(product) { + var _this3 = this; + + var url = '/api/products/' + product.id + '/?api_token=' + JSON.parse(user.content).api_token; + axios__WEBPACK_IMPORTED_MODULE_0___default.a.post(url, { + brand: this.newProduct, + name: this.newProduct, + price: this.newProduct, + quantity: this.newProduct, + description: this.newProduct, + image: this.newProduct, + enabled: this.newProduct + }).then(function (response) { + _this3.getProducts(); + + _this3.newProduct = null; + $('create'.modal('hide')); + alert('The product has been create successfully'); }); } } @@ -2036,41 +2025,6 @@ console.log(JSON.parse(user.content).api_token); /***/ }), -/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/VueComponent.vue?vue&type=script&lang=js&": -/*!***********************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/VueComponent.vue?vue&type=script&lang=js& ***! - \***********************************************************************************************************************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ "./node_modules/axios/index.js"); -/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__); -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -/* harmony default export */ __webpack_exports__["default"] = ({}); - -/***/ }), - /***/ "./node_modules/bootstrap/dist/js/bootstrap.js": /*!*****************************************************!*\ !*** ./node_modules/bootstrap/dist/js/bootstrap.js ***! @@ -37673,7 +37627,7 @@ var staticRenderFns = [ "a", { staticClass: "btn btn-dark mb-2", - attrs: { "data-toggle": "modal", "data-target": "#edit" } + attrs: { "data-toggle": "modal", "data-target": "#create" } }, [_vm._v("+ Create a new Product")] ), @@ -37721,27 +37675,29 @@ var render = function() { "tbody", _vm._l(_vm.products, function(product, index) { return _c("tr", { key: index }, [ - _c("th", { attrs: { scope: "row" } }, [_vm._v(_vm._s(index + 1))]), + _c("td", { attrs: { scope: "row" } }, [_vm._v(_vm._s(index + 1))]), _vm._v(" "), - _c("th", [_vm._v(_vm._s(product.image.substr(-50, 15) + "..."))]), + _c("td", [_vm._v(_vm._s(product.image.substr(-50, 15) + "..."))]), _vm._v(" "), - _c("th", [_vm._v(_vm._s(product.brand))]), + _c("td", [_vm._v(_vm._s(product.brand))]), _vm._v(" "), - _c("th", [_vm._v(_vm._s(product.name))]), + _c("td", [_vm._v(_vm._s(product.name))]), _vm._v(" "), - _c("th", { staticClass: "text-success" }, [ + _c("td", { staticClass: "text-success" }, [ _vm._v("$" + _vm._s(product.price)) ]), _vm._v(" "), - _c("th", [_vm._v(_vm._s(product.quantity))]), + _c("td", [_vm._v(_vm._s(product.quantity))]), _vm._v(" "), - _c("th", [_vm._v(_vm._s(product.created))]), + _c("td", [_vm._v(_vm._s(product.created))]), _vm._v(" "), - _c("th", [_vm._v(_vm._s(product.updated_at))]), + _c("td", [_vm._v(_vm._s(product.updated_at))]), _vm._v(" "), - _c("th", [_vm._v(" state ")]), + product.enabled + ? _c("td", { staticClass: "text-success" }, [_vm._v("Enabled")]) + : _c("td", { staticClass: "text-muted" }, [_vm._v("Disabled")]), _vm._v(" "), - _c("th", { staticClass: "btn-group" }, [ + _c("td", { staticClass: "btn-group" }, [ _c("i", { staticClass: "btn fas fa-pencil-alt text-info", attrs: { "data-toggle": "modal", "data-target": "#edit" } @@ -37751,7 +37707,7 @@ var render = function() { staticClass: "btn fas fa-trash-alt text-danger", on: { click: function($event) { - return _vm.deleteProducts(product) + return _vm.deleteProduct(product) } } }) @@ -37797,57 +37753,6 @@ render._withStripped = true -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/VueComponent.vue?vue&type=template&id=27255a82&": -/*!***************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/VueComponent.vue?vue&type=template&id=27255a82& ***! - \***************************************************************************************************************************************************************************************************************/ -/*! exports provided: render, staticRenderFns */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); -var render = function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _vm._m(0) -} -var staticRenderFns = [ - function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c("table", { staticClass: "table" }, [ - _c("thead", [ - _c("tr", [ - _c("th", [_vm._v("#")]), - _vm._v(" "), - _c("th", [_vm._v("Nombre")]), - _vm._v(" "), - _c("th", [_vm._v("Precio")]) - ]) - ]), - _vm._v(" "), - _c("tbody", [ - _c("tr", [ - _c("td", [_vm._v("1")]), - _vm._v(" "), - _c("td", [_vm._v("Nike")]), - _vm._v(" "), - _c("td", [_vm._v("$3000000")]) - ]) - ]) - ]) - } -] -render._withStripped = true - - - /***/ }), /***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": @@ -50039,7 +49944,6 @@ window.Vue = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.common. Vue.component('product-panel', __webpack_require__(/*! ./components/ProductPanel.vue */ "./resources/js/components/ProductPanel.vue")["default"]); Vue.component('buttons-component', __webpack_require__(/*! ./components/ButtonsComponent.vue */ "./resources/js/components/ButtonsComponent.vue")["default"]); -Vue.component('vue-component', __webpack_require__(/*! ./components/VueComponent.vue */ "./resources/js/components/VueComponent.vue")["default"]); /** * Next, we will create a fresh Vue application instance and attach it to * the page. Then, you may begin adding components to this application @@ -50233,75 +50137,6 @@ __webpack_require__.r(__webpack_exports__); -/***/ }), - -/***/ "./resources/js/components/VueComponent.vue": -/*!**************************************************!*\ - !*** ./resources/js/components/VueComponent.vue ***! - \**************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _VueComponent_vue_vue_type_template_id_27255a82___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VueComponent.vue?vue&type=template&id=27255a82& */ "./resources/js/components/VueComponent.vue?vue&type=template&id=27255a82&"); -/* harmony import */ var _VueComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VueComponent.vue?vue&type=script&lang=js& */ "./resources/js/components/VueComponent.vue?vue&type=script&lang=js&"); -/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ - -var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _VueComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _VueComponent_vue_vue_type_template_id_27255a82___WEBPACK_IMPORTED_MODULE_0__["render"], - _VueComponent_vue_vue_type_template_id_27255a82___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "resources/js/components/VueComponent.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./resources/js/components/VueComponent.vue?vue&type=script&lang=js&": -/*!***************************************************************************!*\ - !*** ./resources/js/components/VueComponent.vue?vue&type=script&lang=js& ***! - \***************************************************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VueComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./VueComponent.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/VueComponent.vue?vue&type=script&lang=js&"); -/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VueComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./resources/js/components/VueComponent.vue?vue&type=template&id=27255a82&": -/*!*********************************************************************************!*\ - !*** ./resources/js/components/VueComponent.vue?vue&type=template&id=27255a82& ***! - \*********************************************************************************/ -/*! exports provided: render, staticRenderFns */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_VueComponent_vue_vue_type_template_id_27255a82___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./VueComponent.vue?vue&type=template&id=27255a82& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/VueComponent.vue?vue&type=template&id=27255a82&"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_VueComponent_vue_vue_type_template_id_27255a82___WEBPACK_IMPORTED_MODULE_0__["render"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_VueComponent_vue_vue_type_template_id_27255a82___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); - - - /***/ }), /***/ "./resources/sass/app.scss": diff --git a/resources/js/app.js b/resources/js/app.js index b37872f..7ac1a4b 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -21,11 +21,6 @@ window.Vue = require('vue'); Vue.component('product-panel', require('./components/ProductPanel.vue').default); Vue.component('buttons-component', require('./components/ButtonsComponent.vue').default); - - - -Vue.component('vue-component', require('./components/VueComponent.vue').default); - /** * Next, we will create a fresh Vue application instance and attach it to * the page. Then, you may begin adding components to this application diff --git a/resources/js/components/ButtonsComponent.vue b/resources/js/components/ButtonsComponent.vue index f3a9ede..d58cbc9 100644 --- a/resources/js/components/ButtonsComponent.vue +++ b/resources/js/components/ButtonsComponent.vue @@ -1,39 +1,15 @@ diff --git a/resources/js/components/ProductPanel.vue b/resources/js/components/ProductPanel.vue index 2c34928..82ae592 100644 --- a/resources/js/components/ProductPanel.vue +++ b/resources/js/components/ProductPanel.vue @@ -16,21 +16,20 @@ - {{ index+1 }} - {{ product.image.substr(-50, 15) + '...' }} - {{ product.brand }} - {{ product.name }} - ${{ product.price}} - {{ product.quantity }} - {{ product.created }} - {{ product.updated_at }} - state - - - - - - + {{ index+1 }} + {{ product.image.substr(-50, 15) + '...' }} + {{ product.brand }} + {{ product.name }} + ${{ product.price}} + {{ product.quantity }} + {{ product.created }} + {{ product.updated_at }} + Enabled + Disabled + + + + @@ -39,8 +38,6 @@ diff --git a/resources/views/admin/api/create.blade.php b/resources/views/admin/api/create.blade.php new file mode 100644 index 0000000..c6b77e9 --- /dev/null +++ b/resources/views/admin/api/create.blade.php @@ -0,0 +1,48 @@ +
+ +
\ No newline at end of file diff --git a/resources/views/admin/api/edit.blade.php b/resources/views/admin/api/edit.blade.php index 7d93952..59fdde6 100644 --- a/resources/views/admin/api/edit.blade.php +++ b/resources/views/admin/api/edit.blade.php @@ -1,18 +1,48 @@ -