Events Plugin 📆

That would indeed be super useful !

If there is a way to just use the usual thunderbird or other calendars with a login/pass, that would be very handy !

4 Likes

Hi @angus, I’ve found what looks like a bug. I’m not sure if it stems from the Events Plugin or core.

It comes from my specific use-case and the way I’m using the plugin so I’m not sure how widespread this will be amongst your users.

When you visit the unadorned category URL of a category that is set to display the Agenda you are no longer redirected to the route that you use in the Events Plugin.

For example, if I have a category a-category and my category settings state that my Default Topic List is set to Agenda, and I visit the base URL for that category…

/c/a-category

I am no longer redirected to…

/c/a-category/l/agenda

…as I used to be.

Instead, I am given a blank browser page and the console reports the following error.

Detailed log from Chome console

_ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3841 Uncaught t {stack: “Error: Can’t trigger action ‘refreshTitle’ because…61e7351258de8d2e886bf2ce86f144368848.js:16:22294)”, description: undefined, fileName: undefined, lineNumber: undefined, message: “Can’t trigger action ‘refreshTitle’ because your a…ssed to the model/beforeModel/afterModel hooks.”, …}code: undefineddescription: undefinedfileName: undefinedlineNumber: undefinedmessage: "Can’t trigger action ‘refreshTitle’ because your app hasn’t finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call .send() on the Transition object passed to the model/beforeModel/afterModel hooks."name: "Error"number: undefinedstack: "Error: Can’t trigger action ‘refreshTitle’ because your app hasn’t finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call .send() on the Transition object passed to the model/beforeModel/afterModel hooks.↵ at new t (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:11:25040)↵ at n.T (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:8:18150)↵ at u.triggerEvent (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:8:22657)↵ at u.e.trigger (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:18:12495)↵ at n.o.send (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:8:26946)↵ at n. (https://beta.my.site/assets/application-027cbafa61f4cc1b5b55a63ba2b79d91c9311e929214519811bf586ae80581c9.js:13:16507)↵ at b (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:6:19364)↵ at n.trigger (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:9:23249)↵ at https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:8:22830↵ at e.invoke (https://beta.my.site/assets/ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:16:22294)"proto: Error
(anonymous) @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3841
setTimeout (async)
we.readyException @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3840
(anonymous) @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3860
p @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3548
h @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3616
setTimeout (async)
(anonymous) @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3654
c @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3282
fireWith @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3412
fire @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3420
c @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3282
fireWith @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3412
h @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3636
setTimeout (async)
(anonymous) @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3654
c @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3282
fireWith @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3412
fire @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3420
c @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3282
fireWith @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3412
ready @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3892
h @ _ember_jquery-5dbd79abddf53926275c73f77dbe61e7351258de8d2e886bf2ce86f144368848.js:3902

if I try to visit the full URL /c/a-category/l/agenda then it works as expected.

This is a change in behaviour between beta5 and beta7+7 (I just upgraded my test instance to beta7+7 and now I see this behaviour).

I am using your Custom Wizard Plugin redirect feature to redirect to this category which is why I mention my specific use case. I guess I can just change my code to append /l/agenda/ to get this working, but wanted to know if this is expected behaviour.

Finally, and oddly, if I locate the category in question in the category list from the home page and I hover over it with the mouse, I see that the URL it will take me to is in fact the unadorned version - i.e. /c/a-category.

However, when I click it, it works as expected and takes me to the /c/a-category/l/agenda page. If, instead of clicking the URL I copy the URL and paste it in to the browser, it fails as I described above. Some clever internal JavaScript redirection going on I guess?

I’m running 2.3.0 beta7+7 and the latest Events Plugin and am testing in Chrome Version 72.0.3626.96 (Official Build) (64-bit) on Ubuntu.

I’ve tried to repro on your sandbox but couldn’t find a category that is set to display the Agenda as the Default Topic List.

2 Likes

Thanks for a great bug report! I can indeed repro it on my sandbox, e.g.

https://discourse.angusmcleod.com.au/c/work

This week is very busy, so I’m going to have to look at this next week:

https://discourse.angusmcleod.com.au/t/events-naked-url-redirect-issue/856

3 Likes

Can we also add event rsvp improvements to your agenda? We are increasingly wanting to find alternatives to GoToWebinar for handling events, and this would be ideal. :rocket:

There’s one on Events agenda: Events: Add admin controls for RSVP list - Tasks - Pavilion. Let me know specifically what else is needed.

This is now fixed. Turned out to be a bit of a hairy issue.


In other news, subscribing to calendar feeds of private categories is now supported. You have to add an appropriate api_key and api_username as query params to get it to work. For example:

webcal://discourse.angusmcleod.com.au/calendar.ics?time_zone=Australia/Melbourne&api_key={your_api_key}&api_username={your_username}
4 Likes

Cool! That feature would be great and would go a long way to helping us. :rocket:

The task list you wrote above contained most the features I think we need. To repeat the key ones from there that would make this plugin work as eventbrite killer:

  • Guest rsvp
  • Event reminders
  • Event rsvp list export
  • Rsvp custom fields

Other items from your list that are interesting for this purpose:

  • Adding multiple events to one topic.
  • Recurring events

There are more items on that list where I am not sure of the status and would be glad of an update.

I’d be happy to review this topic for feature suggestions and update the OP with a proposed task list if you like, as I did for the ticket plugin. Let me know.

2 Likes

Cool, thanks. I’ve slotted in Guest RSVP, and moved Admin controls for RSVP list, which includes list export, up the agenda.

https://discourse.angusmcleod.com.au/t/events-add-admin-controls-for-rsvp-list/840

Multiple and recurring events are tricker / hairier, so I’ll take a look at them again in May, but can’t make any promises in that respect

https://discourse.angusmcleod.com.au/t/events-recurring-and-or-multiple-events/841/2

I’ll also take a look at event reminders in May

https://discourse.angusmcleod.com.au/t/add-event-reminders/879

RSVP custom fields will have to wait till June.

https://discourse.angusmcleod.com.au/t/add-rsvp-custom-fields/880

2 Likes

Hi everyone! Hi @angus!
Great plugin! Thanks a lot!

I think i found some issue. While approval post from “Needs Review” the date and time of event are lost.
image

While approval isn’t any information about date and time.

While editing post pending isn’t any information about date and time.

And after approval or save the date and time of event are lost. Have you some solution of that or maybe I’m doing something wrong?

Hi Marcin! Thanks for the detailed report.

I didn’t even realize you can edit posts via the review queue - that’s pretty cool!

Are you sure the event details are lost when approving posts? Or is it just not showing up there?

Generally, my thinking is that the events plugin is separate from the (very new) review queue functionality. The events plugin is not an official plugin and it is not integrated with other functionality, and so I don’t expect it to be. I’m not sure it really matters that you can’t see and edit event details via the review queue. You want to use the forum to read and manage discussions in any case, where you can always edit event details.

That said, if Angus is easily able to have the event details and edit modal show up in the review queue I can see how that can be useful. Not sure it’s a high priority, though, given his limited time and the other feature development on his task list. :sunny:

1 Like

I found an issue with the events plugin that only manifests if the following conditions are met:

  • Category settings
    • Navigate to first post after topics are read
    • Allow events to be added to topics in this category (overrides site setting).
  • Event type
    • Event is NOT an all day event

When all three are met, the topic doesn’t honour the ‘Navigate to first post’ any more. Other topics (without events or with all day events) in the same category work as expected.

Steps to repro:

  • configure category as described above
  • create new topic
  • add event date and time, do NOT set it to all day event
  • add few posts
  • return to category page, check that the topic is marked as read
  • click on topic title
  • last post is displayed (instead of the first one)

If event is removed or event duration is set to all day, the correct post (first) is displayed.

Great report, however I can’t repro this. I made an example topic in https://discourse.angusmcleod.com.au/c/events following your suggested steps. The “Navigate to first post after topics are read” setting works as normal.

See if you can reproduce it in that category? It has “Navigate to first post after topics are read” enabled.

2 Likes

Found it! :smile:

The date part of the title—the one that the event plugin appends to it—causes the issue (repro on your sandbox).

  • Clicking on the regular part of the topic title opens the first post
  • Clicking on the date part of the title opens the last post read.
2 Likes

Good catch! I took a quick look, but it’s actually a bit tricky. I’ll need to take a look at this one in some more depth the week after next.

https://discourse.angusmcleod.com.au/t/events-event-label-in-topic-list-does-not-respect-navigate-to-first-post-after-topics-are-read/901

1 Like

As scheduled, I’ve added the ability for event admins to add and remove users from an RSVP list:

3 Likes

Wow, Angus, this is amazing progress. Thanks!

Three bits of feedback:

  • the “Guest list” entry box is a bit confusing as an empty rectangle to start with - any way you could provide “add a user” helper text in the box to explain what can be done with it, like with starting a new message:
    24%20AM
  • any way to be able to add email addresses to the field, creating a staged user, similar to the PM to staged user functionality?
  • are people on the guest list subscribed to the topic, e.g. are they watching the topic and notified of all replies because they rsvp’d?

And a bug: there seems to be a problem with Guest list being available to be filled in already while the topic is first being created. see screenshot for what happens. If I empty the “Guest list” box and save the topic, then return to edit and add users it works as expected.

14%20AM

Noticing two things today about the events plugin - welcome any advice.

First, editing event details bumps the topic. A fix for this I think would be to enable editing of event details via the edit link next to the title - editing titles does not bump topics. This would also address support requests I constantly face in my community - people always forget how to get to the event details. Or there some way I don’t know of to prevent bump when editing just event details?

Second, events in the past are not obviously indicated as such in topic lists. So a date on 3 May 2018 looks like it is happening on 3 May 2019, especially if you edit an old topic to edit date details! This happened to me today. Some sort of visual differentiation between upcoming and past events would be helpful. Displaying event date including year on mouseover even.

1 Like

I’ve added this :+1: add placehodler for guest user-selector · angusmcleod/discourse-events@55b73a3 · GitHub

I’ve added these in for May 24: Events: RSVP Guest list upgrades - Tasks - Pavilion

Not sure what you mean here? When I add guests on topic creation it works as expected.

I’ve added this in for the 17th of May: Add event edit controls to topic edit area - Tasks - Pavilion

I’ve added this in for June: Improve display of past events on the topic list - Tasks - Pavilion

1 Like

Cool. Thanks, Angus! This all looks terrific. :+1:

I just tested and this seems to have gone away. Maybe random behavior related to some browser cache issue during installation of the plugin.

1 Like

Small UI bug on mobile:

  • link to calendar export jumps to new line for dates that span multiple lines instead of aligning right
  • dropdown list flows over the left edge as a result

1 Like

Thanks for this report :slight_smile: I’ve scheduled this in for next week: Events mobile UI bug - Tasks - Pavilion

The events plugin has got a busy to-do list!

https://discourse.angusmcleod.com.au/tags/events/l/agenda

2 Likes