diff --git a/app/controllers/discourse_post_event/events_controller.rb b/app/controllers/discourse_post_event/events_controller.rb index efa676fe..cd3a4b97 100644 --- a/app/controllers/discourse_post_event/events_controller.rb +++ b/app/controllers/discourse_post_event/events_controller.rb @@ -92,6 +92,7 @@ module DiscoursePostEvent :starts_at, :ends_at, :status, + :url, raw_invitees: [] ) end diff --git a/app/models/discourse_post_event/event.rb b/app/models/discourse_post_event/event.rb index f413038a..c0e11fca 100644 --- a/app/models/discourse_post_event/event.rb +++ b/app/models/discourse_post_event/event.rb @@ -162,6 +162,7 @@ module DiscoursePostEvent name: event_params[:name], starts_at: event_params[:start] || event.starts_at, ends_at: event_params[:end], + url: event_params[:"url"], status: event_params[:status].present? ? Event.statuses[event_params[:status].to_sym] : event.status, raw_invitees: event_params[:"allowed-groups"] ? event_params[:"allowed-groups"].split(',') : nil } diff --git a/app/serializers/discourse_post_event/event_serializer.rb b/app/serializers/discourse_post_event/event_serializer.rb index 235b54e8..3dd92537 100644 --- a/app/serializers/discourse_post_event/event_serializer.rb +++ b/app/serializers/discourse_post_event/event_serializer.rb @@ -17,6 +17,7 @@ module DiscoursePostEvent attributes :can_update_attendance attributes :is_expired attributes :should_display_invitees + attributes :url def can_act_on_discourse_post_event scope.can_act_on_discourse_post_event?(object) diff --git a/assets/javascripts/discourse/controllers/discourse-post-event-builder.js.es6 b/assets/javascripts/discourse/controllers/discourse-post-event-builder.js.es6 index 4277d64c..7351f9df 100644 --- a/assets/javascripts/discourse/controllers/discourse-post-event-builder.js.es6 +++ b/assets/javascripts/discourse/controllers/discourse-post-event-builder.js.es6 @@ -67,7 +67,6 @@ export default Controller.extend(ModalFunctionality, { .then(post => { const raw = post.raw; const newRaw = this._removeRawEvent(raw); - const props = { raw: newRaw, edit_reason: I18n.t("discourse_post_event.destroy_event") @@ -150,6 +149,10 @@ export default Controller.extend(ModalFunctionality, { eventParams.name = this.model.eventModel.name; } + if (this.model.eventModel.url) { + eventParams.url = this.model.eventModel.url; + } + if (this.endsAt) { eventParams.end = moment(this.endsAt) .utc() @@ -170,13 +173,12 @@ export default Controller.extend(ModalFunctionality, { return raw.replace(eventRegex, ""); }, - _replaceRawEvent(eventparams, raw) { + _replaceRawEvent(eventParams, raw) { const eventRegex = new RegExp(`\\[event\\s(.*?)\\]`, "m"); const eventMatches = raw.match(eventRegex); if (eventMatches && eventMatches[1]) { const markdownParams = []; - const eventParams = this._buildEventParams(); Object.keys(eventParams).forEach(eventParam => { const value = eventParams[eventParam]; if (value && value.length) { diff --git a/assets/javascripts/discourse/models/discourse-post-event-event.js.es6 b/assets/javascripts/discourse/models/discourse-post-event-event.js.es6 index c3f4f07e..ac14bfe2 100644 --- a/assets/javascripts/discourse/models/discourse-post-event-event.js.es6 +++ b/assets/javascripts/discourse/models/discourse-post-event-event.js.es6 @@ -6,6 +6,7 @@ const ATTRIBUTES = { starts_at: {}, ends_at: {}, raw_invitees: {}, + url: {}, status: { transform(value) { return STATUSES[value]; diff --git a/assets/javascripts/discourse/templates/modal/discourse-post-event-builder.hbs b/assets/javascripts/discourse/templates/modal/discourse-post-event-builder.hbs index e1cf203d..80af407b 100644 --- a/assets/javascripts/discourse/templates/modal/discourse-post-event-builder.hbs +++ b/assets/javascripts/discourse/templates/modal/discourse-post-event-builder.hbs @@ -11,6 +11,7 @@ clearable=true onChange=(action "onChangeDates") }} + {{#event-field class="name" label="discourse_post_event.builder_modal.name.label"}} {{input value=(readonly model.eventModel.name) @@ -19,6 +20,14 @@ }} {{/event-field}} + {{#event-field class="url" label="discourse_post_event.builder_modal.url.label"}} + {{input + value=(readonly model.eventModel.url) + placeholderKey="discourse_post_event.builder_modal.url.placeholder" + input=(action (mut model.eventModel.url) value="target.value") + }} + {{/event-field}} + {{#event-field label="discourse_post_event.builder_modal.status.label"}}