diff --git a/app/constants.js b/app/constants.js index 1d3631bf6..6a6563134 100644 --- a/app/constants.js +++ b/app/constants.js @@ -22,8 +22,7 @@ const ActivityCategories = [ 'Algemeen', 'Sociƫteit', 'Vorming', - 'Dinsdagkring', - 'Woensdagkring', + 'Kring', 'ChOOSE', 'IFES', 'OZON', diff --git a/app/controllers/activities/ical.js b/app/controllers/activities/ical.js index ae3fad973..f493acfb8 100644 --- a/app/controllers/activities/ical.js +++ b/app/controllers/activities/ical.js @@ -1,13 +1,12 @@ -import Controller from '@ember/controller'; +import EditController from 'amber-ui/controllers/application/edit'; // eslint-disable-next-line ember/no-computed-properties-in-native-classes import { computed } from '@ember/object'; import { inject as service } from '@ember/service'; import { ActivityCategories } from 'amber-ui/constants'; import { tracked } from '@glimmer/tracking'; -export default class ActivitiesIcalController extends Controller { +export default class ActivitiesIcalController extends EditController { @service session; - @tracked activityCategoryOptions; constructor() { @@ -24,10 +23,9 @@ export default class ActivitiesIcalController extends Controller { @computed('activityCategoryOptions.@each.checked') get categoriesParams() { - const selected = this.activityCategoryOptions - .filter((category) => category.checked) - .map((category) => category.value); - return `categories=${selected.join(',')}`; + return this.activityCategoryOptions + .filter(category => category.checked) + .map(category => category.value); } get iCalBase() { @@ -35,11 +33,11 @@ export default class ActivitiesIcalController extends Controller { } get iCalURL() { - return `${window.location.origin}${this.iCalBase}&${this.categoriesParams}`; + return `${window.location.origin}${this.iCalBase}`; } get webcalURL() { - return `webcal://${window.location.host}${this.iCalBase}&${this.categoriesParams}`; + return `webcal://${window.location.host}${this.iCalBase}`; } _activityCategoryToOption(activityCategory) { @@ -49,4 +47,21 @@ export default class ActivitiesIcalController extends Controller { checked: true, }; } + + saveCategories = () => { + const { currentUser } = this.session; + const selectedCategories = this.categoriesParams; + + currentUser.set('icalCategories', selectedCategories); + + return currentUser.save() + .then(() => { + console.log('Categories saved successfully!'); + }) + .catch((error) => { + console.error('Failed to save categories:', error); + }); + }; + + } diff --git a/app/models/user.js b/app/models/user.js index 2688bb730..1049c8dcf 100644 --- a/app/models/user.js +++ b/app/models/user.js @@ -42,6 +42,7 @@ export default class User extends Model { // Security properties @attr otpRequired; @attr icalSecretKey; + @attr icalCategories; @attr webdavSecretKey; @attr password; diff --git a/app/templates/activities/ical.hbs b/app/templates/activities/ical.hbs index c0da45e18..70dc23ee8 100644 --- a/app/templates/activities/ical.hbs +++ b/app/templates/activities/ical.hbs @@ -17,8 +17,9 @@ uitgelegd.

+
- {{#each activityCategoryOptions as |opt|}} + {{#each this.activityCategoryOptions as |opt|}}
{{/each}} +
+ +

@@ -51,8 +57,8 @@ anderen.
-

{{iCalURL}}

+

{{this.iCalURL}}

- \ No newline at end of file + diff --git a/mirage/factories/activity.js b/mirage/factories/activity.js index 27014874f..a91989c4e 100644 --- a/mirage/factories/activity.js +++ b/mirage/factories/activity.js @@ -16,8 +16,7 @@ export default Factory.extend({ 'algemeen', 'sociƫteit', 'vorming', - 'dinsdagkring', - 'woensdagkring', + 'kring', 'choose', 'ifes', 'ozon',