Entwurf speichern Neues Thema

Priorität: Niedrig

Plattform: Discourse mobile iOS (nicht auf anderen Plattformen getestet). Reproduziert in Discourse meta und try.Discourse.org.

Beschreibung: Entwurf eines neuen Themas speichern, wenn dazu aufgefordert. Die Schaltfläche „Entwurf öffnen“ funktioniert nicht.

Schritte zur Reproduktion:

  1. Gehen Sie zur Discourse-Startseite.
  2. Klicken Sie auf + Neues Thema.
  3. Geben Sie in die Betreffzeile „Testing Drafts“ ein. Geben Sie im Editor-Feld „Testing“ ein. Lassen Sie es ohne Kategorie.
  4. Klicken Sie auf Abbrechen (Mülleimer-Symbol in Discourse mobile). Es wird gefragt, ob Sie einen Entwurf für später speichern möchten – wählen Sie diese Option.
  5. Die Schaltfläche + Neues Thema ändert sich zu + Entwurf öffnen.
  6. Klicken Sie auf + Entwurf öffnen. Es passiert nichts.
  7. Überprüfen Sie den Ordner Entwürfe – kein Entwurf wurde gespeichert.

Folge: Dadurch war ich vorübergehend nicht in der Lage, ein neues Thema zu erstellen.

Workaround: Mehrfaches Klicken auf die inaktive Schaltfläche + Entwurf öffnen führt schließlich zum Absturz der Discourse-Website in der mobilen App und zur Rückkehr zur Domänenauswahl. Zurück zu Discourse – die Schaltfläche + Entwurf öffnen ist gelöscht und wieder zu + Neues Thema zurückgekehrt.

5 „Gefällt mir“

Der Titel ist nicht lang genug, um diese Validierung zu bestehen

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/models/composer.js#L1184

Aber ich frage mich, warum der Code auflöst statt abzulehnen und dann Fehler abzufangen?

Ich denke, Fehler können hier abgefangen werden

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

etwas in dieser Richtung

this._saveDraftPromise = model.saveDraft().then(() => {
    this._lastDraftSaved = Date.now();
    ...
}, error => {
    // Fehlerbehandlung hier
}).finally(() => {
    this._saveDraftPromise = null;
});

@eviltrout Hast du dazu Gedanken?

7 „Gefällt mir“

Dieser Speichercodes ist leider einer unserer ältesten und oft auch unserer anfälligsten. Im Laufe der Jahre haben wir viele Funktionen darauf aufgesetzt, und einige Dinge wie das Speichern von Entwürfen, die erfolgreich sein oder fehlschlagen können, benötigen eigene benutzerdefinierte Funktionen, was alles noch komplizierter macht.

Ich denke, deine Intuition liegt hier wahrscheinlich richtig, aber ich kann das ohne Einblick in den Ablauf aller unserer Tests nicht bestätigen. Falls du in Zukunft Zeit für einen PR hast, wäre das großartig.

5 „Gefällt mir“

Ich konnte diesen Fehler unter macOS Chrome im Discourse-Meta-Forum nach den unten aufgeführten Schritten von Rhidian reproduzieren:

[quote=“Rhidian, Beitrag:1, Thema:194436”]
Reproduzierbare Schritte:

  1. Gehe zur Discourse-Startseite.
  2. Klicke auf + Neuer Beitrag.
  3. Gib in die Betreffzeile „Testing Drafts
2 „Gefällt mir“

Hallo,

danke für den Fehlerbericht. Dies wurde in der neuesten Version von Discourse behoben. Das Problem bestand darin, dass sehr kurze Entwürfe zum Speichern angeboten wurden, obwohl dies nicht vorgesehen war.

4 „Gefällt mir“

Dieses Thema wurde automatisch nach 3 Tagen geschlossen. Neue Antworten sind nicht mehr möglich.