Guardar Borrador Nuevo Tema

Prioridad: Baja

Plataforma: Discourse móvil iOS (no probado en otras plataformas). Reproducido en Discourse meta y try.Discourse.org

Descripción: Guardar un borrador de Nuevo Tema cuando se solicite. El botón Abrir Borrador no funciona.

Pasos para reproducir:

  1. Ve a la página de inicio de Discourse.
  2. Haz clic en + Nuevo Tema.
  3. Escribe en la línea de asunto «Probando borradores». Escribe en el cuerpo del editor «Probando». Déjalo sin categoría.
  4. Haz clic en Cancelar (icono de papelera en Discourse móvil). Se te preguntará si deseas Guardar un borrador para más tarde: selecciona esa opción.
  5. El botón + Nuevo Tema cambia a + Abrir Borrador.
  6. Haz clic en + Abrir Borrador. No ocurre nada.
  7. Revisa la carpeta Borradores: no se guardó ningún borrador.

Consecuencia: Esto me dejó temporalmente sin poder crear un nuevo Tema.

Solución alternativa: Al hacer clic varias veces en el botón inactivo + Abrir Borrador, eventualmente se bloquea el sitio de Discourse en la aplicación móvil y se regresa a la selección de dominio. Al volver a Discourse, el botón + Abrir Borrador se ha limpiado y vuelve a ser + Nuevo Tema.

5 Me gusta

El título no es lo suficientemente largo para superar esta validación
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/models/composer.js#L1184
Pero me pregunto, ¿por qué el código se resuelve en lugar de rechazarse y luego capturar los errores?

Creo que los errores se pueden capturar aquí

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/controllers/composer.js#L1244

algo así como esto

this._saveDraftPromise = model.saveDraft().then(() => {
    this._lastDraftSaved = Date.now();
    ...
}, error => {
    // manejo de errores aquí
}).finally(() => {
    this._saveDraftPromise = null;
});

@eviltrout ¿alguna opinión?

7 Me gusta

Este código de guardado es, lamentablemente, uno de los más antiguos y, a menudo, uno de los más frágiles. A lo largo de los años hemos añadido muchas funcionalidades sobre él, y algunos aspectos como guardar borradores, que pueden tener éxito o fallar, requieren su propia lógica personalizada, lo que solo lo complica aún más.

Creo que tu intuición probablemente sea correcta en este caso, pero es imposible confirmarlo sin ver cómo se ejecutan todas nuestras pruebas. Si tienes tiempo para hacer una PR en el futuro, sería genial.

5 Me gusta

He podido reproducir este error en Chrome para macOS en Discourse meta, siguiendo los pasos de Rhidian a continuación:

2 Me gusta

Hola,

Gracias por el informe del error. Se ha solucionado en la última versión de Discourse. El problema era que ofrecía guardar borradores muy cortos incluso cuando no debería hacerlo.

4 Me gusta

Este tema se cerró automáticamente después de 3 días. Ya no se permiten nuevas respuestas.