diff --git a/CHANGELOG.md b/CHANGELOG.md index 00d623c40..879531d5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Fix a bug: unable to create events or trainings that are not multiples of SLOT_DURATION - Fix a bug: unable to delete an unreserved event - Fix a bug: "Free entry" label for events without reservation +- Fix a bug: updating a setting without any changes triggers an error ## v4.3.4 2020 April 14 diff --git a/app/assets/javascripts/controllers/admin/invoices.js.erb b/app/assets/javascripts/controllers/admin/invoices.js.erb index 381272707..85f2fa77d 100644 --- a/app/assets/javascripts/controllers/admin/invoices.js.erb +++ b/app/assets/javascripts/controllers/admin/invoices.js.erb @@ -291,8 +291,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I growl.success(_t('app.admin.invoices.invoice_reference_successfully_saved')); } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_invoice_reference')); - console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_invoice_reference')); + console.error(error); }); }); }; @@ -330,8 +332,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I } } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_invoicing_code')); - return console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_invoicing_code')); + console.error(error); }); return Setting.update({ name: 'invoice_code-active' }, { value: result.active ? 'true' : 'false' }, function (data) { @@ -343,8 +347,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I } } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_activating_the_invoicing_code')); - return console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_activating_the_invoicing_code')); + console.error(error); }); }); }; @@ -375,8 +381,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I return growl.success(_t('app.admin.invoices.order_number_successfully_saved')); } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_order_number')); - return console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_order_number')); + console.error(error); }); }); }; @@ -434,8 +442,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I } } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_VAT_rate')); - return console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_VAT_rate')); + console.error(error); }); return Setting.update({ name: 'invoice_VAT-active' }, { value: result.active ? 'true' : 'false' }, function (data) { @@ -447,8 +457,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I } } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_activating_the_VAT')); - return console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_activating_the_VAT')); + console.error(error); }); }); }; @@ -463,8 +475,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I return growl.success(_t('app.admin.invoices.text_successfully_saved')); } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_text')); - return console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_text')); + console.error(error); }); }; @@ -478,8 +492,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I return growl.success(_t('app.admin.invoices.address_and_legal_information_successfully_saved')); } , function (error) { - growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_address_and_the_legal_information')); - return console.error(error); + if (error.status === 304) return; + + growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_address_and_the_legal_information')); + console.error(error); }); }; @@ -710,8 +726,10 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I { value: $scope.invoice.logo.base64 }, function (data) { growl.success(_t('app.admin.invoices.logo_successfully_saved')); }, function (error) { + if (error.status === 304) return; + growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_logo')); - return console.error(error); + console.error(error); } ); } diff --git a/app/assets/javascripts/controllers/admin/settings.js.erb b/app/assets/javascripts/controllers/admin/settings.js.erb index 7f4947fca..e48d2c2e6 100644 --- a/app/assets/javascripts/controllers/admin/settings.js.erb +++ b/app/assets/javascripts/controllers/admin/settings.js.erb @@ -209,7 +209,12 @@ Application.Controllers.controller('SettingsController', ['$scope', '$rootScope' { name: setting.name }, { value }, function () { growl.success(_t('app.admin.settings.customization_of_SETTING_successfully_saved', { SETTING: _t(`app.admin.settings.${setting.name}`) })); }, - function (error) { console.log(error); } + function (error) { + if (error.status === 304) return; + + growl.error(_t('app.admin.settings.an_error_occurred_saving_the_setting')); + console.log(error); + } ); }; diff --git a/app/assets/javascripts/controllers/main_nav.js b/app/assets/javascripts/controllers/main_nav.js index e8c335ac5..88ee97899 100644 --- a/app/assets/javascripts/controllers/main_nav.js +++ b/app/assets/javascripts/controllers/main_nav.js @@ -119,7 +119,7 @@ Application.Controllers.controller('MainNavController', ['$scope', function ($sc state: 'app.admin.invoices', linkText: 'app.public.common.manage_the_invoices', linkIcon: 'file-pdf-o', - authorizedRoles: ['admin'] + authorizedRoles: ['admin', 'manager'] }, { state: 'app.admin.statistics', @@ -127,7 +127,10 @@ Application.Controllers.controller('MainNavController', ['$scope', function ($sc linkIcon: 'bar-chart-o', authorizedRoles: ['admin'] }, - { class: 'menu-spacer' }, + { + class: 'menu-spacer', + authorizedRoles: ['admin'] + }, { state: 'app.admin.settings', linkText: 'app.public.common.customization', diff --git a/app/assets/templates/admin/invoices/codes.html.erb b/app/assets/templates/admin/invoices/codes.html.erb new file mode 100644 index 000000000..80b527c4b --- /dev/null +++ b/app/assets/templates/admin/invoices/codes.html.erb @@ -0,0 +1,111 @@ +
- | {{ 'app.admin.invoices.invoice_num' | translate }} | - -{{ 'app.admin.invoices.date' | translate }} | - -{{ 'app.admin.invoices.price' | translate }} | - -{{ 'app.admin.invoices.customer' | translate }} | - -- | |
---|---|---|---|---|---|---|
- - - | -{{ invoice.reference }} | -{{ invoice.date | amDateFormat:'L LTS' }} | -{{ invoice.date | amDateFormat:'L' }} | -{{ invoice.total | currency}} | -- {{ invoice.name }} - {{ invoice.name }} - | - | - -
{{ 'app.admin.invoices.no_invoices_for_now' }}
- -+ | {{ 'app.admin.invoices.invoice_num' | translate }} | + +{{ 'app.admin.invoices.date' | translate }} | + +{{ 'app.admin.invoices.price' | translate }} | + +{{ 'app.admin.invoices.customer' | translate }} | + ++ | |
---|---|---|---|---|---|---|
+ + + | +{{ invoice.reference }} | +{{ invoice.date | amDateFormat:'L LTS' }} | +{{ invoice.date | amDateFormat:'L' }} | +{{ invoice.total | currency}} | ++ {{ invoice.name }} + {{ invoice.name }} + | + | + +
{{ 'app.admin.invoices.no_invoices_for_now' }}
+ +.home-page
selector to prevent any risk of breaking the application. Meanwhile please be careful, any changes in the home page editor at the top of the page may broke your styles, always refer to the HTML code."
+ an_error_occurred_saving_the_setting: "An error occurred while saving the setting. Please try again later."
sort_by:
default: "Default"
name: "Name"