Notiz zeigt sich sofort gesetzt, Widgets nach Wunsch des Nutzers
Aus dem Zettel wird die Notiz: Der Text steht immer formatiert da, roh ist nur
die Zeile mit der Schreibmarke. Dazu eine kleine Werkzeugleiste (Aufgabe,
Aufzaehlung, Nummer, Ueberschrift, fett, Linie), Enter fuehrt Listen fort,
Backspace am Zeilenanfang nimmt erst den Vorsatz. Fuer groessere Umbauten
bleibt der Quelltext-Knopf.
Kein contenteditable: Der Quelltext bleibt die Wahrheit und wird nie aus dem
HTML zurueckgerechnet, das der Browser beim Tippen erzeugt.
Reihenfolge und An/Aus der Widgets liegen jetzt je Nutzer auf dem Server, in
einer Einstellung ("benutzer,notiz,-system,wetter,bild"). Der Schalter fuer das
Wetter auf dem Schreibtisch faellt damit weg — es ist ein Widget wie jedes
andere.
Die Einstellungen sind in Abschnitte sortiert (Darstellung, HoneyBar, Widgets,
Wetter, Programme, Konto), Beschriftung links, Schalter rechts.
This commit is contained in:
1 parent
c0abfbb491
commit
3807ddca24
12 files changed
+806
-220
No files matched your search
+7
-7
@@ -130,10 +130,10 @@ func TestHoneyBarOhneBacktickInKommentaren(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// Der Zettel ist ein Zettel, kein Dokument: Die Grenze muss der Server ziehen,
|
||||
// Die Notiz ist eine Notiz, kein Dokument: Die Grenze muss der Server ziehen,
|
||||
// nicht das Formular — sonst schreibt sie jeder Aufruf aus, der das Formular
|
||||
// umgeht.
|
||||
func TestZettelHatEineGrenze(t *testing.T) {
|
||||
func TestNotizHatEineGrenze(t *testing.T) {
|
||||
s := newTestServer(t, "")
|
||||
h := s.routes()
|
||||
|
||||
@@ -146,10 +146,10 @@ func TestZettelHatEineGrenze(t *testing.T) {
|
||||
}
|
||||
|
||||
if code := put("# Einkauf\n- [ ] Milch"); code != http.StatusNoContent {
|
||||
t.Fatalf("kurzer Zettel: %d, erwartet 204", code)
|
||||
t.Fatalf("kurze Notiz: %d, erwartet 204", code)
|
||||
}
|
||||
if code := put(strings.Repeat("x", 4001)); code != http.StatusBadRequest {
|
||||
t.Errorf("zu langer Zettel: %d, erwartet 400", code)
|
||||
t.Errorf("zu lange Notiz: %d, erwartet 400", code)
|
||||
}
|
||||
|
||||
rec := httptest.NewRecorder()
|
||||
@@ -157,13 +157,13 @@ func TestZettelHatEineGrenze(t *testing.T) {
|
||||
var out map[string]string
|
||||
json.Unmarshal(rec.Body.Bytes(), &out)
|
||||
if out["text"] != "# Einkauf\n- [ ] Milch" {
|
||||
t.Errorf("zurück kam %q — der zu lange Zettel darf den guten nicht überschrieben haben", out["text"])
|
||||
t.Errorf("zurück kam %q — die zu lange Notiz darf die gute nicht überschrieben haben", out["text"])
|
||||
}
|
||||
}
|
||||
|
||||
// Fremde Zettel gehen niemanden etwas an: Der Schlüssel für die App-Liste darf
|
||||
// Fremde Notizen gehen niemanden etwas an: Der Schlüssel für die App-Liste darf
|
||||
// sie nicht öffnen, auch nicht lesend.
|
||||
func TestZettelNichtUeberDenSchluessel(t *testing.T) {
|
||||
func TestNotizNichtUeberDenSchluessel(t *testing.T) {
|
||||
idp := newFakeIdP(t, "honeyos")
|
||||
s := newTestServer(t, idp.URL)
|
||||
s.cfg.AppsKey = "geheim123"
|
||||
|
||||
Reference in new issue
Block a user