From 16eb29b043fbceb18e8f034cb66c6323e2ec489f Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Mon, 28 Mar 2022 08:33:35 +0200 Subject: [PATCH 01/42] Update transition code to remove deprecation warning --- app/pods/application/route.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/pods/application/route.js b/app/pods/application/route.js index b97ae3ae00..f9c3b7edf5 100644 --- a/app/pods/application/route.js +++ b/app/pods/application/route.js @@ -24,7 +24,7 @@ export default class ApplicationRoute extends Route { this.intl.setLocale(['nl-be']); if (!this.isSupportedBrowser) { - this.transitionTo('not-supported'); + this.router.transitionTo('not-supported'); } try { @@ -34,7 +34,7 @@ export default class ApplicationRoute extends Route { } if (this.session.isAuthenticated && !this.currentSession.hasValidGroup) { - this.transitionTo('accountless-users'); + this.router.transitionTo('accountless-users'); } } @@ -59,7 +59,7 @@ export default class ApplicationRoute extends Route { @action willTransition(transition) { if (this.session.isAuthenticated && !this.currentSession.hasValidGroup) { - this.transitionTo('accountless-users'); + this.router.transitionTo('accountless-users'); } if ( From 5c8124fc97414b8f1fd07f55f7c77e09eb1f970d Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Mon, 28 Mar 2022 08:35:18 +0200 Subject: [PATCH 02/42] Add meeting kind model to frontend --- app/config/config.js | 2 +- app/models/meeting-kind.js | 8 ++++++++ app/pods/agendas/route.js | 10 +++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 app/models/meeting-kind.js diff --git a/app/config/config.js b/app/config/config.js index 98ae994c65..391ba9ea92 100644 --- a/app/config/config.js +++ b/app/config/config.js @@ -9,7 +9,7 @@ export const PAGE_SIZE = { PIECES: 500, ACTIVITIES: 500, CASES: 500, - + MEETING_KIND: 5, SELECT: 10, }; diff --git a/app/models/meeting-kind.js b/app/models/meeting-kind.js new file mode 100644 index 0000000000..9be691a2fb --- /dev/null +++ b/app/models/meeting-kind.js @@ -0,0 +1,8 @@ +import Model, { attr } from '@ember-data/model'; + +export default class MeetingKindModel extends Model { + @attr('string') uri; + @attr('string') label; + @attr('string') altLabel; + @attr('string') postfix; +} diff --git a/app/pods/agendas/route.js b/app/pods/agendas/route.js index 77c2190b21..ae6756e073 100644 --- a/app/pods/agendas/route.js +++ b/app/pods/agendas/route.js @@ -1,16 +1,24 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import { action } from '@ember/object'; +import { PAGE_SIZE } from 'frontend-kaleidos/config/config'; export default class AgendasRoute extends Route { + @service router; @service('session') simpleAuthSession; beforeModel(transition) { this.simpleAuthSession.requireAuthentication(transition, 'login'); } + afterModel() { + return this.store.query('meeting-kind', { + 'page[size]': PAGE_SIZE.MEETING_KIND, + }); + } + redirect() { - this.transitionTo('agendas.overview'); + this.router.transitionTo('agendas.overview'); } @action From f471539df2f510331a40913c56ea733a564c27d4 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Mon, 28 Mar 2022 16:35:51 +0200 Subject: [PATCH 03/42] Add isAnnexMeeting getter to meeting-kind model --- app/components/meeting/new-meeting-modal.js | 2 +- app/models/meeting-kind.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/components/meeting/new-meeting-modal.js b/app/components/meeting/new-meeting-modal.js index 60e41fe2bb..ed71955f44 100644 --- a/app/components/meeting/new-meeting-modal.js +++ b/app/components/meeting/new-meeting-modal.js @@ -36,7 +36,7 @@ export default class MeetingNewMeetingModal extends Component { } get isAnnexMeeting() { - return isAnnexMeetingKind(this.selectedKindUri); + return this.kind?.isAnnexMeeting; } get formattedMeetingIdentifier() { diff --git a/app/models/meeting-kind.js b/app/models/meeting-kind.js index 9be691a2fb..2d7a970be4 100644 --- a/app/models/meeting-kind.js +++ b/app/models/meeting-kind.js @@ -1,8 +1,14 @@ import Model, { attr } from '@ember-data/model'; +import CONSTANTS from '../config/constants'; export default class MeetingKindModel extends Model { @attr('string') uri; @attr('string') label; @attr('string') altLabel; @attr('string') postfix; + @attr('string') broader; + + get isAnnexMeeting() { + return this.broader === CONSTANTS.MEETING_KINDS.ANNEX; + } } From 54c7c71407ffee42465a1346f61966a1c90eec65 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Mon, 28 Mar 2022 16:41:03 +0200 Subject: [PATCH 04/42] Directly use meeting-kind in meeting model --- app/components/agenda/agenda-header.hbs | 4 ++-- app/components/agenda/future-agendas.hbs | 2 +- app/components/agenda/printable-agenda.hbs | 2 +- .../newsletter/newsletter-header-overview.hbs | 2 +- .../newsletter/newsletter-meeting.hbs | 2 +- app/models/meeting.js | 24 ++++--------------- app/pods/newsletters/template.hbs | 2 +- 7 files changed, 12 insertions(+), 26 deletions(-) diff --git a/app/components/agenda/agenda-header.hbs b/app/components/agenda/agenda-header.hbs index 998fe66503..c3176674ad 100644 --- a/app/components/agenda/agenda-header.hbs +++ b/app/components/agenda/agenda-header.hbs @@ -15,13 +15,13 @@ {{moment-format @meeting.plannedStart "HH:mm"}} {{/unless}} - {{#if @meeting.kindToShow.label}} + {{#if @meeting.kind.label}} - - {{await @meeting.kindToShow.label}} + {{await @meeting.kind.label}} {{/if}} diff --git a/app/components/agenda/future-agendas.hbs b/app/components/agenda/future-agendas.hbs index 4306738b23..eb9fec129a 100644 --- a/app/components/agenda/future-agendas.hbs +++ b/app/components/agenda/future-agendas.hbs @@ -94,7 +94,7 @@ {{/if}} - {{meeting.kindToShow.label}} + {{meeting.kind.label}}
diff --git a/app/components/newsletter/newsletter-header-overview.hbs b/app/components/newsletter/newsletter-header-overview.hbs index 1a473dfe8e..0bb13e17d9 100644 --- a/app/components/newsletter/newsletter-header-overview.hbs +++ b/app/components/newsletter/newsletter-header-overview.hbs @@ -10,7 +10,7 @@ > {{t "newsletter-overview-pdf-name"}} - - {{@meeting.kindToShow.label}} + {{@meeting.kind.label}} {{moment-format @meeting.plannedStart "DD MMMM YYYY"}}
diff --git a/app/components/newsletter/newsletter-meeting.hbs b/app/components/newsletter/newsletter-meeting.hbs index 56b9e1b0a2..cc402b7b6e 100644 --- a/app/components/newsletter/newsletter-meeting.hbs +++ b/app/components/newsletter/newsletter-meeting.hbs @@ -2,7 +2,7 @@ {{!-- template-lint-disable no-action --}}

- {{t "newsletter-overview-pdf-name"}} - {{this.meeting.kindToShow.altLabel}} {{t "of"}} {{moment-format this.meeting.plannedStart "dddd DD-MM-YYYY"}} + {{t "newsletter-overview-pdf-name"}} - {{if this.meeting.kind.altLabel this.meeting.kind.altLabel this.meeting.kind.label}} {{t "of"}} {{moment-format this.meeting.plannedStart "dddd DD-MM-YYYY"}}

{{#if (and this.allowEditing this.currentSession.isEditor)}}
diff --git a/app/models/meeting.js b/app/models/meeting.js index 1c894ac0b1..3ac933ee62 100644 --- a/app/models/meeting.js +++ b/app/models/meeting.js @@ -1,10 +1,8 @@ import Model, { belongsTo, hasMany, attr } from '@ember-data/model'; import { PromiseArray, PromiseObject } from '@ember-data/store/-private'; -import EmberObject, { computed } from '@ember/object'; +import { computed } from '@ember/object'; import { inject } from '@ember/service'; -import CONFIG from 'frontend-kaleidos/utils/config'; import { KALEIDOS_START_DATE } from 'frontend-kaleidos/config/config'; -import { isAnnexMeetingKind } from 'frontend-kaleidos/utils/meeting-utils'; import moment from 'moment'; import { sortDocumentContainers @@ -26,7 +24,6 @@ export default Model.extend({ numberRepresentation: attr('string'), isFinal: attr('boolean'), extraInfo: attr('string'), - kind: attr('string'), releasedDocuments: attr('datetime'), releasedDecisions: attr('datetime'), @@ -36,6 +33,7 @@ export default Model.extend({ requestedSubcases: hasMany('subcase'), pieces: hasMany('piece'), + kind: belongsTo('meeting-kind'), mainMeeting: belongsTo('meeting', { inverse: null, }), @@ -49,8 +47,7 @@ export default Model.extend({ label: computed('plannedStart', 'kind', 'numberRepresentation', function() { const date = moment(this.plannedStart).format('DD-MM-YYYY'); - const kind = CONFIG.MINISTERRAAD_TYPES.TYPES.find((type) => type.uri === this.kind); - const kindLabel = kind ? kind.altLabel : ''; + const kindLabel = this.get('kind').get('altLabel') || this.get('kind').get('label') || ''; return `${kindLabel} ${this.intl.t('of')} ${date} (${this.numberRepresentation})`; }), @@ -108,19 +105,8 @@ export default Model.extend({ return await agenda.get('agendaName'); }), - kindToShow: computed('kind', function() { - const options = CONFIG.MINISTERRAAD_TYPES.TYPES; - const { - kind, - } = this; - const foundOption = options.find((kindOption) => kindOption.uri === kind); - - - return EmberObject.create(foundOption); - }), - - isAnnex: computed('kind', function() { - return isAnnexMeetingKind(this.kind); + isAnnex: computed('kind', async function() { + return await this.get('kind').isAnnexMeeting(); }), isPreKaleidos: computed('plannedStart', function () { diff --git a/app/pods/newsletters/template.hbs b/app/pods/newsletters/template.hbs index a59182e0ef..dc57ccd987 100644 --- a/app/pods/newsletters/template.hbs +++ b/app/pods/newsletters/template.hbs @@ -48,7 +48,7 @@ {{else}} {{t "newsletter-for-meeting-of" - kind=(lowercase meeting.kindToShow.altLabel) + kind=(lowercase (if meeting.kind.altLabel meeting.kind.altLabel meeting.kind.label)) }} {{moment-format meeting.plannedStart "DD.MM.YYYY"}} {{/if}} From 79f2227a2c98e37387965df29ae8b2df69f53b56 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Mon, 28 Mar 2022 16:42:10 +0200 Subject: [PATCH 05/42] Update kind-selector to use meeting-kind record --- app/components/meeting/edit-meeting-modal.js | 14 +---- app/components/meeting/new-meeting-modal.js | 15 ++--- app/components/utils/kind-selector.hbs | 10 ++- app/components/utils/kind-selector.js | 62 +++++++++++-------- app/config/constants.js | 9 ++- .../print-overviews/decisions/controller.js | 2 +- 6 files changed, 58 insertions(+), 54 deletions(-) diff --git a/app/components/meeting/edit-meeting-modal.js b/app/components/meeting/edit-meeting-modal.js index 6552eff015..e8cda30fb0 100644 --- a/app/components/meeting/edit-meeting-modal.js +++ b/app/components/meeting/edit-meeting-modal.js @@ -3,8 +3,6 @@ import { tracked } from '@glimmer/tracking'; import { inject as service } from '@ember/service'; import { action } from '@ember/object'; import { task } from 'ember-concurrency'; -import EmberObject from '@ember/object'; -import CONFIG from 'frontend-kaleidos/utils/config'; /** * @argument {meeting} @@ -15,7 +13,6 @@ export default class MeetingEditMeetingComponent extends Component { @service toaster; @tracked kind; - @tracked selectedKindUri; @tracked startDate; @tracked extraInfo; @tracked _meetingNumber; @@ -25,12 +22,7 @@ export default class MeetingEditMeetingComponent extends Component { super(...arguments); this.meetingYear = this.args.meeting.plannedStart.getFullYear(); - this.selectedKindUri = this.args.meeting.kind; - this.kind = EmberObject.create( - CONFIG.MINISTERRAAD_TYPES.TYPES.find( - (minsterraad) => minsterraad.uri === this.selectedKindUri - ) - ); + this.kind = this.args.meeting.kind; this.startDate = this.args.meeting.plannedStart; this.extraInfo = this.args.meeting.extraInfo; this.meetingNumber = this.args.meeting.number; @@ -63,7 +55,7 @@ export default class MeetingEditMeetingComponent extends Component { this.args.meeting.extraInfo = this.extraInfo; this.args.meeting.plannedStart = this.startDate || now; - this.args.meeting.kind = this.selectedKindUri; + this.args.meeting.kind = this.kind; this.args.meeting.number = this.meetingNumber; this.args.meeting.numberRepresentation = this.numberRepresentation; @@ -83,6 +75,6 @@ export default class MeetingEditMeetingComponent extends Component { @action setKind(kind) { - this.selectedKindUri = kind; + this.kind = kind; } } diff --git a/app/components/meeting/new-meeting-modal.js b/app/components/meeting/new-meeting-modal.js index ed71955f44..b1a5940cc3 100644 --- a/app/components/meeting/new-meeting-modal.js +++ b/app/components/meeting/new-meeting-modal.js @@ -6,9 +6,7 @@ import { inject as service } from '@ember/service'; import { A } from '@ember/array'; import moment from 'moment'; import CONSTANTS from 'frontend-kaleidos/config/constants'; -import CONFIG from 'frontend-kaleidos/utils/config'; import { - isAnnexMeetingKind, fetchClosestMeetingAndAgendaId, } from 'frontend-kaleidos/utils/meeting-utils'; @@ -21,8 +19,8 @@ export default class MeetingNewMeetingModal extends Component { @service newsletterService; @service toaster; + @tracked kind = null; @tracked selectedMainMeeting = null; - @tracked selectedKindUri = null; @tracked isEditingFormattedMeetingIdentifier = false; @tracked _meetingNumber = null; @tracked _formattedMeetingIdentifier = null; @@ -85,7 +83,7 @@ export default class MeetingNewMeetingModal extends Component { extraInfo: this.extraInfo, isFinal: false, plannedStart: startDate, - kind: this.selectedKindUri ?? CONFIG.MINISTERRAAD_TYPES.DEFAULT, + kind: this.kind, mainMeeting: this.selectedMainMeeting, number: this.meetingNumber, numberRepresentation: this.formattedMeetingIdentifier, @@ -171,10 +169,7 @@ export default class MeetingNewMeetingModal extends Component { @action selectMainMeeting(mainMeeting) { - const kind = CONFIG.MINISTERRAAD_TYPES.TYPES.find( - (minsterraad) => minsterraad.uri === this.selectedKindUri - ); - const postfix = (kind && kind.postfix) || ''; + const postfix = this.kind?.postfix || ''; this.selectedMainMeeting = mainMeeting; this.startDate = mainMeeting.plannedStart; this.meetingNumber = mainMeeting.number; @@ -188,8 +183,8 @@ export default class MeetingNewMeetingModal extends Component { } @action - setKind(kind) { - this.selectedKindUri = kind; + async setKind(kind) { + this.kind = kind; if (!this.isAnnexMeeting) { this.selectedMainMeeting = null; this.initializeMeetingNumber.perform(); diff --git a/app/components/utils/kind-selector.hbs b/app/components/utils/kind-selector.hbs index 0c1b450048..bc91d13b89 100644 --- a/app/components/utils/kind-selector.hbs +++ b/app/components/utils/kind-selector.hbs @@ -1,10 +1,8 @@ -{{! TODO: octane-refactor }} -{{! template-lint-disable no-action }}
- {{#if (not this.hideLabel)}} + {{#if (not @hideLabel)}} {{t "kind"}} {{/if}} - {{#if this.isLoading}} + {{#if this.loadOptions.isRunning}}
{{t "please-be-patient"}} @@ -12,8 +10,8 @@ {{else}} {{option.label}} diff --git a/app/components/utils/kind-selector.js b/app/components/utils/kind-selector.js index bc3651fd8b..1c885a2888 100644 --- a/app/components/utils/kind-selector.js +++ b/app/components/utils/kind-selector.js @@ -1,29 +1,41 @@ -/* eslint-disable ember/no-arrow-function-computed-properties */ -// TODO: octane-refactor -// eslint-disable-next-line ember/no-classic-components -import Component from '@ember/component'; -import CONFIG from 'frontend-kaleidos/utils/config'; -import EmberObject, { computed } from '@ember/object'; +import Component from '@glimmer/component'; +import { tracked } from '@glimmer/tracking'; +import { action } from '@ember/object'; +import { inject as service } from '@ember/service'; +import { task } from 'ember-concurrency'; -// TODO: octane-refactor -// eslint-disable-next-line ember/no-classic-classes, ember/require-tagless-components -export default Component.extend({ - classNames: ['auk-u-mb-2'], - isLoading: null, - hideLabel: null, +/** + * @argument {boolean} hideLabel Whether to hide the label of the dropdown + * @argument {boolean} initializeEmptyKind Whether to initialize the dropdown to the default meeting kind of no meeting kind was provided + * @argument {function} setAction Action to perform once a meeting kind has been selected + * @argument {MeetingKindModel} kind (Optional) The meeting kind to set the dropdown to + */ +export default class UtilsKindSelector extends Component { + @service store; + @tracked kind = null; - options: computed(() => CONFIG.MINISTERRAAD_TYPES.TYPES.map((meetingType) => EmberObject.create(meetingType))), + constructor() { + super(...arguments); - selectedkind: computed('kind.uri', 'options', function() { - return this.options.find((kind) => this.kind && kind.uri === this.kind.uri) || this.options.get('firstObject'); - }), + this.kind = this.args.kind; + this.loadOptions.perform(); + } - // TODO: octane-refactor - // eslint-disable-next-line ember/no-actions-hash - actions: { - setAction(meetingType) { - this.set('selectedkind', meetingType); - this.setAction(meetingType.get('uri')); - }, - }, -}); + @task + *loadOptions() { + yield this.store.findAll('meeting-kind', { reload: false }); + if (this.args.initializeEmptyKind && this.args.kind === null || this.args.kind === undefined) { + this.setAction(this.options.firstObject); + } + } + + get options() { + return this.store.peekAll('meeting-kind'); + } + + @action + setAction(kind) { + this.kind = kind; + this.args.setAction(kind); + } +} diff --git a/app/config/constants.js b/app/config/constants.js index 086966ea25..a9cf4e3f07 100644 --- a/app/config/constants.js +++ b/app/config/constants.js @@ -90,5 +90,12 @@ export default { MB: 'http://themis.vlaanderen.be/id/concept/regelgeving-type/49bad4d9-745b-4a71-b6c6-0eac34e6bdd4', DECREET: 'http://themis.vlaanderen.be/id/concept/regelgeving-type/bf6101a9-d06b-44d4-b629-13965654c8c2', BVR: 'http://themis.vlaanderen.be/id/concept/regelgeving-type/ea7f5f79-f81c-459b-a0f7-d8e90e2d9b88', - } + }, + MEETING_KINDS: { + MINISTERRAAD: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/A5D6B7A8-2F9C-44B6-B3BE-98D80B426254', + ELEKTRONISCHE_PROCEDURE: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/406F2ECA-524D-47DC-B889-651893135456', + BIJZONEDERE_MINISTERRAAD: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/7D8E35BE-E5D1-494F-B5F9-51B07875B96F', + PVV: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/1d16cb70-0ae9-489e-bf97-c74897222e3c', + ANNEX: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/d36138a9-07f0-4df6-bbf0-abd51a24e4ce', + }, }; diff --git a/app/pods/print-overviews/decisions/controller.js b/app/pods/print-overviews/decisions/controller.js index 86f62999e6..151eaca361 100644 --- a/app/pods/print-overviews/decisions/controller.js +++ b/app/pods/print-overviews/decisions/controller.js @@ -25,7 +25,7 @@ export default Controller.extend({ titleTranslationParams: computed('model.createdFor', function() { const meeting = this.get('model.createdFor'); - const kindLabel = meeting.get('kindToShow.altLabel'); + const kindLabel = meeting.get('kind').get('altLabel') || meeting.get('kind').get('label') || ''; return { kind: kindLabel, }; From 732ac510b8bbb547f4349e953acea02d2001ce5e Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Mon, 28 Mar 2022 16:43:10 +0200 Subject: [PATCH 06/42] Ensure meeting-kinds are only loaded in once --- app/adapters/meeting-kind.js | 18 ++++++++++++++++++ app/models/meeting-kind.js | 1 + app/pods/agendas/route.js | 4 ++++ app/utils/meeting-utils.js | 13 ++----------- 4 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 app/adapters/meeting-kind.js diff --git a/app/adapters/meeting-kind.js b/app/adapters/meeting-kind.js new file mode 100644 index 0000000000..3233bfccf3 --- /dev/null +++ b/app/adapters/meeting-kind.js @@ -0,0 +1,18 @@ +import ApplicationAdapter from './application'; + +export default ApplicationAdapter.extend({ + + // Since headers are set to not cache + // But we need it cached because we do + // so many calls + // we cache it here, bypassing the no-cache header. + + shouldReloadAll(store, snapshot) { + return !store.peekAll(snapshot.type.modelName).length; + }, + + shouldBackgroundReloadAll(store, snapshot) { + return !store.peekAll(snapshot.type.modelName).length; + }, + +}); diff --git a/app/models/meeting-kind.js b/app/models/meeting-kind.js index 2d7a970be4..ee1dcb8133 100644 --- a/app/models/meeting-kind.js +++ b/app/models/meeting-kind.js @@ -5,6 +5,7 @@ export default class MeetingKindModel extends Model { @attr('string') uri; @attr('string') label; @attr('string') altLabel; + @attr('number') priority; @attr('string') postfix; @attr('string') broader; diff --git a/app/pods/agendas/route.js b/app/pods/agendas/route.js index ae6756e073..982801286b 100644 --- a/app/pods/agendas/route.js +++ b/app/pods/agendas/route.js @@ -14,6 +14,10 @@ export default class AgendasRoute extends Route { afterModel() { return this.store.query('meeting-kind', { 'page[size]': PAGE_SIZE.MEETING_KIND, + filter: { + ':has:priority': true, + }, + sort: 'priority', }); } diff --git a/app/utils/meeting-utils.js b/app/utils/meeting-utils.js index cd2689127f..3927d927dd 100644 --- a/app/utils/meeting-utils.js +++ b/app/utils/meeting-utils.js @@ -1,18 +1,9 @@ -// TODO once codelists are correctly used in the frontend -// we should check whether kindUri has a broader type 'Annex' -export const isAnnexMeetingKind = function (kindUri) { - return ( - kindUri === - 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/1d16cb70-0ae9-489e-bf97-c74897222e3c' - ); -}; - export const fetchClosestMeetingAndAgendaId = async function (date) { const response = await fetch(`/session-service/closestMeeting?date=${date}`, { method: 'GET', }); - const json = await response.json(); - return json.body.closestMeeting; + const payload = await response.json(); + return payload.body.closestMeeting; }; export const assignNewSessionNumbers = async function () { From 64d51a33ce1ded8e531709c31a01cb2090332ffa Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Mon, 28 Mar 2022 22:59:42 +0200 Subject: [PATCH 07/42] Use .get() in case the object being accessed is a proxy --- app/components/meeting/new-meeting-modal.js | 2 +- app/models/meeting.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/meeting/new-meeting-modal.js b/app/components/meeting/new-meeting-modal.js index b1a5940cc3..ee1e772a8e 100644 --- a/app/components/meeting/new-meeting-modal.js +++ b/app/components/meeting/new-meeting-modal.js @@ -34,7 +34,7 @@ export default class MeetingNewMeetingModal extends Component { } get isAnnexMeeting() { - return this.kind?.isAnnexMeeting; + return this.kind?.get('isAnnexMeeting'); } get formattedMeetingIdentifier() { diff --git a/app/models/meeting.js b/app/models/meeting.js index 3ac933ee62..97a9a9581d 100644 --- a/app/models/meeting.js +++ b/app/models/meeting.js @@ -106,7 +106,7 @@ export default Model.extend({ }), isAnnex: computed('kind', async function() { - return await this.get('kind').isAnnexMeeting(); + return await this.get('kind').get('isAnnexMeeting'); }), isPreKaleidos: computed('plannedStart', function () { From b5547b7f7495a5ac230474fe52f1b7037d07908f Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Tue, 29 Mar 2022 20:37:02 +0200 Subject: [PATCH 08/42] Use initializeEmptyKind argument & checek for falsiness of kind --- app/components/meeting/new-meeting-modal.hbs | 1 + app/components/utils/kind-selector.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/components/meeting/new-meeting-modal.hbs b/app/components/meeting/new-meeting-modal.hbs index 8c5b14ffa0..0c27639ca7 100644 --- a/app/components/meeting/new-meeting-modal.hbs +++ b/app/components/meeting/new-meeting-modal.hbs @@ -8,6 +8,7 @@ {{#if this.isAnnexMeeting}}
diff --git a/app/components/utils/kind-selector.js b/app/components/utils/kind-selector.js index 1c885a2888..90e8af74c8 100644 --- a/app/components/utils/kind-selector.js +++ b/app/components/utils/kind-selector.js @@ -24,7 +24,7 @@ export default class UtilsKindSelector extends Component { @task *loadOptions() { yield this.store.findAll('meeting-kind', { reload: false }); - if (this.args.initializeEmptyKind && this.args.kind === null || this.args.kind === undefined) { + if (this.args.initializeEmptyKind && !this.args.kind) { this.setAction(this.options.firstObject); } } From 7ac305344577b037cf93fcace601f5fdb9d012c1 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Tue, 29 Mar 2022 20:37:26 +0200 Subject: [PATCH 09/42] Replace unnecessary async with sync function --- app/models/meeting.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/meeting.js b/app/models/meeting.js index 97a9a9581d..58a55bb2b6 100644 --- a/app/models/meeting.js +++ b/app/models/meeting.js @@ -105,8 +105,8 @@ export default Model.extend({ return await agenda.get('agendaName'); }), - isAnnex: computed('kind', async function() { - return await this.get('kind').get('isAnnexMeeting'); + isAnnex: computed('kind', function() { + return this.get('kind').get('isAnnexMeeting'); }), isPreKaleidos: computed('plannedStart', function () { From 942fedf561586fc44b33bcf3834fe3b87fd42749 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 08:55:44 +0200 Subject: [PATCH 10/42] Replace missed kindToShow with kind --- app/pods/agendas/overview/template.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pods/agendas/overview/template.hbs b/app/pods/agendas/overview/template.hbs index 495d3649c7..0f151902b0 100644 --- a/app/pods/agendas/overview/template.hbs +++ b/app/pods/agendas/overview/template.hbs @@ -135,7 +135,7 @@ {{/if}} - {{meeting.kindToShow.label}} + {{meeting.kind.label}} Date: Wed, 30 Mar 2022 13:06:11 +0200 Subject: [PATCH 11/42] Use peekAll in KindSelector, don't try to load in meeting kinds --- app/components/utils/kind-selector.hbs | 23 ++++++++--------------- app/components/utils/kind-selector.js | 12 +----------- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/app/components/utils/kind-selector.hbs b/app/components/utils/kind-selector.hbs index bc91d13b89..16dd8e65bd 100644 --- a/app/components/utils/kind-selector.hbs +++ b/app/components/utils/kind-selector.hbs @@ -2,19 +2,12 @@ {{#if (not @hideLabel)}} {{t "kind"}} {{/if}} - {{#if this.loadOptions.isRunning}} -
- {{t "please-be-patient"}} - -
- {{else}} - - {{option.label}} - - {{/if}} + + {{option.label}} +
\ No newline at end of file diff --git a/app/components/utils/kind-selector.js b/app/components/utils/kind-selector.js index 90e8af74c8..f92086abb5 100644 --- a/app/components/utils/kind-selector.js +++ b/app/components/utils/kind-selector.js @@ -2,7 +2,6 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { inject as service } from '@ember/service'; -import { task } from 'ember-concurrency'; /** * @argument {boolean} hideLabel Whether to hide the label of the dropdown @@ -13,26 +12,17 @@ import { task } from 'ember-concurrency'; export default class UtilsKindSelector extends Component { @service store; @tracked kind = null; + @tracked options = this.store.peekAll('meeting-kind'); // Meeting kinds get loaded in the agendas route, so we can just peek them here. constructor() { super(...arguments); this.kind = this.args.kind; - this.loadOptions.perform(); - } - - @task - *loadOptions() { - yield this.store.findAll('meeting-kind', { reload: false }); if (this.args.initializeEmptyKind && !this.args.kind) { this.setAction(this.options.firstObject); } } - get options() { - return this.store.peekAll('meeting-kind'); - } - @action setAction(kind) { this.kind = kind; From d2af190deef023c9c988cf7cb83f33ae43a56c07 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 13:06:32 +0200 Subject: [PATCH 12/42] Move preloading meeting kinds to application route --- app/pods/agendas/route.js | 11 ----------- app/pods/application/route.js | 9 +++++++++ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/app/pods/agendas/route.js b/app/pods/agendas/route.js index 982801286b..a8b638fba6 100644 --- a/app/pods/agendas/route.js +++ b/app/pods/agendas/route.js @@ -1,7 +1,6 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import { action } from '@ember/object'; -import { PAGE_SIZE } from 'frontend-kaleidos/config/config'; export default class AgendasRoute extends Route { @service router; @@ -11,16 +10,6 @@ export default class AgendasRoute extends Route { this.simpleAuthSession.requireAuthentication(transition, 'login'); } - afterModel() { - return this.store.query('meeting-kind', { - 'page[size]': PAGE_SIZE.MEETING_KIND, - filter: { - ':has:priority': true, - }, - sort: 'priority', - }); - } - redirect() { this.router.transitionTo('agendas.overview'); } diff --git a/app/pods/application/route.js b/app/pods/application/route.js index f9c3b7edf5..7229f3ff7f 100644 --- a/app/pods/application/route.js +++ b/app/pods/application/route.js @@ -1,6 +1,7 @@ import { action } from '@ember/object'; import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; +import { PAGE_SIZE } from 'frontend-kaleidos/config/config'; export default class ApplicationRoute extends Route { @service moment; @@ -36,6 +37,14 @@ export default class ApplicationRoute extends Route { if (this.session.isAuthenticated && !this.currentSession.hasValidGroup) { this.router.transitionTo('accountless-users'); } + + await this.store.query('meeting-kind', { + 'page[size]': PAGE_SIZE.MEETING_KIND, + filter: { + ':has:priority': true, // There is an ext:MinisterraadType resource called Annex which we don't want to show in dropdowns. It does not have an ext:priority property, so we use that fact to filter it out + }, + sort: 'priority', + }); } get isSupportedBrowser() { From 4c53565a0b65be9e33897fb515b6720ee6b49d6a Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 23:12:46 +0200 Subject: [PATCH 13/42] Add printLabel getter to meeting-kind --- app/components/agenda/printable-agenda.hbs | 2 +- app/components/newsletter/newsletter-meeting.hbs | 2 +- app/models/meeting-kind.js | 5 +++++ app/pods/newsletters/template.hbs | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/components/agenda/printable-agenda.hbs b/app/components/agenda/printable-agenda.hbs index 9aefcf15da..0a98648daa 100644 --- a/app/components/agenda/printable-agenda.hbs +++ b/app/components/agenda/printable-agenda.hbs @@ -18,7 +18,7 @@ ) }} - - {{if @meeting.kind.altLabel @meeting.kind.altLabel @meeting.kind.label}} + {{@meeting.kind.printLabel}}
diff --git a/app/components/newsletter/newsletter-meeting.hbs b/app/components/newsletter/newsletter-meeting.hbs index cc402b7b6e..1376421c80 100644 --- a/app/components/newsletter/newsletter-meeting.hbs +++ b/app/components/newsletter/newsletter-meeting.hbs @@ -2,7 +2,7 @@ {{!-- template-lint-disable no-action --}}

- {{t "newsletter-overview-pdf-name"}} - {{if this.meeting.kind.altLabel this.meeting.kind.altLabel this.meeting.kind.label}} {{t "of"}} {{moment-format this.meeting.plannedStart "dddd DD-MM-YYYY"}} + {{t "newsletter-overview-pdf-name"}} - {{this.meeting.kind.printLabel}} {{t "of"}} {{moment-format this.meeting.plannedStart "dddd DD-MM-YYYY"}}

{{#if (and this.allowEditing this.currentSession.isEditor)}}
diff --git a/app/models/meeting-kind.js b/app/models/meeting-kind.js index ee1dcb8133..109bb74a5a 100644 --- a/app/models/meeting-kind.js +++ b/app/models/meeting-kind.js @@ -9,6 +9,11 @@ export default class MeetingKindModel extends Model { @attr('string') postfix; @attr('string') broader; + get printLabel() { + // As of writing, the meeting-kind "Elektronische procedure" has an altLabel "Ministerraad via elektronische procedure" which we sometimes need, but for all other meeting kinds we just use the (normal) label + return this.altLabel ?? this.label ?? ''; + } + get isAnnexMeeting() { return this.broader === CONSTANTS.MEETING_KINDS.ANNEX; } diff --git a/app/pods/newsletters/template.hbs b/app/pods/newsletters/template.hbs index dc57ccd987..03d5540655 100644 --- a/app/pods/newsletters/template.hbs +++ b/app/pods/newsletters/template.hbs @@ -48,7 +48,7 @@ {{else}} {{t "newsletter-for-meeting-of" - kind=(lowercase (if meeting.kind.altLabel meeting.kind.altLabel meeting.kind.label)) + kind=(lowercase (meeting.kind.printLabel)) }} {{moment-format meeting.plannedStart "DD.MM.YYYY"}} {{/if}} From 1783d74e499e752a9e8ee348614da4814b77d6e7 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 23:13:18 +0200 Subject: [PATCH 14/42] Remove meeting kind types from utils/config.js --- app/utils/config.js | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/app/utils/config.js b/app/utils/config.js index 78d93f7021..65b2ec184a 100644 --- a/app/utils/config.js +++ b/app/utils/config.js @@ -60,37 +60,6 @@ export default EmberObject.create({ }, } ], - // TODO https://kanselarij.atlassian.net/browse/KAS-2430 - MINISTERRAAD_TYPES: { - DEFAULT: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/A5D6B7A8-2F9C-44B6-B3BE-98D80B426254', - TYPES: [ - { - label: 'Ministerraad', - altLabel: 'Ministerraad', - uri: - 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/A5D6B7A8-2F9C-44B6-B3BE-98D80B426254', - }, - { - label: 'Elektronische procedure', - altLabel: 'Ministerraad via elektronische procedure', - uri: - 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/406F2ECA-524D-47DC-B889-651893135456', - }, - { - label: 'Bijzondere ministerraad', - altLabel: 'Bijzondere ministerraad', - uri: - 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/7D8E35BE-E5D1-494F-B5F9-51B07875B96F', - }, - { - label: 'Ministerraad - Plan Vlaamse Veerkracht', - altLabel: 'Ministerraad - Plan Vlaamse Veerkracht', - postfix: 'VV', - uri: - 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/1d16cb70-0ae9-489e-bf97-c74897222e3c', - } - ], - }, latinAdverbialNumberals, numbersBylatinAdverbialNumberals, }); From 2e89e8c5f0422942437269ea927f02c61ad65d26 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 23:13:36 +0200 Subject: [PATCH 15/42] Fix typo in meeting kind constants --- app/config/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/constants.js b/app/config/constants.js index a9cf4e3f07..87d6d6f3ce 100644 --- a/app/config/constants.js +++ b/app/config/constants.js @@ -94,7 +94,7 @@ export default { MEETING_KINDS: { MINISTERRAAD: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/A5D6B7A8-2F9C-44B6-B3BE-98D80B426254', ELEKTRONISCHE_PROCEDURE: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/406F2ECA-524D-47DC-B889-651893135456', - BIJZONEDERE_MINISTERRAAD: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/7D8E35BE-E5D1-494F-B5F9-51B07875B96F', + BIJZONDERE_MINISTERRAAD: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/7D8E35BE-E5D1-494F-B5F9-51B07875B96F', PVV: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/1d16cb70-0ae9-489e-bf97-c74897222e3c', ANNEX: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/d36138a9-07f0-4df6-bbf0-abd51a24e4ce', }, From b3eed9ffd05eb0d6cb81cd7cf081ce88f28cba3c Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 23:14:11 +0200 Subject: [PATCH 16/42] Remove meeting.isAnnex --- app/components/meeting/new-meeting-modal.js | 4 ++-- app/models/meeting.js | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/app/components/meeting/new-meeting-modal.js b/app/components/meeting/new-meeting-modal.js index ee1e772a8e..3cf2dc15a5 100644 --- a/app/components/meeting/new-meeting-modal.js +++ b/app/components/meeting/new-meeting-modal.js @@ -34,7 +34,7 @@ export default class MeetingNewMeetingModal extends Component { } get isAnnexMeeting() { - return this.kind?.get('isAnnexMeeting'); + return this.kind?.isAnnexMeeting; } get formattedMeetingIdentifier() { @@ -94,7 +94,7 @@ export default class MeetingNewMeetingModal extends Component { try { yield meeting.save(); const agenda = yield this.createAgenda(meeting, now); - if (!meeting.isAnnex && closestMeeting) { + if (!this.isAnnexMeeting && closestMeeting) { yield this.createAgendaitemToApproveMinutes( agenda, meeting, diff --git a/app/models/meeting.js b/app/models/meeting.js index 58a55bb2b6..113887be80 100644 --- a/app/models/meeting.js +++ b/app/models/meeting.js @@ -105,10 +105,6 @@ export default Model.extend({ return await agenda.get('agendaName'); }), - isAnnex: computed('kind', function() { - return this.get('kind').get('isAnnexMeeting'); - }), - isPreKaleidos: computed('plannedStart', function () { return this.plannedStart < KALEIDOS_START_DATE; }), From 148cc36068f8559ce45111bdb9aff56a3f12edd4 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 23:15:59 +0200 Subject: [PATCH 17/42] Replace meetingKind.priority with meetingKind.position --- app/models/meeting-kind.js | 2 +- app/pods/application/route.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/meeting-kind.js b/app/models/meeting-kind.js index 109bb74a5a..a042fd370a 100644 --- a/app/models/meeting-kind.js +++ b/app/models/meeting-kind.js @@ -5,7 +5,7 @@ export default class MeetingKindModel extends Model { @attr('string') uri; @attr('string') label; @attr('string') altLabel; - @attr('number') priority; + @attr('number') position; @attr('string') postfix; @attr('string') broader; diff --git a/app/pods/application/route.js b/app/pods/application/route.js index 7229f3ff7f..5c277bd8d1 100644 --- a/app/pods/application/route.js +++ b/app/pods/application/route.js @@ -41,9 +41,9 @@ export default class ApplicationRoute extends Route { await this.store.query('meeting-kind', { 'page[size]': PAGE_SIZE.MEETING_KIND, filter: { - ':has:priority': true, // There is an ext:MinisterraadType resource called Annex which we don't want to show in dropdowns. It does not have an ext:priority property, so we use that fact to filter it out + ':has:position': true, // There is an ext:MinisterraadType resource called Annex which we don't want to show in dropdowns. It does not have a schema:position property, so we use that fact to filter it out }, - sort: 'priority', + sort: 'position', }); } From a8eeac93c623b33518d22560bd79740aae63e90f Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 23:16:19 +0200 Subject: [PATCH 18/42] Remove @hideLabel from Utils::KindSelector --- app/components/utils/kind-selector.hbs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/components/utils/kind-selector.hbs b/app/components/utils/kind-selector.hbs index 16dd8e65bd..a693827175 100644 --- a/app/components/utils/kind-selector.hbs +++ b/app/components/utils/kind-selector.hbs @@ -1,7 +1,5 @@
- {{#if (not @hideLabel)}} - {{t "kind"}} - {{/if}} + {{t "kind"}} Date: Wed, 30 Mar 2022 23:16:43 +0200 Subject: [PATCH 19/42] Make the Utils::KindSelector default choice clearer --- app/components/utils/kind-selector.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/components/utils/kind-selector.js b/app/components/utils/kind-selector.js index f92086abb5..c65c865d9e 100644 --- a/app/components/utils/kind-selector.js +++ b/app/components/utils/kind-selector.js @@ -5,21 +5,22 @@ import { inject as service } from '@ember/service'; /** * @argument {boolean} hideLabel Whether to hide the label of the dropdown - * @argument {boolean} initializeEmptyKind Whether to initialize the dropdown to the default meeting kind of no meeting kind was provided + * @argument {boolean} initializeEmptyKind Whether to initialize the dropdown to the default meeting kind, "Ministerraad", if no meeting kind was provided * @argument {function} setAction Action to perform once a meeting kind has been selected * @argument {MeetingKindModel} kind (Optional) The meeting kind to set the dropdown to */ export default class UtilsKindSelector extends Component { @service store; @tracked kind = null; - @tracked options = this.store.peekAll('meeting-kind'); // Meeting kinds get loaded in the agendas route, so we can just peek them here. + @tracked options = this.store.peekAll('meeting-kind').sortBy('position'); // Meeting kinds get loaded in the agendas route, so we can just peek them here. + @tracked defaultKind = this.options.firstObject; constructor() { super(...arguments); this.kind = this.args.kind; if (this.args.initializeEmptyKind && !this.args.kind) { - this.setAction(this.options.firstObject); + this.setAction(this.defaultKind); } } From dca1f27c418f491a5656a84ee143c48a149cd16a Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Wed, 30 Mar 2022 23:17:47 +0200 Subject: [PATCH 20/42] Revert usage of this.router.transitionTo to prevent weird routing related errors --- app/pods/agendas/route.js | 2 +- app/pods/application/route.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/pods/agendas/route.js b/app/pods/agendas/route.js index a8b638fba6..c10221e49e 100644 --- a/app/pods/agendas/route.js +++ b/app/pods/agendas/route.js @@ -11,7 +11,7 @@ export default class AgendasRoute extends Route { } redirect() { - this.router.transitionTo('agendas.overview'); + this.transitionTo('agendas.overview'); } @action diff --git a/app/pods/application/route.js b/app/pods/application/route.js index 5c277bd8d1..25363da061 100644 --- a/app/pods/application/route.js +++ b/app/pods/application/route.js @@ -25,7 +25,7 @@ export default class ApplicationRoute extends Route { this.intl.setLocale(['nl-be']); if (!this.isSupportedBrowser) { - this.router.transitionTo('not-supported'); + this.transitionTo('not-supported'); } try { @@ -35,7 +35,7 @@ export default class ApplicationRoute extends Route { } if (this.session.isAuthenticated && !this.currentSession.hasValidGroup) { - this.router.transitionTo('accountless-users'); + this.transitionTo('accountless-users'); } await this.store.query('meeting-kind', { @@ -68,7 +68,7 @@ export default class ApplicationRoute extends Route { @action willTransition(transition) { if (this.session.isAuthenticated && !this.currentSession.hasValidGroup) { - this.router.transitionTo('accountless-users'); + this.transitionTo('accountless-users'); } if ( From 742194e2cf590ce98bffd40a85694ae4a441d4bf Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 08:38:59 +0200 Subject: [PATCH 21/42] Remove unneeded parens --- app/pods/newsletters/template.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pods/newsletters/template.hbs b/app/pods/newsletters/template.hbs index 03d5540655..5005ca50db 100644 --- a/app/pods/newsletters/template.hbs +++ b/app/pods/newsletters/template.hbs @@ -48,7 +48,7 @@ {{else}} {{t "newsletter-for-meeting-of" - kind=(lowercase (meeting.kind.printLabel)) + kind=(lowercase meeting.kind.printLabel) }} {{moment-format meeting.plannedStart "DD.MM.YYYY"}} {{/if}} From c3e3417c823a791b3598fcbc7adadcfe90ace45a Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 13:41:43 +0200 Subject: [PATCH 22/42] Refactor out meeting.label computed property --- app/components/meeting/new-meeting-modal.hbs | 11 ++++++++--- app/models/meeting.js | 7 ------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/components/meeting/new-meeting-modal.hbs b/app/components/meeting/new-meeting-modal.hbs index 0c27639ca7..46608e9526 100644 --- a/app/components/meeting/new-meeting-modal.hbs +++ b/app/components/meeting/new-meeting-modal.hbs @@ -17,12 +17,17 @@ + as |model| + > + {{model.kind.printLabel}} + {{t "of"}} + {{moment-format model.plannedStart "DD-MM-YYYY"}} + ({{model.numberRepresentation}}) +
{{else}} diff --git a/app/models/meeting.js b/app/models/meeting.js index 113887be80..7b1fec5ffa 100644 --- a/app/models/meeting.js +++ b/app/models/meeting.js @@ -3,7 +3,6 @@ import { PromiseArray, PromiseObject } from '@ember-data/store/-private'; import { computed } from '@ember/object'; import { inject } from '@ember/service'; import { KALEIDOS_START_DATE } from 'frontend-kaleidos/config/config'; -import moment from 'moment'; import { sortDocumentContainers } from 'frontend-kaleidos/utils/documents'; @@ -45,12 +44,6 @@ export default Model.extend({ themisPublicationActivities: hasMany('themis-publication-activity'), - label: computed('plannedStart', 'kind', 'numberRepresentation', function() { - const date = moment(this.plannedStart).format('DD-MM-YYYY'); - const kindLabel = this.get('kind').get('altLabel') || this.get('kind').get('label') || ''; - return `${kindLabel} ${this.intl.t('of')} ${date} (${this.numberRepresentation})`; - }), - // This computed does not seem to be used anywhere documentContainers: computed('pieces.@each.name', 'id', 'store', function() { return PromiseArray.create({ From d44e18f5ec284610ba4fd2ae782629115673c2b5 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 20:58:23 +0200 Subject: [PATCH 23/42] Remove meeting-kinds adapter --- app/adapters/meeting-kind.js | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 app/adapters/meeting-kind.js diff --git a/app/adapters/meeting-kind.js b/app/adapters/meeting-kind.js deleted file mode 100644 index 3233bfccf3..0000000000 --- a/app/adapters/meeting-kind.js +++ /dev/null @@ -1,18 +0,0 @@ -import ApplicationAdapter from './application'; - -export default ApplicationAdapter.extend({ - - // Since headers are set to not cache - // But we need it cached because we do - // so many calls - // we cache it here, bypassing the no-cache header. - - shouldReloadAll(store, snapshot) { - return !store.peekAll(snapshot.type.modelName).length; - }, - - shouldBackgroundReloadAll(store, snapshot) { - return !store.peekAll(snapshot.type.modelName).length; - }, - -}); From a11461c770936b82b69a424940ba7d4eca9ebbb2 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:04:12 +0200 Subject: [PATCH 24/42] Add kindPrintLabel helper --- app/components/agenda/printable-agenda.hbs | 2 +- app/components/newsletter/newsletter-meeting.hbs | 2 +- app/pods/newsletters/template.hbs | 2 +- app/pods/print-overviews/decisions/controller.js | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/components/agenda/printable-agenda.hbs b/app/components/agenda/printable-agenda.hbs index 0a98648daa..140fe3c254 100644 --- a/app/components/agenda/printable-agenda.hbs +++ b/app/components/agenda/printable-agenda.hbs @@ -18,7 +18,7 @@ ) }} - - {{@meeting.kind.printLabel}} + {{kind-print-label @meeting.kind}}
diff --git a/app/components/newsletter/newsletter-meeting.hbs b/app/components/newsletter/newsletter-meeting.hbs index 1376421c80..dfe9c79502 100644 --- a/app/components/newsletter/newsletter-meeting.hbs +++ b/app/components/newsletter/newsletter-meeting.hbs @@ -2,7 +2,7 @@ {{!-- template-lint-disable no-action --}}

- {{t "newsletter-overview-pdf-name"}} - {{this.meeting.kind.printLabel}} {{t "of"}} {{moment-format this.meeting.plannedStart "dddd DD-MM-YYYY"}} + {{t "newsletter-overview-pdf-name"}} - {{kind-print-label this.meeting.kind}} {{t "of"}} {{moment-format this.meeting.plannedStart "dddd DD-MM-YYYY"}}

{{#if (and this.allowEditing this.currentSession.isEditor)}}
diff --git a/app/pods/newsletters/template.hbs b/app/pods/newsletters/template.hbs index 5005ca50db..ac307ef33d 100644 --- a/app/pods/newsletters/template.hbs +++ b/app/pods/newsletters/template.hbs @@ -48,7 +48,7 @@ {{else}} {{t "newsletter-for-meeting-of" - kind=(lowercase meeting.kind.printLabel) + kind=(lowercase (kind-print-label meeting.kind)) }} {{moment-format meeting.plannedStart "DD.MM.YYYY"}} {{/if}} diff --git a/app/pods/print-overviews/decisions/controller.js b/app/pods/print-overviews/decisions/controller.js index 151eaca361..267f78cb01 100644 --- a/app/pods/print-overviews/decisions/controller.js +++ b/app/pods/print-overviews/decisions/controller.js @@ -2,6 +2,7 @@ import Controller from '@ember/controller'; import { computed } from '@ember/object'; import { inject } from '@ember/service'; import { getPrintOverviewTitle } from 'frontend-kaleidos/utils/print-overview-util'; +import { kindPrintLabel } from '../../../helpers/kind-print-label'; // TODO: octane-refactor /* eslint-disable ember/no-get */ @@ -25,7 +26,7 @@ export default Controller.extend({ titleTranslationParams: computed('model.createdFor', function() { const meeting = this.get('model.createdFor'); - const kindLabel = meeting.get('kind').get('altLabel') || meeting.get('kind').get('label') || ''; + const kindLabel = kindPrintLabel(meeting.get('kind')); return { kind: kindLabel, }; From bc8ceb87bef4ced385208c58468900855e2696ee Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:04:47 +0200 Subject: [PATCH 25/42] Remove unneeded await --- app/components/agenda/agenda-header.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/agenda/agenda-header.hbs b/app/components/agenda/agenda-header.hbs index c3176674ad..f0fb1b6732 100644 --- a/app/components/agenda/agenda-header.hbs +++ b/app/components/agenda/agenda-header.hbs @@ -21,7 +21,7 @@ class="auk-u-text-muted auk-body-1" > - - {{await @meeting.kind.label}} + {{@meeting.kind.label}} {{/if}}
From 2e57a583e35666481425c0cd7818ccee6d2e3696 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:05:19 +0200 Subject: [PATCH 26/42] Await meeting.kind relation in EditMeetingModal --- app/components/meeting/edit-meeting-modal.hbs | 8 ++++++-- app/components/meeting/edit-meeting-modal.js | 8 +++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/components/meeting/edit-meeting-modal.hbs b/app/components/meeting/edit-meeting-modal.hbs index 93f0b3344e..fee5c4d6df 100644 --- a/app/components/meeting/edit-meeting-modal.hbs +++ b/app/components/meeting/edit-meeting-modal.hbs @@ -1,7 +1,11 @@ - +
{{t "start-date"}} @@ -48,7 +52,7 @@ {{t "edit"}} diff --git a/app/components/meeting/edit-meeting-modal.js b/app/components/meeting/edit-meeting-modal.js index e8cda30fb0..2d69b7b19c 100644 --- a/app/components/meeting/edit-meeting-modal.js +++ b/app/components/meeting/edit-meeting-modal.js @@ -21,8 +21,9 @@ export default class MeetingEditMeetingComponent extends Component { constructor() { super(...arguments); + this.initializeKind.perform(); + this.meetingYear = this.args.meeting.plannedStart.getFullYear(); - this.kind = this.args.meeting.kind; this.startDate = this.args.meeting.plannedStart; this.extraInfo = this.args.meeting.extraInfo; this.meetingNumber = this.args.meeting.number; @@ -49,6 +50,11 @@ export default class MeetingEditMeetingComponent extends Component { this._numberRepresentation = null; } + @task + *initializeKind() { + this.kind = yield this.args.meeting.kind; + } + @task({ drop: true }) *updateMeeting() { const now = new Date(); From 11fc162209f848cb81f4d1183dec59cff79714fb Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:06:08 +0200 Subject: [PATCH 27/42] Add extra properties to concept model --- app/models/concept.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/concept.js b/app/models/concept.js index 0765e2f09b..c97b6174ab 100644 --- a/app/models/concept.js +++ b/app/models/concept.js @@ -1,8 +1,10 @@ import Model, { attr, hasMany, belongsTo } from '@ember-data/model'; export default class Concept extends Model { + @attr('string') uri; @attr('string') label; - @attr('string') scopeNote; @attr('string') altLabel; + @attr('string') scopeNote; + @attr('number') position; @hasMany('concept', { inverse: 'broader'}) narrower; // The idea behind also using broader is because ember was automatically connecting the broader parent under the narrower relation // Resulting in all concepts with 1 inverse narrower to break length == 0 checks on narrower From 0961b91cff7e42123d59ad1f5a0d5e7164386388 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:06:29 +0200 Subject: [PATCH 28/42] Add kindPrintLabel modal --- app/helpers/kind-print-label.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 app/helpers/kind-print-label.js diff --git a/app/helpers/kind-print-label.js b/app/helpers/kind-print-label.js new file mode 100644 index 0000000000..80ca1e1799 --- /dev/null +++ b/app/helpers/kind-print-label.js @@ -0,0 +1,7 @@ +import { helper } from '@ember/component/helper'; + +export function kindPrintLabel([kind]) { + return kind.get('altLabel') ?? kind.get('label') ?? ''; +} + +export default helper(kindPrintLabel); From cbbe969dbc9efc07d8419388ba921aa0a9a91f43 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:07:09 +0200 Subject: [PATCH 29/42] Simplify KindSelector --- app/components/meeting/new-meeting-modal.hbs | 5 +-- app/components/utils/kind-selector.hbs | 26 +++++++++----- app/components/utils/kind-selector.js | 38 +++++++++++--------- 3 files changed, 42 insertions(+), 27 deletions(-) diff --git a/app/components/meeting/new-meeting-modal.hbs b/app/components/meeting/new-meeting-modal.hbs index 46608e9526..f8d7766a06 100644 --- a/app/components/meeting/new-meeting-modal.hbs +++ b/app/components/meeting/new-meeting-modal.hbs @@ -7,8 +7,9 @@ {{#if this.isAnnexMeeting}}
diff --git a/app/components/utils/kind-selector.hbs b/app/components/utils/kind-selector.hbs index a693827175..4be208731c 100644 --- a/app/components/utils/kind-selector.hbs +++ b/app/components/utils/kind-selector.hbs @@ -1,11 +1,19 @@
- {{t "kind"}} - - {{option.label}} - + {{#if this.loadKinds.isRunning}} +
+ {{t "please-be-patient"}} + +
+ {{else}} + {{t "kind"}} + + {{option.label}} + + {{/if}}
\ No newline at end of file diff --git a/app/components/utils/kind-selector.js b/app/components/utils/kind-selector.js index c65c865d9e..a6e763c0a0 100644 --- a/app/components/utils/kind-selector.js +++ b/app/components/utils/kind-selector.js @@ -1,32 +1,38 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; -import { action } from '@ember/object'; import { inject as service } from '@ember/service'; +import { task } from 'ember-concurrency'; +import CONSTANTS from '../../config/constants'; +import { PAGE_SIZE } from 'frontend-kaleidos/config/config'; /** - * @argument {boolean} hideLabel Whether to hide the label of the dropdown - * @argument {boolean} initializeEmptyKind Whether to initialize the dropdown to the default meeting kind, "Ministerraad", if no meeting kind was provided - * @argument {function} setAction Action to perform once a meeting kind has been selected - * @argument {MeetingKindModel} kind (Optional) The meeting kind to set the dropdown to + * @argument {Concept} selectedKind The meeting kind to set the dropdown to + * @argument {function} onChange Action to perform once a meeting kind has been selected + * @argument {boolean} disabled */ export default class UtilsKindSelector extends Component { @service store; - @tracked kind = null; - @tracked options = this.store.peekAll('meeting-kind').sortBy('position'); // Meeting kinds get loaded in the agendas route, so we can just peek them here. - @tracked defaultKind = this.options.firstObject; + + @tracked options; constructor() { super(...arguments); - this.kind = this.args.kind; - if (this.args.initializeEmptyKind && !this.args.kind) { - this.setAction(this.defaultKind); - } + this.loadKinds.perform(); } - @action - setAction(kind) { - this.kind = kind; - this.args.setAction(kind); + @task + *loadKinds() { + this.options = yield this.store.query('concept', { + filter: { + 'concept-schemes': { + ':uri:': CONSTANTS.CONCEPT_SCHEMES.VERGADERACTIVITEIT, + }, + ':has-no:narrower': true, // Only the most specific concepts, i.e. the actual meeting kinds (so no "Annex") + }, + include: 'broader,narrower', + 'page[size]': PAGE_SIZE.CODE_LISTS, + sort: 'position', + }); } } From 733a9b9b31229b51526b7559ab25e1a5e8ea6d43 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:07:42 +0200 Subject: [PATCH 30/42] Update constants --- app/config/config.js | 1 - app/config/constants.js | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/config/config.js b/app/config/config.js index 391ba9ea92..168cdd3a54 100644 --- a/app/config/config.js +++ b/app/config/config.js @@ -9,7 +9,6 @@ export const PAGE_SIZE = { PIECES: 500, ACTIVITIES: 500, CASES: 500, - MEETING_KIND: 5, SELECT: 10, }; diff --git a/app/config/constants.js b/app/config/constants.js index 87d6d6f3ce..9c6ef49c58 100644 --- a/app/config/constants.js +++ b/app/config/constants.js @@ -3,6 +3,7 @@ export default { CONCEPT_SCHEMES: { BELEIDSDOMEIN: 'http://themis.vlaanderen.be/id/concept-schema/f4981a92-8639-4da4-b1e3-0e1371feaa81', BELEIDSVELD: 'http://themis.vlaanderen.be/id/concept-schema/0012aad8-d6e5-49e2-af94-b1bebd484d5b', + VERGADERACTIVITEIT: 'http://kanselarij.vo.data.gift/id/concept-scheme/668f0c19-3864-4e96-9dd3-de806fd53357', // TODO: Replace with Themis URI }, ACCESS_LEVELS: { INTERN_REGERING: 'http://kanselarij.vo.data.gift/id/concept/toegangs-niveaus/d335f7e3-aefd-4f93-81a2-1629c2edafa3', @@ -91,10 +92,8 @@ export default { DECREET: 'http://themis.vlaanderen.be/id/concept/regelgeving-type/bf6101a9-d06b-44d4-b629-13965654c8c2', BVR: 'http://themis.vlaanderen.be/id/concept/regelgeving-type/ea7f5f79-f81c-459b-a0f7-d8e90e2d9b88', }, - MEETING_KINDS: { + MEETING_KINDS: { // TODO: Replace with Themis URIs MINISTERRAAD: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/A5D6B7A8-2F9C-44B6-B3BE-98D80B426254', - ELEKTRONISCHE_PROCEDURE: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/406F2ECA-524D-47DC-B889-651893135456', - BIJZONDERE_MINISTERRAAD: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/7D8E35BE-E5D1-494F-B5F9-51B07875B96F', PVV: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/1d16cb70-0ae9-489e-bf97-c74897222e3c', ANNEX: 'http://kanselarij.vo.data.gift/id/concept/ministerraad-type-codes/d36138a9-07f0-4df6-bbf0-abd51a24e4ce', }, From ff0bb6725a730f8fb4f3e7cbd14c3f3d000f19a7 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 21:07:57 +0200 Subject: [PATCH 31/42] Remove meeting-kind, use concept instead --- app/components/meeting/new-meeting-modal.hbs | 12 ++++---- app/components/meeting/new-meeting-modal.js | 30 ++++++++++++++------ app/models/meeting-kind.js | 20 ------------- app/models/meeting.js | 2 +- app/pods/application/route.js | 11 +++++-- package.json | 1 + 6 files changed, 37 insertions(+), 39 deletions(-) delete mode 100644 app/models/meeting-kind.js diff --git a/app/components/meeting/new-meeting-modal.hbs b/app/components/meeting/new-meeting-modal.hbs index f8d7766a06..82ad7c24b9 100644 --- a/app/components/meeting/new-meeting-modal.hbs +++ b/app/components/meeting/new-meeting-modal.hbs @@ -11,7 +11,7 @@ @selectedKind={{this.kind}} @disabled={{this.initializeKind.isRunning}} /> - {{#if this.isAnnexMeeting}} + {{#if (await (this.isAnnexMeetingKind this.kind))}}
{{t "related-main-meeting-field-label"}} @@ -24,7 +24,7 @@ @selectModel={{this.selectMainMeeting}} as |model| > - {{model.kind.printLabel}} + {{kind-print-label model.kind}} {{t "of"}} {{moment-format model.plannedStart "DD-MM-YYYY"}} ({{model.numberRepresentation}}) @@ -49,7 +49,7 @@
{{t "meeting-number"}}
- {{#unless this.isAnnexMeeting}} + {{#if (not (await (this.isAnnexMeetingKind this.kind)))}} - {{/unless}} + {{/if}}
{{/if}}
- {{#unless this.isAnnexMeeting}} + {{#if (not (await (this.isAnnexMeetingKind this.kind)))}}
{{t "meeting-location"}} @@ -106,7 +106,7 @@ />
- {{/unless}} + {{/if}} Date: Thu, 31 Mar 2022 23:05:32 +0200 Subject: [PATCH 32/42] Try updating Jenkinsfile so it automatically checks out backend branch --- Jenkinsfile.ci | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index 63dd58cb8d..27cdda214c 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -33,7 +33,11 @@ pipeline { sh "cp .dist.env .env" sh "rm -rf kaleidos-project 2> /dev/null" //sh "eval `ssh-agent -s` && ssh-add /var/lib/jenkins/.ssh/id_rsa_github_kaleidos && git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" - sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" + //sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" + sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" + sh "cd kaleidos-project" + sh "if [ $(git rev-parse --verify --quiet ${branch}) ]; then git checkout ${branch}; fi" // Checkout branch in backend if it exists + sh "cd .." } } stage('Prepare for automated tests') { From 91baefa143f385216582b219ee325c0309baa6f5 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 23:08:30 +0200 Subject: [PATCH 33/42] Fix Jenkinsfile syntax --- Jenkinsfile.ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index 27cdda214c..c6382391df 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -36,7 +36,7 @@ pipeline { //sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "cd kaleidos-project" - sh "if [ $(git rev-parse --verify --quiet ${branch}) ]; then git checkout ${branch}; fi" // Checkout branch in backend if it exists + sh "if [ \$(git rev-parse --verify --quiet ${branch}) ]; then git checkout ${branch}; fi" // Checkout branch in backend if it exists sh "cd .." } } From 7761c0941219640ee38acdb2ce1005aee1fd8169 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 23:20:16 +0200 Subject: [PATCH 34/42] Use correct environment variable for branch name in Jenkinsfile --- Jenkinsfile.ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index c6382391df..e4f4f9a660 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -36,7 +36,7 @@ pipeline { //sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "cd kaleidos-project" - sh "if [ \$(git rev-parse --verify --quiet ${branch}) ]; then git checkout ${branch}; fi" // Checkout branch in backend if it exists + sh "if [ \$(git rev-parse --verify --quiet ${env.GIT_LOCAL_BRANCH}) ]; then git checkout ${env.GIT_LOCAL_BRANCH}; fi" // Checkout branch in backend if it exists sh "cd .." } } From a7f6ad67a21494f1735ab1a2066feec46264ae00 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 23:29:51 +0200 Subject: [PATCH 35/42] One more try for variable name --- Jenkinsfile.ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index e4f4f9a660..50decb599e 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -36,7 +36,7 @@ pipeline { //sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "cd kaleidos-project" - sh "if [ \$(git rev-parse --verify --quiet ${env.GIT_LOCAL_BRANCH}) ]; then git checkout ${env.GIT_LOCAL_BRANCH}; fi" // Checkout branch in backend if it exists + sh "if [ \$(git rev-parse --verify --quiet ${env.BRANCH_NAME}) ]; then git checkout ${env.BRANCH_NAME}; fi" // Checkout branch in backend if it exists sh "cd .." } } From c2f3d05565a6f51c034e87cf02faa89ff1dbe283 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 23:39:00 +0200 Subject: [PATCH 36/42] Try other Jenkinsfile env variables --- Jenkinsfile.ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index 50decb599e..0ea024d174 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -36,7 +36,7 @@ pipeline { //sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "cd kaleidos-project" - sh "if [ \$(git rev-parse --verify --quiet ${env.BRANCH_NAME}) ]; then git checkout ${env.BRANCH_NAME}; fi" // Checkout branch in backend if it exists + sh "if [ \$(git rev-parse --verify --quiet ${env.CHANGE_BRANCH}) ]; then git checkout ${env.CHANGE_BRANCH}; fi" // Checkout branch in backend if it exists sh "cd .." } } From e66624fb6940f7ac0c55c9c06985bfe32db6ba59 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Thu, 31 Mar 2022 23:55:47 +0200 Subject: [PATCH 37/42] Try using built-in Groovy-script branching in Jenkinsfile --- Jenkinsfile.ci | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index 0ea024d174..860764f43a 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -36,7 +36,14 @@ pipeline { //sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "cd kaleidos-project" - sh "if [ \$(git rev-parse --verify --quiet ${env.CHANGE_BRANCH}) ]; then git checkout ${env.CHANGE_BRANCH}; fi" // Checkout branch in backend if it exists + script { + branchHash = sh(returnStdout: true, script: 'git rev-parse --verify --quiet ${env.CHANGE_BRANCH}') + if (branchHash?.trim()) { + // git rev-parse --verify --quiet had output, which means that a branch with the name exists + sh(script: 'git checkout ${env.CHANGE_BRANCH}') + } + } + // sh "if [ \$(git rev-parse --verify --quiet ${env.CHANGE_BRANCH}) ]; then git checkout ${env.CHANGE_BRANCH}; fi" // Checkout branch in backend if it exists sh "cd .." } } From db2e0f2d46a4926cf64845d6cb7f9d8dfee46440 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Fri, 1 Apr 2022 00:05:06 +0200 Subject: [PATCH 38/42] Use double quotes instead of single quotes! --- Jenkinsfile.ci | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index 860764f43a..eff800ecbe 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -37,10 +37,10 @@ pipeline { sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" sh "cd kaleidos-project" script { - branchHash = sh(returnStdout: true, script: 'git rev-parse --verify --quiet ${env.CHANGE_BRANCH}') + branchHash = sh(returnStdout: true, script: "git rev-parse --verify --quiet ${env.CHANGE_BRANCH}") if (branchHash?.trim()) { // git rev-parse --verify --quiet had output, which means that a branch with the name exists - sh(script: 'git checkout ${env.CHANGE_BRANCH}') + sh(script: "git checkout ${env.CHANGE_BRANCH}") } } // sh "if [ \$(git rev-parse --verify --quiet ${env.CHANGE_BRANCH}) ]; then git checkout ${env.CHANGE_BRANCH}; fi" // Checkout branch in backend if it exists From d2a646ebcf7dd8ba1c5f946fd011164d5b918f93 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Fri, 1 Apr 2022 08:53:02 +0200 Subject: [PATCH 39/42] Update KindSelector loading mechanism Otherwise, if it's still loading the tests will complain because they try to click the loading text instead of waiting --- app/components/meeting/edit-meeting-modal.hbs | 2 +- app/components/meeting/new-meeting-modal.hbs | 2 +- app/components/utils/kind-selector.hbs | 19 +++++++++---------- app/components/utils/kind-selector.js | 4 ++++ 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/components/meeting/edit-meeting-modal.hbs b/app/components/meeting/edit-meeting-modal.hbs index fee5c4d6df..2f48896a8c 100644 --- a/app/components/meeting/edit-meeting-modal.hbs +++ b/app/components/meeting/edit-meeting-modal.hbs @@ -4,7 +4,7 @@
diff --git a/app/components/meeting/new-meeting-modal.hbs b/app/components/meeting/new-meeting-modal.hbs index 82ad7c24b9..1a84bae240 100644 --- a/app/components/meeting/new-meeting-modal.hbs +++ b/app/components/meeting/new-meeting-modal.hbs @@ -9,7 +9,7 @@ data-test-new-meeting-kind @onChange={{this.setKind}} @selectedKind={{this.kind}} - @disabled={{this.initializeKind.isRunning}} + @isLoading={{this.initializeKind.isRunning}} /> {{#if (await (this.isAnnexMeetingKind this.kind))}}
diff --git a/app/components/utils/kind-selector.hbs b/app/components/utils/kind-selector.hbs index 4be208731c..69b3dbf530 100644 --- a/app/components/utils/kind-selector.hbs +++ b/app/components/utils/kind-selector.hbs @@ -1,19 +1,18 @@ -
- {{#if this.loadKinds.isRunning}} -
- {{t "please-be-patient"}} - -
- {{else}} +{{#if this.isLoading}} +
+ {{t "please-be-patient"}} + +
+{{else}} +
{{t "kind"}} {{option.label}} - {{/if}} -
\ No newline at end of file +
+{{/if}} \ No newline at end of file diff --git a/app/components/utils/kind-selector.js b/app/components/utils/kind-selector.js index a6e763c0a0..a0f39e01f3 100644 --- a/app/components/utils/kind-selector.js +++ b/app/components/utils/kind-selector.js @@ -21,6 +21,10 @@ export default class UtilsKindSelector extends Component { this.loadKinds.perform(); } + get isLoading() { + return this.args.isLoading || this.loadKinds.isRunning; + } + @task *loadKinds() { this.options = yield this.store.query('concept', { From 5518a19652e704c28dfbb58b91868d5282a0d131 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Fri, 1 Apr 2022 08:53:29 +0200 Subject: [PATCH 40/42] Refactor isAnnexMeetingKind async function with @tracked property --- app/components/meeting/new-meeting-modal.hbs | 10 +++++----- app/components/meeting/new-meeting-modal.js | 16 +++++++++------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/app/components/meeting/new-meeting-modal.hbs b/app/components/meeting/new-meeting-modal.hbs index 1a84bae240..65a4a9b06d 100644 --- a/app/components/meeting/new-meeting-modal.hbs +++ b/app/components/meeting/new-meeting-modal.hbs @@ -11,7 +11,7 @@ @selectedKind={{this.kind}} @isLoading={{this.initializeKind.isRunning}} /> - {{#if (await (this.isAnnexMeetingKind this.kind))}} + {{#if this.isAnnexMeeting}}
{{t "related-main-meeting-field-label"}} @@ -49,7 +49,7 @@
{{t "meeting-number"}}
- {{#if (not (await (this.isAnnexMeetingKind this.kind)))}} + {{#unless this.isAnnexMeeting}} - {{/if}} + {{/unless}}
{{/if}}
- {{#if (not (await (this.isAnnexMeetingKind this.kind)))}} + {{#unless this.isAnnexMeeting}}
{{t "meeting-location"}} @@ -106,7 +106,7 @@ />
- {{/if}} + {{/unless}} Date: Fri, 1 Apr 2022 08:55:22 +0200 Subject: [PATCH 41/42] Revert changes to Jenkinsfile Will try to get the Jenkins setup to automatically pull the correct backend branch some other time. --- Jenkinsfile.ci | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/Jenkinsfile.ci b/Jenkinsfile.ci index eff800ecbe..63dd58cb8d 100644 --- a/Jenkinsfile.ci +++ b/Jenkinsfile.ci @@ -33,18 +33,7 @@ pipeline { sh "cp .dist.env .env" sh "rm -rf kaleidos-project 2> /dev/null" //sh "eval `ssh-agent -s` && ssh-add /var/lib/jenkins/.ssh/id_rsa_github_kaleidos && git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" - //sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" - sh "git clone https://github.com/kanselarij-vlaanderen/kaleidos-project.git" - sh "cd kaleidos-project" - script { - branchHash = sh(returnStdout: true, script: "git rev-parse --verify --quiet ${env.CHANGE_BRANCH}") - if (branchHash?.trim()) { - // git rev-parse --verify --quiet had output, which means that a branch with the name exists - sh(script: "git checkout ${env.CHANGE_BRANCH}") - } - } - // sh "if [ \$(git rev-parse --verify --quiet ${env.CHANGE_BRANCH}) ]; then git checkout ${env.CHANGE_BRANCH}; fi" // Checkout branch in backend if it exists - sh "cd .." + sh "git clone -b development https://github.com/kanselarij-vlaanderen/kaleidos-project.git" } } stage('Prepare for automated tests') { From 3e140a5c9faca7e85af7743411fc6e5b5383e554 Mon Sep 17 00:00:00 2001 From: Sergio Fenoll Date: Fri, 1 Apr 2022 11:16:16 +0200 Subject: [PATCH 42/42] Await kind relationship when in print-overviews --- app/helpers/kind-print-label.js | 6 ++++-- app/pods/print-overviews/decisions/controller.js | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/helpers/kind-print-label.js b/app/helpers/kind-print-label.js index 80ca1e1799..c51a65bd33 100644 --- a/app/helpers/kind-print-label.js +++ b/app/helpers/kind-print-label.js @@ -1,7 +1,9 @@ import { helper } from '@ember/component/helper'; -export function kindPrintLabel([kind]) { +export function kindPrintLabel(kind) { return kind.get('altLabel') ?? kind.get('label') ?? ''; } -export default helper(kindPrintLabel); +export default helper(([kind]) => { + return kindPrintLabel(kind); +}); diff --git a/app/pods/print-overviews/decisions/controller.js b/app/pods/print-overviews/decisions/controller.js index 267f78cb01..88e950cbe9 100644 --- a/app/pods/print-overviews/decisions/controller.js +++ b/app/pods/print-overviews/decisions/controller.js @@ -16,17 +16,19 @@ export default Controller.extend({ title: computed('model.createdFor.plannedStart', 'titleTranslationKey', 'titleTranslationParams', async function() { const date = this.get('model.createdFor.plannedStart'); - if (this.titleTranslationParams) { - const translatedTitleWithParams = this.intl.t(this.titleTranslationKey, this.titleTranslationParams); + const titleTranslationParams = await this.titleTranslationParams; + if (titleTranslationParams) { + const translatedTitleWithParams = this.intl.t(this.titleTranslationKey, titleTranslationParams); return getPrintOverviewTitle(translatedTitleWithParams, date); } const translatedTitle = this.intl.t(this.titleTranslationKey); return getPrintOverviewTitle(translatedTitle, date); }), - titleTranslationParams: computed('model.createdFor', function() { + titleTranslationParams: computed('model.createdFor', async function() { const meeting = this.get('model.createdFor'); - const kindLabel = kindPrintLabel(meeting.get('kind')); + const kind = await meeting.get('kind'); + const kindLabel = kindPrintLabel(kind); return { kind: kindLabel, };