Retórica de Discourse

Gracias, sí, esto es una peculiaridad de Popper, la biblioteca que usa el selector de emojis para la posición. He actualizado el uso de Popper para solucionar eso.

4 Me gusta

En primer lugar, un enorme agradecimiento a @angus :pray: por hacerse cargo de este plugin; ha sido uno de nuestros favoritos durante un tiempo.

He actualizado a la última versión y parece que rompe los mensajes privados (PM).

Uncaught TypeError: Cannot read property 'map' of undefined
    at _retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:57
    at _application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82147
    at Array.map (<anonymous>)
    at h (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82146)
    at i.html (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:78359)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82625)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82345)
    at s (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20534)
    at t.exports (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20521)
    at e (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:19890)
_retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:368 Uncaught TypeError: Cannot read property 'toString' of undefined
    at t.disabledFor (_retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:368)
    at _retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:51
    at _application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82147
    at Array.map (<anonymous>)
    at h (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82146)
    at i.html (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:78359)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82625)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82345)
    at s (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20534)
    at t.exports (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20521)
1 me gusta

Gracias, hoy tuvimos un PR que eliminó lodash, otra deprecación.

Ya debería estar solucionado:

Por favor, actualiza y avísame cómo te fue.

8 Me gusta

Parece que ya funciona bien, ¡muchas gracias! :smile:

Aplicamos este CSS para que las cosas se vean un poco mejor para nosotros

Escritorio

.emoji-picker.has-limited-set img.emoji {
    width: 40px !important;
    height: 40px !important;
}

.post-retort {
    margin: 0px 2px;
}

.emoji-picker.has-limited-set .limited-emoji-set {
    flex-wrap: wrap;
}

.emoji-picker {
    min-height: 80px;
    max-width: 400px;
}

Móvil

.emoji-picker.has-limited-set .limited-emoji-set {
    flex-wrap: wrap !important;
}

.emoji-picker {
    min-width: 100% !important;
}

4 Me gusta

Acabo de reconstruir Discourse para actualizar el complemento. Pero ahora, el icono del complemento ha desaparecido, al igual que todos mis componentes de tema. No sé si está relacionado, pero tengo este mensaje en la consola del navegador:

Edición: después de desactivar Retort, todos los componentes de tema volvieron a aparecer, así que parece que realmente hay una conexión.

2 Me gusta

Estoy viendo este error con mucha frecuencia en mi sitio y, después de un tiempo, todo el sitio se vuelve lento / con lentitud para mí.

En modo seguro, todo está bien, el sitio es rápido y responsivo.

Usando Google Chrome: Versión 85.0.4183.83 (Build oficial) (64 bits)

El error:

Uncaught TypeError: Cannot read property 'map' of undefined
    at retort-11c49191cf3e1f7f570d8808ade67b5d7fcfdfe612b792c49f064baacdebadc7.js:1
    at application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1
    at Array.map (<anonymous>)
    at h (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at i.html (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at i.value (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at i.value (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at s (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)
    at t.exports (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)
    at e (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)



 if (!v.default.disabledFor(e))
                    return v.default.storeWidget(r),
                    o.retorts.map(function(e) {   <<< ERROR EN ESTA LÍNEA
                        var t = e.usernames
                          , i = e.emoji;
                        return r.attach("retort-toggle", {
                            post: o,
                            usernames: t,
                            emoji: i
                        })

Algunos problemas de CSS y cómo los resolví para nuestro uso personal

Escritorio

El primero no es tanto un problema, pero podría serlo. Rara vez tenemos tantas réplicas en una publicación, pero debes saber que si superas las 8 réplicas, los Controles de la publicación se romperán.

screenshot-vapingcommunity.co.uk-2020.09.08-20_46_47

Aquí está con 8 réplicas, se ve genial.

screenshot-vapingcommunity.co.uk-2020.09.08-20_47_53

CSS utilizado para escritorio

.post-retort {
	margin: 0px 2px;
	border: 1px solid #333;
	border-radius: 5px;
	padding: 3px;
	background-color: #666;
}

Teléfono: iPhone SE Gen1

Móvil

El número máximo de réplicas en este momento en móvil sin romper los controles de la publicación, al menos usando una pantalla más pequeña, es 1.

Con más de una réplica, los controles de la publicación se salen de la pantalla.

Así es como se ve con nuestros cambios de CSS.

CSS para móvil

.post-retort {
	border: 1px solid #333;
	border-radius: 5px;
	padding: 3px;
	background-color: #666;
	margin: 2px 2px;
	float: none;
}

Puedes lograr el mismo aspecto en escritorio que en móvil usando el CSS para móvil de arriba; esto colocará las réplicas encima de los controles de la publicación.

screenshot-vapingcommunity.co.uk-2020.09.08-21_03_13

Nos encanta este plugin y se utiliza mucho en nuestro foro, gracias por asumirlo @angus :+1:

5 Me gusta

Yo también obtengo este error. Aunque mis componentes del tema siguen funcionando, el selector de respuestas no es visible en ningún lugar (ya que el JavaScript falló).

Actualizamos nuestro Discourse a la versión 2.5.1 y luego instalamos este plugin por primera vez.

4 Me gusta

No puedo usar wait load

2 Me gusta

De alguna manera he logrado solucionar mi problema reconstruyendo la aplicación hoy.
¿Quizás podrías probar esto de tu lado?

Yo también estoy en la versión estable (2.5.1).

1 me gusta

Sí, reporté el problema en su rastreador de incidencias de GitHub y se solucionó al día siguiente, muy bien :slight_smile:

2 Me gusta

¡Hola a todos! Nos encanta este plugin, pero después de la última actualización, estamos viendo emojis de piel blanca en lugar de los amarillos neutros en nuestro foro de la comunidad.

No hemos cambiado ninguna configuración. Esta es nuestra configuración actual:

¿Es esto esperado? ¿Se puede cambiar?

¡Gracias!!

3 Me gusta

Hola a todos,

Soy nuevo en Discourse. Instalé Discourse usando el código fuente de GitHub y ya está funcionando en línea.

Hoy he instalado Retort y puedo ver en Admin-Plugins que el nuevo plugin Retort está instalado y activado.

Cuando publiqué un nuevo tema y lo revisé con otra cuenta, con la esperanza de poder usar el nuevo plugin Retort, no pude ver el botón esperado…

Volví a Admin y confirmé que las opciones del plugin estaban configuradas como se describe en el manual. Por favor, vean la imagen a continuación.

Como solo puedo publicar una imagen aquí, he combinado las tres imágenes en una sola.

Por favor, ayúdenme a averiguar qué está mal. Cualquier sugerencia será muy apreciada. Muchas gracias de antemano.

1 me gusta

No, no es lo esperado. Lo revisaré este fin de semana.

@kchang ¿Podrías abrir la consola web (How can I open the browsers console? – Mailster Knowledge Base) y ver si hay alguna excepción allí de este o de otros plugins o temas que tengas (copia y pega aquí cualquier línea roja de la consola (ocúltalas en una pestaña “Ocultar detalles” si son largas)?.

2 Me gusta

Hola @angus,
Muchas gracias por tu respuesta. He notado varias líneas rojas en la consola; por favor, mira la imagen de abajo de Opera cada vez que entro en una publicación.

Parece que hay algo mal en “import” en mi instalación. Instalé Discourse desde el código fuente, no con Docker, por lo que siempre coloco los nuevos plugins en discourse/plugins, y así instalé correctamente otros dos plugins. No estoy seguro de si fue la forma adecuada de instalar retort de la misma manera.

Por cierto, sí tenía @popperjs/core instalado con npm antes, pero no sé por qué encontré este error…

Gracias.

1 me gusta

Esa importación se agregó como parte de la refactorización del selector de emojis que llevó a la actualización de este plugin hace un tiempo (ver arriba). Se añadió a Discourse hace aproximadamente un mes. Si estás recibiendo ese error, significa que estás ejecutando una versión más antigua de Discourse. Supongo que estás usando la rama stable.

Este plugin también es compatible con stable, mediante el archivo .discourse_compatibility, pero si no estás usando Docker, necesitarás instalar el plugin usando la tarea de rake plugin:pull_compatible_all, la cual obtendrá la versión correcta del plugin para stable.

Si este es un entorno de producción y eres relativamente nuevo en Discourse, te recomendaría encarecidamente que uses Docker. Este maneja varios aspectos de la gestión de un entorno de Discourse, como obtener la versión correcta del plugin para tu entorno, lo cual podría causarte problemas.

4 Me gusta

Hola, tenía los emojis restringidos. Hace un tiempo, con una actualización, tuve que permitir emojis sin restricciones para que el plugin funcionara.

1 me gusta

¡Muchas gracias, @angus! Tienes razón, ahora estoy en la rama estable de Discourse. Ejecutaré la tarea rake para obtener la versión compatible de Retort. Una vez que obtenga el nombre de dominio, optaré por la imagen de Docker, que es una forma más conveniente. :grinning:

Actualización:
Ejecuté rake plugin:pull_compatible_all, pero parece que mi versión estable de Discourse es demasiado antigua. Así que he descargado la última versión de Discourse. Ahora todo funciona sin problemas :grin:

Gracias de nuevo por tu amable ayuda :smiley:

2 Me gusta

En el tema predeterminado de Discourse, en la vista móvil, el botón de respuesta se separa del resto de los iconos de la barra de herramientas inferior (me gusta, compartir, etc.), empuja el icono de réplica hacia abajo y se ve realmente feo.
Estoy utilizando este CSS agregado al tema para corregir el diseño. Quizás también te resulte útil.

.mobile-view {
    
    .topic-post nav.post-controls .actions button.reply {
        margin: inherit;
        margin-left: 10px;
    }
    
    nav.post-controls .actions {
        text-align: right;
        float: right;
        display: inline-block;
    }
    
    .topic-post nav.post-controls .actions .double-button {
        display: inline-flex;
    }
    
    .post-menu-area {
        margin: 0;
        padding-top: 15px;
    }
}
3 Me gusta

Genial, gracias :slightly_smiling_face:

Si necesitas ayuda para depurar esto o tienes alguna idea sobre cuál podría ser el problema, por favor avísame.

1 me gusta