From b83f476f2880f174fcb2331a5b86435d374d87db Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Sat, 16 Nov 2019 10:50:23 +0530 Subject: [PATCH 1/7] remove germen language --- app/Http/Controllers/CompanyController.php | 8 ----- app/Http/Controllers/OnboardingController.php | 3 +- app/Listeners/Updates/V10/Version101.php | 32 ------------------- app/Providers/EventServiceProvider.php | 1 - app/Space/SiteApi.php | 2 +- app/Space/Updater.php | 2 +- 6 files changed, 4 insertions(+), 44 deletions(-) delete mode 100644 app/Listeners/Updates/V10/Version101.php diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 585e7752..099ff7e7 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -105,13 +105,6 @@ class CompanyController extends Controller ['key' => 'december-november', 'value' => '12-11'], ]; - $languages = [ - "en" => "English", - "de" => "German", - "fr" => "French", - "es" => "Spanish" - ]; - $language = CompanySetting::getSetting('language', $request->header('company')); $carbon_date_format = CompanySetting::getSetting('carbon_date_format', $request->header('company')); $moment_date_format = CompanySetting::getSetting('moment_date_format', $request->header('company')); @@ -121,7 +114,6 @@ class CompanyController extends Controller $languages = [ ["code"=>"en", "name" => "English"], - ["code"=>"de", "name" => "German"], ["code"=>"fr", "name" => "French"], ["code"=>"es", "name" => "Spanish"] ]; diff --git a/app/Http/Controllers/OnboardingController.php b/app/Http/Controllers/OnboardingController.php index 29ef3e9b..ddb69ad9 100644 --- a/app/Http/Controllers/OnboardingController.php +++ b/app/Http/Controllers/OnboardingController.php @@ -38,7 +38,8 @@ class OnboardingController extends Controller $time_zones = TimeZones::get_list(); $languages = [ ["code"=>"en", "name" => "English"], - ["code"=>"de", "name" => "German"], + ["code"=>"fr", "name" => "French"], + ["code"=>"es", "name" => "Spanish"] ]; $fiscal_years = [ ['key' => 'january-december' , 'value' => '1-12'], diff --git a/app/Listeners/Updates/V10/Version101.php b/app/Listeners/Updates/V10/Version101.php deleted file mode 100644 index 7f966506..00000000 --- a/app/Listeners/Updates/V10/Version101.php +++ /dev/null @@ -1,32 +0,0 @@ -check($event)) { - return; - } - - Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]); - - Setting::setSetting('version', self::VERSION); - } -} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 5ac87a07..d21701a3 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -16,7 +16,6 @@ class EventServiceProvider extends ServiceProvider */ protected $listen = [ UpdateFinished::class=> [ - Version101::class, ], Registered::class => [ SendEmailVerificationNotification::class, diff --git a/app/Space/SiteApi.php b/app/Space/SiteApi.php index ad2194fd..7c9ac7ea 100644 --- a/app/Space/SiteApi.php +++ b/app/Space/SiteApi.php @@ -11,7 +11,7 @@ trait SiteApi protected static function getRemote($url, $data = array()) { - $base = 'http://crater-main.test/'; + $base = 'https://craterapp.com/'; $client = new Client(['verify' => false, 'base_uri' => $base]); diff --git a/app/Space/Updater.php b/app/Space/Updater.php index 093282ed..972b1a3b 100644 --- a/app/Space/Updater.php +++ b/app/Space/Updater.php @@ -69,7 +69,7 @@ class Updater // Delete zip file File::delete($file); - if (!File::copyDirectory($temp_path2.'/crater', base_path())) { + if (!File::copyDirectory($temp_path2.'/Crater', base_path())) { return false; } From fa9197c5bc24591158f316ef432a220ed7f65855 Mon Sep 17 00:00:00 2001 From: yogesh_gohil Date: Sat, 16 Nov 2019 13:25:30 +0530 Subject: [PATCH 2/7] fix cropper logo --- resources/assets/js/views/settings/CompanyInfo.vue | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/resources/assets/js/views/settings/CompanyInfo.vue b/resources/assets/js/views/settings/CompanyInfo.vue index 9ee883d5..5299d896 100644 --- a/resources/assets/js/views/settings/CompanyInfo.vue +++ b/resources/assets/js/views/settings/CompanyInfo.vue @@ -314,12 +314,16 @@ export default { data.append('country_id', this.formData.country_id) data.append('zip', this.formData.zip) data.append('phone', this.formData.phone) - if (this.fileObject) { - data.append('logo', this.fileObject) - } + let response = await this.editCompany(data) if (response.data.success) { this.isLoading = false + if (this.previewLogo) { + let logoData = new FormData() + logoData.append('company_logo', JSON.stringify({name: 'company', data: this.previewLogo})) + let logoUpload = await axios.post('/api/settings/company/upload-logo', logoData) + console.log(logoUpload.data) + } window.toastr['success'](this.$t('settings.company_info.updated_message')) return true } From 848c5646f9f8d742282da0fc9106667fb845cfa1 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Sat, 16 Nov 2019 13:25:39 +0530 Subject: [PATCH 3/7] refactor upadater --- app/Space/Updater.php | 66 ++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/app/Space/Updater.php b/app/Space/Updater.php index 3c58ff28..7fbb337a 100644 --- a/app/Space/Updater.php +++ b/app/Space/Updater.php @@ -48,36 +48,37 @@ class Updater File::makeDirectory($temp_path2); } - $file = $temp_path . '/upload.zip'; - - // Add content to the Zip file - $uploaded = is_int(file_put_contents($file, $data)) ? true : false; - - if (!$uploaded) { - return false; - } - - // Unzip the file - $zip = new ZipArchive(); - - if ($zip->open($file)) { - $zip->extractTo($temp_path2); - } - - $zip->close(); - - // Delete zip file - File::delete($file); - - if (!File::copyDirectory($temp_path2.'/Crater', base_path())) { - return false; - } - - // Delete temp directory - File::deleteDirectory($temp_path); - File::deleteDirectory($temp_path2); - try { + + $file = $temp_path . '/upload.zip'; + + // Add content to the Zip file + $uploaded = is_int(file_put_contents($file, $data)) ? true : false; + + if (!$uploaded) { + return false; + } + + // Unzip the file + $zip = new ZipArchive(); + + if ($zip->open($file)) { + $zip->extractTo($temp_path2); + } + + $zip->close(); + + // Delete zip file + File::delete($file); + + if (!File::copyDirectory($temp_path2.'/Crater', base_path())) { + return false; + } + + // Delete temp directory + File::deleteDirectory($temp_path); + File::deleteDirectory($temp_path2); + if (!$isMinor) { event(new UpdateFinished($installed, $version)); } @@ -88,6 +89,13 @@ class Updater 'data' => [] ]; } catch (\Exception $e) { + + if (File::isDirectory($temp_path)) { + // Delete temp directory + File::deleteDirectory($temp_path); + File::deleteDirectory($temp_path2); + } + return [ 'success' => false, 'errors' => 'Update error', From 8de610ad6318d2dc890d447a91e72b0003d9c93a Mon Sep 17 00:00:00 2001 From: yogesh_gohil Date: Sat, 16 Nov 2019 17:50:21 +0530 Subject: [PATCH 4/7] fix logo upload --- .../assets/js/views/settings/CompanyInfo.vue | 20 ++++++++---- .../assets/js/views/wizard/CompanyInfo.vue | 31 +++++++++---------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/resources/assets/js/views/settings/CompanyInfo.vue b/resources/assets/js/views/settings/CompanyInfo.vue index 5299d896..fe976983 100644 --- a/resources/assets/js/views/settings/CompanyInfo.vue +++ b/resources/assets/js/views/settings/CompanyInfo.vue @@ -27,6 +27,7 @@ :upload-handler="cropperHandler" trigger="#pick-avatar" @changed="setFileObject" + @error="hadleUploadError" />
@@ -177,9 +178,9 @@ export default { }, isFetchingData: false, formData: { - name: '', + name: null, logo: null, - email: '', + email: null, phone: null, zip: null, address_street_1: null, @@ -286,6 +287,9 @@ export default { setFileObject (file) { this.fileObject = file }, + hadleUploadError (message, type, xhr) { + window.toastr['error']('Oops! Something went wrong...') + }, async setInitialData () { let response = await this.loadData() this.isFetchingData = true @@ -318,15 +322,19 @@ export default { let response = await this.editCompany(data) if (response.data.success) { this.isLoading = false - if (this.previewLogo) { + if (this.fileObject && this.previewLogo) { let logoData = new FormData() - logoData.append('company_logo', JSON.stringify({name: 'company', data: this.previewLogo})) - let logoUpload = await axios.post('/api/settings/company/upload-logo', logoData) - console.log(logoUpload.data) + logoData.append('company_logo', JSON.stringify({ + name: this.fileObject.name, + data: this.previewLogo + })) + await axios.post('/api/settings/company/upload-logo', logoData) } + this.isLoading = false window.toastr['success'](this.$t('settings.company_info.updated_message')) return true } + this.isLoading = false window.toastr['error'](response.data.error) return true }, diff --git a/resources/assets/js/views/wizard/CompanyInfo.vue b/resources/assets/js/views/wizard/CompanyInfo.vue index 9c58b36e..c0390ea9 100644 --- a/resources/assets/js/views/wizard/CompanyInfo.vue +++ b/resources/assets/js/views/wizard/CompanyInfo.vue @@ -22,6 +22,7 @@ :upload-handler="cropperHandler" trigger="#pick-avatar" @changed="setFileObject" + @error="hadleUploadError" />
@@ -256,30 +257,28 @@ export default { setFileObject (file) { this.fileObject = file }, + hadleUploadError (message, type, xhr) { + window.toastr['error']('Oops! Something went wrong...') + }, async next () { this.$v.companyData.$touch() if (this.$v.companyData.$invalid) { return true } this.loading = true - let data = new FormData() - data.append('logo', this.fileObject) - data.append('name', this.companyData.name) - data.append('address_street_1', this.companyData.address_street_1) - data.append('address_street_2', this.companyData.address_street_2) - data.append('city_id', this.companyData.city_id) - data.append('state_id', this.companyData.state_id) - data.append('country_id', this.companyData.country_id) - data.append('zip', this.companyData.zip) - data.append('phone', this.companyData.phone) - - let response = await window.axios.post('/api/admin/onboarding/company', data, { - headers: { - 'Content-Type': 'multipart/form-data' - } - }) + let response = await window.axios.post('/api/admin/onboarding/company', this.companyData) if (response.data) { + if (this.fileObject && this.previewLogo) { + let logoData = new FormData() + logoData.append('company_logo', JSON.stringify({ + name: this.fileObject.name, + data: this.previewLogo + })) + + await axios.post('/api/settings/company/upload-logo', logoData) + } + this.$emit('next') this.loading = false } From b6af10b68ac13b2780ae501556dea5bdf4a16949 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Sat, 16 Nov 2019 18:18:32 +0530 Subject: [PATCH 5/7] refactor items tax add and update --- app/Http/Controllers/ItemsController.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/ItemsController.php b/app/Http/Controllers/ItemsController.php index b9cbb4be..d8d138aa 100644 --- a/app/Http/Controllers/ItemsController.php +++ b/app/Http/Controllers/ItemsController.php @@ -55,6 +55,7 @@ class ItemsController extends Controller if ($request->has('taxes')) { foreach ($request->taxes as $tax) { + $tax['company_id'] = $request->header('company'); $item->taxes()->create($tax); } } @@ -75,12 +76,16 @@ class ItemsController extends Controller $item->price = $request->price; $item->save(); + $oldTaxes = $item->taxes->toArray(); + + foreach ($oldTaxes as $oldTax) { + Tax::destroy($oldTax['id']); + } + if ($request->has('taxes')) { foreach ($request->taxes as $tax) { - $item->taxes()->updateOrCreate( - ['tax_type_id' => $tax['tax_type_id']], - ['amount' => $tax['amount'], 'percent' => $tax['percent'], 'name' => $tax['name']] - ); + $tax['company_id'] = $request->header('company'); + $item->taxes()->create($tax); } } From 988c75db22e5389407c05dda37328fd8a9b66003 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Sat, 16 Nov 2019 18:20:09 +0530 Subject: [PATCH 6/7] refactor event service provider --- app/Providers/EventServiceProvider.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index d21701a3..dcb39372 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -5,7 +5,6 @@ use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvi use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Crater\Events\UpdateFinished; -use Crater\Listeners\Updates\V10\Version101; class EventServiceProvider extends ServiceProvider { From eebec45ce1d7e8bbae774d9caba822fccd1a0b93 Mon Sep 17 00:00:00 2001 From: yogesh_gohil Date: Sat, 16 Nov 2019 18:34:28 +0530 Subject: [PATCH 7/7] fix button color and some route change --- resources/assets/js/views/settings/CompanyInfo.vue | 14 +++++++------- resources/assets/js/views/wizard/CompanyInfo.vue | 7 ++++++- resources/assets/sass/base.scss | 5 +++++ routes/api.php | 5 +++++ 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/resources/assets/js/views/settings/CompanyInfo.vue b/resources/assets/js/views/settings/CompanyInfo.vue index fe976983..6190c9d0 100644 --- a/resources/assets/js/views/settings/CompanyInfo.vue +++ b/resources/assets/js/views/settings/CompanyInfo.vue @@ -179,13 +179,13 @@ export default { isFetchingData: false, formData: { name: null, - logo: null, - email: null, - phone: null, - zip: null, - address_street_1: null, - address_street_2: null, - website: null, + logo: '', + email: '', + phone: '', + zip: '', + address_street_1: '', + address_street_2: '', + website: '', country_id: null, state_id: '', city_id: '' diff --git a/resources/assets/js/views/wizard/CompanyInfo.vue b/resources/assets/js/views/wizard/CompanyInfo.vue index c0390ea9..0ccc78b4 100644 --- a/resources/assets/js/views/wizard/CompanyInfo.vue +++ b/resources/assets/js/views/wizard/CompanyInfo.vue @@ -276,7 +276,12 @@ export default { data: this.previewLogo })) - await axios.post('/api/settings/company/upload-logo', logoData) + await axios.post('/api/admin/onboarding/company/upload-logo', logoData, { + headers: { + 'Content-Type': 'multipart/form-data', + 'company': response.data.user.company.id + } + }) } this.$emit('next') diff --git a/resources/assets/sass/base.scss b/resources/assets/sass/base.scss index 968e4fda..22a99a11 100644 --- a/resources/assets/sass/base.scss +++ b/resources/assets/sass/base.scss @@ -115,3 +115,8 @@ code, .code { .swal-icon--custom { height: 70px !important; } + +.avatar-cropper-btn:hover { + background-color: $ls-color-primary !important; + color: $white; +} diff --git a/routes/api.php b/routes/api.php index fd0f863f..99754925 100644 --- a/routes/api.php +++ b/routes/api.php @@ -101,6 +101,11 @@ Route::group(['middleware' => 'redirect-if-installed'], function () { 'uses' => 'OnboardingController@adminCompany' ]); + Route::post('/admin/onboarding/company/upload-logo', [ + 'as' => 'upload.admin.company.logo', + 'uses' => 'CompanyController@uploadCompanyLogo' + ]); + Route::post('/admin/onboarding/settings', [ 'as' => 'admin.settings', 'uses' => 'OnboardingController@companySettings'