diff --git a/resources/assets/js/views/settings/CompanyInfo.vue b/resources/assets/js/views/settings/CompanyInfo.vue
index 9ee883d5..6190c9d0 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,14 +178,14 @@ export default {
},
isFetchingData: false,
formData: {
- name: '',
- logo: null,
+ name: null,
+ logo: '',
email: '',
- phone: null,
- zip: null,
- address_street_1: null,
- address_street_2: null,
- website: null,
+ phone: '',
+ zip: '',
+ address_street_1: '',
+ address_street_2: '',
+ website: '',
country_id: null,
state_id: '',
city_id: ''
@@ -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
@@ -314,15 +318,23 @@ 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.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.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..0ccc78b4 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,33 @@ 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/admin/onboarding/company/upload-logo', logoData, {
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ 'company': response.data.user.company.id
+ }
+ })
+ }
+
this.$emit('next')
this.loading = false
}
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'