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.
+