From e889f29d17b616bb62e5f4ee94bcde68a6d07668 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 7 Dec 2023 15:37:46 +0100 Subject: [PATCH 001/150] fix: modificado metodo Reload en site.rb #14700 --- app/models/site.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/site.rb b/app/models/site.rb index a8c5e376..10a5e27b 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -396,7 +396,7 @@ class Site < ApplicationRecord def reload super - reload_jekyll! + site.self end def configuration From 61e20a3a133304615b9fdeb81be68f4c2d2aaeaa Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 7 Dec 2023 16:05:20 +0100 Subject: [PATCH 002/150] fix: corregido metodo Reload en site.rb #14700 --- app/models/site.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/site.rb b/app/models/site.rb index 10a5e27b..507b51ec 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -395,8 +395,10 @@ class Site < ApplicationRecord end def reload - super - site.self + super.tap do |s| + reload_jekyll! + end + self end def configuration From c66a7660c10c551bba8c6981a201530feb853317 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 7 Dec 2023 17:24:04 +0100 Subject: [PATCH 003/150] fix: modificado metodo Gateways_urls para que devuelva solamente links en deploy_distributed_press.rb #14550 --- app/models/deploy_distributed_press.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/deploy_distributed_press.rb b/app/models/deploy_distributed_press.rb index da8fe209..bfa43441 100644 --- a/app/models/deploy_distributed_press.rb +++ b/app/models/deploy_distributed_press.rb @@ -87,7 +87,7 @@ class DeployDistributedPress < Deploy # @return [Array] def gateway_urls remote_info.dig(:distributed_press, :links)&.values&.map do |protocol| - [ protocol[:link], protocol[:gateway] ] + [ protocol[:link]] end&.flatten&.compact&.select do |link| link.include? '://' end || [] From 3d86ad1fbefe69fcd25aefd86b4103632d3cc709 Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 10 Jan 2024 15:36:02 -0300 Subject: [PATCH 004/150] fix: quitado espacio sobrante en array #14550 --- app/models/deploy_distributed_press.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/deploy_distributed_press.rb b/app/models/deploy_distributed_press.rb index bfa43441..c74a342f 100644 --- a/app/models/deploy_distributed_press.rb +++ b/app/models/deploy_distributed_press.rb @@ -87,7 +87,7 @@ class DeployDistributedPress < Deploy # @return [Array] def gateway_urls remote_info.dig(:distributed_press, :links)&.values&.map do |protocol| - [ protocol[:link]] + [protocol[:link]] end&.flatten&.compact&.select do |link| link.include? '://' end || [] From 9ce510223e224017eb9337549f73f86bf1303faa Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jan 2024 17:37:37 -0300 Subject: [PATCH 005/150] =?UTF-8?q?feat:=20controladores=20e=20informaci?= =?UTF-8?q?=C3=B3n=20de=20prueba=20#14966?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moderation_queue_controller.rb | 375 ++++++++++++++++++ app/controllers/posts_controller.rb | 72 ++++ config/routes.rb | 4 + 3 files changed, 451 insertions(+) create mode 100644 app/controllers/moderation_queue_controller.rb diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb new file mode 100644 index 00000000..1aef226f --- /dev/null +++ b/app/controllers/moderation_queue_controller.rb @@ -0,0 +1,375 @@ +# frozen_string_literal: true + +# Cola de moderación de ActivityPub +class ModerationQueueController < ApplicationController + # Cola de moderación viendo todo el sitio + def index + @moderation_queue = [ + +{"@context"=> + ["https://www.w3.org/ns/activitystreams", + {"ostatus"=>"http://ostatus.org#", + "atomUri"=>"ostatus:atomUri", + "inReplyToAtomUri"=>"ostatus:inReplyToAtomUri", + "conversation"=>"ostatus:conversation", + "sensitive"=>"as:sensitive", + "toot"=>"http://joinmastodon.org/ns#", + "votersCount"=>"toot:votersCount", + "Hashtag"=>"as:Hashtag"}], + "id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "type"=>"Note", + "summary"=>nil, + "inReplyTo"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "published"=>"2023-11-23T22:50:10Z", + "url"=>"https://mastodon.mauve.moe/@mauve/111462305634770041", + "attributedTo"=>"https://mastodon.mauve.moe/users/mauve", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://mastodon.mauve.moe/users/mauve/followers", "https://hypha.coop/about.jsonld"], + "sensitive"=>false, + "atomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "inReplyToAtomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "conversation"=>"tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation", + "content"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

", + "contentMap"=> + {"en"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

"}, + "attachment"=>[], + "tag"=> + [{"type"=>"Mention", "href"=>"https://hypha.coop/about.jsonld", "name"=>"@dripline@hypha.coop"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/p2p", "name"=>"#p2p"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/activitypub", "name"=>"#activitypub"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/fediverse", "name"=>"#fediverse"}], + "replies"=> + {"id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "type"=>"Collection", + "first"=> + {"type"=>"CollectionPage", + "next"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true", + "partOf"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "items"=>[]}}}, +{"@context"=>["https://www.w3.org/ns/activitystreams", {"@language"=>"es", "sensitive"=>"as:sensitive"}], + "type"=>"Note", + "id"=>"https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/", + "summary"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "published"=>"2023-12-04T21:53:05+00:00", + "updated"=>"2023-12-05T20:41:34+00:00", + "attributedTo"=>"https://sutty.nl/about.jsonld", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://social.distributed.press/v1/@sutty@sutty.nl/followers"], + "inReplyTo"=>"https://hypha.coop/dripline/announcing-dp-social-inbox/", + "sensitive"=>true, + "content"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", + "name"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "contentMap"=> + {"es"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n"}, + "attachment"=> + [{"type"=>"Document", + "mediaType"=>"image/png", + "url"=>"https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png", + "name"=>"Botones de colores para activar la \"Web Disribuida\" y el \"Fediverso\"."}]} + + + ] + end + + # Perfil remoto de usuarie + def remote_profile + @remote_profile = { + '@context' => + [ + 'https://www.w3.org/ns/activitystreams', + 'https://w3id.org/security/v1', + { + 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers', + 'toot' => 'http://joinmastodon.org/ns#', + 'featured' => { '@id' => 'toot:featured', '@type' => '@id' }, + 'featuredTags' => { '@id' => 'toot:featuredTags', '@type' => '@id' }, + 'alsoKnownAs' => { '@id' => 'as:alsoKnownAs', '@type' => '@id' }, + 'movedTo' => { '@id' => 'as:movedTo', '@type' => '@id' }, + 'schema' => 'http://schema.org#', + 'PropertyValue' => 'schema:PropertyValue', + 'value' => 'schema:value', + 'discoverable' => 'toot:discoverable', + 'Device' => 'toot:Device', + 'Ed25519Signature' => 'toot:Ed25519Signature', + 'Ed25519Key' => 'toot:Ed25519Key', + 'Curve25519Key' => 'toot:Curve25519Key', + 'EncryptedMessage' => 'toot:EncryptedMessage', + 'publicKeyBase64' => 'toot:publicKeyBase64', + 'deviceId' => 'toot:deviceId', + 'claim' => { '@type' => '@id', '@id' => 'toot:claim' }, + 'fingerprintKey' => { '@type' => '@id', '@id' => 'toot:fingerprintKey' }, + 'identityKey' => { '@type' => '@id', '@id' => 'toot:identityKey' }, + 'devices' => { '@type' => '@id', '@id' => 'toot:devices' }, + 'messageFranking' => 'toot:messageFranking', + 'messageType' => 'toot:messageType', + 'cipherText' => 'toot:cipherText', + 'suspended' => 'toot:suspended', + 'focalPoint' => { '@container' => '@list', '@id' => 'toot:focalPoint' } + } + ], + 'id' => 'https://mastodon.mauve.moe/users/mauve', + 'type' => 'Person', + 'following' => 'https://mastodon.mauve.moe/users/mauve/following', + 'followers' => 'https://mastodon.mauve.moe/users/mauve/followers', + 'inbox' => 'https://mastodon.mauve.moe/users/mauve/inbox', + 'outbox' => 'https://mastodon.mauve.moe/users/mauve/outbox', + 'featured' => 'https://mastodon.mauve.moe/users/mauve/collections/featured', + 'featuredTags' => 'https://mastodon.mauve.moe/users/mauve/collections/tags', + 'preferredUsername' => 'mauve', + 'name' => 'Mauve 👁💜', + 'summary' => + '

Occult Enby that's making local-first software with peer to peer protocols, mesh networks, and the web.

Also exploring what a local-first cyberspace might look like in my spare time.

', + 'url' => 'https://mastodon.mauve.moe/@mauve', + 'manuallyApprovesFollowers' => false, + 'discoverable' => true, + 'published' => '2022-04-25T00:00:00Z', + 'devices' => 'https://mastodon.mauve.moe/users/mauve/collections/devices', + 'alsoKnownAs' => ['https://infosec.exchange/users/RangerMauve'], + 'publicKey' => + { 'id' => 'https://mastodon.mauve.moe/users/mauve#main-key', + 'owner' => 'https://mastodon.mauve.moe/users/mauve', + 'publicKeyPem' => + "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjxu6bRQOjH4caQu7JgZ\numIWFeX0ZdbVnofElev2d9JByqcDoWhmaks3RYdW71RDPNrr0JxqZvUbIw9kQBng\n7iQ9YTcXTdJ/N9CQoB22msffYkEIw4ilehCDXdchNs4aoVAUwI8IhkM0p/itz6gK\n75C3CQv74Y7rHUJC8ob2p4KUwRUyhgzyhp8QWwCAn/RZ28wP8EbjWF9IskMRo9vq\nWUX+Io6hpADRkSwZGoOSW2zxCEBVco6tRmABTte8I0WcAucLyMEyfGMlUvxRew4D\nzAWoEBS8SyqM68vUabbZYLns6kya34tvsf1NkvajDGrfgU3D0LlGX++tOa6N9Pkf\nXwIDAQAB\n-----END PUBLIC KEY-----\n" }, + 'tag' => [], + 'attachment' => + [{ 'type' => 'PropertyValue', 'name' => 'Pronouns', 'value' => 'they/them/it' }, + { 'type' => 'PropertyValue', 'name' => 'Email', 'value' => 'mauve@mauve.moe' }, + { 'type' => 'PropertyValue', + 'name' => 'Matrix', + 'value' => + '@mauve:mauve.moe' }, + { 'type' => 'PropertyValue', 'name' => 'Github/Twitter', 'value' => '@RangerMauve' }], + 'endpoints' => { 'sharedInbox' => 'https://mastodon.mauve.moe/inbox' }, + 'icon' => + { 'type' => 'Image', + 'mediaType' => 'image/png', + 'url' => 'https://mastodon.mauve.moe/system/accounts/avatars/000/000/002/original/e4b910cee121b1b8.png' }, + 'image' => + { 'type' => 'Image', + 'mediaType' => 'image/png', + 'url' => 'https://mastodon.mauve.moe/system/accounts/headers/000/000/002/original/a96f990025091662.png' } + } + end + + # todon.nl está usando /api/v2/instance + # mauve.moe usa /api/v1/instance + def instances + @instances = [ +{"domain"=>"todon.nl", + "title"=>"Todon.nl", + "version"=>"4.2.3", + "source_url"=>"https://github.com/mastodon/mastodon", + "description"=> + "Radicaal linkse anti-autoritaire server. Voor anarchisten, socialisten, (klimaat)activisten, LHBTQIA+, antiracisten, antifascisten, antikapitalisten, intersectionelen, veganisten, mensenrechten, enz.", + "usage"=>{"users"=>{"active_month"=>372}}, + "thumbnail"=> + {"url"=>"https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png", + "blurhash"=>"UXAw3zN4M|xsoga#WBay9DxntQRmITocofWE", + "versions"=> + {"@1x"=>"https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png", + "@2x"=>"https://todon.nl/system/site_uploads/files/000/000/004/@2x/297e509bc8a81f62.png"}}, + "languages"=>["en"], + "configuration"=> + {"urls"=>{"streaming"=>"wss://todon.nl", "status"=>"https://status.todon.eu"}, + "accounts"=>{"max_featured_tags"=>10}, + "statuses"=>{"max_characters"=>1312, "max_media_attachments"=>4, "characters_reserved_per_url"=>23}, + "media_attachments"=> + {"supported_mime_types"=> + ["image/jpeg", + "image/png", + "image/gif", + "image/heic", + "image/heif", + "image/webp", + "image/avif", + "video/webm", + "video/mp4", + "video/quicktime", + "video/ogg", + "audio/wave", + "audio/wav", + "audio/x-wav", + "audio/x-pn-wave", + "audio/vnd.wave", + "audio/ogg", + "audio/vorbis", + "audio/mpeg", + "audio/mp3", + "audio/webm", + "audio/flac", + "audio/aac", + "audio/m4a", + "audio/x-m4a", + "audio/mp4", + "audio/3gpp", + "video/x-ms-asf"], + "image_size_limit"=>16777216, + "image_matrix_limit"=>33177600, + "video_size_limit"=>103809024, + "video_frame_rate_limit"=>120, + "video_matrix_limit"=>8294400}, + "polls"=>{"max_options"=>4, "max_characters_per_option"=>50, "min_expiration"=>300, "max_expiration"=>2629746}, + "translation"=>{"enabled"=>true}}, + "registrations"=> + {"enabled"=>false, + "approval_required"=>false, + "message"=> + "

¡No pasarán!

\n\n

Je kunt tijdelijk geen nieuw account op Todon.nl aanvragen.

\n\n\n\n

Ga naar joinmastodon.org of FediDB Network om een andere server te vinden.

\n\n

It is temporary not possible to request on account on Todon.nl.

\n\n\n\n

Go to joinmastodon.org or FediDB Network to find another server.

\n", + "url"=>nil}, + "max_toot_chars"=>1312, + "contact"=> + {"email"=>"todon@posteo.eu", + "account"=> + {"id"=>"1", + "username"=>"admin", + "acct"=>"admin", + "display_name"=>"Admin 🤓 Todon.nl (mod)", + "locked"=>false, + "bot"=>false, + "discoverable"=>false, + "group"=>false, + "created_at"=>"2017-04-28T00:00:00.000Z", + "note"=> + "

This account is used for 🎙 Todon.nl announcements and ⚖️ moderation.

🚫 Don't follow this account when you are not on Todon.nl.

New? First read our 👩‍🏫 Todon 101 👩‍🎓 at https://wiki.todon.eu/todon/101

⚖️ For all our moderators go to https://wiki.todon.nl/todon/moderators

📝 Public toots from this account are in English.

🔕 Criticism is fine, but people who do false accusations are muted.

✉ todon@posteo.eu

#nobot

", + "url"=>"https://todon.nl/@admin", + "uri"=>"https://todon.nl/users/admin", + "avatar"=>"https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png", + "avatar_static"=>"https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png", + "header"=>"https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png", + "header_static"=>"https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png", + "followers_count"=>3164, + "following_count"=>8, + "statuses_count"=>724, + "last_status_at"=>"2024-01-12", + "noindex"=>true, + "emojis"=>[], + "roles"=>[{"id"=>"3", "name"=>"Admin", "color"=>"#595aff"}], + "fields"=> + [{"name"=>"📜 Terms of Service", + "value"=> + "https://wiki.todon.nl/todon/terms_en", + "verified_at"=>"2018-11-01T14:39:45.465+00:00"}, + {"name"=>"ℹ️ Wiki", + "value"=> + "https://wiki.todon.nl/todon/information", + "verified_at"=>"2018-11-01T14:40:54.679+00:00"}, + {"name"=>"📊 Status", + "value"=> + "https://status.todon.eu", + "verified_at"=>"2023-10-26T20:38:30.185+00:00"}, + {"name"=>"💳️ Donations", + "value"=> + "https://wiki.todon.eu/todon/donations", + "verified_at"=>"2022-11-02T00:06:31.865+00:00"}]}}, + "rules"=> + [{"id"=>"1", + "text"=> + "We do not accept racism (in all its forms, incl. hate against Muslims, antisemitism, apartheid and casteism - see our Terms of Service for our complete definition)."}, + {"id"=>"2", + "text"=> + "We do not accept hate against lesbians, gays, bisexuals, pansexuals, transgenders, non-binary people, intersexual people, queer people in general, etc."}, + {"id"=>"4", "text"=>"Sexism, misogyny and hate against black women (misogynoir)."}, + {"id"=>"6", "text"=>"We do not accept ableism (incl. COVID-19 denial/downplaying and anti-vax) and body-shaming."}, + {"id"=>"8", "text"=>"We do not accept harassment and trolling."}, + {"id"=>"10", "text"=>"We also do not accept other forms of hate speech."}, + {"id"=>"11", "text"=>"We do not accept (sexual) abuse of minors, adults and animals (also not virtual)."}, + {"id"=>"13", "text"=>"We do not accept glorification of violence, calls for murder, death threats, terrorism and militarism."}, + {"id"=>"15", + "text"=> + "We do not accept (neo)colonialism (incl. Zionism), imperialism in all forms and nationalism (above all nationalism of nation states, incl. flags/symbols of those on Todon.*, see our Terms of Service)."}, + {"id"=>"16", "text"=>"We do not accept fascism, right-wing populism, and right-wing and religious extremism."}, + {"id"=>"17", + "text"=>"We do not accept evangelisation and other forms of religious propaganda [local only], and extreme sects and cults."}, + {"id"=>"19", + "text"=> + "We do not accept Marxist-Leninists, Stalinists, Maoists or other followers of extreme authoritarian (so called) communist/socialist ideologies/regimes (aka tankies)."}, + {"id"=>"20", "text"=>"We do not accept capitalists, including so called 'anarcho-capitalists' (aka ancaps) and neoliberals."}, + {"id"=>"21", + "text"=> + "We do not accept anthropogenic climate change denial, downplaying the climate crisis, greenwashing and deceptive climate solutions (like nuclear energy)."}, + {"id"=>"27", "text"=>"We do not accept (right-wing) conspiracy 'theories', hoaxes, fake news and other forms of disinformation."}, + {"id"=>"28", "text"=>"Another rule in our terms of service at wiki.todon.eu/todon/terms_en. Explain in the final step."}]}, +{"uri"=>"mastodon.mauve.moe", + "title"=>"Mauvestodon", + "short_description"=>"Escape ship from centralized social media run by Mauve.", + "description"=>"Chat about random techie and anarchist stuff.", + "email"=>"contact@mauve.moe", + "version"=>"3.5.10", + "urls"=>{"streaming_api"=>"wss://mastodon.mauve.moe"}, + "stats"=>{"user_count"=>12, "status_count"=>3287, "domain_count"=>11625}, + "thumbnail"=>"https://mastodon.mauve.moe/system/site_uploads/files/000/000/001/original/mauvesoftwareinc.png", + "languages"=>["en"], + "registrations"=>false, + "approval_required"=>false, + "invites_enabled"=>true, + "configuration"=> + {"statuses"=>{"max_characters"=>500, "max_media_attachments"=>4, "characters_reserved_per_url"=>23}, + "media_attachments"=> + {"supported_mime_types"=> + ["image/jpeg", + "image/png", + "image/gif", + "video/webm", + "video/mp4", + "video/quicktime", + "video/ogg", + "audio/wave", + "audio/wav", + "audio/x-wav", + "audio/x-pn-wave", + "audio/ogg", + "audio/vorbis", + "audio/mpeg", + "audio/mp3", + "audio/webm", + "audio/flac", + "audio/aac", + "audio/m4a", + "audio/x-m4a", + "audio/mp4", + "audio/3gpp", + "video/x-ms-asf"], + "image_size_limit"=>10485760, + "image_matrix_limit"=>16777216, + "video_size_limit"=>41943040, + "video_frame_rate_limit"=>60, + "video_matrix_limit"=>2304000}, + "polls"=>{"max_options"=>4, "max_characters_per_option"=>50, "min_expiration"=>300, "max_expiration"=>2629746}}, + "contact_account"=> + {"id"=>"1", + "username"=>"admin", + "acct"=>"admin", + "display_name"=>"", + "locked"=>false, + "bot"=>false, + "discoverable"=>true, + "group"=>false, + "created_at"=>"2022-04-25T00:00:00.000Z", + "note"=>"", + "url"=>"https://mastodon.mauve.moe/@admin", + "avatar"=>"https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png", + "avatar_static"=>"https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png", + "header"=>"https://mastodon.mauve.moe/headers/original/missing.png", + "header_static"=>"https://mastodon.mauve.moe/headers/original/missing.png", + "followers_count"=>0, + "following_count"=>0, + "statuses_count"=>0, + "last_status_at"=>"2023-01-30", + "emojis"=>[], + "fields"=> + [{"name"=>"Alternatel Contact", + "value"=> + "@mauve", + "verified_at"=>nil}]}, + "rules"=>[]} + + + + ] + + end +end diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 057c3068..8b4d975f 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -81,6 +81,78 @@ class PostsController < ApplicationController authorize post breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' + + @moderation_queue = [ + +{"@context"=> + ["https://www.w3.org/ns/activitystreams", + {"ostatus"=>"http://ostatus.org#", + "atomUri"=>"ostatus:atomUri", + "inReplyToAtomUri"=>"ostatus:inReplyToAtomUri", + "conversation"=>"ostatus:conversation", + "sensitive"=>"as:sensitive", + "toot"=>"http://joinmastodon.org/ns#", + "votersCount"=>"toot:votersCount", + "Hashtag"=>"as:Hashtag"}], + "id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "type"=>"Note", + "summary"=>nil, + "inReplyTo"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "published"=>"2023-11-23T22:50:10Z", + "url"=>"https://mastodon.mauve.moe/@mauve/111462305634770041", + "attributedTo"=>"https://mastodon.mauve.moe/users/mauve", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://mastodon.mauve.moe/users/mauve/followers", "https://hypha.coop/about.jsonld"], + "sensitive"=>false, + "atomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "inReplyToAtomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "conversation"=>"tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation", + "content"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

", + "contentMap"=> + {"en"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

"}, + "attachment"=>[], + "tag"=> + [{"type"=>"Mention", "href"=>"https://hypha.coop/about.jsonld", "name"=>"@dripline@hypha.coop"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/p2p", "name"=>"#p2p"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/activitypub", "name"=>"#activitypub"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/fediverse", "name"=>"#fediverse"}], + "replies"=> + {"id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "type"=>"Collection", + "first"=> + {"type"=>"CollectionPage", + "next"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true", + "partOf"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "items"=>[]}}}, +{"@context"=>["https://www.w3.org/ns/activitystreams", {"@language"=>"es", "sensitive"=>"as:sensitive"}], + "type"=>"Note", + "id"=>"https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/", + "summary"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "published"=>"2023-12-04T21:53:05+00:00", + "updated"=>"2023-12-05T20:41:34+00:00", + "attributedTo"=>"https://sutty.nl/about.jsonld", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://social.distributed.press/v1/@sutty@sutty.nl/followers"], + "inReplyTo"=>"https://hypha.coop/dripline/announcing-dp-social-inbox/", + "sensitive"=>true, + "content"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", + "name"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "contentMap"=> + {"es"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n"}, + "attachment"=> + [{"type"=>"Document", + "mediaType"=>"image/png", + "url"=>"https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png", + "name"=>"Botones de colores para activar la \"Web Disribuida\" y el \"Fediverso\"."}]} + + + ] + + end def update diff --git a/config/routes.rb b/config/routes.rb index 635be07a..664a4ab3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -50,6 +50,10 @@ Rails.application.routes.draw do get 'collaborate', to: 'collaborations#collaborate' post 'collaborate', to: 'collaborations#accept_collaboration' + get 'moderation_queue', to: 'moderation_queue#index' + get 'remote_profile', to: 'moderation_queue#remote_profile' + get 'instances', to: 'moderation_queue#instances' + # Gestionar artículos según idioma nested do scope '/(:locale)', constraint: /[a-z]{2}(-[A-Z]{2})?/ do From 6efae5f8f0448b68107e95092a15c8933c19c5b8 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jan 2024 17:37:56 -0300 Subject: [PATCH 006/150] feat: correr rubocop y haml-lint sobre los archivos --- Taskfile.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Taskfile.yaml b/Taskfile.yaml index c2d72472..735724f5 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -183,3 +183,15 @@ tasks: - "{{.HAINISH}} gem install bundler-audit" status: - "test -f ../hain/usr/bin/bundler-audit" + rubocop: + desc: "Ruby linting. Call with: go-task rubocop -- -A file.rb" + cmds: + - task: "bundle" + vars: + CLI_ARGS: "exec rubocop {{.CLI_ARGS}}" + haml-lint: + desc: "HAML linting. Call with: go-task haml-lint -- file.haml" + cmds: + - task: "bundle" + vars: + CLI_ARGS: "exec haml-lint {{.CLI_ARGS}}" From e20ef9dd21b75896849ee2279fc2fa2fc3043a2a Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jan 2024 17:44:26 -0300 Subject: [PATCH 007/150] feat: no es necesario pasar los archivos como parametros --- .gitlab-ci.yml | 4 ++-- Taskfile.yaml | 12 ++++-------- bin/modified_files | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cb2766d3..9718e770 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,7 +85,7 @@ rubocop: - *apk-add - *disable-hainish script: - - "./bin/modified_files | ./bin/with_extension rb | xargs -r go-task bundle -- exec rubocop" + - "go-task rubocop" haml: stage: "test" cache: @@ -96,4 +96,4 @@ haml: - *apk-add - *disable-hainish script: - - "./bin/modified_files | ./bin/with_extension haml | xargs -r go-task bundle -- exec haml-lint" + - "go-task haml-lint" diff --git a/Taskfile.yaml b/Taskfile.yaml index 735724f5..57fb0238 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -184,14 +184,10 @@ tasks: status: - "test -f ../hain/usr/bin/bundler-audit" rubocop: - desc: "Ruby linting. Call with: go-task rubocop -- -A file.rb" + desc: "Ruby linting" cmds: - - task: "bundle" - vars: - CLI_ARGS: "exec rubocop {{.CLI_ARGS}}" + - "./bin/modified_files | ./bin/with_extension rb | xargs -r {{.HAINISH}} bundle exec rubocop {{.CLI_ARGS}}" haml-lint: - desc: "HAML linting. Call with: go-task haml-lint -- file.haml" + desc: "HAML linting" cmds: - - task: "bundle" - vars: - CLI_ARGS: "exec haml-lint {{.CLI_ARGS}}" + - "./bin/modified_files | ./bin/with_extension haml | xargs -r {{.HAINISH}} bundle exec haml-lint {{.CLI_ARGS}}" diff --git a/bin/modified_files b/bin/modified_files index d26e71f3..4d06b4c5 100755 --- a/bin/modified_files +++ b/bin/modified_files @@ -1,7 +1,7 @@ #!/bin/sh set -e -test -n "${CI_MERGE_REQUEST_DIFF_BASE_SHA}" +CI_MERGE_REQUEST_DIFF_BASE_SHA="${CI_MERGE_REQUEST_DIFF_BASE_SHA:-origin/rails}" git diff --name-status ${CI_MERGE_REQUEST_DIFF_BASE_SHA} \ | grep -v "^D" \ From decbd2fb52a82f38dedf4e01f5e5d66075457115 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jan 2024 17:44:49 -0300 Subject: [PATCH 008/150] chore: rubocop --- .../moderation_queue_controller.rb | 555 +++++++++--------- app/controllers/posts_controller.rb | 131 ++--- 2 files changed, 344 insertions(+), 342 deletions(-) diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb index 1aef226f..6d58baf0 100644 --- a/app/controllers/moderation_queue_controller.rb +++ b/app/controllers/moderation_queue_controller.rb @@ -6,71 +6,70 @@ class ModerationQueueController < ApplicationController def index @moderation_queue = [ -{"@context"=> - ["https://www.w3.org/ns/activitystreams", - {"ostatus"=>"http://ostatus.org#", - "atomUri"=>"ostatus:atomUri", - "inReplyToAtomUri"=>"ostatus:inReplyToAtomUri", - "conversation"=>"ostatus:conversation", - "sensitive"=>"as:sensitive", - "toot"=>"http://joinmastodon.org/ns#", - "votersCount"=>"toot:votersCount", - "Hashtag"=>"as:Hashtag"}], - "id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", - "type"=>"Note", - "summary"=>nil, - "inReplyTo"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", - "published"=>"2023-11-23T22:50:10Z", - "url"=>"https://mastodon.mauve.moe/@mauve/111462305634770041", - "attributedTo"=>"https://mastodon.mauve.moe/users/mauve", - "to"=>["https://www.w3.org/ns/activitystreams#Public"], - "cc"=>["https://mastodon.mauve.moe/users/mauve/followers", "https://hypha.coop/about.jsonld"], - "sensitive"=>false, - "atomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", - "inReplyToAtomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", - "conversation"=>"tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation", - "content"=> - "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

", - "contentMap"=> - {"en"=> - "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

"}, - "attachment"=>[], - "tag"=> - [{"type"=>"Mention", "href"=>"https://hypha.coop/about.jsonld", "name"=>"@dripline@hypha.coop"}, - {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/p2p", "name"=>"#p2p"}, - {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/activitypub", "name"=>"#activitypub"}, - {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/fediverse", "name"=>"#fediverse"}], - "replies"=> - {"id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", - "type"=>"Collection", - "first"=> - {"type"=>"CollectionPage", - "next"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true", - "partOf"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", - "items"=>[]}}}, -{"@context"=>["https://www.w3.org/ns/activitystreams", {"@language"=>"es", "sensitive"=>"as:sensitive"}], - "type"=>"Note", - "id"=>"https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/", - "summary"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", - "published"=>"2023-12-04T21:53:05+00:00", - "updated"=>"2023-12-05T20:41:34+00:00", - "attributedTo"=>"https://sutty.nl/about.jsonld", - "to"=>["https://www.w3.org/ns/activitystreams#Public"], - "cc"=>["https://social.distributed.press/v1/@sutty@sutty.nl/followers"], - "inReplyTo"=>"https://hypha.coop/dripline/announcing-dp-social-inbox/", - "sensitive"=>true, - "content"=> - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", - "name"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", - "contentMap"=> - {"es"=> - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n"}, - "attachment"=> - [{"type"=>"Document", - "mediaType"=>"image/png", - "url"=>"https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png", - "name"=>"Botones de colores para activar la \"Web Disribuida\" y el \"Fediverso\"."}]} - + { '@context' => + ['https://www.w3.org/ns/activitystreams', + { 'ostatus' => 'http://ostatus.org#', + 'atomUri' => 'ostatus:atomUri', + 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri', + 'conversation' => 'ostatus:conversation', + 'sensitive' => 'as:sensitive', + 'toot' => 'http://joinmastodon.org/ns#', + 'votersCount' => 'toot:votersCount', + 'Hashtag' => 'as:Hashtag' }], + 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', + 'type' => 'Note', + 'summary' => nil, + 'inReplyTo' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', + 'published' => '2023-11-23T22:50:10Z', + 'url' => 'https://mastodon.mauve.moe/@mauve/111462305634770041', + 'attributedTo' => 'https://mastodon.mauve.moe/users/mauve', + 'to' => ['https://www.w3.org/ns/activitystreams#Public'], + 'cc' => ['https://mastodon.mauve.moe/users/mauve/followers', 'https://hypha.coop/about.jsonld'], + 'sensitive' => false, + 'atomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', + 'inReplyToAtomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', + 'conversation' => 'tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation', + 'content' => + '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

', + 'contentMap' => + { 'en' => + '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

' }, + 'attachment' => [], + 'tag' => + [{ 'type' => 'Mention', 'href' => 'https://hypha.coop/about.jsonld', 'name' => '@dripline@hypha.coop' }, + { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/p2p', 'name' => '#p2p' }, + { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/activitypub', 'name' => '#activitypub' }, + { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/fediverse', 'name' => '#fediverse' }], + 'replies' => + { 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', + 'type' => 'Collection', + 'first' => + { 'type' => 'CollectionPage', + 'next' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true', + 'partOf' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', + 'items' => [] } } }, + { '@context' => ['https://www.w3.org/ns/activitystreams', { '@language' => 'es', 'sensitive' => 'as:sensitive' }], + 'type' => 'Note', + 'id' => 'https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/', + 'summary' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', + 'published' => '2023-12-04T21:53:05+00:00', + 'updated' => '2023-12-05T20:41:34+00:00', + 'attributedTo' => 'https://sutty.nl/about.jsonld', + 'to' => ['https://www.w3.org/ns/activitystreams#Public'], + 'cc' => ['https://social.distributed.press/v1/@sutty@sutty.nl/followers'], + 'inReplyTo' => 'https://hypha.coop/dripline/announcing-dp-social-inbox/', + 'sensitive' => true, + 'content' => + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", + 'name' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', + 'contentMap' => + { 'es' => + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n" }, + 'attachment' => + [{ 'type' => 'Document', + 'mediaType' => 'image/png', + 'url' => 'https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png', + 'name' => 'Botones de colores para activar la "Web Disribuida" y el "Fediverso".' }] } ] end @@ -159,217 +158,223 @@ class ModerationQueueController < ApplicationController # mauve.moe usa /api/v1/instance def instances @instances = [ -{"domain"=>"todon.nl", - "title"=>"Todon.nl", - "version"=>"4.2.3", - "source_url"=>"https://github.com/mastodon/mastodon", - "description"=> - "Radicaal linkse anti-autoritaire server. Voor anarchisten, socialisten, (klimaat)activisten, LHBTQIA+, antiracisten, antifascisten, antikapitalisten, intersectionelen, veganisten, mensenrechten, enz.", - "usage"=>{"users"=>{"active_month"=>372}}, - "thumbnail"=> - {"url"=>"https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png", - "blurhash"=>"UXAw3zN4M|xsoga#WBay9DxntQRmITocofWE", - "versions"=> - {"@1x"=>"https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png", - "@2x"=>"https://todon.nl/system/site_uploads/files/000/000/004/@2x/297e509bc8a81f62.png"}}, - "languages"=>["en"], - "configuration"=> - {"urls"=>{"streaming"=>"wss://todon.nl", "status"=>"https://status.todon.eu"}, - "accounts"=>{"max_featured_tags"=>10}, - "statuses"=>{"max_characters"=>1312, "max_media_attachments"=>4, "characters_reserved_per_url"=>23}, - "media_attachments"=> - {"supported_mime_types"=> - ["image/jpeg", - "image/png", - "image/gif", - "image/heic", - "image/heif", - "image/webp", - "image/avif", - "video/webm", - "video/mp4", - "video/quicktime", - "video/ogg", - "audio/wave", - "audio/wav", - "audio/x-wav", - "audio/x-pn-wave", - "audio/vnd.wave", - "audio/ogg", - "audio/vorbis", - "audio/mpeg", - "audio/mp3", - "audio/webm", - "audio/flac", - "audio/aac", - "audio/m4a", - "audio/x-m4a", - "audio/mp4", - "audio/3gpp", - "video/x-ms-asf"], - "image_size_limit"=>16777216, - "image_matrix_limit"=>33177600, - "video_size_limit"=>103809024, - "video_frame_rate_limit"=>120, - "video_matrix_limit"=>8294400}, - "polls"=>{"max_options"=>4, "max_characters_per_option"=>50, "min_expiration"=>300, "max_expiration"=>2629746}, - "translation"=>{"enabled"=>true}}, - "registrations"=> - {"enabled"=>false, - "approval_required"=>false, - "message"=> - "

¡No pasarán!

\n\n

Je kunt tijdelijk geen nieuw account op Todon.nl aanvragen.

\n\n\n\n

Ga naar joinmastodon.org of FediDB Network om een andere server te vinden.

\n\n

It is temporary not possible to request on account on Todon.nl.

\n\n\n\n

Go to joinmastodon.org or FediDB Network to find another server.

\n", - "url"=>nil}, - "max_toot_chars"=>1312, - "contact"=> - {"email"=>"todon@posteo.eu", - "account"=> - {"id"=>"1", - "username"=>"admin", - "acct"=>"admin", - "display_name"=>"Admin 🤓 Todon.nl (mod)", - "locked"=>false, - "bot"=>false, - "discoverable"=>false, - "group"=>false, - "created_at"=>"2017-04-28T00:00:00.000Z", - "note"=> - "

This account is used for 🎙 Todon.nl announcements and ⚖️ moderation.

🚫 Don't follow this account when you are not on Todon.nl.

New? First read our 👩‍🏫 Todon 101 👩‍🎓 at https://wiki.todon.eu/todon/101

⚖️ For all our moderators go to https://wiki.todon.nl/todon/moderators

📝 Public toots from this account are in English.

🔕 Criticism is fine, but people who do false accusations are muted.

✉ todon@posteo.eu

#nobot

", - "url"=>"https://todon.nl/@admin", - "uri"=>"https://todon.nl/users/admin", - "avatar"=>"https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png", - "avatar_static"=>"https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png", - "header"=>"https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png", - "header_static"=>"https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png", - "followers_count"=>3164, - "following_count"=>8, - "statuses_count"=>724, - "last_status_at"=>"2024-01-12", - "noindex"=>true, - "emojis"=>[], - "roles"=>[{"id"=>"3", "name"=>"Admin", "color"=>"#595aff"}], - "fields"=> - [{"name"=>"📜 Terms of Service", - "value"=> - "https://wiki.todon.nl/todon/terms_en", - "verified_at"=>"2018-11-01T14:39:45.465+00:00"}, - {"name"=>"ℹ️ Wiki", - "value"=> - "https://wiki.todon.nl/todon/information", - "verified_at"=>"2018-11-01T14:40:54.679+00:00"}, - {"name"=>"📊 Status", - "value"=> - "https://status.todon.eu", - "verified_at"=>"2023-10-26T20:38:30.185+00:00"}, - {"name"=>"💳️ Donations", - "value"=> - "https://wiki.todon.eu/todon/donations", - "verified_at"=>"2022-11-02T00:06:31.865+00:00"}]}}, - "rules"=> - [{"id"=>"1", - "text"=> - "We do not accept racism (in all its forms, incl. hate against Muslims, antisemitism, apartheid and casteism - see our Terms of Service for our complete definition)."}, - {"id"=>"2", - "text"=> - "We do not accept hate against lesbians, gays, bisexuals, pansexuals, transgenders, non-binary people, intersexual people, queer people in general, etc."}, - {"id"=>"4", "text"=>"Sexism, misogyny and hate against black women (misogynoir)."}, - {"id"=>"6", "text"=>"We do not accept ableism (incl. COVID-19 denial/downplaying and anti-vax) and body-shaming."}, - {"id"=>"8", "text"=>"We do not accept harassment and trolling."}, - {"id"=>"10", "text"=>"We also do not accept other forms of hate speech."}, - {"id"=>"11", "text"=>"We do not accept (sexual) abuse of minors, adults and animals (also not virtual)."}, - {"id"=>"13", "text"=>"We do not accept glorification of violence, calls for murder, death threats, terrorism and militarism."}, - {"id"=>"15", - "text"=> - "We do not accept (neo)colonialism (incl. Zionism), imperialism in all forms and nationalism (above all nationalism of nation states, incl. flags/symbols of those on Todon.*, see our Terms of Service)."}, - {"id"=>"16", "text"=>"We do not accept fascism, right-wing populism, and right-wing and religious extremism."}, - {"id"=>"17", - "text"=>"We do not accept evangelisation and other forms of religious propaganda [local only], and extreme sects and cults."}, - {"id"=>"19", - "text"=> - "We do not accept Marxist-Leninists, Stalinists, Maoists or other followers of extreme authoritarian (so called) communist/socialist ideologies/regimes (aka tankies)."}, - {"id"=>"20", "text"=>"We do not accept capitalists, including so called 'anarcho-capitalists' (aka ancaps) and neoliberals."}, - {"id"=>"21", - "text"=> - "We do not accept anthropogenic climate change denial, downplaying the climate crisis, greenwashing and deceptive climate solutions (like nuclear energy)."}, - {"id"=>"27", "text"=>"We do not accept (right-wing) conspiracy 'theories', hoaxes, fake news and other forms of disinformation."}, - {"id"=>"28", "text"=>"Another rule in our terms of service at wiki.todon.eu/todon/terms_en. Explain in the final step."}]}, -{"uri"=>"mastodon.mauve.moe", - "title"=>"Mauvestodon", - "short_description"=>"Escape ship from centralized social media run by Mauve.", - "description"=>"Chat about random techie and anarchist stuff.", - "email"=>"contact@mauve.moe", - "version"=>"3.5.10", - "urls"=>{"streaming_api"=>"wss://mastodon.mauve.moe"}, - "stats"=>{"user_count"=>12, "status_count"=>3287, "domain_count"=>11625}, - "thumbnail"=>"https://mastodon.mauve.moe/system/site_uploads/files/000/000/001/original/mauvesoftwareinc.png", - "languages"=>["en"], - "registrations"=>false, - "approval_required"=>false, - "invites_enabled"=>true, - "configuration"=> - {"statuses"=>{"max_characters"=>500, "max_media_attachments"=>4, "characters_reserved_per_url"=>23}, - "media_attachments"=> - {"supported_mime_types"=> - ["image/jpeg", - "image/png", - "image/gif", - "video/webm", - "video/mp4", - "video/quicktime", - "video/ogg", - "audio/wave", - "audio/wav", - "audio/x-wav", - "audio/x-pn-wave", - "audio/ogg", - "audio/vorbis", - "audio/mpeg", - "audio/mp3", - "audio/webm", - "audio/flac", - "audio/aac", - "audio/m4a", - "audio/x-m4a", - "audio/mp4", - "audio/3gpp", - "video/x-ms-asf"], - "image_size_limit"=>10485760, - "image_matrix_limit"=>16777216, - "video_size_limit"=>41943040, - "video_frame_rate_limit"=>60, - "video_matrix_limit"=>2304000}, - "polls"=>{"max_options"=>4, "max_characters_per_option"=>50, "min_expiration"=>300, "max_expiration"=>2629746}}, - "contact_account"=> - {"id"=>"1", - "username"=>"admin", - "acct"=>"admin", - "display_name"=>"", - "locked"=>false, - "bot"=>false, - "discoverable"=>true, - "group"=>false, - "created_at"=>"2022-04-25T00:00:00.000Z", - "note"=>"", - "url"=>"https://mastodon.mauve.moe/@admin", - "avatar"=>"https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png", - "avatar_static"=>"https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png", - "header"=>"https://mastodon.mauve.moe/headers/original/missing.png", - "header_static"=>"https://mastodon.mauve.moe/headers/original/missing.png", - "followers_count"=>0, - "following_count"=>0, - "statuses_count"=>0, - "last_status_at"=>"2023-01-30", - "emojis"=>[], - "fields"=> - [{"name"=>"Alternatel Contact", - "value"=> - "@mauve", - "verified_at"=>nil}]}, - "rules"=>[]} - - + { 'domain' => 'todon.nl', + 'title' => 'Todon.nl', + 'version' => '4.2.3', + 'source_url' => 'https://github.com/mastodon/mastodon', + 'description' => + 'Radicaal linkse anti-autoritaire server. Voor anarchisten, socialisten, (klimaat)activisten, LHBTQIA+, antiracisten, antifascisten, antikapitalisten, intersectionelen, veganisten, mensenrechten, enz.', + 'usage' => { 'users' => { 'active_month' => 372 } }, + 'thumbnail' => + { 'url' => 'https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png', + 'blurhash' => 'UXAw3zN4M|xsoga#WBay9DxntQRmITocofWE', + 'versions' => + { '@1x' => 'https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png', + '@2x' => 'https://todon.nl/system/site_uploads/files/000/000/004/@2x/297e509bc8a81f62.png' } }, + 'languages' => ['en'], + 'configuration' => + { 'urls' => { 'streaming' => 'wss://todon.nl', 'status' => 'https://status.todon.eu' }, + 'accounts' => { 'max_featured_tags' => 10 }, + 'statuses' => { 'max_characters' => 1312, 'max_media_attachments' => 4, 'characters_reserved_per_url' => 23 }, + 'media_attachments' => + { 'supported_mime_types' => + ['image/jpeg', + 'image/png', + 'image/gif', + 'image/heic', + 'image/heif', + 'image/webp', + 'image/avif', + 'video/webm', + 'video/mp4', + 'video/quicktime', + 'video/ogg', + 'audio/wave', + 'audio/wav', + 'audio/x-wav', + 'audio/x-pn-wave', + 'audio/vnd.wave', + 'audio/ogg', + 'audio/vorbis', + 'audio/mpeg', + 'audio/mp3', + 'audio/webm', + 'audio/flac', + 'audio/aac', + 'audio/m4a', + 'audio/x-m4a', + 'audio/mp4', + 'audio/3gpp', + 'video/x-ms-asf'], + 'image_size_limit' => 16_777_216, + 'image_matrix_limit' => 33_177_600, + 'video_size_limit' => 103_809_024, + 'video_frame_rate_limit' => 120, + 'video_matrix_limit' => 8_294_400 }, + 'polls' => { 'max_options' => 4, 'max_characters_per_option' => 50, 'min_expiration' => 300, + 'max_expiration' => 2_629_746 }, + 'translation' => { 'enabled' => true } }, + 'registrations' => + { 'enabled' => false, + 'approval_required' => false, + 'message' => + "

¡No pasarán!

\n\n

Je kunt tijdelijk geen nieuw account op Todon.nl aanvragen.

\n\n\n\n

Ga naar joinmastodon.org of FediDB Network om een andere server te vinden.

\n\n

It is temporary not possible to request on account on Todon.nl.

\n\n\n\n

Go to joinmastodon.org or FediDB Network to find another server.

\n", + 'url' => nil }, + 'max_toot_chars' => 1312, + 'contact' => + { 'email' => 'todon@posteo.eu', + 'account' => + { 'id' => '1', + 'username' => 'admin', + 'acct' => 'admin', + 'display_name' => 'Admin 🤓 Todon.nl (mod)', + 'locked' => false, + 'bot' => false, + 'discoverable' => false, + 'group' => false, + 'created_at' => '2017-04-28T00:00:00.000Z', + 'note' => + '

This account is used for 🎙 Todon.nl announcements and ⚖️ moderation.

🚫 Don't follow this account when you are not on Todon.nl.

New? First read our 👩‍🏫 Todon 101 👩‍🎓 at wiki.todon.eu/todon/101

⚖️ For all our moderators go to wiki.todon.nl/todon/moderators

📝 Public toots from this account are in English.

🔕 Criticism is fine, but people who do false accusations are muted.

✉ todon@posteo.eu

', + 'url' => 'https://todon.nl/@admin', + 'uri' => 'https://todon.nl/users/admin', + 'avatar' => 'https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png', + 'avatar_static' => 'https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png', + 'header' => 'https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png', + 'header_static' => 'https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png', + 'followers_count' => 3164, + 'following_count' => 8, + 'statuses_count' => 724, + 'last_status_at' => '2024-01-12', + 'noindex' => true, + 'emojis' => [], + 'roles' => [{ 'id' => '3', 'name' => 'Admin', 'color' => '#595aff' }], + 'fields' => + [{ 'name' => '📜 Terms of Service', + 'value' => + 'wiki.todon.nl/todon/terms_en', + 'verified_at' => '2018-11-01T14:39:45.465+00:00' }, + { 'name' => 'ℹ️ Wiki', + 'value' => + 'wiki.todon.nl/todon/informatio', + 'verified_at' => '2018-11-01T14:40:54.679+00:00' }, + { 'name' => '📊 Status', + 'value' => + 'status.todon.eu', + 'verified_at' => '2023-10-26T20:38:30.185+00:00' }, + { 'name' => '💳️ Donations', + 'value' => + 'wiki.todon.eu/todon/donations', + 'verified_at' => '2022-11-02T00:06:31.865+00:00' }] } }, + 'rules' => + [{ 'id' => '1', + 'text' => + 'We do not accept racism (in all its forms, incl. hate against Muslims, antisemitism, apartheid and casteism - see our Terms of Service for our complete definition).' }, + { 'id' => '2', + 'text' => + 'We do not accept hate against lesbians, gays, bisexuals, pansexuals, transgenders, non-binary people, intersexual people, queer people in general, etc.' }, + { 'id' => '4', 'text' => 'Sexism, misogyny and hate against black women (misogynoir).' }, + { 'id' => '6', + 'text' => 'We do not accept ableism (incl. COVID-19 denial/downplaying and anti-vax) and body-shaming.' }, + { 'id' => '8', 'text' => 'We do not accept harassment and trolling.' }, + { 'id' => '10', 'text' => 'We also do not accept other forms of hate speech.' }, + { 'id' => '11', + 'text' => 'We do not accept (sexual) abuse of minors, adults and animals (also not virtual).' }, + { 'id' => '13', + 'text' => 'We do not accept glorification of violence, calls for murder, death threats, terrorism and militarism.' }, + { 'id' => '15', + 'text' => + 'We do not accept (neo)colonialism (incl. Zionism), imperialism in all forms and nationalism (above all nationalism of nation states, incl. flags/symbols of those on Todon.*, see our Terms of Service).' }, + { 'id' => '16', + 'text' => 'We do not accept fascism, right-wing populism, and right-wing and religious extremism.' }, + { 'id' => '17', + 'text' => 'We do not accept evangelisation and other forms of religious propaganda [local only], and extreme sects and cults.' }, + { 'id' => '19', + 'text' => + 'We do not accept Marxist-Leninists, Stalinists, Maoists or other followers of extreme authoritarian (so called) communist/socialist ideologies/regimes (aka tankies).' }, + { 'id' => '20', + 'text' => "We do not accept capitalists, including so called 'anarcho-capitalists' (aka ancaps) and neoliberals." }, + { 'id' => '21', + 'text' => + 'We do not accept anthropogenic climate change denial, downplaying the climate crisis, greenwashing and deceptive climate solutions (like nuclear energy).' }, + { 'id' => '27', + 'text' => "We do not accept (right-wing) conspiracy 'theories', hoaxes, fake news and other forms of disinformation." }, + { 'id' => '28', + 'text' => 'Another rule in our terms of service at wiki.todon.eu/todon/terms_en. Explain in the final step.' }] }, + { 'uri' => 'mastodon.mauve.moe', + 'title' => 'Mauvestodon', + 'short_description' => 'Escape ship from centralized social media run by Mauve.', + 'description' => 'Chat about random techie and anarchist stuff.', + 'email' => 'contact@mauve.moe', + 'version' => '3.5.10', + 'urls' => { 'streaming_api' => 'wss://mastodon.mauve.moe' }, + 'stats' => { 'user_count' => 12, 'status_count' => 3287, 'domain_count' => 11_625 }, + 'thumbnail' => 'https://mastodon.mauve.moe/system/site_uploads/files/000/000/001/original/mauvesoftwareinc.png', + 'languages' => ['en'], + 'registrations' => false, + 'approval_required' => false, + 'invites_enabled' => true, + 'configuration' => + { 'statuses' => { 'max_characters' => 500, 'max_media_attachments' => 4, 'characters_reserved_per_url' => 23 }, + 'media_attachments' => + { 'supported_mime_types' => + ['image/jpeg', + 'image/png', + 'image/gif', + 'video/webm', + 'video/mp4', + 'video/quicktime', + 'video/ogg', + 'audio/wave', + 'audio/wav', + 'audio/x-wav', + 'audio/x-pn-wave', + 'audio/ogg', + 'audio/vorbis', + 'audio/mpeg', + 'audio/mp3', + 'audio/webm', + 'audio/flac', + 'audio/aac', + 'audio/m4a', + 'audio/x-m4a', + 'audio/mp4', + 'audio/3gpp', + 'video/x-ms-asf'], + 'image_size_limit' => 10_485_760, + 'image_matrix_limit' => 16_777_216, + 'video_size_limit' => 41_943_040, + 'video_frame_rate_limit' => 60, + 'video_matrix_limit' => 2_304_000 }, + 'polls' => { 'max_options' => 4, 'max_characters_per_option' => 50, 'min_expiration' => 300, + 'max_expiration' => 2_629_746 } }, + 'contact_account' => + { 'id' => '1', + 'username' => 'admin', + 'acct' => 'admin', + 'display_name' => '', + 'locked' => false, + 'bot' => false, + 'discoverable' => true, + 'group' => false, + 'created_at' => '2022-04-25T00:00:00.000Z', + 'note' => '', + 'url' => 'https://mastodon.mauve.moe/@admin', + 'avatar' => 'https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png', + 'avatar_static' => 'https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png', + 'header' => 'https://mastodon.mauve.moe/headers/original/missing.png', + 'header_static' => 'https://mastodon.mauve.moe/headers/original/missing.png', + 'followers_count' => 0, + 'following_count' => 0, + 'statuses_count' => 0, + 'last_status_at' => '2023-01-30', + 'emojis' => [], + 'fields' => + [{ 'name' => 'Alternatel Contact', + 'value' => + '@mauve', + 'verified_at' => nil }] }, + 'rules' => [] } ] - end end diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 8b4d975f..1bc94ec1 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -84,75 +84,72 @@ class PostsController < ApplicationController @moderation_queue = [ -{"@context"=> - ["https://www.w3.org/ns/activitystreams", - {"ostatus"=>"http://ostatus.org#", - "atomUri"=>"ostatus:atomUri", - "inReplyToAtomUri"=>"ostatus:inReplyToAtomUri", - "conversation"=>"ostatus:conversation", - "sensitive"=>"as:sensitive", - "toot"=>"http://joinmastodon.org/ns#", - "votersCount"=>"toot:votersCount", - "Hashtag"=>"as:Hashtag"}], - "id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", - "type"=>"Note", - "summary"=>nil, - "inReplyTo"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", - "published"=>"2023-11-23T22:50:10Z", - "url"=>"https://mastodon.mauve.moe/@mauve/111462305634770041", - "attributedTo"=>"https://mastodon.mauve.moe/users/mauve", - "to"=>["https://www.w3.org/ns/activitystreams#Public"], - "cc"=>["https://mastodon.mauve.moe/users/mauve/followers", "https://hypha.coop/about.jsonld"], - "sensitive"=>false, - "atomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", - "inReplyToAtomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", - "conversation"=>"tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation", - "content"=> - "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

", - "contentMap"=> - {"en"=> - "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

"}, - "attachment"=>[], - "tag"=> - [{"type"=>"Mention", "href"=>"https://hypha.coop/about.jsonld", "name"=>"@dripline@hypha.coop"}, - {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/p2p", "name"=>"#p2p"}, - {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/activitypub", "name"=>"#activitypub"}, - {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/fediverse", "name"=>"#fediverse"}], - "replies"=> - {"id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", - "type"=>"Collection", - "first"=> - {"type"=>"CollectionPage", - "next"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true", - "partOf"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", - "items"=>[]}}}, -{"@context"=>["https://www.w3.org/ns/activitystreams", {"@language"=>"es", "sensitive"=>"as:sensitive"}], - "type"=>"Note", - "id"=>"https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/", - "summary"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", - "published"=>"2023-12-04T21:53:05+00:00", - "updated"=>"2023-12-05T20:41:34+00:00", - "attributedTo"=>"https://sutty.nl/about.jsonld", - "to"=>["https://www.w3.org/ns/activitystreams#Public"], - "cc"=>["https://social.distributed.press/v1/@sutty@sutty.nl/followers"], - "inReplyTo"=>"https://hypha.coop/dripline/announcing-dp-social-inbox/", - "sensitive"=>true, - "content"=> - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", - "name"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", - "contentMap"=> - {"es"=> - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n"}, - "attachment"=> - [{"type"=>"Document", - "mediaType"=>"image/png", - "url"=>"https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png", - "name"=>"Botones de colores para activar la \"Web Disribuida\" y el \"Fediverso\"."}]} - + { '@context' => + ['https://www.w3.org/ns/activitystreams', + { 'ostatus' => 'http://ostatus.org#', + 'atomUri' => 'ostatus:atomUri', + 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri', + 'conversation' => 'ostatus:conversation', + 'sensitive' => 'as:sensitive', + 'toot' => 'http://joinmastodon.org/ns#', + 'votersCount' => 'toot:votersCount', + 'Hashtag' => 'as:Hashtag' }], + 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', + 'type' => 'Note', + 'summary' => nil, + 'inReplyTo' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', + 'published' => '2023-11-23T22:50:10Z', + 'url' => 'https://mastodon.mauve.moe/@mauve/111462305634770041', + 'attributedTo' => 'https://mastodon.mauve.moe/users/mauve', + 'to' => ['https://www.w3.org/ns/activitystreams#Public'], + 'cc' => ['https://mastodon.mauve.moe/users/mauve/followers', 'https://hypha.coop/about.jsonld'], + 'sensitive' => false, + 'atomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', + 'inReplyToAtomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', + 'conversation' => 'tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation', + 'content' => + '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

', + 'contentMap' => + { 'en' => + '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

' }, + 'attachment' => [], + 'tag' => + [{ 'type' => 'Mention', 'href' => 'https://hypha.coop/about.jsonld', 'name' => '@dripline@hypha.coop' }, + { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/p2p', 'name' => '#p2p' }, + { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/activitypub', 'name' => '#activitypub' }, + { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/fediverse', 'name' => '#fediverse' }], + 'replies' => + { 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', + 'type' => 'Collection', + 'first' => + { 'type' => 'CollectionPage', + 'next' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true', + 'partOf' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', + 'items' => [] } } }, + { '@context' => ['https://www.w3.org/ns/activitystreams', { '@language' => 'es', 'sensitive' => 'as:sensitive' }], + 'type' => 'Note', + 'id' => 'https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/', + 'summary' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', + 'published' => '2023-12-04T21:53:05+00:00', + 'updated' => '2023-12-05T20:41:34+00:00', + 'attributedTo' => 'https://sutty.nl/about.jsonld', + 'to' => ['https://www.w3.org/ns/activitystreams#Public'], + 'cc' => ['https://social.distributed.press/v1/@sutty@sutty.nl/followers'], + 'inReplyTo' => 'https://hypha.coop/dripline/announcing-dp-social-inbox/', + 'sensitive' => true, + 'content' => + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", + 'name' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', + 'contentMap' => + { 'es' => + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n" }, + 'attachment' => + [{ 'type' => 'Document', + 'mediaType' => 'image/png', + 'url' => 'https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png', + 'name' => 'Botones de colores para activar la "Web Disribuida" y el "Fediverso".' }] } ] - - end def update From 2a2878e4696645aee6c22e2d9301cd69a614db39 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jan 2024 17:55:15 -0300 Subject: [PATCH 009/150] =?UTF-8?q?refactor:=20cargar=20los=20datos=20desd?= =?UTF-8?q?e=20archivos=20m=C3=A1s=20legibles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moderation_queue_controller.rb | 366 +----------------- app/controllers/posts_controller.rb | 70 +--- db/seeds/instances.yaml | 285 ++++++++++++++ db/seeds/moderation_queue.yaml | 153 ++++++++ db/seeds/remote_profile.yaml | 106 +++++ 5 files changed, 548 insertions(+), 432 deletions(-) create mode 100644 db/seeds/instances.yaml create mode 100644 db/seeds/moderation_queue.yaml create mode 100644 db/seeds/remote_profile.yaml diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb index 6d58baf0..eb39dae6 100644 --- a/app/controllers/moderation_queue_controller.rb +++ b/app/controllers/moderation_queue_controller.rb @@ -4,377 +4,17 @@ class ModerationQueueController < ApplicationController # Cola de moderación viendo todo el sitio def index - @moderation_queue = [ - - { '@context' => - ['https://www.w3.org/ns/activitystreams', - { 'ostatus' => 'http://ostatus.org#', - 'atomUri' => 'ostatus:atomUri', - 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri', - 'conversation' => 'ostatus:conversation', - 'sensitive' => 'as:sensitive', - 'toot' => 'http://joinmastodon.org/ns#', - 'votersCount' => 'toot:votersCount', - 'Hashtag' => 'as:Hashtag' }], - 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', - 'type' => 'Note', - 'summary' => nil, - 'inReplyTo' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', - 'published' => '2023-11-23T22:50:10Z', - 'url' => 'https://mastodon.mauve.moe/@mauve/111462305634770041', - 'attributedTo' => 'https://mastodon.mauve.moe/users/mauve', - 'to' => ['https://www.w3.org/ns/activitystreams#Public'], - 'cc' => ['https://mastodon.mauve.moe/users/mauve/followers', 'https://hypha.coop/about.jsonld'], - 'sensitive' => false, - 'atomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', - 'inReplyToAtomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', - 'conversation' => 'tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation', - 'content' => - '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

', - 'contentMap' => - { 'en' => - '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

' }, - 'attachment' => [], - 'tag' => - [{ 'type' => 'Mention', 'href' => 'https://hypha.coop/about.jsonld', 'name' => '@dripline@hypha.coop' }, - { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/p2p', 'name' => '#p2p' }, - { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/activitypub', 'name' => '#activitypub' }, - { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/fediverse', 'name' => '#fediverse' }], - 'replies' => - { 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', - 'type' => 'Collection', - 'first' => - { 'type' => 'CollectionPage', - 'next' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true', - 'partOf' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', - 'items' => [] } } }, - { '@context' => ['https://www.w3.org/ns/activitystreams', { '@language' => 'es', 'sensitive' => 'as:sensitive' }], - 'type' => 'Note', - 'id' => 'https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/', - 'summary' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', - 'published' => '2023-12-04T21:53:05+00:00', - 'updated' => '2023-12-05T20:41:34+00:00', - 'attributedTo' => 'https://sutty.nl/about.jsonld', - 'to' => ['https://www.w3.org/ns/activitystreams#Public'], - 'cc' => ['https://social.distributed.press/v1/@sutty@sutty.nl/followers'], - 'inReplyTo' => 'https://hypha.coop/dripline/announcing-dp-social-inbox/', - 'sensitive' => true, - 'content' => - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", - 'name' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', - 'contentMap' => - { 'es' => - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n" }, - 'attachment' => - [{ 'type' => 'Document', - 'mediaType' => 'image/png', - 'url' => 'https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png', - 'name' => 'Botones de colores para activar la "Web Disribuida" y el "Fediverso".' }] } - - ] + @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) end # Perfil remoto de usuarie def remote_profile - @remote_profile = { - '@context' => - [ - 'https://www.w3.org/ns/activitystreams', - 'https://w3id.org/security/v1', - { - 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers', - 'toot' => 'http://joinmastodon.org/ns#', - 'featured' => { '@id' => 'toot:featured', '@type' => '@id' }, - 'featuredTags' => { '@id' => 'toot:featuredTags', '@type' => '@id' }, - 'alsoKnownAs' => { '@id' => 'as:alsoKnownAs', '@type' => '@id' }, - 'movedTo' => { '@id' => 'as:movedTo', '@type' => '@id' }, - 'schema' => 'http://schema.org#', - 'PropertyValue' => 'schema:PropertyValue', - 'value' => 'schema:value', - 'discoverable' => 'toot:discoverable', - 'Device' => 'toot:Device', - 'Ed25519Signature' => 'toot:Ed25519Signature', - 'Ed25519Key' => 'toot:Ed25519Key', - 'Curve25519Key' => 'toot:Curve25519Key', - 'EncryptedMessage' => 'toot:EncryptedMessage', - 'publicKeyBase64' => 'toot:publicKeyBase64', - 'deviceId' => 'toot:deviceId', - 'claim' => { '@type' => '@id', '@id' => 'toot:claim' }, - 'fingerprintKey' => { '@type' => '@id', '@id' => 'toot:fingerprintKey' }, - 'identityKey' => { '@type' => '@id', '@id' => 'toot:identityKey' }, - 'devices' => { '@type' => '@id', '@id' => 'toot:devices' }, - 'messageFranking' => 'toot:messageFranking', - 'messageType' => 'toot:messageType', - 'cipherText' => 'toot:cipherText', - 'suspended' => 'toot:suspended', - 'focalPoint' => { '@container' => '@list', '@id' => 'toot:focalPoint' } - } - ], - 'id' => 'https://mastodon.mauve.moe/users/mauve', - 'type' => 'Person', - 'following' => 'https://mastodon.mauve.moe/users/mauve/following', - 'followers' => 'https://mastodon.mauve.moe/users/mauve/followers', - 'inbox' => 'https://mastodon.mauve.moe/users/mauve/inbox', - 'outbox' => 'https://mastodon.mauve.moe/users/mauve/outbox', - 'featured' => 'https://mastodon.mauve.moe/users/mauve/collections/featured', - 'featuredTags' => 'https://mastodon.mauve.moe/users/mauve/collections/tags', - 'preferredUsername' => 'mauve', - 'name' => 'Mauve 👁💜', - 'summary' => - '

Occult Enby that's making local-first software with peer to peer protocols, mesh networks, and the web.

Also exploring what a local-first cyberspace might look like in my spare time.

', - 'url' => 'https://mastodon.mauve.moe/@mauve', - 'manuallyApprovesFollowers' => false, - 'discoverable' => true, - 'published' => '2022-04-25T00:00:00Z', - 'devices' => 'https://mastodon.mauve.moe/users/mauve/collections/devices', - 'alsoKnownAs' => ['https://infosec.exchange/users/RangerMauve'], - 'publicKey' => - { 'id' => 'https://mastodon.mauve.moe/users/mauve#main-key', - 'owner' => 'https://mastodon.mauve.moe/users/mauve', - 'publicKeyPem' => - "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjxu6bRQOjH4caQu7JgZ\numIWFeX0ZdbVnofElev2d9JByqcDoWhmaks3RYdW71RDPNrr0JxqZvUbIw9kQBng\n7iQ9YTcXTdJ/N9CQoB22msffYkEIw4ilehCDXdchNs4aoVAUwI8IhkM0p/itz6gK\n75C3CQv74Y7rHUJC8ob2p4KUwRUyhgzyhp8QWwCAn/RZ28wP8EbjWF9IskMRo9vq\nWUX+Io6hpADRkSwZGoOSW2zxCEBVco6tRmABTte8I0WcAucLyMEyfGMlUvxRew4D\nzAWoEBS8SyqM68vUabbZYLns6kya34tvsf1NkvajDGrfgU3D0LlGX++tOa6N9Pkf\nXwIDAQAB\n-----END PUBLIC KEY-----\n" }, - 'tag' => [], - 'attachment' => - [{ 'type' => 'PropertyValue', 'name' => 'Pronouns', 'value' => 'they/them/it' }, - { 'type' => 'PropertyValue', 'name' => 'Email', 'value' => 'mauve@mauve.moe' }, - { 'type' => 'PropertyValue', - 'name' => 'Matrix', - 'value' => - '@mauve:mauve.moe' }, - { 'type' => 'PropertyValue', 'name' => 'Github/Twitter', 'value' => '@RangerMauve' }], - 'endpoints' => { 'sharedInbox' => 'https://mastodon.mauve.moe/inbox' }, - 'icon' => - { 'type' => 'Image', - 'mediaType' => 'image/png', - 'url' => 'https://mastodon.mauve.moe/system/accounts/avatars/000/000/002/original/e4b910cee121b1b8.png' }, - 'image' => - { 'type' => 'Image', - 'mediaType' => 'image/png', - 'url' => 'https://mastodon.mauve.moe/system/accounts/headers/000/000/002/original/a96f990025091662.png' } - } + @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) end # todon.nl está usando /api/v2/instance # mauve.moe usa /api/v1/instance def instances - @instances = [ - { 'domain' => 'todon.nl', - 'title' => 'Todon.nl', - 'version' => '4.2.3', - 'source_url' => 'https://github.com/mastodon/mastodon', - 'description' => - 'Radicaal linkse anti-autoritaire server. Voor anarchisten, socialisten, (klimaat)activisten, LHBTQIA+, antiracisten, antifascisten, antikapitalisten, intersectionelen, veganisten, mensenrechten, enz.', - 'usage' => { 'users' => { 'active_month' => 372 } }, - 'thumbnail' => - { 'url' => 'https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png', - 'blurhash' => 'UXAw3zN4M|xsoga#WBay9DxntQRmITocofWE', - 'versions' => - { '@1x' => 'https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png', - '@2x' => 'https://todon.nl/system/site_uploads/files/000/000/004/@2x/297e509bc8a81f62.png' } }, - 'languages' => ['en'], - 'configuration' => - { 'urls' => { 'streaming' => 'wss://todon.nl', 'status' => 'https://status.todon.eu' }, - 'accounts' => { 'max_featured_tags' => 10 }, - 'statuses' => { 'max_characters' => 1312, 'max_media_attachments' => 4, 'characters_reserved_per_url' => 23 }, - 'media_attachments' => - { 'supported_mime_types' => - ['image/jpeg', - 'image/png', - 'image/gif', - 'image/heic', - 'image/heif', - 'image/webp', - 'image/avif', - 'video/webm', - 'video/mp4', - 'video/quicktime', - 'video/ogg', - 'audio/wave', - 'audio/wav', - 'audio/x-wav', - 'audio/x-pn-wave', - 'audio/vnd.wave', - 'audio/ogg', - 'audio/vorbis', - 'audio/mpeg', - 'audio/mp3', - 'audio/webm', - 'audio/flac', - 'audio/aac', - 'audio/m4a', - 'audio/x-m4a', - 'audio/mp4', - 'audio/3gpp', - 'video/x-ms-asf'], - 'image_size_limit' => 16_777_216, - 'image_matrix_limit' => 33_177_600, - 'video_size_limit' => 103_809_024, - 'video_frame_rate_limit' => 120, - 'video_matrix_limit' => 8_294_400 }, - 'polls' => { 'max_options' => 4, 'max_characters_per_option' => 50, 'min_expiration' => 300, - 'max_expiration' => 2_629_746 }, - 'translation' => { 'enabled' => true } }, - 'registrations' => - { 'enabled' => false, - 'approval_required' => false, - 'message' => - "

¡No pasarán!

\n\n

Je kunt tijdelijk geen nieuw account op Todon.nl aanvragen.

\n\n\n\n

Ga naar joinmastodon.org of FediDB Network om een andere server te vinden.

\n\n

It is temporary not possible to request on account on Todon.nl.

\n\n\n\n

Go to joinmastodon.org or FediDB Network to find another server.

\n", - 'url' => nil }, - 'max_toot_chars' => 1312, - 'contact' => - { 'email' => 'todon@posteo.eu', - 'account' => - { 'id' => '1', - 'username' => 'admin', - 'acct' => 'admin', - 'display_name' => 'Admin 🤓 Todon.nl (mod)', - 'locked' => false, - 'bot' => false, - 'discoverable' => false, - 'group' => false, - 'created_at' => '2017-04-28T00:00:00.000Z', - 'note' => - '

This account is used for 🎙 Todon.nl announcements and ⚖️ moderation.

🚫 Don't follow this account when you are not on Todon.nl.

New? First read our 👩‍🏫 Todon 101 👩‍🎓 at wiki.todon.eu/todon/101

⚖️ For all our moderators go to wiki.todon.nl/todon/moderators

📝 Public toots from this account are in English.

🔕 Criticism is fine, but people who do false accusations are muted.

✉ todon@posteo.eu

', - 'url' => 'https://todon.nl/@admin', - 'uri' => 'https://todon.nl/users/admin', - 'avatar' => 'https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png', - 'avatar_static' => 'https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png', - 'header' => 'https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png', - 'header_static' => 'https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png', - 'followers_count' => 3164, - 'following_count' => 8, - 'statuses_count' => 724, - 'last_status_at' => '2024-01-12', - 'noindex' => true, - 'emojis' => [], - 'roles' => [{ 'id' => '3', 'name' => 'Admin', 'color' => '#595aff' }], - 'fields' => - [{ 'name' => '📜 Terms of Service', - 'value' => - 'wiki.todon.nl/todon/terms_en', - 'verified_at' => '2018-11-01T14:39:45.465+00:00' }, - { 'name' => 'ℹ️ Wiki', - 'value' => - 'wiki.todon.nl/todon/informatio', - 'verified_at' => '2018-11-01T14:40:54.679+00:00' }, - { 'name' => '📊 Status', - 'value' => - 'status.todon.eu', - 'verified_at' => '2023-10-26T20:38:30.185+00:00' }, - { 'name' => '💳️ Donations', - 'value' => - 'wiki.todon.eu/todon/donations', - 'verified_at' => '2022-11-02T00:06:31.865+00:00' }] } }, - 'rules' => - [{ 'id' => '1', - 'text' => - 'We do not accept racism (in all its forms, incl. hate against Muslims, antisemitism, apartheid and casteism - see our Terms of Service for our complete definition).' }, - { 'id' => '2', - 'text' => - 'We do not accept hate against lesbians, gays, bisexuals, pansexuals, transgenders, non-binary people, intersexual people, queer people in general, etc.' }, - { 'id' => '4', 'text' => 'Sexism, misogyny and hate against black women (misogynoir).' }, - { 'id' => '6', - 'text' => 'We do not accept ableism (incl. COVID-19 denial/downplaying and anti-vax) and body-shaming.' }, - { 'id' => '8', 'text' => 'We do not accept harassment and trolling.' }, - { 'id' => '10', 'text' => 'We also do not accept other forms of hate speech.' }, - { 'id' => '11', - 'text' => 'We do not accept (sexual) abuse of minors, adults and animals (also not virtual).' }, - { 'id' => '13', - 'text' => 'We do not accept glorification of violence, calls for murder, death threats, terrorism and militarism.' }, - { 'id' => '15', - 'text' => - 'We do not accept (neo)colonialism (incl. Zionism), imperialism in all forms and nationalism (above all nationalism of nation states, incl. flags/symbols of those on Todon.*, see our Terms of Service).' }, - { 'id' => '16', - 'text' => 'We do not accept fascism, right-wing populism, and right-wing and religious extremism.' }, - { 'id' => '17', - 'text' => 'We do not accept evangelisation and other forms of religious propaganda [local only], and extreme sects and cults.' }, - { 'id' => '19', - 'text' => - 'We do not accept Marxist-Leninists, Stalinists, Maoists or other followers of extreme authoritarian (so called) communist/socialist ideologies/regimes (aka tankies).' }, - { 'id' => '20', - 'text' => "We do not accept capitalists, including so called 'anarcho-capitalists' (aka ancaps) and neoliberals." }, - { 'id' => '21', - 'text' => - 'We do not accept anthropogenic climate change denial, downplaying the climate crisis, greenwashing and deceptive climate solutions (like nuclear energy).' }, - { 'id' => '27', - 'text' => "We do not accept (right-wing) conspiracy 'theories', hoaxes, fake news and other forms of disinformation." }, - { 'id' => '28', - 'text' => 'Another rule in our terms of service at wiki.todon.eu/todon/terms_en. Explain in the final step.' }] }, - { 'uri' => 'mastodon.mauve.moe', - 'title' => 'Mauvestodon', - 'short_description' => 'Escape ship from centralized social media run by Mauve.', - 'description' => 'Chat about random techie and anarchist stuff.', - 'email' => 'contact@mauve.moe', - 'version' => '3.5.10', - 'urls' => { 'streaming_api' => 'wss://mastodon.mauve.moe' }, - 'stats' => { 'user_count' => 12, 'status_count' => 3287, 'domain_count' => 11_625 }, - 'thumbnail' => 'https://mastodon.mauve.moe/system/site_uploads/files/000/000/001/original/mauvesoftwareinc.png', - 'languages' => ['en'], - 'registrations' => false, - 'approval_required' => false, - 'invites_enabled' => true, - 'configuration' => - { 'statuses' => { 'max_characters' => 500, 'max_media_attachments' => 4, 'characters_reserved_per_url' => 23 }, - 'media_attachments' => - { 'supported_mime_types' => - ['image/jpeg', - 'image/png', - 'image/gif', - 'video/webm', - 'video/mp4', - 'video/quicktime', - 'video/ogg', - 'audio/wave', - 'audio/wav', - 'audio/x-wav', - 'audio/x-pn-wave', - 'audio/ogg', - 'audio/vorbis', - 'audio/mpeg', - 'audio/mp3', - 'audio/webm', - 'audio/flac', - 'audio/aac', - 'audio/m4a', - 'audio/x-m4a', - 'audio/mp4', - 'audio/3gpp', - 'video/x-ms-asf'], - 'image_size_limit' => 10_485_760, - 'image_matrix_limit' => 16_777_216, - 'video_size_limit' => 41_943_040, - 'video_frame_rate_limit' => 60, - 'video_matrix_limit' => 2_304_000 }, - 'polls' => { 'max_options' => 4, 'max_characters_per_option' => 50, 'min_expiration' => 300, - 'max_expiration' => 2_629_746 } }, - 'contact_account' => - { 'id' => '1', - 'username' => 'admin', - 'acct' => 'admin', - 'display_name' => '', - 'locked' => false, - 'bot' => false, - 'discoverable' => true, - 'group' => false, - 'created_at' => '2022-04-25T00:00:00.000Z', - 'note' => '', - 'url' => 'https://mastodon.mauve.moe/@admin', - 'avatar' => 'https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png', - 'avatar_static' => 'https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png', - 'header' => 'https://mastodon.mauve.moe/headers/original/missing.png', - 'header_static' => 'https://mastodon.mauve.moe/headers/original/missing.png', - 'followers_count' => 0, - 'following_count' => 0, - 'statuses_count' => 0, - 'last_status_at' => '2023-01-30', - 'emojis' => [], - 'fields' => - [{ 'name' => 'Alternatel Contact', - 'value' => - '@mauve', - 'verified_at' => nil }] }, - 'rules' => [] } - - ] + @instances = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'instances.yaml'))) end end diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 1bc94ec1..d572e052 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -38,6 +38,7 @@ class PostsController < ApplicationController @usuarie = site.usuarie? current_usuarie @site_stat = SiteStat.new(site) + @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) end def show @@ -81,75 +82,6 @@ class PostsController < ApplicationController authorize post breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' - - @moderation_queue = [ - - { '@context' => - ['https://www.w3.org/ns/activitystreams', - { 'ostatus' => 'http://ostatus.org#', - 'atomUri' => 'ostatus:atomUri', - 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri', - 'conversation' => 'ostatus:conversation', - 'sensitive' => 'as:sensitive', - 'toot' => 'http://joinmastodon.org/ns#', - 'votersCount' => 'toot:votersCount', - 'Hashtag' => 'as:Hashtag' }], - 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', - 'type' => 'Note', - 'summary' => nil, - 'inReplyTo' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', - 'published' => '2023-11-23T22:50:10Z', - 'url' => 'https://mastodon.mauve.moe/@mauve/111462305634770041', - 'attributedTo' => 'https://mastodon.mauve.moe/users/mauve', - 'to' => ['https://www.w3.org/ns/activitystreams#Public'], - 'cc' => ['https://mastodon.mauve.moe/users/mauve/followers', 'https://hypha.coop/about.jsonld'], - 'sensitive' => false, - 'atomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041', - 'inReplyToAtomUri' => 'https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886', - 'conversation' => 'tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation', - 'content' => - '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

', - 'contentMap' => - { 'en' => - '

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

' }, - 'attachment' => [], - 'tag' => - [{ 'type' => 'Mention', 'href' => 'https://hypha.coop/about.jsonld', 'name' => '@dripline@hypha.coop' }, - { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/p2p', 'name' => '#p2p' }, - { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/activitypub', 'name' => '#activitypub' }, - { 'type' => 'Hashtag', 'href' => 'https://mastodon.mauve.moe/tags/fediverse', 'name' => '#fediverse' }], - 'replies' => - { 'id' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', - 'type' => 'Collection', - 'first' => - { 'type' => 'CollectionPage', - 'next' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true', - 'partOf' => 'https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies', - 'items' => [] } } }, - { '@context' => ['https://www.w3.org/ns/activitystreams', { '@language' => 'es', 'sensitive' => 'as:sensitive' }], - 'type' => 'Note', - 'id' => 'https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/', - 'summary' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', - 'published' => '2023-12-04T21:53:05+00:00', - 'updated' => '2023-12-05T20:41:34+00:00', - 'attributedTo' => 'https://sutty.nl/about.jsonld', - 'to' => ['https://www.w3.org/ns/activitystreams#Public'], - 'cc' => ['https://social.distributed.press/v1/@sutty@sutty.nl/followers'], - 'inReplyTo' => 'https://hypha.coop/dripline/announcing-dp-social-inbox/', - 'sensitive' => true, - 'content' => - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", - 'name' => 'Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty', - 'contentMap' => - { 'es' => - "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    \n
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • \n
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • \n
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • \n
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • \n
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • \n
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • \n

Qué permite hacer

    \n
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • \n
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • \n
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • \n
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • \n
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • \n

Qué se viene

    \n
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • \n
  • Incorporación de menciones desde el panel de Sutty.

  • \n
  • Mejoras en la interfaz general del panel.

  • \n
  • Nuevas implementaciones para una mejor moderación.

  • \n
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • \n
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • \n
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • \n
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • \n
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • \n
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • \n

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n" }, - 'attachment' => - [{ 'type' => 'Document', - 'mediaType' => 'image/png', - 'url' => 'https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png', - 'name' => 'Botones de colores para activar la "Web Disribuida" y el "Fediverso".' }] } - - ] end def update diff --git a/db/seeds/instances.yaml b/db/seeds/instances.yaml new file mode 100644 index 00000000..bf326832 --- /dev/null +++ b/db/seeds/instances.yaml @@ -0,0 +1,285 @@ +--- +- domain: todon.nl + title: Todon.nl + version: 4.2.3 + source_url: https://github.com/mastodon/mastodon + description: Radicaal linkse anti-autoritaire server. Voor anarchisten, socialisten, + (klimaat)activisten, LHBTQIA+, antiracisten, antifascisten, antikapitalisten, + intersectionelen, veganisten, mensenrechten, enz. + usage: + users: + active_month: 372 + thumbnail: + url: https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png + blurhash: UXAw3zN4M|xsoga#WBay9DxntQRmITocofWE + versions: + "@1x": https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png + "@2x": https://todon.nl/system/site_uploads/files/000/000/004/@2x/297e509bc8a81f62.png + languages: + - en + configuration: + urls: + streaming: wss://todon.nl + status: https://status.todon.eu + accounts: + max_featured_tags: 10 + statuses: + max_characters: 1312 + max_media_attachments: 4 + characters_reserved_per_url: 23 + media_attachments: + supported_mime_types: + - image/jpeg + - image/png + - image/gif + - image/heic + - image/heif + - image/webp + - image/avif + - video/webm + - video/mp4 + - video/quicktime + - video/ogg + - audio/wave + - audio/wav + - audio/x-wav + - audio/x-pn-wave + - audio/vnd.wave + - audio/ogg + - audio/vorbis + - audio/mpeg + - audio/mp3 + - audio/webm + - audio/flac + - audio/aac + - audio/m4a + - audio/x-m4a + - audio/mp4 + - audio/3gpp + - video/x-ms-asf + image_size_limit: 16777216 + image_matrix_limit: 33177600 + video_size_limit: 103809024 + video_frame_rate_limit: 120 + video_matrix_limit: 8294400 + polls: + max_options: 4 + max_characters_per_option: 50 + min_expiration: 300 + max_expiration: 2629746 + translation: + enabled: true + registrations: + enabled: false + approval_required: false + message: | +

¡No pasarán!

+ +

Je kunt tijdelijk geen nieuw account op Todon.nl aanvragen.

+ + + +

Ga naar joinmastodon.org of FediDB Network om een andere server te vinden.

+ +

It is temporary not possible to request on account on Todon.nl.

+ + + +

Go to joinmastodon.org or FediDB Network to find another server.

+ url: + max_toot_chars: 1312 + contact: + email: todon@posteo.eu + account: + id: '1' + username: admin + acct: admin + display_name: "Admin \U0001F913 Todon.nl (mod)" + locked: false + bot: false + discoverable: false + group: false + created_at: '2017-04-28T00:00:00.000Z' + note: "

This account is used for \U0001F399 Todon.nl announcements and ⚖️ + moderation.

\U0001F6AB Don't follow this account when you are not + on Todon.nl.

New? First read our \U0001F469‍\U0001F3EB Todon 101 \U0001F469‍\U0001F393 + at https://wiki.todon.eu/todon/101

⚖️ + For all our moderators go to https://wiki.todon.nl/todon/moderators

\U0001F4DD Public toots from this account + are in English.

\U0001F515 Criticism is fine, but people who do false + accusations are muted.

✉ todon@posteo.eu

#nobot

" + url: https://todon.nl/@admin + uri: https://todon.nl/users/admin + avatar: https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png + avatar_static: https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png + header: https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png + header_static: https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png + followers_count: 3164 + following_count: 8 + statuses_count: 724 + last_status_at: '2024-01-12' + noindex: true + emojis: [] + roles: + - id: '3' + name: Admin + color: "#595aff" + fields: + - name: "\U0001F4DC Terms of Service" + value: wiki.todon.nl/todon/terms_en + verified_at: '2018-11-01T14:39:45.465+00:00' + - name: ℹ️ Wiki + value: wiki.todon.nl/todon/informatio + verified_at: '2018-11-01T14:40:54.679+00:00' + - name: "\U0001F4CA Status" + value: status.todon.eu + verified_at: '2023-10-26T20:38:30.185+00:00' + - name: "\U0001F4B3️ Donations" + value: wiki.todon.eu/todon/donations + verified_at: '2022-11-02T00:06:31.865+00:00' + rules: + - id: '1' + text: We do not accept racism (in all its forms, incl. hate against Muslims, antisemitism, + apartheid and casteism - see our Terms of Service for our complete definition). + - id: '2' + text: We do not accept hate against lesbians, gays, bisexuals, pansexuals, transgenders, + non-binary people, intersexual people, queer people in general, etc. + - id: '4' + text: Sexism, misogyny and hate against black women (misogynoir). + - id: '6' + text: We do not accept ableism (incl. COVID-19 denial/downplaying and anti-vax) + and body-shaming. + - id: '8' + text: We do not accept harassment and trolling. + - id: '10' + text: We also do not accept other forms of hate speech. + - id: '11' + text: We do not accept (sexual) abuse of minors, adults and animals (also not + virtual). + - id: '13' + text: We do not accept glorification of violence, calls for murder, death threats, + terrorism and militarism. + - id: '15' + text: We do not accept (neo)colonialism (incl. Zionism), imperialism in all forms + and nationalism (above all nationalism of nation states, incl. flags/symbols + of those on Todon.*, see our Terms of Service). + - id: '16' + text: We do not accept fascism, right-wing populism, and right-wing and religious + extremism. + - id: '17' + text: We do not accept evangelisation and other forms of religious propaganda + [local only], and extreme sects and cults. + - id: '19' + text: We do not accept Marxist-Leninists, Stalinists, Maoists or other followers + of extreme authoritarian (so called) communist/socialist ideologies/regimes + (aka tankies). + - id: '20' + text: We do not accept capitalists, including so called 'anarcho-capitalists' + (aka ancaps) and neoliberals. + - id: '21' + text: We do not accept anthropogenic climate change denial, downplaying the climate + crisis, greenwashing and deceptive climate solutions (like nuclear energy). + - id: '27' + text: We do not accept (right-wing) conspiracy 'theories', hoaxes, fake news and + other forms of disinformation. + - id: '28' + text: Another rule in our terms of service at wiki.todon.eu/todon/terms_en. Explain + in the final step. +- uri: mastodon.mauve.moe + title: Mauvestodon + short_description: Escape ship from centralized social media run by Mauve. + description: Chat about random techie and anarchist stuff. + email: contact@mauve.moe + version: 3.5.10 + urls: + streaming_api: wss://mastodon.mauve.moe + stats: + user_count: 12 + status_count: 3287 + domain_count: 11625 + thumbnail: https://mastodon.mauve.moe/system/site_uploads/files/000/000/001/original/mauvesoftwareinc.png + languages: + - en + registrations: false + approval_required: false + invites_enabled: true + configuration: + statuses: + max_characters: 500 + max_media_attachments: 4 + characters_reserved_per_url: 23 + media_attachments: + supported_mime_types: + - image/jpeg + - image/png + - image/gif + - video/webm + - video/mp4 + - video/quicktime + - video/ogg + - audio/wave + - audio/wav + - audio/x-wav + - audio/x-pn-wave + - audio/ogg + - audio/vorbis + - audio/mpeg + - audio/mp3 + - audio/webm + - audio/flac + - audio/aac + - audio/m4a + - audio/x-m4a + - audio/mp4 + - audio/3gpp + - video/x-ms-asf + image_size_limit: 10485760 + image_matrix_limit: 16777216 + video_size_limit: 41943040 + video_frame_rate_limit: 60 + video_matrix_limit: 2304000 + polls: + max_options: 4 + max_characters_per_option: 50 + min_expiration: 300 + max_expiration: 2629746 + contact_account: + id: '1' + username: admin + acct: admin + display_name: '' + locked: false + bot: false + discoverable: true + group: false + created_at: '2022-04-25T00:00:00.000Z' + note: '' + url: https://mastodon.mauve.moe/@admin + avatar: https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png + avatar_static: https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png + header: https://mastodon.mauve.moe/headers/original/missing.png + header_static: https://mastodon.mauve.moe/headers/original/missing.png + followers_count: 0 + following_count: 0 + statuses_count: 0 + last_status_at: '2023-01-30' + emojis: [] + fields: + - name: Alternatel Contact + value: @mauve + verified_at: + rules: [] diff --git a/db/seeds/moderation_queue.yaml b/db/seeds/moderation_queue.yaml new file mode 100644 index 00000000..c7075c7e --- /dev/null +++ b/db/seeds/moderation_queue.yaml @@ -0,0 +1,153 @@ +--- +- "@context": + - https://www.w3.org/ns/activitystreams + - ostatus: http://ostatus.org# + atomUri: ostatus:atomUri + inReplyToAtomUri: ostatus:inReplyToAtomUri + conversation: ostatus:conversation + sensitive: as:sensitive + toot: http://joinmastodon.org/ns# + votersCount: toot:votersCount + Hashtag: as:Hashtag + id: https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041 + type: Note + summary: + inReplyTo: https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886 + published: '2023-11-23T22:50:10Z' + url: https://mastodon.mauve.moe/@mauve/111462305634770041 + attributedTo: https://mastodon.mauve.moe/users/mauve + to: + - https://www.w3.org/ns/activitystreams#Public + cc: + - https://mastodon.mauve.moe/users/mauve/followers + - https://hypha.coop/about.jsonld + sensitive: false + atomUri: https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041 + inReplyToAtomUri: https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886 + conversation: tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation + content:

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

+

+ contentMap: + en:

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

+

+ attachment: [] + tag: + - type: Mention + href: https://hypha.coop/about.jsonld + name: "@dripline@hypha.coop" + - type: Hashtag + href: https://mastodon.mauve.moe/tags/p2p + name: "#p2p" + - type: Hashtag + href: https://mastodon.mauve.moe/tags/activitypub + name: "#activitypub" + - type: Hashtag + href: https://mastodon.mauve.moe/tags/fediverse + name: "#fediverse" + replies: + id: https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies + type: Collection + first: + type: CollectionPage + next: https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true + partOf: https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies + items: [] +- "@context": + - https://www.w3.org/ns/activitystreams + - "@language": es + sensitive: as:sensitive + type: Note + id: https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/ + summary: Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty + published: '2023-12-04T21:53:05+00:00' + updated: '2023-12-05T20:41:34+00:00' + attributedTo: https://sutty.nl/about.jsonld + to: + - https://www.w3.org/ns/activitystreams#Public + cc: + - https://social.distributed.press/v1/@sutty@sutty.nl/followers + inReplyTo: https://hypha.coop/dripline/announcing-dp-social-inbox/ + sensitive: true + content: | +

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    +
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. +
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. +

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    +
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • +
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • +
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • +
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • +
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • +
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • +

Qué permite hacer

    +
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • +
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • +
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • +
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • +
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • +

Qué se viene

    +
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • +
  • Incorporación de menciones desde el panel de Sutty.

  • +
  • Mejoras en la interfaz general del panel.

  • +
  • Nuevas implementaciones para una mejor moderación.

  • +
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • +
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • +
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • +
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • +
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • +
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • +

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

+ name: Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty + contentMap: + es: | +

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    +
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. +
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. +

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

    +
  • Que si creás tu sitio web a través de Sutty, tenés nuevas posibilidades de difundir tus contenidos e interactuar en redes digitales.

  • +
  • Que tus artículos pueden ser publicados en las redes del Fediverso.

  • +
  • Que tu sitio tendrá un perfil o usuarie personalizable desde el panel en una instancia de Sutty propia.

  • +
  • Que les usuaries del Fediverso pueden seguir tus publicaciones.

  • +
  • Que les usuaries del Fediverso que te sigan podrán leer tus publicaciones, mencionarte y responderte.

  • +
  • Que podrás interactuar con les usuaries del Fediverse con las opciones de responderles y mencionarles.

  • +

Qué permite hacer

    +
  • Activar la publicación en el Fediverso para todos los sitios de Sutty.

  • +
  • Activar la publicación de los artículos que quieras en el Fediverso.

  • +
  • Responder comentarios desde los artículos de tu sitio en Sutty.

  • +
  • Personalizar la cuenta que Sutty crea automáticamente de tu sitio en el Fediverso.

  • +
  • Reportar o informar de usuaries o instancias abusivos mediante nuestro formulario de contacto.

  • +

Qué se viene

    +
  • Mejoras en la integración de las respuestas como comentarios en el sitio.

  • +
  • Incorporación de menciones desde el panel de Sutty.

  • +
  • Mejoras en la interfaz general del panel.

  • +
  • Nuevas implementaciones para una mejor moderación.

  • +
  • Mejor compatibilidad con diversas redes en el Fediverso (Mastodon+Glitch, Pleroma, Ktistec).

  • +
  • Mejoras que permitirán diferenciar el contenido a publicar en el Fediverso y en el sitio de Sutty.

  • +
  • La posibilidad de exportar tu cuenta a una instancia del Fediverso desde tu panel.

  • +
  • La posibilidad de que Sutty anuncie tu contenido y/o usuarie del Fediverse en forma automática para atraer seguidorxs. (Ahora, podés hacerlo a través de un formulario).

  • +
  • Acceder a la lista de seguidorxs y seguides desde tu panel.

  • +
  • Seguir, dejar de seguir, bloquear usuaries y/o instancias del Fediverso desde el panel.

  • +

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

+ attachment: + - type: Document + mediaType: image/png + url: https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png + name: Botones de colores para activar la "Web Disribuida" y el "Fediverso". diff --git a/db/seeds/remote_profile.yaml b/db/seeds/remote_profile.yaml new file mode 100644 index 00000000..1a670d6b --- /dev/null +++ b/db/seeds/remote_profile.yaml @@ -0,0 +1,106 @@ +--- +"@context": +- https://www.w3.org/ns/activitystreams +- https://w3id.org/security/v1 +- manuallyApprovesFollowers: as:manuallyApprovesFollowers + toot: http://joinmastodon.org/ns# + featured: + "@id": toot:featured + "@type": "@id" + featuredTags: + "@id": toot:featuredTags + "@type": "@id" + alsoKnownAs: + "@id": as:alsoKnownAs + "@type": "@id" + movedTo: + "@id": as:movedTo + "@type": "@id" + schema: http://schema.org# + PropertyValue: schema:PropertyValue + value: schema:value + discoverable: toot:discoverable + Device: toot:Device + Ed25519Signature: toot:Ed25519Signature + Ed25519Key: toot:Ed25519Key + Curve25519Key: toot:Curve25519Key + EncryptedMessage: toot:EncryptedMessage + publicKeyBase64: toot:publicKeyBase64 + deviceId: toot:deviceId + claim: + "@type": "@id" + "@id": toot:claim + fingerprintKey: + "@type": "@id" + "@id": toot:fingerprintKey + identityKey: + "@type": "@id" + "@id": toot:identityKey + devices: + "@type": "@id" + "@id": toot:devices + messageFranking: toot:messageFranking + messageType: toot:messageType + cipherText: toot:cipherText + suspended: toot:suspended + focalPoint: + "@container": "@list" + "@id": toot:focalPoint +id: https://mastodon.mauve.moe/users/mauve +type: Person +following: https://mastodon.mauve.moe/users/mauve/following +followers: https://mastodon.mauve.moe/users/mauve/followers +inbox: https://mastodon.mauve.moe/users/mauve/inbox +outbox: https://mastodon.mauve.moe/users/mauve/outbox +featured: https://mastodon.mauve.moe/users/mauve/collections/featured +featuredTags: https://mastodon.mauve.moe/users/mauve/collections/tags +preferredUsername: mauve +name: "Mauve \U0001F441\U0001F49C" +summary: "

Occult Enby that's making local-first software with peer to peer + protocols, mesh networks, and the web.

Also exploring what a local-first + cyberspace might look like in my spare time.

" +url: https://mastodon.mauve.moe/@mauve +manuallyApprovesFollowers: false +discoverable: true +published: '2022-04-25T00:00:00Z' +devices: https://mastodon.mauve.moe/users/mauve/collections/devices +alsoKnownAs: +- https://infosec.exchange/users/RangerMauve +publicKey: + id: https://mastodon.mauve.moe/users/mauve#main-key + owner: https://mastodon.mauve.moe/users/mauve + publicKeyPem: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjxu6bRQOjH4caQu7JgZ + umIWFeX0ZdbVnofElev2d9JByqcDoWhmaks3RYdW71RDPNrr0JxqZvUbIw9kQBng + 7iQ9YTcXTdJ/N9CQoB22msffYkEIw4ilehCDXdchNs4aoVAUwI8IhkM0p/itz6gK + 75C3CQv74Y7rHUJC8ob2p4KUwRUyhgzyhp8QWwCAn/RZ28wP8EbjWF9IskMRo9vq + WUX+Io6hpADRkSwZGoOSW2zxCEBVco6tRmABTte8I0WcAucLyMEyfGMlUvxRew4D + zAWoEBS8SyqM68vUabbZYLns6kya34tvsf1NkvajDGrfgU3D0LlGX++tOa6N9Pkf + XwIDAQAB + -----END PUBLIC KEY----- +tag: [] +attachment: +- type: PropertyValue + name: Pronouns + value: they/them/it +- type: PropertyValue + name: Email + value: mauve@mauve.moe +- type: PropertyValue + name: Matrix + value: @mauve:mauve.moe +- type: PropertyValue + name: Github/Twitter + value: "@RangerMauve" +endpoints: + sharedInbox: https://mastodon.mauve.moe/inbox +icon: + type: Image + mediaType: image/png + url: https://mastodon.mauve.moe/system/accounts/avatars/000/000/002/original/e4b910cee121b1b8.png +image: + type: Image + mediaType: image/png + url: https://mastodon.mauve.moe/system/accounts/headers/000/000/002/original/a96f990025091662.png From 3a44c9629fd87952fe9347d6334bd0d8eb93a17e Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 17 Jan 2024 15:55:31 -0300 Subject: [PATCH 010/150] agregadas traducciones a posts/edit #15002 --- app/views/posts/edit.haml | 2 +- config/locales/en.yml | 4 ++++ config/locales/es.yml | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/views/posts/edit.haml b/app/views/posts/edit.haml index c792ac93..126b811e 100644 --- a/app/views/posts/edit.haml +++ b/app/views/posts/edit.haml @@ -1,6 +1,6 @@ .row.justify-content-center .col-md-8 - = render 'layouts/details', summary: "Post" do + = render 'layouts/details', summary: t('.post') do = render 'posts/form', site: @site, post: @post = render 'layouts/details', summary: t('.moderation_queue') do = render 'posts/moderation_queue', site: @site, post: @post, moderation_queue: @moderation_queue diff --git a/config/locales/en.yml b/config/locales/en.yml index fc9d4894..5a1f31bc 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -221,6 +221,10 @@ en: mutual_aid: Mutual aid contact_us: "Contact us" contact_us_href: "https://sutty.nl/en/#contact" + posts: + edit: + moderation_queue: Moderation Queue + post: Post collaborations: collaborate: submit: Register diff --git a/config/locales/es.yml b/config/locales/es.yml index 4bda4982..3b54fbba 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -221,6 +221,10 @@ es: mutual_aid: Ayuda mutua contact_us: "Contacto" contact_us_href: "https://sutty.nl/#contacto" + posts: + edit: + moderation_queue: Cola de moderación + post: Publicación collaborations: collaborate: submit: Registrarme From 49039c24b7ad16d5791ef606c80858ed7739db6a Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 17 Jan 2024 16:12:04 -0300 Subject: [PATCH 011/150] =?UTF-8?q?agregada=20vista=20de=20remote=20profil?= =?UTF-8?q?e=20b=C3=A1sica=20#15003?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/remote_profile.haml | 1 + 1 file changed, 1 insertion(+) create mode 100644 app/views/moderation_queue/remote_profile.haml diff --git a/app/views/moderation_queue/remote_profile.haml b/app/views/moderation_queue/remote_profile.haml new file mode 100644 index 00000000..537ab91c --- /dev/null +++ b/app/views/moderation_queue/remote_profile.haml @@ -0,0 +1 @@ +%h1= @remote_profile['name'] \ No newline at end of file From ed0c237d60e1bdaa295c50c8bb08c885f1da6e04 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 17 Jan 2024 16:14:02 -0300 Subject: [PATCH 012/150] agregada partial de details #15000 --- app/views/layouts/_details.haml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 app/views/layouts/_details.haml diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml new file mode 100644 index 00000000..9d6e04a1 --- /dev/null +++ b/app/views/layouts/_details.haml @@ -0,0 +1,4 @@ +%details + %summary= @summary + + = yield \ No newline at end of file From 4c902c8aaf58807c54522f6ba1a33061f034940f Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 17 Jan 2024 16:39:20 -0300 Subject: [PATCH 013/150] feat: agregado clase details a application.scss #15000 --- app/assets/stylesheets/application.scss | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 7f62e658..7f7908ca 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -558,3 +558,31 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); } } } +// details styles + +.details summary { + list-style: none; + cursor: default; + position: relative; + + &::after { + content: '▶'; + font-size: 2rem; + position: absolute; + left: 97%; + bottom: 46%; + transform: rotate(55deg); + color: $magenta + } + + &:focus { + background-color: #13FEFE; + color: black + } + } + +.details[open] > summary::after { + transform: rotate(90deg) translatey(-0.1em); + color: $magenta + } + \ No newline at end of file From f098de102eab41d817dc764e59cdbbb1aa367d47 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 17 Jan 2024 17:16:52 -0300 Subject: [PATCH 014/150] feat: agregadas views de moderation_queue #15001 --- app/views/moderation_queue/index.haml | 2 ++ app/views/posts/_moderation_queue.haml | 0 2 files changed, 2 insertions(+) create mode 100644 app/views/moderation_queue/index.haml create mode 100644 app/views/posts/_moderation_queue.haml diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml new file mode 100644 index 00000000..ce5dda0f --- /dev/null +++ b/app/views/moderation_queue/index.haml @@ -0,0 +1,2 @@ +- @comments.each do |comment| + %h1= comment['id'] \ No newline at end of file diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml new file mode 100644 index 00000000..e69de29b From ad8e5bc8115a908d31a964d357529ef4ce690d53 Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 17 Jan 2024 17:37:02 -0300 Subject: [PATCH 015/150] fix: corregido edit in es.yml --- app/views/posts/index.haml | 2 +- app/views/posts/show.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/posts/index.haml b/app/views/posts/index.haml index 374f06ee..69fb2d8f 100644 --- a/app/views/posts/index.haml +++ b/app/views/posts/index.haml @@ -126,7 +126,7 @@ = post.order %td.text-nowrap - if @usuarie || policy(post).edit? - = link_to t('posts.edit'), edit_site_post_path(@site, post.path), class: 'btn btn-secondary btn-block' + = link_to t('posts.edit_post'), edit_site_post_path(@site, post.path), class: 'btn btn-secondary btn-block' - if @usuarie || policy(post).destroy? = link_to t('posts.destroy'), site_post_path(@site, post.path), class: 'btn btn-secondary btn-block', method: :delete, data: { confirm: t('posts.confirm_destroy') } diff --git a/app/views/posts/show.haml b/app/views/posts/show.haml index 10900d67..ec191d87 100644 --- a/app/views/posts/show.haml +++ b/app/views/posts/show.haml @@ -2,7 +2,7 @@ .row.justify-content-center .col-md-8 %article.content.table-responsive-md - = link_to t('posts.edit'), + = link_to t('posts.edit_post'), edit_site_post_path(@site, @post.id), class: 'btn btn-secondary btn-block' From 5d26c6746e6160986e01c03d7bf2cfc7f2afb3db Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 17 Jan 2024 17:37:53 -0300 Subject: [PATCH 016/150] fix: traducciones #15002 --- config/locales/en.yml | 12 +++++++----- config/locales/es.yml | 15 ++++++++++----- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 5a1f31bc..4c03fd30 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,4 +1,7 @@ en: + moderation_queue: + remote_profile: + user: Username dark: Dark dir: ltr en: English @@ -221,10 +224,6 @@ en: mutual_aid: Mutual aid contact_us: "Contact us" contact_us_href: "https://sutty.nl/en/#contact" - posts: - edit: - moderation_queue: Moderation Queue - post: Post collaborations: collaborate: submit: Register @@ -582,7 +581,10 @@ en: categories: 'Everything' index: search: 'Search' - edit: 'Edit' + edit_post: 'Edit' + edit: + moderation_queue: Moderation Queue + post: Post preview: btn: 'Preliminary version' alert: 'Not every article type has a preliminary version' diff --git a/config/locales/es.yml b/config/locales/es.yml index 3b54fbba..cc3590ad 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,4 +1,7 @@ es: + moderation_queue: + remote_profile: + user: Nombre de usuario dark: Oscuro es: Castellano en: English @@ -221,10 +224,6 @@ es: mutual_aid: Ayuda mutua contact_us: "Contacto" contact_us_href: "https://sutty.nl/#contacto" - posts: - edit: - moderation_queue: Cola de moderación - post: Publicación collaborations: collaborate: submit: Registrarme @@ -524,6 +523,9 @@ es: en: 'inglés' ar: 'árabe' posts: + edit: + moderation_queue: Moderation Queue + post: Post prev: Página anterior next: Página siguiente empty: No hay artículos con estos parámetros de búsqueda. @@ -590,7 +592,10 @@ es: remove_filter_help: 'Quitar este filtro: %{filter}' index: search: 'Buscar' - edit: 'Editar' + edit_post: 'Editar' + edit: + moderation_queue: Cola de moderación + post: Publicación preview: btn: 'Versión preliminar' alert: 'No todos los tipos de artículos poseen vista preliminar :)' From 28ddaca35a972d797a60191abf66a159669a4248 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 19 Jan 2024 13:41:23 -0300 Subject: [PATCH 017/150] fix: corregido details de post edit --- app/assets/stylesheets/application.scss | 2 +- app/views/layouts/_details.haml | 8 ++++---- app/views/posts/edit.haml | 6 ++++-- config/locales/es.yml | 7 ++----- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 7f7908ca..b11be0de 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -570,7 +570,7 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); font-size: 2rem; position: absolute; left: 97%; - bottom: 46%; + bottom: 2%; transform: rotate(55deg); color: $magenta } diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index 9d6e04a1..f950b097 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -1,4 +1,4 @@ -%details - %summary= @summary - - = yield \ No newline at end of file +%details.details.py-2 + %summary + %h3.py-2.text-center= @summary + = yield \ No newline at end of file diff --git a/app/views/posts/edit.haml b/app/views/posts/edit.haml index 126b811e..488056a4 100644 --- a/app/views/posts/edit.haml +++ b/app/views/posts/edit.haml @@ -1,6 +1,8 @@ .row.justify-content-center .col-md-8 - = render 'layouts/details', summary: t('.post') do + - @summary = t('posts.edit.post') + = render 'layouts/details', summary: @summary do = render 'posts/form', site: @site, post: @post - = render 'layouts/details', summary: t('.moderation_queue') do + - @summary = t('posts.edit.moderation_queue') + = render 'layouts/details', summary: @summary do = render 'posts/moderation_queue', site: @site, post: @post, moderation_queue: @moderation_queue diff --git a/config/locales/es.yml b/config/locales/es.yml index cc3590ad..1e4f870c 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -524,8 +524,8 @@ es: ar: 'árabe' posts: edit: - moderation_queue: Moderation Queue - post: Post + moderation_queue: Cola de Moderación + post: Contenido prev: Página anterior next: Página siguiente empty: No hay artículos con estos parámetros de búsqueda. @@ -593,9 +593,6 @@ es: index: search: 'Buscar' edit_post: 'Editar' - edit: - moderation_queue: Cola de moderación - post: Publicación preview: btn: 'Versión preliminar' alert: 'No todos los tipos de artículos poseen vista preliminar :)' From ef7d9d2a1ee7b6fed274f869da2c20da95297915 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 19 Jan 2024 15:06:20 -0300 Subject: [PATCH 018/150] fix: eliminados espacios en blanco en varias lineas --- app/views/posts/edit.haml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/posts/edit.haml b/app/views/posts/edit.haml index 488056a4..5234f257 100644 --- a/app/views/posts/edit.haml +++ b/app/views/posts/edit.haml @@ -1,8 +1,8 @@ .row.justify-content-center .col-md-8 - - @summary = t('posts.edit.post') - = render 'layouts/details', summary: @summary do + - @summary = t('posts.edit.post') + = render 'layouts/details', summary: @summary do = render 'posts/form', site: @site, post: @post - - @summary = t('posts.edit.moderation_queue') + - @summary = t('posts.edit.moderation_queue') = render 'layouts/details', summary: @summary do = render 'posts/moderation_queue', site: @site, post: @post, moderation_queue: @moderation_queue From d895b9c808fbf4f7977f45a6723e4367aa23c17f Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 22 Jan 2024 14:17:24 -0300 Subject: [PATCH 019/150] feat: agregados componentes comentario, botonera y boton_base --- app/assets/stylesheets/application.scss | 4 ++++ app/views/layouts/_details.haml | 2 ++ app/views/moderation_queue/_btn_base.haml | 3 +++ app/views/moderation_queue/_button_box.haml | 14 ++++++++++++++ app/views/moderation_queue/_comment.haml | 4 ++++ app/views/posts/_moderation_queue.haml | 3 +++ config/locales/es.yml | 6 ++++++ 7 files changed, 36 insertions(+) create mode 100644 app/views/moderation_queue/_btn_base.haml create mode 100644 app/views/moderation_queue/_button_box.haml create mode 100644 app/views/moderation_queue/_comment.haml diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index b11be0de..a4446532 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -585,4 +585,8 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); transform: rotate(90deg) translatey(-0.1em); color: $magenta } + +.bg-blue { + background-color: $azul; +} \ No newline at end of file diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index f950b097..4fe4d2af 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -1,3 +1,5 @@ +-# Detail Cola de Moderación + %details.details.py-2 %summary %h3.py-2.text-center= @summary diff --git a/app/views/moderation_queue/_btn_base.haml b/app/views/moderation_queue/_btn_base.haml new file mode 100644 index 00000000..74e9516a --- /dev/null +++ b/app/views/moderation_queue/_btn_base.haml @@ -0,0 +1,3 @@ +-# Componente Botón general Moderación + +%a.btn.rounded.mx-2{role: "button", href: href, class: @class} #{text} \ No newline at end of file diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_button_box.haml new file mode 100644 index 00000000..ea038e59 --- /dev/null +++ b/app/views/moderation_queue/_button_box.haml @@ -0,0 +1,14 @@ +-# Componente Botonera de Moderación + +.d-flex.py-2.justify-content-center + -# parámetros de botones + -# text, class, href + - @btn_box_params = [[t('.text_pause'), 'bg-outline-light', 'https://sutty.nl/'], + [t('.text_reject'), 'btn-outline-info blue', 'https://sutty.nl/'], + [t('.text_accept'), 'bg-blue white', 'https://sutty.nl/'], + [t('.text_reply'), 'btn-outline-dark', 'https://sutty.nl/'], + [t('.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] + + - @btn_box_params.each do |btn| + - @class = btn[1] + = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml new file mode 100644 index 00000000..051a84b0 --- /dev/null +++ b/app/views/moderation_queue/_comment.haml @@ -0,0 +1,4 @@ +-# Componente Comentario + +%p.py-2 Esta línea es donde irá el cuerpo del comentario += render 'moderation_queue/button_box' \ No newline at end of file diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index e69de29b..77df7353 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -0,0 +1,3 @@ +.flex + %h2.text-center Comentarios + = render 'moderation_queue/comment' \ No newline at end of file diff --git a/config/locales/es.yml b/config/locales/es.yml index 1e4f870c..f9cd1b4f 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -2,6 +2,12 @@ es: moderation_queue: remote_profile: user: Nombre de usuario + button_box: + text_pause: Pausa + text_reject: Rechazar + text_accept: Aceptar Publicación + text_reply: Responder + text_report: Reportar dark: Oscuro es: Castellano en: English From 9fa45b01ac8e8afc29babcc462ab2719e010ca9b Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 22 Jan 2024 15:35:19 -0300 Subject: [PATCH 020/150] =?UTF-8?q?feat:=20agregadas=20traducci=C3=B3n=20i?= =?UTF-8?q?ngl=C3=A9s=20botones=20de=20moderaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/application.scss | 4 +++- app/views/moderation_queue/_btn_base.haml | 2 +- app/views/moderation_queue/_button_box.haml | 6 +++--- config/locales/en.yml | 6 ++++++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index a4446532..c0a666ab 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -3,6 +3,7 @@ $white: white; $grey: grey; $cyan: #13fefe; $magenta: #f206f9; +$blue: blue; $colors: ( "black": $black, @@ -14,6 +15,7 @@ $colors: ( // Redefinir variables de Bootstrap $primary: $magenta; $secondary: $black; +$info: $blue; $jumbotron-bg: transparent; $enable-rounded: false; $form-feedback-valid-color: $black; @@ -589,4 +591,4 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); .bg-blue { background-color: $azul; } - \ No newline at end of file + diff --git a/app/views/moderation_queue/_btn_base.haml b/app/views/moderation_queue/_btn_base.haml index 74e9516a..5f4561ef 100644 --- a/app/views/moderation_queue/_btn_base.haml +++ b/app/views/moderation_queue/_btn_base.haml @@ -1,3 +1,3 @@ -# Componente Botón general Moderación -%a.btn.rounded.mx-2{role: "button", href: href, class: @class} #{text} \ No newline at end of file +%a.btn.btn-lg.rounded.mx-2{role: "button", href: href, class: @class} #{text} \ No newline at end of file diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_button_box.haml index ea038e59..9a2f5947 100644 --- a/app/views/moderation_queue/_button_box.haml +++ b/app/views/moderation_queue/_button_box.haml @@ -1,10 +1,10 @@ -# Componente Botonera de Moderación -.d-flex.py-2.justify-content-center +.d-inline-flex.py-2.justify-content-center -# parámetros de botones -# text, class, href - - @btn_box_params = [[t('.text_pause'), 'bg-outline-light', 'https://sutty.nl/'], - [t('.text_reject'), 'btn-outline-info blue', 'https://sutty.nl/'], + - @btn_box_params = [[t('.text_pause'), 'btn-outline-secondary disabled', ''], + [t('.text_reject'), 'btn-outline-info', 'https://sutty.nl/'], [t('.text_accept'), 'bg-blue white', 'https://sutty.nl/'], [t('.text_reply'), 'btn-outline-dark', 'https://sutty.nl/'], [t('.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] diff --git a/config/locales/en.yml b/config/locales/en.yml index 4c03fd30..ef14f51f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2,6 +2,12 @@ en: moderation_queue: remote_profile: user: Username + button_box: + text_pause: Pause + text_reject: Reject + text_accept: Accept Publication + text_reply: Reply + text_report: Report dark: Dark dir: ltr en: English From 45d98b316914db31f47c370b547ac5c31f641f74 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 22 Jan 2024 16:05:57 -0300 Subject: [PATCH 021/150] fix: corregidas clases en botonera --- app/views/moderation_queue/_button_box.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_button_box.haml index 9a2f5947..99744088 100644 --- a/app/views/moderation_queue/_button_box.haml +++ b/app/views/moderation_queue/_button_box.haml @@ -1,6 +1,6 @@ -# Componente Botonera de Moderación -.d-inline-flex.py-2.justify-content-center +.d-flex.py-2.justify-content-center -# parámetros de botones -# text, class, href - @btn_box_params = [[t('.text_pause'), 'btn-outline-secondary disabled', ''], From 1edf052109c643bceb60aed6c1aaaf162a1e0779 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 22 Jan 2024 17:38:32 -0300 Subject: [PATCH 022/150] fix: corregido padding en moderation_queue view --- app/views/posts/_moderation_queue.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 77df7353..4b405bbb 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,3 +1,3 @@ .flex - %h2.text-center Comentarios + %h3.text-center.py-2 Comentarios = render 'moderation_queue/comment' \ No newline at end of file From 9cb1e6fd36afc95f912e45f6323e6c0ade9c8c41 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 23 Jan 2024 16:29:11 -0300 Subject: [PATCH 023/150] =?UTF-8?q?feat:=20index=20de=20cola=20de=20modera?= =?UTF-8?q?ci=C3=B3n,=20con=20metadatos=20pero=20sin=20maquetar=20#15039?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comment.haml | 7 +++++++ app/views/moderation_queue/index.haml | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 051a84b0..f2fb3ac2 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -1,4 +1,11 @@ -# Componente Comentario %p.py-2 Esta línea es donde irá el cuerpo del comentario + + +.row + .col.col-1 + %p "hola" + .col + %p "chau" = render 'moderation_queue/button_box' \ No newline at end of file diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index ce5dda0f..0881add2 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,2 +1,4 @@ -- @comments.each do |comment| - %h1= comment['id'] \ No newline at end of file +- @moderation_queue.each do |comment| + + = render 'comment', comment: comment +-# %h1= comment['id'] \ No newline at end of file From 2c7081a57f361c3e6f5479cd68d4659aaed62746 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 23 Jan 2024 17:04:38 -0300 Subject: [PATCH 024/150] feat: agregado componente remote_profile y botonera --- app/views/moderation_queue/_comment.haml | 2 +- .../{_button_box.haml => _comment_button_box.haml} | 0 app/views/moderation_queue/_profile_button_box.haml | 12 ++++++++++++ app/views/moderation_queue/_remote_profile.haml | 5 +++++ app/views/moderation_queue/remote_profile.haml | 4 +++- config/locales/es.yml | 11 +++++++++-- 6 files changed, 30 insertions(+), 4 deletions(-) rename app/views/moderation_queue/{_button_box.haml => _comment_button_box.haml} (100%) create mode 100644 app/views/moderation_queue/_profile_button_box.haml create mode 100644 app/views/moderation_queue/_remote_profile.haml diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 051a84b0..e43e8c42 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -1,4 +1,4 @@ -# Componente Comentario %p.py-2 Esta línea es donde irá el cuerpo del comentario -= render 'moderation_queue/button_box' \ No newline at end of file += render 'moderation_queue/comment_button_box' \ No newline at end of file diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_comment_button_box.haml similarity index 100% rename from app/views/moderation_queue/_button_box.haml rename to app/views/moderation_queue/_comment_button_box.haml diff --git a/app/views/moderation_queue/_profile_button_box.haml b/app/views/moderation_queue/_profile_button_box.haml new file mode 100644 index 00000000..d5852ffa --- /dev/null +++ b/app/views/moderation_queue/_profile_button_box.haml @@ -0,0 +1,12 @@ +-# Componente Botonera de Profile + +.d-flex.py-2.justify-content-center + -# parámetros de botones + -# text, class, href + - @btn_box_params = [[t('.text_deny'), 'btn-outline-info', ''], + [t('.text_allow'), 'btn-success', 'https://sutty.nl/'], + [t('.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] + + - @btn_box_params.each do |btn| + - @class = btn[1] + = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml new file mode 100644 index 00000000..3a18a24a --- /dev/null +++ b/app/views/moderation_queue/_remote_profile.haml @@ -0,0 +1,5 @@ +.flex.py-2.mx-2.text-center + %h4= t('.profile_name') + ": " + @remote_profile['name'] + %h5= t('.profile_id') + ": " + @remote_profile['id'] + %h5= t('.profile_published') + ": " + @remote_profile['published'] + = render 'moderation_queue/profile_button_box' \ No newline at end of file diff --git a/app/views/moderation_queue/remote_profile.haml b/app/views/moderation_queue/remote_profile.haml index 537ab91c..36613405 100644 --- a/app/views/moderation_queue/remote_profile.haml +++ b/app/views/moderation_queue/remote_profile.haml @@ -1 +1,3 @@ -%h1= @remote_profile['name'] \ No newline at end of file +.flex + %h1.text-center= t('.profile') + = render 'moderation_queue/remote_profile' \ No newline at end of file diff --git a/config/locales/es.yml b/config/locales/es.yml index f9cd1b4f..0f5e314c 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,8 +1,15 @@ es: moderation_queue: remote_profile: - user: Nombre de usuario - button_box: + profile: Cuentas + profile_name: Nombre de la Cuenta + profile_id: ID + profile_published: Publicada + profile_button_box: + text_deny: Bloquear que te siga + text_allow: Permitir que te siga + text_report: Reportar + comment_button_box: text_pause: Pausa text_reject: Rechazar text_accept: Aceptar Publicación From f78fb436817aa5546cc98ef120013ca291076064 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 23 Jan 2024 17:13:42 -0300 Subject: [PATCH 025/150] =?UTF-8?q?feat:=20esqueleto=20b=C3=A1sico=20maque?= =?UTF-8?q?tado=20de=20comentario=20para=20cola=20de=20moderaci=C3=B3n=20#?= =?UTF-8?q?15039?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comment.haml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index f2fb3ac2..766e4a22 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -3,9 +3,16 @@ %p.py-2 Esta línea es donde irá el cuerpo del comentario +.row.border.border-white + .col.col-1.border.border-white + %p= comment['published'] # falta parsear + .col.border.border-white + %a{:href => comment['attributedTo']}= comment['attributedTo'] #falta parsear +.row.border.border-white + %p= "En respuesta a: " + %span + %a{:href => comment['inReplyTo']}= comment['inReplyTo'] +.row.border.border-white + %p= comment['content'] #falta parsear .row - .col.col-1 - %p "hola" - .col - %p "chau" -= render 'moderation_queue/button_box' \ No newline at end of file + = render 'moderation_queue/button_box' \ No newline at end of file From d3e5434a00a703c7c749bbc3ac1e01ca4c1f3854 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 25 Jan 2024 15:48:25 -0300 Subject: [PATCH 026/150] fix: agregadas traduccion y estilos a componente _comment --- app/views/moderation_queue/_comment.haml | 36 +++++++++++++----------- config/locales/es.yml | 3 ++ 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index d412ce62..1093a26b 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -1,18 +1,20 @@ -# Componente Comentario - -%p.py-2 Esta línea es donde irá el cuerpo del comentario - - -.row.border.border-white - .col.col-1.border.border-white - %p= comment['published'] # falta parsear - .col.border.border-white - %a{:href => comment['attributedTo']}= comment['attributedTo'] #falta parsear -.row.border.border-white - %p= "En respuesta a: " - %span - %a{:href => comment['inReplyTo']}= comment['inReplyTo'] -.row.border.border-white - %p= comment['content'] #falta parsear -.row - = render 'moderation_queue/comment_button_box' +.flex.mx-4.my-5 + .row.no-gutters + .col-1 + %input{type: "checkbox", id: ""} + .col-10 + .row.border.border-white + .col.col-1.border.border-white.mr-2 + %p= comment['published'].to_datetime.strftime('%m/%d/%Y') # falta parsear + .col.border.border-white + %span.mr-3= t('.source_profile') + %a{:href => comment['attributedTo']}= comment['attributedTo'] #falta parsear + .row.border.border-white + %p.mr-3= t('.reply_to') + %span + %a{:href => comment['inReplyTo']}= comment['inReplyTo'] + .row.border.border-white + %p= comment['content'] #falta parsear + .row.d-flex.justify-content-center + = render 'moderation_queue/comment_button_box' diff --git a/config/locales/es.yml b/config/locales/es.yml index 0f5e314c..451d5fa4 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,5 +1,8 @@ es: moderation_queue: + comment: + source_profile: Cuenta de Origen + reply_to: En respuesta a remote_profile: profile: Cuentas profile_name: Nombre de la Cuenta From f6a93b5bc21722d731cceef54a66c0bb17c2b222 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 25 Jan 2024 16:15:20 -0300 Subject: [PATCH 027/150] fix: corregida llamada en _moderation_queue para mostrar comentarios en vista posts/edit --- app/controllers/posts_controller.rb | 1 + app/views/moderation_queue/_comment_button_box.haml | 8 ++++---- app/views/moderation_queue/index.haml | 1 - app/views/posts/_moderation_queue.haml | 3 ++- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index d572e052..12b3ab55 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -82,6 +82,7 @@ class PostsController < ApplicationController authorize post breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' + @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) end def update diff --git a/app/views/moderation_queue/_comment_button_box.haml b/app/views/moderation_queue/_comment_button_box.haml index 99744088..13a9c8a3 100644 --- a/app/views/moderation_queue/_comment_button_box.haml +++ b/app/views/moderation_queue/_comment_button_box.haml @@ -4,10 +4,10 @@ -# parámetros de botones -# text, class, href - @btn_box_params = [[t('.text_pause'), 'btn-outline-secondary disabled', ''], - [t('.text_reject'), 'btn-outline-info', 'https://sutty.nl/'], - [t('.text_accept'), 'bg-blue white', 'https://sutty.nl/'], - [t('.text_reply'), 'btn-outline-dark', 'https://sutty.nl/'], - [t('.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] + [t('.text_reject'), 'btn-outline-info', ''], + [t('.text_accept'), 'bg-blue white', ''], + [t('.text_reply'), 'btn-outline-dark', ''], + [t('.text_report'), 'btn-outline-danger', '']] - @btn_box_params.each do |btn| - @class = btn[1] diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 0881add2..0c693d26 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,4 +1,3 @@ - @moderation_queue.each do |comment| = render 'comment', comment: comment --# %h1= comment['id'] \ No newline at end of file diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 4b405bbb..c754d51d 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,3 +1,4 @@ .flex %h3.text-center.py-2 Comentarios - = render 'moderation_queue/comment' \ No newline at end of file + - @moderation_queue.each do |comment| + = render 'moderation_queue/comment', comment: comment \ No newline at end of file From 1eb2230b2afad89701923da7bd4fbe5cc021278d Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 25 Jan 2024 17:05:06 -0300 Subject: [PATCH 028/150] =?UTF-8?q?fix:=20corregida=20posici=C3=B3n=20de?= =?UTF-8?q?=20botonera=20de=20moderacion=20de=20comentarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comment.haml | 6 ++---- app/views/moderation_queue/index.haml | 1 + app/views/posts/_moderation_queue.haml | 4 +++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 1093a26b..639a6bae 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -5,10 +5,10 @@ %input{type: "checkbox", id: ""} .col-10 .row.border.border-white - .col.col-1.border.border-white.mr-2 + .col.col-1.border.border-white.mr-5 %p= comment['published'].to_datetime.strftime('%m/%d/%Y') # falta parsear .col.border.border-white - %span.mr-3= t('.source_profile') + %span.mr-2= t('.source_profile') %a{:href => comment['attributedTo']}= comment['attributedTo'] #falta parsear .row.border.border-white %p.mr-3= t('.reply_to') @@ -16,5 +16,3 @@ %a{:href => comment['inReplyTo']}= comment['inReplyTo'] .row.border.border-white %p= comment['content'] #falta parsear - .row.d-flex.justify-content-center - = render 'moderation_queue/comment_button_box' diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 0c693d26..63b36a3a 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,3 +1,4 @@ - @moderation_queue.each do |comment| = render 'comment', comment: comment + = render 'moderation_queue/comment_button_box' \ No newline at end of file diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index c754d51d..2528224f 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,4 +1,6 @@ .flex %h3.text-center.py-2 Comentarios - @moderation_queue.each do |comment| - = render 'moderation_queue/comment', comment: comment \ No newline at end of file + = render 'moderation_queue/comment', comment: comment + .row.d-flex.justify-content-center + = render 'moderation_queue/comment_button_box' \ No newline at end of file From 9e8a83b70665885604b287bf025ebb8412b7a116 Mon Sep 17 00:00:00 2001 From: maki Date: Fri, 26 Jan 2024 15:15:48 -0300 Subject: [PATCH 029/150] fix: html de comentarios sanitizado #15039 --- app/views/moderation_queue/_comment.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 639a6bae..d66d1187 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -15,4 +15,4 @@ %span %a{:href => comment['inReplyTo']}= comment['inReplyTo'] .row.border.border-white - %p= comment['content'] #falta parsear + %p= sanitize comment['content'] #falta parsear From 5a6b0373a2dc095a7c9b608ef73b3731c276a583 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 26 Jan 2024 15:23:38 -0300 Subject: [PATCH 030/150] feat: agregado componente caja de filtros de comentarios y compo filtro_base --- app/views/moderation_queue/_comment.haml | 4 ++-- app/views/moderation_queue/_comment_filter_box.haml | 6 ++++++ app/views/moderation_queue/_filter_base.haml | 8 ++++++++ app/views/moderation_queue/index.haml | 1 + app/views/posts/_moderation_queue.haml | 1 + config/locales/es.yml | 4 ++++ 6 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 app/views/moderation_queue/_comment_filter_box.haml create mode 100644 app/views/moderation_queue/_filter_base.haml diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index d66d1187..a3f2499c 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -6,7 +6,7 @@ .col-10 .row.border.border-white .col.col-1.border.border-white.mr-5 - %p= comment['published'].to_datetime.strftime('%m/%d/%Y') # falta parsear + %p= comment['published'].to_datetime.strftime('%m/%d/%Y') .col.border.border-white %span.mr-2= t('.source_profile') %a{:href => comment['attributedTo']}= comment['attributedTo'] #falta parsear @@ -15,4 +15,4 @@ %span %a{:href => comment['inReplyTo']}= comment['inReplyTo'] .row.border.border-white - %p= sanitize comment['content'] #falta parsear + %p= sanitize comment['content'] diff --git a/app/views/moderation_queue/_comment_filter_box.haml b/app/views/moderation_queue/_comment_filter_box.haml new file mode 100644 index 00000000..e9abe602 --- /dev/null +++ b/app/views/moderation_queue/_comment_filter_box.haml @@ -0,0 +1,6 @@ +-# Componente Caja de Filtros + +.d-flex.py-2.justify-content-center + = render 'moderation_queue/filter_base', text: t('.text_checked') + = render 'moderation_queue/filter_base', text: t('.text_show') + = render 'moderation_queue/filter_base', text: t('.text_order') \ No newline at end of file diff --git a/app/views/moderation_queue/_filter_base.haml b/app/views/moderation_queue/_filter_base.haml new file mode 100644 index 00000000..6b62b99d --- /dev/null +++ b/app/views/moderation_queue/_filter_base.haml @@ -0,0 +1,8 @@ +-# Componente Filtro +.dropdown.mx-4 + %button#dropdownMenuButton.btn.btn-outline-secondary.dropdown-toggle{:type => "button", "data-toggle" => "dropdown", "aria-haspopup" => "true", "aria-expanded" => "false"} + %span #{text} + .dropdown-menu{"aria-labelledby" => "dropdownMenuButton"} + %a.dropdown-item{:href => "#"} Action + %a.dropdown-item{:href => "#"} Another action + %a.dropdown-item{:href => "#"} Something else here diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 63b36a3a..dbc1297a 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,3 +1,4 @@ += render 'moderation_queue/comment_filter_box' - @moderation_queue.each do |comment| = render 'comment', comment: comment diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 2528224f..7daa0c8e 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,6 +1,7 @@ .flex %h3.text-center.py-2 Comentarios - @moderation_queue.each do |comment| + = render 'moderation_queue/comment_filter_box' = render 'moderation_queue/comment', comment: comment .row.d-flex.justify-content-center = render 'moderation_queue/comment_button_box' \ No newline at end of file diff --git a/config/locales/es.yml b/config/locales/es.yml index 451d5fa4..d579d55e 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -18,6 +18,10 @@ es: text_accept: Aceptar Publicación text_reply: Responder text_report: Reportar + comment_filter_box: + text_order: Ordenar por + text_show: Ver + text_checked: Con los marcados dark: Oscuro es: Castellano en: English From 4b67968d3b9888ffb50dc7b2f6de499a7780e6c9 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 29 Jan 2024 13:28:58 -0300 Subject: [PATCH 031/150] fix: corregido botonera de filtros en componente moderation_queue --- app/views/posts/_moderation_queue.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 7daa0c8e..80a8b11c 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,7 +1,7 @@ .flex %h3.text-center.py-2 Comentarios + = render 'moderation_queue/comment_filter_box' - @moderation_queue.each do |comment| - = render 'moderation_queue/comment_filter_box' = render 'moderation_queue/comment', comment: comment .row.d-flex.justify-content-center = render 'moderation_queue/comment_button_box' \ No newline at end of file From 2f803f9ea625b8f0f48b6c2e47c77058930f66a6 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 29 Jan 2024 13:48:11 -0300 Subject: [PATCH 032/150] fix: corregidas lineas segun CI --- app/views/moderation_queue/_filter_base.haml | 6 +++--- app/views/moderation_queue/_profile_button_box.haml | 2 +- app/views/moderation_queue/_remote_profile.haml | 4 ++-- app/views/moderation_queue/remote_profile.haml | 2 +- app/views/posts/_moderation_queue.haml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/views/moderation_queue/_filter_base.haml b/app/views/moderation_queue/_filter_base.haml index 6b62b99d..0b63e59b 100644 --- a/app/views/moderation_queue/_filter_base.haml +++ b/app/views/moderation_queue/_filter_base.haml @@ -3,6 +3,6 @@ %button#dropdownMenuButton.btn.btn-outline-secondary.dropdown-toggle{:type => "button", "data-toggle" => "dropdown", "aria-haspopup" => "true", "aria-expanded" => "false"} %span #{text} .dropdown-menu{"aria-labelledby" => "dropdownMenuButton"} - %a.dropdown-item{:href => "#"} Action - %a.dropdown-item{:href => "#"} Another action - %a.dropdown-item{:href => "#"} Something else here + %a.dropdown-item{ href: '#' } Action + %a.dropdown-item{ href: '#' } Another action + %a.dropdown-item{ href: '#' } Something else here diff --git a/app/views/moderation_queue/_profile_button_box.haml b/app/views/moderation_queue/_profile_button_box.haml index d5852ffa..1201de05 100644 --- a/app/views/moderation_queue/_profile_button_box.haml +++ b/app/views/moderation_queue/_profile_button_box.haml @@ -9,4 +9,4 @@ - @btn_box_params.each do |btn| - @class = btn[1] - = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file + = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 3a18a24a..273b7bd8 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,5 +1,5 @@ .flex.py-2.mx-2.text-center %h4= t('.profile_name') + ": " + @remote_profile['name'] %h5= t('.profile_id') + ": " + @remote_profile['id'] - %h5= t('.profile_published') + ": " + @remote_profile['published'] - = render 'moderation_queue/profile_button_box' \ No newline at end of file + %h5= t('.profile_published') + ": " + @remote_profile['published'].to_datetime.strftime('%m/%d/%Y') + = render 'moderation_queue/profile_button_box' diff --git a/app/views/moderation_queue/remote_profile.haml b/app/views/moderation_queue/remote_profile.haml index 36613405..d1d20f86 100644 --- a/app/views/moderation_queue/remote_profile.haml +++ b/app/views/moderation_queue/remote_profile.haml @@ -1,3 +1,3 @@ .flex %h1.text-center= t('.profile') - = render 'moderation_queue/remote_profile' \ No newline at end of file + = render 'moderation_queue/remote_profile' diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 80a8b11c..f1b0f7ce 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -4,4 +4,4 @@ - @moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment .row.d-flex.justify-content-center - = render 'moderation_queue/comment_button_box' \ No newline at end of file + = render 'moderation_queue/comment_button_box' From 957e79e682e83e57704e43e01d3407f46bbf5df4 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 29 Jan 2024 15:32:47 -0300 Subject: [PATCH 033/150] fix: corregidas variables en partials --- app/views/moderation_queue/_comment_button_box.haml | 4 ++-- app/views/moderation_queue/_profile_button_box.haml | 4 ++-- app/views/moderation_queue/_remote_profile.haml | 6 +++--- app/views/moderation_queue/remote_profile.haml | 2 +- app/views/posts/_moderation_queue.haml | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/views/moderation_queue/_comment_button_box.haml b/app/views/moderation_queue/_comment_button_box.haml index 13a9c8a3..a22f46d5 100644 --- a/app/views/moderation_queue/_comment_button_box.haml +++ b/app/views/moderation_queue/_comment_button_box.haml @@ -3,12 +3,12 @@ .d-flex.py-2.justify-content-center -# parámetros de botones -# text, class, href - - @btn_box_params = [[t('.text_pause'), 'btn-outline-secondary disabled', ''], + - btn_box_params = [[t('.text_pause'), 'btn-outline-secondary disabled', ''], [t('.text_reject'), 'btn-outline-info', ''], [t('.text_accept'), 'bg-blue white', ''], [t('.text_reply'), 'btn-outline-dark', ''], [t('.text_report'), 'btn-outline-danger', '']] - - @btn_box_params.each do |btn| + - btn_box_params.each do |btn| - @class = btn[1] = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file diff --git a/app/views/moderation_queue/_profile_button_box.haml b/app/views/moderation_queue/_profile_button_box.haml index 1201de05..9de64e12 100644 --- a/app/views/moderation_queue/_profile_button_box.haml +++ b/app/views/moderation_queue/_profile_button_box.haml @@ -3,10 +3,10 @@ .d-flex.py-2.justify-content-center -# parámetros de botones -# text, class, href - - @btn_box_params = [[t('.text_deny'), 'btn-outline-info', ''], + - btn_box_params = [[t('.text_deny'), 'btn-outline-info', ''], [t('.text_allow'), 'btn-success', 'https://sutty.nl/'], [t('.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] - - @btn_box_params.each do |btn| + - btn_box_params.each do |btn| - @class = btn[1] = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 273b7bd8..b665dcf2 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,5 +1,5 @@ .flex.py-2.mx-2.text-center - %h4= t('.profile_name') + ": " + @remote_profile['name'] - %h5= t('.profile_id') + ": " + @remote_profile['id'] - %h5= t('.profile_published') + ": " + @remote_profile['published'].to_datetime.strftime('%m/%d/%Y') + %h4= t('.profile_name') + ': ' + remote_profile['name'] + %h5= t('.profile_id') + ': ' + remote_profile['id'] + %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') = render 'moderation_queue/profile_button_box' diff --git a/app/views/moderation_queue/remote_profile.haml b/app/views/moderation_queue/remote_profile.haml index d1d20f86..3eab5e35 100644 --- a/app/views/moderation_queue/remote_profile.haml +++ b/app/views/moderation_queue/remote_profile.haml @@ -1,3 +1,3 @@ .flex %h1.text-center= t('.profile') - = render 'moderation_queue/remote_profile' + = render 'moderation_queue/remote_profile', remote_profile: @remote_profile diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index f1b0f7ce..513632cd 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,7 +1,7 @@ .flex %h3.text-center.py-2 Comentarios = render 'moderation_queue/comment_filter_box' - - @moderation_queue.each do |comment| + - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment .row.d-flex.justify-content-center = render 'moderation_queue/comment_button_box' From 1b0fb009f49a02dd5c9ed68cf77a81b9ef5d41c7 Mon Sep 17 00:00:00 2001 From: maki Date: Mon, 29 Jan 2024 16:35:53 -0300 Subject: [PATCH 034/150] =?UTF-8?q?feat:=20traer=20informaci=C3=B3n=20de?= =?UTF-8?q?=20perfil=20remoto=20vinculado=20al=20comentario=20#15039?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/moderation_queue_controller.rb | 4 ++++ app/views/moderation_queue/_comment.haml | 2 +- app/views/moderation_queue/index.haml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb index eb39dae6..4a65f136 100644 --- a/app/controllers/moderation_queue_controller.rb +++ b/app/controllers/moderation_queue_controller.rb @@ -5,6 +5,10 @@ class ModerationQueueController < ApplicationController # Cola de moderación viendo todo el sitio def index @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) + @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) + @moderation_queue.each do |activity| + activity['attributedTo'] = @remote_profile + end end # Perfil remoto de usuarie diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index a3f2499c..d443802d 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -9,7 +9,7 @@ %p= comment['published'].to_datetime.strftime('%m/%d/%Y') .col.border.border-white %span.mr-2= t('.source_profile') - %a{:href => comment['attributedTo']}= comment['attributedTo'] #falta parsear + %a{:href => comment['attributedTo']}= profile['preferredUsername'] .row.border.border-white %p.mr-3= t('.reply_to') %span diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index dbc1297a..a3897417 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,5 +1,5 @@ = render 'moderation_queue/comment_filter_box' - @moderation_queue.each do |comment| - = render 'comment', comment: comment + = render 'comment', comment: comment, profile: @remote_profile = render 'moderation_queue/comment_button_box' \ No newline at end of file From b7630844747b0fb0ec122e2597158ed99cd7093e Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 31 Jan 2024 15:41:12 -0300 Subject: [PATCH 035/150] feat: dummy data #15076 --- app/controllers/application_controller.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2746ab10..903d3642 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -27,6 +27,15 @@ class ApplicationController < ActionController::Base end private + # Traer datos de muestra de la cola de moderación + def dummy_data + @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) + @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) + @instances = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'instances.yaml'))) + @moderation_queue.each do |activity| + activity['attributedTo'] = @remote_profile + end + end def notify_unconfirmed_email return unless current_usuarie @@ -117,4 +126,5 @@ class ApplicationController < ActionController::Base sites_path end + end From b233a74f61ef522d7f4cd99e8ffba1dc8b2f02e7 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 31 Jan 2024 15:47:19 -0300 Subject: [PATCH 036/150] =?UTF-8?q?fix:=20agregada=20dummy=5Fdata=20en=20e?= =?UTF-8?q?l=20m=C3=A9todo=20edit=20de=20posts=5Fcontroller=20#15076=20#15?= =?UTF-8?q?039?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/posts_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 12b3ab55..8839de52 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -83,6 +83,7 @@ class PostsController < ApplicationController breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) + dummy_data end def update From 836687651e1f922fe71847d5864158fb93a59e5e Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 31 Jan 2024 15:51:53 -0300 Subject: [PATCH 037/150] =?UTF-8?q?fix:=20c=C3=B3digo=20dem=C3=A1s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/posts_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 8839de52..5be56acc 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -82,7 +82,6 @@ class PostsController < ApplicationController authorize post breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' - @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) dummy_data end From 4f6464837ac8a0b8a446353ac4eacb80a1e39d2c Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 31 Jan 2024 15:53:05 -0300 Subject: [PATCH 038/150] fix: a ver si esto arregla --- app/views/posts/_moderation_queue.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 513632cd..b861d67d 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -2,6 +2,6 @@ %h3.text-center.py-2 Comentarios = render 'moderation_queue/comment_filter_box' - moderation_queue.each do |comment| - = render 'moderation_queue/comment', comment: comment + = render 'moderation_queue/comment', comment: comment, profile: @remote_profile .row.d-flex.justify-content-center = render 'moderation_queue/comment_button_box' From 94a86eca9b61efc7c8b5327f0c08f1893a728c18 Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 31 Jan 2024 17:10:34 -0300 Subject: [PATCH 039/150] fix: corregidos colores botonera de comentarios #15028 --- app/views/moderation_queue/_comment_button_box.haml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/moderation_queue/_comment_button_box.haml b/app/views/moderation_queue/_comment_button_box.haml index a22f46d5..bd367e09 100644 --- a/app/views/moderation_queue/_comment_button_box.haml +++ b/app/views/moderation_queue/_comment_button_box.haml @@ -3,10 +3,10 @@ .d-flex.py-2.justify-content-center -# parámetros de botones -# text, class, href - - btn_box_params = [[t('.text_pause'), 'btn-outline-secondary disabled', ''], - [t('.text_reject'), 'btn-outline-info', ''], + - btn_box_params = [[t('.text_pause'), 'btn-secondary', ''], + [t('.text_reject'), 'btn-primary', ''], [t('.text_accept'), 'bg-blue white', ''], - [t('.text_reply'), 'btn-outline-dark', ''], + [t('.text_reply'), 'btn-outline-primary', ''], [t('.text_report'), 'btn-outline-danger', '']] - btn_box_params.each do |btn| From 819ed25e29a2559bcb2a541b3c46cb887e348fc4 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 1 Feb 2024 12:02:40 -0300 Subject: [PATCH 040/150] fix: eliminadas botoneras de comentarios y remote_profile y unificadas en componente button_box #15028 --- app/controllers/application_controller.rb | 13 +++++++++++++ app/controllers/moderation_queue_controller.rb | 1 + app/controllers/posts_controller.rb | 1 + app/views/moderation_queue/_button_box.haml | 6 ++++++ .../moderation_queue/_comment_button_box.haml | 14 -------------- .../moderation_queue/_profile_button_box.haml | 4 ++-- app/views/moderation_queue/index.haml | 2 +- app/views/posts/_moderation_queue.haml | 2 +- config/locales/es.yml | 2 +- 9 files changed, 26 insertions(+), 19 deletions(-) create mode 100644 app/views/moderation_queue/_button_box.haml delete mode 100644 app/views/moderation_queue/_comment_button_box.haml diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 903d3642..360a9b2d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -37,6 +37,19 @@ class ApplicationController < ActionController::Base end end + # parámetros de botones + # text: [texto del botón] + # class: [clases css] + # href: [href del botón] + def botoneras_moderation_queue + # botones de comentarios + @comment_btn_params = [[t('moderation_queue.button_box.text_pause'), 'btn-secondary', ''], + [t('moderation_queue.button_box.text_reject'), 'btn-primary', ''], + [t('moderation_queue.button_box.text_accept'), 'bg-blue white', ''], + [t('moderation_queue.button_box.text_reply'), 'btn-outline-primary', ''], + [t('moderation_queue.button_box.text_report'), 'btn-danger', '']] + end + def notify_unconfirmed_email return unless current_usuarie return if current_usuarie.confirmed? diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb index 4a65f136..04a31389 100644 --- a/app/controllers/moderation_queue_controller.rb +++ b/app/controllers/moderation_queue_controller.rb @@ -9,6 +9,7 @@ class ModerationQueueController < ApplicationController @moderation_queue.each do |activity| activity['attributedTo'] = @remote_profile end + botoneras_moderation_queue end # Perfil remoto de usuarie diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 5be56acc..36d17339 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -83,6 +83,7 @@ class PostsController < ApplicationController breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' dummy_data + botoneras_moderation_queue end def update diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_button_box.haml new file mode 100644 index 00000000..a56b2552 --- /dev/null +++ b/app/views/moderation_queue/_button_box.haml @@ -0,0 +1,6 @@ +-# Componente Botonera de Moderación + +.d-flex.py-2.justify-content-center + - comment_btn_params.each do |btn| + - @class = btn[1] + = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file diff --git a/app/views/moderation_queue/_comment_button_box.haml b/app/views/moderation_queue/_comment_button_box.haml deleted file mode 100644 index bd367e09..00000000 --- a/app/views/moderation_queue/_comment_button_box.haml +++ /dev/null @@ -1,14 +0,0 @@ --# Componente Botonera de Moderación - -.d-flex.py-2.justify-content-center - -# parámetros de botones - -# text, class, href - - btn_box_params = [[t('.text_pause'), 'btn-secondary', ''], - [t('.text_reject'), 'btn-primary', ''], - [t('.text_accept'), 'bg-blue white', ''], - [t('.text_reply'), 'btn-outline-primary', ''], - [t('.text_report'), 'btn-outline-danger', '']] - - - btn_box_params.each do |btn| - - @class = btn[1] - = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file diff --git a/app/views/moderation_queue/_profile_button_box.haml b/app/views/moderation_queue/_profile_button_box.haml index 9de64e12..d15b6ed0 100644 --- a/app/views/moderation_queue/_profile_button_box.haml +++ b/app/views/moderation_queue/_profile_button_box.haml @@ -3,10 +3,10 @@ .d-flex.py-2.justify-content-center -# parámetros de botones -# text, class, href - - btn_box_params = [[t('.text_deny'), 'btn-outline-info', ''], + - comment_btn_params = [[t('.text_deny'), 'btn-outline-info', ''], [t('.text_allow'), 'btn-success', 'https://sutty.nl/'], [t('.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] - - btn_box_params.each do |btn| + - comment_btn_params.each do |btn| - @class = btn[1] = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index a3897417..39ac74a3 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -2,4 +2,4 @@ - @moderation_queue.each do |comment| = render 'comment', comment: comment, profile: @remote_profile - = render 'moderation_queue/comment_button_box' \ No newline at end of file + = render 'moderation_queue/button_box', comment_btn_params: @comment_btn_params \ No newline at end of file diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index b861d67d..e4eb422c 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -4,4 +4,4 @@ - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: @remote_profile .row.d-flex.justify-content-center - = render 'moderation_queue/comment_button_box' + = render 'moderation_queue/button_box', comment_btn_params: @comment_btn_params diff --git a/config/locales/es.yml b/config/locales/es.yml index d579d55e..7850bcf7 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -12,7 +12,7 @@ es: text_deny: Bloquear que te siga text_allow: Permitir que te siga text_report: Reportar - comment_button_box: + button_box: text_pause: Pausa text_reject: Rechazar text_accept: Aceptar Publicación From bbd5426da53c7d3677fcc72f17da0f74b42e519e Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 1 Feb 2024 12:17:51 -0300 Subject: [PATCH 041/150] fix: eliminada botonera remote_profile_box para usar componente general button_box #15028 --- app/controllers/application_controller.rb | 7 ++++++- app/controllers/moderation_queue_controller.rb | 1 + app/views/moderation_queue/_profile_button_box.haml | 12 ------------ app/views/moderation_queue/_remote_profile.haml | 2 +- 4 files changed, 8 insertions(+), 14 deletions(-) delete mode 100644 app/views/moderation_queue/_profile_button_box.haml diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 360a9b2d..bcbf0bc2 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -37,7 +37,7 @@ class ApplicationController < ActionController::Base end end - # parámetros de botones + # parámetros de botones: # text: [texto del botón] # class: [clases css] # href: [href del botón] @@ -48,6 +48,11 @@ class ApplicationController < ActionController::Base [t('moderation_queue.button_box.text_accept'), 'bg-blue white', ''], [t('moderation_queue.button_box.text_reply'), 'btn-outline-primary', ''], [t('moderation_queue.button_box.text_report'), 'btn-danger', '']] + + #botones de remote_profile (cuentas) + @profile_btn_params = [[t('moderation_queue.profile_button_box.text_deny'), 'btn-outline-info', ''], + [t('moderation_queue.profile_button_box.text_allow'), 'btn-success', 'https://sutty.nl/'], + [t('moderation_queue.profile_button_box.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] end def notify_unconfirmed_email diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb index 04a31389..5141990e 100644 --- a/app/controllers/moderation_queue_controller.rb +++ b/app/controllers/moderation_queue_controller.rb @@ -15,6 +15,7 @@ class ModerationQueueController < ApplicationController # Perfil remoto de usuarie def remote_profile @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) + botoneras_moderation_queue end # todon.nl está usando /api/v2/instance diff --git a/app/views/moderation_queue/_profile_button_box.haml b/app/views/moderation_queue/_profile_button_box.haml deleted file mode 100644 index d15b6ed0..00000000 --- a/app/views/moderation_queue/_profile_button_box.haml +++ /dev/null @@ -1,12 +0,0 @@ --# Componente Botonera de Profile - -.d-flex.py-2.justify-content-center - -# parámetros de botones - -# text, class, href - - comment_btn_params = [[t('.text_deny'), 'btn-outline-info', ''], - [t('.text_allow'), 'btn-success', 'https://sutty.nl/'], - [t('.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] - - - comment_btn_params.each do |btn| - - @class = btn[1] - = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index b665dcf2..a8d60c60 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -2,4 +2,4 @@ %h4= t('.profile_name') + ': ' + remote_profile['name'] %h5= t('.profile_id') + ': ' + remote_profile['id'] %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') - = render 'moderation_queue/profile_button_box' + = render 'moderation_queue/button_box', comment_btn_params: @profile_btn_params From e9552776af79f8608bed502eef779f609238a532 Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 1 Feb 2024 14:40:14 -0300 Subject: [PATCH 042/150] =?UTF-8?q?feat:=20pantalla=20de=20actividades=20d?= =?UTF-8?q?e=20moderaci=C3=B3n=20dividida=20en=20desplegables=20#15091?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comments.haml | 5 +++++ app/views/moderation_queue/index.haml | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 app/views/moderation_queue/_comments.haml diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml new file mode 100644 index 00000000..39ac74a3 --- /dev/null +++ b/app/views/moderation_queue/_comments.haml @@ -0,0 +1,5 @@ += render 'moderation_queue/comment_filter_box' +- @moderation_queue.each do |comment| + + = render 'comment', comment: comment, profile: @remote_profile + = render 'moderation_queue/button_box', comment_btn_params: @comment_btn_params \ No newline at end of file diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 39ac74a3..e2adb13b 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,5 +1,8 @@ -= render 'moderation_queue/comment_filter_box' -- @moderation_queue.each do |comment| +.row.justify-content-center + .col-md-8 + - @summary = t('posts.edit.moderation_queue') + = render 'layouts/details', summary: @summary do + = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue + + - = render 'comment', comment: comment, profile: @remote_profile - = render 'moderation_queue/button_box', comment_btn_params: @comment_btn_params \ No newline at end of file From 683062da02094a362a56bc13751065503b1d8237 Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 1 Feb 2024 14:47:40 -0300 Subject: [PATCH 043/150] =?UTF-8?q?feat:=20textos=20con=20traducciones=20p?= =?UTF-8?q?ara=20los=20t=C3=ADtulos=20de=20los=20details=20de=20actividade?= =?UTF-8?q?s=20de=20moderaci=C3=B3n=20#15091?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/index.haml | 2 +- config/locales/en.yml | 4 ++++ config/locales/es.yml | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index e2adb13b..8f4ed5fb 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,6 +1,6 @@ .row.justify-content-center .col-md-8 - - @summary = t('posts.edit.moderation_queue') + - @summary = t('moderation_queue.index.comments') = render 'layouts/details', summary: @summary do = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue diff --git a/config/locales/en.yml b/config/locales/en.yml index ef14f51f..9b8bb92b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,5 +1,9 @@ en: moderation_queue: + index: + instances: Instances + accounts: Accounts + comments: Comments remote_profile: user: Username button_box: diff --git a/config/locales/es.yml b/config/locales/es.yml index 7850bcf7..ddf8f7f7 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,5 +1,9 @@ es: moderation_queue: + index: + instances: Instancias + accounts: Cuentas + comments: Comentarios comment: source_profile: Cuenta de Origen reply_to: En respuesta a From a9efe78c0b93b44fed443c83a363d3e13b6fb60f Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 1 Feb 2024 14:53:25 -0300 Subject: [PATCH 044/150] =?UTF-8?q?feat:=20aparecen=20todos=20los=20detail?= =?UTF-8?q?s=20en=20actividades=20de=20moderaci=C3=B3n,=20con=20los=20t?= =?UTF-8?q?=C3=ADtulos=20correspondientes,=20sin=20contenido=20(salvo=20co?= =?UTF-8?q?mentarios)=20#15091?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_accounts.haml | 0 app/views/moderation_queue/_instances.haml | 0 app/views/moderation_queue/index.haml | 6 ++++++ 3 files changed, 6 insertions(+) create mode 100644 app/views/moderation_queue/_accounts.haml create mode 100644 app/views/moderation_queue/_instances.haml diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml new file mode 100644 index 00000000..e69de29b diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml new file mode 100644 index 00000000..e69de29b diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 8f4ed5fb..d89c30b4 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,5 +1,11 @@ .row.justify-content-center .col-md-8 + - @summary = t('moderation_queue.index.instances') + = render 'layouts/details', summary: @summary do + = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue + - @summary = t('moderation_queue.index.accounts') + = render 'layouts/details', summary: @summary do + = render 'moderation_queue/accounts', site: @site, post: @post, moderation_queue: @moderation_queue - @summary = t('moderation_queue.index.comments') = render 'layouts/details', summary: @summary do = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue From da1f7f775447e2d8f50dd9973628fb93353c308c Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 2 Feb 2024 14:45:25 -0300 Subject: [PATCH 045/150] fix: corregida botonera remote_profile #15080 --- app/controllers/application_controller.rb | 9 +++++---- app/views/moderation_queue/_button_box.haml | 4 ++-- app/views/moderation_queue/_comments.haml | 2 +- app/views/moderation_queue/_remote_profile.haml | 10 +++++++--- app/views/posts/_moderation_queue.haml | 2 +- config/locales/es.yml | 6 ++++-- 6 files changed, 20 insertions(+), 13 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bcbf0bc2..ba5dd4bd 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -43,16 +43,17 @@ class ApplicationController < ActionController::Base # href: [href del botón] def botoneras_moderation_queue # botones de comentarios - @comment_btn_params = [[t('moderation_queue.button_box.text_pause'), 'btn-secondary', ''], + @btn_params = [[t('moderation_queue.button_box.text_pause'), 'btn-secondary', ''], [t('moderation_queue.button_box.text_reject'), 'btn-primary', ''], [t('moderation_queue.button_box.text_accept'), 'bg-blue white', ''], [t('moderation_queue.button_box.text_reply'), 'btn-outline-primary', ''], [t('moderation_queue.button_box.text_report'), 'btn-danger', '']] #botones de remote_profile (cuentas) - @profile_btn_params = [[t('moderation_queue.profile_button_box.text_deny'), 'btn-outline-info', ''], - [t('moderation_queue.profile_button_box.text_allow'), 'btn-success', 'https://sutty.nl/'], - [t('moderation_queue.profile_button_box.text_report'), 'btn-outline-danger', 'https://sutty.nl/']] + @profile_btn_params = [[t('moderation_queue.profile_button_box.text_approve'), 'btn-success', ''], + [t('moderation_queue.profile_button_box.text_check'), 'btn-outline-success', ''], + [t('moderation_queue.profile_button_box.text_deny'), 'bg-blue white', ''], + [t('moderation_queue.profile_button_box.text_report'), 'btn-danger', '']] end def notify_unconfirmed_email diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_button_box.haml index a56b2552..46963b0f 100644 --- a/app/views/moderation_queue/_button_box.haml +++ b/app/views/moderation_queue/_button_box.haml @@ -1,6 +1,6 @@ -# Componente Botonera de Moderación -.d-flex.py-2.justify-content-center - - comment_btn_params.each do |btn| +.d-flex.py-4.justify-content-center + - btn_params.each do |btn| - @class = btn[1] = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 39ac74a3..fb83fbd9 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -2,4 +2,4 @@ - @moderation_queue.each do |comment| = render 'comment', comment: comment, profile: @remote_profile - = render 'moderation_queue/button_box', comment_btn_params: @comment_btn_params \ No newline at end of file + = render 'moderation_queue/button_box', btn_params: @btn_params \ No newline at end of file diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index a8d60c60..94737a34 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,5 +1,9 @@ +-# Componente Remote_Profile + .flex.py-2.mx-2.text-center - %h4= t('.profile_name') + ': ' + remote_profile['name'] - %h5= t('.profile_id') + ': ' + remote_profile['id'] + %h4.mb-2= t('.profile_name') + ': ' + remote_profile['name'] + %h5= t('.profile_id') + ': ' + remote_profile['id'] %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') - = render 'moderation_queue/button_box', comment_btn_params: @profile_btn_params + %h5= t('.profile_summary') + ':' + %p= sanitize remote_profile['summary'] + = render 'moderation_queue/button_box', btn_params: @profile_btn_params diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index e4eb422c..b259cf3e 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -4,4 +4,4 @@ - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: @remote_profile .row.d-flex.justify-content-center - = render 'moderation_queue/button_box', comment_btn_params: @comment_btn_params + = render 'moderation_queue/button_box', btn_params: @btn_params diff --git a/config/locales/es.yml b/config/locales/es.yml index ddf8f7f7..feca0897 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -12,9 +12,11 @@ es: profile_name: Nombre de la Cuenta profile_id: ID profile_published: Publicada + profile_summary: Resumen profile_button_box: - text_deny: Bloquear que te siga - text_allow: Permitir que te siga + text_approve: Aprovar siempre + text_check: Revisar siempre + text_deny: Bloquear text_report: Reportar button_box: text_pause: Pausa From cfae99ca7b3a001c735a45ac207288d8f57f606d Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 2 Feb 2024 15:06:36 -0300 Subject: [PATCH 046/150] feat: agregada botonera instancias #15081 --- app/controllers/application_controller.rb | 5 +++++ config/locales/es.yml | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ba5dd4bd..fd714a41 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -54,6 +54,11 @@ class ApplicationController < ActionController::Base [t('moderation_queue.profile_button_box.text_check'), 'btn-outline-success', ''], [t('moderation_queue.profile_button_box.text_deny'), 'bg-blue white', ''], [t('moderation_queue.profile_button_box.text_report'), 'btn-danger', '']] + + #botones de instances (instancias) + @instances_btn_params = [[t('moderation_queue.instances_button_box.text_check'), 'btn-outline-success', ''], + [t('moderation_queue.instances_button_box.text_allow'), 'btn-success', ''], + [t('moderation_queue.instances_button_box.text_deny'), 'btn-danger', '']] end def notify_unconfirmed_email diff --git a/config/locales/es.yml b/config/locales/es.yml index feca0897..476d75b3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -28,6 +28,10 @@ es: text_order: Ordenar por text_show: Ver text_checked: Con los marcados + instances_button_box: + text_check: Moderar caso por caso + text_allow: Permitir todo + text_deny: Bloquear instancia dark: Oscuro es: Castellano en: English From 40346df76dd0c047dee905091a8223ec9d35f7a4 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 12:22:23 -0300 Subject: [PATCH 047/150] fix: movidas arrays de parametros de botones y filtros a helper moderation_queue_helper.rb #15077 --- app/controllers/application_controller.rb | 26 +--------- .../moderation_queue_controller.rb | 2 - app/controllers/posts_controller.rb | 1 - app/helpers/moderation_queue_helper.rb | 47 +++++++++++++++++++ .../moderation_queue/_comment_filter_box.haml | 6 --- app/views/moderation_queue/_comments.haml | 4 +- app/views/moderation_queue/_filter_base.haml | 7 ++- app/views/moderation_queue/_filter_box.haml | 6 +++ .../moderation_queue/_remote_profile.haml | 1 + app/views/posts/_moderation_queue.haml | 4 +- config/locales/es.yml | 7 ++- 11 files changed, 69 insertions(+), 42 deletions(-) create mode 100644 app/helpers/moderation_queue_helper.rb delete mode 100644 app/views/moderation_queue/_comment_filter_box.haml create mode 100644 app/views/moderation_queue/_filter_box.haml diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index fd714a41..f673ee83 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -36,31 +36,7 @@ class ApplicationController < ActionController::Base activity['attributedTo'] = @remote_profile end end - - # parámetros de botones: - # text: [texto del botón] - # class: [clases css] - # href: [href del botón] - def botoneras_moderation_queue - # botones de comentarios - @btn_params = [[t('moderation_queue.button_box.text_pause'), 'btn-secondary', ''], - [t('moderation_queue.button_box.text_reject'), 'btn-primary', ''], - [t('moderation_queue.button_box.text_accept'), 'bg-blue white', ''], - [t('moderation_queue.button_box.text_reply'), 'btn-outline-primary', ''], - [t('moderation_queue.button_box.text_report'), 'btn-danger', '']] - - #botones de remote_profile (cuentas) - @profile_btn_params = [[t('moderation_queue.profile_button_box.text_approve'), 'btn-success', ''], - [t('moderation_queue.profile_button_box.text_check'), 'btn-outline-success', ''], - [t('moderation_queue.profile_button_box.text_deny'), 'bg-blue white', ''], - [t('moderation_queue.profile_button_box.text_report'), 'btn-danger', '']] - - #botones de instances (instancias) - @instances_btn_params = [[t('moderation_queue.instances_button_box.text_check'), 'btn-outline-success', ''], - [t('moderation_queue.instances_button_box.text_allow'), 'btn-success', ''], - [t('moderation_queue.instances_button_box.text_deny'), 'btn-danger', '']] - end - + def notify_unconfirmed_email return unless current_usuarie return if current_usuarie.confirmed? diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb index 5141990e..4a65f136 100644 --- a/app/controllers/moderation_queue_controller.rb +++ b/app/controllers/moderation_queue_controller.rb @@ -9,13 +9,11 @@ class ModerationQueueController < ApplicationController @moderation_queue.each do |activity| activity['attributedTo'] = @remote_profile end - botoneras_moderation_queue end # Perfil remoto de usuarie def remote_profile @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) - botoneras_moderation_queue end # todon.nl está usando /api/v2/instance diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 36d17339..5be56acc 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -83,7 +83,6 @@ class PostsController < ApplicationController breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' dummy_data - botoneras_moderation_queue end def update diff --git a/app/helpers/moderation_queue_helper.rb b/app/helpers/moderation_queue_helper.rb new file mode 100644 index 00000000..9c0a3ced --- /dev/null +++ b/app/helpers/moderation_queue_helper.rb @@ -0,0 +1,47 @@ +module ModerationQueueHelper + + # parámetros de botones: + # text: [texto del botón] + # class: [clases css] + # href: [href del botón] + def botoneras_moderation_queue + # botones de comentarios + @btn_params = [[t('moderation_queue.button_box.text_pause'), 'btn-secondary', ''], + [t('moderation_queue.button_box.text_reject'), 'btn-primary', ''], + [t('moderation_queue.button_box.text_accept'), 'bg-blue white', ''], + [t('moderation_queue.button_box.text_reply'), 'btn-outline-primary', ''], + [t('moderation_queue.button_box.text_report'), 'btn-danger', '']] + + #botones de remote_profile (cuentas) + @profile_btn_params = [[t('moderation_queue.profile_button_box.text_approve'), 'btn-success', ''], + [t('moderation_queue.profile_button_box.text_check'), 'btn-outline-success', ''], + [t('moderation_queue.profile_button_box.text_deny'), 'bg-blue white', ''], + [t('moderation_queue.profile_button_box.text_report'), 'btn-danger', '']] + + #botones de instances (instancias) + @instances_btn_params = [[t('moderation_queue.instances_button_box.text_check'), 'btn-outline-success', ''], + [t('moderation_queue.instances_button_box.text_allow'), 'btn-success', ''], + [t('moderation_queue.instances_button_box.text_deny'), 'btn-danger', '']] + end + + # parámetros de filtros: + # text: [texto del botón] + # href: [href del botón] + def filtros_moderation_queue + @comment_filter_params = { + t('moderation_queue.filter_box.text_checked') => + [ + [t('moderation_queue.filter_box.submenu_pause'), '/sutty.nl'], + [t('moderation_queue.filter_box.submenu_reject'), '#reject'], + [t('moderation_queue.filter_box.submenu_accept'),'#accept'] + ], + t('moderation_queue.filter_box.text_show') => + [ + [t('moderation_queue.filter_box.submenu_pause'), '#pause'], + [t('moderation_queue.filter_box.submenu_reject'), '#reject'], + [t('moderation_queue.filter_box.submenu_accept'),'#accept'], + [t('moderation_queue.filter_box.submenu_report'), '#report'] + ] + } + end +end \ No newline at end of file diff --git a/app/views/moderation_queue/_comment_filter_box.haml b/app/views/moderation_queue/_comment_filter_box.haml deleted file mode 100644 index e9abe602..00000000 --- a/app/views/moderation_queue/_comment_filter_box.haml +++ /dev/null @@ -1,6 +0,0 @@ --# Componente Caja de Filtros - -.d-flex.py-2.justify-content-center - = render 'moderation_queue/filter_base', text: t('.text_checked') - = render 'moderation_queue/filter_base', text: t('.text_show') - = render 'moderation_queue/filter_base', text: t('.text_order') \ No newline at end of file diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index fb83fbd9..217919bd 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,4 +1,6 @@ -= render 'moderation_queue/comment_filter_box' +- filtros_moderation_queue +- botoneras_moderation_queue += render 'moderation_queue/filter_box', filter_params: @comment_filter_params - @moderation_queue.each do |comment| = render 'comment', comment: comment, profile: @remote_profile diff --git a/app/views/moderation_queue/_filter_base.haml b/app/views/moderation_queue/_filter_base.haml index 0b63e59b..01d50641 100644 --- a/app/views/moderation_queue/_filter_base.haml +++ b/app/views/moderation_queue/_filter_base.haml @@ -1,8 +1,7 @@ -# Componente Filtro .dropdown.mx-4 %button#dropdownMenuButton.btn.btn-outline-secondary.dropdown-toggle{:type => "button", "data-toggle" => "dropdown", "aria-haspopup" => "true", "aria-expanded" => "false"} - %span #{text} + %span= text .dropdown-menu{"aria-labelledby" => "dropdownMenuButton"} - %a.dropdown-item{ href: '#' } Action - %a.dropdown-item{ href: '#' } Another action - %a.dropdown-item{ href: '#' } Something else here + - menu.each do |subm| + %a.dropdown-item{ href: subm[1] } subm[0] diff --git a/app/views/moderation_queue/_filter_box.haml b/app/views/moderation_queue/_filter_box.haml new file mode 100644 index 00000000..4ebef670 --- /dev/null +++ b/app/views/moderation_queue/_filter_box.haml @@ -0,0 +1,6 @@ +-# Componente Caja de Filtros + +.d-flex.py-2.justify-content-center + - filter_params.each do |filter, submenu| + = render 'moderation_queue/filter_base', text: filter, menu: submenu + diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 94737a34..548e2d5b 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,6 +1,7 @@ -# Componente Remote_Profile .flex.py-2.mx-2.text-center + - botoneras_moderation_queue %h4.mb-2= t('.profile_name') + ': ' + remote_profile['name'] %h5= t('.profile_id') + ': ' + remote_profile['id'] %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index b259cf3e..34af2ac6 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,6 +1,8 @@ .flex %h3.text-center.py-2 Comentarios - = render 'moderation_queue/comment_filter_box' + - botoneras_moderation_queue + - filtros_moderation_queue + = render 'moderation_queue/filter_box', filter_params: @comment_filter_params - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: @remote_profile .row.d-flex.justify-content-center diff --git a/config/locales/es.yml b/config/locales/es.yml index 476d75b3..20696af0 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -24,10 +24,13 @@ es: text_accept: Aceptar Publicación text_reply: Responder text_report: Reportar - comment_filter_box: - text_order: Ordenar por + filter_box: text_show: Ver text_checked: Con los marcados + submenu_pause: Pausado + submenu_reject: Rechazado + submenu_accept: Aceptado + submenu_report: Reportado instances_button_box: text_check: Moderar caso por caso text_allow: Permitir todo From c668c3ad3f735760fd05a9fce9a49af3c201d78a Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 12:30:13 -0300 Subject: [PATCH 048/150] fix: corregido submenu en partial filter_base #15079 --- app/views/moderation_queue/_filter_base.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_filter_base.haml b/app/views/moderation_queue/_filter_base.haml index 01d50641..67bb4b0c 100644 --- a/app/views/moderation_queue/_filter_base.haml +++ b/app/views/moderation_queue/_filter_base.haml @@ -4,4 +4,4 @@ %span= text .dropdown-menu{"aria-labelledby" => "dropdownMenuButton"} - menu.each do |subm| - %a.dropdown-item{ href: subm[1] } subm[0] + %a.dropdown-item{ href: subm[1] }= subm[0] From cfe90c531ea9be1429cf146db39df3ad0528c26e Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 13:03:29 -0300 Subject: [PATCH 049/150] feat: agregado filtros instancias #15083 --- app/helpers/moderation_queue_helper.rb | 16 ++++++++++++++++ app/views/moderation_queue/_accounts.haml | 4 ++++ app/views/moderation_queue/_instances.haml | 6 ++++++ config/locales/es.yml | 2 ++ 4 files changed, 28 insertions(+) diff --git a/app/helpers/moderation_queue_helper.rb b/app/helpers/moderation_queue_helper.rb index 9c0a3ced..16be2a51 100644 --- a/app/helpers/moderation_queue_helper.rb +++ b/app/helpers/moderation_queue_helper.rb @@ -28,6 +28,7 @@ module ModerationQueueHelper # text: [texto del botón] # href: [href del botón] def filtros_moderation_queue + #filtros de comentarios @comment_filter_params = { t('moderation_queue.filter_box.text_checked') => [ @@ -43,5 +44,20 @@ module ModerationQueueHelper [t('moderation_queue.filter_box.submenu_report'), '#report'] ] } + + #filtros de instancias + @instances_filter_params = { + t('moderation_queue.filter_box.text_checked') => + [ + [t('moderation_queue.filter_box.submenu_case'), '#case_by_case'], + [t('moderation_queue.filter_box.submenu_allow'), '#allow'], + [t('moderation_queue.filter_box.submenu_reject'),'#reject'] + ], + t('moderation_queue.filter_box.text_show') => + [ + [t('moderation_queue.filter_box.submenu_allow'), '#allow'], + [t('moderation_queue.filter_box.submenu_reject'), '#reject'] + ] + } end end \ No newline at end of file diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index e69de29b..8ee71e7f 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -0,0 +1,4 @@ +- filtros_moderation_queue +- botoneras_moderation_queue + += render 'moderation_queue/button_box', btn_params: @profile_btn_params \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index e69de29b..a814c1da 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -0,0 +1,6 @@ +- filtros_moderation_queue +- botoneras_moderation_queue + += render 'moderation_queue/filter_box', filter_params: @instances_filter_params + += render 'moderation_queue/button_box', btn_params: @instances_btn_params \ No newline at end of file diff --git a/config/locales/es.yml b/config/locales/es.yml index 20696af0..b4b7b1f4 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -31,6 +31,8 @@ es: submenu_reject: Rechazado submenu_accept: Aceptado submenu_report: Reportado + submenu_case: Moderar caso por caso + submenu_allow: Permitir todo instances_button_box: text_check: Moderar caso por caso text_allow: Permitir todo From 600a87c5ec2d4d4b4af2f9d2c40505b75269bcc8 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 13:13:06 -0300 Subject: [PATCH 050/150] feat: agregado filtros de cuentas #15102 --- app/views/moderation_queue/_accounts.haml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 8ee71e7f..ae87a9d7 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,4 +1,6 @@ - filtros_moderation_queue - botoneras_moderation_queue += render 'moderation_queue/filter_box', filter_params: @instances_filter_params + = render 'moderation_queue/button_box', btn_params: @profile_btn_params \ No newline at end of file From 58ee39828a4cf048642c931b9c6c9607b6ceecfe Mon Sep 17 00:00:00 2001 From: f Date: Mon, 5 Feb 2024 13:16:57 -0300 Subject: [PATCH 051/150] feat: dropdown #15097 implement #15097 --- .../controllers/dropdown_controller.js | 106 ++++++++++++++++++ app/views/components/_dropdown.haml | 34 ++++++ app/views/components/_dropdown_item.haml | 4 + 3 files changed, 144 insertions(+) create mode 100644 app/javascript/controllers/dropdown_controller.js create mode 100644 app/views/components/_dropdown.haml create mode 100644 app/views/components/_dropdown_item.haml diff --git a/app/javascript/controllers/dropdown_controller.js b/app/javascript/controllers/dropdown_controller.js new file mode 100644 index 00000000..e2b657fd --- /dev/null +++ b/app/javascript/controllers/dropdown_controller.js @@ -0,0 +1,106 @@ +import { Controller } from "stimulus"; + +// https://getbootstrap.com/docs/4.6/components/dropdowns/#single-button +export default class extends Controller { + static targets = ["dropdown", "button", "item"]; + + // Al iniciar el controlador + connect() { + // Llevar la cuenta del item con foco + this.data.set("item", -1); + + // Gestionar las teclas + this.keydownEvent = this.keydown.bind(this); + this.element.addEventListener("keydown", this.keydownEvent); + + // Gestionar el foco + this.focusinEvent = this.focusin.bind(this); + } + + // Al eliminar el controlador (al pasar a otra página) + disconnect() { + // Eliminar la gestión de teclas + this.element.removeEventListener("keydown", this.keydownEvent); + // Eliminar la gestión del foco + document.removeEventListener("focusin", this.focusinEvent); + } + + // Mostrar u ocultar + toggle(event) { + (this.buttonTarget.ariaExpanded === "false") ? this.show() : this.hide(); + } + + // Mostrar + show() { + this.buttonTarget.ariaExpanded = "true"; + this.element.classList.add("show"); + this.dropdownTarget.classList.add("show"); + + // Activar la gestión del foco + document.addEventListener("focusin", this.focusinEvent); + } + + // Ocultar + hide() { + this.buttonTarget.ariaExpanded = "false"; + this.element.classList.remove("show"); + this.dropdownTarget.classList.remove("show"); + // Volver al inicio el foco de items + this.data.set("item", -1); + + // Desactivar la gestión del foco + document.removeEventListener("focusin", this.focusinEvent); + } + + // Gestionar el foco + focusin(event) { + const item = this.itemTargets.find(x => x === event.target); + + // Si el foco se coloca sobre elementos del controlador, no hacer + // nada + if (event.target === this.buttonTarget || item) { + // Si es un item, el comportamiento de las flechas verticales y el + // Tab tiene que ser igual + if (item) this.data.set("item", this.itemTargets.indexOf(item)); + + return; + } + + // De lo contrario, ocultar + this.hide(); + } + + // Gestionar las teclas + keydown(event) { + const initial = parseInt(this.data.get("item")); + let item = initial; + + switch (event.keyCode) { + case 27: + // Esc cierra el menú y devuelve el foco + this.hide(); + this.buttonTarget.focus(); + break; + case 38: + // Moverse hacia arriba con tope en el primer item + if (item > -1) item--; + + break; + case 40: + // Moverse hacia abajo con tope en el último ítem, si el + // dropdown estaba cerrado, abrirlo. + if (item === -1) this.show(); + if (item <= this.itemTargets.length) item++; + + break; + } + + // Si cambió la posición del ítem, darle foco y actualizar el + // contador. + if (initial !== item) { + this.itemTargets[item]?.focus(); + + this.data.set("item", item); + } + } +} diff --git a/app/views/components/_dropdown.haml b/app/views/components/_dropdown.haml new file mode 100644 index 00000000..54ddcffb --- /dev/null +++ b/app/views/components/_dropdown.haml @@ -0,0 +1,34 @@ +-# + @param :text [String] Contenido del botón + @param :button_classes [Array] Clases para el botón + @param :dropdown_classes [Array] Clases para el listado + @yield Un bloque que renderiza components/dropdown_item +- button_classes = local_assigns[:button_classes]&.join(' ') +- dropdown_classes = local_assigns[:dropdown_classes]&.join(' ') + +.btn-group{ + data: { + controller: 'dropdown' + } + } + %button.btn.dropdown-toggle{ + type: 'button', + class: button_classes, + data: { + toggle: 'true', + display: 'static', + action: 'dropdown#toggle', + target: 'dropdown.button' + }, + aria: { + expanded: 'false' + } + } + = text + .dropdown-menu{ + class: dropdown_classes, + data: { + target: 'dropdown.dropdown' + } + } + = yield diff --git a/app/views/components/_dropdown_item.haml b/app/views/components/_dropdown_item.haml new file mode 100644 index 00000000..3f79403d --- /dev/null +++ b/app/views/components/_dropdown_item.haml @@ -0,0 +1,4 @@ +-# + @param :text [String] Contenido del link + @param :path [String] Link += link_to text, path, class: 'dropdown-item', data: { target: 'dropdown.item' } From f9952792987bd12ec81ab4542d5c7647b5c1121d Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 14:51:17 -0300 Subject: [PATCH 052/150] fix: corregidos filtros desplegables de comentarios, cuentas e instancias #15097 --- app/views/moderation_queue/_accounts.haml | 9 ++++++++- app/views/moderation_queue/_comments.haml | 13 +++++++++++-- app/views/moderation_queue/_filter_base.haml | 7 ------- app/views/moderation_queue/_filter_box.haml | 6 ------ app/views/moderation_queue/_instances.haml | 10 ++++++++-- app/views/moderation_queue/_remote_profile.haml | 14 +++++++++++++- app/views/posts/_moderation_queue.haml | 13 +++++++++++-- 7 files changed, 51 insertions(+), 21 deletions(-) delete mode 100644 app/views/moderation_queue/_filter_base.haml delete mode 100644 app/views/moderation_queue/_filter_box.haml diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index ae87a9d7..6a371eff 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,6 +1,13 @@ - filtros_moderation_queue - botoneras_moderation_queue -= render 'moderation_queue/filter_box', filter_params: @instances_filter_params +.d-flex.py-2.justify-content-center + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' = render 'moderation_queue/button_box', btn_params: @profile_btn_params \ No newline at end of file diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 217919bd..3daddf44 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,6 +1,15 @@ -- filtros_moderation_queue - botoneras_moderation_queue -= render 'moderation_queue/filter_box', filter_params: @comment_filter_params +.d-flex.py-2.justify-content-center + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' + - @moderation_queue.each do |comment| = render 'comment', comment: comment, profile: @remote_profile diff --git a/app/views/moderation_queue/_filter_base.haml b/app/views/moderation_queue/_filter_base.haml deleted file mode 100644 index 67bb4b0c..00000000 --- a/app/views/moderation_queue/_filter_base.haml +++ /dev/null @@ -1,7 +0,0 @@ --# Componente Filtro -.dropdown.mx-4 - %button#dropdownMenuButton.btn.btn-outline-secondary.dropdown-toggle{:type => "button", "data-toggle" => "dropdown", "aria-haspopup" => "true", "aria-expanded" => "false"} - %span= text - .dropdown-menu{"aria-labelledby" => "dropdownMenuButton"} - - menu.each do |subm| - %a.dropdown-item{ href: subm[1] }= subm[0] diff --git a/app/views/moderation_queue/_filter_box.haml b/app/views/moderation_queue/_filter_box.haml deleted file mode 100644 index 4ebef670..00000000 --- a/app/views/moderation_queue/_filter_box.haml +++ /dev/null @@ -1,6 +0,0 @@ --# Componente Caja de Filtros - -.d-flex.py-2.justify-content-center - - filter_params.each do |filter, submenu| - = render 'moderation_queue/filter_base', text: filter, menu: submenu - diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index a814c1da..15b933d6 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -1,6 +1,12 @@ -- filtros_moderation_queue - botoneras_moderation_queue -= render 'moderation_queue/filter_box', filter_params: @instances_filter_params +.d-flex.py-2.justify-content-center + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' = render 'moderation_queue/button_box', btn_params: @instances_btn_params \ No newline at end of file diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 548e2d5b..7256f41d 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -2,7 +2,19 @@ .flex.py-2.mx-2.text-center - botoneras_moderation_queue - %h4.mb-2= t('.profile_name') + ': ' + remote_profile['name'] + + .d-flex.py-2.justify-content-center + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' + + %h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] %h5= t('.profile_id') + ': ' + remote_profile['id'] %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') %h5= t('.profile_summary') + ':' diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 34af2ac6..f805dfe8 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,8 +1,17 @@ .flex %h3.text-center.py-2 Comentarios - botoneras_moderation_queue - - filtros_moderation_queue - = render 'moderation_queue/filter_box', filter_params: @comment_filter_params + .d-flex.py-2.justify-content-center + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' + = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' + = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' + - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: @remote_profile .row.d-flex.justify-content-center From 6374a616d49f725f273da08bd44bbb7b5e209725 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 15:22:28 -0300 Subject: [PATCH 053/150] feat: agregado componente listas de bloqueo de instancias #15103 --- app/views/moderation_queue/_block_lists.haml | 4 ++++ app/views/moderation_queue/_instances.haml | 6 +++++- config/locales/es.yml | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 app/views/moderation_queue/_block_lists.haml diff --git a/app/views/moderation_queue/_block_lists.haml b/app/views/moderation_queue/_block_lists.haml new file mode 100644 index 00000000..186452fa --- /dev/null +++ b/app/views/moderation_queue/_block_lists.haml @@ -0,0 +1,4 @@ +.flex + .card + .card-body + %h4.text-center.red= t('moderation_queue.instances.block_lists') \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 15b933d6..57d4be34 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -9,4 +9,8 @@ = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' -= render 'moderation_queue/button_box', btn_params: @instances_btn_params \ No newline at end of file += render 'moderation_queue/button_box', btn_params: @instances_btn_params + +%h3.cyan.mt-5= t('moderation_queue.instances.title') +%p.pb-2= t('moderation_queue.instances.description') += render 'moderation_queue/block_lists' \ No newline at end of file diff --git a/config/locales/es.yml b/config/locales/es.yml index b4b7b1f4..6c608fff 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -37,6 +37,10 @@ es: text_check: Moderar caso por caso text_allow: Permitir todo text_deny: Bloquear instancia + instances: + title: Mis listas de bloqueo + description: Descripción de listas de bloqueo + block_lists: Listas de bloqueo dark: Oscuro es: Castellano en: English From db0364522db129ca62451ef2d81a7f80017f50d6 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 15:39:53 -0300 Subject: [PATCH 054/150] fix: agregado checkbox a compo listas de bloqueo #15103 --- app/views/moderation_queue/_block_lists.haml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/moderation_queue/_block_lists.haml b/app/views/moderation_queue/_block_lists.haml index 186452fa..55dc56d7 100644 --- a/app/views/moderation_queue/_block_lists.haml +++ b/app/views/moderation_queue/_block_lists.haml @@ -1,4 +1,5 @@ .flex .card - .card-body - %h4.text-center.red= t('moderation_queue.instances.block_lists') \ No newline at end of file + .card-body + %input{type: 'checkbox', value: '', class: 'ml-5'} + %h4.d-inline.red.ml-5= t('moderation_queue.instances.block_lists') \ No newline at end of file From b949855f08f6b2dfdc7fed3f0255eabfa2429f43 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 5 Feb 2024 16:19:35 -0300 Subject: [PATCH 055/150] feat: creado componente lista personalizada de bloqueo de instancias #15104 --- app/views/moderation_queue/_block_instances_textarea.haml | 4 ++++ app/views/moderation_queue/_instances.haml | 3 ++- config/locales/es.yml | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 app/views/moderation_queue/_block_instances_textarea.haml diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml new file mode 100644 index 00000000..42001504 --- /dev/null +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -0,0 +1,4 @@ +.form-group + .d-flex.flex-column.mt-5 + %textarea.red.mb-3{name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } + %button.col-4.offset-md-8.rounded{type: 'submit', class: 'btn btn-primary'}= t('moderation_queue.instances.submit') diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 57d4be34..c03055fa 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -13,4 +13,5 @@ %h3.cyan.mt-5= t('moderation_queue.instances.title') %p.pb-2= t('moderation_queue.instances.description') -= render 'moderation_queue/block_lists' \ No newline at end of file += render 'moderation_queue/block_lists' += render 'moderation_queue/block_instances_textarea' \ No newline at end of file diff --git a/config/locales/es.yml b/config/locales/es.yml index 6c608fff..96f068f3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -41,6 +41,8 @@ es: title: Mis listas de bloqueo description: Descripción de listas de bloqueo block_lists: Listas de bloqueo + custom_block: Lista personalizada de bloqueo + submit: Guardar lista de bloqueo dark: Oscuro es: Castellano en: English From fc99ec79d3bd74d01084b25b3c25baa1b5ef2ca2 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 6 Feb 2024 12:57:42 -0300 Subject: [PATCH 056/150] fix: correciones de CI varias --- app/views/layouts/_details.haml | 4 ++-- .../moderation_queue/_block_instances_textarea.haml | 5 +++-- app/views/moderation_queue/_block_lists.haml | 2 +- app/views/moderation_queue/_btn_base.haml | 2 +- app/views/moderation_queue/_button_box.haml | 2 +- app/views/moderation_queue/_comment.haml | 10 +++++----- app/views/moderation_queue/_comments.haml | 2 +- app/views/moderation_queue/_instances.haml | 2 +- app/views/moderation_queue/_remote_profile.haml | 2 +- app/views/moderation_queue/index.haml | 5 +---- app/views/posts/_moderation_queue.haml | 2 +- 11 files changed, 18 insertions(+), 20 deletions(-) diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index 4fe4d2af..1fe8d2ec 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -1,6 +1,6 @@ -# Detail Cola de Moderación %details.details.py-2 - %summary + %summary %h3.py-2.text-center= @summary - = yield \ No newline at end of file + = yield diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index 42001504..22a63c39 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,4 +1,5 @@ .form-group .d-flex.flex-column.mt-5 - %textarea.red.mb-3{name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } - %button.col-4.offset-md-8.rounded{type: 'submit', class: 'btn btn-primary'}= t('moderation_queue.instances.submit') + %textarea.red.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } + %button.col-4.offset-md-8.rounded{ type: 'submit', class: 'btn btn-primary' }= t('moderation_queue.instances.submit') + diff --git a/app/views/moderation_queue/_block_lists.haml b/app/views/moderation_queue/_block_lists.haml index 55dc56d7..669d451a 100644 --- a/app/views/moderation_queue/_block_lists.haml +++ b/app/views/moderation_queue/_block_lists.haml @@ -1,5 +1,5 @@ .flex .card .card-body - %input{type: 'checkbox', value: '', class: 'ml-5'} + %input{ type: 'checkbox', value: '', class: 'ml-5' } %h4.d-inline.red.ml-5= t('moderation_queue.instances.block_lists') \ No newline at end of file diff --git a/app/views/moderation_queue/_btn_base.haml b/app/views/moderation_queue/_btn_base.haml index 5f4561ef..0f9d7c08 100644 --- a/app/views/moderation_queue/_btn_base.haml +++ b/app/views/moderation_queue/_btn_base.haml @@ -1,3 +1,3 @@ -# Componente Botón general Moderación -%a.btn.btn-lg.rounded.mx-2{role: "button", href: href, class: @class} #{text} \ No newline at end of file +%a.btn.btn-lg.rounded.mx-2{role: 'button', href: href, class: @class} #{text} diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_button_box.haml index 46963b0f..8971a780 100644 --- a/app/views/moderation_queue/_button_box.haml +++ b/app/views/moderation_queue/_button_box.haml @@ -3,4 +3,4 @@ .d-flex.py-4.justify-content-center - btn_params.each do |btn| - @class = btn[1] - = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] \ No newline at end of file + = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index d443802d..d3532734 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -2,17 +2,17 @@ .flex.mx-4.my-5 .row.no-gutters .col-1 - %input{type: "checkbox", id: ""} + %input{ type: 'checkbox', id: '' } .col-10 .row.border.border-white .col.col-1.border.border-white.mr-5 %p= comment['published'].to_datetime.strftime('%m/%d/%Y') .col.border.border-white %span.mr-2= t('.source_profile') - %a{:href => comment['attributedTo']}= profile['preferredUsername'] - .row.border.border-white + %a{ href: comment['attributedTo'] }= profile['preferredUsername'] + .row.border.border-white %p.mr-3= t('.reply_to') %span - %a{:href => comment['inReplyTo']}= comment['inReplyTo'] - .row.border.border-white + %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] + .row.border.border-white %p= sanitize comment['content'] diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 3daddf44..39c8cfae 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -10,7 +10,7 @@ = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' -- @moderation_queue.each do |comment| +- moderation_queue.each do |comment| = render 'comment', comment: comment, profile: @remote_profile = render 'moderation_queue/button_box', btn_params: @btn_params \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index c03055fa..811aeaec 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -14,4 +14,4 @@ %h3.cyan.mt-5= t('moderation_queue.instances.title') %p.pb-2= t('moderation_queue.instances.description') = render 'moderation_queue/block_lists' -= render 'moderation_queue/block_instances_textarea' \ No newline at end of file += render 'moderation_queue/block_instances_textarea' diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 7256f41d..b50d63e6 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -15,7 +15,7 @@ = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' %h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] - %h5= t('.profile_id') + ': ' + remote_profile['id'] + %h5= t('.profile_id') + ': ' + remote_profile['id'] %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') %h5= t('.profile_summary') + ':' %p= sanitize remote_profile['summary'] diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index d89c30b4..1a9838de 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -2,13 +2,10 @@ .col-md-8 - @summary = t('moderation_queue.index.instances') = render 'layouts/details', summary: @summary do - = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue + = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue - @summary = t('moderation_queue.index.accounts') = render 'layouts/details', summary: @summary do = render 'moderation_queue/accounts', site: @site, post: @post, moderation_queue: @moderation_queue - @summary = t('moderation_queue.index.comments') = render 'layouts/details', summary: @summary do = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue - - - diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index f805dfe8..34e30538 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -11,7 +11,7 @@ = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' - + - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: @remote_profile .row.d-flex.justify-content-center From 462d9a698eb69db27ec01bd1d4b2a36c119d9284 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 6 Feb 2024 13:56:20 -0300 Subject: [PATCH 057/150] para pullear --- app/views/moderation_queue/_accounts.haml | 3 +++ app/views/moderation_queue/_instances.haml | 1 + 2 files changed, 4 insertions(+) diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index e69de29b..5250ae87 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -0,0 +1,3 @@ += render 'moderation_queue/comment_filter_box' +- @moderation_queue.each do |comment| + = render 'account', comment: comment, profile: @remote_profile \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index e69de29b..e279f484 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -0,0 +1 @@ += render 'moderation_queue/comment_filter_box' From c8267c44e85369a9d1ac9319b3816bcc4fa69934 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 6 Feb 2024 14:08:15 -0300 Subject: [PATCH 058/150] =?UTF-8?q?fix:=20error=20de=20merge=20y=20error?= =?UTF-8?q?=20de=20indentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_account.haml | 0 app/views/moderation_queue/_accounts.haml | 3 +-- app/views/moderation_queue/_instances.haml | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) create mode 100644 app/views/moderation_queue/_account.haml diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml new file mode 100644 index 00000000..e69de29b diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 9300665b..26485119 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,6 +1,5 @@ -= render 'moderation_queue/comment_filter_box' - @moderation_queue.each do |comment| - = render 'account', comment: comment, profile: @remote_profile + = render 'account', comment: comment, profile: @remote_profile - filtros_moderation_queue - botoneras_moderation_queue diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 1d083d27..811aeaec 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -1,4 +1,3 @@ -= render 'moderation_queue/comment_filter_box' - botoneras_moderation_queue .d-flex.py-2.justify-content-center From 6b0d2ded91f2dbbb7286457ae3b094af8d87a130 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 6 Feb 2024 16:50:26 -0300 Subject: [PATCH 059/150] =?UTF-8?q?feat:=20apartado=20de=20cuentas=20dentr?= =?UTF-8?q?o=20de=20actividades=20de=20moderaci=C3=B3n=20#15091?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/moderation_queue_controller.rb | 10 +++------- app/views/moderation_queue/_account.haml | 2 ++ app/views/moderation_queue/_accounts.haml | 5 ++--- config/locales/es.yml | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb index 4a65f136..eec0c70f 100644 --- a/app/controllers/moderation_queue_controller.rb +++ b/app/controllers/moderation_queue_controller.rb @@ -4,21 +4,17 @@ class ModerationQueueController < ApplicationController # Cola de moderación viendo todo el sitio def index - @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) - @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) - @moderation_queue.each do |activity| - activity['attributedTo'] = @remote_profile - end + dummy_data end # Perfil remoto de usuarie def remote_profile - @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) + dummy_data end # todon.nl está usando /api/v2/instance # mauve.moe usa /api/v1/instance def instances - @instances = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'instances.yaml'))) + dummy_data end end diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml index e69de29b..751d0c0e 100644 --- a/app/views/moderation_queue/_account.haml +++ b/app/views/moderation_queue/_account.haml @@ -0,0 +1,2 @@ +%a{href: profile['id']}= profile['preferredUsername'] +%p= sanitize profile['summary'] \ No newline at end of file diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 26485119..fcdfdce6 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,6 +1,3 @@ -- @moderation_queue.each do |comment| - = render 'account', comment: comment, profile: @remote_profile -- filtros_moderation_queue - botoneras_moderation_queue .d-flex.py-2.justify-content-center @@ -12,4 +9,6 @@ = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' +- @moderation_queue.map{|c| c['attributedTo']}.uniq.each do |remote_profile| + = render 'account', profile: remote_profile = render 'moderation_queue/button_box', btn_params: @profile_btn_params diff --git a/config/locales/es.yml b/config/locales/es.yml index 96f068f3..8828ee9f 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -14,7 +14,7 @@ es: profile_published: Publicada profile_summary: Resumen profile_button_box: - text_approve: Aprovar siempre + text_approve: Aprobar siempre text_check: Revisar siempre text_deny: Bloquear text_report: Reportar From ab1186d08a12c4adc10c3cb3f1b548b70b6030b1 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 6 Feb 2024 17:22:44 -0300 Subject: [PATCH 060/150] =?UTF-8?q?feat:=20apartado=20de=20instancias=20de?= =?UTF-8?q?ntro=20de=20actividades=20de=20moderaci=C3=B3n=20#15091?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_instance.haml | 11 +++++++++++ app/views/moderation_queue/_instances.haml | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 app/views/moderation_queue/_instance.haml diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml new file mode 100644 index 00000000..d3b56a03 --- /dev/null +++ b/app/views/moderation_queue/_instance.haml @@ -0,0 +1,11 @@ +- host = instance['domain'] +- host ||= instance['uri'] +- host = "https://#{host}" + + +%a{href: host}= instance['title'] +%p= instance['description'] +%span Users: +%span + = instance.dig('usage', 'users', 'active_month') + = instance.dig('stats', 'user_count') diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 811aeaec..88a1e11c 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -9,7 +9,9 @@ = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' -= render 'moderation_queue/button_box', btn_params: @instances_btn_params +- @instances.each do |instance| + = render 'moderation_queue/instance', instance: instance + = render 'moderation_queue/button_box', btn_params: @instances_btn_params %h3.cyan.mt-5= t('moderation_queue.instances.title') %p.pb-2= t('moderation_queue.instances.description') From f9a7d8d21ac031720d41fe0f6fce28475fc95304 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 6 Feb 2024 17:27:07 -0300 Subject: [PATCH 061/150] =?UTF-8?q?feat:=20t=C3=ADtulo=20para=20actividade?= =?UTF-8?q?s=20de=20moderaci=C3=B3n=20#15091?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/index.haml | 2 ++ config/locales/en.yml | 1 + config/locales/es.yml | 1 + 3 files changed, 4 insertions(+) diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 1a9838de..43b83b83 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,3 +1,5 @@ +.row.justify-content-center.mb-5 + %h1= t('moderation_queue.index.title') .row.justify-content-center .col-md-8 - @summary = t('moderation_queue.index.instances') diff --git a/config/locales/en.yml b/config/locales/en.yml index 9b8bb92b..9b06a78d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,6 +1,7 @@ en: moderation_queue: index: + title: Moderation instances: Instances accounts: Accounts comments: Comments diff --git a/config/locales/es.yml b/config/locales/es.yml index 8828ee9f..f1b5f2e5 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,6 +1,7 @@ es: moderation_queue: index: + title: Actividades de moderación instances: Instancias accounts: Cuentas comments: Comentarios From dbdce703c3e40065e7b9588e44ec38420e990bfd Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 7 Feb 2024 14:42:25 -0300 Subject: [PATCH 062/150] fix: corregidos botones en comentarios, instancias y cuentas #15028 --- app/helpers/moderation_queue_helper.rb | 63 ------------------- app/views/moderation_queue/_accounts.haml | 15 ++++- app/views/moderation_queue/_btn_base.haml | 2 +- app/views/moderation_queue/_button_box.haml | 6 -- app/views/moderation_queue/_comments.haml | 16 ++++- app/views/moderation_queue/_instances.haml | 14 ++++- .../moderation_queue/_remote_profile.haml | 15 ++++- app/views/posts/_moderation_queue.haml | 17 ++++- 8 files changed, 64 insertions(+), 84 deletions(-) delete mode 100644 app/helpers/moderation_queue_helper.rb delete mode 100644 app/views/moderation_queue/_button_box.haml diff --git a/app/helpers/moderation_queue_helper.rb b/app/helpers/moderation_queue_helper.rb deleted file mode 100644 index 16be2a51..00000000 --- a/app/helpers/moderation_queue_helper.rb +++ /dev/null @@ -1,63 +0,0 @@ -module ModerationQueueHelper - - # parámetros de botones: - # text: [texto del botón] - # class: [clases css] - # href: [href del botón] - def botoneras_moderation_queue - # botones de comentarios - @btn_params = [[t('moderation_queue.button_box.text_pause'), 'btn-secondary', ''], - [t('moderation_queue.button_box.text_reject'), 'btn-primary', ''], - [t('moderation_queue.button_box.text_accept'), 'bg-blue white', ''], - [t('moderation_queue.button_box.text_reply'), 'btn-outline-primary', ''], - [t('moderation_queue.button_box.text_report'), 'btn-danger', '']] - - #botones de remote_profile (cuentas) - @profile_btn_params = [[t('moderation_queue.profile_button_box.text_approve'), 'btn-success', ''], - [t('moderation_queue.profile_button_box.text_check'), 'btn-outline-success', ''], - [t('moderation_queue.profile_button_box.text_deny'), 'bg-blue white', ''], - [t('moderation_queue.profile_button_box.text_report'), 'btn-danger', '']] - - #botones de instances (instancias) - @instances_btn_params = [[t('moderation_queue.instances_button_box.text_check'), 'btn-outline-success', ''], - [t('moderation_queue.instances_button_box.text_allow'), 'btn-success', ''], - [t('moderation_queue.instances_button_box.text_deny'), 'btn-danger', '']] - end - - # parámetros de filtros: - # text: [texto del botón] - # href: [href del botón] - def filtros_moderation_queue - #filtros de comentarios - @comment_filter_params = { - t('moderation_queue.filter_box.text_checked') => - [ - [t('moderation_queue.filter_box.submenu_pause'), '/sutty.nl'], - [t('moderation_queue.filter_box.submenu_reject'), '#reject'], - [t('moderation_queue.filter_box.submenu_accept'),'#accept'] - ], - t('moderation_queue.filter_box.text_show') => - [ - [t('moderation_queue.filter_box.submenu_pause'), '#pause'], - [t('moderation_queue.filter_box.submenu_reject'), '#reject'], - [t('moderation_queue.filter_box.submenu_accept'),'#accept'], - [t('moderation_queue.filter_box.submenu_report'), '#report'] - ] - } - - #filtros de instancias - @instances_filter_params = { - t('moderation_queue.filter_box.text_checked') => - [ - [t('moderation_queue.filter_box.submenu_case'), '#case_by_case'], - [t('moderation_queue.filter_box.submenu_allow'), '#allow'], - [t('moderation_queue.filter_box.submenu_reject'),'#reject'] - ], - t('moderation_queue.filter_box.text_show') => - [ - [t('moderation_queue.filter_box.submenu_allow'), '#allow'], - [t('moderation_queue.filter_box.submenu_reject'), '#reject'] - ] - } - end -end \ No newline at end of file diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index fcdfdce6..825b77c2 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,5 +1,4 @@ -- botoneras_moderation_queue - +-# Filtros .d-flex.py-2.justify-content-center = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' @@ -11,4 +10,14 @@ - @moderation_queue.map{|c| c['attributedTo']}.uniq.each do |remote_profile| = render 'account', profile: remote_profile -= render 'moderation_queue/button_box', btn_params: @profile_btn_params + +-# Botones de Moderación +.d-flex.py-4.justify-content-center + - @class = 'btn-success' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' + - @class = 'btn-outline-success' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' + - @class = 'bg-blue white' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' + - @class = 'btn-danger' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' diff --git a/app/views/moderation_queue/_btn_base.haml b/app/views/moderation_queue/_btn_base.haml index 0f9d7c08..41349ec5 100644 --- a/app/views/moderation_queue/_btn_base.haml +++ b/app/views/moderation_queue/_btn_base.haml @@ -1,3 +1,3 @@ -# Componente Botón general Moderación -%a.btn.btn-lg.rounded.mx-2{role: 'button', href: href, class: @class} #{text} +%button.btn.btn-lg.rounded.mx-2{ href: href, class: @class } #{text} diff --git a/app/views/moderation_queue/_button_box.haml b/app/views/moderation_queue/_button_box.haml deleted file mode 100644 index 8971a780..00000000 --- a/app/views/moderation_queue/_button_box.haml +++ /dev/null @@ -1,6 +0,0 @@ --# Componente Botonera de Moderación - -.d-flex.py-4.justify-content-center - - btn_params.each do |btn| - - @class = btn[1] - = render 'moderation_queue/btn_base', href: btn[2], class: @class, text: btn[0] diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 39c8cfae..8bb11eec 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,4 +1,4 @@ -- botoneras_moderation_queue +-# Filtros .d-flex.py-2.justify-content-center = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' @@ -13,4 +13,16 @@ - moderation_queue.each do |comment| = render 'comment', comment: comment, profile: @remote_profile - = render 'moderation_queue/button_box', btn_params: @btn_params \ No newline at end of file + + -# Botones moderación + .d-flex.py-4.justify-content-center + - @class = 'btn-secondary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' + - @class = 'btn-primary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reject'), class: @class, href: '' + - @class = 'bg-blue white' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_accept'), class: @class, href: '' + - @class = 'btn-outline-primary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reply'), class: @class, href: '' + - @class = 'btn-danger' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_report'), class: @class, href: '' \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 88a1e11c..7af106ee 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -1,5 +1,4 @@ -- botoneras_moderation_queue - +-# Filtros .d-flex.py-2.justify-content-center = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' @@ -11,7 +10,16 @@ - @instances.each do |instance| = render 'moderation_queue/instance', instance: instance - = render 'moderation_queue/button_box', btn_params: @instances_btn_params + + + -# Botones moderación + .d-flex.py-4.justify-content-center + - @class = 'btn-outline-success' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' + - @class = 'btn-success' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' + - @class = 'btn-danger' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' %h3.cyan.mt-5= t('moderation_queue.instances.title') %p.pb-2= t('moderation_queue.instances.description') diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index b50d63e6..a972b051 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,8 +1,7 @@ -# Componente Remote_Profile .flex.py-2.mx-2.text-center - - botoneras_moderation_queue - + -# Filtros .d-flex.py-2.justify-content-center = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' @@ -19,4 +18,14 @@ %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') %h5= t('.profile_summary') + ':' %p= sanitize remote_profile['summary'] - = render 'moderation_queue/button_box', btn_params: @profile_btn_params + +-# Botones de Moderación +.d-flex.py-4.justify-content-center + - @class = 'btn-success' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' + - @class = 'btn-outline-success' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' + - @class = 'bg-blue white' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' + - @class = 'btn-danger' + = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 34e30538..e7bbfd22 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,6 +1,6 @@ .flex %h3.text-center.py-2 Comentarios - - botoneras_moderation_queue + -# Filtros .d-flex.py-2.justify-content-center = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' @@ -14,5 +14,16 @@ - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: @remote_profile - .row.d-flex.justify-content-center - = render 'moderation_queue/button_box', btn_params: @btn_params + + -# Botones moderación + .d-flex.py-4.justify-content-center + - @class = 'btn-secondary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' + - @class = 'btn-primary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reject'), class: @class, href: '' + - @class = 'bg-blue white' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_accept'), class: @class, href: '' + - @class = 'btn-outline-primary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reply'), class: @class, href: '' + - @class = 'btn-danger' + = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_report'), class: @class, href: '' From 9ffd49aae2d116e6077341e20409b4f6a082590f Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 7 Feb 2024 15:03:48 -0300 Subject: [PATCH 063/150] fix: corregida vista remote_profile --- app/views/moderation_queue/_remote_profile.haml | 4 ++++ config/locales/es.yml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index a972b051..4a5e806f 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -19,6 +19,10 @@ %h5= t('.profile_summary') + ':' %p= sanitize remote_profile['summary'] + = render 'moderation_queue/comments', moderation_queue: @moderation_queue + +%h3.text-center.pt-4= t('.profile') +%h4.my-2.text-center= t('.profile_name') + ': ' + remote_profile['name'] -# Botones de Moderación .d-flex.py-4.justify-content-center - @class = 'btn-success' diff --git a/config/locales/es.yml b/config/locales/es.yml index f1b5f2e5..1127f357 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -9,7 +9,7 @@ es: source_profile: Cuenta de Origen reply_to: En respuesta a remote_profile: - profile: Cuentas + profile: Cuenta de Origen profile_name: Nombre de la Cuenta profile_id: ID profile_published: Publicada From 60950400086691f7cb38d3356baa25a773dfef2f Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 7 Feb 2024 15:06:04 -0300 Subject: [PATCH 064/150] fix: corregidos filtros vista remote_profile --- app/views/moderation_queue/_remote_profile.haml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 4a5e806f..6afa2ed0 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,17 +1,6 @@ -# Componente Remote_Profile .flex.py-2.mx-2.text-center - -# Filtros - .d-flex.py-2.justify-content-center - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' %h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] %h5= t('.profile_id') + ': ' + remote_profile['id'] From d5bfbc578f9751d778695eb4c0c99b55fe6a4ba9 Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 7 Feb 2024 17:12:00 -0300 Subject: [PATCH 065/150] fix: correcciones varias de CI --- app/views/moderation_queue/_accounts.haml | 3 ++- app/views/moderation_queue/_block_lists.haml | 6 +++--- app/views/moderation_queue/_instance.haml | 7 +++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 825b77c2..5c58f88b 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -8,7 +8,7 @@ = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' -- @moderation_queue.map{|c| c['attributedTo']}.uniq.each do |remote_profile| +- @moderation_queue.map{ |c| c['attributedTo'] }.uniq.each do |remote_profile| = render 'account', profile: remote_profile -# Botones de Moderación @@ -21,3 +21,4 @@ = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' - @class = 'btn-danger' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' + \ No newline at end of file diff --git a/app/views/moderation_queue/_block_lists.haml b/app/views/moderation_queue/_block_lists.haml index 669d451a..fdb3f044 100644 --- a/app/views/moderation_queue/_block_lists.haml +++ b/app/views/moderation_queue/_block_lists.haml @@ -1,5 +1,5 @@ -.flex - .card +.flex + .card .card-body %input{ type: 'checkbox', value: '', class: 'ml-5' } - %h4.d-inline.red.ml-5= t('moderation_queue.instances.block_lists') \ No newline at end of file + %h4.d-inline.red.ml-5= t('moderation_queue.instances.block_lists') diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index d3b56a03..80114985 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -2,10 +2,9 @@ - host ||= instance['uri'] - host = "https://#{host}" - -%a{href: host}= instance['title'] +%a{ href: host }= instance['title'] %p= instance['description'] %span Users: %span - = instance.dig('usage', 'users', 'active_month') - = instance.dig('stats', 'user_count') + = instance.dig('usage', 'users', 'active_month') + = instance.dig('stats', 'user_count') From a32a3ce7db29636ba854eecea3d5bc18d22d41cc Mon Sep 17 00:00:00 2001 From: jazzari Date: Wed, 7 Feb 2024 17:59:57 -0300 Subject: [PATCH 066/150] fix: corregidos colores de botones y details --- app/assets/stylesheets/application.scss | 19 +++---------------- app/views/moderation_queue/_accounts.haml | 8 ++++---- .../_block_instances_textarea.haml | 2 +- app/views/moderation_queue/_comments.haml | 8 ++++---- app/views/moderation_queue/_instances.haml | 10 +++++----- .../moderation_queue/_remote_profile.haml | 8 ++++---- app/views/posts/_moderation_queue.haml | 8 ++++---- 7 files changed, 25 insertions(+), 38 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index c0a666ab..836d647f 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -3,7 +3,6 @@ $white: white; $grey: grey; $cyan: #13fefe; $magenta: #f206f9; -$blue: blue; $colors: ( "black": $black, @@ -15,7 +14,6 @@ $colors: ( // Redefinir variables de Bootstrap $primary: $magenta; $secondary: $black; -$info: $blue; $jumbotron-bg: transparent; $enable-rounded: false; $form-feedback-valid-color: $black; @@ -569,26 +567,15 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); &::after { content: '▶'; - font-size: 2rem; + font-size: 1.7rem; position: absolute; left: 97%; - bottom: 2%; - transform: rotate(55deg); - color: $magenta - } - - &:focus { - background-color: #13FEFE; - color: black + bottom: 3%; + transform: rotate(58deg); } } .details[open] > summary::after { transform: rotate(90deg) translatey(-0.1em); - color: $magenta } -.bg-blue { - background-color: $azul; -} - diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 5c58f88b..540d13a2 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -13,12 +13,12 @@ -# Botones de Moderación .d-flex.py-4.justify-content-center - - @class = 'btn-success' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' - - @class = 'btn-outline-success' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' - - @class = 'bg-blue white' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' - - @class = 'btn-danger' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' \ No newline at end of file diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index 22a63c39..4f294f0b 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,5 +1,5 @@ .form-group .d-flex.flex-column.mt-5 %textarea.red.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } - %button.col-4.offset-md-8.rounded{ type: 'submit', class: 'btn btn-primary' }= t('moderation_queue.instances.submit') + %button.col-4.offset-md-8.rounded{ type: 'submit', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 8bb11eec..d7d300b7 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -18,11 +18,11 @@ .d-flex.py-4.justify-content-center - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' - - @class = 'btn-primary' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reject'), class: @class, href: '' - - @class = 'bg-blue white' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_accept'), class: @class, href: '' - - @class = 'btn-outline-primary' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reply'), class: @class, href: '' - - @class = 'btn-danger' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_report'), class: @class, href: '' \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 7af106ee..ed5d2404 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -14,12 +14,12 @@ -# Botones moderación .d-flex.py-4.justify-content-center - - @class = 'btn-outline-success' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' - - @class = 'btn-success' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' - - @class = 'btn-danger' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' + - @class = 'btn-secondary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_allow'), class: @class, href: '' + - @class = 'btn-secondary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_deny'), class: @class, href: '' %h3.cyan.mt-5= t('moderation_queue.instances.title') %p.pb-2= t('moderation_queue.instances.description') diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 6afa2ed0..755e96fd 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -14,11 +14,11 @@ %h4.my-2.text-center= t('.profile_name') + ': ' + remote_profile['name'] -# Botones de Moderación .d-flex.py-4.justify-content-center - - @class = 'btn-success' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' - - @class = 'btn-outline-success' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' - - @class = 'bg-blue white' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' - - @class = 'btn-danger' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index e7bbfd22..f2acb818 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -19,11 +19,11 @@ .d-flex.py-4.justify-content-center - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' - - @class = 'btn-primary' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reject'), class: @class, href: '' - - @class = 'bg-blue white' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_accept'), class: @class, href: '' - - @class = 'btn-outline-primary' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reply'), class: @class, href: '' - - @class = 'btn-danger' + - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_report'), class: @class, href: '' From 33cf101b5953fa18c82047a30d1f8593ff6ff26a Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 8 Feb 2024 14:41:50 -0300 Subject: [PATCH 067/150] =?UTF-8?q?fix:=20quitada=20alineaci=C3=B3n=20cent?= =?UTF-8?q?rada=20varios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/application.scss | 4 ++-- app/controllers/posts_controller.rb | 2 +- app/views/layouts/_details.haml | 2 +- app/views/moderation_queue/_accounts.haml | 7 ++----- .../moderation_queue/_block_instances_textarea.haml | 5 +++-- app/views/moderation_queue/_block_lists.haml | 2 +- app/views/moderation_queue/_btn_base.haml | 2 +- app/views/moderation_queue/_comments.haml | 8 ++------ app/views/moderation_queue/_instances.haml | 12 +++++------- app/views/moderation_queue/_remote_profile.haml | 12 +++++------- app/views/moderation_queue/remote_profile.haml | 2 +- app/views/posts/_moderation_queue.haml | 6 +++--- 12 files changed, 27 insertions(+), 37 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 836d647f..5419bcdd 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -567,11 +567,11 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); &::after { content: '▶'; - font-size: 1.7rem; + font-size: 1.8rem; position: absolute; left: 97%; bottom: 3%; - transform: rotate(58deg); + transform: rotate(64deg); } } diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 5be56acc..99dc6f7d 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -38,7 +38,7 @@ class PostsController < ApplicationController @usuarie = site.usuarie? current_usuarie @site_stat = SiteStat.new(site) - @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) + dummy_data end def show diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index 1fe8d2ec..ac1d7c82 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -2,5 +2,5 @@ %details.details.py-2 %summary - %h3.py-2.text-center= @summary + %h3.py-2= @summary = yield diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 540d13a2..1885059e 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,5 +1,5 @@ -# Filtros -.d-flex.py-2.justify-content-center +.d-flex.py-2 = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' @@ -12,13 +12,10 @@ = render 'account', profile: remote_profile -# Botones de Moderación -.d-flex.py-4.justify-content-center +.d-flex.py-4 - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' \ No newline at end of file diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index 4f294f0b..34eb1e5d 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,5 +1,6 @@ .form-group .d-flex.flex-column.mt-5 - %textarea.red.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } - %button.col-4.offset-md-8.rounded{ type: 'submit', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') + %textarea.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } + .d-flex.justify-content-end + %button.col{ type: 'submit', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') diff --git a/app/views/moderation_queue/_block_lists.haml b/app/views/moderation_queue/_block_lists.haml index fdb3f044..577af12e 100644 --- a/app/views/moderation_queue/_block_lists.haml +++ b/app/views/moderation_queue/_block_lists.haml @@ -2,4 +2,4 @@ .card .card-body %input{ type: 'checkbox', value: '', class: 'ml-5' } - %h4.d-inline.red.ml-5= t('moderation_queue.instances.block_lists') + %h4.d-inline.ml-5= t('moderation_queue.instances.block_lists') diff --git a/app/views/moderation_queue/_btn_base.haml b/app/views/moderation_queue/_btn_base.haml index 41349ec5..7f6233cd 100644 --- a/app/views/moderation_queue/_btn_base.haml +++ b/app/views/moderation_queue/_btn_base.haml @@ -1,3 +1,3 @@ -# Componente Botón general Moderación -%button.btn.btn-lg.rounded.mx-2{ href: href, class: @class } #{text} +%button.btn.btn-lg.mx-2{ href: href, class: @class }= text diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index d7d300b7..9a9c9454 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,5 +1,5 @@ -# Filtros -.d-flex.py-2.justify-content-center +.d-flex.py-2 = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' @@ -15,14 +15,10 @@ = render 'comment', comment: comment, profile: @remote_profile -# Botones moderación - .d-flex.py-4.justify-content-center + .d-flex.py-4 - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reject'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_accept'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reply'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_report'), class: @class, href: '' \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index ed5d2404..38f4ad51 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -1,5 +1,5 @@ -# Filtros -.d-flex.py-2.justify-content-center +.d-flex.py-2 = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' @@ -13,15 +13,13 @@ -# Botones moderación - .d-flex.py-4.justify-content-center - - @class = 'btn-secondary' + .d-flex.py-4 + - @class = 'btn btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_allow'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_deny'), class: @class, href: '' -%h3.cyan.mt-5= t('moderation_queue.instances.title') -%p.pb-2= t('moderation_queue.instances.description') +%h3.mt-5= t('moderation_queue.instances.title') +%p= t('moderation_queue.instances.description') = render 'moderation_queue/block_lists' = render 'moderation_queue/block_instances_textarea' diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 755e96fd..965f8854 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,6 +1,6 @@ -# Componente Remote_Profile -.flex.py-2.mx-2.text-center +.flex.py-2.mx-2 %h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] %h5= t('.profile_id') + ': ' + remote_profile['id'] @@ -10,15 +10,13 @@ = render 'moderation_queue/comments', moderation_queue: @moderation_queue -%h3.text-center.pt-4= t('.profile') -%h4.my-2.text-center= t('.profile_name') + ': ' + remote_profile['name'] +%h3.pt-4= t('.profile') +%h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] + -# Botones de Moderación -.d-flex.py-4.justify-content-center +.d-flex.py-4 - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' - - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' diff --git a/app/views/moderation_queue/remote_profile.haml b/app/views/moderation_queue/remote_profile.haml index 3eab5e35..ed66a394 100644 --- a/app/views/moderation_queue/remote_profile.haml +++ b/app/views/moderation_queue/remote_profile.haml @@ -1,3 +1,3 @@ .flex - %h1.text-center= t('.profile') + %h1= t('.profile') = render 'moderation_queue/remote_profile', remote_profile: @remote_profile diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index f2acb818..6db885bb 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,7 +1,7 @@ .flex - %h3.text-center.py-2 Comentarios + %h3.py-2 Comentarios -# Filtros - .d-flex.py-2.justify-content-center + .d-flex.py-2 = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' @@ -16,7 +16,7 @@ = render 'moderation_queue/comment', comment: comment, profile: @remote_profile -# Botones moderación - .d-flex.py-4.justify-content-center + .d-flex.py-4 - @class = 'btn-secondary' = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' - @class = 'btn-secondary' From ffc3f4a72aa9514e061799d6b33971eba87de8ae Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 8 Feb 2024 15:02:09 -0300 Subject: [PATCH 068/150] fix: corregido texto de comentarios en componente moderation_queue --- app/views/posts/_moderation_queue.haml | 1 - config/locales/es.yml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 6db885bb..fa6adfef 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,5 +1,4 @@ .flex - %h3.py-2 Comentarios -# Filtros .d-flex.py-2 = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do diff --git a/config/locales/es.yml b/config/locales/es.yml index 1127f357..fd1626e3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -566,7 +566,7 @@ es: ar: 'árabe' posts: edit: - moderation_queue: Cola de Moderación + moderation_queue: Comentarios post: Contenido prev: Página anterior next: Página siguiente From 47de966f69a4558980080a1c5c97d6b8857aa0df Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 8 Feb 2024 17:59:10 -0300 Subject: [PATCH 069/150] fix: cambiadas variables globales por locales --- app/views/layouts/_details.haml | 2 +- app/views/moderation_queue/_comments.haml | 11 +---------- app/views/moderation_queue/index.haml | 14 +++++++------- app/views/posts/edit.haml | 8 ++++---- 4 files changed, 13 insertions(+), 22 deletions(-) diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index ac1d7c82..306986bf 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -2,5 +2,5 @@ %details.details.py-2 %summary - %h3.py-2= @summary + %h3.py-2= summary = yield diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 9a9c9454..e4285326 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,14 +1,5 @@ -# Filtros -.d-flex.py-2 - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' += render 'moderation_queue/filter_box' - moderation_queue.each do |comment| diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 43b83b83..b361c085 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,13 +1,13 @@ .row.justify-content-center.mb-5 - %h1= t('moderation_queue.index.title') + %h1= t('.title') .row.justify-content-center .col-md-8 - - @summary = t('moderation_queue.index.instances') - = render 'layouts/details', summary: @summary do + - summary = t('.instances') + = render 'layouts/details', summary: summary do = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue - - @summary = t('moderation_queue.index.accounts') - = render 'layouts/details', summary: @summary do + - summary = t('.accounts') + = render 'layouts/details', summary: summary do = render 'moderation_queue/accounts', site: @site, post: @post, moderation_queue: @moderation_queue - - @summary = t('moderation_queue.index.comments') - = render 'layouts/details', summary: @summary do + - summary = t('.comments') + = render 'layouts/details', summary: summary do = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue diff --git a/app/views/posts/edit.haml b/app/views/posts/edit.haml index 5234f257..2e46590e 100644 --- a/app/views/posts/edit.haml +++ b/app/views/posts/edit.haml @@ -1,8 +1,8 @@ .row.justify-content-center .col-md-8 - - @summary = t('posts.edit.post') - = render 'layouts/details', summary: @summary do + - summary = t('posts.edit.post') + = render 'layouts/details', summary: summary do = render 'posts/form', site: @site, post: @post - - @summary = t('posts.edit.moderation_queue') - = render 'layouts/details', summary: @summary do + - summary = t('posts.edit.moderation_queue') + = render 'layouts/details', summary: summary do = render 'posts/moderation_queue', site: @site, post: @post, moderation_queue: @moderation_queue From 111f2d65030bae4ce010e26b09eac2bfdfe60c86 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 9 Feb 2024 12:01:04 -0300 Subject: [PATCH 070/150] fix: creados componentes de filtros para comentarios, cuentas e instancias --- .../components/_comments_checked_submenu.haml | 3 ++ app/views/components/_comments_filters.haml | 6 +++ .../components/_comments_show_submenu.haml | 4 ++ .../_instances_checked_submenu.haml | 3 ++ app/views/components/_instances_filters.haml | 6 +++ .../components/_instances_show_submenu.haml | 2 + .../components/_profiles_checked_submenu.haml | 4 ++ app/views/components/_profiles_filters.haml | 6 +++ .../components/_profiles_show_submenu.haml | 3 ++ app/views/moderation_queue/_accounts.haml | 9 +--- app/views/moderation_queue/_comments.haml | 2 +- app/views/moderation_queue/_instances.haml | 10 +--- app/views/posts/_moderation_queue.haml | 11 +---- config/locales/es.yml | 47 +++++++++++++++---- 14 files changed, 79 insertions(+), 37 deletions(-) create mode 100644 app/views/components/_comments_checked_submenu.haml create mode 100644 app/views/components/_comments_filters.haml create mode 100644 app/views/components/_comments_show_submenu.haml create mode 100644 app/views/components/_instances_checked_submenu.haml create mode 100644 app/views/components/_instances_filters.haml create mode 100644 app/views/components/_instances_show_submenu.haml create mode 100644 app/views/components/_profiles_checked_submenu.haml create mode 100644 app/views/components/_profiles_filters.haml create mode 100644 app/views/components/_profiles_show_submenu.haml diff --git a/app/views/components/_comments_checked_submenu.haml b/app/views/components/_comments_checked_submenu.haml new file mode 100644 index 00000000..4998e5c7 --- /dev/null +++ b/app/views/components/_comments_checked_submenu.haml @@ -0,0 +1,3 @@ += render 'components/dropdown_item', text: t('.submenu_pause'), path: '/' += render 'components/dropdown_item', text: t('.submenu_accept'), path: '/' += render 'components/dropdown_item', text: t('.submenu_reject'), path: '/' \ No newline at end of file diff --git a/app/views/components/_comments_filters.haml b/app/views/components/_comments_filters.haml new file mode 100644 index 00000000..7c453088 --- /dev/null +++ b/app/views/components/_comments_filters.haml @@ -0,0 +1,6 @@ +.d-flex.py-2 + = render 'components/dropdown', text: t('.text_checked') do + = render 'components/comments_checked_submenu' + + = render 'components/dropdown', text: t('.text_show') do + = render 'components/comments_show_submenu' \ No newline at end of file diff --git a/app/views/components/_comments_show_submenu.haml b/app/views/components/_comments_show_submenu.haml new file mode 100644 index 00000000..0308b926 --- /dev/null +++ b/app/views/components/_comments_show_submenu.haml @@ -0,0 +1,4 @@ += render 'components/dropdown_item', text: t('.submenu_pause'), path: '/' += render 'components/dropdown_item', text: t('.submenu_accept'), path: '/' += render 'components/dropdown_item', text: t('.submenu_report'), path: '/' += render 'components/dropdown_item', text: t('.submenu_reject'), path: '/' \ No newline at end of file diff --git a/app/views/components/_instances_checked_submenu.haml b/app/views/components/_instances_checked_submenu.haml new file mode 100644 index 00000000..f0b76185 --- /dev/null +++ b/app/views/components/_instances_checked_submenu.haml @@ -0,0 +1,3 @@ += render 'components/dropdown_item', text: t('.submenu_case'), path: '/' += render 'components/dropdown_item', text: t('.submenu_allow'), path: '/' += render 'components/dropdown_item', text: t('.submenu_reject'), path: '/' \ No newline at end of file diff --git a/app/views/components/_instances_filters.haml b/app/views/components/_instances_filters.haml new file mode 100644 index 00000000..213bb7c0 --- /dev/null +++ b/app/views/components/_instances_filters.haml @@ -0,0 +1,6 @@ +.d-flex.py-2 + = render 'components/dropdown', text: t('.text_checked') do + = render 'components/instances_checked_submenu' + + = render 'components/dropdown', text: t('.text_show') do + = render 'components/comments_show_submenu' diff --git a/app/views/components/_instances_show_submenu.haml b/app/views/components/_instances_show_submenu.haml new file mode 100644 index 00000000..1074cc3f --- /dev/null +++ b/app/views/components/_instances_show_submenu.haml @@ -0,0 +1,2 @@ += render 'components/dropdown_item', text: t('.submenu_allow'), path: '/' += render 'components/dropdown_item', text: t('.submenu_reject'), path: '/' \ No newline at end of file diff --git a/app/views/components/_profiles_checked_submenu.haml b/app/views/components/_profiles_checked_submenu.haml new file mode 100644 index 00000000..8d8f8940 --- /dev/null +++ b/app/views/components/_profiles_checked_submenu.haml @@ -0,0 +1,4 @@ += render 'components/dropdown_item', text: t('.submenu_pause'), path: '/' += render 'components/dropdown_item', text: t('.submenu_accept'), path: '/' += render 'components/dropdown_item', text: t('.submenu_reject'), path: '/' += render 'components/dropdown_item', text: t('.submenu_block'), path: '/' diff --git a/app/views/components/_profiles_filters.haml b/app/views/components/_profiles_filters.haml new file mode 100644 index 00000000..0088afef --- /dev/null +++ b/app/views/components/_profiles_filters.haml @@ -0,0 +1,6 @@ +.d-flex.py-2 + = render 'components/dropdown', text: t('.text_checked') do + = render 'components/profiles_checked_submenu' + + = render 'components/dropdown', text: t('.text_show') do + = render 'components/profiles_show_submenu' \ No newline at end of file diff --git a/app/views/components/_profiles_show_submenu.haml b/app/views/components/_profiles_show_submenu.haml new file mode 100644 index 00000000..2ba949b1 --- /dev/null +++ b/app/views/components/_profiles_show_submenu.haml @@ -0,0 +1,3 @@ += render 'components/dropdown_item', text: t('.submenu_accept'), path: '/' += render 'components/dropdown_item', text: t('.submenu_reject'), path: '/' += render 'components/dropdown_item', text: t('.submenu_block'), path: '/' \ No newline at end of file diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 1885059e..e954d2f3 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,12 +1,5 @@ -# Filtros -.d-flex.py-2 - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' += render 'components/profiles_filters' - @moderation_queue.map{ |c| c['attributedTo'] }.uniq.each do |remote_profile| = render 'account', profile: remote_profile diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index e4285326..c5f7ae5d 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,5 +1,5 @@ -# Filtros -= render 'moderation_queue/filter_box' += render 'components/comments_filters' - moderation_queue.each do |comment| diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 38f4ad51..e50a6e02 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -1,17 +1,9 @@ -# Filtros -.d-flex.py-2 - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_case'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_allow'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' += render 'components/instances_filters' - @instances.each do |instance| = render 'moderation_queue/instance', instance: instance - -# Botones moderación .d-flex.py-4 - @class = 'btn btn-secondary' diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index fa6adfef..df17b1ff 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,15 +1,6 @@ .flex -# Filtros - .d-flex.py-2 - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_checked') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' - = render 'components/dropdown', text: t('moderation_queue.filter_box.text_show') do - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_pause'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_reject'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_accept'), path: '/' - = render 'components/dropdown_item', text: t('moderation_queue.filter_box.submenu_report'), path: '/' + = render 'components/comments_filters' - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: @remote_profile diff --git a/config/locales/es.yml b/config/locales/es.yml index fd1626e3..7cd59cbf 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,4 +1,39 @@ es: + components: + instances_filters: + text_show: Ver + text_checked: Con los marcados + instances_checked_submenu: + submenu_case: Moderar caso por caso + submenu_allow: Permitir todo + submenu_reject: Rechazado + instances_show_submenu: + submenu_allow: Permitido + submenu_reject: Rechazado + comments_filters: + text_show: Ver + text_checked: Con los marcados + comments_checked_submenu: + submenu_pause: Pausado + submenu_accept: Aceptado + submenu_reject: Rechazado + comments_show_submenu: + submenu_pause: Pausado + submenu_accept: Aceptado + submenu_report: Reportado + submenu_reject: Rechazado + profiles_filters: + text_show: Ver + text_checked: Con los marcados + profiles_checked_submenu: + submenu_pause: Pausado + submenu_accept: Aceptado + submenu_reject: Rechazado + submenu_block: Bloqueado + profiles_show_submenu: + submenu_accept: Aceptado + submenu_block: Bloqueado + submenu_reject: Rechazado moderation_queue: index: title: Actividades de moderación @@ -25,15 +60,6 @@ es: text_accept: Aceptar Publicación text_reply: Responder text_report: Reportar - filter_box: - text_show: Ver - text_checked: Con los marcados - submenu_pause: Pausado - submenu_reject: Rechazado - submenu_accept: Aceptado - submenu_report: Reportado - submenu_case: Moderar caso por caso - submenu_allow: Permitir todo instances_button_box: text_check: Moderar caso por caso text_allow: Permitir todo @@ -44,6 +70,9 @@ es: block_lists: Listas de bloqueo custom_block: Lista personalizada de bloqueo submit: Guardar lista de bloqueo + comments_filter_box: + text_show: Ver + text_checked: Con los marcados dark: Oscuro es: Castellano en: English From 754538024efdde09cceaab35ea1680d3fe6d57c3 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 9 Feb 2024 13:17:00 -0300 Subject: [PATCH 071/150] feat: agregado componente checkbox --- app/views/components/_checkbox.haml | 2 ++ app/views/moderation_queue/_block_lists.haml | 2 +- app/views/moderation_queue/_comment.haml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 app/views/components/_checkbox.haml diff --git a/app/views/components/_checkbox.haml b/app/views/components/_checkbox.haml new file mode 100644 index 00000000..ccf22e84 --- /dev/null +++ b/app/views/components/_checkbox.haml @@ -0,0 +1,2 @@ +.custom-control.custom-checkbox + %input{ type: 'checkbox', id: '', class: '' } \ No newline at end of file diff --git a/app/views/moderation_queue/_block_lists.haml b/app/views/moderation_queue/_block_lists.haml index 577af12e..14dd770e 100644 --- a/app/views/moderation_queue/_block_lists.haml +++ b/app/views/moderation_queue/_block_lists.haml @@ -1,5 +1,5 @@ .flex .card .card-body - %input{ type: 'checkbox', value: '', class: 'ml-5' } + = render 'components/checkbox' %h4.d-inline.ml-5= t('moderation_queue.instances.block_lists') diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index d3532734..463f47c7 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -2,7 +2,7 @@ .flex.mx-4.my-5 .row.no-gutters .col-1 - %input{ type: 'checkbox', id: '' } + = render 'components/checkbox' .col-10 .row.border.border-white .col.col-1.border.border-white.mr-5 From 31294ccbc7f3bba6e61d99b23fc762bdbd9bd333 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 9 Feb 2024 14:15:11 -0300 Subject: [PATCH 072/150] fix: movido componente block_lists a app/views/components y corregido es.yml --- app/views/components/_block_lists.haml | 7 +++++++ app/views/moderation_queue/_block_lists.haml | 5 ----- app/views/moderation_queue/_instances.haml | 10 +++++----- config/locales/es.yml | 3 ++- 4 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 app/views/components/_block_lists.haml delete mode 100644 app/views/moderation_queue/_block_lists.haml diff --git a/app/views/components/_block_lists.haml b/app/views/components/_block_lists.haml new file mode 100644 index 00000000..7764dfa5 --- /dev/null +++ b/app/views/components/_block_lists.haml @@ -0,0 +1,7 @@ +-# Componente Listas de bloqueo de Instancias +.flex + .card + .card-body + .d-flex.flex-row + = render 'components/checkbox' + %h4.ml-5= t('.title') diff --git a/app/views/moderation_queue/_block_lists.haml b/app/views/moderation_queue/_block_lists.haml deleted file mode 100644 index 14dd770e..00000000 --- a/app/views/moderation_queue/_block_lists.haml +++ /dev/null @@ -1,5 +0,0 @@ -.flex - .card - .card-body - = render 'components/checkbox' - %h4.d-inline.ml-5= t('moderation_queue.instances.block_lists') diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index e50a6e02..fc249e46 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -6,12 +6,12 @@ -# Botones moderación .d-flex.py-4 - - @class = 'btn btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_allow'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_deny'), class: @class, href: '' + - btn_class = 'btn btn-secondary' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: btn_class, href: '' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_allow'), class: btn_class, href: '' + = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_deny'), class: btn_class, href: '' %h3.mt-5= t('moderation_queue.instances.title') %p= t('moderation_queue.instances.description') -= render 'moderation_queue/block_lists' += render 'components/block_lists' = render 'moderation_queue/block_instances_textarea' diff --git a/config/locales/es.yml b/config/locales/es.yml index 7cd59cbf..4aad1cc7 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -34,6 +34,8 @@ es: submenu_accept: Aceptado submenu_block: Bloqueado submenu_reject: Rechazado + block_lists: + title: Listas de bloqueo moderation_queue: index: title: Actividades de moderación @@ -67,7 +69,6 @@ es: instances: title: Mis listas de bloqueo description: Descripción de listas de bloqueo - block_lists: Listas de bloqueo custom_block: Lista personalizada de bloqueo submit: Guardar lista de bloqueo comments_filter_box: From 3f288ab6e4a7806c29d472dd71f34d8d8265dd2f Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 9 Feb 2024 14:45:12 -0300 Subject: [PATCH 073/150] fix: creados componentes botoneras de comentarios, instancias y cuentas, y movidos a app/views/components --- app/views/components/_btn_base.haml | 3 ++ app/views/components/_checkbox.haml | 3 +- app/views/components/_comments_btn_box.haml | 9 ++++++ app/views/components/_instances_btn_box.haml | 6 ++++ app/views/components/_profiles_btn_box.haml | 7 +++++ app/views/moderation_queue/_accounts.haml | 6 +--- app/views/moderation_queue/_btn_base.haml | 3 -- app/views/moderation_queue/_comments.haml | 8 +---- app/views/moderation_queue/_instances.haml | 7 ++--- .../moderation_queue/_remote_profile.haml | 7 +---- app/views/moderation_queue/index.haml | 6 ++-- app/views/posts/_moderation_queue.haml | 11 +------ app/views/posts/edit.haml | 4 +-- config/locales/es.yml | 30 +++++++++---------- 14 files changed, 53 insertions(+), 57 deletions(-) create mode 100644 app/views/components/_btn_base.haml create mode 100644 app/views/components/_comments_btn_box.haml create mode 100644 app/views/components/_instances_btn_box.haml create mode 100644 app/views/components/_profiles_btn_box.haml delete mode 100644 app/views/moderation_queue/_btn_base.haml diff --git a/app/views/components/_btn_base.haml b/app/views/components/_btn_base.haml new file mode 100644 index 00000000..2985d646 --- /dev/null +++ b/app/views/components/_btn_base.haml @@ -0,0 +1,3 @@ +-# Componente Botón general Moderación + +%button.btn.btn-lg.mx-2{ href: href, class: local_assigns[:class] }= text diff --git a/app/views/components/_checkbox.haml b/app/views/components/_checkbox.haml index ccf22e84..33630780 100644 --- a/app/views/components/_checkbox.haml +++ b/app/views/components/_checkbox.haml @@ -1,2 +1,3 @@ +-# Componente Checkbox .custom-control.custom-checkbox - %input{ type: 'checkbox', id: '', class: '' } \ No newline at end of file + %input{ type: 'checkbox', id: '', class: '' } diff --git a/app/views/components/_comments_btn_box.haml b/app/views/components/_comments_btn_box.haml new file mode 100644 index 00000000..aa755dcc --- /dev/null +++ b/app/views/components/_comments_btn_box.haml @@ -0,0 +1,9 @@ +-# Componente Botonera de Comentarios + +.d-flex.py-4 +- btn_class = 'btn-secondary' += render 'components/btn_base', text: t('.text_pause'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_reject'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_accept'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_reply'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_report'), class: btn_class, href: '' \ No newline at end of file diff --git a/app/views/components/_instances_btn_box.haml b/app/views/components/_instances_btn_box.haml new file mode 100644 index 00000000..854262c0 --- /dev/null +++ b/app/views/components/_instances_btn_box.haml @@ -0,0 +1,6 @@ +-# Componente botonera de moderación de Instancias + +- btn_class = 'btn btn-secondary' += render 'components/btn_base', text: t('.text_check'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_allow'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_deny'), class: btn_class, href: '' \ No newline at end of file diff --git a/app/views/components/_profiles_btn_box.haml b/app/views/components/_profiles_btn_box.haml new file mode 100644 index 00000000..2c63ce3a --- /dev/null +++ b/app/views/components/_profiles_btn_box.haml @@ -0,0 +1,7 @@ +-# Componente Botonera de Moderación de Cuentas (Remote_profile) + +- @class = 'btn-secondary' += render 'components/btn_base', text: t('.text_approve'), class: @class, href: '' += render 'components/btn_base', text: t('.text_check'), class: @class, href: '' += render 'components/btn_base', text: t('.text_deny'), class: @class, href: '' += render 'components/btn_base', text: t('.text_report'), class: @class, href: '' \ No newline at end of file diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index e954d2f3..e92c3a20 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -6,9 +6,5 @@ -# Botones de Moderación .d-flex.py-4 - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' + = render 'components/profiles_btn_box' \ No newline at end of file diff --git a/app/views/moderation_queue/_btn_base.haml b/app/views/moderation_queue/_btn_base.haml deleted file mode 100644 index 7f6233cd..00000000 --- a/app/views/moderation_queue/_btn_base.haml +++ /dev/null @@ -1,3 +0,0 @@ --# Componente Botón general Moderación - -%button.btn.btn-lg.mx-2{ href: href, class: @class }= text diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index c5f7ae5d..d5f2b3bd 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -6,10 +6,4 @@ = render 'comment', comment: comment, profile: @remote_profile -# Botones moderación - .d-flex.py-4 - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reject'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_accept'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reply'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_report'), class: @class, href: '' \ No newline at end of file + = render 'components/comments_btn_box' \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index fc249e46..26caaeca 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -5,11 +5,8 @@ = render 'moderation_queue/instance', instance: instance -# Botones moderación - .d-flex.py-4 - - btn_class = 'btn btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_check'), class: btn_class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_allow'), class: btn_class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.instances_button_box.text_deny'), class: btn_class, href: '' + .d-flex.py-5 + = render 'components/instances_btn_box' %h3.mt-5= t('moderation_queue.instances.title') %p= t('moderation_queue.instances.description') diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 965f8854..ab29ae4d 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -14,9 +14,4 @@ %h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] -# Botones de Moderación -.d-flex.py-4 - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_approve'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_check'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_deny'), class: @class, href: '' - = render 'moderation_queue/btn_base', text: t('moderation_queue.profile_button_box.text_report'), class: @class, href: '' += render 'components/comments_btn_box' diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index b361c085..eae3b5a5 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,7 +1,7 @@ -.row.justify-content-center.mb-5 +.row.mb-5 %h1= t('.title') -.row.justify-content-center - .col-md-8 +.row + .col-md-10 - summary = t('.instances') = render 'layouts/details', summary: summary do = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index df17b1ff..e4a9683c 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -7,13 +7,4 @@ -# Botones moderación .d-flex.py-4 - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_pause'), class: @class, href: '' - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reject'), class: @class, href: '' - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_accept'), class: @class, href: '' - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_reply'), class: @class, href: '' - - @class = 'btn-secondary' - = render 'moderation_queue/btn_base', text: t('moderation_queue.button_box.text_report'), class: @class, href: '' + = render 'components/comments_btn_box' diff --git a/app/views/posts/edit.haml b/app/views/posts/edit.haml index 2e46590e..a83c72af 100644 --- a/app/views/posts/edit.haml +++ b/app/views/posts/edit.haml @@ -1,5 +1,5 @@ -.row.justify-content-center - .col-md-8 +.row + .col-md-10 - summary = t('posts.edit.post') = render 'layouts/details', summary: summary do = render 'posts/form', site: @site, post: @post diff --git a/config/locales/es.yml b/config/locales/es.yml index 4aad1cc7..868f8fc6 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -36,6 +36,21 @@ es: submenu_reject: Rechazado block_lists: title: Listas de bloqueo + comments_btn_box: + text_pause: Pausa + text_reject: Rechazar + text_accept: Aceptar Publicación + text_reply: Responder + text_report: Reportar + instances_btn_box: + text_check: Moderar caso por caso + text_allow: Permitir todo + text_deny: Bloquear instancia + profiles_btn_box: + text_approve: Aprobar siempre + text_check: Revisar siempre + text_deny: Bloquear + text_report: Reportar moderation_queue: index: title: Actividades de moderación @@ -51,21 +66,6 @@ es: profile_id: ID profile_published: Publicada profile_summary: Resumen - profile_button_box: - text_approve: Aprobar siempre - text_check: Revisar siempre - text_deny: Bloquear - text_report: Reportar - button_box: - text_pause: Pausa - text_reject: Rechazar - text_accept: Aceptar Publicación - text_reply: Responder - text_report: Reportar - instances_button_box: - text_check: Moderar caso por caso - text_allow: Permitir todo - text_deny: Bloquear instancia instances: title: Mis listas de bloqueo description: Descripción de listas de bloqueo From ba26b505e499f0c2e139c5778c53c0c10607978f Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 9 Feb 2024 15:03:47 -0300 Subject: [PATCH 074/150] =?UTF-8?q?fix:=20corregidos=20m=C3=A1rgenes=20en?= =?UTF-8?q?=20vistas=20de=20moderaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/index.haml | 27 ++++++++++--------- .../moderation_queue/remote_profile.haml | 7 ++--- app/views/posts/edit.haml | 4 +-- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index eae3b5a5..982a41c8 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -1,13 +1,14 @@ -.row.mb-5 - %h1= t('.title') -.row - .col-md-10 - - summary = t('.instances') - = render 'layouts/details', summary: summary do - = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue - - summary = t('.accounts') - = render 'layouts/details', summary: summary do - = render 'moderation_queue/accounts', site: @site, post: @post, moderation_queue: @moderation_queue - - summary = t('.comments') - = render 'layouts/details', summary: summary do - = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue +.row.justify-content-center + .col-md-8 + %h1= t('.title') + .row + .col + - summary = t('.instances') + = render 'layouts/details', summary: summary do + = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue + - summary = t('.accounts') + = render 'layouts/details', summary: summary do + = render 'moderation_queue/accounts', site: @site, post: @post, moderation_queue: @moderation_queue + - summary = t('.comments') + = render 'layouts/details', summary: summary do + = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue diff --git a/app/views/moderation_queue/remote_profile.haml b/app/views/moderation_queue/remote_profile.haml index ed66a394..ba0fc257 100644 --- a/app/views/moderation_queue/remote_profile.haml +++ b/app/views/moderation_queue/remote_profile.haml @@ -1,3 +1,4 @@ -.flex - %h1= t('.profile') - = render 'moderation_queue/remote_profile', remote_profile: @remote_profile +.row.justify-content-center + .col-md-8 + %h1= t('.profile') + = render 'moderation_queue/remote_profile', remote_profile: @remote_profile diff --git a/app/views/posts/edit.haml b/app/views/posts/edit.haml index a83c72af..2e46590e 100644 --- a/app/views/posts/edit.haml +++ b/app/views/posts/edit.haml @@ -1,5 +1,5 @@ -.row - .col-md-10 +.row.justify-content-center + .col-md-8 - summary = t('posts.edit.post') = render 'layouts/details', summary: summary do = render 'posts/form', site: @site, post: @post From 529711c47dbb823665a0f2685d0b7681792f3d9e Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 9 Feb 2024 16:54:16 -0300 Subject: [PATCH 075/150] fix: corregido compo _remote_profile para hacerlo semantico con dl --- app/views/moderation_queue/_remote_profile.haml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index ab29ae4d..fae38dec 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -1,12 +1,18 @@ -# Componente Remote_Profile .flex.py-2.mx-2 + %dl + %dt= t('.profile_name') + %dd= remote_profile['name'] - %h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] - %h5= t('.profile_id') + ': ' + remote_profile['id'] - %h5= t('.profile_published') + ': ' + remote_profile['published'].to_datetime.strftime('%m/%d/%Y') - %h5= t('.profile_summary') + ':' - %p= sanitize remote_profile['summary'] + %dt= t('.profile_id') + %dd= remote_profile['id'] + + %dt= t('.profile_published') + %dd= remote_profile['published'].to_datetime.strftime('%m/%d/%Y') + + %dt= t('.profile_summary') + %dd= remote_profile['summary'] = render 'moderation_queue/comments', moderation_queue: @moderation_queue From faf3bf3fcf6e590c0984ef0819febc01119b2592 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 12 Feb 2024 11:27:24 -0300 Subject: [PATCH 076/150] fix: corregido codigo de details en application.scss --- app/assets/stylesheets/application.scss | 27 ++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 5419bcdd..c05c49fe 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -559,7 +559,7 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); } } // details styles - +/* .details summary { list-style: none; cursor: default; @@ -578,4 +578,29 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); .details[open] > summary::after { transform: rotate(90deg) translatey(-0.1em); } +*/ + +.details { + summary { + list-style: none; + cursor: default; + position: relative; + } + summary::after { + content: '▶'; + font-size: 1.8rem; + position: absolute; + left: 97%; + bottom: 3%; + transform: rotate(64deg); + } +} + .details[open] { + & > summary { + &::after { + transform: rotate(90deg) translatey(-0.1em); + } + } + } + From 8bfdf3ed0a81fa5b332b2e53c0d7647325851a6a Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 12 Feb 2024 11:29:00 -0300 Subject: [PATCH 077/150] fix: corregido cursor de apertura de details --- app/assets/stylesheets/application.scss | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index c05c49fe..a411c124 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -559,26 +559,6 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); } } // details styles -/* -.details summary { - list-style: none; - cursor: default; - position: relative; - - &::after { - content: '▶'; - font-size: 1.8rem; - position: absolute; - left: 97%; - bottom: 3%; - transform: rotate(64deg); - } - } - -.details[open] > summary::after { - transform: rotate(90deg) translatey(-0.1em); - } -*/ .details { summary { @@ -592,7 +572,7 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); position: absolute; left: 97%; bottom: 3%; - transform: rotate(64deg); + transform: rotate(60deg); } } .details[open] { From d829b5b4ae8b5a7d6fd6ecd9f9b1f7bb675b40b1 Mon Sep 17 00:00:00 2001 From: jazzari Date: Mon, 12 Feb 2024 12:02:06 -0300 Subject: [PATCH 078/150] feat: agregada traducciones en en.yml --- config/locales/en.yml | 71 +++++++++++++++++++++++++++++++++++++++---- config/locales/es.yml | 4 +-- 2 files changed, 66 insertions(+), 9 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 9b06a78d..b1243091 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,18 +1,77 @@ en: + components: + instances_filters: + text_show: Show + text_checked: With the checked + instances_checked_submenu: + submenu_case: Check case by case + submenu_allow: Allow everything + submenu_reject: Reject + instances_show_submenu: + submenu_allow: Allow + submenu_reject: Reject + comments_filters: + text_show: Sho + text_checked: With the checked + comments_checked_submenu: + submenu_pause: Pause + submenu_accept: Accept + submenu_reject: Reject + comments_show_submenu: + submenu_pause: Pause + submenu_accept: Accept + submenu_report: Report + submenu_reject: Reject + profiles_filters: + text_show: Show + text_checked: With the checked + profiles_checked_submenu: + submenu_pause: Pause + submenu_accept: Accept + submenu_reject: Reject + submenu_block: Block + profiles_show_submenu: + submenu_accept: Accept + submenu_block: Block + submenu_reject: Reject + block_lists: + title: Block lists + comments_btn_box: + text_pause: Pause + text_reject: Reject + text_accept: Accept + text_reply: Reply + text_report: Report + instances_btn_box: + text_check: Check case by case + text_allow: Allow everything + text_deny: Block instance + profiles_btn_box: + text_approve: Always approve + text_check: Always check + text_deny: Block + text_report: Report moderation_queue: index: title: Moderation instances: Instances accounts: Accounts comments: Comments + comment: + source_profile: Source Profile + reply_to: Reply to remote_profile: user: Username - button_box: - text_pause: Pause - text_reject: Reject - text_accept: Accept Publication - text_reply: Reply - text_report: Report + profile: Profile + profile_name: Profile name + profile_id: ID + profile_published: Published + profile_summary: Summary + instances: + title: My block lists + description: Description + custom_block: Custom block lists + submit: Save block lists dark: Dark dir: ltr en: English diff --git a/config/locales/es.yml b/config/locales/es.yml index 868f8fc6..4b68f968 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -61,6 +61,7 @@ es: source_profile: Cuenta de Origen reply_to: En respuesta a remote_profile: + user: Nombre de usuario profile: Cuenta de Origen profile_name: Nombre de la Cuenta profile_id: ID @@ -71,9 +72,6 @@ es: description: Descripción de listas de bloqueo custom_block: Lista personalizada de bloqueo submit: Guardar lista de bloqueo - comments_filter_box: - text_show: Ver - text_checked: Con los marcados dark: Oscuro es: Castellano en: English From fb19938361ca88216f7f94e74cb18e30213e08bf Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 14 Feb 2024 14:38:34 -0300 Subject: [PATCH 079/150] fix: quitar bordes blancos de _comment.haml --- app/views/moderation_queue/_comment.haml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 463f47c7..26cfbe29 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -4,15 +4,15 @@ .col-1 = render 'components/checkbox' .col-10 - .row.border.border-white - .col.col-1.border.border-white.mr-5 + .row + .col.col-1.mr-5 %p= comment['published'].to_datetime.strftime('%m/%d/%Y') - .col.border.border-white + .col %span.mr-2= t('.source_profile') %a{ href: comment['attributedTo'] }= profile['preferredUsername'] - .row.border.border-white + .row %p.mr-3= t('.reply_to') %span %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] - .row.border.border-white + .row %p= sanitize comment['content'] From 58012f662e84fd2e7b67498e22a23ebc91496cae Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 14 Feb 2024 14:44:33 -0300 Subject: [PATCH 080/150] fix: row sin col --- app/views/moderation_queue/_comment.haml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 26cfbe29..5f50c996 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -11,8 +11,10 @@ %span.mr-2= t('.source_profile') %a{ href: comment['attributedTo'] }= profile['preferredUsername'] .row - %p.mr-3= t('.reply_to') - %span - %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] + .col.p-0 + %span.mr-3= t('.reply_to') + %span + %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] .row - %p= sanitize comment['content'] + .col.p-0 + %p= sanitize comment['content'] From fdc6ad95b82975ae59ca7f2ab6fa61142e22af58 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 14 Feb 2024 14:51:27 -0300 Subject: [PATCH 081/150] fix: span sin p en _comment.haml --- app/views/moderation_queue/_comment.haml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 5f50c996..ed77d40f 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -8,13 +8,15 @@ .col.col-1.mr-5 %p= comment['published'].to_datetime.strftime('%m/%d/%Y') .col - %span.mr-2= t('.source_profile') - %a{ href: comment['attributedTo'] }= profile['preferredUsername'] + %p + %span.mr-2= t('.source_profile') + %a{ href: comment['attributedTo'] }= profile['preferredUsername'] .row .col.p-0 - %span.mr-3= t('.reply_to') - %span - %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] + %p + %span.mr-3= t('.reply_to') + %span + %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] .row .col.p-0 %p= sanitize comment['content'] From 8dfa3860a5a6fcaae872bd627e16fe363dd88cc5 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 14 Feb 2024 14:58:10 -0300 Subject: [PATCH 082/150] fix: span sin p y texto hardcodeado en _instance.haml --- app/views/moderation_queue/_instance.haml | 9 +++++---- config/locales/en.yml | 1 + config/locales/es.yml | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index 80114985..6f0df926 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -4,7 +4,8 @@ %a{ href: host }= instance['title'] %p= instance['description'] -%span Users: -%span - = instance.dig('usage', 'users', 'active_month') - = instance.dig('stats', 'user_count') +%p + %span= t('.users') + %span + = instance.dig('usage', 'users', 'active_month') + = instance.dig('stats', 'user_count') diff --git a/config/locales/en.yml b/config/locales/en.yml index b1243091..5a8877fd 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -72,6 +72,7 @@ en: description: Description custom_block: Custom block lists submit: Save block lists + users: "Users:" dark: Dark dir: ltr en: English diff --git a/config/locales/es.yml b/config/locales/es.yml index 4b68f968..bd20d3f0 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -72,6 +72,7 @@ es: description: Descripción de listas de bloqueo custom_block: Lista personalizada de bloqueo submit: Guardar lista de bloqueo + users: "Usuaries:" dark: Oscuro es: Castellano en: English From 1deb4053a70142afc00b9c76a24561b15e84bb72 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 14 Feb 2024 15:10:18 -0300 Subject: [PATCH 083/150] fix: condicional en En Respuesta A en _comment.haml --- app/views/moderation_queue/_comment.haml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index ed77d40f..2666d005 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -13,10 +13,11 @@ %a{ href: comment['attributedTo'] }= profile['preferredUsername'] .row .col.p-0 - %p - %span.mr-3= t('.reply_to') - %span - %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] + - if comment['inReplyTo'] + %p + %span.mr-3= t('.reply_to') + %span + %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] .row .col.p-0 %p= sanitize comment['content'] From 2de756867685455218763a1fdbc09b65d72d51d3 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 15:05:27 -0300 Subject: [PATCH 084/150] fix: corregido cuenta de origen de comentarios --- app/views/moderation_queue/_comments.haml | 3 +-- app/views/moderation_queue/_remote_profile.haml | 7 ++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index d5f2b3bd..76e08559 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -2,8 +2,7 @@ = render 'components/comments_filters' - moderation_queue.each do |comment| - - = render 'comment', comment: comment, profile: @remote_profile + = render 'comment', comment: comment, profile: comment['attributedTo'] -# Botones moderación = render 'components/comments_btn_box' \ No newline at end of file diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index fae38dec..744d6445 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -12,12 +12,13 @@ %dd= remote_profile['published'].to_datetime.strftime('%m/%d/%Y') %dt= t('.profile_summary') - %dd= remote_profile['summary'] + %dd= sanitize remote_profile['summary'] = render 'moderation_queue/comments', moderation_queue: @moderation_queue -%h3.pt-4= t('.profile') -%h4.my-2= t('.profile_name') + ': ' + remote_profile['name'] +%dl.mt-5 + %dt= t('.profile_name') + %dd= remote_profile['name'] -# Botones de Moderación = render 'components/comments_btn_box' From d0e1d87c98fbc63eaa64272be1c26e6e59b15f8d Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 15:14:11 -0300 Subject: [PATCH 085/150] fix: quitada sanitizacion en comentarios y remote_profile --- app/views/moderation_queue/_comment.haml | 2 +- app/views/moderation_queue/_remote_profile.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 2666d005..213aa220 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -20,4 +20,4 @@ %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] .row .col.p-0 - %p= sanitize comment['content'] + %p= comment['content'] diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 744d6445..e8635cc6 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -12,7 +12,7 @@ %dd= remote_profile['published'].to_datetime.strftime('%m/%d/%Y') %dt= t('.profile_summary') - %dd= sanitize remote_profile['summary'] + %dd= remote_profile['summary'] = render 'moderation_queue/comments', moderation_queue: @moderation_queue From 68b8aee1f22cf80707b67bb506ce78fae5411d2a Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 16:06:49 -0300 Subject: [PATCH 086/150] fix: quitada sanitizacion y quitado row extra --- app/views/moderation_queue/_account.haml | 2 +- app/views/moderation_queue/_block_instances_textarea.haml | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml index 751d0c0e..01c1fbf9 100644 --- a/app/views/moderation_queue/_account.haml +++ b/app/views/moderation_queue/_account.haml @@ -1,2 +1,2 @@ %a{href: profile['id']}= profile['preferredUsername'] -%p= sanitize profile['summary'] \ No newline at end of file +%p= profile['summary'] \ No newline at end of file diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index 34eb1e5d..339bd25c 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,6 +1,4 @@ .form-group .d-flex.flex-column.mt-5 %textarea.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } - .d-flex.justify-content-end - %button.col{ type: 'submit', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') - + %button.col{ type: 'submit', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') From 700e71ff97c5886283c6012366eb9318f44767d1 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 16:15:57 -0300 Subject: [PATCH 087/150] fix: corregido details en application.scss --- app/assets/stylesheets/application.scss | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index a411c124..ef36c3be 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -574,13 +574,14 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); bottom: 3%; transform: rotate(60deg); } -} - .details[open] { + &[open] { & > summary { &::after { - transform: rotate(90deg) translatey(-0.1em); + transform: rotate(90deg); } } } +} + From f2724c27fb3e24616d376dd920d78dbec0048add Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 16:20:46 -0300 Subject: [PATCH 088/150] =?UTF-8?q?fix:=20corregidos=20par=C3=A1metros=20d?= =?UTF-8?q?e=20compo=20checkbox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/components/_checkbox.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/components/_checkbox.haml b/app/views/components/_checkbox.haml index 33630780..cbc5cb2d 100644 --- a/app/views/components/_checkbox.haml +++ b/app/views/components/_checkbox.haml @@ -1,3 +1,3 @@ -# Componente Checkbox .custom-control.custom-checkbox - %input{ type: 'checkbox', id: '', class: '' } + %input{ type: 'checkbox', id: local_assigns[:id], class: local_assigns[:class] } From 643139aaffb0bec5c833bd49649cd1b52cadaa86 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 16:24:06 -0300 Subject: [PATCH 089/150] fix: corregida indentacion en botones de comentarios --- app/views/components/_comments_btn_box.haml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/components/_comments_btn_box.haml b/app/views/components/_comments_btn_box.haml index aa755dcc..0487c3db 100644 --- a/app/views/components/_comments_btn_box.haml +++ b/app/views/components/_comments_btn_box.haml @@ -1,9 +1,9 @@ -# Componente Botonera de Comentarios .d-flex.py-4 -- btn_class = 'btn-secondary' -= render 'components/btn_base', text: t('.text_pause'), class: btn_class, href: '' -= render 'components/btn_base', text: t('.text_reject'), class: btn_class, href: '' -= render 'components/btn_base', text: t('.text_accept'), class: btn_class, href: '' -= render 'components/btn_base', text: t('.text_reply'), class: btn_class, href: '' -= render 'components/btn_base', text: t('.text_report'), class: btn_class, href: '' \ No newline at end of file + - btn_class = 'btn-secondary' + = render 'components/btn_base', text: t('.text_pause'), class: btn_class, href: '' + = render 'components/btn_base', text: t('.text_reject'), class: btn_class, href: '' + = render 'components/btn_base', text: t('.text_accept'), class: btn_class, href: '' + = render 'components/btn_base', text: t('.text_reply'), class: btn_class, href: '' + = render 'components/btn_base', text: t('.text_report'), class: btn_class, href: '' \ No newline at end of file From e11de6c835091610513aec479c4d6771386bae8d Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 16:27:05 -0300 Subject: [PATCH 090/150] fix: cambiada variable global por local en botonera de profiles --- app/views/components/_profiles_btn_box.haml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/components/_profiles_btn_box.haml b/app/views/components/_profiles_btn_box.haml index 2c63ce3a..06faa8a1 100644 --- a/app/views/components/_profiles_btn_box.haml +++ b/app/views/components/_profiles_btn_box.haml @@ -1,7 +1,7 @@ -# Componente Botonera de Moderación de Cuentas (Remote_profile) -- @class = 'btn-secondary' -= render 'components/btn_base', text: t('.text_approve'), class: @class, href: '' -= render 'components/btn_base', text: t('.text_check'), class: @class, href: '' -= render 'components/btn_base', text: t('.text_deny'), class: @class, href: '' -= render 'components/btn_base', text: t('.text_report'), class: @class, href: '' \ No newline at end of file +- btn_class = 'btn-secondary' += render 'components/btn_base', text: t('.text_approve'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_check'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_deny'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_report'), class: btn_class, href: '' \ No newline at end of file From 243a998451f793d1438aea514b9666ef78e26c7e Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 15 Feb 2024 16:46:04 -0300 Subject: [PATCH 091/150] =?UTF-8?q?fix:=20row=20va=20dentro=20del=20if=20p?= =?UTF-8?q?ara=20no=20quedar=20vac=C3=ADa=20si=20false?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comment.haml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 2666d005..b92b3b11 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -11,9 +11,10 @@ %p %span.mr-2= t('.source_profile') %a{ href: comment['attributedTo'] }= profile['preferredUsername'] - .row - .col.p-0 - - if comment['inReplyTo'] + + - if comment['inReplyTo'] + .row + .col.p-0 %p %span.mr-3= t('.reply_to') %span From 90b14ce2b2589fe80b1329bac314ac626f78ba37 Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 15 Feb 2024 17:07:36 -0300 Subject: [PATCH 092/150] fix: cambio de p por lead --- app/views/moderation_queue/_instances.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 26caaeca..c34bc022 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -9,6 +9,6 @@ = render 'components/instances_btn_box' %h3.mt-5= t('moderation_queue.instances.title') -%p= t('moderation_queue.instances.description') +%lead= t('moderation_queue.instances.description') = render 'components/block_lists' = render 'moderation_queue/block_instances_textarea' From e3cdafe2a6f7c68dae8813127ee4381ed3464ab9 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 17:17:06 -0300 Subject: [PATCH 093/150] fix: corregida clase en compo textarea --- app/views/moderation_queue/_block_instances_textarea.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index 339bd25c..0c0f55ca 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,4 +1,4 @@ .form-group .d-flex.flex-column.mt-5 %textarea.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } - %button.col{ type: 'submit', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') + %button.col.btn.btn-secondary{ type: 'submit' }= t('moderation_queue.instances.submit') From 78e478c00453c7e75ac7a321f4a7ec8fbc459100 Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 15 Feb 2024 17:18:38 -0300 Subject: [PATCH 094/150] =?UTF-8?q?fix:=20fecha=20con=20formato=20seg?= =?UTF-8?q?=C3=BAn=20idioma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comment.haml | 2 +- config/locales/en.yml | 49 ++++++++++++++++++++++++ config/locales/es.yml | 49 ++++++++++++++++++++++++ 3 files changed, 99 insertions(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index e525de8f..daf68290 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -6,7 +6,7 @@ .col-10 .row .col.col-1.mr-5 - %p= comment['published'].to_datetime.strftime('%m/%d/%Y') + %p= comment['published'].to_datetime.strftime(t('date.format')) .col %p %span.mr-2= t('.source_profile') diff --git a/config/locales/en.yml b/config/locales/en.yml index 5a8877fd..d6a15d4b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,4 +1,53 @@ en: + date: + format: '%m/%d/%Y' + published_at: "Published at" + last_modified_at: "Last modification" + abbr_day_names: + - Mon + - Tue + - Wed + - Thu + - Fri + - Sat + - Sun + day_names: + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + - Sunday + abbr_month_names: + - Jan + - Feb + - Mar + - Apr + - May + - Jun + - Jul + - Aug + - Sep + - Oct + - Nov + - Dec + month_names: + - January + - February + - March + - April + - May + - June + - July + - August + - September + - October + - November + - December + time: + am: am + pm: pm components: instances_filters: text_show: Show diff --git a/config/locales/es.yml b/config/locales/es.yml index bd20d3f0..65df27bf 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,4 +1,53 @@ es: + date: + format: '%d/%m/%Y' + published_at: "Publicado en" + last_modified_at: "Última modificación" + abbr_day_names: + - Lun + - Mar + - Mié + - Jue + - Vie + - Sáb + - Dom + day_names: + - Lunes + - Martes + - Miércoles + - Jueves + - Viernes + - Sábado + - Domingo + abbr_month_names: + - Ene + - Feb + - Mar + - Abr + - May + - Jun + - Jul + - Ago + - Sep + - Oct + - Nov + - Dic + month_names: + - Enero + - Febrero + - Marzo + - Abril + - Mayo + - Junio + - Julio + - Agosto + - Septiembre + - Octubre + - Noviembre + - Diciembre + time: + am: am + pm: pm components: instances_filters: text_show: Ver From 564dc060f0d2ee1f53c33be215bc9fcf72d1a3bf Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 15 Feb 2024 17:24:25 -0300 Subject: [PATCH 095/150] fix: quitado flex de compo block_lists --- app/views/components/_block_lists.haml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/views/components/_block_lists.haml b/app/views/components/_block_lists.haml index 7764dfa5..7d9d741d 100644 --- a/app/views/components/_block_lists.haml +++ b/app/views/components/_block_lists.haml @@ -1,7 +1,6 @@ -# Componente Listas de bloqueo de Instancias -.flex - .card - .card-body - .d-flex.flex-row - = render 'components/checkbox' - %h4.ml-5= t('.title') +.card.mt-3 + .card-body + .d-flex.flex-row + = render 'components/checkbox' + %h4.ml-5= t('.title') From 476f0c005fc10224163442df3d369732676f5ab2 Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 15 Feb 2024 17:47:04 -0300 Subject: [PATCH 096/150] fix: remote profile asociado al comentario dentro de posts/_moderation_queue.haml --- app/views/posts/_moderation_queue.haml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index e4a9683c..6921acbb 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,10 +1,9 @@ -.flex - -# Filtros - = render 'components/comments_filters' +-# Filtros += render 'components/comments_filters' - - moderation_queue.each do |comment| - = render 'moderation_queue/comment', comment: comment, profile: @remote_profile +- moderation_queue.each do |comment| + = render 'moderation_queue/comment', comment: comment, profile: comment['attributedTo'] - -# Botones moderación - .d-flex.py-4 - = render 'components/comments_btn_box' + -# Botones moderación + .d-flex.py-4 + = render 'components/comments_btn_box' From 9634f758704887550b45980bd967e3fe9a8a6361 Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 15 Feb 2024 17:56:12 -0300 Subject: [PATCH 097/150] fix: html_safe en comentarios y descripciones --- app/views/moderation_queue/_account.haml | 2 +- app/views/moderation_queue/_comment.haml | 2 +- app/views/moderation_queue/_instance.haml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml index 01c1fbf9..28bba0e9 100644 --- a/app/views/moderation_queue/_account.haml +++ b/app/views/moderation_queue/_account.haml @@ -1,2 +1,2 @@ %a{href: profile['id']}= profile['preferredUsername'] -%p= profile['summary'] \ No newline at end of file +%p= profile['summary'].html_safe \ No newline at end of file diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index daf68290..98679a9f 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -21,4 +21,4 @@ %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] .row .col.p-0 - %p= comment['content'] + %p= comment['content'].html_safe diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index 6f0df926..eb5d6581 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -3,7 +3,7 @@ - host = "https://#{host}" %a{ href: host }= instance['title'] -%p= instance['description'] +%p= instance['description'].html_safe %p %span= t('.users') %span From e769c6ed5c36c4499989b8877d57a7126c005972 Mon Sep 17 00:00:00 2001 From: maki Date: Thu, 15 Feb 2024 18:14:37 -0300 Subject: [PATCH 098/150] fix: responsive de moderation_queue/_comment.haml --- app/views/components/_checkbox.haml | 2 +- app/views/moderation_queue/_comment.haml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/components/_checkbox.haml b/app/views/components/_checkbox.haml index cbc5cb2d..3444720e 100644 --- a/app/views/components/_checkbox.haml +++ b/app/views/components/_checkbox.haml @@ -1,3 +1,3 @@ -# Componente Checkbox -.custom-control.custom-checkbox +.custom-control.custom-checkbox.p-0 %input{ type: 'checkbox', id: local_assigns[:id], class: local_assigns[:class] } diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 98679a9f..aa8d777d 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -4,10 +4,10 @@ .col-1 = render 'components/checkbox' .col-10 - .row - .col.col-1.mr-5 + .row.no-gutters + .col.col-4 %p= comment['published'].to_datetime.strftime(t('date.format')) - .col + .col.col-8 %p %span.mr-2= t('.source_profile') %a{ href: comment['attributedTo'] }= profile['preferredUsername'] From e7595b86887764080dd60503b005dd1ea33534a7 Mon Sep 17 00:00:00 2001 From: maki Date: Fri, 16 Feb 2024 15:33:28 -0300 Subject: [PATCH 099/150] =?UTF-8?q?fix:=20la=20descripci=C3=B3n=20ya=20tra?= =?UTF-8?q?=C3=ADa=20etiqueta=20p,=20redundancia=20borrada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_account.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml index 28bba0e9..85fe96d5 100644 --- a/app/views/moderation_queue/_account.haml +++ b/app/views/moderation_queue/_account.haml @@ -1,2 +1,2 @@ %a{href: profile['id']}= profile['preferredUsername'] -%p= profile['summary'].html_safe \ No newline at end of file +=profile['summary'].html_safe \ No newline at end of file From 4114c1abe6cd4f4fa33c84f2f6d758ec338f6381 Mon Sep 17 00:00:00 2001 From: maki Date: Fri, 16 Feb 2024 15:35:26 -0300 Subject: [PATCH 100/150] fix: p reemplazado por dl --- app/views/moderation_queue/_comment.haml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index aa8d777d..5b0f01a6 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -8,9 +8,10 @@ .col.col-4 %p= comment['published'].to_datetime.strftime(t('date.format')) .col.col-8 - %p - %span.mr-2= t('.source_profile') - %a{ href: comment['attributedTo'] }= profile['preferredUsername'] + %dl + %dt.d-inline.mr-2= t('.source_profile') + %dd.d-inline + %a{ href: comment['attributedTo'] }= profile['preferredUsername'] - if comment['inReplyTo'] .row From 2c61f3baa2e2466179d7089a1a8abd2747049159 Mon Sep 17 00:00:00 2001 From: maki Date: Fri, 16 Feb 2024 15:38:26 -0300 Subject: [PATCH 101/150] =?UTF-8?q?fix:=20comments=5Fbtn=5Fbox=20recibe=20?= =?UTF-8?q?comment=20como=20par=C3=A1metro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comments.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 76e08559..d51909a3 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -5,4 +5,4 @@ = render 'comment', comment: comment, profile: comment['attributedTo'] -# Botones moderación - = render 'components/comments_btn_box' \ No newline at end of file + = render 'components/comments_btn_box', comment: comment \ No newline at end of file From 9554ad1627b1167c140799202ac5c9081e5df885 Mon Sep 17 00:00:00 2001 From: maki Date: Mon, 19 Feb 2024 13:57:39 -0300 Subject: [PATCH 102/150] fix: sintaxis --- app/views/moderation_queue/_comment.haml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 5b0f01a6..fea4570f 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -3,23 +3,23 @@ .row.no-gutters .col-1 = render 'components/checkbox' - .col-10 + .col-11 .row.no-gutters - .col.col-4 + .col-4 %p= comment['published'].to_datetime.strftime(t('date.format')) - .col.col-8 + .col-8 %dl %dt.d-inline.mr-2= t('.source_profile') %dd.d-inline %a{ href: comment['attributedTo'] }= profile['preferredUsername'] - if comment['inReplyTo'] - .row + .row.no-gutters .col.p-0 %p %span.mr-3= t('.reply_to') %span %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] - .row + .row.no-gutters .col.p-0 %p= comment['content'].html_safe From ecab598595130d8cd498161572902dd2cb1a57ca Mon Sep 17 00:00:00 2001 From: maki Date: Mon, 19 Feb 2024 14:21:32 -0300 Subject: [PATCH 103/150] =?UTF-8?q?fix:=20no=20se=20ve=C3=ADan=20los=20bot?= =?UTF-8?q?ones=20en=20modo=20oscuro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/dark.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/assets/stylesheets/dark.scss b/app/assets/stylesheets/dark.scss index 59e15180..f7f3a09d 100644 --- a/app/assets/stylesheets/dark.scss +++ b/app/assets/stylesheets/dark.scss @@ -8,6 +8,10 @@ $cyan: #13fefe; --color: #{$cyan}; } +.btn { + background-color: $white; +} + .btn-secondary { background-color: $white; color: $black; @@ -26,3 +30,5 @@ $cyan: #13fefe; box-shadow: 0 0 0 0.2rem $cyan; } } + + From 5ee9c49529c479625f3c1eee606d3ba3053a6421 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 20 Feb 2024 14:23:16 -0300 Subject: [PATCH 104/150] fix: corregidos botones y espacios en details de instancias --- app/views/components/_btn_base.haml | 2 +- app/views/components/_comments_btn_box.haml | 13 ++++++------- app/views/moderation_queue/_instance.haml | 19 ++++++++++++------- app/views/moderation_queue/_instances.haml | 3 ++- app/views/posts/_moderation_queue.haml | 2 +- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/app/views/components/_btn_base.haml b/app/views/components/_btn_base.haml index 2985d646..ccc7ce35 100644 --- a/app/views/components/_btn_base.haml +++ b/app/views/components/_btn_base.haml @@ -1,3 +1,3 @@ -# Componente Botón general Moderación -%button.btn.btn-lg.mx-2{ href: href, class: local_assigns[:class] }= text +%button.btn.mx-2{ href: href, class: local_assigns[:class] }= text diff --git a/app/views/components/_comments_btn_box.haml b/app/views/components/_comments_btn_box.haml index 0487c3db..7932068f 100644 --- a/app/views/components/_comments_btn_box.haml +++ b/app/views/components/_comments_btn_box.haml @@ -1,9 +1,8 @@ -# Componente Botonera de Comentarios -.d-flex.py-4 - - btn_class = 'btn-secondary' - = render 'components/btn_base', text: t('.text_pause'), class: btn_class, href: '' - = render 'components/btn_base', text: t('.text_reject'), class: btn_class, href: '' - = render 'components/btn_base', text: t('.text_accept'), class: btn_class, href: '' - = render 'components/btn_base', text: t('.text_reply'), class: btn_class, href: '' - = render 'components/btn_base', text: t('.text_report'), class: btn_class, href: '' \ No newline at end of file +- btn_class = 'btn-secondary' += render 'components/btn_base', text: t('.text_pause'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_reject'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_accept'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_reply'), class: btn_class, href: '' += render 'components/btn_base', text: t('.text_report'), class: btn_class, href: '' \ No newline at end of file diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index eb5d6581..74bda75b 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -2,10 +2,15 @@ - host ||= instance['uri'] - host = "https://#{host}" -%a{ href: host }= instance['title'] -%p= instance['description'].html_safe -%p - %span= t('.users') - %span - = instance.dig('usage', 'users', 'active_month') - = instance.dig('stats', 'user_count') +.row.no-gutters.pt-2 + .col-1 + = render 'components/checkbox' + .col-11 + %h4 + %a{ href: host }= instance['title'] + %p= instance['description'].html_safe + %p + %span= t('.users') + %span + = instance.dig('usage', 'users', 'active_month') + = instance.dig('stats', 'user_count') diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index c34bc022..d19ef8ed 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -5,8 +5,9 @@ = render 'moderation_queue/instance', instance: instance -# Botones moderación - .d-flex.py-5 + .d-flex.pb-4 = render 'components/instances_btn_box' + %hr %h3.mt-5= t('moderation_queue.instances.title') %lead= t('moderation_queue.instances.description') diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 6921acbb..2be35f7f 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -5,5 +5,5 @@ = render 'moderation_queue/comment', comment: comment, profile: comment['attributedTo'] -# Botones moderación - .d-flex.py-4 + .d-flex = render 'components/comments_btn_box' From 9064325f7f8d52b98932a88afb14cd2cb7e8e2a3 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 20 Feb 2024 14:26:55 -0300 Subject: [PATCH 105/150] fix: flecha del details apunta donde tiene que apuntar --- app/assets/stylesheets/application.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index ef36c3be..f40af493 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -572,7 +572,7 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); position: absolute; left: 97%; bottom: 3%; - transform: rotate(60deg); + transform: rotate(0deg); } &[open] { & > summary { From f968c60bdf554acf69c95d4791fd68c9636932c3 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 20 Feb 2024 14:29:48 -0300 Subject: [PATCH 106/150] =?UTF-8?q?fix:=20l=C3=ADneas=20de=20separaci?= =?UTF-8?q?=C3=B3n=20entre=20secciones=20de=20Actividades=20de=20moderaci?= =?UTF-8?q?=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/index.haml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/moderation_queue/index.haml b/app/views/moderation_queue/index.haml index 982a41c8..ab98ee30 100644 --- a/app/views/moderation_queue/index.haml +++ b/app/views/moderation_queue/index.haml @@ -6,9 +6,11 @@ - summary = t('.instances') = render 'layouts/details', summary: summary do = render 'moderation_queue/instances', site: @site, post: @post, moderation_queue: @moderation_queue + %hr - summary = t('.accounts') = render 'layouts/details', summary: summary do = render 'moderation_queue/accounts', site: @site, post: @post, moderation_queue: @moderation_queue + %hr - summary = t('.comments') = render 'layouts/details', summary: summary do = render 'moderation_queue/comments', site: @site, post: @post, moderation_queue: @moderation_queue From 195fdb56723fd1805deb97ac7962e8549b9cf42d Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 20 Feb 2024 14:52:23 -0300 Subject: [PATCH 107/150] =?UTF-8?q?fix:=20que=20el=20separador=20entre=20d?= =?UTF-8?q?etails=20se=20vea=20en=20modo=20oscuro=20tambi=C3=A9n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/application.scss | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index f40af493..054faee9 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -584,4 +584,6 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); } - +hr { + border-bottom: 1px solid #dee2e6; +} \ No newline at end of file From 3d543a22fdf5d302c534388cdb49adcb1be50576 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 20 Feb 2024 14:58:59 -0300 Subject: [PATCH 108/150] =?UTF-8?q?fix:=20la=20flecha=20del=20details=20te?= =?UTF-8?q?n=C3=ADa=20que=20apuntar=20para=20la=20izq=20ups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/application.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 054faee9..240e61a5 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -572,7 +572,7 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); position: absolute; left: 97%; bottom: 3%; - transform: rotate(0deg); + transform: rotate(180deg); } &[open] { & > summary { From 5c2f2b9c614eacfc5b9cdaacdb96216d2be412cb Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 20 Feb 2024 15:12:42 -0300 Subject: [PATCH 109/150] =?UTF-8?q?fix:=20agregada=20l=C3=ADnea=20de=20sep?= =?UTF-8?q?araci=C3=B3n=20de=20tarjetas=20en=20compo=20accounts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_account.haml | 9 +++++++-- app/views/moderation_queue/_accounts.haml | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml index 85fe96d5..ab4fc4c7 100644 --- a/app/views/moderation_queue/_account.haml +++ b/app/views/moderation_queue/_account.haml @@ -1,2 +1,7 @@ -%a{href: profile['id']}= profile['preferredUsername'] -=profile['summary'].html_safe \ No newline at end of file +.row.no-gutters.pt-2 + .col-1 + = render 'components/checkbox' + .col-11 + %h4 + %a{href: profile['id']}= profile['preferredUsername'] + =profile['summary'].html_safe diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index e92c3a20..9a6738bd 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -2,9 +2,10 @@ = render 'components/profiles_filters' - @moderation_queue.map{ |c| c['attributedTo'] }.uniq.each do |remote_profile| + %hr = render 'account', profile: remote_profile -# Botones de Moderación -.d-flex.py-4 +.d-flex.pb-4 = render 'components/profiles_btn_box' - \ No newline at end of file + From 71d0985a39dc9b5dc126b57f560f3c580864d7d3 Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 20 Feb 2024 15:13:54 -0300 Subject: [PATCH 110/150] =?UTF-8?q?fix:=20bot=C3=B3n=20no=20deber=C3=ADa?= =?UTF-8?q?=20ocupar=20todo=20el=20ancho=20del=20div?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_block_instances_textarea.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index 0c0f55ca..ff8f9286 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,4 +1,4 @@ .form-group .d-flex.flex-column.mt-5 %textarea.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } - %button.col.btn.btn-secondary{ type: 'submit' }= t('moderation_queue.instances.submit') + %button.btn.btn-secondary{ type: 'submit' }= t('moderation_queue.instances.submit') From bd41144ecf5939fa5a11e5607f8ca2317744051e Mon Sep 17 00:00:00 2001 From: maki Date: Tue, 20 Feb 2024 15:41:49 -0300 Subject: [PATCH 111/150] fix: textarea --- app/views/components/_block_lists.haml | 2 +- app/views/moderation_queue/_block_instances_textarea.haml | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/views/components/_block_lists.haml b/app/views/components/_block_lists.haml index 7d9d741d..8cdcd43b 100644 --- a/app/views/components/_block_lists.haml +++ b/app/views/components/_block_lists.haml @@ -1,5 +1,5 @@ -# Componente Listas de bloqueo de Instancias -.card.mt-3 +.card.mt-3.mb-3 .card-body .d-flex.flex-row = render 'components/checkbox' diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index ff8f9286..9b388a0d 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,4 +1,5 @@ .form-group - .d-flex.flex-column.mt-5 - %textarea.mb-3{ name: '', id: '', placeholder: t('moderation_queue.instances.custom_block') } - %button.btn.btn-secondary{ type: 'submit' }= t('moderation_queue.instances.submit') + = label_tag "custom_blocklist", t('moderation_queue.instances.custom_block') + = text_area_tag "custom_blocklist", nil, class: 'form-control' + %button.btn.btn-secondary.mt-3{ type: 'submit' }= t('moderation_queue.instances.submit') + From 1fba54d80b3ae3e021c69e5a62f01174da63db33 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 21 Feb 2024 13:50:29 -0300 Subject: [PATCH 112/150] fix: checkboxes --- app/controllers/application_controller.rb | 1 + app/views/components/_block_list.haml | 6 ++++++ app/views/components/_block_lists.haml | 8 ++------ app/views/components/_checkbox.haml | 5 +++-- app/views/moderation_queue/_account.haml | 2 +- app/views/moderation_queue/_comment.haml | 2 +- app/views/moderation_queue/_instance.haml | 6 +++--- app/views/moderation_queue/_instances.haml | 2 +- db/seeds/blocklists.yml | 5 +++++ 9 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 app/views/components/_block_list.haml create mode 100644 db/seeds/blocklists.yml diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f673ee83..eca479fe 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -32,6 +32,7 @@ class ApplicationController < ActionController::Base @moderation_queue = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'moderation_queue.yaml'))) @remote_profile = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'remote_profile.yaml'))) @instances = YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'instances.yaml'))) + @blocklists= YAML.safe_load(File.read(Rails.root.join('db', 'seeds', 'blocklists.yml'))) @moderation_queue.each do |activity| activity['attributedTo'] = @remote_profile end diff --git a/app/views/components/_block_list.haml b/app/views/components/_block_list.haml new file mode 100644 index 00000000..c2af3262 --- /dev/null +++ b/app/views/components/_block_list.haml @@ -0,0 +1,6 @@ +-# Componente Listas de bloqueo de Instancias +.card.mt-3.mb-3 + .card-body + .d-flex.flex-row + = render 'components/checkbox', id: blocklist["id"] do + %span.h4= blocklist["title"] diff --git a/app/views/components/_block_lists.haml b/app/views/components/_block_lists.haml index 8cdcd43b..1e9cd76f 100644 --- a/app/views/components/_block_lists.haml +++ b/app/views/components/_block_lists.haml @@ -1,6 +1,2 @@ --# Componente Listas de bloqueo de Instancias -.card.mt-3.mb-3 - .card-body - .d-flex.flex-row - = render 'components/checkbox' - %h4.ml-5= t('.title') +- @blocklists.each do |blocklist| + = render 'components/block_list', blocklist: blocklist diff --git a/app/views/components/_checkbox.haml b/app/views/components/_checkbox.haml index 3444720e..27f9a776 100644 --- a/app/views/components/_checkbox.haml +++ b/app/views/components/_checkbox.haml @@ -1,3 +1,4 @@ -# Componente Checkbox -.custom-control.custom-checkbox.p-0 - %input{ type: 'checkbox', id: local_assigns[:id], class: local_assigns[:class] } +.custom-control.custom-checkbox + %input.custom-control-input{ type: 'checkbox', id: id, name: id, class: local_assigns[:class] } + %label.custom-control-label{ for: id }= yield diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml index ab4fc4c7..412f0aa7 100644 --- a/app/views/moderation_queue/_account.haml +++ b/app/views/moderation_queue/_account.haml @@ -1,6 +1,6 @@ .row.no-gutters.pt-2 .col-1 - = render 'components/checkbox' + = render 'components/checkbox', id: profile['id'] .col-11 %h4 %a{href: profile['id']}= profile['preferredUsername'] diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index fea4570f..99059133 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -2,7 +2,7 @@ .flex.mx-4.my-5 .row.no-gutters .col-1 - = render 'components/checkbox' + = render 'components/checkbox', id: comment['id'] .col-11 .row.no-gutters .col-4 diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index 74bda75b..cff8a957 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -1,13 +1,13 @@ - host = instance['domain'] - host ||= instance['uri'] -- host = "https://#{host}" +- hosthttps = "https://#{host}" .row.no-gutters.pt-2 .col-1 - = render 'components/checkbox' + = render 'components/checkbox', id: host .col-11 %h4 - %a{ href: host }= instance['title'] + %a{ href: hosthttps }= instance['title'] %p= instance['description'].html_safe %p %span= t('.users') diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index d19ef8ed..c51ba74f 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -11,5 +11,5 @@ %h3.mt-5= t('moderation_queue.instances.title') %lead= t('moderation_queue.instances.description') -= render 'components/block_lists' += render 'components/block_lists', blocklists: @blocklists = render 'moderation_queue/block_instances_textarea' diff --git a/db/seeds/blocklists.yml b/db/seeds/blocklists.yml new file mode 100644 index 00000000..d9f9dd6f --- /dev/null +++ b/db/seeds/blocklists.yml @@ -0,0 +1,5 @@ +--- +- id: gardenfence + title: Gardenfence +- id: lista + title: Lista From a7bd712a7c5725125ccbadcf0c075e71bd4f36fe Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 21 Feb 2024 17:33:58 -0300 Subject: [PATCH 113/150] =?UTF-8?q?fix:=20tama=C3=B1o=20botones=20de=20mod?= =?UTF-8?q?eraci=C3=B3n=20de=20comentarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/components/_btn_base.haml | 2 +- app/views/components/_comments_btn_box.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/components/_btn_base.haml b/app/views/components/_btn_base.haml index ccc7ce35..7fa507ca 100644 --- a/app/views/components/_btn_base.haml +++ b/app/views/components/_btn_base.haml @@ -1,3 +1,3 @@ -# Componente Botón general Moderación -%button.btn.mx-2{ href: href, class: local_assigns[:class] }= text +%button.btn{ href: href, class: local_assigns[:class] }= text diff --git a/app/views/components/_comments_btn_box.haml b/app/views/components/_comments_btn_box.haml index 7932068f..8b8d7268 100644 --- a/app/views/components/_comments_btn_box.haml +++ b/app/views/components/_comments_btn_box.haml @@ -1,6 +1,6 @@ -# Componente Botonera de Comentarios -- btn_class = 'btn-secondary' +- btn_class = 'btn-secondary py-1 px-2' = render 'components/btn_base', text: t('.text_pause'), class: btn_class, href: '' = render 'components/btn_base', text: t('.text_reject'), class: btn_class, href: '' = render 'components/btn_base', text: t('.text_accept'), class: btn_class, href: '' From e4e604f56d866b6d06e5479328330edf4e640894 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 21 Feb 2024 17:34:46 -0300 Subject: [PATCH 114/150] =?UTF-8?q?fix:=20separadores=20en=20actividades?= =?UTF-8?q?=20de=20moderaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comment.haml | 8 ++++---- app/views/moderation_queue/_comments.haml | 4 +++- app/views/moderation_queue/_instances.haml | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 99059133..7c77545a 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -1,13 +1,13 @@ -# Componente Comentario -.flex.mx-4.my-5 +.flex.mx-4.my-4 .row.no-gutters .col-1 = render 'components/checkbox', id: comment['id'] .col-11 .row.no-gutters - .col-4 + .col-3 %p= comment['published'].to_datetime.strftime(t('date.format')) - .col-8 + .col-9 %dl %dt.d-inline.mr-2= t('.source_profile') %dd.d-inline @@ -17,7 +17,7 @@ .row.no-gutters .col.p-0 %p - %span.mr-3= t('.reply_to') + %span= t('.reply_to') %span %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] .row.no-gutters diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index d51909a3..b67fc71f 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -2,7 +2,9 @@ = render 'components/comments_filters' - moderation_queue.each do |comment| + %hr = render 'comment', comment: comment, profile: comment['attributedTo'] -# Botones moderación - = render 'components/comments_btn_box', comment: comment \ No newline at end of file + .d-flex.justify-content-between + = render 'components/comments_btn_box', comment: comment \ No newline at end of file diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index c51ba74f..1accf60d 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -2,13 +2,14 @@ = render 'components/instances_filters' - @instances.each do |instance| + %hr = render 'moderation_queue/instance', instance: instance -# Botones moderación .d-flex.pb-4 = render 'components/instances_btn_box' - %hr +%hr %h3.mt-5= t('moderation_queue.instances.title') %lead= t('moderation_queue.instances.description') = render 'components/block_lists', blocklists: @blocklists From b489b713ac64df577ced3b937172c076be44c0f5 Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 21 Feb 2024 17:52:53 -0300 Subject: [PATCH 115/150] fix: faltaba poner la hora de los comentarios --- app/views/moderation_queue/_comment.haml | 8 +++++--- config/locales/en.yml | 1 + config/locales/es.yml | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 7c77545a..80446587 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -5,9 +5,11 @@ = render 'components/checkbox', id: comment['id'] .col-11 .row.no-gutters - .col-3 - %p= comment['published'].to_datetime.strftime(t('date.format')) - .col-9 + .col-5.col-sm-3.col-lg-4 + %p + %span= comment['published'].to_datetime.strftime(t('date.format')) + %span= comment['published'].to_datetime.strftime(t('time.format')) + .col-7.col-sm-9.col-lg-8 %dl %dt.d-inline.mr-2= t('.source_profile') %dd.d-inline diff --git a/config/locales/en.yml b/config/locales/en.yml index d6a15d4b..0d10b3db 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -48,6 +48,7 @@ en: time: am: am pm: pm + format: '%-I:%M %p' components: instances_filters: text_show: Show diff --git a/config/locales/es.yml b/config/locales/es.yml index 65df27bf..e277f76b 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -48,6 +48,7 @@ es: time: am: am pm: pm + format: '%-H:%M' components: instances_filters: text_show: Ver From 1b8685b7ca978f4a1f45d40161d6080678eaa51a Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 21 Feb 2024 18:01:10 -0300 Subject: [PATCH 116/150] fix: yaml roto --- app/views/moderation_queue/_comments.haml | 2 +- config/locales/en.yml | 102 +++++++++++----------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index b67fc71f..0e6ce334 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -6,5 +6,5 @@ = render 'comment', comment: comment, profile: comment['attributedTo'] -# Botones moderación - .d-flex.justify-content-between + .d-flex.justify-content-center = render 'components/comments_btn_box', comment: comment \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 0d10b3db..1b4f2d86 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -50,57 +50,57 @@ en: pm: pm format: '%-I:%M %p' components: - instances_filters: - text_show: Show - text_checked: With the checked - instances_checked_submenu: - submenu_case: Check case by case - submenu_allow: Allow everything - submenu_reject: Reject - instances_show_submenu: - submenu_allow: Allow - submenu_reject: Reject - comments_filters: - text_show: Sho - text_checked: With the checked - comments_checked_submenu: - submenu_pause: Pause - submenu_accept: Accept - submenu_reject: Reject - comments_show_submenu: - submenu_pause: Pause - submenu_accept: Accept - submenu_report: Report - submenu_reject: Reject - profiles_filters: - text_show: Show - text_checked: With the checked - profiles_checked_submenu: - submenu_pause: Pause - submenu_accept: Accept - submenu_reject: Reject - submenu_block: Block - profiles_show_submenu: - submenu_accept: Accept - submenu_block: Block - submenu_reject: Reject - block_lists: - title: Block lists - comments_btn_box: - text_pause: Pause - text_reject: Reject - text_accept: Accept - text_reply: Reply - text_report: Report - instances_btn_box: - text_check: Check case by case - text_allow: Allow everything - text_deny: Block instance - profiles_btn_box: - text_approve: Always approve - text_check: Always check - text_deny: Block - text_report: Report + instances_filters: + text_show: Show + text_checked: With selected + instances_checked_submenu: + submenu_case: Check case by case + submenu_allow: Allow everything + submenu_reject: Reject + instances_show_submenu: + submenu_allow: Allow + submenu_reject: Reject + comments_filters: + text_show: Show + text_checked: With selected + comments_checked_submenu: + submenu_pause: Pause + submenu_accept: Accept + submenu_reject: Reject + comments_show_submenu: + submenu_pause: Pause + submenu_accept: Accept + submenu_report: Report + submenu_reject: Reject + profiles_filters: + text_show: Show + text_checked: With selected + profiles_checked_submenu: + submenu_pause: Pause + submenu_accept: Accept + submenu_reject: Reject + submenu_block: Block + profiles_show_submenu: + submenu_accept: Accept + submenu_block: Block + submenu_reject: Reject + block_lists: + title: Block lists + comments_btn_box: + text_pause: Pause + text_reject: Reject + text_accept: Accept + text_reply: Reply + text_report: Report + instances_btn_box: + text_check: Check case by case + text_allow: Allow everything + text_deny: Block instance + profiles_btn_box: + text_approve: Always approve + text_check: Always check + text_deny: Block + text_report: Report moderation_queue: index: title: Moderation From df88f80b300bd401547fb8f2a76203ff1736c20f Mon Sep 17 00:00:00 2001 From: maki Date: Wed, 21 Feb 2024 18:08:54 -0300 Subject: [PATCH 117/150] fix: comentario en un details si tiene summary --- app/views/moderation_queue/_comment.haml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 80446587..a066f845 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -24,4 +24,9 @@ %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] .row.no-gutters .col.p-0 - %p= comment['content'].html_safe + - if comment['summary'] + - summary = comment['summary'] + = render 'layouts/details', summary: summary do + %p= comment['content'].html_safe + - else + %p= comment['content'].html_safe From e62e26c87c17152979c244b771ce7a02dda7fcb9 Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 22 Feb 2024 15:36:42 -0300 Subject: [PATCH 118/150] fix: agregado checkbox general a comentarios --- app/views/moderation_queue/_comments.haml | 8 ++++++-- app/views/posts/_moderation_queue.haml | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 0e6ce334..41193ce1 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,5 +1,9 @@ --# Filtros -= render 'components/comments_filters' +.row.no-gutters.pt-2 + .col-1 + = render 'components/checkbox', id: moderation_queue.first['id'] + .col-11 + -# Filtros + = render 'components/comments_filters' - moderation_queue.each do |comment| %hr diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 2be35f7f..2ec6a07d 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -1,5 +1,9 @@ --# Filtros -= render 'components/comments_filters' +.row.no-gutters.pt-2 + .col-1 + = render 'components/checkbox', id: moderation_queue.first['id'] + .col-11 + -# Filtros + = render 'components/comments_filters' - moderation_queue.each do |comment| = render 'moderation_queue/comment', comment: comment, profile: comment['attributedTo'] From af1afe8f50c6e288474e4e1137179e3a682e5a8e Mon Sep 17 00:00:00 2001 From: jazzari Date: Thu, 22 Feb 2024 15:50:57 -0300 Subject: [PATCH 119/150] fix: agregado html_safe a summary en remote_profile --- app/views/moderation_queue/_remote_profile.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index e8635cc6..43474b80 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -12,7 +12,7 @@ %dd= remote_profile['published'].to_datetime.strftime('%m/%d/%Y') %dt= t('.profile_summary') - %dd= remote_profile['summary'] + %dd= remote_profile['summary'].html_safe = render 'moderation_queue/comments', moderation_queue: @moderation_queue @@ -21,4 +21,4 @@ %dd= remote_profile['name'] -# Botones de Moderación -= render 'components/comments_btn_box' += render 'components/profiles_btn_box' From 2f19aae793b91447c3cc633456b19d8d0a35fa99 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 23 Feb 2024 13:52:31 -0300 Subject: [PATCH 120/150] feat: agregado enlace a listas de bloquedo y quitado estilo en css --- app/assets/stylesheets/application.scss | 5 ----- app/views/components/_block_list.haml | 6 ++++-- db/seeds/blocklists.yml | 2 ++ 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 240e61a5..a24af4c8 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -582,8 +582,3 @@ $bezier: cubic-bezier(0.75, 0, 0.25, 1); } } } - - -hr { - border-bottom: 1px solid #dee2e6; -} \ No newline at end of file diff --git a/app/views/components/_block_list.haml b/app/views/components/_block_list.haml index c2af3262..36ca8144 100644 --- a/app/views/components/_block_list.haml +++ b/app/views/components/_block_list.haml @@ -2,5 +2,7 @@ .card.mt-3.mb-3 .card-body .d-flex.flex-row - = render 'components/checkbox', id: blocklist["id"] do - %span.h4= blocklist["title"] + = render 'components/checkbox', id: blocklist['id'] do + -#%span.h4= blocklist["title"] + %h4 + %a{ href: blocklist['link'] }= blocklist['title'] diff --git a/db/seeds/blocklists.yml b/db/seeds/blocklists.yml index d9f9dd6f..54dfe6c9 100644 --- a/db/seeds/blocklists.yml +++ b/db/seeds/blocklists.yml @@ -1,5 +1,7 @@ --- - id: gardenfence title: Gardenfence + link: 'https://gardenfence.github.io/' - id: lista title: Lista + link: '#' From e632bd249b16b6e888f65a9e90c517dbbe424a39 Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 23 Feb 2024 14:47:24 -0300 Subject: [PATCH 121/150] fix: corregido compo comentario en cuenta de origen y fecha --- app/views/moderation_queue/_comment.haml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index a066f845..4836f03d 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -5,16 +5,10 @@ = render 'components/checkbox', id: comment['id'] .col-11 .row.no-gutters - .col-5.col-sm-3.col-lg-4 - %p - %span= comment['published'].to_datetime.strftime(t('date.format')) - %span= comment['published'].to_datetime.strftime(t('time.format')) - .col-7.col-sm-9.col-lg-8 - %dl - %dt.d-inline.mr-2= t('.source_profile') - %dd.d-inline - %a{ href: comment['attributedTo'] }= profile['preferredUsername'] - + .col.col-lg-10.d-inline-flex.justify-content-between + %h4 + %a{ href: comment['attributedTo'] }= profile['preferredUsername'] + = render 'layouts/time', time: comment['published'] - if comment['inReplyTo'] .row.no-gutters .col.p-0 @@ -30,3 +24,4 @@ %p= comment['content'].html_safe - else %p= comment['content'].html_safe + From ea6d794b572b48d3198275967927b74efbccb2be Mon Sep 17 00:00:00 2001 From: jazzari Date: Fri, 23 Feb 2024 14:57:07 -0300 Subject: [PATCH 122/150] fix: corregido checkbox general en comentarios, cuentas e instancias --- app/views/moderation_queue/_accounts.haml | 8 ++++++-- app/views/moderation_queue/_comments.haml | 2 +- app/views/moderation_queue/_instances.haml | 8 ++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 9a6738bd..5fa8638c 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -1,5 +1,9 @@ --# Filtros -= render 'components/profiles_filters' +.row.no-gutters.pt-2 + .col-1.d-flex.align-items-center + = render 'components/checkbox', id: moderation_queue.first['id'] + .col-11 + -# Filtros + = render 'components/profiles_filters' - @moderation_queue.map{ |c| c['attributedTo'] }.uniq.each do |remote_profile| %hr diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 41193ce1..6fa8c0f4 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,5 +1,5 @@ .row.no-gutters.pt-2 - .col-1 + .col-1.d-flex.align-items-center = render 'components/checkbox', id: moderation_queue.first['id'] .col-11 -# Filtros diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index 1accf60d..cf67a473 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -1,5 +1,9 @@ --# Filtros -= render 'components/instances_filters' +.row.no-gutters.pt-2 + .col-1.d-flex.align-items-center + = render 'components/checkbox', id: moderation_queue.first['id'] + .col-11 + -# Filtros + = render 'components/instances_filters' - @instances.each do |instance| %hr From 85cfed59fc8fa58fcfc3ba68c73bc03c727215b8 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 12:14:44 -0300 Subject: [PATCH 123/150] =?UTF-8?q?fix:=20corregido=20posici=C3=B3n=20de?= =?UTF-8?q?=20sumary=20en=20details=20y=20boton=20de=20bloqueo=20de=20inst?= =?UTF-8?q?ancias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_details.haml | 3 ++- app/views/moderation_queue/_block_instances_textarea.haml | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index 306986bf..dd6ac5cf 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -2,5 +2,6 @@ %details.details.py-2 %summary - %h3.py-2= summary + .col-11 + %h3.py-2= summary = yield diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index 9b388a0d..a90704cc 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,5 +1,5 @@ .form-group = label_tag "custom_blocklist", t('moderation_queue.instances.custom_block') = text_area_tag "custom_blocklist", nil, class: 'form-control' - %button.btn.btn-secondary.mt-3{ type: 'submit' }= t('moderation_queue.instances.submit') - + %p + %a.mt-3{ role: 'button', href: '', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') From 7837e2e85f1a15b546ba6121b2db57e41d460f1a Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 12:18:18 -0300 Subject: [PATCH 124/150] fix: corregido espacio en componente block_list --- app/views/components/_block_list.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/components/_block_list.haml b/app/views/components/_block_list.haml index 36ca8144..0d07a340 100644 --- a/app/views/components/_block_list.haml +++ b/app/views/components/_block_list.haml @@ -4,5 +4,5 @@ .d-flex.flex-row = render 'components/checkbox', id: blocklist['id'] do -#%span.h4= blocklist["title"] - %h4 + %h4.m-0 %a{ href: blocklist['link'] }= blocklist['title'] From 570459fef3c6f424f46483c718320f529e728da5 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 12:25:09 -0300 Subject: [PATCH 125/150] =?UTF-8?q?fix:=20corregido=20posici=C3=B3n=20de?= =?UTF-8?q?=20botones=20de=20moderaci=C3=B3n=20en=20details=20de=20Instanc?= =?UTF-8?q?ias=20y=20Cuentas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_account.haml | 4 ++++ app/views/moderation_queue/_accounts.haml | 3 --- app/views/moderation_queue/_instance.haml | 4 ++++ app/views/moderation_queue/_instances.haml | 4 ---- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/views/moderation_queue/_account.haml b/app/views/moderation_queue/_account.haml index 412f0aa7..2c929402 100644 --- a/app/views/moderation_queue/_account.haml +++ b/app/views/moderation_queue/_account.haml @@ -5,3 +5,7 @@ %h4 %a{href: profile['id']}= profile['preferredUsername'] =profile['summary'].html_safe + + -# Botones de Moderación + .d-flex.pb-4 + = render 'components/profiles_btn_box' \ No newline at end of file diff --git a/app/views/moderation_queue/_accounts.haml b/app/views/moderation_queue/_accounts.haml index 5fa8638c..2d8e1420 100644 --- a/app/views/moderation_queue/_accounts.haml +++ b/app/views/moderation_queue/_accounts.haml @@ -9,7 +9,4 @@ %hr = render 'account', profile: remote_profile --# Botones de Moderación -.d-flex.pb-4 - = render 'components/profiles_btn_box' diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index cff8a957..889b6095 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -14,3 +14,7 @@ %span = instance.dig('usage', 'users', 'active_month') = instance.dig('stats', 'user_count') + + -# Botones moderación + .d-flex.pb-4 + = render 'components/instances_btn_box' diff --git a/app/views/moderation_queue/_instances.haml b/app/views/moderation_queue/_instances.haml index cf67a473..72be522f 100644 --- a/app/views/moderation_queue/_instances.haml +++ b/app/views/moderation_queue/_instances.haml @@ -9,10 +9,6 @@ %hr = render 'moderation_queue/instance', instance: instance - -# Botones moderación - .d-flex.pb-4 - = render 'components/instances_btn_box' - %hr %h3.mt-5= t('moderation_queue.instances.title') %lead= t('moderation_queue.instances.description') From e728c09cc244b7a7a528d57b543fead8b74da312 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 12:35:25 -0300 Subject: [PATCH 126/150] =?UTF-8?q?fix:=20corregida=20traducci=C3=B3n=20de?= =?UTF-8?q?=20usuarios=20de=20instancia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_instance.haml | 6 +++--- config/locales/en.yml | 1 + config/locales/es.yml | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index 889b6095..3bfbde44 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -9,9 +9,9 @@ %h4 %a{ href: hosthttps }= instance['title'] %p= instance['description'].html_safe - %p - %span= t('.users') - %span + %dl + %dt= t('.users') + %dd = instance.dig('usage', 'users', 'active_month') = instance.dig('stats', 'user_count') diff --git a/config/locales/en.yml b/config/locales/en.yml index 1b4f2d86..51b1df4d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -122,6 +122,7 @@ en: description: Description custom_block: Custom block lists submit: Save block lists + instance: users: "Users:" dark: Dark dir: ltr diff --git a/config/locales/es.yml b/config/locales/es.yml index e277f76b..f4751c7a 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -122,6 +122,7 @@ es: description: Descripción de listas de bloqueo custom_block: Lista personalizada de bloqueo submit: Guardar lista de bloqueo + instance: users: "Usuaries:" dark: Oscuro es: Castellano From ae0ca386c3102171e44fb9b0173350208ba7740e Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 13:07:51 -0300 Subject: [PATCH 127/150] fix: correciones varias en componente remote_profile --- app/views/moderation_queue/_remote_profile.haml | 10 +++++++--- config/locales/en.yml | 1 + config/locales/es.yml | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 43474b80..263f9c6b 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -5,12 +5,16 @@ %dt= t('.profile_name') %dd= remote_profile['name'] + %dt= t('.preferred_name') + %dd= remote_profile['preferredUsername'] + %dt= t('.profile_id') - %dd= remote_profile['id'] + %dd + %a{ href: 'https://mastodon.mauve.moe/users/mauve' }= remote_profile['id'] %dt= t('.profile_published') - %dd= remote_profile['published'].to_datetime.strftime('%m/%d/%Y') - + %dd + = render 'layouts/time', time: remote_profile['published'] %dt= t('.profile_summary') %dd= remote_profile['summary'].html_safe diff --git a/config/locales/en.yml b/config/locales/en.yml index 51b1df4d..9aa2c801 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -114,6 +114,7 @@ en: user: Username profile: Profile profile_name: Profile name + preferred_name: Name in Fediverse profile_id: ID profile_published: Published profile_summary: Summary diff --git a/config/locales/es.yml b/config/locales/es.yml index f4751c7a..e39b13c2 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -114,9 +114,10 @@ es: user: Nombre de usuario profile: Cuenta de Origen profile_name: Nombre de la Cuenta + preferred_name: Nombre en el Fediverso profile_id: ID profile_published: Publicada - profile_summary: Resumen + profile_summary: Presentación instances: title: Mis listas de bloqueo description: Descripción de listas de bloqueo From 5a30da4232282d8fdb7483109b9c420d9dfbc674 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 13:14:25 -0300 Subject: [PATCH 128/150] =?UTF-8?q?fix:=20corregido=20parrafo=20en=20Prese?= =?UTF-8?q?ntaci=C3=B3n=20de=20componente=20Remote=5Fprofile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_remote_profile.haml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 263f9c6b..92cf8e96 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -16,7 +16,8 @@ %dd = render 'layouts/time', time: remote_profile['published'] %dt= t('.profile_summary') - %dd= remote_profile['summary'].html_safe + %dd + %p= remote_profile['summary'].html_safe = render 'moderation_queue/comments', moderation_queue: @moderation_queue From c0b64fc3da31846c2e1e85c900d3b1d5e0323988 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 14:08:48 -0300 Subject: [PATCH 129/150] fix: corregido enlace a listas de bloqueo en compo block_list --- app/views/components/_block_list.haml | 4 ++-- app/views/moderation_queue/_block_instances_textarea.haml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/components/_block_list.haml b/app/views/components/_block_list.haml index 0d07a340..5bc0e130 100644 --- a/app/views/components/_block_list.haml +++ b/app/views/components/_block_list.haml @@ -3,6 +3,6 @@ .card-body .d-flex.flex-row = render 'components/checkbox', id: blocklist['id'] do - -#%span.h4= blocklist["title"] - %h4.m-0 + %span.h4= blocklist["title"] + %p %a{ href: blocklist['link'] }= blocklist['title'] diff --git a/app/views/moderation_queue/_block_instances_textarea.haml b/app/views/moderation_queue/_block_instances_textarea.haml index a90704cc..9b388a0d 100644 --- a/app/views/moderation_queue/_block_instances_textarea.haml +++ b/app/views/moderation_queue/_block_instances_textarea.haml @@ -1,5 +1,5 @@ .form-group = label_tag "custom_blocklist", t('moderation_queue.instances.custom_block') = text_area_tag "custom_blocklist", nil, class: 'form-control' - %p - %a.mt-3{ role: 'button', href: '', class: 'btn btn-secondary' }= t('moderation_queue.instances.submit') + %button.btn.btn-secondary.mt-3{ type: 'submit' }= t('moderation_queue.instances.submit') + From cda5fc1215c1613465047fe73fb3866244fff1d3 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 14:37:07 -0300 Subject: [PATCH 130/150] fix: corregido enlace en block_list y texto en es.yml --- app/views/components/_block_list.haml | 3 ++- config/locales/es.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/components/_block_list.haml b/app/views/components/_block_list.haml index 5bc0e130..0c7a7b04 100644 --- a/app/views/components/_block_list.haml +++ b/app/views/components/_block_list.haml @@ -4,5 +4,6 @@ .d-flex.flex-row = render 'components/checkbox', id: blocklist['id'] do %span.h4= blocklist["title"] - %p + + %p.mb-0 %a{ href: blocklist['link'] }= blocklist['title'] diff --git a/config/locales/es.yml b/config/locales/es.yml index e39b13c2..7a2bfd85 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -122,7 +122,7 @@ es: title: Mis listas de bloqueo description: Descripción de listas de bloqueo custom_block: Lista personalizada de bloqueo - submit: Guardar lista de bloqueo + submit: Guardar listas de bloqueo instance: users: "Usuaries:" dark: Oscuro From 0dba9e550040f1cfb53778ee9f4f1de5c7aed406 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 15:05:16 -0300 Subject: [PATCH 131/150] =?UTF-8?q?fix:=20corregida=20alineaci=C3=B3n=20de?= =?UTF-8?q?=20checkbox=20general=20en=20details=20comentarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/moderation_queue/_comment.haml | 44 +++++++++++------------ app/views/moderation_queue/_comments.haml | 2 +- app/views/posts/_moderation_queue.haml | 1 + 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/app/views/moderation_queue/_comment.haml b/app/views/moderation_queue/_comment.haml index 4836f03d..afd2a335 100644 --- a/app/views/moderation_queue/_comment.haml +++ b/app/views/moderation_queue/_comment.haml @@ -1,27 +1,27 @@ -# Componente Comentario -.flex.mx-4.my-4 - .row.no-gutters - .col-1 - = render 'components/checkbox', id: comment['id'] - .col-11 - .row.no-gutters - .col.col-lg-10.d-inline-flex.justify-content-between - %h4 - %a{ href: comment['attributedTo'] }= profile['preferredUsername'] - = render 'layouts/time', time: comment['published'] - - if comment['inReplyTo'] - .row.no-gutters - .col.p-0 - %p - %span= t('.reply_to') - %span - %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] + +.row.no-gutters + .col-1 + = render 'components/checkbox', id: comment['id'] + .col-11 + .row.no-gutters + .col.col-lg-10.d-inline-flex.justify-content-between + %h4 + %a{ href: comment['attributedTo'] }= profile['preferredUsername'] + = render 'layouts/time', time: comment['published'] + - if comment['inReplyTo'] .row.no-gutters .col.p-0 - - if comment['summary'] - - summary = comment['summary'] - = render 'layouts/details', summary: summary do - %p= comment['content'].html_safe - - else + %p + %span= t('.reply_to') + %span + %a{ href: comment['inReplyTo'] }= comment['inReplyTo'] + .row.no-gutters + .col.p-0 + - if comment['summary'] + - summary = comment['summary'] + = render 'layouts/details', summary: summary do %p= comment['content'].html_safe + - else + %p= comment['content'].html_safe diff --git a/app/views/moderation_queue/_comments.haml b/app/views/moderation_queue/_comments.haml index 6fa8c0f4..eadfd78b 100644 --- a/app/views/moderation_queue/_comments.haml +++ b/app/views/moderation_queue/_comments.haml @@ -1,7 +1,7 @@ .row.no-gutters.pt-2 .col-1.d-flex.align-items-center = render 'components/checkbox', id: moderation_queue.first['id'] - .col-11 + .col-md-9 -# Filtros = render 'components/comments_filters' diff --git a/app/views/posts/_moderation_queue.haml b/app/views/posts/_moderation_queue.haml index 2ec6a07d..a72e8abd 100644 --- a/app/views/posts/_moderation_queue.haml +++ b/app/views/posts/_moderation_queue.haml @@ -6,6 +6,7 @@ = render 'components/comments_filters' - moderation_queue.each do |comment| + %hr = render 'moderation_queue/comment', comment: comment, profile: comment['attributedTo'] -# Botones moderación From bbbbad18a073e5931adad4b256599840297977d1 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 15:21:31 -0300 Subject: [PATCH 132/150] fix: corregido margen en summary de compo details --- app/views/layouts/_details.haml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index dd6ac5cf..99ba4894 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -2,6 +2,7 @@ %details.details.py-2 %summary - .col-11 - %h3.py-2= summary + .row + .col-11.pr-2 + %h3.py-2= summary = yield From e239bd8b85fd6dad2e7fe4fcec72c46beb323b7a Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 15:25:25 -0300 Subject: [PATCH 133/150] fix: corregido usuarios en compo instance --- app/views/moderation_queue/_instance.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/moderation_queue/_instance.haml b/app/views/moderation_queue/_instance.haml index 3bfbde44..ec887d2d 100644 --- a/app/views/moderation_queue/_instance.haml +++ b/app/views/moderation_queue/_instance.haml @@ -9,8 +9,8 @@ %h4 %a{ href: hosthttps }= instance['title'] %p= instance['description'].html_safe - %dl - %dt= t('.users') + %dl.d-inline-flex + %dt.pr-2= t('.users') %dd = instance.dig('usage', 'users', 'active_month') = instance.dig('stats', 'user_count') From d4fa056db4d652070a829b16b79cea92f3e5c426 Mon Sep 17 00:00:00 2001 From: jazzari Date: Tue, 27 Feb 2024 16:08:11 -0300 Subject: [PATCH 134/150] fix: corregido summary en compo details --- app/views/layouts/_details.haml | 4 +--- app/views/moderation_queue/_remote_profile.haml | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/views/layouts/_details.haml b/app/views/layouts/_details.haml index 99ba4894..a40d0403 100644 --- a/app/views/layouts/_details.haml +++ b/app/views/layouts/_details.haml @@ -2,7 +2,5 @@ %details.details.py-2 %summary - .row - .col-11.pr-2 - %h3.py-2= summary + %h3.py-2.pr-2= summary = yield diff --git a/app/views/moderation_queue/_remote_profile.haml b/app/views/moderation_queue/_remote_profile.haml index 92cf8e96..263f9c6b 100644 --- a/app/views/moderation_queue/_remote_profile.haml +++ b/app/views/moderation_queue/_remote_profile.haml @@ -16,8 +16,7 @@ %dd = render 'layouts/time', time: remote_profile['published'] %dt= t('.profile_summary') - %dd - %p= remote_profile['summary'].html_safe + %dd= remote_profile['summary'].html_safe = render 'moderation_queue/comments', moderation_queue: @moderation_queue From fb38600884faffea66a9ff832d854fec3eb5dc03 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 22 Mar 2024 18:34:24 -0300 Subject: [PATCH 135/150] =?UTF-8?q?feat:=20recargar=20autom=C3=A1ticamente?= =?UTF-8?q?=20el=20estado=20de=20publicaci=C3=B3n=20#13611?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sites_controller.rb | 7 +++++ app/javascript/packs/application.js | 2 ++ app/views/sites/_status.haml | 41 ++++++++++++++++------------- app/views/sites/status.haml | 1 + config/locales/en.yml | 2 +- config/locales/es.yml | 2 +- config/routes.rb | 2 ++ package.json | 3 ++- yarn.lock | 5 ++++ 9 files changed, 43 insertions(+), 22 deletions(-) create mode 100644 app/views/sites/status.haml diff --git a/app/controllers/sites_controller.rb b/app/controllers/sites_controller.rb index bec42b39..49527cf7 100644 --- a/app/controllers/sites_controller.rb +++ b/app/controllers/sites_controller.rb @@ -15,6 +15,13 @@ class SitesController < ApplicationController fresh_when @sites end + # Genera la caja del estado para HTMX + def status + authorize site + + render('sites/status', layout: false) if stale? site + end + # No tenemos propiedades de un sitio aún, así que vamos al listado de # artículos def show diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 9cbc30bf..9ddc9753 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -33,3 +33,5 @@ import 'chartkick/chart.js' Rails.start() Turbolinks.start() ActiveStorage.start() + +window.htmx = require('htmx.org/dist/htmx') diff --git a/app/views/sites/_status.haml b/app/views/sites/_status.haml index 6a610e73..47bed657 100644 --- a/app/views/sites/_status.haml +++ b/app/views/sites/_status.haml @@ -1,21 +1,24 @@ -- link = nil -- if site.not_published_yet? - - message = t('.not_published_yet') -- elsif site.awaiting_publication? - - message = t('.awaiting_publication') -- elsif site.building? - - if site.average_publication_time_calculable? - - average_building_time = site.average_publication_time - - elsif !site.similar_sites? - - average_building_time = 60 +- cache site do + - link = nil + - if site.not_published_yet? + - message = t('.not_published_yet') + - elsif site.awaiting_publication? + - message = t('.awaiting_publication') + - elsif site.building? + - if site.average_publication_time_calculable? + - average_building_time = site.average_publication_time + - elsif !site.similar_sites? + - average_building_time = 60 + - else + - average_building_time = site.average_publication_time_for_similar_sites + + - average_publication_time_human = distance_of_time_in_words average_building_time + - message = t('.building', average_time: average_publication_time_human, seconds: average_building_time) - else - - average_building_time = site.average_publication_time_for_similar_sites + - message = t('.available') + - link = true - - average_publication_time_human = distance_of_time_in_words average_building_time - - message = t('.building', average_time: average_publication_time_human, seconds: average_building_time) -- else - - message = t('.available') - - link = true - -= render 'bootstrap/alert' do - = link_to_if link, message.html_safe, site_build_stats_path(site), class: 'alert-link' + -# TODO: Calcular cada cuanto sería óptimo recargar + %div{ 'hx-get': site_status_path(site), 'hx-trigger': 'every 10s', 'hx-swap': 'outerHTML' } + = render 'bootstrap/alert' do + = link_to_if link, message.html_safe, site_build_stats_path(site), class: 'alert-link' diff --git a/app/views/sites/status.haml b/app/views/sites/status.haml new file mode 100644 index 00000000..3d9793a5 --- /dev/null +++ b/app/views/sites/status.haml @@ -0,0 +1 @@ += render 'sites/status', site: @site diff --git a/config/locales/en.yml b/config/locales/en.yml index fc9d4894..720f784a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -389,7 +389,7 @@ en: static_file_migration: 'File migration' find_and_replace: 'Search and replace' status: - building: "Your site is building, refresh this page in ." + building: "Your site is building, it will be ready in ." not_published_yet: "Your site is being published for the first time, please wait up to 1 minute..." available: "Your site is available! Click here to find all the different ways to visit it." awaiting_publication: "There are unpublished changes. Click the button below and wait a moment to find them on your site." diff --git a/config/locales/es.yml b/config/locales/es.yml index 4bda4982..e7ff0864 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -394,7 +394,7 @@ es: static_file_migration: 'Migración de archivos' find_and_replace: 'Búsqueda y reemplazo' status: - building: "Tu sitio se está publicando, recargá esta página en ." + building: "Tu sitio se está publicando, estará listo en ." not_published_yet: "Tu sitio se está publicando por primera vez, por favor espera hasta un minuto..." available: "¡Tu sitio está disponible! Cliqueá aquí para encontrar todas las formas en que podés visitarlo." awaiting_publication: "Hay cambios sin publicar, cliqueá el botón debajo y espera un momento para encontrarlos en tu sitio." diff --git a/config/routes.rb b/config/routes.rb index 635be07a..557439e9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -37,6 +37,8 @@ Rails.application.routes.draw do get 'pull', to: 'sites#fetch' post 'pull', to: 'sites#merge' + get 'status', to: 'sites#status' + # Gestionar usuaries get 'usuaries/invite', to: 'usuaries#invite' post 'usuaries/invite', to: 'usuaries#send_invitations' diff --git a/package.json b/package.json index 7901ad41..871c9d9b 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "zepto": "^1.2.0" }, "devDependencies": { - "@types/rails__activestorage": "^6.0.0" + "@types/rails__activestorage": "^6.0.0", + "htmx.org": "^1.9.11" } } diff --git a/yarn.lock b/yarn.lock index 0c52b9d3..4619169e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4548,6 +4548,11 @@ html-entities@^1.3.1: resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +htmx.org@^1.9.11: + version "1.9.11" + resolved "https://registry.yarnpkg.com/htmx.org/-/htmx.org-1.9.11.tgz#00192041ee682d6ca7146d0fbd901169ffe72d87" + integrity sha512-WlVuICn8dfNOOgYmdYzYG8zSnP3++AdHkMHooQAzGZObWpVXYathpz/I37ycF4zikR6YduzfCvEcxk20JkIUsw== + http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" From 736f0552f73e9a88a81552da1725b87dfeea33e4 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 22 Mar 2024 18:46:21 -0300 Subject: [PATCH 136/150] =?UTF-8?q?fix:=20poder=20importar=20htmx=20en=20p?= =?UTF-8?q?roducci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/packs/application.js | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 9ddc9753..d8ff0dd1 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -34,4 +34,4 @@ Rails.start() Turbolinks.start() ActiveStorage.start() -window.htmx = require('htmx.org/dist/htmx') +window.htmx = require('htmx.org/dist/htmx.js') diff --git a/package.json b/package.json index 871c9d9b..870b8e9b 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "commonmark": "^0.29.0", "fork-awesome": "^1.1.7", "fork-ts-checker-webpack-plugin": "^6.1.0", + "htmx.org": "^1.9.11", "input-map": "git+https://0xacab.org/sutty/input-map.git", "input-tag": "git+https://0xacab.org/sutty/input-tag.git", "leaflet": "^1.7.1", @@ -34,7 +35,6 @@ "zepto": "^1.2.0" }, "devDependencies": { - "@types/rails__activestorage": "^6.0.0", - "htmx.org": "^1.9.11" + "@types/rails__activestorage": "^6.0.0" } } From 95231511b78243dede6c4cab52ab6116fb145a54 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 22 Mar 2024 18:54:18 -0300 Subject: [PATCH 137/150] fix: poder ver el estado --- app/policies/site_policy.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/policies/site_policy.rb b/app/policies/site_policy.rb index 2ca96256..d5465d6b 100644 --- a/app/policies/site_policy.rb +++ b/app/policies/site_policy.rb @@ -14,6 +14,10 @@ class SitePolicy true end + def status? + true + end + # Puede ver la versión privada del sitio? def private? edit? && site.deploys.find_by_type('DeployPrivate') From 629549c916d45ee79be189dbcfab536ed1396ba4 Mon Sep 17 00:00:00 2001 From: f Date: Wed, 10 Apr 2024 11:49:30 -0300 Subject: [PATCH 138/150] =?UTF-8?q?fix:=20rehabilitar=20el=20bot=C3=B3n=20?= =?UTF-8?q?tambi=C3=A9n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/posts/index.haml | 2 -- app/views/sites/_status.haml | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/posts/index.haml b/app/views/posts/index.haml index 374f06ee..29f6471f 100644 --- a/app/views/posts/index.haml +++ b/app/views/posts/index.haml @@ -4,8 +4,6 @@ = render 'sites/status', site: @site - = render 'sites/build', site: @site, class: 'btn-block' - %h3= t('posts.new') %table.table.table-sm.mb-3 %tbody diff --git a/app/views/sites/_status.haml b/app/views/sites/_status.haml index 47bed657..d3da5c73 100644 --- a/app/views/sites/_status.haml +++ b/app/views/sites/_status.haml @@ -22,3 +22,5 @@ %div{ 'hx-get': site_status_path(site), 'hx-trigger': 'every 10s', 'hx-swap': 'outerHTML' } = render 'bootstrap/alert' do = link_to_if link, message.html_safe, site_build_stats_path(site), class: 'alert-link' + + = render 'sites/build', site: site, class: 'btn-block' From 7cca88b4f3ce0845cdbdfb55885b406b89199d1d Mon Sep 17 00:00:00 2001 From: f Date: Wed, 10 Apr 2024 12:15:30 -0300 Subject: [PATCH 139/150] =?UTF-8?q?fix:=20al=20salir=20de=20la=20p=C3=A1gi?= =?UTF-8?q?na,=20cancelar=20todas=20las=20peticiones=20de=20htmx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes #15880 closes #15881 closes #15883 closes #15884 closes #15893 closes #15894 closes #15973 closes #15974 closes #15975 closes #16003 closes #16004 --- app/javascript/etc/htmx_abort.js | 7 +++++++ app/javascript/etc/index.js | 1 + 2 files changed, 8 insertions(+) create mode 100644 app/javascript/etc/htmx_abort.js diff --git a/app/javascript/etc/htmx_abort.js b/app/javascript/etc/htmx_abort.js new file mode 100644 index 00000000..308d0315 --- /dev/null +++ b/app/javascript/etc/htmx_abort.js @@ -0,0 +1,7 @@ +// Cancela las peticiones pendientes de htmx para todos los elementos al +// cambiar de página. +document.addEventListener("turbolinks:click", () => { + for (const hx of document.querySelectorAll("[hx-get]")) { + window.htmx.trigger(hx, "htmx:abort"); + } +}); diff --git a/app/javascript/etc/index.js b/app/javascript/etc/index.js index d4b9f7a3..9ee6a95a 100644 --- a/app/javascript/etc/index.js +++ b/app/javascript/etc/index.js @@ -7,3 +7,4 @@ import './timezone' import './turbolinks-anchors' import './validation' import './new_editor' +import './htmx_abort' From 847af3374ce02fa352b7ce163ddebbb5d19da247 Mon Sep 17 00:00:00 2001 From: f Date: Wed, 10 Apr 2024 13:26:22 -0300 Subject: [PATCH 140/150] =?UTF-8?q?fix:=20no=20multiplicar=20el=20bot?= =?UTF-8?q?=C3=B3n!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/sites/_status.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/sites/_status.haml b/app/views/sites/_status.haml index d3da5c73..9ac27c15 100644 --- a/app/views/sites/_status.haml +++ b/app/views/sites/_status.haml @@ -23,4 +23,4 @@ = render 'bootstrap/alert' do = link_to_if link, message.html_safe, site_build_stats_path(site), class: 'alert-link' - = render 'sites/build', site: site, class: 'btn-block' + = render 'sites/build', site: site, class: 'btn-block' From 5e1def1028cb1946e2b2f232cc4aaa3bad9c189c Mon Sep 17 00:00:00 2001 From: f Date: Wed, 10 Apr 2024 13:32:37 -0300 Subject: [PATCH 141/150] =?UTF-8?q?feat:=20deshabilitar=20el=20bot=C3=B3n?= =?UTF-8?q?=20mientras=20est=C3=A1=20compilando=20tambi=C3=A9n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit para no lanzar más de una compilación por vez --- app/views/sites/_build.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/sites/_build.haml b/app/views/sites/_build.haml index b0961e31..c723a3ac 100644 --- a/app/views/sites/_build.haml +++ b/app/views/sites/_build.haml @@ -6,4 +6,4 @@ class: "btn btn-secondary #{local_assigns[:class]}", title: site.enqueued? ? t('help.sites.enqueued') : t('help.sites.enqueue'), data: { disable_with: t('sites.enqueued') }, - disabled: site.enqueued? + disabled: !site.waiting? From c80984888c7eb8d726c37882750c58e0ab454a0a Mon Sep 17 00:00:00 2001 From: f Date: Wed, 10 Apr 2024 15:16:09 -0300 Subject: [PATCH 142/150] =?UTF-8?q?feat:=20recordar=20la=20ubicaci=C3=B3n?= =?UTF-8?q?=20#15188?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2746ab10..617ce665 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -11,6 +11,7 @@ class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? before_action :notify_unconfirmed_email, unless: :devise_controller? around_action :set_locale + after_action :store_location! rescue_from Pundit::NilPolicyError, with: :page_not_found rescue_from ActionController::RoutingError, with: :page_not_found @@ -115,6 +116,16 @@ class ApplicationController < ActionController::Base def after_sign_in_path_for(resource) session[:locale] = nil - sites_path + super + end + + # Guardar la ubicación para que devise redirija a donde íbamos, a + # menos que estemos recibiendo información o intentando ingresar. + def store_location! + return if request.xhr? + return unless request.request_method_symbol == :GET + return if devise_controller? && !is_a?(Devise::RegistrationsController) && params[:action] != 'edit' + + session[:usuarie_return_to] = request.fullpath end end From 11660bc68829157b4c28235f3ad728d8001c879e Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Apr 2024 10:01:53 -0300 Subject: [PATCH 143/150] fix: editor --- package.json | 2 +- yarn.lock | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7901ad41..480f3d0b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@rails/activestorage": "^6.1.3-1", "@rails/ujs": "^6.1.3-1", "@rails/webpacker": "5.4.4", - "@suttyweb/editor": "^0.1.25", + "@suttyweb/editor": "^0.1.26", "babel-loader": "^8.2.2", "chart.js": "^3.5.1", "chartkick": "^4.0.5", diff --git a/yarn.lock b/yarn.lock index 0c52b9d3..69cf4edf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1821,6 +1821,26 @@ resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@floating-ui/core@^1.0.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1" + integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g== + dependencies: + "@floating-ui/utils" "^0.2.1" + +"@floating-ui/dom@^1.5.1": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.3.tgz#954e46c1dd3ad48e49db9ada7218b0985cee75ef" + integrity sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw== + dependencies: + "@floating-ui/core" "^1.0.0" + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" + integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -1955,11 +1975,13 @@ resolved "https://registry.npmjs.org/@stimulus/webpack-helpers/-/webpack-helpers-1.1.1.tgz" integrity sha512-XOkqSw53N9072FLHvpLM25PIwy+ndkSSbnTtjKuyzsv8K5yfkFB2rv68jU1pzqYa9FZLcvZWP4yazC0V38dx9A== -"@suttyweb/editor@^0.1.25": - version "0.1.25" - resolved "https://registry.yarnpkg.com/@suttyweb/editor/-/editor-0.1.25.tgz#37b38560642a49b24383473543c28be943695f9f" - integrity sha512-fxOO9LpdntWzgNZch4cZB6QL0u+jEw0NqsNahKcGBbiJaS0GNGLRrT2LUd/Djc6O8HWkQguPLcquVT5eHq2h9g== +"@suttyweb/editor@^0.1.26": + version "0.1.26" + resolved "https://registry.yarnpkg.com/@suttyweb/editor/-/editor-0.1.26.tgz#ba59db20bd6faa7b43d44b764c0bc7b25f461e06" + integrity sha512-nT1DaQjaPBwVG4FofSF0AoiPzIZfAdW6oRX9KOegM99MicvyoBZyItmuGyxl6lv9hpDKa8DwR4W8Cd5ZAD6S7w== dependencies: + "@floating-ui/dom" "^1.5.1" + linkifyjs "^4.1.1" prosemirror-svelte-nodeview "^1.0.2" "@types/caseless@*": @@ -5190,6 +5212,11 @@ linkify-it@^2.0.0: dependencies: uc.micro "^1.0.1" +linkifyjs@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.1.3.tgz#0edbc346428a7390a23ea2e5939f76112c9ae07f" + integrity sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg== + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" From 14c5530b501edd114828d0ec0b8b0541da0b9ff1 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 22 Apr 2024 11:06:25 -0300 Subject: [PATCH 144/150] feat: editor 0.1.27 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 480f3d0b..2bff3159 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@rails/activestorage": "^6.1.3-1", "@rails/ujs": "^6.1.3-1", "@rails/webpacker": "5.4.4", - "@suttyweb/editor": "^0.1.26", + "@suttyweb/editor": "^0.1.27", "babel-loader": "^8.2.2", "chart.js": "^3.5.1", "chartkick": "^4.0.5", From 044b14c355c3d50a11dfdd935b31894dce1b7713 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 22 Apr 2024 11:15:09 -0300 Subject: [PATCH 145/150] fixup! feat: editor 0.1.27 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 69cf4edf..7e1d597c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1975,10 +1975,10 @@ resolved "https://registry.npmjs.org/@stimulus/webpack-helpers/-/webpack-helpers-1.1.1.tgz" integrity sha512-XOkqSw53N9072FLHvpLM25PIwy+ndkSSbnTtjKuyzsv8K5yfkFB2rv68jU1pzqYa9FZLcvZWP4yazC0V38dx9A== -"@suttyweb/editor@^0.1.26": - version "0.1.26" - resolved "https://registry.yarnpkg.com/@suttyweb/editor/-/editor-0.1.26.tgz#ba59db20bd6faa7b43d44b764c0bc7b25f461e06" - integrity sha512-nT1DaQjaPBwVG4FofSF0AoiPzIZfAdW6oRX9KOegM99MicvyoBZyItmuGyxl6lv9hpDKa8DwR4W8Cd5ZAD6S7w== +"@suttyweb/editor@^0.1.27": + version "0.1.27" + resolved "https://registry.yarnpkg.com/@suttyweb/editor/-/editor-0.1.27.tgz#9415a0b767e72dbe4fbf42ce87e62fb8f5125c31" + integrity sha512-Ts9TZtGiRIaHm+ffVBRl+/nuVcANWZNtFsrGacoajgEsagaIyA1cq8qjiNpPoM5ne9vTba3cAaLP04V/uEIhBw== dependencies: "@floating-ui/dom" "^1.5.1" linkifyjs "^4.1.1" From 8de05ccce6d2d7e9cfc8e509350bc0d6d1675311 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 22 Apr 2024 14:54:40 -0300 Subject: [PATCH 146/150] fix: solo permitir los mismos tipos de archivo que jekyll closes #16117 --- app/lib/jekyll/readers/data_reader_decorator.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/lib/jekyll/readers/data_reader_decorator.rb b/app/lib/jekyll/readers/data_reader_decorator.rb index 9fed7ac7..2a2a8fc2 100644 --- a/app/lib/jekyll/readers/data_reader_decorator.rb +++ b/app/lib/jekyll/readers/data_reader_decorator.rb @@ -14,6 +14,8 @@ module Jekyll extend ActiveSupport::Concern included do + DATA_EXTENSIONS = %w[.yaml .yml .json .csv .tsv].freeze + def read_data_to(dir, data) return unless File.directory?(dir) && !@entry_filter.symlink?(dir) @@ -24,7 +26,7 @@ module Jekyll if File.directory?(path) read_data_to(path, data[sanitize_filename(entry)] = {}) - else + elsif DATA_EXTENSIONS.include?(File.extname(entry)) key = sanitize_filename(File.basename(entry, ".*")) data[key] = read_data_file(path) end From 5f0672bcaebd1d68d81738c9d74f4275eb6866b9 Mon Sep 17 00:00:00 2001 From: f Date: Tue, 30 Apr 2024 17:44:33 -0300 Subject: [PATCH 147/150] =?UTF-8?q?feat:=20recargar=20el=20bot=C3=B3n=20de?= =?UTF-8?q?=20publicar=20por=20separado=20#16180?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sites_controller.rb | 6 ++++++ app/policies/site_policy.rb | 4 ++++ app/views/posts/index.haml | 1 + app/views/sites/_build.haml | 17 +++++++++-------- app/views/sites/_status.haml | 4 +--- app/views/sites/build.haml | 1 + config/routes.rb | 1 + 7 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 app/views/sites/build.haml diff --git a/app/controllers/sites_controller.rb b/app/controllers/sites_controller.rb index 49527cf7..e911daac 100644 --- a/app/controllers/sites_controller.rb +++ b/app/controllers/sites_controller.rb @@ -22,6 +22,12 @@ class SitesController < ApplicationController render('sites/status', layout: false) if stale? site end + def button + authorize site + + render('sites/build', layout: false) + end + # No tenemos propiedades de un sitio aún, así que vamos al listado de # artículos def show diff --git a/app/policies/site_policy.rb b/app/policies/site_policy.rb index d5465d6b..ce56a2e7 100644 --- a/app/policies/site_policy.rb +++ b/app/policies/site_policy.rb @@ -61,6 +61,10 @@ class SitePolicy show? && usuarie? end + def button? + show? + end + def enqueue? build? end diff --git a/app/views/posts/index.haml b/app/views/posts/index.haml index 29f6471f..3ea82309 100644 --- a/app/views/posts/index.haml +++ b/app/views/posts/index.haml @@ -3,6 +3,7 @@ = render 'sites/header', site: @site = render 'sites/status', site: @site + = render 'sites/build', site: @site, class: 'btn-block' %h3= t('posts.new') %table.table.table-sm.mb-3 diff --git a/app/views/sites/_build.haml b/app/views/sites/_build.haml index c723a3ac..8db4d370 100644 --- a/app/views/sites/_build.haml +++ b/app/views/sites/_build.haml @@ -1,9 +1,10 @@ - if policy(site).build? - = form_tag site_enqueue_path(site), - method: :post, - class: 'form-inline inline' do - = submit_tag site.enqueued? ? t('sites.enqueued') : t('sites.enqueue'), - class: "btn btn-secondary #{local_assigns[:class]}", - title: site.enqueued? ? t('help.sites.enqueued') : t('help.sites.enqueue'), - data: { disable_with: t('sites.enqueued') }, - disabled: !site.waiting? + %div{ 'hx-get': site_button_path(site, class: local_assigns[:class]), 'hx-trigger': 'every 10s', 'hx-swap': 'outerHTML' } + = form_tag site_enqueue_path(site), + method: :post, + class: 'form-inline inline' do + = submit_tag site.enqueued? ? t('sites.enqueued') : t('sites.enqueue'), + class: "btn btn-secondary #{local_assigns[:class]}", + title: site.enqueued? ? t('help.sites.enqueued') : t('help.sites.enqueue'), + data: { disable_with: t('sites.enqueued') }, + disabled: !site.waiting? diff --git a/app/views/sites/_status.haml b/app/views/sites/_status.haml index 9ac27c15..a3dfd4ad 100644 --- a/app/views/sites/_status.haml +++ b/app/views/sites/_status.haml @@ -18,9 +18,7 @@ - message = t('.available') - link = true - -# TODO: Calcular cada cuanto sería óptimo recargar + -# TODO: Calcular cada cuánto sería óptimo recargar %div{ 'hx-get': site_status_path(site), 'hx-trigger': 'every 10s', 'hx-swap': 'outerHTML' } = render 'bootstrap/alert' do = link_to_if link, message.html_safe, site_build_stats_path(site), class: 'alert-link' - - = render 'sites/build', site: site, class: 'btn-block' diff --git a/app/views/sites/build.haml b/app/views/sites/build.haml new file mode 100644 index 00000000..c2becec0 --- /dev/null +++ b/app/views/sites/build.haml @@ -0,0 +1 @@ += render 'sites/build', site: @site, class: params.permit(:class)[:class] diff --git a/config/routes.rb b/config/routes.rb index 557439e9..d97611fd 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -38,6 +38,7 @@ Rails.application.routes.draw do post 'pull', to: 'sites#merge' get 'status', to: 'sites#status' + get 'button', to: 'sites#button' # Gestionar usuaries get 'usuaries/invite', to: 'usuaries#invite' From 79be9538bb8ccf9350e5e4cb71150e92440fdcb6 Mon Sep 17 00:00:00 2001 From: f Date: Tue, 30 Apr 2024 17:45:33 -0300 Subject: [PATCH 148/150] fix: ignorar los errores de abort de htmx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit el problema es que cuando se envía un abort a htmx, se loguea un mensaje de todas formas. closes #15880 closes #15881 closes #15883 closes #15884 closes #15893 closes #15894 closes #15973 closes #15974 closes #15975 closes #16003 closes #16004 closes #16015 closes #16016 closes #16023 closes #16024 closes #16050 closes #16051 closes #16063 closes #16064 closes #16073 closes #16074 closes #16116 closes #16125 closes #16126 --- app/javascript/packs/application.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index d8ff0dd1..e10e2b5d 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -9,9 +9,16 @@ try { host: window.env.PANEL_URL }); + const ignoredErrors = ["htmx:afterRequest", "htmx:sendAbort"]; + console.originalError = console.error; console.error = (...e) => { - window.airbrake.notify(e.join(" ")); + const msg = e.join(" "); + + if (!ignoredErrors.some(x => msg.includes(x))) { + window.airbrake.notify(e.join(" ")); + } + return console.originalError(...e); }; } catch(e) { From 4f12d1211824ca2cd6652001aadf5592f5396a48 Mon Sep 17 00:00:00 2001 From: f Date: Thu, 2 May 2024 15:49:20 -0300 Subject: [PATCH 149/150] ci: usar los locks para identificar la cache [skip ci] --- .gitlab-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bb674844..dceb1a42 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,9 +6,15 @@ - paths: - "vendor/ruby" - ".bundle" + key: + files: + - "Gemfile.lock" .cache-node: &cache-node - paths: - "node_modules" + key: + files: + - "yarn.lock" .cache-task: &cache-task - paths: - ".task" From 9c0ea76c219fc5db9d2972e3118418bcd7f01d31 Mon Sep 17 00:00:00 2001 From: f Date: Thu, 2 May 2024 15:54:54 -0300 Subject: [PATCH 150/150] ci: instalar gemas [skip ci] --- Taskfile.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Taskfile.yaml b/Taskfile.yaml index 57fb0238..796ab721 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -185,9 +185,13 @@ tasks: - "test -f ../hain/usr/bin/bundler-audit" rubocop: desc: "Ruby linting" + deps: + - "gems" cmds: - "./bin/modified_files | ./bin/with_extension rb | xargs -r {{.HAINISH}} bundle exec rubocop {{.CLI_ARGS}}" haml-lint: desc: "HAML linting" + deps: + - "gems" cmds: - "./bin/modified_files | ./bin/with_extension haml | xargs -r {{.HAINISH}} bundle exec haml-lint {{.CLI_ARGS}}"