diff --git a/app/Http/Controllers/Api/AssetModelsController.php b/app/Http/Controllers/Api/AssetModelsController.php index 01696d57ab..8b81947d2a 100644 --- a/app/Http/Controllers/Api/AssetModelsController.php +++ b/app/Http/Controllers/Api/AssetModelsController.php @@ -159,6 +159,14 @@ class AssetModelsController extends Controller return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.assoc_users'))); } + if ($assetmodel->image) { + try { + unlink(public_path().'/uploads/models/'.$assetmodel->image); + } catch (\Exception $e) { + \Log::error($e); + } + } + $assetmodel->delete(); return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/assetmodels/message.delete.success'))); diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index a7fdd51310..fe752fced3 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -93,7 +93,7 @@ class AssetModelsController extends Controller if (Input::file('image')) { $image = Input::file('image'); - $file_name = str_random(25) . "." . $image->getClientOriginalExtension(); + $file_name = slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension(); $path = public_path('uploads/models/'); if ($image->getClientOriginalExtension()!='svg') { @@ -213,9 +213,17 @@ class AssetModelsController extends Controller } if (Input::file('image')) { + $image = Input::file('image'); - $file_name = str_random(25) . "." . $image->getClientOriginalExtension(); + $file_name = str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension(); $path = public_path('uploads/models/'); + $old_image = $path.$model->image; + + try { + unlink($old_image); + } catch (\Exception $e) { + \Log::error($e); + } if ($image->getClientOriginalExtension()!='svg') { Image::make($image->getRealPath())->resize(500, null, function ($constraint) { @@ -259,6 +267,15 @@ class AssetModelsController extends Controller // Throw an error that this model is associated with assets return redirect()->route('models.index')->with('error', trans('admin/models/message.assoc_users')); } + + if ($model->image) { + try { + unlink(public_path().'/uploads/models/'.$model->image); + } catch (\Exception $e) { + \Log::error($e); + } + } + // Delete the model $model->delete(); diff --git a/app/Http/Controllers/ManufacturersController.php b/app/Http/Controllers/ManufacturersController.php index 8c7a666c5e..5d058f501d 100755 --- a/app/Http/Controllers/ManufacturersController.php +++ b/app/Http/Controllers/ManufacturersController.php @@ -76,7 +76,7 @@ class ManufacturersController extends Controller if ($request->file('image')) { $image = $request->file('image'); - $file_name = str_random(25).".".$image->getClientOriginalExtension(); + $file_name = str_slug($image->getClientOriginalName()).".".$image->getClientOriginalExtension(); $path = public_path('uploads/manufacturers/'.$file_name); Image::make($image->getRealPath())->resize(200, null, function ($constraint) { $constraint->aspectRatio(); @@ -140,8 +140,17 @@ class ManufacturersController extends Controller if ($request->file('image')) { $image = $request->file('image'); - $file_name = str_random(25).".".$image->getClientOriginalExtension(); + $file_name = str_slug($image->getClientOriginalName()).".".$image->getClientOriginalExtension(); $path = public_path('uploads/manufacturers/'.$file_name); + $old_image = $path.$model->image; + + try { + unlink($old_image); + } catch (\Exception $e) { + \Log::error($e); + } + + Image::make($image->getRealPath())->resize(200, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); @@ -178,6 +187,16 @@ class ManufacturersController extends Controller // Redirect to the asset management page return redirect()->route('manufacturers.index')->with('error', trans('admin/manufacturers/message.assoc_users')); } + + if ($manufacturer->image) { + try { + unlink(public_path().'/uploads/manufacturers/'.$manufacturer->image); + } catch (\Exception $e) { + \Log::error($e); + } + } + + // Delete the manufacturer $manufacturer->delete(); // Redirect to the manufacturers management page diff --git a/database/factories/ActionLogFactory.php b/database/factories/ActionLogFactory.php index a49d56b852..d1a8ece7dd 100644 --- a/database/factories/ActionLogFactory.php +++ b/database/factories/ActionLogFactory.php @@ -34,7 +34,8 @@ $factory->defineAs(Actionlog::class, 'asset-checkout-user', function (Faker\Gene ->update( [ 'assigned_to' => $target->id, - 'assigned_type' => App\Models\User::class + 'assigned_type' => App\Models\User::class, + 'assigned_to' => $target->location_id, ] ); @@ -59,7 +60,8 @@ $factory->defineAs(Actionlog::class, 'asset-checkout-location', function (Faker\ ->update( [ 'assigned_to' => $target->id, - 'assigned_type' => App\Models\Location::class + 'assigned_type' => App\Models\Location::class, + 'assigned_to' => $target->id, ] ); diff --git a/database/factories/AssetFactory.php b/database/factories/AssetFactory.php index 112ecf889d..affb568f8a 100644 --- a/database/factories/AssetFactory.php +++ b/database/factories/AssetFactory.php @@ -16,7 +16,7 @@ use App\Models\Category; $factory->define(Asset::class, function (Faker\Generator $faker) { return [ 'name' => null, - 'rtd_location_id' => rand(1,30), + 'rtd_location_id' => rand(1,10), 'serial' => $faker->uuid, 'status_id' => 1, 'user_id' => 1, diff --git a/database/factories/AssetModelFactory.php b/database/factories/AssetModelFactory.php index a1c3d562da..d634588785 100644 --- a/database/factories/AssetModelFactory.php +++ b/database/factories/AssetModelFactory.php @@ -32,6 +32,7 @@ $factory->state(App\Models\AssetModel::class, 'mbp-13-model', function ($faker) 'manufacturer_id' => 1, 'eol' => '36', 'depreciation_id' => 1, + 'image' => 'mbp.jpg', ]; }); @@ -43,6 +44,7 @@ $factory->state(App\Models\AssetModel::class, 'mbp-air-model', function ($faker) 'manufacturer_id' => 1, 'eol' => '36', 'depreciation_id' => 1, + 'image' => 'macbookair.jpg', ]; }); @@ -54,6 +56,7 @@ $factory->state(App\Models\AssetModel::class, 'surface-model', function ($faker) 'manufacturer_id' => 2, 'eol' => '36', 'depreciation_id' => 1, + 'image' => 'surface.jpg', ]; }); @@ -65,6 +68,7 @@ $factory->state(App\Models\AssetModel::class, 'xps13-model', function ($faker) { 'manufacturer_id' => 3, 'eol' => '36', 'depreciation_id' => 1, + 'image' => 'xps.jpg', ]; }); @@ -76,6 +80,7 @@ $factory->state(App\Models\AssetModel::class, 'zenbook-model', function ($faker) 'manufacturer_id' => 4, 'eol' => '36', 'depreciation_id' => 1, + 'image' => 'zenbook.jpg', ]; }); @@ -87,6 +92,7 @@ $factory->state(App\Models\AssetModel::class, 'spectre-model', function ($faker) 'manufacturer_id' => 5, 'eol' => '36', 'depreciation_id' => 1, + 'image' => 'spectre.jpg', ]; }); @@ -98,6 +104,7 @@ $factory->state(App\Models\AssetModel::class, 'yoga-model', function ($faker) { 'manufacturer_id' => 6, 'eol' => '36', 'depreciation_id' => 1, + 'image' => 'yoga.png', ]; }); @@ -115,6 +122,7 @@ $factory->state(App\Models\AssetModel::class, 'macpro-model', function ($faker) 'manufacturer_id' => 1, 'eol' => '24', 'depreciation_id' => 1, + 'image' => 'imacpro.jpg', ]; }); @@ -125,6 +133,7 @@ $factory->state(App\Models\AssetModel::class, 'lenovo-i5-model', function ($fake 'manufacturer_id' => 6, 'eol' => '24', 'depreciation_id' => 1, + 'image' => 'lenovoi5.png', ]; }); @@ -136,6 +145,7 @@ $factory->state(App\Models\AssetModel::class, 'optiplex-model', function ($faker 'model_number' => '5040 (MRR81)', 'eol' => '24', 'depreciation_id' => 1, + 'image' => 'optiplex.jpg', ]; }); @@ -154,6 +164,7 @@ $factory->state(App\Models\AssetModel::class, 'polycom-model', function ($faker) 'manufacturer_id' => 8, 'eol' => '12', 'depreciation_id' => 1, + 'image' => 'soundstation.jpg', ]; }); @@ -164,6 +175,7 @@ $factory->state(App\Models\AssetModel::class, 'polycomcx-model', function ($fake 'manufacturer_id' => 8, 'eol' => '12', 'depreciation_id' => 1, + 'image' => 'cx3000.png', ]; }); @@ -181,6 +193,7 @@ $factory->state(App\Models\AssetModel::class, 'ipad-model', function ($faker) { 'manufacturer_id' => 1, 'eol' => '12', 'depreciation_id' => 1, + 'image' => 'ipad.jpg', ]; }); @@ -192,6 +205,7 @@ $factory->state(App\Models\AssetModel::class, 'tab3-model', function ($faker) { 'manufacturer_id' => 6, 'eol' => '12', 'depreciation_id' => 1, + 'image' => 'tab3.png', ]; }); @@ -209,6 +223,7 @@ $factory->state(App\Models\AssetModel::class, 'iphone6s-model', function ($faker 'manufacturer_id' => 1, 'eol' => '12', 'depreciation_id' => 3, + 'image' => 'iphone6.jpg', ]; }); @@ -219,6 +234,7 @@ $factory->state(App\Models\AssetModel::class, 'iphone7-model', function ($faker) 'manufacturer_id' => 1, 'eol' => '12', 'depreciation_id' => 1, + 'image' => 'iphone7.jpg', ]; }); @@ -235,6 +251,7 @@ $factory->state(App\Models\AssetModel::class, 'ultrafine', function ($faker) { 'manufacturer_id' => 7, 'eol' => '12', 'depreciation_id' => 2, + 'image' => 'ultrafine.jpg', ]; }); @@ -245,6 +262,7 @@ $factory->state(App\Models\AssetModel::class, 'ultrasharp', function ($faker) { 'manufacturer_id' => 3, 'eol' => '12', 'depreciation_id' => 2, + 'image' => 'ultrasharp.jpg', ]; }); diff --git a/database/factories/ManufacturerFactory.php b/database/factories/ManufacturerFactory.php index 55f34c40ab..ff1ab4645f 100644 --- a/database/factories/ManufacturerFactory.php +++ b/database/factories/ManufacturerFactory.php @@ -24,7 +24,8 @@ $factory->state(App\Models\Manufacturer::class, 'apple', function ($faker) { return [ 'name' => 'Apple', 'url' => 'https://apple.com', - 'support_url' => 'https://support.apple.com' + 'support_url' => 'https://support.apple.com', + 'image' => 'apple.jpg', ]; }); @@ -33,7 +34,8 @@ $factory->state(App\Models\Manufacturer::class, 'microsoft', function ($faker) { return [ 'name' => 'Microsoft', 'url' => 'https://microsoft.com', - 'support_url' => 'https://support.microsoft.com' + 'support_url' => 'https://support.microsoft.com', + 'image' => 'microsoft.png', ]; }); @@ -42,7 +44,8 @@ $factory->state(App\Models\Manufacturer::class, 'dell', function ($faker) { return [ 'name' => 'Dell', 'url' => 'https://dell.com', - 'support_url' => 'https://support.dell.com' + 'support_url' => 'https://support.dell.com', + 'image' => 'dell.png', ]; }); @@ -51,7 +54,8 @@ $factory->state(App\Models\Manufacturer::class, 'asus', function ($faker) { return [ 'name' => 'Asus', 'url' => 'https://asus.com', - 'support_url' => 'https://support.asus.com' + 'support_url' => 'https://support.asus.com', + 'image' => 'asus.png', ]; }); @@ -60,7 +64,8 @@ $factory->state(App\Models\Manufacturer::class, 'hp', function ($faker) { return [ 'name' => 'HP', 'url' => 'https://hp.com', - 'support_url' => 'https://support.hp.com' + 'support_url' => 'https://support.hp.com', + 'image' => 'hp.png', ]; }); @@ -69,7 +74,8 @@ $factory->state(App\Models\Manufacturer::class, 'lenovo', function ($faker) { return [ 'name' => 'Lenovo', 'url' => 'https://lenovo.com', - 'support_url' => 'https://support.lenovo.com' + 'support_url' => 'https://support.lenovo.com', + 'image' => 'lenovo.jpg', ]; }); @@ -78,7 +84,8 @@ $factory->state(App\Models\Manufacturer::class, 'lg', function ($faker) { return [ 'name' => 'LG', 'url' => 'https://lg.com', - 'support_url' => 'https://support.lg.com' + 'support_url' => 'https://support.lg.com', + 'image' => 'lg.jpg', ]; }); @@ -87,7 +94,8 @@ $factory->state(App\Models\Manufacturer::class, 'polycom', function ($faker) { return [ 'name' => 'Polycom', 'url' => 'https://polycom.com', - 'support_url' => 'https://support.polycom.com' + 'support_url' => 'https://support.polycom.com', + 'image' => 'polycom.png', ]; }); @@ -96,7 +104,8 @@ $factory->state(App\Models\Manufacturer::class, 'adobe', function ($faker) { return [ 'name' => 'Adobe', 'url' => 'https://adobe.com', - 'support_url' => 'https://support.adobe.com' + 'support_url' => 'https://support.adobe.com', + 'image' => 'adobe.jpg', ]; }); @@ -106,7 +115,8 @@ $factory->state(App\Models\Manufacturer::class, 'avery', function ($faker) { return [ 'name' => 'Avery', 'url' => 'https://avery.com', - 'support_url' => 'https://support.avery.com' + 'support_url' => 'https://support.avery.com', + 'image' => 'avery.png', ]; }); @@ -115,7 +125,8 @@ $factory->state(App\Models\Manufacturer::class, 'crucial', function ($faker) { return [ 'name' => 'Crucial', 'url' => 'https://crucial.com', - 'support_url' => 'https://support.crucial.com' + 'support_url' => 'https://support.crucial.com', + 'image' => 'crucial.jpg', ]; }); diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index bc7b29a684..26c561caa1 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -55,7 +55,8 @@ $factory->define(App\Models\Location::class, function (Faker\Generator $faker) { 'state' => $faker->stateAbbr, 'country' => $faker->countryCode, 'currency' => $faker->currencyCode, - 'zip' => $faker->postcode + 'zip' => $faker->postcode, + 'image' => rand(1,9).'.jpg', ]; }); diff --git a/database/seeds/AssetModelSeeder.php b/database/seeds/AssetModelSeeder.php index dc27ddad26..fdb1adef0a 100755 --- a/database/seeds/AssetModelSeeder.php +++ b/database/seeds/AssetModelSeeder.php @@ -39,6 +39,23 @@ class AssetModelSeeder extends Seeder factory(AssetModel::class, 1)->states('ultrafine')->create(); // 17 factory(AssetModel::class, 1)->states('ultrasharp')->create(); // 18 + $src = public_path('/img/demo/models'); + $dst = public_path('/uploads/models'); + + $del_files = glob($dst."/*.*"); + + foreach($del_files as $del_file){ // iterate files + if(is_file($del_file)) + unlink($del_file); // delete file + } + + + $add_files = glob($src."/*.*"); + foreach($add_files as $add_file){ + $file_to_copy = str_replace($src,$dst,$add_file); + copy($add_file, $file_to_copy); + } + } diff --git a/database/seeds/AssetSeeder.php b/database/seeds/AssetSeeder.php index 63975b5ba0..4afd1fd3df 100644 --- a/database/seeds/AssetSeeder.php +++ b/database/seeds/AssetSeeder.php @@ -35,5 +35,15 @@ class AssetSeeder extends Seeder factory(Asset::class, 10)->states('ultrasharp')->create(); + $dst = public_path('/uploads/assets'); + + $del_files = glob($dst."/*.*"); + + foreach($del_files as $del_file){ // iterate files + if(is_file($del_file)) + unlink($del_file); // delete file + } + + } } diff --git a/database/seeds/CompanySeeder.php b/database/seeds/CompanySeeder.php index ba1ac00ba9..3885b939f4 100644 --- a/database/seeds/CompanySeeder.php +++ b/database/seeds/CompanySeeder.php @@ -15,5 +15,23 @@ class CompanySeeder extends Seeder // Company::truncate(); factory(Company::class, 4)->create(); + + $src = public_path('/img/demo/companies'); + $dst = public_path('/uploads/companies'); + + $del_files = glob($dst."/*.*"); + + foreach($del_files as $del_file){ // iterate files + if(is_file($del_file)) + unlink($del_file); // delete file + } + + + $add_files = glob($src."/*.*"); + foreach($add_files as $add_file){ + $file_to_copy = str_replace($src,$dst,$add_file); + copy($add_file, $file_to_copy); + } + } } diff --git a/database/seeds/LocationSeeder.php b/database/seeds/LocationSeeder.php index 494f08c88f..40d389792f 100644 --- a/database/seeds/LocationSeeder.php +++ b/database/seeds/LocationSeeder.php @@ -8,6 +8,24 @@ class LocationSeeder extends Seeder public function run() { Location::truncate(); - factory(Location::class, 30)->create(); + factory(Location::class, 10)->create(); + + $src = public_path('/img/demo/locations'); + $dst = public_path('/uploads/locations'); + + $del_files = glob($dst."/*.*"); + + foreach($del_files as $del_file){ // iterate files + if(is_file($del_file)) + unlink($del_file); // delete file + } + + + $add_files = glob($src."/*.*"); + foreach($add_files as $add_file){ + $file_to_copy = str_replace($src,$dst,$add_file); + copy($add_file, $file_to_copy); + } + } } diff --git a/database/seeds/ManufacturerSeeder.php b/database/seeds/ManufacturerSeeder.php index 262e14a0d3..f6d9a2451e 100644 --- a/database/seeds/ManufacturerSeeder.php +++ b/database/seeds/ManufacturerSeeder.php @@ -17,6 +17,27 @@ class ManufacturerSeeder extends Seeder factory(Manufacturer::class, 1)->states('polycom')->create(); // 8 factory(Manufacturer::class, 1)->states('adobe')->create(); // 9 factory(Manufacturer::class, 1)->states('avery')->create(); // 10 + factory(Manufacturer::class, 1)->states('crucial')->create(); // 10 + + $src = public_path('/img/demo/manufacturers'); + $dst = public_path('/uploads/manufacturers'); + + $del_files = glob($dst."/*.*"); + + foreach($del_files as $del_file){ // iterate files + if(is_file($del_file)) + unlink($del_file); // delete file + } + + + $add_files = glob($src."/*.*"); + foreach($add_files as $add_file){ + $file_to_copy = str_replace($src,$dst,$add_file); + copy($add_file, $file_to_copy); + } + } + + } diff --git a/database/seeds/SupplierSeeder.php b/database/seeds/SupplierSeeder.php index 95fd894c02..87ca416abd 100644 --- a/database/seeds/SupplierSeeder.php +++ b/database/seeds/SupplierSeeder.php @@ -8,5 +8,23 @@ class SupplierSeeder extends Seeder { Supplier::truncate(); factory(Supplier::class, 5)->create(); + + $src = public_path('/img/demo/suppliers'); + $dst = public_path('/uploads/suppliers'); + + $del_files = glob($dst."/*.*"); + + foreach($del_files as $del_file){ // iterate files + if(is_file($del_file)) + unlink($del_file); // delete file + } + + + $add_files = glob($src."/*.*"); + foreach($add_files as $add_file){ + $file_to_copy = str_replace($src,$dst,$add_file); + copy($add_file, $file_to_copy); + } + } } diff --git a/database/seeds/UserSeeder.php b/database/seeds/UserSeeder.php index 9e088df426..348a26a6b4 100644 --- a/database/seeds/UserSeeder.php +++ b/database/seeds/UserSeeder.php @@ -18,5 +18,6 @@ class UserSeeder extends Seeder factory(User::class, 3)->states('superuser')->create(); factory(User::class, 3)->states('admin')->create(); factory(User::class, 50)->states('view-assets')->create(); + } } diff --git a/public/img/demo/locations/1.jpg b/public/img/demo/locations/1.jpg new file mode 100644 index 0000000000..607e155021 Binary files /dev/null and b/public/img/demo/locations/1.jpg differ diff --git a/public/img/demo/locations/2.jpg b/public/img/demo/locations/2.jpg new file mode 100644 index 0000000000..5eb4f09170 Binary files /dev/null and b/public/img/demo/locations/2.jpg differ diff --git a/public/img/demo/locations/3.jpg b/public/img/demo/locations/3.jpg new file mode 100644 index 0000000000..ce6c3ef99a Binary files /dev/null and b/public/img/demo/locations/3.jpg differ diff --git a/public/img/demo/locations/4.jpg b/public/img/demo/locations/4.jpg new file mode 100644 index 0000000000..607e155021 Binary files /dev/null and b/public/img/demo/locations/4.jpg differ diff --git a/public/img/demo/locations/5.jpg b/public/img/demo/locations/5.jpg new file mode 100644 index 0000000000..f7672342f9 Binary files /dev/null and b/public/img/demo/locations/5.jpg differ diff --git a/public/img/demo/locations/6.jpg b/public/img/demo/locations/6.jpg new file mode 100644 index 0000000000..75d0321d87 Binary files /dev/null and b/public/img/demo/locations/6.jpg differ diff --git a/public/img/demo/locations/7.jpg b/public/img/demo/locations/7.jpg new file mode 100644 index 0000000000..c3444e9375 Binary files /dev/null and b/public/img/demo/locations/7.jpg differ diff --git a/public/img/demo/locations/8.jpg b/public/img/demo/locations/8.jpg new file mode 100644 index 0000000000..7a52edbf1a Binary files /dev/null and b/public/img/demo/locations/8.jpg differ diff --git a/public/img/demo/locations/9.jpg b/public/img/demo/locations/9.jpg new file mode 100644 index 0000000000..d4cc1467fc Binary files /dev/null and b/public/img/demo/locations/9.jpg differ diff --git a/public/img/demo/manufacturers/adobe.jpg b/public/img/demo/manufacturers/adobe.jpg new file mode 100644 index 0000000000..91bc923841 Binary files /dev/null and b/public/img/demo/manufacturers/adobe.jpg differ diff --git a/public/img/demo/manufacturers/apple.jpg b/public/img/demo/manufacturers/apple.jpg new file mode 100644 index 0000000000..b828f84d71 Binary files /dev/null and b/public/img/demo/manufacturers/apple.jpg differ diff --git a/public/img/demo/manufacturers/asus.png b/public/img/demo/manufacturers/asus.png new file mode 100644 index 0000000000..969b8260eb Binary files /dev/null and b/public/img/demo/manufacturers/asus.png differ diff --git a/public/img/demo/manufacturers/avery.png b/public/img/demo/manufacturers/avery.png new file mode 100644 index 0000000000..882d82cce2 Binary files /dev/null and b/public/img/demo/manufacturers/avery.png differ diff --git a/public/img/demo/manufacturers/crucial.jpg b/public/img/demo/manufacturers/crucial.jpg new file mode 100644 index 0000000000..33f38abffa Binary files /dev/null and b/public/img/demo/manufacturers/crucial.jpg differ diff --git a/public/img/demo/manufacturers/dell.png b/public/img/demo/manufacturers/dell.png new file mode 100644 index 0000000000..452d53aeb9 Binary files /dev/null and b/public/img/demo/manufacturers/dell.png differ diff --git a/public/img/demo/manufacturers/hp.png b/public/img/demo/manufacturers/hp.png new file mode 100644 index 0000000000..1bc6b32f9a Binary files /dev/null and b/public/img/demo/manufacturers/hp.png differ diff --git a/public/img/demo/manufacturers/lenovo.jpg b/public/img/demo/manufacturers/lenovo.jpg new file mode 100644 index 0000000000..cfa899a9a7 Binary files /dev/null and b/public/img/demo/manufacturers/lenovo.jpg differ diff --git a/public/img/demo/manufacturers/lg.jpg b/public/img/demo/manufacturers/lg.jpg new file mode 100644 index 0000000000..3c0a731787 Binary files /dev/null and b/public/img/demo/manufacturers/lg.jpg differ diff --git a/public/img/demo/manufacturers/microsoft.png b/public/img/demo/manufacturers/microsoft.png new file mode 100644 index 0000000000..9f7e2ca853 Binary files /dev/null and b/public/img/demo/manufacturers/microsoft.png differ diff --git a/public/img/demo/manufacturers/polycom.png b/public/img/demo/manufacturers/polycom.png new file mode 100644 index 0000000000..fa7027a396 Binary files /dev/null and b/public/img/demo/manufacturers/polycom.png differ diff --git a/public/img/demo/models/cx3000.png b/public/img/demo/models/cx3000.png new file mode 100644 index 0000000000..8cc055b36a Binary files /dev/null and b/public/img/demo/models/cx3000.png differ diff --git a/public/img/demo/models/imacpro.jpg b/public/img/demo/models/imacpro.jpg new file mode 100644 index 0000000000..24b8c85e12 Binary files /dev/null and b/public/img/demo/models/imacpro.jpg differ diff --git a/public/img/demo/models/ipad.jpg b/public/img/demo/models/ipad.jpg new file mode 100644 index 0000000000..6dbbecb8cd Binary files /dev/null and b/public/img/demo/models/ipad.jpg differ diff --git a/public/img/demo/models/iphone6.jpg b/public/img/demo/models/iphone6.jpg new file mode 100644 index 0000000000..5a0bc9ba0f Binary files /dev/null and b/public/img/demo/models/iphone6.jpg differ diff --git a/public/img/demo/models/iphone7.jpg b/public/img/demo/models/iphone7.jpg new file mode 100644 index 0000000000..4d73fb6e40 Binary files /dev/null and b/public/img/demo/models/iphone7.jpg differ diff --git a/public/img/demo/models/lenovoi5.png b/public/img/demo/models/lenovoi5.png new file mode 100644 index 0000000000..85eb798bc5 Binary files /dev/null and b/public/img/demo/models/lenovoi5.png differ diff --git a/public/img/demo/models/macbookair.jpg b/public/img/demo/models/macbookair.jpg new file mode 100644 index 0000000000..6b175dcaf9 Binary files /dev/null and b/public/img/demo/models/macbookair.jpg differ diff --git a/public/img/demo/models/mbp.jpg b/public/img/demo/models/mbp.jpg new file mode 100644 index 0000000000..1b8205d993 Binary files /dev/null and b/public/img/demo/models/mbp.jpg differ diff --git a/public/img/demo/models/optiplex.jpg b/public/img/demo/models/optiplex.jpg new file mode 100644 index 0000000000..095652e1eb Binary files /dev/null and b/public/img/demo/models/optiplex.jpg differ diff --git a/public/img/demo/models/soundstation.jpg b/public/img/demo/models/soundstation.jpg new file mode 100644 index 0000000000..1845351ea0 Binary files /dev/null and b/public/img/demo/models/soundstation.jpg differ diff --git a/public/img/demo/models/spectre.jpg b/public/img/demo/models/spectre.jpg new file mode 100644 index 0000000000..34e7031265 Binary files /dev/null and b/public/img/demo/models/spectre.jpg differ diff --git a/public/img/demo/models/surface.jpg b/public/img/demo/models/surface.jpg new file mode 100644 index 0000000000..2eb9e4e1de Binary files /dev/null and b/public/img/demo/models/surface.jpg differ diff --git a/public/img/demo/models/tab3.png b/public/img/demo/models/tab3.png new file mode 100644 index 0000000000..56b3b22012 Binary files /dev/null and b/public/img/demo/models/tab3.png differ diff --git a/public/img/demo/models/ultrafine.jpg b/public/img/demo/models/ultrafine.jpg new file mode 100644 index 0000000000..c5df4551ab Binary files /dev/null and b/public/img/demo/models/ultrafine.jpg differ diff --git a/public/img/demo/models/ultrasharp.jpg b/public/img/demo/models/ultrasharp.jpg new file mode 100644 index 0000000000..f43f947c36 Binary files /dev/null and b/public/img/demo/models/ultrasharp.jpg differ diff --git a/public/img/demo/models/xps.jpg b/public/img/demo/models/xps.jpg new file mode 100644 index 0000000000..ab22855ee5 Binary files /dev/null and b/public/img/demo/models/xps.jpg differ diff --git a/public/img/demo/models/yoga.png b/public/img/demo/models/yoga.png new file mode 100644 index 0000000000..94263b997e Binary files /dev/null and b/public/img/demo/models/yoga.png differ diff --git a/public/img/demo/models/zenbook.jpg b/public/img/demo/models/zenbook.jpg new file mode 100644 index 0000000000..e6258c72e8 Binary files /dev/null and b/public/img/demo/models/zenbook.jpg differ diff --git a/public/uploads/companies/LNwfCJ5P4WtaViO1XYbkWgX8D.jpg b/public/uploads/companies/LNwfCJ5P4WtaViO1XYbkWgX8D.jpg deleted file mode 100644 index 3aae4799f9..0000000000 Binary files a/public/uploads/companies/LNwfCJ5P4WtaViO1XYbkWgX8D.jpg and /dev/null differ diff --git a/public/uploads/companies/RZAs6WvRP9P5WMJIaPS0f1rDT.jpg b/public/uploads/companies/RZAs6WvRP9P5WMJIaPS0f1rDT.jpg deleted file mode 100644 index 57b28c264d..0000000000 Binary files a/public/uploads/companies/RZAs6WvRP9P5WMJIaPS0f1rDT.jpg and /dev/null differ