-
-
+
-
@@ -101,123 +126,118 @@
-
+
-
-
+
-
+
+ {{ $errors->first('file_path') }}
+
-
-@endpush
\ No newline at end of file
+@endpush
diff --git a/src/Routes/admin-routes.php b/src/Routes/admin-routes.php
new file mode 100644
index 0000000..5b53782
--- /dev/null
+++ b/src/Routes/admin-routes.php
@@ -0,0 +1,88 @@
+prefix(config('app.admin_url'))
+ ->group(function () {
+ Route::prefix('bulkupload')->group(function () {
+ Route::prefix('bulk-product-importer')->group(function () {
+
+ // Index
+ Route::get('/', [BulkProductImporterController::class, 'index'])
+ ->name('admin.bulk-upload.bulk-product-importer.index');
+
+ // Store
+ Route::post('/addprofile', [BulkProductImporterController::class, 'store'])
+ ->name('admin.bulk-upload.bulk-product-importer.add');
+
+ // Edit
+ Route::get('/edit/{id}', [BulkProductImporterController::class, 'edit'])
+ ->name('admin.bulk-upload.bulk-product-importer.edit');
+
+ Route::post('/update/{id}', [BulkProductImporterController::class, 'update'])
+ ->name('admin.bulk-upload.bulk-product-importer.update');
+
+ // Destroy
+ Route::post('/delete/{id}', [BulkProductImporterController::class, 'destroy'])
+ ->name('admin.bulk-upload.bulk-product-importer.delete');
+
+ // Mass Destroy
+ Route::post('/massdestroy', [BulkProductImporterController::class, 'massDestroy'])
+ ->name('admin.bulk-upload.bulk-product-importer.massDelete');
+ });
+
+ Route::prefix('upload-file')->group(function () {
+
+ // Route to display the index page for uploading files
+ Route::get('/', [UploadFileController::class, 'index'])
+ ->name('admin.bulk-upload.upload-file.index');
+
+ // Route to handle downloading sample files
+ Route::post('/download-sample-file',[UploadFileController::class, 'downloadSampleFile'])
+ ->name('admin.bulk-upload.upload-file.download-sample-files');
+
+ // Route to fetch bulk product importer profiles
+ Route::get('/get-profiles', [UploadFileController::class, 'getBulkProductImporter'])
+ ->name('admin.bulk-upload.upload-file.get-all-profile');
+
+ // Route to import products from uploaded files
+ Route::post('/import-products-file', [UploadFileController::class, 'storeProductsFile'])
+ ->name('admin.bulk-upload.upload-file.import-products-file');
+ });
+
+ Route::prefix('import-product-file')->group(function () {
+ Route::get('/', [UploadFileController::class, 'getFamilyAttributesToUploadFile'])
+ ->name('admin.bulk-upload.import-file.run-profile.index');
+
+ Route::get('/get-importer', [UploadFileController::class, 'getProductImporter'])
+ ->name('admin.bulk-upload.upload-file.get-importar');
+
+ Route::post('/delete-file', [UploadFileController::class, 'deleteProductFile'])
+ ->name('admin.bulk-upload.upload-file.delete');
+
+ Route::post('/read-csv', [UploadFileController::class, 'readCSVData'])
+ ->name('admin.bulk-upload.upload-file.run-profile.read-csv');
+
+ Route::get('/download-csv', [UploadFileController::class, 'downloadCsv'])
+ ->name('admin.bulk-upload.upload-file.run-profile.download-csv');
+
+ Route::post('/delete-csv', [UploadFileController::class, 'deleteCSV'])
+ ->name('admin.bulk-upload.upload-file.run-profile.delete-csv-file');
+
+ Route::post('/get-uploaded-product', [UploadFileController::class, 'getUploadedProductOrNotUploadedProduct'])
+ ->name('admin.bulk-upload.upload-file.uploaded-product.or-not-uploaded-product');
+
+ Route::get('/get-profiler', [UploadFileController::class, 'getProfiler'])
+ ->name('admin.bulk-upload.upload-file.run-profile.get-profiler-name');
+
+ Route::get('/read-error-file', [UploadFileController::class, 'readErrorFile'])
+ ->name('admin.bulk-upload.upload-file.run-profile.read-error-file');
+ });
+ });
+ });
+
diff --git a/webpack.mix.js b/webpack.mix.js
index 3dcb352..3fda7f4 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -1,28 +1,53 @@
-const { mix } = require("laravel-mix");
-require("laravel-mix-merge-manifest");
+const path = require('path');
+const mix = require('laravel-mix');
-if (mix.inProduction()) {
- var publicPath = "publishable/assets";
-} else {
- var publicPath = "../../../public/vendor/webkul/admin/assets";
-}
+require('laravel-mix-merge-manifest');
+require('laravel-mix-clean');
+
+const prodPublicPath = path.join('publishable', 'assets');
+const devPublicPath = path.join(
+ '..',
+ '..',
+ '..',
+ 'public',
+ 'vendor',
+ 'webkul',
+ 'admin',
+ 'assets'
+);
+const publicPath = mix.inProduction() ? prodPublicPath : devPublicPath;
+
+console.log(`Assets will be published in: ${publicPath}`);
+
+const assetsPath = path.join(__dirname, 'src', 'Resources', 'assets');
+const jsPath = path.join(assetsPath, 'js');
+const imagesPath = path.join(assetsPath, 'images');
+const sampleFilePath = path.join(assetsPath, 'sample-files');
+
+mix.setPublicPath(publicPath)
+ .js(path.join(jsPath, 'app.js'), 'js/bulk-upload-app.js')
+
+ .copy(imagesPath, path.join(publicPath, 'images'))
+
+ .copy(sampleFilePath, path.join(publicPath, 'sample-files'))
+
+ .sass(path.join(assetsPath, 'sass', 'admin.scss'), 'css/bulk-upload-admin.css')
+
+ .clean({
+ cleanOnceBeforeBuildPatterns: [
+ 'js/**/*',
+ 'css/bulk-upload-admin.css',
+ ],
+ })
+
+ .options({
+ processCssUrls: false,
+ clearConsole: mix.inProduction(),
+ })
-mix.setPublicPath(publicPath).mergeManifest();
-mix.disableNotifications();
-
-mix
- .copyDirectory(
- __dirname + "/src/Resources/assets/images",
- publicPath + "/images"
- )
- .sass(
- __dirname + "/src/Resources/assets/sass/admin.scss",
- "css/bulk-admin.css"
- )
- .options({
- processCssUrls: false,
- });
+ .disableNotifications()
+ .mergeManifest();
if (mix.inProduction()) {
- mix.version();
+ mix.version();
}