From 05b68fb5f1289dcfc2bfa96ec0cdc8bb7ef4abbb Mon Sep 17 00:00:00 2001 From: lesion Date: Sun, 11 Oct 2020 21:54:36 +0000 Subject: [PATCH 01/45] Translated using Weblate (Spanish) Currently translated at 69.0% (152 of 220 strings) Translation: Gancio/Web Translate-URL: https://hosted.weblate.org/projects/gancio/web/es/ --- locales/es.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/locales/es.json b/locales/es.json index 53cf7079..9293fa9b 100644 --- a/locales/es.json +++ b/locales/es.json @@ -48,7 +48,7 @@ "enable": "Habilitar", "disable": "Deshabilita", "me": "Tú", - "password_updated": "Contraseña actualizada!", + "password_updated": "Contraseña actualizada.", "comments": "ningún comentario|un comentario|{n} comentarios", "copy_link": "Copiar Enlace", "send_via_mail": "Enviar correo electrónico", @@ -81,7 +81,8 @@ "delete": "Eliminar", "announcements": "Anuncios", "url": "Dirección URL", - "place": "Lugar" + "place": "Lugar", + "tags": "Tags" }, "login": { "description": "Entrando podrás publicar nuevos eventos.", From b2584a14f4fc4a8889454942fe19de0bc370f046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 10 Oct 2020 23:53:23 +0000 Subject: [PATCH 02/45] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 60.0% (6 of 10 strings) Translation: Gancio/Email Translate-URL: https://hosted.weblate.org/projects/gancio/email/nb_NO/ --- locales/email/nb_NO.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/locales/email/nb_NO.json b/locales/email/nb_NO.json index 14a66268..ba4e259d 100644 --- a/locales/email/nb_NO.json +++ b/locales/email/nb_NO.json @@ -4,13 +4,16 @@ "subject": "Nyregistrering" }, "recover": { - "subject": "Passordgjenoppretting" + "subject": "Passordgjenoppretting", + "content": "Hei, du har forespurt gjenoppretting av passord på {{config.title}}.\nKlikk her for å bekrefte." }, "user_confirm": { - "subject": "Du kan nå begynne publiseringen av hendelser" + "subject": "Du kan nå begynne publiseringen av hendelser", + "content": "Hei, din konto på {{config.title}} har blitt opprettet. Bekreft den og velg et passord." }, "confirm": { - "subject": "Du kan nå begynne publiseringen av hendelser" + "subject": "Du kan nå begynne publiseringen av hendelser", + "content": "Hei, din konto på {{config.title}} har blitt bekreftet.\nSkriv til oss på {{config.admin_email}} for info." }, "register": { "content": "Registreringsforespørsel mottatt. Den vil bekreftes så snart som mulig.", From dd36337a4466ad2e2d8259db3f1e2715ffe7a648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 10 Oct 2020 23:51:29 +0000 Subject: [PATCH 03/45] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 72.2% (159 of 220 strings) Translation: Gancio/Web Translate-URL: https://hosted.weblate.org/projects/gancio/web/nb_NO/ --- locales/nb_NO.json | 98 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 89 insertions(+), 9 deletions(-) diff --git a/locales/nb_NO.json b/locales/nb_NO.json index e222f894..38c895ef 100644 --- a/locales/nb_NO.json +++ b/locales/nb_NO.json @@ -2,10 +2,14 @@ "oauth": { "scopes": { "event:write": "Legg til og rediger dine hendelser" - } + }, + "authorization_request": "Programmet {app} ber om følgende autorisering på {instance_name}:", + "redirected_to": "Etter bekreftelse vil du bli videresendt til {url}" }, "confirm": { - "title": "Brukerbekreftelse" + "title": "Brukerbekreftelse", + "valid": "Kontoen din er bekreftet, du kan nå logge inn", + "not_valid": "Noe gikk galt." }, "error": { "email_taken": "Denne e-postadressen er allerede i bruk", @@ -13,10 +17,15 @@ }, "settings": { "password_updated": "Passord endret", - "change_password": "Endre passord" + "change_password": "Endre passord", + "remove_account": "Ved å trykke på følgende knapp vil din brukerkonto slettes. Hendelser du har offentliggjort vil ikke bli det.", + "danger_section": "Farlig del", + "remove_account_confirm": "Du er i ferd med å slette kontoen din for godt", + "update_confirm": "Ønsker du å lagre endringen?" }, "auth": { - "not_confirmed": "Ikke bekreftet enda…" + "not_confirmed": "Ikke bekreftet enda…", + "fail": "Kunne ikke logge inn. Er du sikker på at passordet stemmer?" }, "admin": { "new_announcement": "Ny kunngjøring", @@ -46,7 +55,34 @@ "user_remove_ok": "Bruker fjernet", "delete_user_confirm": "Er du sikker på at du vil fjerne denne brukeren?", "remove_admin": "Fjern administrator", - "delete_user": "Fjern" + "delete_user": "Fjern", + "place_description": "Hvis du har valgt feil sted eller adresse, kan du endre det.
Alle nåværende og foregående hendelser tilknyttet dette stedet vil endre adresse.", + "footer_links": "Bunntekst-lenker", + "trusted_instances_help": "Liste over vennlige instanser vises i toppteksten", + "instance_place": "Indiker sted for denne instansen", + "description_description": "Vises i toppteksten ved siden av tittelen", + "title_description": "Det brukes som overskrift på siden, i emnet av e-posten for eksportering til RSS- og ICS-informasjonsstrømmer.", + "instance_locale_description": "Foretrukket brukerspråk for sider. Noen meldinger vises påsamme bruk for alle (for eksempel ved publisering via ActivityPub, eller ved forsendelse av noen e-poster). I sådant fall vil språket ovenfor bli brukt.", + "user_add_help": "En e-post med instruks om bekreftelse av abonnementet og valg av passord vil bli sendt til den nye brukeren", + "instance_timezone_description": "Gancio er designet for å samle hendelser fra et gitt sted, som en by. Alle hendelser på dette stedet vil bli vist i tidssonen valgt for det.", + "announcement_description": "I denne delen kan du smette inn kunngjøringer som forblir på hjemmesiden", + "hide_boost_bookmark_help": "Skjuler de små ikonene som viser antall framhevelser og bokmerker som kommer fra fediverset", + "hide_boost_bookmark": "Skjuler framhevelser/bokmerker", + "event_confirm_description": "Du kan bekrefte hendelser som oppføres av anonyme brukere her", + "enable_trusted_instances": "Skru på vennlige instanser", + "instance_name_help": "ActivityPub-konto å følge", + "user_blocked": "Brukeren {user} blokkert", + "enable_resources_help": "Tillat tillegg av ressurser til hendelsen fra fediverset", + "enable_federation_help": "Det vil bli mulig å følge denne instansen fra fediverset", + "allow_recurrent_event": "Tillat gjentagende hendelser", + "allow_anon_event": "Tillat anonyme hendelser (må bekreftes)?", + "allow_registration_description": "Tillat selv-registrering?", + "enable_federation": "Skru på føderasjon", + "federation": "Føderasjon/ActivityPub", + "delete_trusted_instance_confirm": "Ønsker du virkelig å slette dette elementet fra venneinstansmenyen?", + "instance_place_help": "Etikett å vise i andres instanser", + "add_trusted_instance": "Legg til en vennlig instans", + "recurrent_event_visible": "Vis gjentagende hendelser som forvalg" }, "event": { "interact_with_me": "Følg meg", @@ -71,12 +107,28 @@ "description_description": "Beskrivelse", "what_description": "Tittel", "same_day": "på samme dag", - "anon": "Anon" + "anon": "Anon", + "follow_me_description": "Én av måtene å holde deg oppdatert på hendelser som publiseres her på {title}\ner å følge kontoen {account} fra fediverset, for eksempel via Gab, og også legge til ressurser til en hendelser derfra.

\nHvis du aldri har hørt om Gab eller fediverset anbefales denne artikkelen.

Skriv inn din instans nedenfor (f.eks. social.librem.one)", + "anon_description": "Du kan legge til en hendelse uten å registrere deg eller logge inn, og den vil bli lagt ut etter at den er bekreftet å være passende. Det vil ikke være mulig å endre den.

\nDu kan istedenfor logge inn, eller registrere deg. Ellers kan du forsette for å få et svar så snart som mulig. ", + "remove_recurrent_confirmation": "Er du sikker på at du ønsker å fjerne denne gjentagende hendelsen?\nHendelser i fortiden vil forbli, men ingen videre hendelser vil bli opprettet.", + "recurrent_2m_ordinal": "|Den {n} {days} i måneden annenhver|Den {n} {days} i måneden annenhver", + "where_description": "Hvor finner hendelsen sted? Hvis ingensteds hen, skriv det og trykk ⏎. ", + "recurrent_1m_ordinal": "På {n} {days} i hver måned", + "recurrent_2m_days": "|På {days} i hver måned annenhver|{days} i hver måned annenhver", + "recurrent_1m_days": "|På {days} i hver måned|{days} i hver måned", + "recurrent_2w_days": "En {days} annenhver", + "multidate_description": "Er det en festival? Velg når den starter og slutter", + "media_description": "Du kan legge til et flygeblad (valgfritt)", + "interact_with_me_at": "Snakk til meg i fediverset på", + "image_too_big": "Bildet kan ikke være større enn 4 MB", + "added_anon": "Hendelse lagt til, men ikke bekreftet enda.", + "added": "Hendelse lagt til" }, "register": { "first_user": "Administrator opprettet", "complete": "Registrering må bekreftes.", - "error": "Feil: " + "error": "Feil: ", + "description": "Sosiale bevegelser bør organisere og finansiere seg selv.
\n
Før du kan publisere, må kontoen godkjennes, ha i minnet at bak denne siden er det mennesker, så skriv to linjer om hvilke hendelser du ønsker å publisere." }, "recover": { "not_valid_code": "Noe gikk galt" @@ -85,7 +137,10 @@ "ok": "Innlogget", "forgot_password": "Glemt passordet?", "not_registered": "Ikke registrert?", - "description": "Ved å logge inn kan du publisere nye hendelser." + "description": "Ved å logge inn kan du publisere nye hendelser.", + "insert_email": "Skriv inn din e-postadresse", + "error": "Kunne ikke logge inn. Sjekk din data.", + "check_email": "Sjekk din e-postinnboks og søppelpost." }, "common": { "reset": "Tilbakestill", @@ -167,6 +222,31 @@ "send": "Send", "export": "Eksporter", "next": "Neste", - "add_event": "Legg til hendelse" + "add_event": "Legg til hendelse", + "associate": "Tilknytt", + "authorize": "Autoriser", + "federation": "Føderasjon", + "n_resources": "ingen ressurs|én ressurs|{n} ressurser" + }, + "export": { + "feed_description": "For å følge oppdateringer fra en datamaskin eller smarttelefon uten å trenge å åpne denne siden, kan du bruke en RSS-leser.

\n\n

Med en RSS-informasjonskanal kan du bruke et egnet program for å motta oppdateringer fra sider som interesserer deg. Det er en bra måte å følge mange sider raskt, uten å måtte opprette en konto eller annet plunder.

\n\n
  • Hvis du har Android, anbefales Flym or Feeder
  • \n
  • For iPhone/iPad kan du bruke Feed4U
  • \n
  • For skrivebord/bærbar anbefales Feedbro, installert på Firefox eller Chrome .
  • \n
    \nÅ legge denne lenken til i din RSS-leser vil holde deg oppdatert.", + "intro": "Ulikt usosiale plattformer som gjør det de kan for å beholde brukere og data om dem, tror vi at den infoen, som folk, må ha sin frihet. Du kan holde deg oppdatert om hendelsene du ønsker, uten å nødvendigvis gå gjennom denne siden.", + "list_description": "Hvis du har en nettside og ønsker å vise en liste over hendelser, bruk følgende kode", + "ical_description": "Datamaskiner og smarttelefoner er vanligvis utstyrt med et kalenderprogram som kan importere kalendere.", + "email_description": "Du kan få hendelser som interesserer deg tilsendt per e-post.", + "insert_your_address": "Skriv inn din e-postadresse" + }, + "about": "\n

    Gancio er en delt agenda for lokale gemenskaper.

    \n ", + "validators": { + "email": "Skriv inn en gyldig e-postadresse", + "required": "{fieldName} kreves" + }, + "ordinal": { + "-1": "siste", + "5": "femte", + "4": "fjerde", + "3": "tredje", + "2": "andre", + "1": "første" } } From 2258717eae7e90eb0260bfbcf518937f3e9ad8db Mon Sep 17 00:00:00 2001 From: les Date: Thu, 15 Jul 2021 16:16:25 +0200 Subject: [PATCH 04/45] cleaning --- CHANGELOG | 8 ++++++++ pages/add/DateInput.vue | 3 --- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 93ccf2e6..a76150db 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,13 @@ All notable changes to this project will be documented in this file. +### 1.0.2 (alpha) + - improve oauth flow UI + - [WordPress plugin](https://wordpress.org/plugins/wpgancio/) + - fix h-event import + - improve error logging (add stack trace to exception) + - choose start date for recurreing events (#120) + - fix user delete from admin + ### 1.0.1 (alpha) - fix AP resource removal diff --git a/pages/add/DateInput.vue b/pages/add/DateInput.vue index 9a47f8b3..4a0790d3 100644 --- a/pages/add/DateInput.vue +++ b/pages/add/DateInput.vue @@ -113,9 +113,6 @@ export default { } return hourList }, - isRecurrent () { - return !!this.value.recurrent - }, whenPatterns () { if (!this.value.from) { return } const date = dayjs(this.value.from) From 9673e40640e4473d9b434b974debd65ac5b1619f Mon Sep 17 00:00:00 2001 From: les Date: Thu, 15 Jul 2021 16:18:56 +0200 Subject: [PATCH 05/45] refactoring media in event (multiple in db, focalpoint, alt text) --- components/Event.vue | 18 ++- pages/add/MediaInput.vue | 97 ++++++++++++ pages/add/_edit.vue | 43 ++---- pages/embed/_event_id.vue | 4 +- pages/event/_id.vue | 25 ++-- pages/export.vue | 2 +- plugins/filters.js | 12 ++ server/api/controller/event.js | 140 +++++++++++------- server/api/models/event.js | 1 + server/emails/event/html.pug | 4 +- server/helpers.js | 2 +- .../20210705183419-add_event_media.js | 25 ++++ views/feed/rss.pug | 4 +- 13 files changed, 271 insertions(+), 106 deletions(-) create mode 100644 pages/add/MediaInput.vue create mode 100644 server/migrations/20210705183419-add_event_media.js diff --git a/components/Event.vue b/components/Event.vue index 4d98bd94..4d6cd756 100644 --- a/components/Event.vue +++ b/components/Event.vue @@ -1,7 +1,7 @@ + diff --git a/server/helpers.js b/server/helpers.js index 7e846110..8c8bb416 100644 --- a/server/helpers.js +++ b/server/helpers.js @@ -132,6 +132,7 @@ module.exports = { } const events = data.items.map(e => { const props = e.properties + const media = get(props, 'featured[0]') return { title: get(props, 'name[0]', ''), description: get(props, 'description[0]', ''), @@ -142,7 +143,7 @@ module.exports = { start_datetime: dayjs(get(props, 'start[0]', '')).unix(), end_datetime: dayjs(get(props, 'end[0]', '')).unix(), tags: get(props, 'category', []), - media: { url: get(props, 'featured[0]') } + media: media ? [{ name: get(props, 'name[0]', ''), url: get(props, 'featured[0]'), focalpoint: [0, 0] }] : [] } }) return res.json(events) diff --git a/views/feed/rss.pug b/views/feed/rss.pug index 71a1a085..efa285de 100644 --- a/views/feed/rss.pug +++ b/views/feed/rss.pug @@ -14,7 +14,7 @@ rss(version='2.0' xmlns:atom="http://www.w3.org/2005/Atom") |

    #{event.title}

    | #{event.place.name} - #{event.place.address} | (#{moment.unix(event.start_datetime).format("dddd, D MMMM HH:mm")})
    - if (event.media) + if (event.media && event.media.length) | #{event.media[0].name} |
    !{event.description}
    | ]]> From 579fd90c2d76d0955ecb49d2625503c2bfb9e0df Mon Sep 17 00:00:00 2001 From: les Date: Mon, 19 Jul 2021 12:16:16 +0200 Subject: [PATCH 20/45] fix push from wpgancio --- pages/event/_id.vue | 13 ++++++++----- server/api/controller/event.js | 19 +++++++++++++------ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/pages/event/_id.vue b/pages/event/_id.vue index ad79404f..c47a5b37 100644 --- a/pages/event/_id.vue +++ b/pages/event/_id.vue @@ -11,14 +11,14 @@ v-container#event.pa-0.pa-sm-2 v-row v-col.col-12.col-lg-8 //- fake image to use u-featured in h-event microformat - img.u-featured(v-show='false' v-if='event.media' :src='event | mediaURL') + img.u-featured(v-show='false' v-if='hasMedia' :src='event | mediaURL') v-img.main_image.mb-3( contain :alt='event | mediaURL("alt")' :src='event | mediaURL' :lazy-src='event | mediaURL("thumb")' - v-if='event.media && event.media.length') - .p-description.text-body-1.pa-3.grey.darken-4.rounded(v-if='!event.media && event.description' v-html='event.description') + v-if='hasMedia') + .p-description.text-body-1.pa-3.grey.darken-4.rounded(v-if='!hasMedia && event.description' v-html='event.description') v-col.col-12.col-lg-4 v-card @@ -61,11 +61,11 @@ v-container#event.pa-0.pa-sm-2 :href='`/api/event/${event.slug || event.id}.ics`') v-icon mdi-calendar-export - .p-description.text-body-1.pa-3.grey.darken-4.rounded(v-if='event.media && event.description' v-html='event.description') + .p-description.text-body-1.pa-3.grey.darken-4.rounded(v-if='hasMedia && event.description' v-html='event.description') //- resources from fediverse #resources.mt-1(v-if='settings.enable_federation') - //- div.float-right(v-if='!settings.hide_boosts') + //- div.float-right(v-if='settings.hide_boosts') //- small.mr-3 🔖 {{event.likes.length}} //- small ✊ {{event.boost.length}}
    @@ -236,6 +236,9 @@ export default { }, computed: { ...mapState(['settings']), + hasMedia () { + return this.event.media && this.event.media.length + }, plainDescription () { return htmlToText.fromString(this.event.description.replace('\n', '').slice(0, 1000)) }, diff --git a/server/api/controller/event.js b/server/api/controller/event.js index 01a770ca..f833cb3b 100644 --- a/server/api/controller/event.js +++ b/server/api/controller/event.js @@ -297,13 +297,15 @@ const eventController = { url = await helpers.getImageFromURL(body.image_url) } - const focalpoint = body.image_focalpoint ? body.image_focalpoint.split(',') : [0, 0] + const focalpoint = body.image_focalpoint ? body.image_focalpoint.split(',') : ['0', '0'] eventDetails.media = [{ url, name: body.image_name || '', - focalpoint: [parseFloat(focalpoint[0]), parseFloat(focalpoint[1].toFixed(2))] + focalpoint: [parseFloat(focalpoint[0].slice(0, 6)), parseFloat(focalpoint[1].slice(0, 6))] }] + } else { + eventDetails.media = [] } const event = await Event.create(eventDetails) @@ -374,7 +376,7 @@ const eventController = { recurrent } - if ((req.file || /^https?:\/\//.test(body.image_url)) && !event.recurrent && event.media.length) { + if ((req.file || /^https?:\/\//.test(body.image_url)) && !event.recurrent && event.media && event.media.length) { const old_path = path.resolve(config.upload_path, event.media[0].url) const old_thumb_path = path.resolve(config.upload_path, 'thumb', event.media[0].url) try { @@ -395,8 +397,8 @@ const eventController = { } } - if (body.image_focalpoint) { - const focalpoint = body.image_focalpoint ? body.image_focalpoint.split(',') : [0, 0] + if (url && !event.recurrent) { + const focalpoint = body.image_focalpoint ? body.image_focalpoint.split(',') : ['0', '0'] eventDetails.media = [{ url, name: body.image_name || '', @@ -452,7 +454,12 @@ const eventController = { } const notifier = require('../../notifier') await notifier.notifyEvent('Delete', event.id) - log.debug('[EVENT REMOVED]', event.title) + + // unassociate child events + if (event.recurrent) { + await Event.update({ parentId: null }, { where: { parentId: event.id } }) + } + log.debug('[EVENT REMOVED] ' + event.title) await event.destroy() res.sendStatus(200) } else { From 33f2507cbad7f1d1df198b5cd46e08dcff5da242 Mon Sep 17 00:00:00 2001 From: les Date: Mon, 19 Jul 2021 12:29:35 +0200 Subject: [PATCH 21/45] add attachment with focalPoint to AP --- server/api/models/event.js | 19 +++++++++++-------- server/federation/helpers.js | 3 ++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/server/api/models/event.js b/server/api/models/event.js index 0b226dd0..d4ec1e7f 100644 --- a/server/api/models/event.js +++ b/server/api/models/event.js @@ -86,15 +86,18 @@ Event.prototype.toAPNote = function (username, locale, to = []) { ${tags && tags.map(t => `#${t}`)} ` - // const attachment = [] + const attachment = [] + if (this.media && this.media.length) { + attachment.push({ + type: 'Document', + mediaType: 'image/jpeg', + url: `${config.baseurl}/media/${this.media[0].url}`, + name: this.media[0].name || '', + blurHash: null, + focalPoint: this.media[0].focalPoint || [0, 0] + }) + } // if (this.image_path) { - // attachment.push({ - // type: 'Document', - // mediaType: 'image/jpeg', - // url: `${config.baseurl}/media/${this.image_path}`, - // name: null, - // blurHash: null - // }) // } return { diff --git a/server/federation/helpers.js b/server/federation/helpers.js index e0207152..8267465f 100644 --- a/server/federation/helpers.js +++ b/server/federation/helpers.js @@ -97,7 +97,8 @@ const Helpers = { 'https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1', { - Hashtag: 'as:Hashtag' + Hashtag: 'as:Hashtag', + focalPoint: { '@container': '@list', '@id': 'toot:focalPoint' } }] await Helpers.signAndSend(JSON.stringify(body), sharedInbox) } From 6f84d904948d697c3bc399b6f7a84ff8abf26ca3 Mon Sep 17 00:00:00 2001 From: les Date: Tue, 20 Jul 2021 11:42:25 +0200 Subject: [PATCH 22/45] add node version in very first log --- server/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/cli.js b/server/cli.js index d720ef68..2dee2057 100755 --- a/server/cli.js +++ b/server/cli.js @@ -322,7 +322,7 @@ async function setup (options) { process.exit(0) } -consola.info(`📅 ${pkg.name} - v${pkg.version} - ${pkg.description}`) +consola.info(`📅 ${pkg.name} - v${pkg.version} - ${pkg.description} (nodejs: ${process.version})`) require('yargs') .usage('Usage $0 [options]') From 02144354149e10c03c06ee5594a8fdea778b117a Mon Sep 17 00:00:00 2001 From: les Date: Tue, 20 Jul 2021 11:45:14 +0200 Subject: [PATCH 23/45] minor --- package.json | 1 - yarn.lock | 109 +++++++++++++++++++++++---------------------------- 2 files changed, 50 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index 3f6e301e..506fbf09 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,6 @@ "eslint-plugin-promise": "^5.1.0", "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.10.0", - "fibers": "^5.0.0", "less-loader": "7", "prettier": "^2.3.0", "pug": "^3.0.2", diff --git a/yarn.lock b/yarn.lock index f9ae66ed..759b9bd8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1739,7 +1739,7 @@ dependencies: "@types/node" "*" -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7": +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": version "7.0.8" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== @@ -1808,72 +1808,72 @@ source-map "^0.6.0" "@typescript-eslint/eslint-plugin@^4.26.0": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.3.tgz#36cdcd9ca6f9e5cb49b9f61b970b1976708d084b" - integrity sha512-jW8sEFu1ZeaV8xzwsfi6Vgtty2jf7/lJmQmDkDruBjYAbx5DA8JtbcMnP0rNPUG+oH5GoQBTSp+9613BzuIpYg== + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz#e73c8cabbf3f08dee0e1bda65ed4e622ae8f8921" + integrity sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw== dependencies: - "@typescript-eslint/experimental-utils" "4.28.3" - "@typescript-eslint/scope-manager" "4.28.3" + "@typescript-eslint/experimental-utils" "4.28.4" + "@typescript-eslint/scope-manager" "4.28.4" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.28.3", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz#976f8c1191b37105fd06658ed57ddfee4be361ca" - integrity sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw== +"@typescript-eslint/experimental-utils@4.28.4", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz#9c70c35ebed087a5c70fb0ecd90979547b7fec96" + integrity sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.28.3" - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/typescript-estree" "4.28.3" + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" eslint-scope "^5.1.1" eslint-utils "^3.0.0" "@typescript-eslint/parser@^4.26.0": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.3.tgz#95f1d475c08268edffdcb2779993c488b6434b44" - integrity sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ== + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.4.tgz#bc462dc2779afeefdcf49082516afdc3e7b96fab" + integrity sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA== dependencies: - "@typescript-eslint/scope-manager" "4.28.3" - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/typescript-estree" "4.28.3" + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz#c32ad4491b3726db1ba34030b59ea922c214e371" - integrity sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ== +"@typescript-eslint/scope-manager@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz#bdbce9b6a644e34f767bd68bc17bb14353b9fe7f" + integrity sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w== dependencies: - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/visitor-keys" "4.28.3" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" -"@typescript-eslint/types@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.3.tgz#8fffd436a3bada422c2c1da56060a0566a9506c7" - integrity sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA== +"@typescript-eslint/types@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.4.tgz#41acbd79b5816b7c0dd7530a43d97d020d3aeb42" + integrity sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww== -"@typescript-eslint/typescript-estree@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz#253d7088100b2a38aefe3c8dd7bd1f8232ec46fb" - integrity sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w== +"@typescript-eslint/typescript-estree@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz#252e6863278dc0727244be9e371eb35241c46d00" + integrity sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ== dependencies: - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/visitor-keys" "4.28.3" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz#26ac91e84b23529968361045829da80a4e5251c4" - integrity sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg== +"@typescript-eslint/visitor-keys@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz#92dacfefccd6751cbb0a964f06683bfd72d0c4d3" + integrity sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg== dependencies: - "@typescript-eslint/types" "4.28.3" + "@typescript-eslint/types" "4.28.4" eslint-visitor-keys "^2.0.0" "@vue/babel-helper-vue-jsx-merge-props@^1.2.1": @@ -4498,9 +4498,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.723: - version "1.3.779" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz#de55492a756deec63424f89fbe62aec9776f0e6d" - integrity sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew== + version "1.3.780" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.780.tgz#f946e10dc0005a3b59b9afa2d2c92f5c421f7fc5" + integrity sha512-2KQ9OYm9WMUNpAPA/4aerURl3hwRc9tNlpsiEj3Y8Gf7LVf26NzyLIX2v0hSagQwrS9+cWab+28A2GPKDoVNRA== elliptic@^6.5.3: version "6.5.4" @@ -5284,13 +5284,6 @@ fecha@^4.2.0: resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== -fibers@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/fibers/-/fibers-5.0.0.tgz#3a60e0695b3ee5f6db94e62726716fa7a59acc41" - integrity sha512-UpGv/YAZp7mhKHxDvC1tColrroGRX90sSvh8RMZV9leo+e5+EkRVgCEZPlmXeo3BUNQTZxUaVdLskq1Q2FyCPg== - dependencies: - detect-libc "^1.0.3" - figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -10329,9 +10322,9 @@ rechoir@^0.6.2: resolve "^1.1.6" rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== dependencies: resolve "^1.9.0" @@ -10706,11 +10699,11 @@ schema-utils@^2.0.0, schema-utils@^2.6.5, schema-utils@^2.7.1: ajv-keywords "^3.5.2" schema-utils@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.0.tgz#95986eb604f66daadeed56e379bfe7a7f963cdb9" - integrity sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w== + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: - "@types/json-schema" "^7.0.7" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -12464,10 +12457,8 @@ watchpack@^1.7.4: resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: - chokidar "^3.4.1" graceful-fs "^4.1.2" neo-async "^2.5.0" - watchpack-chokidar2 "^2.0.1" optionalDependencies: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" From 819a97bda7b23365021f2dc471b5f23cfa5246f3 Mon Sep 17 00:00:00 2001 From: les Date: Tue, 20 Jul 2021 13:14:06 +0200 Subject: [PATCH 24/45] update CHANGELOG --- CHANGELOG | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index a76150db..daf38553 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,14 @@ All notable changes to this project will be documented in this file. +### UNRELEASED + - 12 hour clock selection, #119 + - improve media management + - add alt-text to featured image, fix #106 + - add focalPoint support, fix #116 + - improve a11y + - improve node v16 compatibility + - fix #122 ? (downgrade prettier) + ### 1.0.2 (alpha) - improve oauth flow UI - [WordPress plugin](https://wordpress.org/plugins/wpgancio/) From f38cff21cc8d773fc37c3b7e1114a425aa716593 Mon Sep 17 00:00:00 2001 From: les Date: Tue, 20 Jul 2021 21:30:28 +0200 Subject: [PATCH 25/45] fix unsaved focalPoint --- pages/add/MediaInput.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pages/add/MediaInput.vue b/pages/add/MediaInput.vue index e7425cfa..d09b8159 100644 --- a/pages/add/MediaInput.vue +++ b/pages/add/MediaInput.vue @@ -34,7 +34,7 @@ v-btn(text color='primary' @click='openMediaDetails = true') {{$t('common.edit')}} v-btn(text color='error' @click='remove') {{$t('common.remove')}} div(v-if='mediaPreview') - v-img.col-12.col-sm-2.ml-3(:src='mediaPreview' aspect-ratio='1.7778' :position='`${(this.value.focalpoint[0] + 1) * 50}% ${(this.value.focalpoint[1] + 1) * 50}%`') + v-img.col-12.col-sm-2.ml-3(:src='mediaPreview' aspect-ratio='1.7778' :position='savedPosition') span.float-right {{event.media[0].name}} v-file-input( v-else @@ -68,8 +68,13 @@ export default { const url = this.value.image ? URL.createObjectURL(this.value.image) : /^https?:\/\//.test(this.value.url) ? this.value.url : `/media/thumb/${this.value.url}` return url }, + savedPosition () { + const focalpoint = this.value.focalpoint || [0, 0] + return `${(focalpoint[0] + 1) * 50}% ${(focalpoint[1] + 1) * 50}%` + }, position () { - return `${(this.focalpoint[0] + 1) * 50}% ${(this.focalpoint[1] + 1) * 50}%` + const focalpoint = this.focalpoint || [0, 0] + return `${(focalpoint[0] + 1) * 50}% ${(focalpoint[1] + 1) * 50}%` } }, methods: { From 7c23325a0cc6f64073073e9165a746852235fea4 Mon Sep 17 00:00:00 2001 From: les Date: Wed, 21 Jul 2021 11:23:32 +0200 Subject: [PATCH 26/45] minor on focalPoint precision --- server/api/controller/event.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/api/controller/event.js b/server/api/controller/event.js index f833cb3b..828aa526 100644 --- a/server/api/controller/event.js +++ b/server/api/controller/event.js @@ -297,12 +297,12 @@ const eventController = { url = await helpers.getImageFromURL(body.image_url) } - const focalpoint = body.image_focalpoint ? body.image_focalpoint.split(',') : ['0', '0'] - + let focalpoint = body.image_focalpoint ? body.image_focalpoint.split(',') : ['0', '0'] + focalpoint = [parseFloat(focalpoint[0]).toFixed(2), parseFloat(focalpoint[1]).toFixed(2)] eventDetails.media = [{ url, name: body.image_name || '', - focalpoint: [parseFloat(focalpoint[0].slice(0, 6)), parseFloat(focalpoint[1].slice(0, 6))] + focalpoint: [parseFloat(focalpoint[0]), parseFloat(focalpoint[1])] }] } else { eventDetails.media = [] From 08527e6e60e9144dff12268580a6943bd23209bb Mon Sep 17 00:00:00 2001 From: les Date: Wed, 21 Jul 2021 11:26:58 +0200 Subject: [PATCH 27/45] v1.0.3 --- CHANGELOG | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index daf38553..ea32e01c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ All notable changes to this project will be documented in this file. -### UNRELEASED +### 1.0.3 (alpha) - 12 hour clock selection, #119 - improve media management - add alt-text to featured image, fix #106 diff --git a/package.json b/package.json index 506fbf09..439a9a4e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gancio", - "version": "1.0.2-alpha", + "version": "1.0.3-alpha", "description": "A shared agenda for local communities", "author": "lesion", "scripts": { From a03ec444369082a3d2d6b3a28bbef2dd561f1599 Mon Sep 17 00:00:00 2001 From: les Date: Mon, 26 Jul 2021 12:23:02 +0200 Subject: [PATCH 28/45] fix noimg event --- components/Event.vue | 8 +- server/routes.js | 4 + static/noimg.svg | 274 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 282 insertions(+), 4 deletions(-) create mode 100644 static/noimg.svg diff --git a/components/Event.vue b/components/Event.vue index 997d9c18..032f5b52 100644 --- a/components/Event.vue +++ b/components/Event.vue @@ -1,7 +1,7 @@