From 5faad9ea56dcf2d715c9e11e07490f50115d25bb Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Wed, 11 Dec 2019 18:11:09 -0800 Subject: First pass at federation! --- views/event.handlebars | 4 ++-- views/eventgroup.handlebars | 6 +++--- views/layouts/main.handlebars | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'views') diff --git a/views/event.handlebars b/views/event.handlebars index 4d0cf28..e2529b8 100755 --- a/views/event.handlebars +++ b/views/event.handlebars @@ -76,8 +76,8 @@ - gath.io/{{eventData.id}} - diff --git a/views/eventgroup.handlebars b/views/eventgroup.handlebars index 00bae2c..dffb847 100755 --- a/views/eventgroup.handlebars +++ b/views/eventgroup.handlebars @@ -49,10 +49,10 @@ - - gath.io/group/{{eventGroupData.id}} + + {{domain}}/group/{{eventGroupData.id}} - diff --git a/views/layouts/main.handlebars b/views/layouts/main.handlebars index 4f0cfbc..3cde5d5 100755 --- a/views/layouts/main.handlebars +++ b/views/layouts/main.handlebars @@ -18,13 +18,13 @@ - - + + - + {{#if title}}{{title}} · {{/if}}gathio @@ -73,7 +73,7 @@
- GitHub · Made with by Raphael · Need help? Email us.
+ GitHub · Made with by Raphael · Need help? Email us.
If you like gathio, you might like sweet, my utopian social network.
-- cgit v1.2.3 From f1e62ef6fa94c3cfb6afadd0dc865f5c502a6a60 Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Sun, 15 Dec 2019 13:07:50 -0800 Subject: Big refactor and new features --- views/event.handlebars | 23 +++++++++++++++++++++-- views/home.handlebars | 27 ++++++++++++++++++++++++--- 2 files changed, 45 insertions(+), 5 deletions(-) (limited to 'views') diff --git a/views/event.handlebars b/views/event.handlebars index e2529b8..a57f62a 100755 --- a/views/event.handlebars +++ b/views/event.handlebars @@ -81,6 +81,15 @@ Copy +
  • + + + + @{{eventData.id}}@{{domain}} + +
  • @@ -125,7 +134,7 @@ {{#if eventAttendees}} {{else}} @@ -246,7 +255,11 @@
    -

    {{this.author}} {{this.timestamp}}

    + {{#if this.actorId}} +

    {{this.author}} {{this.timestamp}}

    + {{else}} +

    {{this.author}} {{this.timestamp}}

    + {{/if}}

    {{this.content}}

    {{#if this.replies}}
    @@ -398,6 +411,12 @@ $(this).html(' Copied!'); setTimeout(function(){ $("#copyEventLink").html(' Copy');}, 5000); }) + new ClipboardJS('#copyAPLink'); + $("#copyAPLink").click(function(){ + console.log('hhhhh') + $(this).html(' Copied!'); + setTimeout(function(){ $("#copyAPLink").html(' Copy');}, 5000); + }) $(".daysToDeletion").html(moment("{{eventEndISO}}").add(7, 'days').fromNow()); if ($("#joinCheckbox").is(':checked')){ $("#maxAttendeesCheckboxContainer").css("display","flex"); diff --git a/views/home.handlebars b/views/home.handlebars index c1a610f..6f62a16 100755 --- a/views/home.handlebars +++ b/views/home.handlebars @@ -1,11 +1,32 @@ -

    Organise all the things

    - +

    🚨Experimental Fediverse Event Software🚨

    - gathio is a quick and easy way to make and share events which respects your privacy. + This is experimental software from Darius Kazemi.


    +

    The Fediverse needs an event organizing system, so I've taken the incredibly lovely open source event organizing software gath.io and added my lightweight ActivityPub server to the mix.

    + +

    I fully expect this to break, and I would love early testers. I'm especially interested to know how this interacts with people who aren't on Mastodon.

    + +

    Directions

    + +

    Hit the green New Event button and put in your event details. Your event will have a nice looking home page and it will also have an ActivityPub-compatible account and profile. It will give you the account handle for the event, which will look something like @aB3_2HI@{{domain}} and can be shared with people on the Fediverse who want to follow your event.

    + +

    When a person follows your event, they'll follow a feed that updates whenever you update event details. After a person follows, this software will DM the person a poll (aka an ActivityPub "Question") where, at least in Mastodon, they can vote Yes/No/Maybe. If they vote Yes, then they will be registered as an attendee on your page. No and Maybe don't do anything yet.

    + +

    Also when you update your event (changing any of the fields), you send a DM notification to every user who is registered as attending.

    + +

    Further info

    + +

    I'll publish the source code soon, but it's in crummy and undocumented shape right now and I'd rather see it perform "in the wild" before I do an official release.

    + +

    If you'd like to chat with me about this software, I can be reached at @darius@friend.camp.

    + +

    What follows is the documentation from gath.io.

    + +
    +

    You don't need to sign up for an account - we just use your email to send you a secret link you can use to edit or delete your event. Send all your guests the public link, and all your co-hosts the editing link. A week after the event finishes, it's deleted from our servers for ever, and your email goes with it.

    -- cgit v1.2.3 From 8587b5b41e5781ea6fe4ce130e36ac327548864b Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Sat, 4 Jan 2020 13:33:35 -0800 Subject: Email refactoring Tons of refactoring of email. This no longer uses Sendgrid templates and now uses source-controlled handlebars files in the `views/emails/` directory. This means that email messages are now source-controlled and vastly reduces the sendgrid setup process. --- views/emails/addeventattendee.handlebars | 7 ++ views/emails/addeventcomment.handlebars | 7 ++ views/emails/createevent.handlebars | 19 +++++ views/emails/createeventgroup.handlebars | 27 ++++++ views/emails/deleteevent.handlebars | 4 + views/emails/editevent.handlebars | 8 ++ views/emails/removeeventattendee.handlebars | 4 + views/emails/unattendevent.handlebars | 8 ++ views/layouts/email.handlebars | 126 ++++++++++++++++++++++++++++ 9 files changed, 210 insertions(+) create mode 100644 views/emails/addeventattendee.handlebars create mode 100644 views/emails/addeventcomment.handlebars create mode 100644 views/emails/createevent.handlebars create mode 100644 views/emails/createeventgroup.handlebars create mode 100644 views/emails/deleteevent.handlebars create mode 100644 views/emails/editevent.handlebars create mode 100644 views/emails/removeeventattendee.handlebars create mode 100644 views/emails/unattendevent.handlebars create mode 100644 views/layouts/email.handlebars (limited to 'views') diff --git a/views/emails/addeventattendee.handlebars b/views/emails/addeventattendee.handlebars new file mode 100644 index 0000000..f49c790 --- /dev/null +++ b/views/emails/addeventattendee.handlebars @@ -0,0 +1,7 @@ +

    You just marked yourself as attending an event on {{siteName}}. Thank you! We'll send you another email if there are any updates to the event. Your email will be automatically removed from the database once the event finishes.

    +

    Follow this link to open the event page any time: https://{{domain}}/{{eventID}}

    +

    Love,

    +

    {{siteName}}

    +
    +

    Hold up - I have no idea what this email is about!

    +

    If you didn't mark yourself as attending an event on {{siteName}}, someone may have accidentally typed your email instead of theirs. Don't worry - there isn't anything you need to do. Your email will be removed from the system when the event finishes.

    diff --git a/views/emails/addeventcomment.handlebars b/views/emails/addeventcomment.handlebars new file mode 100644 index 0000000..8ab7ec1 --- /dev/null +++ b/views/emails/addeventcomment.handlebars @@ -0,0 +1,7 @@ +

    {{commentAuthor}} has just posted a comment on an event you're attending on {{siteName}}.

    +

    Click here to see the comment: https://{{domain}}/{{eventID}}

    +

    Love,

    +

    {{siteName}}

    +
    +

    Hold up - I have no idea what this email is about!

    +

    If you didn't mark yourself as attending an event on {{siteName}}, someone may have accidentally typed your email instead of theirs. Don't worry - there isn't anything you need to do. Your email will be removed from the system when the event finishes.

    diff --git a/views/emails/createevent.handlebars b/views/emails/createevent.handlebars new file mode 100644 index 0000000..030ee58 --- /dev/null +++ b/views/emails/createevent.handlebars @@ -0,0 +1,19 @@ +

    Your event has been created!

    +

    Use this link to share it with people: https://{{domain}}/{{eventID}}

    +

    Click this button to edit your event. DO NOT SHARE THIS, as anyone with this link can edit your event.

    + + + + + + + +
    + + + + + + +
    Edit Your Event
    +
    diff --git a/views/emails/createeventgroup.handlebars b/views/emails/createeventgroup.handlebars new file mode 100644 index 0000000..3f03345 --- /dev/null +++ b/views/emails/createeventgroup.handlebars @@ -0,0 +1,27 @@ +

    You just created a new event group on {{siteName}}! Thanks a bunch - we're delighted to have you.

    +

    You can edit your event group by clicking the button below, or just following this link: https://{{domain}}/{{eventGroupID}}?e={{editToken}}

    +

    To add events to this group (whether brand new events or ones you've already made), click the 'This event is part of an event group' checkbox. You will need to copy the following two codes into the dark grey box which opens:

    +

    Event group ID: {{eventGroupID}}

    +

    Event group secret editing code: {{editToken}}

    + + + + + + +
    + + + + + + +
    Edit event group
    +
    +

    To let others know about your event group, send them this link: https://{{domain}}/{{eventGroupID}}

    +

    And that's it - have a great day!

    +

    Love,

    +

    {{siteName}}

    +
    +

    Hold up - I have no idea what this email is about!

    +

    If you didn't make an event group on {{siteName}}, someone may have accidentally typed your email instead of theirs when they were making an event. Don't worry - there isn't anything you need to do. Your email will be removed from the system when the event finishes, and if you're still worried, just click on the edit link above and delete that event group, which removes your email from the system as well.

    diff --git a/views/emails/deleteevent.handlebars b/views/emails/deleteevent.handlebars new file mode 100644 index 0000000..5a3670c --- /dev/null +++ b/views/emails/deleteevent.handlebars @@ -0,0 +1,4 @@ +

    The {{eventName}} event you're attending on {{siteName}} was just deleted by its creator.

    +
    +

    Hold up - I have no idea what this email is about!

    +

    If you didn't mark yourself as attending an event on {{siteName}}, someone may have accidentally typed your email instead of theirs. Don't worry - that event, and your email, is deleted from the system now.

    diff --git a/views/emails/editevent.handlebars b/views/emails/editevent.handlebars new file mode 100644 index 0000000..ddb9885 --- /dev/null +++ b/views/emails/editevent.handlebars @@ -0,0 +1,8 @@ +

    An event you're attending on {{siteName}} has just been edited.

    +

    {{{diffText}}}

    +

    Click here to see the event: https://{{domain}}/{{eventID}}

    +

    Love,

    +

    {{siteName}}

    +
    +

    Hold up - I have no idea what this email is about!

    +

    If you didn't mark yourself as attending an event on {{siteName}}, someone may have accidentally typed your email instead of theirs. Don't worry - there isn't anything you need to do. Your email will be removed from the system when the event finishes.

    diff --git a/views/emails/removeeventattendee.handlebars b/views/emails/removeeventattendee.handlebars new file mode 100644 index 0000000..66ca858 --- /dev/null +++ b/views/emails/removeeventattendee.handlebars @@ -0,0 +1,4 @@ +

    You have been removed from the event {{eventName}} on {{siteName}} by the organizer of the event.

    +
    +

    Hold up - I have no idea what this email is about!

    +

    If you didn't mark yourself as attending an event on {{siteName}}, someone may have accidentally typed your email instead of theirs. Don't worry - you won't receive any more of these emails for this event, and your email has been removed from the database.

    diff --git a/views/emails/unattendevent.handlebars b/views/emails/unattendevent.handlebars new file mode 100644 index 0000000..62dac8a --- /dev/null +++ b/views/emails/unattendevent.handlebars @@ -0,0 +1,8 @@ +

    You just removed yourself from an event on {{siteName}}. You will no longer receive update emails for this event.

    +

    If you didn't mean to do this, someone else who knows your email removed you from the event.

    +

    Follow this link to open the event page any time: https://{{domain}}/{{eventID}}

    +

    Love,

    +

    {{siteName}}

    +
    +

    Hold up - I have no idea what this email is about!

    +

    If you didn't mark yourself as attending an event on {{siteName}}, someone may have accidentally typed your email instead of theirs, then removed it. Don't worry - you won't receive any more emails linked to this event.

    diff --git a/views/layouts/email.handlebars b/views/layouts/email.handlebars new file mode 100644 index 0000000..6158ddb --- /dev/null +++ b/views/layouts/email.handlebars @@ -0,0 +1,126 @@ + + + + + +{{ subject }} + + + + + + + + + +
      +
    + + + + + + + + +
    + + + + +
    + {{{ body }}} +
    +
    + +
    +
     
    + + -- cgit v1.2.3 From ef5aadc56f821c31d324fd3ec29f646a331b4612 Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Sat, 4 Jan 2020 21:59:57 -0800 Subject: Enhancements to AP and one-click removal This adds AP Delete/Event, AP Delete/Actor, and one-click removal from RSVP lists that can be included in the "you have rsvped" confirmation message. --- views/event.handlebars | 2 +- views/layouts/main.handlebars | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'views') diff --git a/views/event.handlebars b/views/event.handlebars index a57f62a..efd700a 100755 --- a/views/event.handlebars +++ b/views/event.handlebars @@ -134,7 +134,7 @@ {{#if eventAttendees}}
      {{#each eventAttendees}} - {{this.name}}{{#if ../editingEnabled}} {{/if}} + {{#if this.email}}{{this.name}}{{else}}{{this.name}}{{/if}}{{#if ../editingEnabled}} {{/if}} {{/each}}
    {{else}} diff --git a/views/layouts/main.handlebars b/views/layouts/main.handlebars index 3cde5d5..d7c3bf2 100755 --- a/views/layouts/main.handlebars +++ b/views/layouts/main.handlebars @@ -17,17 +17,17 @@ - + - + - {{#if title}}{{title}} · {{/if}}gathio + {{#if title}}{{title}} · {{/if}}{{siteName}} -- cgit v1.2.3 From 8029cfcd9221da9164d731ab3e7c20740f52fab7 Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Mon, 6 Jan 2020 21:35:42 -0800 Subject: lots of refactoring --- views/partials/neweventgroupform.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'views') diff --git a/views/partials/neweventgroupform.handlebars b/views/partials/neweventgroupform.handlebars index 20dd832..fddc795 100755 --- a/views/partials/neweventgroupform.handlebars +++ b/views/partials/neweventgroupform.handlebars @@ -1,6 +1,6 @@

    Create an event group

    An event group is a holding area for a set of linked events, like a series of film nights, a festival, or a band tour. You can share a public link to your event group just like an individual event link, and people who know the secret editing code (sent in an email when you create the event group) will be able to add future events to the group.

    -

    Event groups do not get automatically removed like events do, but events which have been removed from Gathio will of course not show up in an event group.

    +

    Event groups do not get automatically removed like events do, but events which have been removed from {{siteName}} will of course not show up in an event group.

    -- cgit v1.2.3 From 783a5fbc270452148a6bcc92cb37469e6da349d7 Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Mon, 6 Jan 2020 22:31:17 -0800 Subject: update homepage --- views/home.handlebars | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) (limited to 'views') diff --git a/views/home.handlebars b/views/home.handlebars index 6f62a16..164250c 100755 --- a/views/home.handlebars +++ b/views/home.handlebars @@ -1,32 +1,11 @@ -

    🚨Experimental Fediverse Event Software🚨

    +

    {{siteName}}

    +

    - This is experimental software from Darius Kazemi. + gathio is a quick and easy way to make and share events which respects your privacy.


    -

    The Fediverse needs an event organizing system, so I've taken the incredibly lovely open source event organizing software gath.io and added my lightweight ActivityPub server to the mix.

    - -

    I fully expect this to break, and I would love early testers. I'm especially interested to know how this interacts with people who aren't on Mastodon.

    - -

    Directions

    - -

    Hit the green New Event button and put in your event details. Your event will have a nice looking home page and it will also have an ActivityPub-compatible account and profile. It will give you the account handle for the event, which will look something like @aB3_2HI@{{domain}} and can be shared with people on the Fediverse who want to follow your event.

    - -

    When a person follows your event, they'll follow a feed that updates whenever you update event details. After a person follows, this software will DM the person a poll (aka an ActivityPub "Question") where, at least in Mastodon, they can vote Yes/No/Maybe. If they vote Yes, then they will be registered as an attendee on your page. No and Maybe don't do anything yet.

    - -

    Also when you update your event (changing any of the fields), you send a DM notification to every user who is registered as attending.

    - -

    Further info

    - -

    I'll publish the source code soon, but it's in crummy and undocumented shape right now and I'd rather see it perform "in the wild" before I do an official release.

    - -

    If you'd like to chat with me about this software, I can be reached at @darius@friend.camp.

    - -

    What follows is the documentation from gath.io.

    - -
    -

    You don't need to sign up for an account - we just use your email to send you a secret link you can use to edit or delete your event. Send all your guests the public link, and all your co-hosts the editing link. A week after the event finishes, it's deleted from our servers for ever, and your email goes with it.

    -- cgit v1.2.3