diff --git a/app/components/forms/admin/settings/ticket-fees-form.js b/app/components/forms/admin/settings/ticket-fees-form.js index 7c77afff426..2d7d5132647 100644 --- a/app/components/forms/admin/settings/ticket-fees-form.js +++ b/app/components/forms/admin/settings/ticket-fees-form.js @@ -17,11 +17,31 @@ export default class TicketFeesForm extends Component { return orderBy(paymentCurrencies, 'name'); } + @computed('model.[]') + get ticketFees() { + return this.model.filter(fees => fees.country !== 'global'); + } + + getGlobalFee() { + return this.model.filter(fees => fees.country === 'global')[0]; + } + + @computed('model') + get globalFees() { + const globalFee = this.getGlobalFee(); + if (globalFee) {return globalFee} + const globalFeeItem = this.store.createRecord('ticket-fee', { + country: 'global' + }); + this.model.toArray().addObject(globalFeeItem); + return globalFeeItem; + } + @action addNewTicket() { const settings = this.model; const incorrect_settings = settings.filter(function(setting) { - return (!setting.get('currency') || !setting.get('country')); + return (!setting.get('country')); }); if (incorrect_settings.length > 0) { this.notify.error(this.l10n.t('Existing items need to be completed before new items can be added.'), { @@ -29,7 +49,7 @@ export default class TicketFeesForm extends Component { }); this.set('isLoading', false); } else { - this.model.toArray().addObject(this.store.createRecord('ticket-fee', { + this.model.addObject(this.store.createRecord('ticket-fee', { maximumFee : 0.0, serviceFee : 0.0 })); diff --git a/app/controllers/admin/settings/ticket-fees.js b/app/controllers/admin/settings/ticket-fees.js index 07ba3f5cd6e..5e70a785563 100644 --- a/app/controllers/admin/settings/ticket-fees.js +++ b/app/controllers/admin/settings/ticket-fees.js @@ -7,7 +7,7 @@ export default class extends Controller { this.set('isLoading', true); const settings = this.model; const incorrect_settings = settings.filter(function(setting) { - return (!setting.currency || !setting.country); + return (!setting.country); }); if (incorrect_settings.length > 0) { this.notify.error(this.l10n.t('Please fill the required fields.'), diff --git a/app/templates/components/forms/admin/settings/ticket-fees-form.hbs b/app/templates/components/forms/admin/settings/ticket-fees-form.hbs index 8e55d9202a1..726c05c97c5 100644 --- a/app/templates/components/forms/admin/settings/ticket-fees-form.hbs +++ b/app/templates/components/forms/admin/settings/ticket-fees-form.hbs @@ -1,8 +1,55 @@

- {{t 'Add Fee Settings for the event'}} + {{t 'Add Fee Settings for the event invoices'}}

- {{#each this.model as |ticketFee|}} + {{#if this.globalFees}} +

+ {{t 'Global Settings'}} +

+ +
+
+ +
+ +
+ % +
+
+
+ +
+ +
+ +
+
+
+ {{/if}} + + {{#if this.ticketFees}} +

+ {{t 'Country-Wise Settings'}} +

+ {{/if}} + + {{#each this.ticketFees as |ticketFee|}}